.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 : 40C74B2DEB61FB667671B1409C08157F .init:000080C0 ; Input CRC32 : 3EDA0DBB .init:000080C0 .init:000080C0 ; File Name : C:\Temp\tools\getdata .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 : '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 : 'sleep.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 : '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_6BDEC - 0x6BDE0) .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_6BDEC - 0x6BDE0 ; 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+70p .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+CCp .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+328p .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+6Cp .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+A8p .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+F0p .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_555BC .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_555BC ; 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 EXPORT main .text:000085C4 main ; DATA XREF: _start+18o .text:000085C4 ; .text:off_810Co .text:000085C4 .text:000085C4 var_430 = -0x430 .text:000085C4 var_42C = -0x42C .text:000085C4 var_420 = -0x420 .text:000085C4 .text:000085C4 MOV R12, SP .text:000085C8 STMFD SP!, {R4-R12,LR,PC} .text:000085CC SUB R11, R12, #4 .text:000085D0 CMP R0, #2 .text:000085D4 MOV R4, R1 .text:000085D8 SUB SP, SP, #0x400 .text:000085DC SUB SP, SP, #8 .text:000085E0 BLE loc_8974 .text:000085E4 SUB R2, R11, #-var_420 .text:000085E8 SUB R2, R2, #8 .text:000085EC LDR R5, =dword_555C8 .text:000085F0 SUB R2, R2, #4 .text:000085F4 LDR R0, [R4,#4] .text:000085F8 MOV R1, R5 .text:000085FC BL sscanf .text:00008600 LDR R3, [R11,#var_42C] .text:00008604 CMP R3, #3 .text:00008608 BHI loc_8974 .text:0000860C MOV R1, R5 .text:00008610 SUB R2, R11, #-var_420 .text:00008614 SUB R2, R2, #8 .text:00008618 LDR R0, [R4,#8] .text:0000861C SUB R2, R2, #8 .text:00008620 BL sscanf .text:00008624 LDR R3, [R11,#var_430] .text:00008628 CMP R3, #0xFA0 .text:0000862C BHI loc_8974 .text:00008630 BL open_fpga_interface .text:00008634 BL open_usbd_interface .text:00008638 LDR R3, [R11,#var_430] .text:0000863C MOV R4, #0 .text:00008640 LDR R8, =pt_data .text:00008644 SUB R7, R11, #-var_420 .text:00008648 LDR R9, =data2 .text:0000864C SUB R7, R7, #8 .text:00008650 LDR R10, =data3 .text:00008654 CMP R4, R3 .text:00008658 BGE loc_8680 .text:0000865C LDR R5, =fifo_data .text:00008660 .text:00008660 loc_8660 ; CODE XREF: main+B8j .text:00008660 MOV R0, #0 .text:00008664 MOV R1, R5 .text:00008668 ADD R5, R5, #4 .text:0000866C BL read_fpga .text:00008670 LDR R3, [R11,#var_430] .text:00008674 ADD R4, R4, #1 .text:00008678 CMP R4, R3 .text:0000867C BLT loc_8660 .text:00008680 .text:00008680 loc_8680 ; CODE XREF: main+94j .text:00008680 MOV R6, 0xFB4 .text:00008688 LDR R5, =pt_data .text:0000868C .text:0000868C loc_868C ; CODE XREF: main+384j .text:0000868C MOV R0, R7 .text:00008690 BL read_data_from_usbd .text:00008694 CMP R0, #0 .text:00008698 BLE loc_8930 .text:0000869C CMP R0, #0 .text:000086A0 BLE loc_86B0 .text:000086A4 MOV R4, R0 .text:000086A8 .text:000086A8 loc_86A8 ; CODE XREF: main+E8j .text:000086A8 SUBS R4, R4, #1 .text:000086AC BNE loc_86A8 .text:000086B0 .text:000086B0 loc_86B0 ; CODE XREF: main+DCj .text:000086B0 MOV R0, R7 .text:000086B4 BL check_usbd_data .text:000086B8 CMP R0, #0 .text:000086BC BNE loc_8930 .text:000086C0 LDR R0, =aSendDataToPcNo ; "send data to pc now\n" .text:000086C4 BL printf .text:000086C8 LDR R3, [R11,#var_42C] .text:000086CC CMP R3, #4 ; switch 5 cases .text:000086D0 LDRLS PC, [PC,R3,LSL#2] ; switch jump .text:000086D4 B loc_8828 ; jumptable 000086D0 default case .text:000086D4 ; --------------------------------------------------------------------------- .text:000086D8 DCD loc_86EC ; jump table for switch statement .text:000086D8 DCD loc_8724 .text:000086D8 DCD loc_8760 .text:000086D8 DCD loc_8798 .text:000086D8 DCD loc_87D0 .text:000086EC ; --------------------------------------------------------------------------- .text:000086EC .text:000086EC loc_86EC ; CODE XREF: main+10Cj .text:000086EC ; DATA XREF: main+114o .text:000086EC MOV R4, #0 ; jumptable 000086D0 case 0 .text:000086F0 MOV R1, #0xF90 .text:000086F4 LDR R12, =data0 .text:000086F8 ADD R1, R1, #0xF .text:000086FC LDR R0, =fifo_data .text:00008700 .text:00008700 loc_8700 ; CODE XREF: main+150j .text:00008700 ADD R2, R4, #5 .text:00008704 LDRB R3, [R0,R4,LSL#2] .text:00008708 ADD R4, R4, #1 .text:0000870C CMP R4, R1 .text:00008710 STRB R3, [R12,R2] .text:00008714 BLE loc_8700 .text:00008718 LDR R3, =data0 .text:0000871C STR R3, [R8] .text:00008720 B loc_8828 ; jumptable 000086D0 default case .text:00008724 ; --------------------------------------------------------------------------- .text:00008724 .text:00008724 loc_8724 ; CODE XREF: main+10Cj .text:00008724 ; DATA XREF: main+114o .text:00008724 MOV R4, #0 ; jumptable 000086D0 case 1 .text:00008728 MOV R1, #0xF90 .text:0000872C LDR R12, =data1 .text:00008730 ADD R1, R1, #0xF .text:00008734 LDR R0, =fifo_data .text:00008738 .text:00008738 loc_8738 ; CODE XREF: main+18Cj .text:00008738 ADD R2, R4, #5 .text:0000873C LDR R3, [R0,R4,LSL#2] .text:00008740 ADD R4, R4, #1 .text:00008744 CMP R4, R1 .text:00008748 MOV R3, R3,LSR#8 .text:0000874C STRB R3, [R12,R2] .text:00008750 BLE loc_8738 .text:00008754 LDR R3, =data1 .text:00008758 STR R3, [R8] .text:0000875C B loc_8828 ; jumptable 000086D0 default case .text:00008760 ; --------------------------------------------------------------------------- .text:00008760 .text:00008760 loc_8760 ; CODE XREF: main+10Cj .text:00008760 ; DATA XREF: main+114o .text:00008760 MOV R4, #0 ; jumptable 000086D0 case 2 .text:00008764 MOV R1, #0xF90 .text:00008768 LDR R12, =data2 .text:0000876C ADD R1, R1, #0xF .text:00008770 LDR R0, =fifo_data .text:00008774 .text:00008774 loc_8774 ; CODE XREF: main+1C8j .text:00008774 ADD R2, R4, #5 .text:00008778 LDR R3, [R0,R4,LSL#2] .text:0000877C ADD R4, R4, #1 .text:00008780 CMP R4, R1 .text:00008784 MOV R3, R3,LSR#16 .text:00008788 STRB R3, [R12,R2] .text:0000878C BLE loc_8774 .text:00008790 STR R9, [R8] .text:00008794 B loc_8828 ; jumptable 000086D0 default case .text:00008798 ; --------------------------------------------------------------------------- .text:00008798 .text:00008798 loc_8798 ; CODE XREF: main+10Cj .text:00008798 ; DATA XREF: main+114o .text:00008798 MOV R4, #0 ; jumptable 000086D0 case 3 .text:0000879C MOV R1, #0xF90 .text:000087A0 LDR R12, =data3 .text:000087A4 ADD R1, R1, #0xF .text:000087A8 LDR R0, =fifo_data .text:000087AC .text:000087AC loc_87AC ; CODE XREF: main+200j .text:000087AC ADD R2, R4, #5 .text:000087B0 LDR R3, [R0,R4,LSL#2] .text:000087B4 ADD R4, R4, #1 .text:000087B8 CMP R4, R1 .text:000087BC MOV R3, R3,LSR#24 .text:000087C0 STRB R3, [R12,R2] .text:000087C4 BLE loc_87AC .text:000087C8 STR R10, [R8] .text:000087CC B loc_8828 ; jumptable 000086D0 default case .text:000087D0 ; --------------------------------------------------------------------------- .text:000087D0 .text:000087D0 loc_87D0 ; CODE XREF: main+10Cj .text:000087D0 ; DATA XREF: main+114o .text:000087D0 MOV R4, #0 ; jumptable 000086D0 case 4 .text:000087D4 MOV R2, #0x3E40 .text:000087D8 LDR R0, =data4 .text:000087DC ADD R2, R2, #0x3F .text:000087E0 LDR R1, =fifo_data .text:000087E4 .text:000087E4 loc_87E4 ; CODE XREF: main+260j .text:000087E4 LDRB R3, [R1,R4,LSL#2] .text:000087E8 STRB R3, [R0,R4] .text:000087EC ADD R4, R4, #1 .text:000087F0 LDR R3, [R1,R4,LSL#2] .text:000087F4 MOV R3, R3,LSR#8 .text:000087F8 STRB R3, [R0,R4] .text:000087FC ADD R4, R4, #1 .text:00008800 LDR R3, [R1,R4,LSL#2] .text:00008804 MOV R3, R3,LSR#16 .text:00008808 STRB R3, [R0,R4] .text:0000880C ADD R4, R4, #1 .text:00008810 LDR R3, [R1,R4,LSL#2] .text:00008814 MOV R3, R3,LSR#24 .text:00008818 STRB R3, [R0,R4] .text:0000881C ADD R4, R4, #1 .text:00008820 CMP R4, R2 .text:00008824 BLE loc_87E4 .text:00008828 .text:00008828 loc_8828 ; CODE XREF: main+110j .text:00008828 ; main+15Cj ... .text:00008828 LDR R1, [R5] ; jumptable 000086D0 default case .text:0000882C MOV R3, #0x53 .text:00008830 STRB R3, [R1] .text:00008834 LDRB R2, [R11,#var_430] .text:00008838 LDR R1, [R5] .text:0000883C ADD R2, R2, #3 .text:00008840 STRB R2, [R1,#1] .text:00008844 LDR R3, [R11,#var_430] .text:00008848 ADD R3, R3, #3 .text:0000884C LDR R2, [R5] .text:00008850 MOV R3, R3,ASR#8 .text:00008854 STRB R3, [R2,#2] .text:00008858 LDR R1, [R5] .text:0000885C MOV R3, #0x82 .text:00008860 STRB R3, [R1,#3] .text:00008864 LDR R2, [R5] .text:00008868 MOV R1, #0 .text:0000886C STRB R1, [R2,#4] .text:00008870 LDR R3, [R11,#var_430] .text:00008874 LDR R2, [R5] .text:00008878 ADD R3, R3, R2 .text:0000887C STRB R1, [R3,#5] .text:00008880 LDR R0, [R11,#var_430] .text:00008884 MOV R4, R1 .text:00008888 ADD R3, R0, #5 .text:0000888C CMP R4, R3 .text:00008890 BGE loc_88C8 .text:00008894 MOV R12, #5 .text:00008898 LDR LR, =pt_data .text:0000889C .text:0000889C loc_889C ; CODE XREF: main+300j .text:0000889C LDR R1, [LR] .text:000088A0 ADD R0, R0, R1 .text:000088A4 LDRB R3, [R0,R12] .text:000088A8 LDRB R2, [R1,R4] .text:000088AC ADD R3, R3, R2 .text:000088B0 STRB R3, [R0,R12] .text:000088B4 LDR R0, [R11,#var_430] .text:000088B8 ADD R4, R4, #1 .text:000088BC ADD R3, R0, #5 .text:000088C0 CMP R4, R3 .text:000088C4 BLT loc_889C .text:000088C8 .text:000088C8 loc_88C8 ; CODE XREF: main+2CCj .text:000088C8 LDR R3, [R11,#var_430] .text:000088CC LDR R2, [R5] .text:000088D0 LDR R0, =aCheckData0xX ; "check data:0x%x\n" .text:000088D4 ADD R3, R3, R2 .text:000088D8 LDRB R1, [R3,#5] .text:000088DC BL printf .text:000088E0 LDR R1, [R11,#var_430] .text:000088E4 LDR R0, [R5] .text:000088E8 ADD R1, R1, #6 .text:000088EC BL write_data_to_usbd .text:000088F0 MOV R1, #0 .text:000088F4 LDR R0, =data0 .text:000088F8 MOV R2, R6 .text:000088FC BL memset .text:00008900 MOV R1, #0 .text:00008904 LDR R0, =data1 .text:00008908 MOV R2, R6 .text:0000890C BL memset .text:00008910 MOV R0, R9 .text:00008914 MOV R1, #0 .text:00008918 MOV R2, R6 .text:0000891C BL memset .text:00008920 MOV R0, R10 .text:00008924 MOV R1, #0 .text:00008928 MOV R2, R6 .text:0000892C BL memset .text:00008930 .text:00008930 loc_8930 ; CODE XREF: main+D4j .text:00008930 ; main+F8j .text:00008930 MOV R0, #1 .text:00008934 BL sleep .text:00008938 MOV R0, R7 .text:0000893C MOV R1, #0 .text:00008940 MOV R2, #0x400 .text:00008944 BL memset .text:00008948 B loc_868C .text:00008948 ; --------------------------------------------------------------------------- .text:0000894C off_894C DCD dword_555C8 ; DATA XREF: main+28r .text:00008950 off_8950 DCD pt_data ; DATA XREF: main+7Cr .text:00008950 ; main+C4r ... .text:00008954 off_8954 DCD data2 ; DATA XREF: main+84r .text:00008954 ; main+1A4r .text:00008958 off_8958 DCD data3 ; DATA XREF: main+8Cr .text:00008958 ; main+1DCr .text:0000895C off_895C DCD fifo_data ; DATA XREF: main+98r .text:0000895C ; main+138r ... .text:00008960 off_8960 DCD aSendDataToPcNo ; DATA XREF: main+FCr .text:00008960 ; "send data to pc now\n" .text:00008964 off_8964 DCD data0 ; DATA XREF: main+130r .text:00008964 ; main+154r ... .text:00008968 off_8968 DCD data1 ; DATA XREF: main+168r .text:00008968 ; main+190r ... .text:0000896C off_896C DCD data4 ; DATA XREF: main+214r .text:00008970 off_8970 DCD aCheckData0xX ; DATA XREF: main+30Cr .text:00008970 ; "check data:0x%x\n" .text:00008974 ; --------------------------------------------------------------------------- .text:00008974 .text:00008974 loc_8974 ; CODE XREF: main+1Cj .text:00008974 ; main+44j ... .text:00008974 LDR R0, =aErrorCmd ; "error cmd!!!!\n" .text:00008978 BL printf .text:0000897C MOV R0, 0xFFFFFFFF .text:00008980 B locret_8988 .text:00008980 ; --------------------------------------------------------------------------- .text:00008984 off_8984 DCD aErrorCmd ; DATA XREF: main:loc_8974r .text:00008984 ; "error cmd!!!!\n" .text:00008988 ; --------------------------------------------------------------------------- .text:00008988 .text:00008988 locret_8988 ; CODE XREF: main+3BCj .text:00008988 LDMDB R11, {R4-R11,SP,PC} .text:00008988 ; End of function main .text:00008988 .text:0000898C .text:0000898C ; =============== S U B R O U T I N E ======================================= .text:0000898C .text:0000898C ; Attributes: noreturn bp-based frame .text:0000898C .text:0000898C EXPORT __libc_start_main .text:0000898C __libc_start_main ; CODE XREF: _start+20p .text:0000898C .text:0000898C var_10 = -0x10 .text:0000898C arg_0 = 4 .text:0000898C arg_4 = 8 .text:0000898C arg_8 = 0xC .text:0000898C .text:0000898C MOV R12, SP .text:00008990 STMFD SP!, {R11,R12,LR,PC} .text:00008994 SUB R11, R12, #4 .text:00008998 MOV LR, #0 .text:0000899C MOV R5, R1 .text:000089A0 SUB SP, SP, #4 .text:000089A4 STR R0, [R11,#var_10] .text:000089A8 MOV R4, R2 .text:000089AC MOV R8, R3 .text:000089B0 MOV R3, R5,LSL#2 .text:000089B4 ADD R7, R3, #4 .text:000089B8 LDR R12, =_dl_starting_up .text:000089BC ADD R6, R4, R7 .text:000089C0 CMP R12, LR .text:000089C4 LDR R10, [R11,#arg_4] .text:000089C8 BEQ loc_89DC .text:000089CC LDR R3, [R12] .text:000089D0 CMP R3, LR .text:000089D4 MOVNE LR, #0 .text:000089D8 MOVEQ LR, #1 .text:000089DC .text:000089DC loc_89DC ; CODE XREF: __libc_start_main+3Cj .text:000089DC LDR R3, =__libc_multiple_libcs .text:000089E0 STR LR, [R3] .text:000089E4 LDR R1, =environ .text:000089E8 STR R6, [R1] .text:000089EC LDR R0, =0 .text:000089F0 LDR R2, =__libc_stack_end .text:000089F4 CMP R0, #0 .text:000089F8 LDR R3, [R11,#arg_8] .text:000089FC MOV R9, R1 .text:00008A00 STR R3, [R2] .text:00008A04 BEQ loc_8A10 .text:00008A08 MOV LR, PC .text:00008A0C MOV PC, R0 .text:00008A10 .text:00008A10 loc_8A10 ; CODE XREF: __libc_start_main+78j .text:00008A10 LDR R3, =__libc_enable_secure .text:00008A14 LDR R2, [R3] .text:00008A18 CMP R2, #0 .text:00008A1C BEQ loc_8A24 .text:00008A20 BL __libc_check_standard_fds .text:00008A24 .text:00008A24 loc_8A24 ; CODE XREF: __libc_start_main+90j .text:00008A24 LDR R3, [R4,R7] .text:00008A28 MOV R0, R6 .text:00008A2C CMP R3, #0 .text:00008A30 BEQ loc_8A40 .text:00008A34 .text:00008A34 loc_8A34 ; CODE XREF: __libc_start_main+B0j .text:00008A34 LDR R3, [R0,#4]! .text:00008A38 CMP R3, #0 .text:00008A3C BNE loc_8A34 .text:00008A40 .text:00008A40 loc_8A40 ; CODE XREF: __libc_start_main+A4j .text:00008A40 ADD R0, R0, #4 .text:00008A44 BL _dl_aux_init .text:00008A48 CMP R10, #0 .text:00008A4C BEQ loc_8A60 .text:00008A50 MOV R0, R10 .text:00008A54 MOV R1, #0 .text:00008A58 MOV R2, R1 .text:00008A5C BL __cxa_atexit .text:00008A60 .text:00008A60 loc_8A60 ; CODE XREF: __libc_start_main+C0j .text:00008A60 MOV R0, R5 .text:00008A64 LDR R2, [R9] .text:00008A68 MOV R1, R4 .text:00008A6C BL __libc_init_first .text:00008A70 LDR R3, [R11,#arg_0] .text:00008A74 CMP R3, #0 .text:00008A78 BEQ loc_8A8C .text:00008A7C MOV R0, R3 .text:00008A80 MOV R1, #0 .text:00008A84 MOV R2, R1 .text:00008A88 BL __cxa_atexit .text:00008A8C .text:00008A8C loc_8A8C ; CODE XREF: __libc_start_main+ECj .text:00008A8C CMP R8, #0 .text:00008A90 BEQ loc_8A9C .text:00008A94 MOV LR, PC .text:00008A98 MOV PC, R8 .text:00008A9C .text:00008A9C loc_8A9C ; CODE XREF: __libc_start_main+104j .text:00008A9C LDR R2, [R9] .text:00008AA0 MOV R0, R5 .text:00008AA4 LDR R3, [R11,#var_10] .text:00008AA8 MOV R1, R4 .text:00008AAC MOV LR, PC .text:00008AB0 MOV PC, R3 .text:00008AB4 BL exit .text:00008AB4 ; End of function __libc_start_main .text:00008AB4 .text:00008AB4 ; --------------------------------------------------------------------------- .text:00008AB8 off_8AB8 DCD _dl_starting_up ; DATA XREF: __libc_start_main+2Cr .text:00008ABC off_8ABC DCD __libc_multiple_libcs .text:00008ABC ; DATA XREF: __libc_start_main:loc_89DCr .text:00008AC0 off_8AC0 DCD environ ; DATA XREF: __libc_start_main+58r .text:00008AC4 off_8AC4 DCD 0 ; DATA XREF: __libc_start_main+60r .text:00008AC8 off_8AC8 DCD __libc_stack_end ; DATA XREF: __libc_start_main+64r .text:00008ACC off_8ACC DCD __libc_enable_secure .text:00008ACC ; DATA XREF: __libc_start_main:loc_8A10r .text:00008AD0 ; --------------------------------------------------------------------------- .text:00008AD0 LDMDB R11, {R4-R11,SP,PC} .text:00008AD4 .text:00008AD4 ; =============== S U B R O U T I N E ======================================= .text:00008AD4 .text:00008AD4 ; Attributes: bp-based frame .text:00008AD4 .text:00008AD4 check_one_fd ; CODE XREF: __libc_check_standard_fds+1Cp .text:00008AD4 ; __libc_check_standard_fds+28p ... .text:00008AD4 .text:00008AD4 var_70 = -0x70 .text:00008AD4 var_60 = -0x60 .text:00008AD4 var_10 = -0x10 .text:00008AD4 .text:00008AD4 MOV R12, SP .text:00008AD8 STMFD SP!, {R4,R11,R12,LR,PC} .text:00008ADC SUB R11, R12, #4 .text:00008AE0 MOV R4, R1 .text:00008AE4 MOV R1, #1 .text:00008AE8 SUB SP, SP, #0x60 .text:00008AEC BL fcntl .text:00008AF0 CMN R0, #1 .text:00008AF4 BNE locret_8B7C .text:00008AF8 BL __errno_location .text:00008AFC LDR R3, [R0] .text:00008B00 CMP R3, #9 .text:00008B04 BNE locret_8B7C .text:00008B08 LDR R0, =aDevNull ; "/dev/null" .text:00008B0C MOV R1, R4 .text:00008B10 BL open .text:00008B14 MOV R1, R0 .text:00008B18 CMN R1, #1 .text:00008B1C BEQ loc_8B74 .text:00008B20 MOV R0, #3 .text:00008B24 SUB R2, R11, #-var_70 .text:00008B28 BL __fxstat64 .text:00008B2C CMP R0, #0 .text:00008B30 BNE loc_8B74 .text:00008B34 LDR R3, [R11,#var_60] .text:00008B38 AND R3, R3, #0xF000 .text:00008B3C CMP R3, #0x2000 .text:00008B40 BNE loc_8B74 .text:00008B44 MOV R3, #0x100 .text:00008B48 MOV R1, 0xFFFFFFC0 .text:00008B4C SUB R0, R11, #-var_10 .text:00008B50 ADD R3, R3, #3 .text:00008B54 LDR R2, [R0,R1] .text:00008B58 ADD R1, R1, R11 .text:00008B5C CMP R2, R3 .text:00008B60 SUB R3, R1, #0x10 .text:00008B64 BNE loc_8B74 .text:00008B68 LDR R3, [R3,#4] .text:00008B6C CMP R3, #0 .text:00008B70 BEQ locret_8B7C .text:00008B74 .text:00008B74 loc_8B74 ; CODE XREF: check_one_fd+48j .text:00008B74 ; check_one_fd+5Cj ... .text:00008B74 B loc_8B74 .text:00008B74 ; --------------------------------------------------------------------------- .text:00008B78 off_8B78 DCD aDevNull ; DATA XREF: check_one_fd+34r .text:00008B78 ; "/dev/null" .text:00008B7C ; --------------------------------------------------------------------------- .text:00008B7C .text:00008B7C locret_8B7C ; CODE XREF: check_one_fd+20j .text:00008B7C ; check_one_fd+30j ... .text:00008B7C LDMDB R11, {R4,R11,SP,PC} .text:00008B7C ; End of function check_one_fd .text:00008B7C .text:00008B80 .text:00008B80 ; =============== S U B R O U T I N E ======================================= .text:00008B80 .text:00008B80 ; Attributes: bp-based frame .text:00008B80 .text:00008B80 EXPORT __libc_check_standard_fds .text:00008B80 __libc_check_standard_fds ; CODE XREF: __libc_start_main+94p .text:00008B80 MOV R12, SP .text:00008B84 STMFD SP!, {R4,R11,R12,LR,PC} .text:00008B88 SUB R11, R12, #4 .text:00008B8C MOV R0, #0 .text:00008B90 MOV R1, #0x8000 .text:00008B94 MOV R4, R1 .text:00008B98 ADD R4, R4, #2 .text:00008B9C BL check_one_fd .text:00008BA0 MOV R0, #1 .text:00008BA4 MOV R1, R4 .text:00008BA8 BL check_one_fd .text:00008BAC MOV R0, #2 .text:00008BB0 MOV R1, R4 .text:00008BB4 BL check_one_fd .text:00008BB8 LDMDB R11, {R4,R11,SP,PC} .text:00008BB8 ; End of function __libc_check_standard_fds .text:00008BB8 .text:00008BBC .text:00008BBC ; =============== S U B R O U T I N E ======================================= .text:00008BBC .text:00008BBC ; Attributes: bp-based frame .text:00008BBC .text:00008BBC WEAK __errno_location .text:00008BBC __errno_location ; CODE XREF: check_one_fd+24p .text:00008BBC ; perror+18p ... .text:00008BBC MOV R12, SP .text:00008BC0 STMFD SP!, {R11,R12,LR,PC} .text:00008BC4 SUB R11, R12, #4 .text:00008BC8 LDR R0, =errno .text:00008BCC LDMDB R11, {R11,SP,PC} .text:00008BCC ; End of function __errno_location .text:00008BCC .text:00008BCC ; --------------------------------------------------------------------------- .text:00008BD0 off_8BD0 DCD errno ; DATA XREF: __errno_location+Cr .text:00008BD4 .text:00008BD4 ; =============== S U B R O U T I N E ======================================= .text:00008BD4 .text:00008BD4 ; Attributes: noreturn bp-based frame .text:00008BD4 .text:00008BD4 EXPORT abort .text:00008BD4 abort ; CODE XREF: _start+24p .text:00008BD4 ; top_check+7Cp ... .text:00008BD4 .text:00008BD4 var_118 = -0x118 .text:00008BD4 var_98 = -0x98 .text:00008BD4 var_94 = -0x94 .text:00008BD4 var_14 = -0x14 .text:00008BD4 .text:00008BD4 MOV R12, SP .text:00008BD8 STMFD SP!, {R11,R12,LR,PC} .text:00008BDC LDR R3, =0 .text:00008BE0 SUB R11, R12, #4 .text:00008BE4 CMP R3, #0 .text:00008BE8 MOV R6, R3 .text:00008BEC SUB SP, SP, #0x10C .text:00008BF0 BEQ loc_8C00 .text:00008BF4 LDR R0, =lock .text:00008BF8 MOV LR, PC .text:00008BFC MOV PC, R6 .text:00008C00 .text:00008C00 loc_8C00 ; CODE XREF: abort+1Cj .text:00008C00 LDR R3, =stage .text:00008C04 LDR R12, [R3] .text:00008C08 MOV R5, R3 .text:00008C0C CMP R12, #0 .text:00008C10 BNE loc_8C50 .text:00008C14 MOV R2, #0x1F .text:00008C18 SUB R0, R11, #-var_118 .text:00008C1C MOV R1, R0 .text:00008C20 MOV LR, R12 .text:00008C24 ADD R3, R12, #1 .text:00008C28 STR R3, [R5] .text:00008C2C .text:00008C2C loc_8C2C ; CODE XREF: abort+60j .text:00008C2C STR LR, [R0,R2,LSL#2] .text:00008C30 SUBS R2, R2, #1 .text:00008C34 BPL loc_8C2C .text:00008C38 LDR R3, [R11,#var_118] .text:00008C3C ORR R3, R3, #0x20 .text:00008C40 STR R3, [R11,#var_118] .text:00008C44 MOV R0, #1 .text:00008C48 MOV R2, #0 .text:00008C4C BL sigprocmask .text:00008C50 .text:00008C50 loc_8C50 ; CODE XREF: abort+3Cj .text:00008C50 LDR R3, [R5] .text:00008C54 CMP R3, #1 .text:00008C58 BNE loc_8C6C .text:00008C5C ADD R3, R3, #1 .text:00008C60 STR R3, [R5] .text:00008C64 MOV R0, #0 .text:00008C68 BL fflush .text:00008C6C .text:00008C6C loc_8C6C ; CODE XREF: abort+84j .text:00008C6C LDR R4, [R5] .text:00008C70 CMP R4, #2 .text:00008C74 BNE loc_8CBC .text:00008C78 LDR R2, =0 .text:00008C7C MOV R3, #0 .text:00008C80 STR R3, [R5] .text:00008C84 CMP R2, R3 .text:00008C88 BEQ loc_8C98 .text:00008C8C LDR R0, =lock .text:00008C90 MOV LR, PC .text:00008C94 MOV PC, R2 .text:00008C98 .text:00008C98 loc_8C98 ; CODE XREF: abort+B4j .text:00008C98 MOV R0, #6 .text:00008C9C BL raise .text:00008CA0 CMP R6, #0 .text:00008CA4 BEQ loc_8CB4 .text:00008CA8 LDR R0, =lock .text:00008CAC MOV LR, PC .text:00008CB0 MOV PC, R6 .text:00008CB4 .text:00008CB4 loc_8CB4 ; CODE XREF: abort+D0j .text:00008CB4 ADD R3, R4, #1 .text:00008CB8 STR R3, [R5] .text:00008CBC .text:00008CBC loc_8CBC ; CODE XREF: abort+A0j .text:00008CBC LDR R3, [R5] .text:00008CC0 CMP R3, #3 .text:00008CC4 BNE loc_8D18 .text:00008CC8 ADD R3, R3, #1 .text:00008CCC STR R3, [R5] .text:00008CD0 SUB R4, R11, #-var_98 .text:00008CD4 MOV R0, R4 .text:00008CD8 MOV R1, #0 .text:00008CDC MOV R2, #0x8C .text:00008CE0 BL memset .text:00008CE4 SUB R0, R11, #-var_94 .text:00008CE8 MOV R2, #0x1F .text:00008CEC MOV R1, R4 .text:00008CF0 MOV R12, 0xFFFFFFFF .text:00008CF4 MOV R3, #0 .text:00008CF8 STR R3, [R11,#var_98] .text:00008CFC .text:00008CFC loc_8CFC ; CODE XREF: abort+130j .text:00008CFC STR R12, [R0,R2,LSL#2] .text:00008D00 SUBS R2, R2, #1 .text:00008D04 BPL loc_8CFC .text:00008D08 MOV R2, #0 .text:00008D0C STR R2, [R11,#var_14] .text:00008D10 MOV R0, #6 .text:00008D14 BL sigaction .text:00008D18 .text:00008D18 loc_8D18 ; CODE XREF: abort+F0j .text:00008D18 LDR R3, [R5] .text:00008D1C CMP R3, #4 .text:00008D20 BNE loc_8D30 .text:00008D24 ADD R3, R3, #1 .text:00008D28 STR R3, [R5] .text:00008D2C BL fcloseall .text:00008D30 .text:00008D30 loc_8D30 ; CODE XREF: abort+14Cj .text:00008D30 LDR R0, [R5] .text:00008D34 CMP R0, #5 .text:00008D38 BNE loc_8D48 .text:00008D3C ADD R0, R0, #1 .text:00008D40 STR R0, [R5] .text:00008D44 BL raise .text:00008D48 .text:00008D48 loc_8D48 ; CODE XREF: abort+164j .text:00008D48 LDR R3, [R5] .text:00008D4C CMP R3, #6 .text:00008D50 ADDEQ R3, R3, #1 .text:00008D54 STREQ R3, [R5] .text:00008D58 LDR R3, [R5] .text:00008D5C CMP R3, #7 .text:00008D60 BNE loc_8D74 .text:00008D64 ADD R3, R3, #1 .text:00008D68 STR R3, [R5] .text:00008D6C MOV R0, #0x7F ; status .text:00008D70 BL _exit .text:00008D74 ; --------------------------------------------------------------------------- .text:00008D74 .text:00008D74 loc_8D74 ; CODE XREF: abort+18Cj .text:00008D74 ; abort:loc_8D74j .text:00008D74 B loc_8D74 .text:00008D74 ; End of function abort .text:00008D74 .text:00008D74 ; --------------------------------------------------------------------------- .text:00008D78 off_8D78 DCD 0 ; DATA XREF: abort+8r .text:00008D7C off_8D7C DCD lock ; DATA XREF: abort+20r .text:00008D7C ; abort+B8r ... .text:00008D80 off_8D80 DCD stage ; DATA XREF: abort:loc_8C00r .text:00008D84 off_8D84 DCD 0 ; DATA XREF: abort+A4r .text:00008D88 ; --------------------------------------------------------------------------- .text:00008D88 LDMDB R11, {R4-R6,R11,SP,PC} .text:00008D8C .text:00008D8C ; =============== S U B R O U T I N E ======================================= .text:00008D8C .text:00008D8C ; Attributes: noreturn bp-based frame .text:00008D8C .text:00008D8C EXPORT exit .text:00008D8C exit ; CODE XREF: __libc_start_main+128p .text:00008D8C MOV R12, SP .text:00008D90 STMFD SP!, {R11,R12,LR,PC} .text:00008D94 LDR R2, =__exit_funcs .text:00008D98 LDR R8, =__elf_set___libc_atexit_element__cleanup__ .text:00008D9C SUB R11, R12, #4 .text:00008DA0 LDR R7, =__elf_set___libc_subinit_element_non_dynamic_init__ .text:00008DA4 MOV R5, R0 .text:00008DA8 LDR R3, [R2] .text:00008DAC MOV R4, R2 .text:00008DB0 CMP R3, #0 .text:00008DB4 BEQ loc_8E78 .text:00008DB8 MOV R6, R4 .text:00008DBC .text:00008DBC loc_8DBC ; CODE XREF: exit+E8j .text:00008DBC LDR R3, [R6] .text:00008DC0 LDR R2, [R3,#4] .text:00008DC4 MOV R3, R6 .text:00008DC8 CMP R2, #0 .text:00008DCC BEQ loc_8E54 .text:00008DD0 .text:00008DD0 loc_8DD0 ; CODE XREF: exit+C4j .text:00008DD0 LDR R3, [R3] .text:00008DD4 LDR R2, [R3,#4] .text:00008DD8 SUB R2, R2, #1 .text:00008DDC STR R2, [R3,#4] .text:00008DE0 MOV R2, R2,LSL#4 .text:00008DE4 ADD R2, R2, #8 .text:00008DE8 LDR R1, [R3,R2] .text:00008DEC ADD R3, R3, R2 .text:00008DF0 CMP R1, #4 ; switch 5 cases .text:00008DF4 LDRLS PC, [PC,R1,LSL#2] ; switch jump .text:00008DF8 B loc_8E40 ; jumptable 00008DF4 default case .text:00008DF8 ; --------------------------------------------------------------------------- .text:00008DFC DCD loc_8E40 ; jump table for switch statement .text:00008DFC DCD loc_8E40 .text:00008DFC DCD loc_8E10 .text:00008DFC DCD loc_8E24 .text:00008DFC DCD loc_8E30 .text:00008E10 ; --------------------------------------------------------------------------- .text:00008E10 .text:00008E10 loc_8E10 ; CODE XREF: exit+68j .text:00008E10 ; DATA XREF: exit+70o .text:00008E10 LDR R1, [R3,#8] ; jumptable 00008DF4 case 2 .text:00008E14 MOV R0, R5 .text:00008E18 MOV LR, PC .text:00008E1C LDR PC, [R3,#4] .text:00008E20 B loc_8E40 ; jumptable 00008DF4 default case .text:00008E24 ; --------------------------------------------------------------------------- .text:00008E24 .text:00008E24 loc_8E24 ; CODE XREF: exit+68j .text:00008E24 ; DATA XREF: exit+70o .text:00008E24 MOV LR, PC ; jumptable 00008DF4 case 3 .text:00008E28 LDR PC, [R3,#4] .text:00008E2C B loc_8E40 ; jumptable 00008DF4 default case .text:00008E30 ; --------------------------------------------------------------------------- .text:00008E30 .text:00008E30 loc_8E30 ; CODE XREF: exit+68j .text:00008E30 ; DATA XREF: exit+70o .text:00008E30 LDR R0, [R3,#8] ; jumptable 00008DF4 case 4 .text:00008E34 MOV R1, R5 .text:00008E38 MOV LR, PC .text:00008E3C LDR PC, [R3,#4] .text:00008E40 .text:00008E40 loc_8E40 ; CODE XREF: exit+68j .text:00008E40 ; exit+6Cj ... .text:00008E40 LDR R3, [R4] ; jumptable 00008DF4 default case .text:00008E44 LDR R2, [R3,#4] .text:00008E48 MOV R3, R4 .text:00008E4C CMP R2, #0 .text:00008E50 BNE loc_8DD0 .text:00008E54 .text:00008E54 loc_8E54 ; CODE XREF: exit+40j .text:00008E54 LDR R0, [R6] .text:00008E58 LDR R3, [R0] .text:00008E5C CMP R3, #0 .text:00008E60 STR R3, [R6] .text:00008E64 BEQ loc_8E6C .text:00008E68 BL free .text:00008E6C .text:00008E6C loc_8E6C ; CODE XREF: exit+D8j .text:00008E6C LDR R3, [R4] .text:00008E70 CMP R3, #0 .text:00008E74 BNE loc_8DBC .text:00008E78 .text:00008E78 loc_8E78 ; CODE XREF: exit+28j .text:00008E78 MOV R4, R8 .text:00008E7C CMP R4, R7 .text:00008E80 BCS loc_8E94 .text:00008E84 .text:00008E84 loc_8E84 ; CODE XREF: exit+104j .text:00008E84 MOV LR, PC .text:00008E88 LDR PC, [R4],#4 .text:00008E8C CMP R4, R7 .text:00008E90 BCC loc_8E84 .text:00008E94 .text:00008E94 loc_8E94 ; CODE XREF: exit+F4j .text:00008E94 MOV R0, R5 ; status .text:00008E98 BL _exit .text:00008E98 ; End of function exit .text:00008E98 .text:00008E98 ; --------------------------------------------------------------------------- .text:00008E9C off_8E9C DCD __exit_funcs ; DATA XREF: exit+8r .text:00008EA0 off_8EA0 DCD __elf_set___libc_atexit_element__cleanup__ .text:00008EA0 ; DATA XREF: exit+Cr .text:00008EA4 off_8EA4 DCD __elf_set___libc_subinit_element_non_dynamic_init__ .text:00008EA4 ; DATA XREF: exit+14r .text:00008EA8 ; --------------------------------------------------------------------------- .text:00008EA8 LDMDB R11, {R4-R8,R11,SP,PC} .text:00008EAC .text:00008EAC ; =============== S U B R O U T I N E ======================================= .text:00008EAC .text:00008EAC ; Attributes: bp-based frame .text:00008EAC .text:00008EAC EXPORT __cxa_atexit .text:00008EAC __cxa_atexit ; CODE XREF: __libc_start_main+D0p .text:00008EAC ; __libc_start_main+FCp .text:00008EAC MOV R12, SP .text:00008EB0 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:00008EB4 SUB R11, R12, #4 .text:00008EB8 MOV R4, R0 .text:00008EBC MOV R5, R1 .text:00008EC0 MOV R6, R2 .text:00008EC4 BL __new_exitfn .text:00008EC8 SUBS R2, R0, #0 .text:00008ECC BEQ loc_8EE4 .text:00008ED0 MOV R3, #4 .text:00008ED4 STMIA R2, {R3-R5} .text:00008ED8 MOV R0, #0 .text:00008EDC STR R6, [R2,#0xC] .text:00008EE0 LDMDB R11, {R4-R6,R11,SP,PC} .text:00008EE4 ; --------------------------------------------------------------------------- .text:00008EE4 .text:00008EE4 loc_8EE4 ; CODE XREF: __cxa_atexit+20j .text:00008EE4 MOV R0, 0xFFFFFFFF .text:00008EE8 LDMDB R11, {R4-R6,R11,SP,PC} .text:00008EE8 ; End of function __cxa_atexit .text:00008EE8 .text:00008EEC .text:00008EEC ; =============== S U B R O U T I N E ======================================= .text:00008EEC .text:00008EEC ; Attributes: bp-based frame .text:00008EEC .text:00008EEC EXPORT __new_exitfn .text:00008EEC __new_exitfn ; CODE XREF: __cxa_atexit+18p .text:00008EEC MOV R12, SP .text:00008EF0 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:00008EF4 SUB R11, R12, #4 .text:00008EF8 LDR R3, =0 .text:00008EFC MOV R5, #0 .text:00008F00 CMP R3, R5 .text:00008F04 BEQ loc_8F14 .text:00008F08 LDR R0, =lock_0 .text:00008F0C MOV LR, PC .text:00008F10 MOV PC, R3 .text:00008F14 .text:00008F14 loc_8F14 ; CODE XREF: __new_exitfn+18j .text:00008F14 LDR R3, =__exit_funcs .text:00008F18 LDR R7, =0 .text:00008F1C LDR R4, [R3] .text:00008F20 MOV R6, R3 .text:00008F24 CMP R4, #0 .text:00008F28 BEQ loc_8F88 .text:00008F2C .text:00008F2C loc_8F2C ; CODE XREF: __new_exitfn+98j .text:00008F2C LDR R3, [R4,#4] .text:00008F30 MOV R5, #0 .text:00008F34 CMP R5, R3 .text:00008F38 MOV R2, R3 .text:00008F3C BCS loc_8F6C .text:00008F40 LDR R3, [R4,#8] .text:00008F44 CMP R3, R5 .text:00008F48 BEQ loc_8F6C .text:00008F4C MOV R0, R2 .text:00008F50 ADD R1, R4, #8 .text:00008F54 .text:00008F54 loc_8F54 ; CODE XREF: __new_exitfn+7Cj .text:00008F54 ADD R5, R5, #1 .text:00008F58 CMP R5, R0 .text:00008F5C BCS loc_8F6C .text:00008F60 LDR R3, [R1,R5,LSL#4] .text:00008F64 CMP R3, #0 .text:00008F68 BNE loc_8F54 .text:00008F6C .text:00008F6C loc_8F6C ; CODE XREF: __new_exitfn+50j .text:00008F6C ; __new_exitfn+5Cj ... .text:00008F6C CMP R5, R2 .text:00008F70 BCC loc_8F88 .text:00008F74 CMP R2, #0x1F .text:00008F78 BLS loc_8FF4 .text:00008F7C LDR R4, [R4] .text:00008F80 CMP R4, #0 .text:00008F84 BNE loc_8F2C .text:00008F88 .text:00008F88 loc_8F88 ; CODE XREF: __new_exitfn+3Cj .text:00008F88 ; __new_exitfn+84j ... .text:00008F88 CMP R4, #0 .text:00008F8C BNE loc_8FB8 .text:00008F90 MOV R0, #0x208 .text:00008F94 BL malloc .text:00008F98 SUBS R4, R0, #0 .text:00008F9C BEQ loc_8FB8 .text:00008FA0 LDR R3, [R6] .text:00008FA4 STR R3, [R4] .text:00008FA8 STR R4, [R6] .text:00008FAC MOV R5, #0 .text:00008FB0 MOV R3, #1 .text:00008FB4 STR R3, [R4,#4] .text:00008FB8 .text:00008FB8 loc_8FB8 ; CODE XREF: __new_exitfn+A0j .text:00008FB8 ; __new_exitfn+B0j .text:00008FB8 CMP R4, #0 .text:00008FBC ADDNE R2, R4, #8 .text:00008FC0 MOVNE R3, #1 .text:00008FC4 STRNE R3, [R2,R5,LSL#4] .text:00008FC8 CMP R7, #0 .text:00008FCC BEQ loc_8FDC .text:00008FD0 LDR R0, =lock_0 .text:00008FD4 MOV LR, PC .text:00008FD8 MOV PC, R7 .text:00008FDC .text:00008FDC loc_8FDC ; CODE XREF: __new_exitfn+E0j .text:00008FDC CMP R4, #0 .text:00008FE0 BEQ loc_9004 .text:00008FE4 MOV R3, R5,LSL#4 .text:00008FE8 ADD R3, R3, #8 .text:00008FEC ADD R0, R4, R3 .text:00008FF0 LDMDB R11, {R4-R7,R11,SP,PC} .text:00008FF4 ; --------------------------------------------------------------------------- .text:00008FF4 .text:00008FF4 loc_8FF4 ; CODE XREF: __new_exitfn+8Cj .text:00008FF4 MOV R5, R2 .text:00008FF8 ADD R3, R5, #1 .text:00008FFC STR R3, [R4,#4] .text:00009000 B loc_8F88 .text:00009004 ; --------------------------------------------------------------------------- .text:00009004 .text:00009004 loc_9004 ; CODE XREF: __new_exitfn+F4j .text:00009004 MOV R0, R4 .text:00009008 LDMDB R11, {R4-R7,R11,SP,PC} .text:00009008 ; End of function __new_exitfn .text:00009008 .text:00009008 ; --------------------------------------------------------------------------- .text:0000900C off_900C DCD 0 ; DATA XREF: __new_exitfn+Cr .text:00009010 off_9010 DCD lock_0 ; DATA XREF: __new_exitfn+1Cr .text:00009010 ; __new_exitfn+E4r .text:00009014 off_9014 DCD __exit_funcs ; DATA XREF: __new_exitfn:loc_8F14r .text:00009018 dword_9018 DCD 0 ; DATA XREF: __new_exitfn+2Cr .text:0000901C .text:0000901C ; =============== S U B R O U T I N E ======================================= .text:0000901C .text:0000901C ; Attributes: bp-based frame .text:0000901C .text:0000901C EXPORT printf .text:0000901C printf ; CODE XREF: read_data_from_usbd+70p .text:0000901C ; write_data_to_usbd+40p ... .text:0000901C .text:0000901C varg_r0 = 4 .text:0000901C varg_r1 = 8 .text:0000901C varg_r2 = 0xC .text:0000901C varg_r3 = 0x10 .text:0000901C .text:0000901C MOV R12, SP ; Alternative name is '_IO_printf' .text:00009020 STMFD SP!, {R0-R3} .text:00009024 STMFD SP!, {R11,R12,LR,PC} .text:00009028 LDR R3, =stdout .text:0000902C SUB R11, R12, #0x14 .text:00009030 LDR R1, [R11,#varg_r0] .text:00009034 LDR R0, [R3] .text:00009038 ADD R2, R11, #8 .text:0000903C BL vfprintf .text:00009040 B locret_9048 .text:00009040 ; --------------------------------------------------------------------------- .text:00009044 off_9044 DCD stdout ; DATA XREF: printf+Cr .text:00009048 ; --------------------------------------------------------------------------- .text:00009048 .text:00009048 locret_9048 ; CODE XREF: printf+24j .text:00009048 LDMDB R11, {R11,SP,PC} .text:00009048 ; End of function printf .text:00009048 .text:0000904C .text:0000904C ; =============== S U B R O U T I N E ======================================= .text:0000904C .text:0000904C ; Attributes: bp-based frame .text:0000904C .text:0000904C EXPORT sscanf .text:0000904C sscanf ; CODE XREF: main+38p .text:0000904C ; main+5Cp ... .text:0000904C .text:0000904C varg_r1 = 4 .text:0000904C varg_r2 = 8 .text:0000904C varg_r3 = 0xC .text:0000904C .text:0000904C MOV R12, SP ; Alternative name is '_IO_sscanf' .text:00009050 STMFD SP!, {R1-R3} .text:00009054 STMFD SP!, {R11,R12,LR,PC} .text:00009058 SUB R11, R12, #0x10 .text:0000905C LDR R1, [R11,#varg_r1] .text:00009060 ADD R2, R11, #8 .text:00009064 BL vsscanf .text:00009068 LDMDB R11, {R11,SP,PC} .text:00009068 ; End of function sscanf .text:00009068 .text:0000906C .text:0000906C ; =============== S U B R O U T I N E ======================================= .text:0000906C .text:0000906C ; Attributes: bp-based frame .text:0000906C .text:0000906C EXPORT perror .text:0000906C perror ; CODE XREF: open_usbd_interface+30p .text:0000906C ; open_fpga_interface+30p ... .text:0000906C .text:0000906C var_420 = -0x420 .text:0000906C var_410 = -0x410 .text:0000906C .text:0000906C MOV R12, SP .text:00009070 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:00009074 SUB R11, R12, #4 .text:00009078 MOV R4, R0 .text:0000907C SUB SP, SP, #0x400 .text:00009080 SUB SP, SP, #4 .text:00009084 BL __errno_location .text:00009088 CMP R4, #0 .text:0000908C LDR R0, [R0] .text:00009090 BEQ loc_90A0 .text:00009094 LDRB R3, [R4] .text:00009098 CMP R3, #0 .text:0000909C BNE loc_90AC .text:000090A0 .text:000090A0 loc_90A0 ; CODE XREF: perror+24j .text:000090A0 LDR R7, =dword_55614 .text:000090A4 MOV R4, R7 .text:000090A8 B loc_90B0 .text:000090AC ; --------------------------------------------------------------------------- .text:000090AC .text:000090AC loc_90AC ; CODE XREF: perror+30j .text:000090AC LDR R7, =asc_55618 ; ": " .text:000090B0 .text:000090B0 loc_90B0 ; CODE XREF: perror+3Cj .text:000090B0 SUB R1, R11, #-var_410 .text:000090B4 SUB R1, R1, #0xC .text:000090B8 MOV R2, #0x400 .text:000090BC BL strerror_r .text:000090C0 LDR R6, =stderr .text:000090C4 MOV R5, R0 .text:000090C8 LDR R0, [R6] .text:000090CC MOV R1, #0 .text:000090D0 BL fwide .text:000090D4 CMP R0, #0 .text:000090D8 BLE loc_9108 .text:000090DC STR R5, [SP,#0x420+var_420] .text:000090E0 LDR R0, [R6] .text:000090E4 MOV R2, R4 .text:000090E8 LDR R1, =asc_5561C ; "%" .text:000090EC MOV R3, R7 .text:000090F0 BL fwprintf .text:000090F4 B locret_9128 .text:000090F4 ; --------------------------------------------------------------------------- .text:000090F8 off_90F8 DCD dword_55614 ; DATA XREF: perror:loc_90A0r .text:000090FC off_90FC DCD asc_55618 ; DATA XREF: perror:loc_90ACr .text:000090FC ; ": " .text:00009100 off_9100 DCD stderr ; DATA XREF: perror+54r .text:00009104 off_9104 DCD asc_5561C ; DATA XREF: perror+7Cr .text:00009104 ; "%" .text:00009108 ; --------------------------------------------------------------------------- .text:00009108 .text:00009108 loc_9108 ; CODE XREF: perror+6Cj .text:00009108 STR R5, [SP,#0x420+var_420] .text:0000910C LDR R0, [R6] .text:00009110 MOV R2, R4 .text:00009114 LDR R1, =aSSS ; "%s%s%s\n" .text:00009118 MOV R3, R7 .text:0000911C BL fprintf .text:00009120 B locret_9128 .text:00009120 ; --------------------------------------------------------------------------- .text:00009124 off_9124 DCD aSSS ; DATA XREF: perror+A8r .text:00009124 ; "%s%s%s\n" .text:00009128 ; --------------------------------------------------------------------------- .text:00009128 .text:00009128 locret_9128 ; CODE XREF: perror+88j .text:00009128 ; perror+B4j .text:00009128 LDMDB R11, {R4-R7,R11,SP,PC} .text:00009128 ; End of function perror .text:00009128 .text:0000912C .text:0000912C ; =============== S U B R O U T I N E ======================================= .text:0000912C .text:0000912C ; Attributes: bp-based frame .text:0000912C .text:0000912C WEAK fflush .text:0000912C fflush ; CODE XREF: abort+94p .text:0000912C ; __assert_fail+8Cp .text:0000912C .text:0000912C var_28 = -0x28 .text:0000912C .text:0000912C MOV R12, SP .text:00009130 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:00009134 SUB R11, R12, #4 .text:00009138 SUBS R4, R0, #0 .text:0000913C SUB SP, SP, #0x10 .text:00009140 BNE loc_914C .text:00009144 BL _IO_flush_all .text:00009148 B loc_91E8 .text:0000914C ; --------------------------------------------------------------------------- .text:0000914C .text:0000914C loc_914C ; CODE XREF: fflush+14j .text:0000914C LDR R3, [R4] .text:00009150 MOV R6, #0 .text:00009154 TST R3, #0x8000 .text:00009158 BNE loc_9168 .text:0000915C LDR R3, =0 .text:00009160 SUBS R6, R3, R6 .text:00009164 MOVNE R6, #1 .text:00009168 .text:00009168 loc_9168 ; CODE XREF: fflush+2Cj .text:00009168 CMP R6, #0 .text:0000916C BEQ loc_9180 .text:00009170 SUB R0, R11, #-var_28 .text:00009174 LDR R1, =funlockfile .text:00009178 MOV R2, R4 .text:0000917C BL 0 .text:00009180 .text:00009180 loc_9180 ; CODE XREF: fflush+40j .text:00009180 LDR R3, [R4] .text:00009184 TST R3, #0x8000 .text:00009188 BNE loc_9194 .text:0000918C MOV R0, R4 .text:00009190 BL flockfile .text:00009194 .text:00009194 loc_9194 ; CODE XREF: fflush+5Cj .text:00009194 LDRB R3, [R4,#0x46] .text:00009198 MOV R3, R3,LSL#24 .text:0000919C ADD R3, R4, R3,ASR#24 .text:000091A0 LDR R2, [R3,#0x94] .text:000091A4 MOV R0, R4 .text:000091A8 MOV LR, PC .text:000091AC LDR PC, [R2,#0x30] .text:000091B0 CMP R0, #0 .text:000091B4 LDR R3, [R4] .text:000091B8 MOVEQ R5, #0 .text:000091BC MOVNE R5, 0xFFFFFFFF .text:000091C0 TST R3, #0x8000 .text:000091C4 BNE loc_91D0 .text:000091C8 MOV R0, R4 .text:000091CC BL funlockfile .text:000091D0 .text:000091D0 loc_91D0 ; CODE XREF: fflush+98j .text:000091D0 CMP R6, #0 .text:000091D4 BEQ loc_91E4 .text:000091D8 SUB R0, R11, #-var_28 .text:000091DC MOV R1, #0 .text:000091E0 BL 0 .text:000091E4 .text:000091E4 loc_91E4 ; CODE XREF: fflush+A8j .text:000091E4 MOV R0, R5 .text:000091E8 .text:000091E8 loc_91E8 ; CODE XREF: fflush+1Cj .text:000091E8 B locret_91F4 .text:000091E8 ; --------------------------------------------------------------------------- .text:000091EC dword_91EC DCD 0 ; DATA XREF: fflush+30r .text:000091F0 off_91F0 DCD funlockfile ; DATA XREF: fflush+48r .text:000091F4 ; --------------------------------------------------------------------------- .text:000091F4 .text:000091F4 locret_91F4 ; CODE XREF: fflush:loc_91E8j .text:000091F4 LDMDB R11, {R4-R6,R11,SP,PC} .text:000091F4 ; End of function fflush .text:000091F4 .text:000091F8 .text:000091F8 ; =============== S U B R O U T I N E ======================================= .text:000091F8 .text:000091F8 ; Attributes: bp-based frame .text:000091F8 .text:000091F8 WEAK vsscanf .text:000091F8 vsscanf ; CODE XREF: sscanf+18p .text:000091F8 .text:000091F8 var_DC = -0xDC .text:000091F8 var_D8 = -0xD8 .text:000091F8 var_C0 = -0xC0 .text:000091F8 var_78 = -0x78 .text:000091F8 var_2C = -0x2C .text:000091F8 .text:000091F8 MOV R12, SP ; Alternative name is '__vsscanf' .text:000091FC STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:00009200 SUB R11, R12, #4 .text:00009204 SUB R3, R11, #-var_D8 .text:00009208 MOV R7, R0 .text:0000920C SUB R5, R11, #-var_C0 .text:00009210 MOV R0, R5 .text:00009214 SUB SP, SP, #0xBC .text:00009218 STR R3, [R11,#var_78] .text:0000921C MOV R4, #0 .text:00009220 MOV R8, R1 .text:00009224 STR R4, [SP,#0xDC+var_DC] .text:00009228 MOV R1, R4 .text:0000922C MOV R6, R2 .text:00009230 MOV R2, 0xFFFFFFFF .text:00009234 MOV R3, R4 .text:00009238 BL _IO_no_init .text:0000923C LDR R3, =_IO_str_jumps .text:00009240 STR R3, [R11,#var_2C] .text:00009244 MOV R0, R5 .text:00009248 MOV R1, R7 .text:0000924C MOV R2, R4 .text:00009250 MOV R3, R4 .text:00009254 BL _IO_str_init_static .text:00009258 MOV R0, R5 .text:0000925C MOV R1, R8 .text:00009260 MOV R2, R6 .text:00009264 MOV R3, R4 .text:00009268 BL _IO_vfscanf .text:0000926C B locret_9274 .text:0000926C ; --------------------------------------------------------------------------- .text:00009270 off_9270 DCD _IO_str_jumps ; DATA XREF: vsscanf+44r .text:00009274 ; --------------------------------------------------------------------------- .text:00009274 .text:00009274 locret_9274 ; CODE XREF: vsscanf+74j .text:00009274 LDMDB R11, {R4-R8,R11,SP,PC} .text:00009274 ; End of function vsscanf .text:00009274 .text:00009278 .text:00009278 ; =============== S U B R O U T I N E ======================================= .text:00009278 .text:00009278 ; Attributes: bp-based frame .text:00009278 .text:00009278 EXPORT fwprintf .text:00009278 fwprintf ; CODE XREF: perror+84p .text:00009278 .text:00009278 varg_r1 = 4 .text:00009278 varg_r2 = 8 .text:00009278 varg_r3 = 0xC .text:00009278 .text:00009278 MOV R12, SP .text:0000927C STMFD SP!, {R1-R3} .text:00009280 STMFD SP!, {R11,R12,LR,PC} .text:00009284 SUB R11, R12, #0x10 .text:00009288 LDR R1, [R11,#varg_r1] .text:0000928C ADD R2, R11, #8 .text:00009290 BL vfwprintf .text:00009294 LDMDB R11, {R11,SP,PC} .text:00009294 ; End of function fwprintf .text:00009294 .text:00009298 .text:00009298 ; =============== S U B R O U T I N E ======================================= .text:00009298 .text:00009298 ; Attributes: bp-based frame .text:00009298 .text:00009298 EXPORT fwide .text:00009298 fwide ; CODE XREF: perror+64p .text:00009298 .text:00009298 var_28 = -0x28 .text:00009298 .text:00009298 MOV R12, SP .text:0000929C STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:000092A0 SUB R11, R12, #4 .text:000092A4 CMP R1, #0 .text:000092A8 MOVEQ R3, #0 .text:000092AC MOVNE R3, #1 .text:000092B0 MOVGE R5, R3 .text:000092B4 MOVLT R5, 0xFFFFFFFF .text:000092B8 CMP R5, #0 .text:000092BC MOV R4, R0 .text:000092C0 SUB SP, SP, #0x10 .text:000092C4 LDR R0, [R4,#0x5C] .text:000092C8 BEQ locret_9380 .text:000092CC SUBS R2, R0, #0 .text:000092D0 BNE locret_9380 .text:000092D4 LDR R3, [R4] .text:000092D8 MOV R6, R2 .text:000092DC TST R3, #0x8000 .text:000092E0 BNE loc_92F0 .text:000092E4 LDR R3, =0 .text:000092E8 SUBS R6, R3, #0 .text:000092EC MOVNE R6, #1 .text:000092F0 .text:000092F0 loc_92F0 ; CODE XREF: fwide+48j .text:000092F0 CMP R6, #0 .text:000092F4 BEQ loc_9308 .text:000092F8 SUB R0, R11, #-var_28 .text:000092FC LDR R1, =funlockfile .text:00009300 MOV R2, R4 .text:00009304 BL 0 .text:00009308 .text:00009308 loc_9308 ; CODE XREF: fwide+5Cj .text:00009308 LDR R3, [R4] .text:0000930C TST R3, #0x8000 .text:00009310 BNE loc_931C .text:00009314 MOV R0, R4 .text:00009318 BL flockfile .text:0000931C .text:0000931C loc_931C ; CODE XREF: fwide+78j .text:0000931C CMP R5, #0 .text:00009320 BGE loc_9344 .text:00009324 LDR R3, [R4,#0x5C] .text:00009328 CMP R3, #0 .text:0000932C MOVEQ R3, 0xFFFFFFFF .text:00009330 STREQ R3, [R4,#0x5C] .text:00009334 LDR R5, [R4,#0x5C] .text:00009338 B loc_9354 .text:00009338 ; --------------------------------------------------------------------------- .text:0000933C dword_933C DCD 0 ; DATA XREF: fwide+4Cr .text:00009340 off_9340 DCD funlockfile ; DATA XREF: fwide+64r .text:00009344 ; --------------------------------------------------------------------------- .text:00009344 .text:00009344 loc_9344 ; CODE XREF: fwide+88j .text:00009344 MOV R0, R4 .text:00009348 MOV R1, R5 .text:0000934C BL _IO_fwide .text:00009350 MOV R5, R0 .text:00009354 .text:00009354 loc_9354 ; CODE XREF: fwide+A0j .text:00009354 LDR R3, [R4] .text:00009358 TST R3, #0x8000 .text:0000935C BNE loc_9368 .text:00009360 MOV R0, R4 .text:00009364 BL funlockfile .text:00009368 .text:00009368 loc_9368 ; CODE XREF: fwide+C4j .text:00009368 CMP R6, #0 .text:0000936C BEQ loc_937C .text:00009370 SUB R0, R11, #-var_28 .text:00009374 MOV R1, #0 .text:00009378 BL 0 .text:0000937C .text:0000937C loc_937C ; CODE XREF: fwide+D4j .text:0000937C MOV R0, R5 .text:00009380 .text:00009380 locret_9380 ; CODE XREF: fwide+30j .text:00009380 ; fwide+38j .text:00009380 LDMDB R11, {R4-R6,R11,SP,PC} .text:00009380 ; End of function fwide .text:00009380 .text:00009384 .text:00009384 ; =============== S U B R O U T I N E ======================================= .text:00009384 .text:00009384 ; Attributes: bp-based frame .text:00009384 .text:00009384 WEAK fcloseall .text:00009384 fcloseall ; CODE XREF: abort+158p .text:00009384 MOV R12, SP .text:00009388 STMFD SP!, {R11,R12,LR,PC} .text:0000938C SUB R11, R12, #4 .text:00009390 BL _cleanup .text:00009394 LDMDB R11, {R11,SP,PC} .text:00009394 ; End of function fcloseall .text:00009394 .text:00009398 .text:00009398 ; =============== S U B R O U T I N E ======================================= .text:00009398 .text:00009398 ; Attributes: bp-based frame .text:00009398 .text:00009398 EXPORT _IO_un_link .text:00009398 _IO_un_link ; CODE XREF: _IO_default_finish+A4p .text:00009398 ; fopen+7Cp ... .text:00009398 MOV R12, SP .text:0000939C STMFD SP!, {R4,R11,R12,LR,PC} .text:000093A0 MOV R4, R0 .text:000093A4 LDR R3, [R4] .text:000093A8 SUB R11, R12, #4 .text:000093AC TST R3, #0x80 .text:000093B0 LDMEQDB R11, {R4,R11,SP,PC} .text:000093B4 LDR R3, =0 .text:000093B8 CMP R3, #0 .text:000093BC BEQ loc_93CC .text:000093C0 LDR R0, =list_all_lock .text:000093C4 MOV LR, PC .text:000093C8 MOV PC, R3 .text:000093CC .text:000093CC loc_93CC ; CODE XREF: _IO_un_link+24j .text:000093CC LDR R1, =_IO_list_all .text:000093D0 LDR R3, [R1] .text:000093D4 LDR R12, =0 .text:000093D8 CMP R3, #0 .text:000093DC BEQ loc_9414 .text:000093E0 CMP R3, R4 .text:000093E4 LDREQ R3, [R4,#0x34] .text:000093E8 STREQ R3, [R1] .text:000093EC BEQ loc_9414 .text:000093F0 .text:000093F0 loc_93F0 ; CODE XREF: _IO_un_link+70j .text:000093F0 LDR R2, [R1] .text:000093F4 LDR R3, [R2,#0x34] .text:000093F8 ADD R1, R2, #0x34 .text:000093FC CMP R3, #0 .text:00009400 BEQ loc_9414 .text:00009404 CMP R3, R4 .text:00009408 BNE loc_93F0 .text:0000940C LDR R3, [R4,#0x34] .text:00009410 STR R3, [R2,#0x34] .text:00009414 .text:00009414 loc_9414 ; CODE XREF: _IO_un_link+44j .text:00009414 ; _IO_un_link+54j ... .text:00009414 CMP R12, #0 .text:00009418 BEQ loc_9428 .text:0000941C LDR R0, =list_all_lock .text:00009420 MOV LR, PC .text:00009424 MOV PC, R12 .text:00009428 .text:00009428 loc_9428 ; CODE XREF: _IO_un_link+80j .text:00009428 LDR R3, [R4] .text:0000942C BIC R3, R3, #0x80 .text:00009430 STR R3, [R4] .text:00009434 LDMDB R11, {R4,R11,SP,PC} .text:00009434 ; End of function _IO_un_link .text:00009434 .text:00009434 ; --------------------------------------------------------------------------- .text:00009438 off_9438 DCD 0 ; DATA XREF: _IO_un_link+1Cr .text:0000943C off_943C DCD list_all_lock ; DATA XREF: _IO_un_link+28r .text:0000943C ; _IO_un_link+84r .text:00009440 off_9440 DCD _IO_list_all ; DATA XREF: _IO_un_link:loc_93CCr .text:00009444 dword_9444 DCD 0 ; DATA XREF: _IO_un_link+3Cr .text:00009448 .text:00009448 ; =============== S U B R O U T I N E ======================================= .text:00009448 .text:00009448 ; Attributes: bp-based frame .text:00009448 .text:00009448 EXPORT _IO_link_in .text:00009448 _IO_link_in ; CODE XREF: _IO_new_file_init+30p .text:00009448 ; _IO_new_file_fopen+1B8p ... .text:00009448 MOV R12, SP .text:0000944C STMFD SP!, {R4,R11,R12,LR,PC} .text:00009450 MOV R4, R0 .text:00009454 LDR R3, [R4] .text:00009458 SUB R11, R12, #4 .text:0000945C TST R3, #0x80 .text:00009460 LDMNEDB R11, {R4,R11,SP,PC} .text:00009464 LDR R2, =0 .text:00009468 ORR R3, R3, #0x80 .text:0000946C STR R3, [R4] .text:00009470 CMP R2, #0 .text:00009474 BEQ loc_9484 .text:00009478 LDR R0, =list_all_lock .text:0000947C MOV LR, PC .text:00009480 MOV PC, R2 .text:00009484 .text:00009484 loc_9484 ; CODE XREF: _IO_link_in+2Cj .text:00009484 LDR R2, =_IO_list_all .text:00009488 LDR R3, [R2] .text:0000948C STR R3, [R4,#0x34] .text:00009490 LDR R3, =0 .text:00009494 STR R4, [R2] .text:00009498 CMP R3, #0 .text:0000949C LDMEQDB R11, {R4,R11,SP,PC} .text:000094A0 LDR R0, =list_all_lock .text:000094A4 MOV LR, PC .text:000094A8 MOV PC, R3 .text:000094AC LDMDB R11, {R4,R11,SP,PC} .text:000094AC ; End of function _IO_link_in .text:000094AC .text:000094AC ; --------------------------------------------------------------------------- .text:000094B0 off_94B0 DCD 0 ; DATA XREF: _IO_link_in+1Cr .text:000094B4 off_94B4 DCD list_all_lock ; DATA XREF: _IO_link_in+30r .text:000094B4 ; _IO_link_in+58r .text:000094B8 off_94B8 DCD _IO_list_all ; DATA XREF: _IO_link_in:loc_9484r .text:000094BC off_94BC DCD 0 ; DATA XREF: _IO_link_in+48r .text:000094C0 .text:000094C0 ; =============== S U B R O U T I N E ======================================= .text:000094C0 .text:000094C0 ; Attributes: bp-based frame .text:000094C0 .text:000094C0 EXPORT _IO_least_marker .text:000094C0 _IO_least_marker ; CODE XREF: save_for_backup+14p .text:000094C0 MOV R12, SP .text:000094C4 STMFD SP!, {R11,R12,LR,PC} .text:000094C8 LDR R3, [R0,#0xC] .text:000094CC SUB R11, R12, #4 .text:000094D0 LDR R2, [R0,#0x30] .text:000094D4 RSB R0, R3, R1 .text:000094D8 CMP R2, #0 .text:000094DC LDMEQDB R11, {R11,SP,PC} .text:000094E0 .text:000094E0 loc_94E0 ; CODE XREF: _IO_least_marker+34j .text:000094E0 LDR R3, [R2,#8] .text:000094E4 LDR R2, [R2] .text:000094E8 CMP R3, R0 .text:000094EC MOVLT R0, R3 .text:000094F0 CMP R2, #0 .text:000094F4 BNE loc_94E0 .text:000094F8 LDMDB R11, {R11,SP,PC} .text:000094F8 ; End of function _IO_least_marker .text:000094F8 .text:000094FC .text:000094FC ; =============== S U B R O U T I N E ======================================= .text:000094FC .text:000094FC ; Attributes: bp-based frame .text:000094FC .text:000094FC EXPORT _IO_switch_to_main_get_area .text:000094FC _IO_switch_to_main_get_area ; CODE XREF: _IO_free_backup_area+1Cp .text:000094FC ; __underflow+88p ... .text:000094FC MOV R12, SP .text:00009500 STMFD SP!, {R11,R12,LR,PC} .text:00009504 LDR R3, [R0] .text:00009508 BIC R3, R3, #0x100 .text:0000950C STR R3, [R0] .text:00009510 LDR R3, [R0,#0x2C] .text:00009514 LDR R2, [R0,#8] .text:00009518 STR R3, [R0,#8] .text:0000951C STR R2, [R0,#0x2C] .text:00009520 LDR R3, [R0,#0x24] .text:00009524 LDR R2, [R0,#0xC] .text:00009528 STR R3, [R0,#0xC] .text:0000952C STR R3, [R0,#4] .text:00009530 SUB R11, R12, #4 .text:00009534 STR R2, [R0,#0x24] .text:00009538 LDMDB R11, {R11,SP,PC} .text:00009538 ; End of function _IO_switch_to_main_get_area .text:00009538 .text:0000953C .text:0000953C ; =============== S U B R O U T I N E ======================================= .text:0000953C .text:0000953C ; Attributes: bp-based frame .text:0000953C .text:0000953C EXPORT _IO_switch_to_backup_area .text:0000953C _IO_switch_to_backup_area ; CODE XREF: _IO_seekmark+58p .text:0000953C ; _IO_default_pbackfail+B8p .text:0000953C MOV R12, SP .text:00009540 STMFD SP!, {R11,R12,LR,PC} .text:00009544 LDR R3, [R0] .text:00009548 ORR R3, R3, #0x100 .text:0000954C STR R3, [R0] .text:00009550 LDR R2, [R0,#0x2C] .text:00009554 LDR R1, [R0,#8] .text:00009558 STR R2, [R0,#8] .text:0000955C STR R1, [R0,#0x2C] .text:00009560 LDR R3, [R0,#0x24] .text:00009564 LDR R1, [R0,#0xC] .text:00009568 STR R3, [R0,#0xC] .text:0000956C STR R2, [R0,#4] .text:00009570 SUB R11, R12, #4 .text:00009574 STR R1, [R0,#0x24] .text:00009578 LDMDB R11, {R11,SP,PC} .text:00009578 ; End of function _IO_switch_to_backup_area .text:00009578 .text:0000957C .text:0000957C ; =============== S U B R O U T I N E ======================================= .text:0000957C .text:0000957C ; Attributes: bp-based frame .text:0000957C .text:0000957C EXPORT _IO_switch_to_get_mode .text:0000957C _IO_switch_to_get_mode ; CODE XREF: __underflow+58p .text:0000957C ; __uflow+58p ... .text:0000957C MOV R12, SP .text:00009580 STMFD SP!, {R4,R11,R12,LR,PC} .text:00009584 MOV R4, R0 .text:00009588 LDR R2, [R4,#0x14] .text:0000958C LDR R3, [R4,#0x10] .text:00009590 SUB R11, R12, #4 .text:00009594 CMP R2, R3 .text:00009598 BLS loc_95C0 .text:0000959C LDRB R3, [R4,#0x46] .text:000095A0 MOV R3, R3,LSL#24 .text:000095A4 ADD R3, R4, R3,ASR#24 .text:000095A8 LDR R2, [R3,#0x94] .text:000095AC MOV R1, 0xFFFFFFFF .text:000095B0 MOV LR, PC .text:000095B4 LDR PC, [R2,#0xC] .text:000095B8 CMN R0, #1 .text:000095BC LDMEQDB R11, {R4,R11,SP,PC} .text:000095C0 .text:000095C0 loc_95C0 ; CODE XREF: _IO_switch_to_get_mode+1Cj .text:000095C0 LDR R3, [R4] .text:000095C4 TST R3, #0x100 .text:000095C8 LDRNE R3, [R4,#0x28] .text:000095CC STRNE R3, [R4,#0xC] .text:000095D0 BNE loc_95EC .text:000095D4 LDR R1, [R4,#0x14] .text:000095D8 LDR R3, [R4,#8] .text:000095DC LDR R2, [R4,#0x1C] .text:000095E0 CMP R1, R3 .text:000095E4 STR R2, [R4,#0xC] .text:000095E8 STRHI R1, [R4,#8] .text:000095EC .text:000095EC loc_95EC ; CODE XREF: _IO_switch_to_get_mode+54j .text:000095EC LDR R2, [R4,#0x14] .text:000095F0 STR R2, [R4,#4] .text:000095F4 STR R2, [R4,#0x18] .text:000095F8 LDR R3, [R4] .text:000095FC STR R2, [R4,#0x10] .text:00009600 MOV R0, #0 .text:00009604 BIC R3, R3, #0x800 .text:00009608 STR R3, [R4] .text:0000960C LDMDB R11, {R4,R11,SP,PC} .text:0000960C ; End of function _IO_switch_to_get_mode .text:0000960C .text:00009610 .text:00009610 ; =============== S U B R O U T I N E ======================================= .text:00009610 .text:00009610 ; Attributes: bp-based frame .text:00009610 .text:00009610 EXPORT _IO_free_backup_area .text:00009610 _IO_free_backup_area ; CODE XREF: __underflow+D0p .text:00009610 ; __uflow+D4p ... .text:00009610 MOV R12, SP .text:00009614 STMFD SP!, {R4,R11,R12,LR,PC} .text:00009618 MOV R4, R0 .text:0000961C LDR R3, [R4] .text:00009620 SUB R11, R12, #4 .text:00009624 TST R3, #0x100 .text:00009628 BEQ loc_9630 .text:0000962C BL _IO_switch_to_main_get_area .text:00009630 .text:00009630 loc_9630 ; CODE XREF: _IO_free_backup_area+18j .text:00009630 LDR R0, [R4,#0x24] .text:00009634 BL free .text:00009638 MOV R3, #0 .text:0000963C STR R3, [R4,#0x24] .text:00009640 STR R3, [R4,#0x2C] .text:00009644 STR R3, [R4,#0x28] .text:00009648 LDMDB R11, {R4,R11,SP,PC} .text:00009648 ; End of function _IO_free_backup_area .text:00009648 .text:0000964C .text:0000964C ; =============== S U B R O U T I N E ======================================= .text:0000964C .text:0000964C ; Attributes: bp-based frame .text:0000964C .text:0000964C EXPORT __overflow .text:0000964C __overflow ; CODE XREF: vfprintf+ADCp .text:0000964C ; vfprintf+1004p ... .text:0000964C MOV R12, SP .text:00009650 STMFD SP!, {R11,R12,LR,PC} .text:00009654 MOV R2, R0 .text:00009658 LDR R3, [R2,#0x5C] .text:0000965C SUB R11, R12, #4 .text:00009660 CMP R3, #0 .text:00009664 MOVEQ R3, 0xFFFFFFFF .text:00009668 STREQ R3, [R2,#0x5C] .text:0000966C LDRB R3, [R2,#0x46] .text:00009670 MOV R0, R2 .text:00009674 MOV R3, R3,LSL#24 .text:00009678 ADD R3, R2, R3,ASR#24 .text:0000967C LDR R2, [R3,#0x94] .text:00009680 MOV LR, PC .text:00009684 LDR PC, [R2,#0xC] .text:00009688 LDMDB R11, {R11,SP,PC} .text:00009688 ; End of function __overflow .text:00009688 .text:0000968C .text:0000968C ; =============== S U B R O U T I N E ======================================= .text:0000968C .text:0000968C ; Attributes: bp-based frame .text:0000968C .text:0000968C save_for_backup ; CODE XREF: __underflow+ACp .text:0000968C ; __uflow+B0p ... .text:0000968C MOV R12, SP .text:00009690 STMFD SP!, {R4-R12,LR,PC} .text:00009694 SUB R11, R12, #4 .text:00009698 MOV R4, R0 .text:0000969C MOV R8, R1 .text:000096A0 BL _IO_least_marker .text:000096A4 LDR R2, [R4,#0xC] .text:000096A8 LDR R1, [R4,#0x2C] .text:000096AC MOV R5, R0 .text:000096B0 LDR R0, [R4,#0x24] .text:000096B4 RSB R3, R2, R8 .text:000096B8 RSB R6, R5, R3 .text:000096BC RSB R3, R0, R1 .text:000096C0 CMP R6, R3 .text:000096C4 BLS loc_9750 .text:000096C8 MOV R9, #0x64 .text:000096CC ADD R0, R6, R9 .text:000096D0 BL malloc .text:000096D4 SUBS R7, R0, #0 .text:000096D8 MOVEQ R0, 0xFFFFFFFF .text:000096DC LDMEQDB R11, {R4-R11,SP,PC} .text:000096E0 CMP R5, #0 .text:000096E4 BGE loc_9714 .text:000096E8 ADD R3, R7, #0x64 .text:000096EC MOV R0, R3 .text:000096F0 RSB R2, R5, #0 .text:000096F4 LDR R1, [R4,#0x2C] .text:000096F8 MOV R10, R3 .text:000096FC ADD R1, R1, R5 .text:00009700 BL mempcpy .text:00009704 LDR R1, [R4,#0xC] .text:00009708 RSB R2, R1, R8 .text:0000970C BL mempcpy .text:00009710 B loc_9730 .text:00009714 ; --------------------------------------------------------------------------- .text:00009714 .text:00009714 loc_9714 ; CODE XREF: save_for_backup+58j .text:00009714 ADD R3, R7, #0x64 .text:00009718 MOV R0, R3 .text:0000971C MOV R2, R6 .text:00009720 LDR R1, [R4,#0xC] .text:00009724 MOV R10, R3 .text:00009728 ADD R1, R1, R5 .text:0000972C BL memcpy .text:00009730 .text:00009730 loc_9730 ; CODE XREF: save_for_backup+84j .text:00009730 LDR R0, [R4,#0x24] .text:00009734 CMP R0, #0 .text:00009738 BEQ loc_9740 .text:0000973C BL free .text:00009740 .text:00009740 loc_9740 ; CODE XREF: save_for_backup+ACj .text:00009740 STR R7, [R4,#0x24] .text:00009744 ADD R3, R10, R6 .text:00009748 STR R3, [R4,#0x2C] .text:0000974C B loc_97A0 .text:00009750 ; --------------------------------------------------------------------------- .text:00009750 .text:00009750 loc_9750 ; CODE XREF: save_for_backup+38j .text:00009750 RSB R9, R6, R3 .text:00009754 CMP R5, #0 .text:00009758 BGE loc_9788 .text:0000975C ADD R0, R0, R9 .text:00009760 ADD R1, R1, R5 .text:00009764 RSB R2, R5, #0 .text:00009768 BL memmove .text:0000976C LDR R0, [R4,#0x24] .text:00009770 LDR R1, [R4,#0xC] .text:00009774 ADD R0, R0, R9 .text:00009778 RSB R0, R5, R0 .text:0000977C RSB R2, R1, R8 .text:00009780 BL memcpy .text:00009784 B loc_97A0 .text:00009788 ; --------------------------------------------------------------------------- .text:00009788 .text:00009788 loc_9788 ; CODE XREF: save_for_backup+CCj .text:00009788 CMP R6, #0 .text:0000978C BEQ loc_97A0 .text:00009790 ADD R0, R0, R9 .text:00009794 ADD R1, R2, R5 .text:00009798 MOV R2, R6 .text:0000979C BL memcpy .text:000097A0 .text:000097A0 loc_97A0 ; CODE XREF: save_for_backup+C0j .text:000097A0 ; save_for_backup+F8j ... .text:000097A0 LDR R0, [R4,#0x30] .text:000097A4 LDR R3, [R4,#0x24] .text:000097A8 LDR R2, [R4,#0xC] .text:000097AC CMP R0, #0 .text:000097B0 ADD R3, R3, R9 .text:000097B4 RSB R1, R2, R8 .text:000097B8 STR R3, [R4,#0x28] .text:000097BC BEQ loc_97D8 .text:000097C0 .text:000097C0 loc_97C0 ; CODE XREF: save_for_backup+148j .text:000097C0 LDR R3, [R0,#8] .text:000097C4 RSB R3, R1, R3 .text:000097C8 STR R3, [R0,#8] .text:000097CC LDR R0, [R0] .text:000097D0 CMP R0, #0 .text:000097D4 BNE loc_97C0 .text:000097D8 .text:000097D8 loc_97D8 ; CODE XREF: save_for_backup+130j .text:000097D8 MOV R0, #0 .text:000097DC LDMDB R11, {R4-R11,SP,PC} .text:000097DC ; End of function save_for_backup .text:000097DC .text:000097E0 .text:000097E0 ; =============== S U B R O U T I N E ======================================= .text:000097E0 .text:000097E0 ; Attributes: bp-based frame .text:000097E0 .text:000097E0 EXPORT __underflow .text:000097E0 __underflow ; CODE XREF: _IO_default_xsgetn+9Cp .text:000097E0 ; _IO_file_xsgetn+F0p ... .text:000097E0 MOV R12, SP .text:000097E4 STMFD SP!, {R4,R11,R12,LR,PC} .text:000097E8 MOV R4, R0 .text:000097EC LDRB R3, [R4,#0x46] .text:000097F0 SUB R11, R12, #4 .text:000097F4 CMP R3, #0 .text:000097F8 BNE loc_9818 .text:000097FC LDR R3, [R4,#0x5C] .text:00009800 MOV R2, 0xFFFFFFFF .text:00009804 CMP R3, #0 .text:00009808 STREQ R2, [R4,#0x5C] .text:0000980C LDR R2, [R4,#0x5C] .text:00009810 CMN R2, #1 .text:00009814 BNE loc_9898 .text:00009818 .text:00009818 loc_9818 ; CODE XREF: __underflow+18j .text:00009818 LDR R3, [R4,#0x5C] .text:0000981C CMP R3, #0 .text:00009820 MOVEQ R3, 0xFFFFFFFF .text:00009824 STREQ R3, [R4,#0x5C] .text:00009828 LDR R3, [R4] .text:0000982C TST R3, #0x800 .text:00009830 BEQ loc_9844 .text:00009834 MOV R0, R4 .text:00009838 BL _IO_switch_to_get_mode .text:0000983C CMN R0, #1 .text:00009840 LDMEQDB R11, {R4,R11,SP,PC} .text:00009844 .text:00009844 loc_9844 ; CODE XREF: __underflow+50j .text:00009844 LDMIB R4, {R2,R3} .text:00009848 CMP R2, R3 .text:0000984C BCS loc_9858 .text:00009850 .text:00009850 loc_9850 ; CODE XREF: __underflow+94j .text:00009850 LDRB R0, [R2] .text:00009854 LDMDB R11, {R4,R11,SP,PC} .text:00009858 ; --------------------------------------------------------------------------- .text:00009858 .text:00009858 loc_9858 ; CODE XREF: __underflow+6Cj .text:00009858 LDR R3, [R4] .text:0000985C TST R3, #0x100 .text:00009860 BEQ loc_9878 .text:00009864 MOV R0, R4 .text:00009868 BL _IO_switch_to_main_get_area .text:0000986C LDMIB R4, {R2,R3} .text:00009870 CMP R2, R3 .text:00009874 BCC loc_9850 .text:00009878 .text:00009878 loc_9878 ; CODE XREF: __underflow+80j .text:00009878 LDR R3, [R4,#0x30] .text:0000987C CMP R3, #0 .text:00009880 BEQ loc_98A0 .text:00009884 LDR R1, [R4,#8] .text:00009888 MOV R0, R4 .text:0000988C BL save_for_backup .text:00009890 CMP R0, #0 .text:00009894 BEQ loc_98B4 .text:00009898 .text:00009898 loc_9898 ; CODE XREF: __underflow+34j .text:00009898 MOV R0, 0xFFFFFFFF .text:0000989C LDMDB R11, {R4,R11,SP,PC} .text:000098A0 ; --------------------------------------------------------------------------- .text:000098A0 .text:000098A0 loc_98A0 ; CODE XREF: __underflow+A0j .text:000098A0 LDR R3, [R4,#0x24] .text:000098A4 CMP R3, #0 .text:000098A8 BEQ loc_98B4 .text:000098AC MOV R0, R4 .text:000098B0 BL _IO_free_backup_area .text:000098B4 .text:000098B4 loc_98B4 ; CODE XREF: __underflow+B4j .text:000098B4 ; __underflow+C8j .text:000098B4 LDRB R3, [R4,#0x46] .text:000098B8 MOV R3, R3,LSL#24 .text:000098BC ADD R3, R4, R3,ASR#24 .text:000098C0 LDR R2, [R3,#0x94] .text:000098C4 MOV R0, R4 .text:000098C8 MOV LR, PC .text:000098CC LDR PC, [R2,#0x10] .text:000098D0 LDMDB R11, {R4,R11,SP,PC} .text:000098D0 ; End of function __underflow .text:000098D0 .text:000098D4 .text:000098D4 ; =============== S U B R O U T I N E ======================================= .text:000098D4 .text:000098D4 ; Attributes: bp-based frame .text:000098D4 .text:000098D4 EXPORT __uflow .text:000098D4 __uflow ; CODE XREF: _IO_vfscanf+194p .text:000098D4 ; _IO_vfscanf+27Cp ... .text:000098D4 MOV R12, SP .text:000098D8 STMFD SP!, {R4,R11,R12,LR,PC} .text:000098DC MOV R4, R0 .text:000098E0 LDRB R3, [R4,#0x46] .text:000098E4 SUB R11, R12, #4 .text:000098E8 CMP R3, #0 .text:000098EC BNE loc_990C .text:000098F0 LDR R3, [R4,#0x5C] .text:000098F4 MOV R2, 0xFFFFFFFF .text:000098F8 CMP R3, #0 .text:000098FC STREQ R2, [R4,#0x5C] .text:00009900 LDR R2, [R4,#0x5C] .text:00009904 CMN R2, #1 .text:00009908 BNE loc_9990 .text:0000990C .text:0000990C loc_990C ; CODE XREF: __uflow+18j .text:0000990C LDR R3, [R4,#0x5C] .text:00009910 CMP R3, #0 .text:00009914 MOVEQ R3, 0xFFFFFFFF .text:00009918 STREQ R3, [R4,#0x5C] .text:0000991C LDR R3, [R4] .text:00009920 TST R3, #0x800 .text:00009924 BEQ loc_9938 .text:00009928 MOV R0, R4 .text:0000992C BL _IO_switch_to_get_mode .text:00009930 CMN R0, #1 .text:00009934 LDMEQDB R11, {R4,R11,SP,PC} .text:00009938 .text:00009938 loc_9938 ; CODE XREF: __uflow+50j .text:00009938 LDMIB R4, {R2,R3} .text:0000993C CMP R2, R3 .text:00009940 BCS loc_9950 .text:00009944 .text:00009944 loc_9944 ; CODE XREF: __uflow+98j .text:00009944 LDRB R0, [R2],#1 .text:00009948 STR R2, [R4,#4] .text:0000994C LDMDB R11, {R4,R11,SP,PC} .text:00009950 ; --------------------------------------------------------------------------- .text:00009950 .text:00009950 loc_9950 ; CODE XREF: __uflow+6Cj .text:00009950 LDR R3, [R4] .text:00009954 TST R3, #0x100 .text:00009958 BEQ loc_9970 .text:0000995C MOV R0, R4 .text:00009960 BL _IO_switch_to_main_get_area .text:00009964 LDMIB R4, {R2,R3} .text:00009968 CMP R2, R3 .text:0000996C BCC loc_9944 .text:00009970 .text:00009970 loc_9970 ; CODE XREF: __uflow+84j .text:00009970 LDR R3, [R4,#0x30] .text:00009974 CMP R3, #0 .text:00009978 BEQ loc_9998 .text:0000997C LDR R1, [R4,#8] .text:00009980 MOV R0, R4 .text:00009984 BL save_for_backup .text:00009988 CMP R0, #0 .text:0000998C BEQ loc_99AC .text:00009990 .text:00009990 loc_9990 ; CODE XREF: __uflow+34j .text:00009990 MOV R0, 0xFFFFFFFF .text:00009994 LDMDB R11, {R4,R11,SP,PC} .text:00009998 ; --------------------------------------------------------------------------- .text:00009998 .text:00009998 loc_9998 ; CODE XREF: __uflow+A4j .text:00009998 LDR R3, [R4,#0x24] .text:0000999C CMP R3, #0 .text:000099A0 BEQ loc_99AC .text:000099A4 MOV R0, R4 .text:000099A8 BL _IO_free_backup_area .text:000099AC .text:000099AC loc_99AC ; CODE XREF: __uflow+B8j .text:000099AC ; __uflow+CCj .text:000099AC LDRB R3, [R4,#0x46] .text:000099B0 MOV R3, R3,LSL#24 .text:000099B4 ADD R3, R4, R3,ASR#24 .text:000099B8 LDR R2, [R3,#0x94] .text:000099BC MOV R0, R4 .text:000099C0 MOV LR, PC .text:000099C4 LDR PC, [R2,#0x14] .text:000099C8 LDMDB R11, {R4,R11,SP,PC} .text:000099C8 ; End of function __uflow .text:000099C8 .text:000099CC .text:000099CC ; =============== S U B R O U T I N E ======================================= .text:000099CC .text:000099CC ; Attributes: bp-based frame .text:000099CC .text:000099CC EXPORT _IO_setb .text:000099CC _IO_setb ; CODE XREF: _IO_doallocbuf+68p .text:000099CC ; _IO_default_setbuf+78p ... .text:000099CC MOV R12, SP .text:000099D0 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:000099D4 SUB R11, R12, #4 .text:000099D8 MOV R4, R0 .text:000099DC MOV R6, R1 .text:000099E0 MOV R7, R2 .text:000099E4 LDR R12, [R4,#0x1C] .text:000099E8 MOV R5, R3 .text:000099EC CMP R12, #0 .text:000099F0 BEQ loc_9A20 .text:000099F4 LDR R3, [R4] .text:000099F8 TST R3, #1 .text:000099FC BNE loc_9A20 .text:00009A00 LDR R1, [R4,#0x20] .text:00009A04 MOV R0, R12 .text:00009A08 RSB R1, R12, R1 .text:00009A0C ADD R1, R1, #0xFF0 .text:00009A10 ADD R1, R1, #0xF .text:00009A14 BIC R1, R1, #0xFF0 .text:00009A18 BIC R1, R1, #0xF .text:00009A1C BL munmap .text:00009A20 .text:00009A20 loc_9A20 ; CODE XREF: _IO_setb+24j .text:00009A20 ; _IO_setb+30j .text:00009A20 STR R6, [R4,#0x1C] .text:00009A24 CMP R5, #0 .text:00009A28 STR R7, [R4,#0x20] .text:00009A2C LDRNE R3, [R4] .text:00009A30 BICNE R3, R3, #1 .text:00009A34 STRNE R3, [R4] .text:00009A38 LDREQ R3, [R4] .text:00009A3C ORREQ R3, R3, #1 .text:00009A40 STREQ R3, [R4] .text:00009A44 LDMDB R11, {R4-R7,R11,SP,PC} .text:00009A44 ; End of function _IO_setb .text:00009A44 .text:00009A48 .text:00009A48 ; =============== S U B R O U T I N E ======================================= .text:00009A48 .text:00009A48 ; Attributes: bp-based frame .text:00009A48 .text:00009A48 EXPORT _IO_doallocbuf .text:00009A48 _IO_doallocbuf ; CODE XREF: _IO_wfile_underflow+160p .text:00009A48 ; _IO_wfile_overflow+90p ... .text:00009A48 MOV R12, SP .text:00009A4C STMFD SP!, {R4,R11,R12,LR,PC} .text:00009A50 MOV R4, R0 .text:00009A54 LDR R3, [R4,#0x1C] .text:00009A58 SUB R11, R12, #4 .text:00009A5C CMP R3, #0 .text:00009A60 LDMNEDB R11, {R4,R11,SP,PC} .text:00009A64 LDR R3, [R4] .text:00009A68 TST R3, #2 .text:00009A6C BEQ loc_9A7C .text:00009A70 LDR R3, [R4,#0x5C] .text:00009A74 CMP R3, #0 .text:00009A78 BLE loc_9AA0 .text:00009A7C .text:00009A7C loc_9A7C ; CODE XREF: _IO_doallocbuf+24j .text:00009A7C LDRB R3, [R4,#0x46] .text:00009A80 MOV R3, R3,LSL#24 .text:00009A84 ADD R3, R4, R3,ASR#24 .text:00009A88 LDR R2, [R3,#0x94] .text:00009A8C MOV R0, R4 .text:00009A90 MOV LR, PC .text:00009A94 LDR PC, [R2,#0x34] .text:00009A98 CMN R0, #1 .text:00009A9C LDMNEDB R11, {R4,R11,SP,PC} .text:00009AA0 .text:00009AA0 loc_9AA0 ; CODE XREF: _IO_doallocbuf+30j .text:00009AA0 MOV R0, R4 .text:00009AA4 ADD R1, R0, #0x47 .text:00009AA8 ADD R2, R0, #0x48 .text:00009AAC MOV R3, #0 .text:00009AB0 BL _IO_setb .text:00009AB4 LDMDB R11, {R4,R11,SP,PC} .text:00009AB4 ; End of function _IO_doallocbuf .text:00009AB4 .text:00009AB8 .text:00009AB8 ; =============== S U B R O U T I N E ======================================= .text:00009AB8 .text:00009AB8 ; Attributes: bp-based frame .text:00009AB8 .text:00009AB8 EXPORT _IO_default_underflow .text:00009AB8 _IO_default_underflow .text:00009AB8 MOV R12, SP .text:00009ABC STMFD SP!, {R11,R12,LR,PC} .text:00009AC0 SUB R11, R12, #4 .text:00009AC4 MOV R0, 0xFFFFFFFF .text:00009AC8 LDMDB R11, {R11,SP,PC} .text:00009AC8 ; End of function _IO_default_underflow .text:00009AC8 .text:00009ACC .text:00009ACC ; =============== S U B R O U T I N E ======================================= .text:00009ACC .text:00009ACC ; Attributes: bp-based frame .text:00009ACC .text:00009ACC EXPORT _IO_default_uflow .text:00009ACC _IO_default_uflow .text:00009ACC MOV R12, SP .text:00009AD0 STMFD SP!, {R4,R11,R12,LR,PC} .text:00009AD4 MOV R4, R0 .text:00009AD8 LDRB R3, [R4,#0x46] .text:00009ADC SUB R11, R12, #4 .text:00009AE0 MOV R3, R3,LSL#24 .text:00009AE4 ADD R3, R4, R3,ASR#24 .text:00009AE8 LDR R2, [R3,#0x94] .text:00009AEC MOV LR, PC .text:00009AF0 LDR PC, [R2,#0x10] .text:00009AF4 CMN R0, #1 .text:00009AF8 LDMEQDB R11, {R4,R11,SP,PC} .text:00009AFC LDR R3, [R4,#4] .text:00009B00 LDRB R0, [R3],#1 .text:00009B04 STR R3, [R4,#4] .text:00009B08 LDMDB R11, {R4,R11,SP,PC} .text:00009B08 ; End of function _IO_default_uflow .text:00009B08 .text:00009B0C .text:00009B0C ; =============== S U B R O U T I N E ======================================= .text:00009B0C .text:00009B0C ; Attributes: bp-based frame .text:00009B0C .text:00009B0C EXPORT _IO_default_xsputn .text:00009B0C _IO_default_xsputn ; CODE XREF: _IO_new_file_xsputn+174p .text:00009B0C MOV R12, SP .text:00009B10 STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:00009B14 SUB R11, R12, #4 .text:00009B18 MOV R7, R1 .text:00009B1C MOV R8, R2 .text:00009B20 SUBS R6, R8, #0 .text:00009B24 MOV R5, R0 .text:00009B28 MOVEQ R0, R8 .text:00009B2C LDMEQDB R11, {R4-R8,R11,SP,PC} .text:00009B30 .text:00009B30 loc_9B30 ; CODE XREF: _IO_default_xsputn+BCj .text:00009B30 ADD R3, R5, #0x18 .text:00009B34 LDMDA R3, {R3,R4} .text:00009B38 SUB R4, R4, R3 .text:00009B3C LDR R0, [R5,#0x14] .text:00009B40 CMP R4, #0 .text:00009B44 BLE loc_9B98 .text:00009B48 CMP R4, R6 .text:00009B4C MOVCS R4, R6 .text:00009B50 CMP R4, #0x14 .text:00009B54 BLE loc_9B6C .text:00009B58 MOV R1, R7 .text:00009B5C ADD R7, R7, R4 .text:00009B60 MOV R2, R4 .text:00009B64 BL mempcpy .text:00009B68 B loc_9B90 .text:00009B6C ; --------------------------------------------------------------------------- .text:00009B6C .text:00009B6C loc_9B6C ; CODE XREF: _IO_default_xsputn+48j .text:00009B6C CMP R4, #0 .text:00009B70 MOVLE R4, #0 .text:00009B74 BLE loc_9B94 .text:00009B78 SUBS R2, R4, #1 .text:00009B7C BMI loc_9B90 .text:00009B80 .text:00009B80 loc_9B80 ; CODE XREF: _IO_default_xsputn+80j .text:00009B80 LDRB R3, [R7],#1 .text:00009B84 SUBS R2, R2, #1 .text:00009B88 STRB R3, [R0],#1 .text:00009B8C BPL loc_9B80 .text:00009B90 .text:00009B90 loc_9B90 ; CODE XREF: _IO_default_xsputn+5Cj .text:00009B90 ; _IO_default_xsputn+70j .text:00009B90 STR R0, [R5,#0x14] .text:00009B94 .text:00009B94 loc_9B94 ; CODE XREF: _IO_default_xsputn+68j .text:00009B94 RSB R6, R4, R6 .text:00009B98 .text:00009B98 loc_9B98 ; CODE XREF: _IO_default_xsputn+38j .text:00009B98 CMP R6, #0 .text:00009B9C BEQ loc_9BCC .text:00009BA0 LDRB R3, [R5,#0x46] .text:00009BA4 LDRB R1, [R7],#1 .text:00009BA8 MOV R3, R3,LSL#24 .text:00009BAC ADD R3, R5, R3,ASR#24 .text:00009BB0 LDR R2, [R3,#0x94] .text:00009BB4 MOV R0, R5 .text:00009BB8 MOV LR, PC .text:00009BBC LDR PC, [R2,#0xC] .text:00009BC0 CMN R0, #1 .text:00009BC4 SUBNE R6, R6, #1 .text:00009BC8 BNE loc_9B30 .text:00009BCC .text:00009BCC loc_9BCC ; CODE XREF: _IO_default_xsputn+90j .text:00009BCC RSB R0, R6, R8 .text:00009BD0 LDMDB R11, {R4-R8,R11,SP,PC} .text:00009BD0 ; End of function _IO_default_xsputn .text:00009BD0 .text:00009BD4 .text:00009BD4 ; =============== S U B R O U T I N E ======================================= .text:00009BD4 .text:00009BD4 ; Attributes: bp-based frame .text:00009BD4 .text:00009BD4 EXPORT _IO_sgetn .text:00009BD4 _IO_sgetn ; CODE XREF: fread_unlocked+2Cp .text:00009BD4 MOV R12, SP .text:00009BD8 STMFD SP!, {R11,R12,LR,PC} .text:00009BDC SUB R11, R12, #4 .text:00009BE0 MOV R3, R0 .text:00009BE4 LDRB R12, [R3,#0x46] .text:00009BE8 MOV R12, R12,LSL#24 .text:00009BEC ADD R3, R3, R12,ASR#24 .text:00009BF0 LDR R12, [R3,#0x94] .text:00009BF4 MOV LR, PC .text:00009BF8 LDR PC, [R12,#0x20] .text:00009BFC LDMDB R11, {R11,SP,PC} .text:00009BFC ; End of function _IO_sgetn .text:00009BFC .text:00009C00 .text:00009C00 ; =============== S U B R O U T I N E ======================================= .text:00009C00 .text:00009C00 ; Attributes: bp-based frame .text:00009C00 .text:00009C00 EXPORT _IO_default_xsgetn .text:00009C00 _IO_default_xsgetn .text:00009C00 MOV R12, SP .text:00009C04 STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:00009C08 SUB R11, R12, #4 .text:00009C0C MOV R5, R0 .text:00009C10 MOV R8, R2 .text:00009C14 MOV R6, R8 .text:00009C18 MOV R7, R1 .text:00009C1C .text:00009C1C loc_9C1C ; CODE XREF: _IO_default_xsgetn+A4j .text:00009C1C ADD R3, R5, #8 .text:00009C20 LDMDA R3, {R3,R4} .text:00009C24 SUB R4, R4, R3 .text:00009C28 LDR R1, [R5,#4] .text:00009C2C CMP R4, #0 .text:00009C30 BLE loc_9C90 .text:00009C34 CMP R4, R6 .text:00009C38 MOVCS R4, R6 .text:00009C3C CMP R4, #0x14 .text:00009C40 BLE loc_9C64 .text:00009C44 MOV R0, R7 .text:00009C48 MOV R2, R4 .text:00009C4C BL mempcpy .text:00009C50 LDR R3, [R5,#4] .text:00009C54 MOV R7, R0 .text:00009C58 ADD R3, R3, R4 .text:00009C5C STR R3, [R5,#4] .text:00009C60 B loc_9C8C .text:00009C64 ; --------------------------------------------------------------------------- .text:00009C64 .text:00009C64 loc_9C64 ; CODE XREF: _IO_default_xsgetn+40j .text:00009C64 CMP R4, #0 .text:00009C68 MOVLE R4, #0 .text:00009C6C BLE loc_9C8C .text:00009C70 SUBS R2, R4, #1 .text:00009C74 BMI loc_9C88 .text:00009C78 .text:00009C78 loc_9C78 ; CODE XREF: _IO_default_xsgetn+84j .text:00009C78 LDRB R3, [R1],#1 .text:00009C7C SUBS R2, R2, #1 .text:00009C80 STRB R3, [R7],#1 .text:00009C84 BPL loc_9C78 .text:00009C88 .text:00009C88 loc_9C88 ; CODE XREF: _IO_default_xsgetn+74j .text:00009C88 STR R1, [R5,#4] .text:00009C8C .text:00009C8C loc_9C8C ; CODE XREF: _IO_default_xsgetn+60j .text:00009C8C ; _IO_default_xsgetn+6Cj .text:00009C8C RSB R6, R4, R6 .text:00009C90 .text:00009C90 loc_9C90 ; CODE XREF: _IO_default_xsgetn+30j .text:00009C90 CMP R6, #0 .text:00009C94 BEQ loc_9CA8 .text:00009C98 MOV R0, R5 .text:00009C9C BL __underflow .text:00009CA0 CMN R0, #1 .text:00009CA4 BNE loc_9C1C .text:00009CA8 .text:00009CA8 loc_9CA8 ; CODE XREF: _IO_default_xsgetn+94j .text:00009CA8 RSB R0, R6, R8 .text:00009CAC LDMDB R11, {R4-R8,R11,SP,PC} .text:00009CAC ; End of function _IO_default_xsgetn .text:00009CAC .text:00009CB0 .text:00009CB0 ; =============== S U B R O U T I N E ======================================= .text:00009CB0 .text:00009CB0 ; Attributes: bp-based frame .text:00009CB0 .text:00009CB0 EXPORT _IO_default_setbuf .text:00009CB0 _IO_default_setbuf ; CODE XREF: _IO_new_file_setbuf+10p .text:00009CB0 MOV R12, SP .text:00009CB4 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:00009CB8 SUB R11, R12, #4 .text:00009CBC MOV R4, R0 .text:00009CC0 LDRB R3, [R4,#0x46] .text:00009CC4 MOV R6, R1 .text:00009CC8 MOV R3, R3,LSL#24 .text:00009CCC ADD R3, R4, R3,ASR#24 .text:00009CD0 LDR R1, [R3,#0x94] .text:00009CD4 MOV R5, R2 .text:00009CD8 MOV LR, PC .text:00009CDC LDR PC, [R1,#0x30] .text:00009CE0 CMN R0, #1 .text:00009CE4 MOVEQ R0, #0 .text:00009CE8 LDMEQDB R11, {R4-R6,R11,SP,PC} .text:00009CEC CMP R5, #0 .text:00009CF0 MOVNE R3, #0 .text:00009CF4 MOVEQ R3, #1 .text:00009CF8 CMP R6, #0 .text:00009CFC MOVNE R12, R3 .text:00009D00 MOVEQ R12, #1 .text:00009D04 CMP R12, #0 .text:00009D08 BEQ loc_9D30 .text:00009D0C LDR R3, [R4] .text:00009D10 ORR R3, R3, #2 .text:00009D14 STR R3, [R4] .text:00009D18 MOV R0, R4 .text:00009D1C ADD R1, R4, #0x47 .text:00009D20 ADD R2, R4, #0x48 .text:00009D24 MOV R3, #0 .text:00009D28 BL _IO_setb .text:00009D2C B loc_9D50 .text:00009D30 ; --------------------------------------------------------------------------- .text:00009D30 .text:00009D30 loc_9D30 ; CODE XREF: _IO_default_setbuf+58j .text:00009D30 LDR R3, [R4] .text:00009D34 BIC R3, R3, #2 .text:00009D38 STR R3, [R4] .text:00009D3C MOV R0, R4 .text:00009D40 MOV R1, R6 .text:00009D44 ADD R2, R1, R5 .text:00009D48 MOV R3, R12 .text:00009D4C BL _IO_setb .text:00009D50 .text:00009D50 loc_9D50 ; CODE XREF: _IO_default_setbuf+7Cj .text:00009D50 MOV R3, #0 .text:00009D54 STR R3, [R4,#0x18] .text:00009D58 STR R3, [R4,#0x14] .text:00009D5C STR R3, [R4,#0x10] .text:00009D60 STR R3, [R4,#8] .text:00009D64 STR R3, [R4,#4] .text:00009D68 MOV R0, R4 .text:00009D6C STR R3, [R4,#0xC] .text:00009D70 LDMDB R11, {R4-R6,R11,SP,PC} .text:00009D70 ; End of function _IO_default_setbuf .text:00009D70 .text:00009D74 .text:00009D74 ; =============== S U B R O U T I N E ======================================= .text:00009D74 .text:00009D74 ; Attributes: bp-based frame .text:00009D74 .text:00009D74 EXPORT _IO_default_seekpos .text:00009D74 _IO_default_seekpos .text:00009D74 .text:00009D74 var_14 = -0x14 .text:00009D74 .text:00009D74 MOV R12, SP .text:00009D78 STMFD SP!, {R4,R11,R12,LR,PC} .text:00009D7C SUB R11, R12, #4 .text:00009D80 SUB SP, SP, #4 .text:00009D84 LDRB R12, [R0,#0x46] .text:00009D88 MOV R12, R12,LSL#24 .text:00009D8C ADD R12, R0, R12,ASR#24 .text:00009D90 LDR R4, [R12,#0x94] .text:00009D94 STR R3, [SP,#0x14+var_14] .text:00009D98 MOV R3, #0 .text:00009D9C MOV LR, PC .text:00009DA0 LDR PC, [R4,#0x24] .text:00009DA4 LDMDB R11, {R4,R11,SP,PC} .text:00009DA4 ; End of function _IO_default_seekpos .text:00009DA4 .text:00009DA8 .text:00009DA8 ; =============== S U B R O U T I N E ======================================= .text:00009DA8 .text:00009DA8 ; Attributes: bp-based frame .text:00009DA8 .text:00009DA8 EXPORT _IO_default_doallocate .text:00009DA8 _IO_default_doallocate .text:00009DA8 .text:00009DA8 var_1C = -0x1C .text:00009DA8 var_18 = -0x18 .text:00009DA8 .text:00009DA8 MOV R12, SP .text:00009DAC STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:00009DB0 SUB R11, R12, #4 .text:00009DB4 MOV R5, R0 .text:00009DB8 SUB SP, SP, #8 .text:00009DBC MOV R4, 0xFFFFFFFF .text:00009DC0 STR R4, [SP,#0x1C+var_1C] .text:00009DC4 MOV R0, #0 .text:00009DC8 STR R0, [SP,#0x1C+var_18] .text:00009DCC MOV R1, #0x2000 .text:00009DD0 MOV R2, #3 .text:00009DD4 MOV R3, #0x22 .text:00009DD8 BL mmap .text:00009DDC MOV R1, R0 .text:00009DE0 CMP R1, R4 .text:00009DE4 BEQ loc_9E00 .text:00009DE8 MOV R0, R5 .text:00009DEC ADD R2, R1, #0x2000 .text:00009DF0 MOV R3, #1 .text:00009DF4 BL _IO_setb .text:00009DF8 MOV R0, #1 .text:00009DFC B locret_9E04 .text:00009E00 ; --------------------------------------------------------------------------- .text:00009E00 .text:00009E00 loc_9E00 ; CODE XREF: _IO_default_doallocate+3Cj .text:00009E00 MOV R0, R4 .text:00009E04 .text:00009E04 locret_9E04 ; CODE XREF: _IO_default_doallocate+54j .text:00009E04 LDMDB R11, {R4,R5,R11,SP,PC} .text:00009E04 ; End of function _IO_default_doallocate .text:00009E04 .text:00009E08 .text:00009E08 ; =============== S U B R O U T I N E ======================================= .text:00009E08 .text:00009E08 ; Attributes: bp-based frame .text:00009E08 .text:00009E08 EXPORT _IO_init .text:00009E08 _IO_init .text:00009E08 .text:00009E08 var_10 = -0x10 .text:00009E08 .text:00009E08 MOV R12, SP .text:00009E0C STMFD SP!, {R11,R12,LR,PC} .text:00009E10 MOV R3, #0 .text:00009E14 SUB SP, SP, #4 .text:00009E18 STR R3, [SP,#0x10+var_10] .text:00009E1C SUB R11, R12, #4 .text:00009E20 MOV R2, 0xFFFFFFFF .text:00009E24 BL _IO_no_init .text:00009E28 LDMDB R11, {R11,SP,PC} .text:00009E28 ; End of function _IO_init .text:00009E28 .text:00009E2C .text:00009E2C ; =============== S U B R O U T I N E ======================================= .text:00009E2C .text:00009E2C ; Attributes: bp-based frame .text:00009E2C .text:00009E2C EXPORT _IO_no_init .text:00009E2C _IO_no_init ; CODE XREF: vsscanf+40p .text:00009E2C ; _IO_init+1Cp ... .text:00009E2C .text:00009E2C var_28 = -0x28 .text:00009E2C arg_0 = 4 .text:00009E2C .text:00009E2C MOV R12, SP .text:00009E30 STMFD SP!, {R4-R8,R10-R12,LR,PC} .text:00009E34 ORR R1, R1, #0xFB000000 .text:00009E38 ORR R1, R1, #0xAD0000 .text:00009E3C MOV R5, R0 .text:00009E40 SUB SP, SP, #4 .text:00009E44 STR R1, [R5] .text:00009E48 MOV R6, #0 .text:00009E4C STR R6, [R5,#0x1C] .text:00009E50 STR R6, [R5,#0x20] .text:00009E54 STR R6, [R5,#0xC] .text:00009E58 STR R6, [R5,#4] .text:00009E5C STR R6, [R5,#8] .text:00009E60 STR R6, [R5,#0x10] .text:00009E64 STR R6, [R5,#0x14] .text:00009E68 STR R6, [R5,#0x18] .text:00009E6C STR R6, [R5,#0x34] .text:00009E70 STR R6, [R5,#0x24] .text:00009E74 STR R6, [R5,#0x28] .text:00009E78 STR R6, [R5,#0x2C] .text:00009E7C STR R6, [R5,#0x30] .text:00009E80 MOV R1, R6 .text:00009E84 STRB R1, [R5,#0x44] .text:00009E88 STRB R6, [R5,#0x45] .text:00009E8C STRB R1, [R5,#0x46] .text:00009E90 SUB R11, R12, #4 .text:00009E94 MOV R8, R2 .text:00009E98 MOV R10, R3 .text:00009E9C LDR R7, =0 .text:00009EA0 CMP R7, R6 .text:00009EA4 BEQ loc_9ED8 .text:00009EA8 SUB R4, R11, #-var_28 .text:00009EAC MOV R0, R4 .text:00009EB0 BL 0 .text:00009EB4 MOV R0, R4 .text:00009EB8 MOV R1, #1 .text:00009EBC BL 0 .text:00009EC0 LDR R0, [R5,#0x48] .text:00009EC4 MOV R1, R4 .text:00009EC8 MOV LR, PC .text:00009ECC MOV PC, R7 .text:00009ED0 MOV R0, R4 .text:00009ED4 BL 0 .text:00009ED8 .text:00009ED8 loc_9ED8 ; CODE XREF: _IO_no_init+78j .text:00009ED8 CMP R8, #0 .text:00009EDC STR R8, [R5,#0x5C] .text:00009EE0 BLT locret_9F50 .text:00009EE4 STR R10, [R5,#0x58] .text:00009EE8 STR R6, [R10,#0x18] .text:00009EEC LDR R3, [R5,#0x58] .text:00009EF0 STR R6, [R3,#0x1C] .text:00009EF4 LDR R2, [R5,#0x58] .text:00009EF8 STR R6, [R2,#8] .text:00009EFC LDR R3, [R5,#0x58] .text:00009F00 STR R6, [R3] .text:00009F04 LDR R2, [R5,#0x58] .text:00009F08 STR R6, [R2,#4] .text:00009F0C LDR R3, [R5,#0x58] .text:00009F10 STR R6, [R3,#0xC] .text:00009F14 LDR R2, [R5,#0x58] .text:00009F18 STR R6, [R2,#0x10] .text:00009F1C LDR R3, [R5,#0x58] .text:00009F20 STR R6, [R3,#0x14] .text:00009F24 LDR R2, [R5,#0x58] .text:00009F28 STR R6, [R2,#0x20] .text:00009F2C LDR R3, [R5,#0x58] .text:00009F30 STR R6, [R3,#0x24] .text:00009F34 LDR R2, [R5,#0x58] .text:00009F38 STR R6, [R2,#0x28] .text:00009F3C LDR R3, [R11,#arg_0] .text:00009F40 LDR R1, [R5,#0x58] .text:00009F44 STR R3, [R1,#0xB8] .text:00009F48 B locret_9F50 .text:00009F48 ; --------------------------------------------------------------------------- .text:00009F4C off_9F4C DCD 0 ; DATA XREF: _IO_no_init+70r .text:00009F50 ; --------------------------------------------------------------------------- .text:00009F50 .text:00009F50 locret_9F50 ; CODE XREF: _IO_no_init+B4j .text:00009F50 ; _IO_no_init+11Cj .text:00009F50 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:00009F50 ; End of function _IO_no_init .text:00009F50 .text:00009F54 .text:00009F54 ; =============== S U B R O U T I N E ======================================= .text:00009F54 .text:00009F54 ; Attributes: bp-based frame .text:00009F54 .text:00009F54 EXPORT _IO_default_sync .text:00009F54 _IO_default_sync .text:00009F54 MOV R12, SP .text:00009F58 STMFD SP!, {R11,R12,LR,PC} .text:00009F5C SUB R11, R12, #4 .text:00009F60 MOV R0, #0 .text:00009F64 LDMDB R11, {R11,SP,PC} .text:00009F64 ; End of function _IO_default_sync .text:00009F64 .text:00009F68 .text:00009F68 ; =============== S U B R O U T I N E ======================================= .text:00009F68 .text:00009F68 ; Attributes: bp-based frame .text:00009F68 .text:00009F68 EXPORT _IO_default_finish .text:00009F68 _IO_default_finish ; CODE XREF: _IO_str_finish+3Cp .text:00009F68 ; _IO_new_file_finish+90p .text:00009F68 MOV R12, SP .text:00009F6C STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:00009F70 MOV R4, R0 .text:00009F74 LDR R2, [R4,#0x1C] .text:00009F78 SUB R11, R12, #4 .text:00009F7C CMP R2, #0 .text:00009F80 BEQ loc_9FB8 .text:00009F84 LDR R3, [R4] .text:00009F88 ANDS R5, R3, #1 .text:00009F8C BNE loc_9FB8 .text:00009F90 LDR R1, [R4,#0x20] .text:00009F94 MOV R0, R2 .text:00009F98 RSB R1, R2, R1 .text:00009F9C ADD R1, R1, #0xFF0 .text:00009FA0 ADD R1, R1, #0xF .text:00009FA4 BIC R1, R1, #0xFF0 .text:00009FA8 BIC R1, R1, #0xF .text:00009FAC BL munmap .text:00009FB0 STR R5, [R4,#0x20] .text:00009FB4 STR R5, [R4,#0x1C] .text:00009FB8 .text:00009FB8 loc_9FB8 ; CODE XREF: _IO_default_finish+18j .text:00009FB8 ; _IO_default_finish+24j .text:00009FB8 LDR R3, [R4,#0x30] .text:00009FBC LDR R5, =0 .text:00009FC0 CMP R3, #0 .text:00009FC4 BEQ loc_9FDC .text:00009FC8 MOV R2, #0 .text:00009FCC .text:00009FCC loc_9FCC ; CODE XREF: _IO_default_finish+70j .text:00009FCC STR R2, [R3,#4] .text:00009FD0 LDR R3, [R3] .text:00009FD4 CMP R3, #0 .text:00009FD8 BNE loc_9FCC .text:00009FDC .text:00009FDC loc_9FDC ; CODE XREF: _IO_default_finish+5Cj .text:00009FDC LDR R0, [R4,#0x24] .text:00009FE0 CMP R0, #0 .text:00009FE4 BEQ loc_9FF4 .text:00009FE8 BL free .text:00009FEC MOV R3, #0 .text:00009FF0 STR R3, [R4,#0x24] .text:00009FF4 .text:00009FF4 loc_9FF4 ; CODE XREF: _IO_default_finish+7Cj .text:00009FF4 CMP R5, #0 .text:00009FF8 BEQ loc_A008 .text:00009FFC LDR R0, [R4,#0x48] .text:0000A000 MOV LR, PC .text:0000A004 MOV PC, R5 .text:0000A008 .text:0000A008 loc_A008 ; CODE XREF: _IO_default_finish+90j .text:0000A008 MOV R0, R4 .text:0000A00C BL _IO_un_link .text:0000A010 LDMDB R11, {R4,R5,R11,SP,PC} .text:0000A010 ; End of function _IO_default_finish .text:0000A010 .text:0000A010 ; --------------------------------------------------------------------------- .text:0000A014 dword_A014 DCD 0 ; DATA XREF: _IO_default_finish+54r .text:0000A018 .text:0000A018 ; =============== S U B R O U T I N E ======================================= .text:0000A018 .text:0000A018 ; Attributes: bp-based frame .text:0000A018 .text:0000A018 EXPORT _IO_default_seekoff .text:0000A018 _IO_default_seekoff .text:0000A018 MOV R12, SP .text:0000A01C STMFD SP!, {R11,R12,LR,PC} .text:0000A020 SUB R11, R12, #4 .text:0000A024 MOV R1, 0xFFFFFFFF .text:0000A028 MOV R0, 0xFFFFFFFF .text:0000A02C LDMDB R11, {R11,SP,PC} .text:0000A02C ; End of function _IO_default_seekoff .text:0000A02C .text:0000A030 .text:0000A030 ; =============== S U B R O U T I N E ======================================= .text:0000A030 .text:0000A030 ; Attributes: bp-based frame .text:0000A030 .text:0000A030 EXPORT _IO_sputbackc .text:0000A030 _IO_sputbackc ; CODE XREF: _IO_vfscanf+1E0p .text:0000A030 ; _IO_vfscanf+3B8p ... .text:0000A030 MOV R12, SP .text:0000A034 STMFD SP!, {R4,R11,R12,LR,PC} .text:0000A038 MOV R4, R0 .text:0000A03C LDR R2, [R4,#4] .text:0000A040 LDR R3, [R4,#0xC] .text:0000A044 SUB R11, R12, #4 .text:0000A048 CMP R2, R3 .text:0000A04C BLS loc_A068 .text:0000A050 LDRB R0, [R2,#-1] .text:0000A054 AND R3, R1, #0xFF .text:0000A058 CMP R0, R3 .text:0000A05C SUBEQ R3, R2, #1 .text:0000A060 STREQ R3, [R4,#4] .text:0000A064 BEQ loc_A084 .text:0000A068 .text:0000A068 loc_A068 ; CODE XREF: _IO_sputbackc+1Cj .text:0000A068 LDRB R3, [R4,#0x46] .text:0000A06C MOV R3, R3,LSL#24 .text:0000A070 ADD R3, R4, R3,ASR#24 .text:0000A074 LDR R2, [R3,#0x94] .text:0000A078 MOV R0, R4 .text:0000A07C MOV LR, PC .text:0000A080 LDR PC, [R2,#0x18] .text:0000A084 .text:0000A084 loc_A084 ; CODE XREF: _IO_sputbackc+34j .text:0000A084 CMN R0, #1 .text:0000A088 LDMEQDB R11, {R4,R11,SP,PC} .text:0000A08C LDR R3, [R4] .text:0000A090 BIC R3, R3, #0x10 .text:0000A094 STR R3, [R4] .text:0000A098 LDMDB R11, {R4,R11,SP,PC} .text:0000A098 ; End of function _IO_sputbackc .text:0000A098 .text:0000A09C .text:0000A09C ; =============== S U B R O U T I N E ======================================= .text:0000A09C .text:0000A09C ; Attributes: bp-based frame .text:0000A09C .text:0000A09C EXPORT _IO_sungetc .text:0000A09C _IO_sungetc .text:0000A09C MOV R12, SP .text:0000A0A0 STMFD SP!, {R4,R11,R12,LR,PC} .text:0000A0A4 MOV R4, R0 .text:0000A0A8 LDR R0, [R4,#4] .text:0000A0AC LDR R3, [R4,#0xC] .text:0000A0B0 SUB R11, R12, #4 .text:0000A0B4 CMP R0, R3 .text:0000A0B8 SUBHI R3, R0, #1 .text:0000A0BC STRHI R3, [R4,#4] .text:0000A0C0 LDRHIB R0, [R0,#-1] .text:0000A0C4 BHI loc_A0E8 .text:0000A0C8 LDRB R3, [R4,#0x46] .text:0000A0CC MOV R0, R4 .text:0000A0D0 MOV R3, R3,LSL#24 .text:0000A0D4 ADD R3, R4, R3,ASR#24 .text:0000A0D8 LDR R2, [R3,#0x94] .text:0000A0DC MOV R1, 0xFFFFFFFF .text:0000A0E0 MOV LR, PC .text:0000A0E4 LDR PC, [R2,#0x18] .text:0000A0E8 .text:0000A0E8 loc_A0E8 ; CODE XREF: _IO_sungetc+28j .text:0000A0E8 CMN R0, #1 .text:0000A0EC LDMEQDB R11, {R4,R11,SP,PC} .text:0000A0F0 LDR R3, [R4] .text:0000A0F4 BIC R3, R3, #0x10 .text:0000A0F8 STR R3, [R4] .text:0000A0FC LDMDB R11, {R4,R11,SP,PC} .text:0000A0FC ; End of function _IO_sungetc .text:0000A0FC .text:0000A100 .text:0000A100 ; =============== S U B R O U T I N E ======================================= .text:0000A100 .text:0000A100 ; Attributes: bp-based frame .text:0000A100 .text:0000A100 EXPORT _IO_adjust_column .text:0000A100 _IO_adjust_column ; CODE XREF: new_do_write+E4p .text:0000A100 MOV R12, SP .text:0000A104 STMFD SP!, {R11,R12,LR,PC} .text:0000A108 SUB R11, R12, #4 .text:0000A10C ADD R12, R1, R2 .text:0000A110 CMP R12, R1 .text:0000A114 MOV LR, R0 .text:0000A118 BLS loc_A140 .text:0000A11C SUB R3, R2, #1 .text:0000A120 ADD R3, R1, R3 .text:0000A124 RSB R0, R12, R3 .text:0000A128 .text:0000A128 loc_A128 ; CODE XREF: _IO_adjust_column+3Cj .text:0000A128 LDRB R3, [R12,#-1]! .text:0000A12C ADD R0, R0, #1 .text:0000A130 CMP R3, #0xA .text:0000A134 LDMEQDB R11, {R11,SP,PC} .text:0000A138 CMP R12, R1 .text:0000A13C BHI loc_A128 .text:0000A140 .text:0000A140 loc_A140 ; CODE XREF: _IO_adjust_column+18j .text:0000A140 ADD R0, LR, R2 .text:0000A144 LDMDB R11, {R11,SP,PC} .text:0000A144 ; End of function _IO_adjust_column .text:0000A144 .text:0000A148 .text:0000A148 ; =============== S U B R O U T I N E ======================================= .text:0000A148 .text:0000A148 ; Attributes: bp-based frame .text:0000A148 .text:0000A148 EXPORT _IO_flush_all .text:0000A148 _IO_flush_all ; CODE XREF: fflush+18p .text:0000A148 ; _cleanup+Cp .text:0000A148 MOV R12, SP .text:0000A14C STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0000A150 LDR R3, =_IO_list_all .text:0000A154 SUB R11, R12, #4 .text:0000A158 LDR R4, [R3] .text:0000A15C MOV R5, #0 .text:0000A160 CMP R4, R5 .text:0000A164 BEQ loc_A1E4 .text:0000A168 .text:0000A168 loc_A168 ; CODE XREF: _IO_flush_all+98j .text:0000A168 LDR R1, [R4,#0x5C] .text:0000A16C CMP R1, #0 .text:0000A170 BGT loc_A188 .text:0000A174 LDR R2, [R4,#0x14] .text:0000A178 LDR R3, [R4,#0x10] .text:0000A17C LDRB R12, [R4,#0x46] .text:0000A180 CMP R2, R3 .text:0000A184 BHI loc_A1B4 .text:0000A188 .text:0000A188 loc_A188 ; CODE XREF: _IO_flush_all+28j .text:0000A188 LDRB R3, [R4,#0x46] .text:0000A18C CMP R3, #0 .text:0000A190 MOV R12, R3 .text:0000A194 BNE loc_A1D8 .text:0000A198 CMP R1, #0 .text:0000A19C BLE loc_A1D8 .text:0000A1A0 LDR R3, [R4,#0x58] .text:0000A1A4 LDR R1, [R3,#0x10] .text:0000A1A8 LDR R2, [R3,#0xC] .text:0000A1AC CMP R1, R2 .text:0000A1B0 BLS loc_A1D8 .text:0000A1B4 .text:0000A1B4 loc_A1B4 ; CODE XREF: _IO_flush_all+3Cj .text:0000A1B4 MOV R0, R4 .text:0000A1B8 MOV R3, R12,LSL#24 .text:0000A1BC ADD R3, R4, R3,ASR#24 .text:0000A1C0 LDR R2, [R3,#0x94] .text:0000A1C4 MOV R1, 0xFFFFFFFF .text:0000A1C8 MOV LR, PC .text:0000A1CC LDR PC, [R2,#0xC] .text:0000A1D0 CMN R0, #1 .text:0000A1D4 MOVEQ R5, 0xFFFFFFFF .text:0000A1D8 .text:0000A1D8 loc_A1D8 ; CODE XREF: _IO_flush_all+4Cj .text:0000A1D8 ; _IO_flush_all+54j ... .text:0000A1D8 LDR R4, [R4,#0x34] .text:0000A1DC CMP R4, #0 .text:0000A1E0 BNE loc_A168 .text:0000A1E4 .text:0000A1E4 loc_A1E4 ; CODE XREF: _IO_flush_all+1Cj .text:0000A1E4 MOV R0, R5 .text:0000A1E8 LDMDB R11, {R4,R5,R11,SP,PC} .text:0000A1E8 ; End of function _IO_flush_all .text:0000A1E8 .text:0000A1E8 ; --------------------------------------------------------------------------- .text:0000A1EC off_A1EC DCD _IO_list_all ; DATA XREF: _IO_flush_all+8r .text:0000A1F0 .text:0000A1F0 ; =============== S U B R O U T I N E ======================================= .text:0000A1F0 .text:0000A1F0 ; Attributes: bp-based frame .text:0000A1F0 .text:0000A1F0 WEAK _flushlbf .text:0000A1F0 _flushlbf ; CODE XREF: _IO_wfile_underflow+1D4p .text:0000A1F0 ; _IO_new_file_underflow+94p .text:0000A1F0 MOV R12, SP .text:0000A1F4 STMFD SP!, {R4,R11,R12,LR,PC} .text:0000A1F8 LDR R3, =_IO_list_all .text:0000A1FC LDR R4, [R3] .text:0000A200 SUB R11, R12, #4 .text:0000A204 CMP R4, #0 .text:0000A208 LDMEQDB R11, {R4,R11,SP,PC} .text:0000A20C .text:0000A20C loc_A20C ; CODE XREF: _flushlbf+54j .text:0000A20C LDR R3, [R4] .text:0000A210 AND R3, R3, #0x208 .text:0000A214 CMP R3, #0x200 .text:0000A218 BNE loc_A23C .text:0000A21C LDRB R3, [R4,#0x46] .text:0000A220 MOV R0, R4 .text:0000A224 MOV R3, R3,LSL#24 .text:0000A228 ADD R3, R4, R3,ASR#24 .text:0000A22C LDR R2, [R3,#0x94] .text:0000A230 MOV R1, 0xFFFFFFFF .text:0000A234 MOV LR, PC .text:0000A238 LDR PC, [R2,#0xC] .text:0000A23C .text:0000A23C loc_A23C ; CODE XREF: _flushlbf+28j .text:0000A23C LDR R4, [R4,#0x34] .text:0000A240 CMP R4, #0 .text:0000A244 BNE loc_A20C .text:0000A248 LDMDB R11, {R4,R11,SP,PC} .text:0000A248 ; End of function _flushlbf .text:0000A248 .text:0000A248 ; --------------------------------------------------------------------------- .text:0000A24C off_A24C DCD _IO_list_all ; DATA XREF: _flushlbf+8r .text:0000A250 .text:0000A250 ; =============== S U B R O U T I N E ======================================= .text:0000A250 .text:0000A250 ; Attributes: bp-based frame .text:0000A250 .text:0000A250 _IO_unbuffer_write ; CODE XREF: _cleanup+14p .text:0000A250 MOV R12, SP .text:0000A254 STMFD SP!, {R4,R11,R12,LR,PC} .text:0000A258 LDR R3, =_IO_list_all .text:0000A25C LDR R4, [R3] .text:0000A260 SUB R11, R12, #4 .text:0000A264 CMP R4, #0 .text:0000A268 LDMEQDB R11, {R4,R11,SP,PC} .text:0000A26C .text:0000A26C loc_A26C ; CODE XREF: _IO_unbuffer_write+74j .text:0000A26C LDR R3, [R4] .text:0000A270 ANDS R1, R3, #2 .text:0000A274 BNE loc_A2BC .text:0000A278 BIC R3, R3, #0xFF0 .text:0000A27C BIC R3, R3, #7 .text:0000A280 MOV R3, R3,LSL#19 .text:0000A284 MOV R3, R3,LSR#19 .text:0000A288 CMP R3, #8 .text:0000A28C BEQ loc_A2BC .text:0000A290 LDR R3, [R4,#0x5C] .text:0000A294 CMP R3, #0 .text:0000A298 BEQ loc_A2BC .text:0000A29C LDRB R3, [R4,#0x46] .text:0000A2A0 MOV R0, R4 .text:0000A2A4 MOV R3, R3,LSL#24 .text:0000A2A8 ADD R3, R4, R3,ASR#24 .text:0000A2AC LDR R12, [R3,#0x94] .text:0000A2B0 MOV R2, R1 .text:0000A2B4 MOV LR, PC .text:0000A2B8 LDR PC, [R12,#0x2C] .text:0000A2BC .text:0000A2BC loc_A2BC ; CODE XREF: _IO_unbuffer_write+24j .text:0000A2BC ; _IO_unbuffer_write+3Cj ... .text:0000A2BC LDR R4, [R4,#0x34] .text:0000A2C0 CMP R4, #0 .text:0000A2C4 BNE loc_A26C .text:0000A2C8 LDMDB R11, {R4,R11,SP,PC} .text:0000A2C8 ; End of function _IO_unbuffer_write .text:0000A2C8 .text:0000A2C8 ; --------------------------------------------------------------------------- .text:0000A2CC off_A2CC DCD _IO_list_all ; DATA XREF: _IO_unbuffer_write+8r .text:0000A2D0 .text:0000A2D0 ; =============== S U B R O U T I N E ======================================= .text:0000A2D0 .text:0000A2D0 ; Attributes: bp-based frame .text:0000A2D0 .text:0000A2D0 WEAK _cleanup .text:0000A2D0 _cleanup ; CODE XREF: fcloseall+Cp .text:0000A2D0 MOV R12, SP ; Alternative name is '_IO_cleanup' .text:0000A2D4 STMFD SP!, {R4,R11,R12,LR,PC} .text:0000A2D8 SUB R11, R12, #4 .text:0000A2DC BL _IO_flush_all .text:0000A2E0 MOV R4, R0 .text:0000A2E4 BL _IO_unbuffer_write .text:0000A2E8 MOV R0, R4 .text:0000A2EC LDMDB R11, {R4,R11,SP,PC} .text:0000A2EC ; End of function _cleanup .text:0000A2EC .text:0000A2F0 .text:0000A2F0 ; =============== S U B R O U T I N E ======================================= .text:0000A2F0 .text:0000A2F0 ; Attributes: bp-based frame .text:0000A2F0 .text:0000A2F0 EXPORT _IO_init_marker .text:0000A2F0 _IO_init_marker .text:0000A2F0 MOV R12, SP .text:0000A2F4 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0000A2F8 MOV R5, R0 .text:0000A2FC MOV R4, R1 .text:0000A300 STR R4, [R5,#4] .text:0000A304 LDR R3, [R4] .text:0000A308 SUB R11, R12, #4 .text:0000A30C TST R3, #0x800 .text:0000A310 BEQ loc_A31C .text:0000A314 MOV R0, R4 .text:0000A318 BL _IO_switch_to_get_mode .text:0000A31C .text:0000A31C loc_A31C ; CODE XREF: _IO_init_marker+20j .text:0000A31C LDR R3, [R4] .text:0000A320 TST R3, #0x100 .text:0000A324 ADDNE R2, R4, #4 .text:0000A328 LDMNEIA R2, {R2,R3} .text:0000A32C SUBNE R3, R2, R3 .text:0000A330 LDREQ R3, [R4,#4] .text:0000A334 LDREQ R2, [R4,#0xC] .text:0000A338 RSBEQ R3, R2, R3 .text:0000A33C STR R3, [R5,#8] .text:0000A340 LDR R3, [R4,#0x30] .text:0000A344 STR R3, [R5] .text:0000A348 STR R5, [R4,#0x30] .text:0000A34C LDMDB R11, {R4,R5,R11,SP,PC} .text:0000A34C ; End of function _IO_init_marker .text:0000A34C .text:0000A350 .text:0000A350 ; =============== S U B R O U T I N E ======================================= .text:0000A350 .text:0000A350 ; Attributes: bp-based frame .text:0000A350 .text:0000A350 EXPORT _IO_remove_marker .text:0000A350 _IO_remove_marker .text:0000A350 MOV R12, SP .text:0000A354 STMFD SP!, {R11,R12,LR,PC} .text:0000A358 LDR R3, [R0,#4] .text:0000A35C SUB R11, R12, #4 .text:0000A360 LDR R2, [R3,#0x30] .text:0000A364 ADD R1, R3, #0x30 .text:0000A368 CMP R2, #0 .text:0000A36C LDMEQDB R11, {R11,SP,PC} .text:0000A370 .text:0000A370 loc_A370 ; CODE XREF: _IO_remove_marker+40j .text:0000A370 LDR R3, [R1] .text:0000A374 CMP R3, R0 .text:0000A378 LDREQ R3, [R3] .text:0000A37C STREQ R3, [R1] .text:0000A380 LDMEQDB R11, {R11,SP,PC} .text:0000A384 MOV R1, R3 .text:0000A388 LDR R3, [R1] .text:0000A38C CMP R3, #0 .text:0000A390 BNE loc_A370 .text:0000A394 LDMDB R11, {R11,SP,PC} .text:0000A394 ; End of function _IO_remove_marker .text:0000A394 .text:0000A398 .text:0000A398 ; =============== S U B R O U T I N E ======================================= .text:0000A398 .text:0000A398 ; Attributes: bp-based frame .text:0000A398 .text:0000A398 EXPORT _IO_marker_difference .text:0000A398 _IO_marker_difference .text:0000A398 MOV R12, SP .text:0000A39C STMFD SP!, {R11,R12,LR,PC} .text:0000A3A0 LDR R3, [R0,#8] .text:0000A3A4 LDR R0, [R1,#8] .text:0000A3A8 SUB R11, R12, #4 .text:0000A3AC RSB R0, R0, R3 .text:0000A3B0 LDMDB R11, {R11,SP,PC} .text:0000A3B0 ; End of function _IO_marker_difference .text:0000A3B0 .text:0000A3B4 .text:0000A3B4 ; =============== S U B R O U T I N E ======================================= .text:0000A3B4 .text:0000A3B4 ; Attributes: bp-based frame .text:0000A3B4 .text:0000A3B4 EXPORT _IO_marker_delta .text:0000A3B4 _IO_marker_delta .text:0000A3B4 MOV R12, SP .text:0000A3B8 STMFD SP!, {R11,R12,LR,PC} .text:0000A3BC LDR R1, [R0,#4] .text:0000A3C0 SUB R11, R12, #4 .text:0000A3C4 CMP R1, #0 .text:0000A3C8 MOVEQ R0, 0xFFFFFFFF .text:0000A3CC LDMEQDB R11, {R11,SP,PC} .text:0000A3D0 LDR R3, [R1] .text:0000A3D4 TST R3, #0x100 .text:0000A3D8 ADDNE R3, R1, #4 .text:0000A3DC LDMNEIA R3, {R2,R3} .text:0000A3E0 SUBNE R2, R2, R3 .text:0000A3E4 LDREQ R2, [R1,#4] .text:0000A3E8 LDREQ R3, [R1,#0xC] .text:0000A3EC RSBEQ R2, R3, R2 .text:0000A3F0 LDR R0, [R0,#8] .text:0000A3F4 RSB R0, R2, R0 .text:0000A3F8 LDMDB R11, {R11,SP,PC} .text:0000A3F8 ; End of function _IO_marker_delta .text:0000A3F8 .text:0000A3FC .text:0000A3FC ; =============== S U B R O U T I N E ======================================= .text:0000A3FC .text:0000A3FC ; Attributes: bp-based frame .text:0000A3FC .text:0000A3FC EXPORT _IO_seekmark .text:0000A3FC _IO_seekmark .text:0000A3FC MOV R12, SP .text:0000A400 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0000A404 MOV R5, R1 .text:0000A408 LDR R4, [R5,#4] .text:0000A40C SUB R11, R12, #4 .text:0000A410 CMP R4, R0 .text:0000A414 MOVNE R0, 0xFFFFFFFF .text:0000A418 LDMNEDB R11, {R4,R5,R11,SP,PC} .text:0000A41C LDR R3, [R5,#8] .text:0000A420 CMP R3, #0 .text:0000A424 BLT loc_A444 .text:0000A428 LDR R3, [R4] .text:0000A42C TST R3, #0x100 .text:0000A430 BEQ loc_A43C .text:0000A434 MOV R0, R4 .text:0000A438 BL _IO_switch_to_main_get_area .text:0000A43C .text:0000A43C loc_A43C ; CODE XREF: _IO_seekmark+34j .text:0000A43C LDR R3, [R4,#0xC] .text:0000A440 B loc_A45C .text:0000A444 ; --------------------------------------------------------------------------- .text:0000A444 .text:0000A444 loc_A444 ; CODE XREF: _IO_seekmark+28j .text:0000A444 LDR R3, [R4] .text:0000A448 TST R3, #0x100 .text:0000A44C BNE loc_A458 .text:0000A450 MOV R0, R4 .text:0000A454 BL _IO_switch_to_backup_area .text:0000A458 .text:0000A458 loc_A458 ; CODE XREF: _IO_seekmark+50j .text:0000A458 LDR R3, [R4,#8] .text:0000A45C .text:0000A45C loc_A45C ; CODE XREF: _IO_seekmark+44j .text:0000A45C LDR R2, [R5,#8] .text:0000A460 ADD R3, R3, R2 .text:0000A464 STR R3, [R4,#4] .text:0000A468 MOV R0, #0 .text:0000A46C LDMDB R11, {R4,R5,R11,SP,PC} .text:0000A46C ; End of function _IO_seekmark .text:0000A46C .text:0000A470 .text:0000A470 ; =============== S U B R O U T I N E ======================================= .text:0000A470 .text:0000A470 ; Attributes: bp-based frame .text:0000A470 .text:0000A470 EXPORT _IO_unsave_markers .text:0000A470 _IO_unsave_markers ; CODE XREF: _IO_wfile_seekoff+510p .text:0000A470 ; _IO_new_file_close_it+6Cp ... .text:0000A470 MOV R12, SP .text:0000A474 STMFD SP!, {R11,R12,LR,PC} .text:0000A478 LDR R3, [R0,#0x30] .text:0000A47C SUB R11, R12, #4 .text:0000A480 CMP R3, #0 .text:0000A484 MOVNE R3, #0 .text:0000A488 STRNE R3, [R0,#0x30] .text:0000A48C LDR R3, [R0,#0x24] .text:0000A490 CMP R3, #0 .text:0000A494 LDMEQDB R11, {R11,SP,PC} .text:0000A498 BL _IO_free_backup_area .text:0000A49C LDMDB R11, {R11,SP,PC} .text:0000A49C ; End of function _IO_unsave_markers .text:0000A49C .text:0000A4A0 .text:0000A4A0 ; =============== S U B R O U T I N E ======================================= .text:0000A4A0 .text:0000A4A0 ; Attributes: bp-based frame .text:0000A4A0 .text:0000A4A0 EXPORT _IO_default_pbackfail .text:0000A4A0 _IO_default_pbackfail ; CODE XREF: _IO_str_pbackfail+34p .text:0000A4A0 MOV R12, SP .text:0000A4A4 STMFD SP!, {R4-R8,R10-R12,LR,PC} .text:0000A4A8 MOV R5, R0 .text:0000A4AC LDR R2, [R5,#4] .text:0000A4B0 SUB R11, R12, #4 .text:0000A4B4 LDR R3, [R5,#0xC] .text:0000A4B8 MOV R10, R1 .text:0000A4BC CMP R2, R3 .text:0000A4C0 BLS loc_A4E4 .text:0000A4C4 LDR R3, [R5] .text:0000A4C8 TST R3, #0x100 .text:0000A4CC BNE loc_A4E4 .text:0000A4D0 LDRB R3, [R2,#-1] .text:0000A4D4 CMP R3, R10 .text:0000A4D8 SUBEQ R3, R2, #1 .text:0000A4DC STREQ R3, [R5,#4] .text:0000A4E0 BEQ loc_A5D0 .text:0000A4E4 .text:0000A4E4 loc_A4E4 ; CODE XREF: _IO_default_pbackfail+20j .text:0000A4E4 ; _IO_default_pbackfail+2Cj .text:0000A4E4 LDR R3, [R5] .text:0000A4E8 TST R3, #0x100 .text:0000A4EC BNE loc_A560 .text:0000A4F0 LDR R1, [R5,#4] .text:0000A4F4 LDR R3, [R5,#0xC] .text:0000A4F8 CMP R1, R3 .text:0000A4FC LDR R3, [R5,#0x24] .text:0000A500 BLS loc_A524 .text:0000A504 CMP R3, #0 .text:0000A508 BEQ loc_A524 .text:0000A50C MOV R0, R5 .text:0000A510 BL save_for_backup .text:0000A514 CMP R0, #0 .text:0000A518 BEQ loc_A54C .text:0000A51C .text:0000A51C loc_A51C ; CODE XREF: _IO_default_pbackfail+98j .text:0000A51C ; _IO_default_pbackfail+E8j .text:0000A51C MOV R0, 0xFFFFFFFF .text:0000A520 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0000A524 ; --------------------------------------------------------------------------- .text:0000A524 .text:0000A524 loc_A524 ; CODE XREF: _IO_default_pbackfail+60j .text:0000A524 ; _IO_default_pbackfail+68j .text:0000A524 CMP R3, #0 .text:0000A528 BNE loc_A54C .text:0000A52C MOV R0, #0x80 .text:0000A530 BL malloc .text:0000A534 CMP R0, #0 .text:0000A538 BEQ loc_A51C .text:0000A53C STR R0, [R5,#0x24] .text:0000A540 ADD R3, R0, #0x80 .text:0000A544 STR R3, [R5,#0x2C] .text:0000A548 STR R3, [R5,#0x28] .text:0000A54C .text:0000A54C loc_A54C ; CODE XREF: _IO_default_pbackfail+78j .text:0000A54C ; _IO_default_pbackfail+88j .text:0000A54C LDR R3, [R5,#4] .text:0000A550 STR R3, [R5,#0xC] .text:0000A554 MOV R0, R5 .text:0000A558 BL _IO_switch_to_backup_area .text:0000A55C B loc_A5C0 .text:0000A560 ; --------------------------------------------------------------------------- .text:0000A560 .text:0000A560 loc_A560 ; CODE XREF: _IO_default_pbackfail+4Cj .text:0000A560 LDR R3, [R5,#4] .text:0000A564 LDR R2, [R5,#0xC] .text:0000A568 CMP R3, R2 .text:0000A56C BHI loc_A5C0 .text:0000A570 LDR R3, [R5,#8] .text:0000A574 RSB R6, R2, R3 .text:0000A578 MOV R8, R6,LSL#1 .text:0000A57C MOV R0, R8 .text:0000A580 BL malloc .text:0000A584 SUBS R7, R0, #0 .text:0000A588 BEQ loc_A51C .text:0000A58C RSB R4, R6, R8 .text:0000A590 ADD R4, R7, R4 .text:0000A594 MOV R0, R4 .text:0000A598 LDR R1, [R5,#0xC] .text:0000A59C MOV R2, R6 .text:0000A5A0 BL memcpy .text:0000A5A4 LDR R0, [R5,#0xC] .text:0000A5A8 BL free .text:0000A5AC STR R7, [R5,#0xC] .text:0000A5B0 STR R4, [R5,#4] .text:0000A5B4 ADD R3, R7, R8 .text:0000A5B8 STR R3, [R5,#8] .text:0000A5BC STR R4, [R5,#0x28] .text:0000A5C0 .text:0000A5C0 loc_A5C0 ; CODE XREF: _IO_default_pbackfail+BCj .text:0000A5C0 ; _IO_default_pbackfail+CCj .text:0000A5C0 LDR R2, [R5,#4] .text:0000A5C4 SUB R3, R2, #1 .text:0000A5C8 STR R3, [R5,#4] .text:0000A5CC STRB R10, [R2,#-1] .text:0000A5D0 .text:0000A5D0 loc_A5D0 ; CODE XREF: _IO_default_pbackfail+40j .text:0000A5D0 AND R0, R10, #0xFF .text:0000A5D4 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0000A5D4 ; End of function _IO_default_pbackfail .text:0000A5D4 .text:0000A5D8 .text:0000A5D8 ; =============== S U B R O U T I N E ======================================= .text:0000A5D8 .text:0000A5D8 ; Attributes: bp-based frame .text:0000A5D8 .text:0000A5D8 EXPORT _IO_default_seek .text:0000A5D8 _IO_default_seek .text:0000A5D8 MOV R12, SP .text:0000A5DC STMFD SP!, {R11,R12,LR,PC} .text:0000A5E0 SUB R11, R12, #4 .text:0000A5E4 MOV R1, 0xFFFFFFFF .text:0000A5E8 MOV R0, 0xFFFFFFFF .text:0000A5EC LDMDB R11, {R11,SP,PC} .text:0000A5EC ; End of function _IO_default_seek .text:0000A5EC .text:0000A5F0 .text:0000A5F0 ; =============== S U B R O U T I N E ======================================= .text:0000A5F0 .text:0000A5F0 ; Attributes: bp-based frame .text:0000A5F0 .text:0000A5F0 EXPORT _IO_default_stat .text:0000A5F0 _IO_default_stat .text:0000A5F0 MOV R12, SP .text:0000A5F4 STMFD SP!, {R11,R12,LR,PC} .text:0000A5F8 SUB R11, R12, #4 .text:0000A5FC MOV R0, 0xFFFFFFFF .text:0000A600 LDMDB R11, {R11,SP,PC} .text:0000A600 ; End of function _IO_default_stat .text:0000A600 .text:0000A604 .text:0000A604 ; =============== S U B R O U T I N E ======================================= .text:0000A604 .text:0000A604 ; Attributes: bp-based frame .text:0000A604 .text:0000A604 EXPORT _IO_default_read .text:0000A604 _IO_default_read .text:0000A604 MOV R12, SP .text:0000A608 STMFD SP!, {R11,R12,LR,PC} .text:0000A60C SUB R11, R12, #4 .text:0000A610 MOV R0, 0xFFFFFFFF .text:0000A614 LDMDB R11, {R11,SP,PC} .text:0000A614 ; End of function _IO_default_read .text:0000A614 .text:0000A618 .text:0000A618 ; =============== S U B R O U T I N E ======================================= .text:0000A618 .text:0000A618 ; Attributes: bp-based frame .text:0000A618 .text:0000A618 EXPORT _IO_default_write .text:0000A618 _IO_default_write .text:0000A618 MOV R12, SP .text:0000A61C STMFD SP!, {R11,R12,LR,PC} .text:0000A620 SUB R11, R12, #4 .text:0000A624 MOV R0, #0 .text:0000A628 LDMDB R11, {R11,SP,PC} .text:0000A628 ; End of function _IO_default_write .text:0000A628 .text:0000A62C .text:0000A62C ; =============== S U B R O U T I N E ======================================= .text:0000A62C .text:0000A62C ; Attributes: bp-based frame .text:0000A62C .text:0000A62C EXPORT _IO_default_showmanyc .text:0000A62C _IO_default_showmanyc .text:0000A62C MOV R12, SP .text:0000A630 STMFD SP!, {R11,R12,LR,PC} .text:0000A634 SUB R11, R12, #4 .text:0000A638 MOV R0, 0xFFFFFFFF .text:0000A63C LDMDB R11, {R11,SP,PC} .text:0000A63C ; End of function _IO_default_showmanyc .text:0000A63C .text:0000A640 .text:0000A640 ; =============== S U B R O U T I N E ======================================= .text:0000A640 .text:0000A640 ; Attributes: bp-based frame .text:0000A640 .text:0000A640 EXPORT _IO_default_imbue .text:0000A640 _IO_default_imbue .text:0000A640 MOV R12, SP .text:0000A644 STMFD SP!, {R11,R12,LR,PC} .text:0000A648 SUB R11, R12, #4 .text:0000A64C LDMDB R11, {R11,SP,PC} .text:0000A64C ; End of function _IO_default_imbue .text:0000A64C .text:0000A650 .text:0000A650 ; =============== S U B R O U T I N E ======================================= .text:0000A650 .text:0000A650 ; Attributes: bp-based frame .text:0000A650 .text:0000A650 EXPORT _IO_iter_begin .text:0000A650 _IO_iter_begin .text:0000A650 MOV R12, SP .text:0000A654 STMFD SP!, {R11,R12,LR,PC} .text:0000A658 LDR R3, =_IO_list_all .text:0000A65C SUB R11, R12, #4 .text:0000A660 LDR R0, [R3] .text:0000A664 LDMDB R11, {R11,SP,PC} .text:0000A664 ; End of function _IO_iter_begin .text:0000A664 .text:0000A664 ; --------------------------------------------------------------------------- .text:0000A668 off_A668 DCD _IO_list_all ; DATA XREF: _IO_iter_begin+8r .text:0000A66C .text:0000A66C ; =============== S U B R O U T I N E ======================================= .text:0000A66C .text:0000A66C ; Attributes: bp-based frame .text:0000A66C .text:0000A66C EXPORT _IO_iter_end .text:0000A66C _IO_iter_end .text:0000A66C MOV R12, SP .text:0000A670 STMFD SP!, {R11,R12,LR,PC} .text:0000A674 SUB R11, R12, #4 .text:0000A678 MOV R0, #0 .text:0000A67C LDMDB R11, {R11,SP,PC} .text:0000A67C ; End of function _IO_iter_end .text:0000A67C .text:0000A680 .text:0000A680 ; =============== S U B R O U T I N E ======================================= .text:0000A680 .text:0000A680 ; Attributes: bp-based frame .text:0000A680 .text:0000A680 EXPORT _IO_iter_next .text:0000A680 _IO_iter_next .text:0000A680 MOV R12, SP .text:0000A684 STMFD SP!, {R11,R12,LR,PC} .text:0000A688 SUB R11, R12, #4 .text:0000A68C LDR R0, [R0,#0x34] .text:0000A690 LDMDB R11, {R11,SP,PC} .text:0000A690 ; End of function _IO_iter_next .text:0000A690 .text:0000A694 .text:0000A694 ; =============== S U B R O U T I N E ======================================= .text:0000A694 .text:0000A694 ; Attributes: bp-based frame .text:0000A694 .text:0000A694 EXPORT _IO_iter_file .text:0000A694 _IO_iter_file .text:0000A694 MOV R12, SP .text:0000A698 STMFD SP!, {R11,R12,LR,PC} .text:0000A69C SUB R11, R12, #4 .text:0000A6A0 LDMDB R11, {R11,SP,PC} .text:0000A6A0 ; End of function _IO_iter_file .text:0000A6A0 .text:0000A6A4 .text:0000A6A4 ; =============== S U B R O U T I N E ======================================= .text:0000A6A4 .text:0000A6A4 ; Attributes: bp-based frame .text:0000A6A4 .text:0000A6A4 EXPORT _IO_list_lock .text:0000A6A4 _IO_list_lock .text:0000A6A4 MOV R12, SP .text:0000A6A8 STMFD SP!, {R11,R12,LR,PC} .text:0000A6AC LDR R3, =0 .text:0000A6B0 SUB R11, R12, #4 .text:0000A6B4 CMP R3, #0 .text:0000A6B8 LDMEQDB R11, {R11,SP,PC} .text:0000A6BC LDR R0, =list_all_lock .text:0000A6C0 MOV LR, PC .text:0000A6C4 MOV PC, R3 .text:0000A6C8 LDMDB R11, {R11,SP,PC} .text:0000A6C8 ; End of function _IO_list_lock .text:0000A6C8 .text:0000A6C8 ; --------------------------------------------------------------------------- .text:0000A6CC off_A6CC DCD 0 ; DATA XREF: _IO_list_lock+8r .text:0000A6D0 off_A6D0 DCD list_all_lock ; DATA XREF: _IO_list_lock+18r .text:0000A6D4 .text:0000A6D4 ; =============== S U B R O U T I N E ======================================= .text:0000A6D4 .text:0000A6D4 ; Attributes: bp-based frame .text:0000A6D4 .text:0000A6D4 EXPORT _IO_list_unlock .text:0000A6D4 _IO_list_unlock .text:0000A6D4 MOV R12, SP .text:0000A6D8 STMFD SP!, {R11,R12,LR,PC} .text:0000A6DC LDR R3, =0 .text:0000A6E0 SUB R11, R12, #4 .text:0000A6E4 CMP R3, #0 .text:0000A6E8 LDMEQDB R11, {R11,SP,PC} .text:0000A6EC LDR R0, =list_all_lock .text:0000A6F0 MOV LR, PC .text:0000A6F4 MOV PC, R3 .text:0000A6F8 LDMDB R11, {R11,SP,PC} .text:0000A6F8 ; End of function _IO_list_unlock .text:0000A6F8 .text:0000A6F8 ; --------------------------------------------------------------------------- .text:0000A6FC off_A6FC DCD 0 ; DATA XREF: _IO_list_unlock+8r .text:0000A700 off_A700 DCD list_all_lock ; DATA XREF: _IO_list_unlock+18r .text:0000A704 .text:0000A704 ; =============== S U B R O U T I N E ======================================= .text:0000A704 .text:0000A704 ; Attributes: bp-based frame .text:0000A704 .text:0000A704 EXPORT _IO_list_resetlock .text:0000A704 _IO_list_resetlock .text:0000A704 .text:0000A704 var_18 = -0x18 .text:0000A704 .text:0000A704 MOV R12, SP .text:0000A708 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0000A70C LDR R5, =0 .text:0000A710 SUB R11, R12, #4 .text:0000A714 CMP R5, #0 .text:0000A718 SUB SP, SP, #4 .text:0000A71C BEQ locret_A75C .text:0000A720 SUB R4, R11, #-var_18 .text:0000A724 MOV R0, R4 .text:0000A728 BL 0 .text:0000A72C MOV R0, R4 .text:0000A730 MOV R1, #1 .text:0000A734 BL 0 .text:0000A738 LDR R0, =list_all_lock .text:0000A73C MOV R1, R4 .text:0000A740 MOV LR, PC .text:0000A744 MOV PC, R5 .text:0000A748 MOV R0, R4 .text:0000A74C BL 0 .text:0000A750 B locret_A75C .text:0000A750 ; --------------------------------------------------------------------------- .text:0000A754 off_A754 DCD 0 ; DATA XREF: _IO_list_resetlock+8r .text:0000A758 off_A758 DCD list_all_lock ; DATA XREF: _IO_list_resetlock+34r .text:0000A75C ; --------------------------------------------------------------------------- .text:0000A75C .text:0000A75C locret_A75C ; CODE XREF: _IO_list_resetlock+18j .text:0000A75C ; _IO_list_resetlock+4Cj .text:0000A75C LDMDB R11, {R4,R5,R11,SP,PC} .text:0000A75C ; End of function _IO_list_resetlock .text:0000A75C .text:0000A760 .text:0000A760 ; =============== S U B R O U T I N E ======================================= .text:0000A760 .text:0000A760 ; Attributes: bp-based frame .text:0000A760 .text:0000A760 EXPORT _IO_str_init_static .text:0000A760 _IO_str_init_static ; CODE XREF: vsscanf+5Cp .text:0000A760 ; _IO_str_init_readonly+14p .text:0000A760 MOV R12, SP .text:0000A764 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0000A768 SUB R11, R12, #4 .text:0000A76C SUBS R12, R2, #0 .text:0000A770 MOV R5, R0 .text:0000A774 MOV R4, R1 .text:0000A778 MOV R7, R3 .text:0000A77C BNE loc_A790 .text:0000A780 MOV R0, R4 .text:0000A784 BL strlen .text:0000A788 MOV R12, R0 .text:0000A78C B loc_A804 .text:0000A790 ; --------------------------------------------------------------------------- .text:0000A790 .text:0000A790 loc_A790 ; CODE XREF: _IO_str_init_static+1Cj .text:0000A790 BGE loc_A804 .text:0000A794 MOV R12, #0x200 .text:0000A798 MOV R1, R12,LSL#1 .text:0000A79C ADD R3, R4, R1 .text:0000A7A0 CMP R3, R4 .text:0000A7A4 BLS loc_A7D8 .text:0000A7A8 .text:0000A7A8 loc_A7A8 ; CODE XREF: _IO_str_init_static+74j .text:0000A7A8 MOV R12, R1 .text:0000A7AC MOV R1, R12,LSL#1 .text:0000A7B0 CMP R1, #0 .text:0000A7B4 BLE loc_A7D8 .text:0000A7B8 ADD R2, R4, R1 .text:0000A7BC CMN R1, #0xFC000001 .text:0000A7C0 MOVGT R3, #0 .text:0000A7C4 MOVLE R3, #1 .text:0000A7C8 CMP R2, R4 .text:0000A7CC MOVLS R3, #0 .text:0000A7D0 CMP R3, #0 .text:0000A7D4 BNE loc_A7A8 .text:0000A7D8 .text:0000A7D8 loc_A7D8 ; CODE XREF: _IO_str_init_static+44j .text:0000A7D8 ; _IO_str_init_static+54j .text:0000A7D8 MOV R1, R12,ASR#1 .text:0000A7DC CMP R1, #0 .text:0000A7E0 BLE loc_A804 .text:0000A7E4 .text:0000A7E4 loc_A7E4 ; CODE XREF: _IO_str_init_static+A0j .text:0000A7E4 ADD R3, R4, R12 .text:0000A7E8 ADD R3, R3, R1 .text:0000A7EC ADD R2, R12, R1 .text:0000A7F0 CMP R3, R4 .text:0000A7F4 MOVHI R12, R2 .text:0000A7F8 MOV R1, R1,ASR#1 .text:0000A7FC CMP R1, #0 .text:0000A800 BGT loc_A7E4 .text:0000A804 .text:0000A804 loc_A804 ; CODE XREF: _IO_str_init_static+2Cj .text:0000A804 ; _IO_str_init_static:loc_A790j ... .text:0000A804 MOV R0, R5 .text:0000A808 ADD R6, R4, R12 .text:0000A80C MOV R1, R4 .text:0000A810 MOV R2, R6 .text:0000A814 MOV R3, #0 .text:0000A818 BL _IO_setb .text:0000A81C STR R4, [R5,#0x10] .text:0000A820 STR R4, [R5,#0xC] .text:0000A824 CMP R7, #0 .text:0000A828 STR R4, [R5,#4] .text:0000A82C STRNE R7, [R5,#0x14] .text:0000A830 STRNE R6, [R5,#0x18] .text:0000A834 STRNE R7, [R5,#8] .text:0000A838 STREQ R4, [R5,#0x14] .text:0000A83C STREQ R4, [R5,#0x18] .text:0000A840 STREQ R6, [R5,#8] .text:0000A844 MOV R3, #0 .text:0000A848 STR R3, [R5,#0x98] .text:0000A84C LDMDB R11, {R4-R7,R11,SP,PC} .text:0000A84C ; End of function _IO_str_init_static .text:0000A84C .text:0000A850 .text:0000A850 ; =============== S U B R O U T I N E ======================================= .text:0000A850 .text:0000A850 ; Attributes: bp-based frame .text:0000A850 .text:0000A850 EXPORT _IO_str_init_readonly .text:0000A850 _IO_str_init_readonly .text:0000A850 MOV R12, SP .text:0000A854 STMFD SP!, {R4,R11,R12,LR,PC} .text:0000A858 SUB R11, R12, #4 .text:0000A85C MOV R4, R0 .text:0000A860 MOV R3, #0 .text:0000A864 BL _IO_str_init_static .text:0000A868 LDR R3, [R4] .text:0000A86C ORR R3, R3, #8 .text:0000A870 STR R3, [R4] .text:0000A874 LDMDB R11, {R4,R11,SP,PC} .text:0000A874 ; End of function _IO_str_init_readonly .text:0000A874 .text:0000A878 .text:0000A878 ; =============== S U B R O U T I N E ======================================= .text:0000A878 .text:0000A878 ; Attributes: bp-based frame .text:0000A878 .text:0000A878 EXPORT _IO_str_overflow .text:0000A878 _IO_str_overflow .text:0000A878 MOV R12, SP .text:0000A87C STMFD SP!, {R4-R12,LR,PC} .text:0000A880 SUB R11, R12, #4 .text:0000A884 MOV R4, R0 .text:0000A888 MOV R9, R1 .text:0000A88C LDR R2, [R4] .text:0000A890 CMN R9, #1 .text:0000A894 MOVNE R8, #0 .text:0000A898 MOVEQ R8, #1 .text:0000A89C TST R2, #8 .text:0000A8A0 BEQ loc_A8B4 .text:0000A8A4 CMP R8, #0 .text:0000A8A8 MOVEQ R0, 0xFFFFFFFF .text:0000A8AC MOVNE R0, #0 .text:0000A8B0 LDMDB R11, {R4-R11,SP,PC} .text:0000A8B4 ; --------------------------------------------------------------------------- .text:0000A8B4 .text:0000A8B4 loc_A8B4 ; CODE XREF: _IO_str_overflow+28j .text:0000A8B4 AND R3, R2, #0xC00 .text:0000A8B8 CMP R3, #0x400 .text:0000A8BC BNE loc_A8D8 .text:0000A8C0 ORR R3, R2, #0x800 .text:0000A8C4 STR R3, [R4] .text:0000A8C8 LDR R2, [R4,#4] .text:0000A8CC STR R2, [R4,#0x14] .text:0000A8D0 LDR R3, [R4,#8] .text:0000A8D4 STR R3, [R4,#4] .text:0000A8D8 .text:0000A8D8 loc_A8D8 ; CODE XREF: _IO_str_overflow+44j .text:0000A8D8 ADD R3, R4, #0x20 .text:0000A8DC LDMDA R3, {R1,R3} .text:0000A8E0 SUB R1, R3, R1 .text:0000A8E4 ADD R3, R4, #0x14 .text:0000A8E8 LDMDA R3, {R2,R3} .text:0000A8EC SUB R2, R3, R2 .text:0000A8F0 LDR R6, [R4,#0x1C] .text:0000A8F4 ADD R3, R1, R8 .text:0000A8F8 CMP R2, R3 .text:0000A8FC BCC loc_A9C0 .text:0000A900 LDR R3, [R4] .text:0000A904 ANDS R10, R3, #1 .text:0000A908 BEQ loc_A914 .text:0000A90C .text:0000A90C loc_A90C ; CODE XREF: _IO_str_overflow+B4j .text:0000A90C MOV R0, 0xFFFFFFFF .text:0000A910 LDMDB R11, {R4-R11,SP,PC} .text:0000A914 ; --------------------------------------------------------------------------- .text:0000A914 .text:0000A914 loc_A914 ; CODE XREF: _IO_str_overflow+90j .text:0000A914 MOV R3, R1,LSL#1 .text:0000A918 ADD R7, R3, #0x64 .text:0000A91C MOV R0, R7 .text:0000A920 MOV LR, PC .text:0000A924 LDR PC, [R4,#0x98] .text:0000A928 SUBS R5, R0, #0 .text:0000A92C BEQ loc_A90C .text:0000A930 CMP R6, #0 .text:0000A934 BEQ loc_A960 .text:0000A938 MOV R0, R5 .text:0000A93C ADD R3, R4, #0x20 .text:0000A940 LDMDA R3, {R2,R3} .text:0000A944 SUB R2, R3, R2 .text:0000A948 MOV R1, R6 .text:0000A94C BL memcpy .text:0000A950 MOV R0, R6 .text:0000A954 MOV LR, PC .text:0000A958 LDR PC, [R4,#0x9C] .text:0000A95C STR R10, [R4,#0x1C] .text:0000A960 .text:0000A960 loc_A960 ; CODE XREF: _IO_str_overflow+BCj .text:0000A960 MOV R0, R4 .text:0000A964 MOV R1, R5 .text:0000A968 ADD R2, R5, R7 .text:0000A96C MOV R3, #1 .text:0000A970 BL _IO_setb .text:0000A974 LDR R3, [R4,#0xC] .text:0000A978 LDR R2, [R4,#4] .text:0000A97C STR R5, [R4,#0x10] .text:0000A980 RSB R3, R6, R3 .text:0000A984 ADD R3, R5, R3 .text:0000A988 STR R3, [R4,#0xC] .text:0000A98C RSB R2, R6, R2 .text:0000A990 ADD R2, R5, R2 .text:0000A994 STR R2, [R4,#4] .text:0000A998 LDR R3, [R4,#8] .text:0000A99C LDR R2, [R4,#0x14] .text:0000A9A0 RSB R3, R6, R3 .text:0000A9A4 ADD R3, R5, R3 .text:0000A9A8 STR R3, [R4,#8] .text:0000A9AC RSB R2, R6, R2 .text:0000A9B0 ADD R2, R5, R2 .text:0000A9B4 STR R2, [R4,#0x14] .text:0000A9B8 LDR R3, [R4,#0x20] .text:0000A9BC STR R3, [R4,#0x18] .text:0000A9C0 .text:0000A9C0 loc_A9C0 ; CODE XREF: _IO_str_overflow+84j .text:0000A9C0 CMP R8, #0 .text:0000A9C4 LDREQ R3, [R4,#0x14] .text:0000A9C8 STREQB R9, [R3],#1 .text:0000A9CC STREQ R3, [R4,#0x14] .text:0000A9D0 LDR R2, [R4,#0x14] .text:0000A9D4 LDR R3, [R4,#8] .text:0000A9D8 CMP R2, R3 .text:0000A9DC STRHI R2, [R4,#8] .text:0000A9E0 MOV R0, R9 .text:0000A9E4 LDMDB R11, {R4-R11,SP,PC} .text:0000A9E4 ; End of function _IO_str_overflow .text:0000A9E4 .text:0000A9E8 .text:0000A9E8 ; =============== S U B R O U T I N E ======================================= .text:0000A9E8 .text:0000A9E8 ; Attributes: bp-based frame .text:0000A9E8 .text:0000A9E8 EXPORT _IO_str_underflow .text:0000A9E8 _IO_str_underflow .text:0000A9E8 MOV R12, SP .text:0000A9EC STMFD SP!, {R11,R12,LR,PC} .text:0000A9F0 LDR R2, [R0,#0x14] .text:0000A9F4 LDR R3, [R0,#8] .text:0000A9F8 SUB R11, R12, #4 .text:0000A9FC CMP R2, R3 .text:0000AA00 STRHI R2, [R0,#8] .text:0000AA04 LDR R2, [R0] .text:0000AA08 AND R3, R2, #0xC00 .text:0000AA0C CMP R3, #0xC00 .text:0000AA10 BNE loc_AA2C .text:0000AA14 BIC R3, R2, #0x800 .text:0000AA18 STR R3, [R0] .text:0000AA1C LDR R2, [R0,#0x14] .text:0000AA20 STR R2, [R0,#4] .text:0000AA24 LDR R3, [R0,#0x18] .text:0000AA28 STR R3, [R0,#0x14] .text:0000AA2C .text:0000AA2C loc_AA2C ; CODE XREF: _IO_str_underflow+28j .text:0000AA2C LDMIB R0, {R2,R3} .text:0000AA30 CMP R2, R3 .text:0000AA34 MOV R0, 0xFFFFFFFF .text:0000AA38 LDMCSDB R11, {R11,SP,PC} .text:0000AA3C LDRB R0, [R2] .text:0000AA40 LDMDB R11, {R11,SP,PC} .text:0000AA40 ; End of function _IO_str_underflow .text:0000AA40 .text:0000AA44 .text:0000AA44 ; =============== S U B R O U T I N E ======================================= .text:0000AA44 .text:0000AA44 ; Attributes: bp-based frame .text:0000AA44 .text:0000AA44 EXPORT _IO_str_count .text:0000AA44 _IO_str_count ; CODE XREF: _IO_str_seekoff+90p .text:0000AA44 MOV R12, SP .text:0000AA48 STMFD SP!, {R11,R12,LR,PC} .text:0000AA4C LDR R2, [R0,#8] .text:0000AA50 LDR R3, [R0,#0x14] .text:0000AA54 LDR R0, [R0,#0xC] .text:0000AA58 SUB R11, R12, #4 .text:0000AA5C CMP R2, R3 .text:0000AA60 RSBCS R0, R0, R2 .text:0000AA64 RSBCC R0, R0, R3 .text:0000AA68 LDMDB R11, {R11,SP,PC} .text:0000AA68 ; End of function _IO_str_count .text:0000AA68 .text:0000AA6C .text:0000AA6C ; =============== S U B R O U T I N E ======================================= .text:0000AA6C .text:0000AA6C ; Attributes: bp-based frame .text:0000AA6C .text:0000AA6C EXPORT _IO_str_seekoff .text:0000AA6C _IO_str_seekoff .text:0000AA6C .text:0000AA6C var_2C = -0x2C .text:0000AA6C arg_0 = 4 .text:0000AA6C .text:0000AA6C MOV R12, SP .text:0000AA70 STMFD SP!, {R4-R12,LR,PC} .text:0000AA74 SUB R11, R12, #4 .text:0000AA78 MOV R8, R2 .text:0000AA7C MOV R7, R1 .text:0000AA80 MOV R10, R0 .text:0000AA84 SUB SP, SP, #4 .text:0000AA88 LDR R9, [R11,#arg_0] .text:0000AA8C MOV R12, R3 .text:0000AA90 CMP R9, #0 .text:0000AA94 BNE loc_AAB0 .text:0000AA98 LDR R3, [R10] .text:0000AA9C TST R3, #0x400 .text:0000AAA0 BEQ loc_AAB0 .text:0000AAA4 TST R3, #0x800 .text:0000AAA8 MOVEQ R9, #1 .text:0000AAAC MOVNE R9, #2 .text:0000AAB0 .text:0000AAB0 loc_AAB0 ; CODE XREF: _IO_str_seekoff+28j .text:0000AAB0 ; _IO_str_seekoff+34j .text:0000AAB0 CMP R9, #0 .text:0000AAB4 BNE loc_AAF4 .text:0000AAB8 LDR R3, [R10] .text:0000AABC TST R3, #8 .text:0000AAC0 BEQ loc_AADC .text:0000AAC4 LDR R3, [R10,#4] .text:0000AAC8 LDR R2, [R10,#0xC] .text:0000AACC RSB R3, R2, R3 .text:0000AAD0 MOV R1, R3 .text:0000AAD4 MOV R2, R1,ASR#31 .text:0000AAD8 B loc_AC20 .text:0000AADC ; --------------------------------------------------------------------------- .text:0000AADC .text:0000AADC loc_AADC ; CODE XREF: _IO_str_seekoff+54j .text:0000AADC ADD R2, R10, #0x14 .text:0000AAE0 LDMDA R2, {R2,R3} .text:0000AAE4 SUB R3, R3, R2 .text:0000AAE8 MOV R1, R3 .text:0000AAEC MOV R2, R1,ASR#31 .text:0000AAF0 B loc_AC20 .text:0000AAF4 ; --------------------------------------------------------------------------- .text:0000AAF4 .text:0000AAF4 loc_AAF4 ; CODE XREF: _IO_str_seekoff+48j .text:0000AAF4 STR R12, [R11,#var_2C] .text:0000AAF8 MOV R0, R10 .text:0000AAFC BL _IO_str_count .text:0000AB00 MOV R2, 0xFFFFFFFF .text:0000AB04 MOV R1, 0xFFFFFFFF .text:0000AB08 TST R9, #1 .text:0000AB0C LDR R12, [R11,#var_2C] .text:0000AB10 BEQ loc_AB94 .text:0000AB14 CMP R12, #1 .text:0000AB18 BEQ loc_AB54 .text:0000AB1C ADDS R3, R7, R0 .text:0000AB20 ADC R4, R8, R0,ASR#31 .text:0000AB24 SUBS R1, R12, #2 .text:0000AB28 MOVNE R1, #1 .text:0000AB2C MOV R2, #0 .text:0000AB30 RSBS R5, R1, #0 .text:0000AB34 RSC R6, R2, #0 .text:0000AB38 AND R7, R7, R5 .text:0000AB3C AND R8, R8, R6 .text:0000AB40 BIC R3, R3, R5 .text:0000AB44 BIC R4, R4, R6 .text:0000AB48 ORR R7, R7, R3 .text:0000AB4C ORR R8, R8, R4 .text:0000AB50 B loc_AB68 .text:0000AB54 ; --------------------------------------------------------------------------- .text:0000AB54 .text:0000AB54 loc_AB54 ; CODE XREF: _IO_str_seekoff+ACj .text:0000AB54 LDR R3, [R10,#4] .text:0000AB58 LDR R2, [R10,#0xC] .text:0000AB5C RSB R3, R2, R3 .text:0000AB60 ADDS R7, R7, R3 .text:0000AB64 ADC R8, R8, R3,ASR#31 .text:0000AB68 .text:0000AB68 loc_AB68 ; CODE XREF: _IO_str_seekoff+E4j .text:0000AB68 CMP R8, #0 .text:0000AB6C BLT loc_AC00 .text:0000AB70 CMP R7, R0 .text:0000AB74 BGT loc_AC00 .text:0000AB78 LDR R3, [R10,#0xC] .text:0000AB7C ADD R2, R3, R7 .text:0000AB80 STR R2, [R10,#4] .text:0000AB84 MOV R2, R8 .text:0000AB88 MOV R1, R7 .text:0000AB8C ADD R3, R3, R0 .text:0000AB90 STR R3, [R10,#8] .text:0000AB94 .text:0000AB94 loc_AB94 ; CODE XREF: _IO_str_seekoff+A4j .text:0000AB94 TST R9, #2 .text:0000AB98 BEQ loc_AC20 .text:0000AB9C CMP R12, #1 .text:0000ABA0 BEQ loc_ABDC .text:0000ABA4 ADDS R3, R7, R0 .text:0000ABA8 ADC R4, R8, R0,ASR#31 .text:0000ABAC SUBS R1, R12, #2 .text:0000ABB0 MOVNE R1, #1 .text:0000ABB4 MOV R2, #0 .text:0000ABB8 RSBS R5, R1, #0 .text:0000ABBC RSC R6, R2, #0 .text:0000ABC0 AND R7, R7, R5 .text:0000ABC4 AND R8, R8, R6 .text:0000ABC8 BIC R3, R3, R5 .text:0000ABCC BIC R4, R4, R6 .text:0000ABD0 ORR R7, R7, R3 .text:0000ABD4 ORR R8, R8, R4 .text:0000ABD8 B loc_ABF0 .text:0000ABDC ; --------------------------------------------------------------------------- .text:0000ABDC .text:0000ABDC loc_ABDC ; CODE XREF: _IO_str_seekoff+134j .text:0000ABDC ADD R2, R10, #0x14 .text:0000ABE0 LDMDA R2, {R2,R3} .text:0000ABE4 SUB R3, R3, R2 .text:0000ABE8 ADDS R7, R7, R3 .text:0000ABEC ADC R8, R8, R3,ASR#31 .text:0000ABF0 .text:0000ABF0 loc_ABF0 ; CODE XREF: _IO_str_seekoff+16Cj .text:0000ABF0 CMP R8, #0 .text:0000ABF4 BLT loc_AC00 .text:0000ABF8 CMP R7, R0 .text:0000ABFC BLE loc_AC0C .text:0000AC00 .text:0000AC00 loc_AC00 ; CODE XREF: _IO_str_seekoff+100j .text:0000AC00 ; _IO_str_seekoff+108j ... .text:0000AC00 MOV R1, 0xFFFFFFFF .text:0000AC04 MOV R0, 0xFFFFFFFF .text:0000AC08 B locret_AC28 .text:0000AC0C ; --------------------------------------------------------------------------- .text:0000AC0C .text:0000AC0C loc_AC0C ; CODE XREF: _IO_str_seekoff+190j .text:0000AC0C LDR R3, [R10,#0x10] .text:0000AC10 MOV R2, R8 .text:0000AC14 MOV R1, R7 .text:0000AC18 ADD R3, R3, R7 .text:0000AC1C STR R3, [R10,#0x14] .text:0000AC20 .text:0000AC20 loc_AC20 ; CODE XREF: _IO_str_seekoff+6Cj .text:0000AC20 ; _IO_str_seekoff+84j ... .text:0000AC20 MOV R0, R1 .text:0000AC24 MOV R1, R2 .text:0000AC28 .text:0000AC28 locret_AC28 ; CODE XREF: _IO_str_seekoff+19Cj .text:0000AC28 LDMDB R11, {R4-R11,SP,PC} .text:0000AC28 ; End of function _IO_str_seekoff .text:0000AC28 .text:0000AC2C .text:0000AC2C ; =============== S U B R O U T I N E ======================================= .text:0000AC2C .text:0000AC2C ; Attributes: bp-based frame .text:0000AC2C .text:0000AC2C EXPORT _IO_str_pbackfail .text:0000AC2C _IO_str_pbackfail .text:0000AC2C MOV R12, SP .text:0000AC30 STMFD SP!, {R11,R12,LR,PC} .text:0000AC34 SUB R11, R12, #4 .text:0000AC38 MOV R2, R0 .text:0000AC3C MOV R0, 0xFFFFFFFF .text:0000AC40 LDR R3, [R2] .text:0000AC44 CMP R1, R0 .text:0000AC48 MOV R3, R3,LSR#3 .text:0000AC4C ANDNE R3, R3, #1 .text:0000AC50 MOVEQ R3, #0 .text:0000AC54 CMP R3, #0 .text:0000AC58 LDMNEDB R11, {R11,SP,PC} .text:0000AC5C MOV R0, R2 .text:0000AC60 BL _IO_default_pbackfail .text:0000AC64 LDMDB R11, {R11,SP,PC} .text:0000AC64 ; End of function _IO_str_pbackfail .text:0000AC64 .text:0000AC68 .text:0000AC68 ; =============== S U B R O U T I N E ======================================= .text:0000AC68 .text:0000AC68 ; Attributes: bp-based frame .text:0000AC68 .text:0000AC68 EXPORT _IO_str_finish .text:0000AC68 _IO_str_finish .text:0000AC68 MOV R12, SP .text:0000AC6C STMFD SP!, {R4,R11,R12,LR,PC} .text:0000AC70 MOV R4, R0 .text:0000AC74 LDR R0, [R4,#0x1C] .text:0000AC78 SUB R11, R12, #4 .text:0000AC7C CMP R0, #0 .text:0000AC80 BEQ loc_AC98 .text:0000AC84 LDR R3, [R4] .text:0000AC88 TST R3, #1 .text:0000AC8C BNE loc_AC98 .text:0000AC90 MOV LR, PC .text:0000AC94 LDR PC, [R4,#0x9C] .text:0000AC98 .text:0000AC98 loc_AC98 ; CODE XREF: _IO_str_finish+18j .text:0000AC98 ; _IO_str_finish+24j .text:0000AC98 MOV R1, #0 .text:0000AC9C STR R1, [R4,#0x1C] .text:0000ACA0 MOV R0, R4 .text:0000ACA4 BL _IO_default_finish .text:0000ACA8 LDMDB R11, {R4,R11,SP,PC} .text:0000ACA8 ; End of function _IO_str_finish .text:0000ACA8 .text:0000ACAC .text:0000ACAC ; =============== S U B R O U T I N E ======================================= .text:0000ACAC .text:0000ACAC ; Attributes: bp-based frame .text:0000ACAC .text:0000ACAC ptmalloc_lock_all ; DATA XREF: ptmalloc_init+114o .text:0000ACAC ; .text:off_B240o .text:0000ACAC MOV R12, SP .text:0000ACB0 STMFD SP!, {R4-R8,R10-R12,LR,PC} .text:0000ACB4 LDR R3, =0 .text:0000ACB8 SUB R11, R12, #4 .text:0000ACBC CMP R3, #0 .text:0000ACC0 BEQ loc_ACD4 .text:0000ACC4 LDR R0, =list_lock .text:0000ACC8 MOV LR, PC .text:0000ACCC MOV PC, R3 .text:0000ACD0 B loc_ACE0 .text:0000ACD4 ; --------------------------------------------------------------------------- .text:0000ACD4 .text:0000ACD4 loc_ACD4 ; CODE XREF: ptmalloc_lock_all+14j .text:0000ACD4 LDR R2, =list_lock .text:0000ACD8 MOV R3, #1 .text:0000ACDC STR R3, [R2] .text:0000ACE0 .text:0000ACE0 loc_ACE0 ; CODE XREF: ptmalloc_lock_all+24j .text:0000ACE0 LDR R4, =main_arena .text:0000ACE4 LDR R8, =__malloc_hook .text:0000ACE8 LDR R10, =__free_hook .text:0000ACEC MOV R7, #1 .text:0000ACF0 LDR R5, =0 .text:0000ACF4 MOV R6, R4 .text:0000ACF8 .text:0000ACF8 loc_ACF8 ; CODE XREF: ptmalloc_lock_all+70j .text:0000ACF8 CMP R5, #0 .text:0000ACFC BEQ loc_AD10 .text:0000AD00 ADD R0, R4, #0x410 .text:0000AD04 MOV LR, PC .text:0000AD08 MOV PC, R5 .text:0000AD0C B loc_AD14 .text:0000AD10 ; --------------------------------------------------------------------------- .text:0000AD10 .text:0000AD10 loc_AD10 ; CODE XREF: ptmalloc_lock_all+50j .text:0000AD10 STR R7, [R4,#(main_arena+0x410 - 0x6B1E4)] .text:0000AD14 .text:0000AD14 loc_AD14 ; CODE XREF: ptmalloc_lock_all+60j .text:0000AD14 LDR R4, [R4,#0x408] .text:0000AD18 CMP R4, R6 .text:0000AD1C BNE loc_ACF8 .text:0000AD20 LDR R3, =malloc_atfork .text:0000AD24 LDR R1, [R8] .text:0000AD28 STR R3, [R8] .text:0000AD2C LDR R0, [R10] .text:0000AD30 LDR R3, =free_atfork .text:0000AD34 STR R3, [R10] .text:0000AD38 LDR R2, =save_malloc_hook .text:0000AD3C STR R1, [R2] .text:0000AD40 LDR R3, =__libc_internal_tsd_get .text:0000AD44 LDR R2, [R3] .text:0000AD48 LDR R3, =save_free_hook .text:0000AD4C CMP R2, #0 .text:0000AD50 STR R0, [R3] .text:0000AD54 BEQ loc_AD68 .text:0000AD58 MOV R0, #0 .text:0000AD5C MOV LR, PC .text:0000AD60 MOV PC, R2 .text:0000AD64 B loc_AD70 .text:0000AD68 ; --------------------------------------------------------------------------- .text:0000AD68 .text:0000AD68 loc_AD68 ; CODE XREF: ptmalloc_lock_all+A8j .text:0000AD68 LDR R3, =__libc_tsd_MALLOC_data .text:0000AD6C LDR R0, [R3] .text:0000AD70 .text:0000AD70 loc_AD70 ; CODE XREF: ptmalloc_lock_all+B8j .text:0000AD70 LDR R3, =__libc_internal_tsd_set .text:0000AD74 LDR R2, =save_arena .text:0000AD78 LDR R12, [R3] .text:0000AD7C STR R0, [R2] .text:0000AD80 CMP R12, #0 .text:0000AD84 BEQ loc_AD9C .text:0000AD88 MOV R0, #0 .text:0000AD8C MOV R1, R0 .text:0000AD90 MOV LR, PC .text:0000AD94 MOV PC, R12 .text:0000AD98 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0000AD9C ; --------------------------------------------------------------------------- .text:0000AD9C .text:0000AD9C loc_AD9C ; CODE XREF: ptmalloc_lock_all+D8j .text:0000AD9C LDR R3, =__libc_tsd_MALLOC_data .text:0000ADA0 STR R12, [R3] .text:0000ADA4 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0000ADA4 ; End of function ptmalloc_lock_all .text:0000ADA4 .text:0000ADA4 ; --------------------------------------------------------------------------- .text:0000ADA8 off_ADA8 DCD 0 ; DATA XREF: ptmalloc_lock_all+8r .text:0000ADA8 ; ptmalloc_lock_all+44r .text:0000ADAC off_ADAC DCD list_lock ; DATA XREF: ptmalloc_lock_all+18r .text:0000ADAC ; ptmalloc_lock_all:loc_ACD4r .text:0000ADB0 off_ADB0 DCD main_arena ; DATA XREF: ptmalloc_lock_all:loc_ACE0r .text:0000ADB4 off_ADB4 DCD __malloc_hook ; DATA XREF: ptmalloc_lock_all+38r .text:0000ADB8 off_ADB8 DCD __free_hook ; DATA XREF: ptmalloc_lock_all+3Cr .text:0000ADBC off_ADBC DCD malloc_atfork ; DATA XREF: ptmalloc_lock_all+74r .text:0000ADC0 off_ADC0 DCD free_atfork ; DATA XREF: ptmalloc_lock_all+84r .text:0000ADC4 off_ADC4 DCD save_malloc_hook ; DATA XREF: ptmalloc_lock_all+8Cr .text:0000ADC8 off_ADC8 DCD __libc_internal_tsd_get .text:0000ADC8 ; DATA XREF: ptmalloc_lock_all+94r .text:0000ADCC off_ADCC DCD save_free_hook ; DATA XREF: ptmalloc_lock_all+9Cr .text:0000ADD0 off_ADD0 DCD __libc_tsd_MALLOC_data .text:0000ADD0 ; DATA XREF: ptmalloc_lock_all:loc_AD68r .text:0000ADD0 ; ptmalloc_lock_all:loc_AD9Cr .text:0000ADD4 off_ADD4 DCD __libc_internal_tsd_set .text:0000ADD4 ; DATA XREF: ptmalloc_lock_all:loc_AD70r .text:0000ADD8 off_ADD8 DCD save_arena ; DATA XREF: ptmalloc_lock_all+C8r .text:0000ADDC .text:0000ADDC ; =============== S U B R O U T I N E ======================================= .text:0000ADDC .text:0000ADDC ; Attributes: bp-based frame .text:0000ADDC .text:0000ADDC ptmalloc_unlock_all ; DATA XREF: ptmalloc_init+118o .text:0000ADDC ; .text:off_B244o .text:0000ADDC MOV R12, SP .text:0000ADE0 STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:0000ADE4 LDR R3, =__libc_internal_tsd_set .text:0000ADE8 LDR R2, [R3] .text:0000ADEC SUB R11, R12, #4 .text:0000ADF0 CMP R2, #0 .text:0000ADF4 BEQ loc_AE10 .text:0000ADF8 LDR R3, =save_arena .text:0000ADFC LDR R1, [R3] .text:0000AE00 MOV R0, #0 .text:0000AE04 MOV LR, PC .text:0000AE08 MOV PC, R2 .text:0000AE0C B loc_AE20 .text:0000AE10 ; --------------------------------------------------------------------------- .text:0000AE10 .text:0000AE10 loc_AE10 ; CODE XREF: ptmalloc_unlock_all+18j .text:0000AE10 LDR R3, =save_arena .text:0000AE14 LDR R1, =__libc_tsd_MALLOC_data .text:0000AE18 LDR R2, [R3] .text:0000AE1C STR R2, [R1] .text:0000AE20 .text:0000AE20 loc_AE20 ; CODE XREF: ptmalloc_unlock_all+30j .text:0000AE20 LDR R2, =save_malloc_hook .text:0000AE24 LDR R1, =__malloc_hook .text:0000AE28 LDR R3, [R2] .text:0000AE2C STR R3, [R1] .text:0000AE30 LDR R4, =main_arena .text:0000AE34 LDR R8, =list_lock .text:0000AE38 LDR R6, =0 .text:0000AE3C LDR R2, =save_free_hook .text:0000AE40 LDR R1, =__free_hook .text:0000AE44 MOV R7, R4 .text:0000AE48 LDR R3, [R2] .text:0000AE4C MOV R5, R6 .text:0000AE50 STR R3, [R1] .text:0000AE54 .text:0000AE54 loc_AE54 ; CODE XREF: ptmalloc_unlock_all+9Cj .text:0000AE54 CMP R5, #0 .text:0000AE58 BEQ loc_AE6C .text:0000AE5C ADD R0, R4, #0x410 .text:0000AE60 MOV LR, PC .text:0000AE64 MOV PC, R5 .text:0000AE68 B loc_AE70 .text:0000AE6C ; --------------------------------------------------------------------------- .text:0000AE6C .text:0000AE6C loc_AE6C ; CODE XREF: ptmalloc_unlock_all+7Cj .text:0000AE6C STR R6, [R4,#(main_arena+0x410 - 0x6B1E4)] .text:0000AE70 .text:0000AE70 loc_AE70 ; CODE XREF: ptmalloc_unlock_all+8Cj .text:0000AE70 LDR R4, [R4,#0x408] .text:0000AE74 CMP R4, R7 .text:0000AE78 BNE loc_AE54 .text:0000AE7C CMP R6, #0 .text:0000AE80 BEQ loc_AE94 .text:0000AE84 MOV R0, R8 .text:0000AE88 MOV LR, PC .text:0000AE8C MOV PC, R6 .text:0000AE90 LDMDB R11, {R4-R8,R11,SP,PC} .text:0000AE94 ; --------------------------------------------------------------------------- .text:0000AE94 .text:0000AE94 loc_AE94 ; CODE XREF: ptmalloc_unlock_all+A4j .text:0000AE94 STR R6, [R8] .text:0000AE98 LDMDB R11, {R4-R8,R11,SP,PC} .text:0000AE98 ; End of function ptmalloc_unlock_all .text:0000AE98 .text:0000AE98 ; --------------------------------------------------------------------------- .text:0000AE9C off_AE9C DCD __libc_internal_tsd_set .text:0000AE9C ; DATA XREF: ptmalloc_unlock_all+8r .text:0000AEA0 off_AEA0 DCD save_arena ; DATA XREF: ptmalloc_unlock_all+1Cr .text:0000AEA0 ; ptmalloc_unlock_all:loc_AE10r .text:0000AEA4 off_AEA4 DCD __libc_tsd_MALLOC_data .text:0000AEA4 ; DATA XREF: ptmalloc_unlock_all+38r .text:0000AEA8 off_AEA8 DCD save_malloc_hook ; DATA XREF: ptmalloc_unlock_all:loc_AE20r .text:0000AEAC off_AEAC DCD __malloc_hook ; DATA XREF: ptmalloc_unlock_all+48r .text:0000AEB0 off_AEB0 DCD main_arena ; DATA XREF: ptmalloc_unlock_all+54r .text:0000AEB4 off_AEB4 DCD list_lock ; DATA XREF: ptmalloc_unlock_all+58r .text:0000AEB8 off_AEB8 DCD 0 ; DATA XREF: ptmalloc_unlock_all+5Cr .text:0000AEBC off_AEBC DCD save_free_hook ; DATA XREF: ptmalloc_unlock_all+60r .text:0000AEC0 off_AEC0 DCD __free_hook ; DATA XREF: ptmalloc_unlock_all+64r .text:0000AEC4 .text:0000AEC4 ; =============== S U B R O U T I N E ======================================= .text:0000AEC4 .text:0000AEC4 ; Attributes: bp-based frame .text:0000AEC4 .text:0000AEC4 ptmalloc_init_all ; DATA XREF: ptmalloc_init+11Co .text:0000AEC4 ; .text:off_B248o .text:0000AEC4 MOV R12, SP .text:0000AEC8 STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:0000AECC LDR R3, =__libc_internal_tsd_set .text:0000AED0 LDR R2, [R3] .text:0000AED4 SUB R11, R12, #4 .text:0000AED8 CMP R2, #0 .text:0000AEDC BEQ loc_AEF8 .text:0000AEE0 LDR R3, =save_arena .text:0000AEE4 LDR R1, [R3] .text:0000AEE8 MOV R0, #0 .text:0000AEEC MOV LR, PC .text:0000AEF0 MOV PC, R2 .text:0000AEF4 B loc_AF08 .text:0000AEF8 ; --------------------------------------------------------------------------- .text:0000AEF8 .text:0000AEF8 loc_AEF8 ; CODE XREF: ptmalloc_init_all+18j .text:0000AEF8 LDR R3, =save_arena .text:0000AEFC LDR R1, =__libc_tsd_MALLOC_data .text:0000AF00 LDR R2, [R3] .text:0000AF04 STR R2, [R1] .text:0000AF08 .text:0000AF08 loc_AF08 ; CODE XREF: ptmalloc_init_all+30j .text:0000AF08 LDR R2, =save_malloc_hook .text:0000AF0C LDR R1, =__malloc_hook .text:0000AF10 LDR R3, [R2] .text:0000AF14 STR R3, [R1] .text:0000AF18 LDR R4, =main_arena .text:0000AF1C LDR R8, =list_lock .text:0000AF20 LDR R6, =0 .text:0000AF24 LDR R2, =save_free_hook .text:0000AF28 LDR R1, =__free_hook .text:0000AF2C MOV R7, R4 .text:0000AF30 LDR R3, [R2] .text:0000AF34 MOV R5, R6 .text:0000AF38 STR R3, [R1] .text:0000AF3C .text:0000AF3C loc_AF3C ; CODE XREF: ptmalloc_init_all+A0j .text:0000AF3C CMP R5, #0 .text:0000AF40 BEQ loc_AF58 .text:0000AF44 ADD R0, R4, #0x410 .text:0000AF48 MOV R1, #0 .text:0000AF4C MOV LR, PC .text:0000AF50 MOV PC, R5 .text:0000AF54 B loc_AF5C .text:0000AF58 ; --------------------------------------------------------------------------- .text:0000AF58 .text:0000AF58 loc_AF58 ; CODE XREF: ptmalloc_init_all+7Cj .text:0000AF58 STR R6, [R4,#(main_arena+0x410 - 0x6B1E4)] .text:0000AF5C .text:0000AF5C loc_AF5C ; CODE XREF: ptmalloc_init_all+90j .text:0000AF5C LDR R4, [R4,#0x408] .text:0000AF60 CMP R4, R7 .text:0000AF64 BNE loc_AF3C .text:0000AF68 CMP R6, #0 .text:0000AF6C BEQ loc_AF84 .text:0000AF70 MOV R0, R8 .text:0000AF74 MOV R1, #0 .text:0000AF78 MOV LR, PC .text:0000AF7C MOV PC, R6 .text:0000AF80 LDMDB R11, {R4-R8,R11,SP,PC} .text:0000AF84 ; --------------------------------------------------------------------------- .text:0000AF84 .text:0000AF84 loc_AF84 ; CODE XREF: ptmalloc_init_all+A8j .text:0000AF84 STR R6, [R8] .text:0000AF88 LDMDB R11, {R4-R8,R11,SP,PC} .text:0000AF88 ; End of function ptmalloc_init_all .text:0000AF88 .text:0000AF88 ; --------------------------------------------------------------------------- .text:0000AF8C off_AF8C DCD __libc_internal_tsd_set ; DATA XREF: ptmalloc_init_all+8r .text:0000AF90 off_AF90 DCD save_arena ; DATA XREF: ptmalloc_init_all+1Cr .text:0000AF90 ; ptmalloc_init_all:loc_AEF8r .text:0000AF94 off_AF94 DCD __libc_tsd_MALLOC_data ; DATA XREF: ptmalloc_init_all+38r .text:0000AF98 off_AF98 DCD save_malloc_hook ; DATA XREF: ptmalloc_init_all:loc_AF08r .text:0000AF9C off_AF9C DCD __malloc_hook ; DATA XREF: ptmalloc_init_all+48r .text:0000AFA0 off_AFA0 DCD main_arena ; DATA XREF: ptmalloc_init_all+54r .text:0000AFA4 off_AFA4 DCD list_lock ; DATA XREF: ptmalloc_init_all+58r .text:0000AFA8 off_AFA8 DCD 0 ; DATA XREF: ptmalloc_init_all+5Cr .text:0000AFAC off_AFAC DCD save_free_hook ; DATA XREF: ptmalloc_init_all+60r .text:0000AFB0 off_AFB0 DCD __free_hook ; DATA XREF: ptmalloc_init_all+64r .text:0000AFB4 .text:0000AFB4 ; =============== S U B R O U T I N E ======================================= .text:0000AFB4 .text:0000AFB4 ; Attributes: bp-based frame .text:0000AFB4 .text:0000AFB4 ptmalloc_init ; CODE XREF: malloc_hook_ini+1Cp .text:0000AFB4 ; realloc_hook_ini+28p ... .text:0000AFB4 MOV R12, SP .text:0000AFB8 STMFD SP!, {R4-R12,LR,PC} .text:0000AFBC LDR R2, =__libc_malloc_initialized .text:0000AFC0 SUB R11, R12, #4 .text:0000AFC4 LDR R3, [R2] .text:0000AFC8 MOV R9, R2 .text:0000AFCC CMP R3, #0 .text:0000AFD0 LDMGEDB R11, {R4-R11,SP,PC} .text:0000AFD4 MOV R5, #0 .text:0000AFD8 STR R5, [R9] .text:0000AFDC LDR R4, =__libc_pagesize .text:0000AFE0 BL getpagesize .text:0000AFE4 STR R0, [R4] .text:0000AFE8 LDR R1, =__malloc_hook .text:0000AFEC LDR R3, =malloc_starter .text:0000AFF0 LDR R12, [R1] .text:0000AFF4 STR R3, [R1] .text:0000AFF8 LDR R2, =__free_hook .text:0000AFFC LDR R3, =free_starter .text:0000B000 LDR LR, [R2] .text:0000B004 STR R3, [R2] .text:0000B008 LDR R0, =save_malloc_hook .text:0000B00C STR R12, [R0] .text:0000B010 MOV R7, R1 .text:0000B014 MOV R10, R2 .text:0000B018 LDR R12, =0 .text:0000B01C MOV R6, R0 .text:0000B020 LDR R3, =save_free_hook .text:0000B024 CMP R12, R5 .text:0000B028 MOV R8, R3 .text:0000B02C STR LR, [R3] .text:0000B030 BEQ loc_B03C .text:0000B034 MOV LR, PC .text:0000B038 MOV PC, R12 .text:0000B03C .text:0000B03C loc_B03C ; CODE XREF: ptmalloc_init+7Cj .text:0000B03C LDR R3, =0 .text:0000B040 CMP R3, #0 .text:0000B044 MOV R4, R3 .text:0000B048 BEQ loc_B060 .text:0000B04C LDR R0, =(main_arena+0x410) .text:0000B050 MOV R1, R5 .text:0000B054 MOV LR, PC .text:0000B058 MOV PC, R4 .text:0000B05C B loc_B068 .text:0000B060 ; --------------------------------------------------------------------------- .text:0000B060 .text:0000B060 loc_B060 ; CODE XREF: ptmalloc_init+94j .text:0000B060 LDR R3, =(main_arena+0x410) .text:0000B064 STR R4, [R3] .text:0000B068 .text:0000B068 loc_B068 ; CODE XREF: ptmalloc_init+A8j .text:0000B068 CMP R4, #0 .text:0000B06C BEQ loc_B084 .text:0000B070 LDR R0, =list_lock .text:0000B074 MOV R1, #0 .text:0000B078 MOV LR, PC .text:0000B07C MOV PC, R4 .text:0000B080 B loc_B08C .text:0000B084 ; --------------------------------------------------------------------------- .text:0000B084 .text:0000B084 loc_B084 ; CODE XREF: ptmalloc_init+B8j .text:0000B084 LDR R3, =list_lock .text:0000B088 STR R4, [R3] .text:0000B08C .text:0000B08C loc_B08C ; CODE XREF: ptmalloc_init+CCj .text:0000B08C LDR R3, =__libc_internal_tsd_set .text:0000B090 LDR R3, [R3] .text:0000B094 CMP R3, #0 .text:0000B098 BEQ loc_B0B0 .text:0000B09C LDR R1, =main_arena .text:0000B0A0 MOV R0, #0 .text:0000B0A4 MOV LR, PC .text:0000B0A8 MOV PC, R3 .text:0000B0AC B loc_B0BC .text:0000B0B0 ; --------------------------------------------------------------------------- .text:0000B0B0 .text:0000B0B0 loc_B0B0 ; CODE XREF: ptmalloc_init+E4j .text:0000B0B0 LDR R2, =__libc_tsd_MALLOC_data .text:0000B0B4 LDR R3, =main_arena .text:0000B0B8 STR R3, [R2] .text:0000B0BC .text:0000B0BC loc_B0BC ; CODE XREF: ptmalloc_init+F8j .text:0000B0BC LDR R3, =0 .text:0000B0C0 CMP R3, #0 .text:0000B0C4 BEQ loc_B0DC .text:0000B0C8 LDR R0, =ptmalloc_lock_all .text:0000B0CC LDR R1, =ptmalloc_unlock_all .text:0000B0D0 LDR R2, =ptmalloc_init_all .text:0000B0D4 MOV LR, PC .text:0000B0D8 MOV PC, R3 .text:0000B0DC .text:0000B0DC loc_B0DC ; CODE XREF: ptmalloc_init+110j .text:0000B0DC LDR R3, [R6] .text:0000B0E0 STR R3, [R7] .text:0000B0E4 LDR R2, =__libc_enable_secure .text:0000B0E8 LDR R3, [R8] .text:0000B0EC LDR R4, [R2] .text:0000B0F0 STR R3, [R10] .text:0000B0F4 CMP R4, #0 .text:0000B0F8 BNE loc_B1AC .text:0000B0FC LDR R0, =aMalloc_trim_th ; "MALLOC_TRIM_THRESHOLD_" .text:0000B100 BL getenv .text:0000B104 CMP R0, #0 .text:0000B108 BEQ loc_B128 .text:0000B10C MOV R1, R4 .text:0000B110 MOV R2, #0xA .text:0000B114 MOV R3, R4 .text:0000B118 BL __strtol_internal .text:0000B11C MOV R1, R0 .text:0000B120 MOV R0, 0xFFFFFFFF .text:0000B124 BL mallopt .text:0000B128 .text:0000B128 loc_B128 ; CODE XREF: ptmalloc_init+154j .text:0000B128 LDR R0, =aMalloc_top_pad ; "MALLOC_TOP_PAD_" .text:0000B12C BL getenv .text:0000B130 CMP R0, #0 .text:0000B134 BEQ loc_B154 .text:0000B138 MOV R1, R4 .text:0000B13C MOV R2, #0xA .text:0000B140 MOV R3, R4 .text:0000B144 BL __strtol_internal .text:0000B148 MOV R1, R0 .text:0000B14C MOV R0, 0xFFFFFFFE .text:0000B150 BL mallopt .text:0000B154 .text:0000B154 loc_B154 ; CODE XREF: ptmalloc_init+180j .text:0000B154 LDR R0, =aMalloc_mmap_th ; "MALLOC_MMAP_THRESHOLD_" .text:0000B158 BL getenv .text:0000B15C CMP R0, #0 .text:0000B160 BEQ loc_B180 .text:0000B164 MOV R1, R4 .text:0000B168 MOV R2, #0xA .text:0000B16C MOV R3, R4 .text:0000B170 BL __strtol_internal .text:0000B174 MOV R1, R0 .text:0000B178 MOV R0, 0xFFFFFFFD .text:0000B17C BL mallopt .text:0000B180 .text:0000B180 loc_B180 ; CODE XREF: ptmalloc_init+1ACj .text:0000B180 LDR R0, =aMalloc_mmap_ma ; "MALLOC_MMAP_MAX_" .text:0000B184 BL getenv .text:0000B188 CMP R0, #0 .text:0000B18C BEQ loc_B1AC .text:0000B190 MOV R1, R4 .text:0000B194 MOV R2, #0xA .text:0000B198 MOV R3, R1 .text:0000B19C BL __strtol_internal .text:0000B1A0 MOV R1, R0 .text:0000B1A4 MOV R0, 0xFFFFFFFC .text:0000B1A8 BL mallopt .text:0000B1AC .text:0000B1AC loc_B1AC ; CODE XREF: ptmalloc_init+144j .text:0000B1AC ; ptmalloc_init+1D8j .text:0000B1AC LDR R0, =aMalloc_check_ ; "MALLOC_CHECK_" .text:0000B1B0 BL getenv .text:0000B1B4 CMP R0, #0 .text:0000B1B8 BEQ loc_B1DC .text:0000B1BC LDRB R3, [R0] .text:0000B1C0 CMP R3, #0 .text:0000B1C4 BEQ loc_B1D8 .text:0000B1C8 MOV R1, R3 .text:0000B1CC MOV R0, 0xFFFFFFFB .text:0000B1D0 SUB R1, R1, #0x30 .text:0000B1D4 BL mallopt .text:0000B1D8 .text:0000B1D8 loc_B1D8 ; CODE XREF: ptmalloc_init+210j .text:0000B1D8 BL __malloc_check_init .text:0000B1DC .text:0000B1DC loc_B1DC ; CODE XREF: ptmalloc_init+204j .text:0000B1DC LDR R3, =__malloc_initialize_hook .text:0000B1E0 LDR R3, [R3] .text:0000B1E4 CMP R3, #0 .text:0000B1E8 BEQ loc_B1F4 .text:0000B1EC MOV LR, PC .text:0000B1F0 MOV PC, R3 .text:0000B1F4 .text:0000B1F4 loc_B1F4 ; CODE XREF: ptmalloc_init+234j .text:0000B1F4 MOV R3, #1 .text:0000B1F8 STR R3, [R9] .text:0000B1FC LDMDB R11, {R4-R11,SP,PC} .text:0000B1FC ; End of function ptmalloc_init .text:0000B1FC .text:0000B1FC ; --------------------------------------------------------------------------- .text:0000B200 off_B200 DCD __libc_malloc_initialized ; DATA XREF: ptmalloc_init+8r .text:0000B204 off_B204 DCD __libc_pagesize ; DATA XREF: ptmalloc_init+28r .text:0000B208 off_B208 DCD __malloc_hook ; DATA XREF: ptmalloc_init+34r .text:0000B20C off_B20C DCD malloc_starter ; DATA XREF: ptmalloc_init+38r .text:0000B210 off_B210 DCD __free_hook ; DATA XREF: ptmalloc_init+44r .text:0000B214 off_B214 DCD free_starter ; DATA XREF: ptmalloc_init+48r .text:0000B218 off_B218 DCD save_malloc_hook ; DATA XREF: ptmalloc_init+54r .text:0000B21C off_B21C DCD 0 ; DATA XREF: ptmalloc_init+64r .text:0000B220 off_B220 DCD save_free_hook ; DATA XREF: ptmalloc_init+6Cr .text:0000B224 off_B224 DCD 0 ; DATA XREF: ptmalloc_init:loc_B03Cr .text:0000B228 off_B228 DCD main_arena+0x410 ; DATA XREF: ptmalloc_init+98r .text:0000B228 ; ptmalloc_init:loc_B060r .text:0000B22C off_B22C DCD list_lock ; DATA XREF: ptmalloc_init+BCr .text:0000B22C ; ptmalloc_init:loc_B084r .text:0000B230 off_B230 DCD __libc_internal_tsd_set .text:0000B230 ; DATA XREF: ptmalloc_init:loc_B08Cr .text:0000B234 off_B234 DCD main_arena ; DATA XREF: ptmalloc_init+E8r .text:0000B234 ; ptmalloc_init+100r .text:0000B238 off_B238 DCD __libc_tsd_MALLOC_data .text:0000B238 ; DATA XREF: ptmalloc_init:loc_B0B0r .text:0000B23C off_B23C DCD 0 ; DATA XREF: ptmalloc_init:loc_B0BCr .text:0000B240 off_B240 DCD ptmalloc_lock_all ; DATA XREF: ptmalloc_init+114r .text:0000B244 off_B244 DCD ptmalloc_unlock_all ; DATA XREF: ptmalloc_init+118r .text:0000B248 off_B248 DCD ptmalloc_init_all ; DATA XREF: ptmalloc_init+11Cr .text:0000B24C off_B24C DCD __libc_enable_secure ; DATA XREF: ptmalloc_init+130r .text:0000B250 off_B250 DCD aMalloc_trim_th ; DATA XREF: ptmalloc_init+148r .text:0000B250 ; "MALLOC_TRIM_THRESHOLD_" .text:0000B254 off_B254 DCD aMalloc_top_pad ; DATA XREF: ptmalloc_init:loc_B128r .text:0000B254 ; "MALLOC_TOP_PAD_" .text:0000B258 off_B258 DCD aMalloc_mmap_th ; DATA XREF: ptmalloc_init:loc_B154r .text:0000B258 ; "MALLOC_MMAP_THRESHOLD_" .text:0000B25C off_B25C DCD aMalloc_mmap_ma ; DATA XREF: ptmalloc_init:loc_B180r .text:0000B25C ; "MALLOC_MMAP_MAX_" .text:0000B260 off_B260 DCD aMalloc_check_ ; DATA XREF: ptmalloc_init:loc_B1ACr .text:0000B260 ; "MALLOC_CHECK_" .text:0000B264 off_B264 DCD __malloc_initialize_hook .text:0000B264 ; DATA XREF: ptmalloc_init:loc_B1DCr .text:0000B268 .text:0000B268 ; =============== S U B R O U T I N E ======================================= .text:0000B268 .text:0000B268 ; Attributes: bp-based frame .text:0000B268 .text:0000B268 malloc_hook_ini .text:0000B268 MOV R12, SP .text:0000B26C STMFD SP!, {R4,R11,R12,LR,PC} .text:0000B270 LDR R3, =__malloc_hook .text:0000B274 MOV R2, #0 .text:0000B278 STR R2, [R3] .text:0000B27C SUB R11, R12, #4 .text:0000B280 MOV R4, R0 .text:0000B284 BL ptmalloc_init .text:0000B288 MOV R0, R4 .text:0000B28C BL malloc .text:0000B290 LDMDB R11, {R4,R11,SP,PC} .text:0000B290 ; End of function malloc_hook_ini .text:0000B290 .text:0000B290 ; --------------------------------------------------------------------------- .text:0000B294 off_B294 DCD __malloc_hook ; DATA XREF: malloc_hook_ini+8r .text:0000B298 .text:0000B298 ; =============== S U B R O U T I N E ======================================= .text:0000B298 .text:0000B298 ; Attributes: bp-based frame .text:0000B298 .text:0000B298 realloc_hook_ini .text:0000B298 MOV R12, SP .text:0000B29C STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0000B2A0 SUB R11, R12, #4 .text:0000B2A4 LDR R2, =__malloc_hook .text:0000B2A8 MOV R12, #0 .text:0000B2AC STR R12, [R2] .text:0000B2B0 LDR R3, =__realloc_hook .text:0000B2B4 STR R12, [R3] .text:0000B2B8 MOV R4, R0 .text:0000B2BC MOV R5, R1 .text:0000B2C0 BL ptmalloc_init .text:0000B2C4 MOV R0, R4 .text:0000B2C8 MOV R1, R5 .text:0000B2CC BL realloc .text:0000B2D0 LDMDB R11, {R4,R5,R11,SP,PC} .text:0000B2D0 ; End of function realloc_hook_ini .text:0000B2D0 .text:0000B2D0 ; --------------------------------------------------------------------------- .text:0000B2D4 off_B2D4 DCD __malloc_hook ; DATA XREF: realloc_hook_ini+Cr .text:0000B2D8 off_B2D8 DCD __realloc_hook ; DATA XREF: realloc_hook_ini+18r .text:0000B2DC .text:0000B2DC ; =============== S U B R O U T I N E ======================================= .text:0000B2DC .text:0000B2DC ; Attributes: bp-based frame .text:0000B2DC .text:0000B2DC memalign_hook_ini .text:0000B2DC MOV R12, SP .text:0000B2E0 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0000B2E4 LDR R2, =__memalign_hook .text:0000B2E8 MOV R3, #0 .text:0000B2EC STR R3, [R2] .text:0000B2F0 SUB R11, R12, #4 .text:0000B2F4 MOV R4, R0 .text:0000B2F8 MOV R5, R1 .text:0000B2FC BL ptmalloc_init .text:0000B300 MOV R0, R4 .text:0000B304 MOV R1, R5 .text:0000B308 BL memalign .text:0000B30C LDMDB R11, {R4,R5,R11,SP,PC} .text:0000B30C ; End of function memalign_hook_ini .text:0000B30C .text:0000B30C ; --------------------------------------------------------------------------- .text:0000B310 off_B310 DCD __memalign_hook ; DATA XREF: memalign_hook_ini+8r .text:0000B314 .text:0000B314 ; =============== S U B R O U T I N E ======================================= .text:0000B314 .text:0000B314 ; Attributes: bp-based frame .text:0000B314 .text:0000B314 EXPORT __malloc_check_init .text:0000B314 __malloc_check_init ; CODE XREF: ptmalloc_init:loc_B1D8p .text:0000B314 ; malloc_set_state+1BCp .text:0000B314 MOV R12, SP .text:0000B318 STMFD SP!, {R11,R12,LR,PC} .text:0000B31C LDR R2, =disallow_malloc_check .text:0000B320 LDR R3, [R2] .text:0000B324 SUB R11, R12, #4 .text:0000B328 CMP R3, #0 .text:0000B32C MOVNE R3, #0 .text:0000B330 STRNE R3, [R2] .text:0000B334 LDMNEDB R11, {R11,SP,PC} .text:0000B338 LDR R2, =using_malloc_checking .text:0000B33C MOV R3, #1 .text:0000B340 STR R3, [R2] .text:0000B344 LDR R1, =__malloc_hook .text:0000B348 LDR R3, =malloc_check .text:0000B34C STR R3, [R1] .text:0000B350 LDR R2, =__free_hook .text:0000B354 LDR R3, =free_check .text:0000B358 STR R3, [R2] .text:0000B35C LDR R1, =__realloc_hook .text:0000B360 LDR R3, =realloc_check .text:0000B364 STR R3, [R1] .text:0000B368 LDR R0, =__memalign_hook .text:0000B36C LDR R2, =memalign_check .text:0000B370 LDR R3, =check_action .text:0000B374 LDR R1, [R3] .text:0000B378 STR R2, [R0] .text:0000B37C TST R1, #1 .text:0000B380 LDMEQDB R11, {R11,SP,PC} .text:0000B384 LDR R3, =stderr .text:0000B388 LDR R1, =aMallocUsingDeb ; "malloc: using debugging hooks\n" .text:0000B38C LDR R0, [R3] .text:0000B390 BL fprintf .text:0000B394 LDMDB R11, {R11,SP,PC} .text:0000B394 ; End of function __malloc_check_init .text:0000B394 .text:0000B394 ; --------------------------------------------------------------------------- .text:0000B398 off_B398 DCD disallow_malloc_check ; DATA XREF: __malloc_check_init+8r .text:0000B39C off_B39C DCD using_malloc_checking .text:0000B39C ; DATA XREF: __malloc_check_init+24r .text:0000B3A0 off_B3A0 DCD __malloc_hook ; DATA XREF: __malloc_check_init+30r .text:0000B3A4 off_B3A4 DCD malloc_check ; DATA XREF: __malloc_check_init+34r .text:0000B3A8 off_B3A8 DCD __free_hook ; DATA XREF: __malloc_check_init+3Cr .text:0000B3AC off_B3AC DCD free_check ; DATA XREF: __malloc_check_init+40r .text:0000B3B0 off_B3B0 DCD __realloc_hook ; DATA XREF: __malloc_check_init+48r .text:0000B3B4 off_B3B4 DCD realloc_check ; DATA XREF: __malloc_check_init+4Cr .text:0000B3B8 off_B3B8 DCD __memalign_hook ; DATA XREF: __malloc_check_init+54r .text:0000B3BC off_B3BC DCD memalign_check ; DATA XREF: __malloc_check_init+58r .text:0000B3C0 off_B3C0 DCD check_action ; DATA XREF: __malloc_check_init+5Cr .text:0000B3C4 off_B3C4 DCD stderr ; DATA XREF: __malloc_check_init+70r .text:0000B3C8 off_B3C8 DCD aMallocUsingDeb ; DATA XREF: __malloc_check_init+74r .text:0000B3C8 ; "malloc: using debugging hooks\n" .text:0000B3CC .text:0000B3CC ; =============== S U B R O U T I N E ======================================= .text:0000B3CC .text:0000B3CC ; Attributes: bp-based frame .text:0000B3CC .text:0000B3CC munmap_chunk ; CODE XREF: free+48p .text:0000B3CC ; realloc+190p ... .text:0000B3CC MOV R12, SP .text:0000B3D0 STMFD SP!, {R11,R12,LR,PC} .text:0000B3D4 LDR R2, =n_mmaps .text:0000B3D8 LDR R3, [R2] .text:0000B3DC LDR R1, [R0,#4] .text:0000B3E0 SUB R3, R3, #1 .text:0000B3E4 STR R3, [R2] .text:0000B3E8 SUB R11, R12, #4 .text:0000B3EC LDR R12, =mmapped_mem .text:0000B3F0 LDR R2, [R0] .text:0000B3F4 BIC R1, R1, #3 .text:0000B3F8 LDR R3, [R12] .text:0000B3FC ADD R1, R1, R2 .text:0000B400 RSB R3, R1, R3 .text:0000B404 STR R3, [R12] .text:0000B408 RSB R0, R2, R0 .text:0000B40C BL munmap .text:0000B410 LDMDB R11, {R11,SP,PC} .text:0000B410 ; End of function munmap_chunk .text:0000B410 .text:0000B410 ; --------------------------------------------------------------------------- .text:0000B414 off_B414 DCD n_mmaps ; DATA XREF: munmap_chunk+8r .text:0000B418 off_B418 DCD mmapped_mem ; DATA XREF: munmap_chunk+20r .text:0000B41C .text:0000B41C ; =============== S U B R O U T I N E ======================================= .text:0000B41C .text:0000B41C ; Attributes: bp-based frame .text:0000B41C .text:0000B41C mremap_chunk ; CODE XREF: realloc+C8p .text:0000B41C ; realloc_check+14Cp .text:0000B41C MOV R12, SP .text:0000B420 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:0000B424 LDR R4, [R0] .text:0000B428 SUB R11, R12, #4 .text:0000B42C LDR R12, [R0,#4] .text:0000B430 LDR R2, =__libc_pagesize .text:0000B434 RSB R0, R4, R0 .text:0000B438 BIC R12, R12, #3 .text:0000B43C ADD R1, R1, R4 .text:0000B440 LDR R3, [R2] .text:0000B444 ADD R6, R12, R4 .text:0000B448 ADD R2, R3, #3 .text:0000B44C ADD R1, R1, R2 .text:0000B450 RSB R3, R3, #0 .text:0000B454 AND R5, R1, R3 .text:0000B458 MOV R1, R6 .text:0000B45C MOV R2, R5 .text:0000B460 MOV R3, #1 .text:0000B464 BL mremap .text:0000B468 CMN R0, #1 .text:0000B46C MOVEQ R0, #0 .text:0000B470 LDMEQDB R11, {R4-R6,R11,SP,PC} .text:0000B474 ADD R0, R0, R4 .text:0000B478 RSB R3, R4, R5 .text:0000B47C ORR R3, R3, #2 .text:0000B480 STR R3, [R0,#4] .text:0000B484 LDR R1, =mmapped_mem .text:0000B488 LDR R12, =max_mmapped_mem .text:0000B48C LDR R3, [R1] .text:0000B490 LDR R2, [R12] .text:0000B494 RSB R3, R6, R3 .text:0000B498 ADD R3, R3, R5 .text:0000B49C CMP R3, R2 .text:0000B4A0 STR R3, [R1] .text:0000B4A4 LDMLSDB R11, {R4-R6,R11,SP,PC} .text:0000B4A8 STR R3, [R12] .text:0000B4AC LDMDB R11, {R4-R6,R11,SP,PC} .text:0000B4AC ; End of function mremap_chunk .text:0000B4AC .text:0000B4AC ; --------------------------------------------------------------------------- .text:0000B4B0 off_B4B0 DCD __libc_pagesize ; DATA XREF: mremap_chunk+14r .text:0000B4B4 off_B4B4 DCD mmapped_mem ; DATA XREF: mremap_chunk+68r .text:0000B4B8 off_B4B8 DCD max_mmapped_mem ; DATA XREF: mremap_chunk+6Cr .text:0000B4BC .text:0000B4BC ; =============== S U B R O U T I N E ======================================= .text:0000B4BC .text:0000B4BC ; Attributes: bp-based frame .text:0000B4BC .text:0000B4BC new_heap ; CODE XREF: arena_get2+14Cp .text:0000B4BC ; arena_get2+15Cp ... .text:0000B4BC .text:0000B4BC var_24 = -0x24 .text:0000B4BC var_20 = -0x20 .text:0000B4BC .text:0000B4BC MOV R12, SP .text:0000B4C0 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0000B4C4 SUB R11, R12, #4 .text:0000B4C8 LDR R3, =top_pad .text:0000B4CC SUB SP, SP, #8 .text:0000B4D0 LDR R1, [R3] .text:0000B4D4 MOV R7, R0 .text:0000B4D8 LDR R3, =__libc_pagesize .text:0000B4DC ADD R1, R7, R1 .text:0000B4E0 LDR R2, [R3] .text:0000B4E4 CMP R1, #0x8000 .text:0000B4E8 SUB R2, R2, #1 .text:0000B4EC MOVCC R7, #0x8000 .text:0000B4F0 BCC loc_B50C .text:0000B4F4 CMP R1, #0x100000 .text:0000B4F8 MOVLS R7, R1 .text:0000B4FC BLS loc_B50C .text:0000B500 CMP R7, #0x100000 .text:0000B504 BHI loc_B5E4 .text:0000B508 MOV R7, #0x100000 .text:0000B50C .text:0000B50C loc_B50C ; CODE XREF: new_heap+34j .text:0000B50C ; new_heap+40j .text:0000B50C ADD R3, R7, R2 .text:0000B510 BIC R7, R3, R2 .text:0000B514 MOV R4, #0x4000 .text:0000B518 MOV R3, 0xFFFFFFFF .text:0000B51C STR R3, [SP,#0x24+var_24] .text:0000B520 ADD R4, R4, #0x22 .text:0000B524 MOV R6, #0 .text:0000B528 STR R6, [SP,#0x24+var_20] .text:0000B52C MOV R0, R6 .text:0000B530 MOV R1, #0x200000 .text:0000B534 MOV R2, R6 .text:0000B538 MOV R3, R4 .text:0000B53C BL mmap .text:0000B540 MOV R2, R0 .text:0000B544 CMN R2, #1 .text:0000B548 BEQ loc_B578 .text:0000B54C SUB R3, R2, #0xFC000001 .text:0000B550 SUB R3, R3, #0x3F00000 .text:0000B554 MOV R5, R3,LSR#20 .text:0000B558 MOV R5, R5,LSL#20 .text:0000B55C RSB R4, R2, R5 .text:0000B560 MOV R1, R4 .text:0000B564 BL munmap .text:0000B568 ADD R0, R5, #0x100000 .text:0000B56C RSB R1, R4, #0x100000 .text:0000B570 BL munmap .text:0000B574 B loc_B5AC .text:0000B578 ; --------------------------------------------------------------------------- .text:0000B578 .text:0000B578 loc_B578 ; CODE XREF: new_heap+8Cj .text:0000B578 STMEA SP, {R2,R6} .text:0000B57C MOV R0, R6 .text:0000B580 MOV R1, #0x100000 .text:0000B584 MOV R2, R6 .text:0000B588 MOV R3, R4 .text:0000B58C BL mmap .text:0000B590 MOV R5, R0 .text:0000B594 CMN R5, #1 .text:0000B598 BEQ loc_B5E4 .text:0000B59C BIC R3, R5, #0xFF000000 .text:0000B5A0 BIC R3, R3, #0xF00000 .text:0000B5A4 CMP R3, #0 .text:0000B5A8 BNE loc_B5D8 .text:0000B5AC .text:0000B5AC loc_B5AC ; CODE XREF: new_heap+B8j .text:0000B5AC MOV R0, R5 .text:0000B5B0 MOV R1, R7 .text:0000B5B4 MOV R2, #3 .text:0000B5B8 BL mprotect .text:0000B5BC CMP R0, #0 .text:0000B5C0 BNE loc_B5D8 .text:0000B5C4 MOV R0, R5 .text:0000B5C8 STR R7, [R5,#8] .text:0000B5CC B locret_B5E8 .text:0000B5CC ; --------------------------------------------------------------------------- .text:0000B5D0 off_B5D0 DCD top_pad ; DATA XREF: new_heap+Cr .text:0000B5D4 off_B5D4 DCD __libc_pagesize ; DATA XREF: new_heap+1Cr .text:0000B5D8 ; --------------------------------------------------------------------------- .text:0000B5D8 .text:0000B5D8 loc_B5D8 ; CODE XREF: new_heap+ECj .text:0000B5D8 ; new_heap+104j .text:0000B5D8 MOV R0, R5 .text:0000B5DC MOV R1, #0x100000 .text:0000B5E0 BL munmap .text:0000B5E4 .text:0000B5E4 loc_B5E4 ; CODE XREF: new_heap+48j .text:0000B5E4 ; new_heap+DCj .text:0000B5E4 MOV R0, #0 .text:0000B5E8 .text:0000B5E8 locret_B5E8 ; CODE XREF: new_heap+110j .text:0000B5E8 LDMDB R11, {R4-R7,R11,SP,PC} .text:0000B5E8 ; End of function new_heap .text:0000B5E8 .text:0000B5EC .text:0000B5EC ; =============== S U B R O U T I N E ======================================= .text:0000B5EC .text:0000B5EC ; Attributes: bp-based frame .text:0000B5EC .text:0000B5EC grow_heap ; CODE XREF: chunk_alloc+5C8p .text:0000B5EC ; heap_trim+134p .text:0000B5EC .text:0000B5EC var_1C = -0x1C .text:0000B5EC var_18 = -0x18 .text:0000B5EC .text:0000B5EC MOV R12, SP .text:0000B5F0 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0000B5F4 SUB R11, R12, #4 .text:0000B5F8 CMP R1, #0 .text:0000B5FC LDR R3, =__libc_pagesize .text:0000B600 SUB SP, SP, #8 .text:0000B604 LDR R2, [R3] .text:0000B608 MOV R5, R0 .text:0000B60C SUB R2, R2, #1 .text:0000B610 BLT loc_B648 .text:0000B614 ADD R3, R1, R2 .text:0000B618 LDR R0, [R5,#8] .text:0000B61C BIC R1, R3, R2 .text:0000B620 ADD R4, R0, R1 .text:0000B624 CMP R4, #0x100000 .text:0000B628 BGT loc_B658 .text:0000B62C ADD R0, R5, R0 .text:0000B630 MOV R2, #3 .text:0000B634 BL mprotect .text:0000B638 CMP R0, #0 .text:0000B63C BEQ loc_B690 .text:0000B640 MOV R0, 0xFFFFFFFE .text:0000B644 B locret_B698 .text:0000B648 ; --------------------------------------------------------------------------- .text:0000B648 .text:0000B648 loc_B648 ; CODE XREF: grow_heap+24j .text:0000B648 LDR R3, [R5,#8] .text:0000B64C ADD R4, R3, R1 .text:0000B650 CMP R4, #0xF .text:0000B654 BGT loc_B664 .text:0000B658 .text:0000B658 loc_B658 ; CODE XREF: grow_heap+3Cj .text:0000B658 MOV R0, 0xFFFFFFFF .text:0000B65C B locret_B698 .text:0000B65C ; --------------------------------------------------------------------------- .text:0000B660 off_B660 DCD __libc_pagesize ; DATA XREF: grow_heap+10r .text:0000B664 ; --------------------------------------------------------------------------- .text:0000B664 .text:0000B664 loc_B664 ; CODE XREF: grow_heap+68j .text:0000B664 MOV R3, 0xFFFFFFFF .text:0000B668 STR R3, [SP,#0x1C+var_1C] .text:0000B66C MOV R2, #0 .text:0000B670 STR R2, [SP,#0x1C+var_18] .text:0000B674 ADD R0, R5, R4 .text:0000B678 RSB R1, R1, #0 .text:0000B67C ADD R3, R3, #0x33 .text:0000B680 BL mmap .text:0000B684 CMN R0, #1 .text:0000B688 MOV R0, 0xFFFFFFFE .text:0000B68C BEQ locret_B698 .text:0000B690 .text:0000B690 loc_B690 ; CODE XREF: grow_heap+50j .text:0000B690 MOV R0, #0 .text:0000B694 STR R4, [R5,#8] .text:0000B698 .text:0000B698 locret_B698 ; CODE XREF: grow_heap+58j .text:0000B698 ; grow_heap+70j ... .text:0000B698 LDMDB R11, {R4,R5,R11,SP,PC} .text:0000B698 ; End of function grow_heap .text:0000B698 .text:0000B69C .text:0000B69C ; =============== S U B R O U T I N E ======================================= .text:0000B69C .text:0000B69C ; Attributes: bp-based frame .text:0000B69C .text:0000B69C arena_get2 ; CODE XREF: malloc+E0p .text:0000B69C ; malloc+1A8p ... .text:0000B69C MOV R12, SP .text:0000B6A0 STMFD SP!, {R4-R12,LR,PC} .text:0000B6A4 SUB R11, R12, #4 .text:0000B6A8 SUBS R6, R0, #0 .text:0000B6AC MOV R8, R1 .text:0000B6B0 LDREQ R4, =main_arena .text:0000B6B4 MOVEQ R6, R4 .text:0000B6B8 BEQ loc_B6F8 .text:0000B6BC LDR R4, [R6,#0x408] .text:0000B6C0 CMP R4, #0 .text:0000B6C4 BNE loc_B6F8 .text:0000B6C8 LDR R3, =0 .text:0000B6CC CMP R3, #0 .text:0000B6D0 BEQ loc_B6E4 .text:0000B6D4 LDR R0, =(main_arena+0x410) .text:0000B6D8 MOV LR, PC .text:0000B6DC MOV PC, R3 .text:0000B6E0 B loc_B6F0 .text:0000B6E4 ; --------------------------------------------------------------------------- .text:0000B6E4 .text:0000B6E4 loc_B6E4 ; CODE XREF: arena_get2+34j .text:0000B6E4 LDR R2, =(main_arena+0x410) .text:0000B6E8 MOV R3, #1 .text:0000B6EC STR R3, [R2] .text:0000B6F0 .text:0000B6F0 loc_B6F0 ; CODE XREF: arena_get2+44j .text:0000B6F0 LDR R0, =main_arena .text:0000B6F4 LDMDB R11, {R4-R11,SP,PC} .text:0000B6F8 ; --------------------------------------------------------------------------- .text:0000B6F8 .text:0000B6F8 loc_B6F8 ; CODE XREF: arena_get2+1Cj .text:0000B6F8 ; arena_get2+28j ... .text:0000B6F8 LDR R7, =0 .text:0000B6FC MOV R5, R7 .text:0000B700 .text:0000B700 loc_B700 ; CODE XREF: arena_get2+D4j .text:0000B700 CMP R5, #0 .text:0000B704 BEQ loc_B720 .text:0000B708 ADD R0, R4, #0x410 .text:0000B70C MOV LR, PC .text:0000B710 MOV PC, R5 .text:0000B714 CMP R0, #0 .text:0000B718 BNE loc_B768 .text:0000B71C B loc_B734 .text:0000B720 ; --------------------------------------------------------------------------- .text:0000B720 .text:0000B720 loc_B720 ; CODE XREF: arena_get2+68j .text:0000B720 LDR R3, [R4,#0x410] .text:0000B724 CMP R3, #0 .text:0000B728 BNE loc_B768 .text:0000B72C MOV R3, #1 .text:0000B730 STR R3, [R4,#0x410] .text:0000B734 .text:0000B734 loc_B734 ; CODE XREF: arena_get2+80j .text:0000B734 LDR R3, =__libc_internal_tsd_set .text:0000B738 LDR R3, [R3] .text:0000B73C CMP R3, #0 .text:0000B740 BEQ loc_B758 .text:0000B744 MOV R0, #0 .text:0000B748 MOV R1, R4 .text:0000B74C MOV LR, PC .text:0000B750 MOV PC, R3 .text:0000B754 B loc_B760 .text:0000B758 ; --------------------------------------------------------------------------- .text:0000B758 .text:0000B758 loc_B758 ; CODE XREF: arena_get2+A4j .text:0000B758 LDR R3, =__libc_tsd_MALLOC_data .text:0000B75C STR R4, [R3] .text:0000B760 .text:0000B760 loc_B760 ; CODE XREF: arena_get2+B8j .text:0000B760 MOV R0, R4 .text:0000B764 LDMDB R11, {R4-R11,SP,PC} .text:0000B768 ; --------------------------------------------------------------------------- .text:0000B768 .text:0000B768 loc_B768 ; CODE XREF: arena_get2+7Cj .text:0000B768 ; arena_get2+8Cj .text:0000B768 LDR R4, [R4,#0x408] .text:0000B76C CMP R4, R6 .text:0000B770 BNE loc_B700 .text:0000B774 CMP R7, #0 .text:0000B778 BEQ loc_B79C .text:0000B77C LDR R4, =list_lock .text:0000B780 MOV R0, R4 .text:0000B784 MOV LR, PC .text:0000B788 MOV PC, R7 .text:0000B78C CMP R0, #0 .text:0000B790 MOV R10, R4 .text:0000B794 BNE loc_B7B8 .text:0000B798 B loc_B7C0 .text:0000B79C ; --------------------------------------------------------------------------- .text:0000B79C .text:0000B79C loc_B79C ; CODE XREF: arena_get2+DCj .text:0000B79C LDR R3, =list_lock .text:0000B7A0 LDR R2, [R3] .text:0000B7A4 MOV R10, R3 .text:0000B7A8 CMP R2, #0 .text:0000B7AC MOVEQ R3, #1 .text:0000B7B0 STREQ R3, [R10] .text:0000B7B4 BEQ loc_B7C0 .text:0000B7B8 .text:0000B7B8 loc_B7B8 ; CODE XREF: arena_get2+F8j .text:0000B7B8 MOV R4, R6 .text:0000B7BC B loc_B6F8 .text:0000B7C0 ; --------------------------------------------------------------------------- .text:0000B7C0 .text:0000B7C0 loc_B7C0 ; CODE XREF: arena_get2+FCj .text:0000B7C0 ; arena_get2+118j .text:0000B7C0 LDR R3, =0 .text:0000B7C4 CMP R3, #0 .text:0000B7C8 MOV R9, R3 .text:0000B7CC BEQ loc_B7E0 .text:0000B7D0 MOV R0, R10 .text:0000B7D4 MOV LR, PC .text:0000B7D8 MOV PC, R9 .text:0000B7DC B loc_B7E4 .text:0000B7E0 ; --------------------------------------------------------------------------- .text:0000B7E0 .text:0000B7E0 loc_B7E0 ; CODE XREF: arena_get2+130j .text:0000B7E0 STR R9, [R10] .text:0000B7E4 .text:0000B7E4 loc_B7E4 ; CODE XREF: arena_get2+140j .text:0000B7E4 ADD R0, R8, #0x440 .text:0000B7E8 BL new_heap .text:0000B7EC SUBS R5, R0, #0 .text:0000B7F0 BNE loc_B808 .text:0000B7F4 MOV R0, #0x440 .text:0000B7F8 BL new_heap .text:0000B7FC SUBS R5, R0, #0 .text:0000B800 MOVEQ R0, R5 .text:0000B804 LDMEQDB R11, {R4-R11,SP,PC} .text:0000B808 .text:0000B808 loc_B808 ; CODE XREF: arena_get2+154j .text:0000B808 ADD R4, R5, #0x10 .text:0000B80C STR R4, [R5] .text:0000B810 LDR R8, =0 .text:0000B814 MOV R3, R4 .text:0000B818 LDR R12, =arena_mem .text:0000B81C MOV R6, #0x7F .text:0000B820 LDR R7, =0 .text:0000B824 .text:0000B824 loc_B824 ; CODE XREF: arena_get2+198j .text:0000B824 STR R3, [R3,#0xC] .text:0000B828 STR R3, [R3,#8] .text:0000B82C ADD R3, R3, #8 .text:0000B830 SUBS R6, R6, #1 .text:0000B834 BPL loc_B824 .text:0000B838 MOV R0, #0 .text:0000B83C STR R0, [R4,#0x408] .text:0000B840 LDR R3, [R5,#8] .text:0000B844 STR R3, [R4,#0x40C] .text:0000B848 LDR R3, =__libc_internal_tsd_set .text:0000B84C LDR R2, [R12] .text:0000B850 LDR R3, [R3] .text:0000B854 LDR R1, [R5,#8] .text:0000B858 CMP R3, R0 .text:0000B85C ADD R2, R2, R1 .text:0000B860 STR R2, [R12] .text:0000B864 BEQ loc_B878 .text:0000B868 MOV R1, R4 .text:0000B86C MOV LR, PC .text:0000B870 MOV PC, R3 .text:0000B874 B loc_B880 .text:0000B878 ; --------------------------------------------------------------------------- .text:0000B878 .text:0000B878 loc_B878 ; CODE XREF: arena_get2+1C8j .text:0000B878 LDR R3, =__libc_tsd_MALLOC_data .text:0000B87C STR R4, [R3] .text:0000B880 .text:0000B880 loc_B880 ; CODE XREF: arena_get2+1D8j .text:0000B880 CMP R7, #0 .text:0000B884 BEQ loc_B89C .text:0000B888 ADD R0, R4, #0x410 .text:0000B88C MOV R1, #0 .text:0000B890 MOV LR, PC .text:0000B894 MOV PC, R7 .text:0000B898 B loc_B8A0 .text:0000B89C ; --------------------------------------------------------------------------- .text:0000B89C .text:0000B89C loc_B89C ; CODE XREF: arena_get2+1E8j .text:0000B89C STR R7, [R4,#0x410] .text:0000B8A0 .text:0000B8A0 loc_B8A0 ; CODE XREF: arena_get2+1FCj .text:0000B8A0 CMP R8, #0 .text:0000B8A4 BEQ loc_B8BC .text:0000B8A8 ADD R0, R4, #0x410 .text:0000B8AC MOV LR, PC .text:0000B8B0 MOV PC, R8 .text:0000B8B4 MOV R6, R0 .text:0000B8B8 B loc_B8C8 .text:0000B8BC ; --------------------------------------------------------------------------- .text:0000B8BC .text:0000B8BC loc_B8BC ; CODE XREF: arena_get2+208j .text:0000B8BC MOV R6, R8 .text:0000B8C0 MOV R3, #1 .text:0000B8C4 STR R3, [R4,#0x410] .text:0000B8C8 .text:0000B8C8 loc_B8C8 ; CODE XREF: arena_get2+21Cj .text:0000B8C8 ADD R2, R4, #0x420 .text:0000B8CC ADD R2, R2, #8 .text:0000B8D0 ADD R3, R4, #0x430 .text:0000B8D4 ANDS R1, R3, #7 .text:0000B8D8 SUBNE R2, R3, R1 .text:0000B8DC STR R2, [R4,#8] .text:0000B8E0 LDR R3, [R5,#8] .text:0000B8E4 CMP R8, #0 .text:0000B8E8 ADD R3, R5, R3 .text:0000B8EC RSB R3, R2, R3 .text:0000B8F0 ORR R3, R3, #1 .text:0000B8F4 STR R3, [R2,#4] .text:0000B8F8 BEQ loc_B90C .text:0000B8FC MOV R0, R10 .text:0000B900 MOV LR, PC .text:0000B904 MOV PC, R8 .text:0000B908 B loc_B914 .text:0000B90C ; --------------------------------------------------------------------------- .text:0000B90C .text:0000B90C loc_B90C ; CODE XREF: arena_get2+25Cj .text:0000B90C MOV R3, #1 .text:0000B910 STR R3, [R10] .text:0000B914 .text:0000B914 loc_B914 ; CODE XREF: arena_get2+26Cj .text:0000B914 LDR R2, =main_arena .text:0000B918 LDR R3, [R2,#(main_arena+0x408 - 0x6B1E4)] .text:0000B91C STR R3, [R4,#0x408] .text:0000B920 CMP R9, #0 .text:0000B924 STR R4, [R2,#(main_arena+0x408 - 0x6B1E4)] .text:0000B928 BEQ loc_B93C .text:0000B92C MOV R0, R10 .text:0000B930 MOV LR, PC .text:0000B934 MOV PC, R9 .text:0000B938 B loc_B940 .text:0000B93C ; --------------------------------------------------------------------------- .text:0000B93C .text:0000B93C loc_B93C ; CODE XREF: arena_get2+28Cj .text:0000B93C STR R9, [R10] .text:0000B940 .text:0000B940 loc_B940 ; CODE XREF: arena_get2+29Cj .text:0000B940 CMP R6, #0 .text:0000B944 MOVEQ R0, R4 .text:0000B948 MOVNE R0, #0 .text:0000B94C LDMDB R11, {R4-R11,SP,PC} .text:0000B94C ; End of function arena_get2 .text:0000B94C .text:0000B94C ; --------------------------------------------------------------------------- .text:0000B950 off_B950 DCD main_arena ; DATA XREF: arena_get2+14r .text:0000B950 ; arena_get2:loc_B6F0r ... .text:0000B954 off_B954 DCD 0 ; DATA XREF: arena_get2+2Cr .text:0000B954 ; arena_get2+174r .text:0000B958 off_B958 DCD main_arena+0x410 ; DATA XREF: arena_get2+38r .text:0000B958 ; arena_get2:loc_B6E4r .text:0000B95C off_B95C DCD 0 ; DATA XREF: arena_get2:loc_B6F8r .text:0000B960 off_B960 DCD __libc_internal_tsd_set ; DATA XREF: arena_get2:loc_B734r .text:0000B960 ; arena_get2+1ACr .text:0000B964 off_B964 DCD __libc_tsd_MALLOC_data ; DATA XREF: arena_get2:loc_B758r .text:0000B964 ; arena_get2:loc_B878r .text:0000B968 off_B968 DCD list_lock ; DATA XREF: arena_get2+E0r .text:0000B968 ; arena_get2:loc_B79Cr .text:0000B96C off_B96C DCD 0 ; DATA XREF: arena_get2:loc_B7C0r .text:0000B970 off_B970 DCD arena_mem ; DATA XREF: arena_get2+17Cr .text:0000B974 dword_B974 DCD 0 ; DATA XREF: arena_get2+184r .text:0000B978 .text:0000B978 ; =============== S U B R O U T I N E ======================================= .text:0000B978 .text:0000B978 ; Attributes: bp-based frame .text:0000B978 .text:0000B978 WEAK malloc .text:0000B978 malloc ; CODE XREF: __new_exitfn+A8p .text:0000B978 ; save_for_backup+44p ... .text:0000B978 .text:0000B978 var_4 = -4 .text:0000B978 .text:0000B978 MOV R12, SP ; Alternative name is '__malloc' .text:0000B97C STMFD SP!, {R4-R8,R10-R12,LR,PC} .text:0000B980 LDR R3, =__malloc_hook .text:0000B984 LDR R3, [R3] .text:0000B988 SUB R11, R12, #4 .text:0000B98C CMP R3, #0 .text:0000B990 BEQ loc_B9A4 .text:0000B994 LDR R1, [R11,#var_4] .text:0000B998 MOV LR, PC .text:0000B99C MOV PC, R3 .text:0000B9A0 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0000B9A4 ; --------------------------------------------------------------------------- .text:0000B9A4 .text:0000B9A4 loc_B9A4 ; CODE XREF: malloc+18j .text:0000B9A4 ADD R6, R0, #0xB .text:0000B9A8 CMP R6, R0 .text:0000B9AC MOVCS R3, #0 .text:0000B9B0 MOVCC R3, #1 .text:0000B9B4 CMP R6, #0 .text:0000B9B8 MOVLE R3, #1 .text:0000B9BC CMP R3, #0 .text:0000B9C0 BEQ loc_B9D4 .text:0000B9C4 BL __errno_location .text:0000B9C8 MOV R3, #0xC .text:0000B9CC STR R3, [R0] .text:0000B9D0 B loc_BB88 .text:0000B9D4 ; --------------------------------------------------------------------------- .text:0000B9D4 .text:0000B9D4 loc_B9D4 ; CODE XREF: malloc+48j .text:0000B9D4 CMP R6, #0x16 .text:0000B9D8 BIC R6, R6, #7 .text:0000B9DC MOVLS R6, #0x10 .text:0000B9E0 LDR R3, =__libc_internal_tsd_get .text:0000B9E4 LDR R3, [R3] .text:0000B9E8 MOV R5, #0 .text:0000B9EC CMP R3, R5 .text:0000B9F0 BEQ loc_BA08 .text:0000B9F4 MOV R0, R5 .text:0000B9F8 MOV LR, PC .text:0000B9FC MOV PC, R3 .text:0000BA00 MOV R5, R0 .text:0000BA04 B loc_BA10 .text:0000BA08 ; --------------------------------------------------------------------------- .text:0000BA08 .text:0000BA08 loc_BA08 ; CODE XREF: malloc+78j .text:0000BA08 LDR R3, =__libc_tsd_MALLOC_data .text:0000BA0C LDR R5, [R3] .text:0000BA10 .text:0000BA10 loc_BA10 ; CODE XREF: malloc+8Cj .text:0000BA10 SUBS R4, R5, #0 .text:0000BA14 BEQ loc_BA50 .text:0000BA18 LDR R3, =0 .text:0000BA1C CMP R3, #0 .text:0000BA20 BEQ loc_BA3C .text:0000BA24 ADD R0, R4, #0x410 .text:0000BA28 MOV LR, PC .text:0000BA2C MOV PC, R3 .text:0000BA30 CMP R0, #0 .text:0000BA34 BNE loc_BA50 .text:0000BA38 B loc_BA60 .text:0000BA3C ; --------------------------------------------------------------------------- .text:0000BA3C .text:0000BA3C loc_BA3C ; CODE XREF: malloc+A8j .text:0000BA3C LDR R3, [R4,#0x410] .text:0000BA40 CMP R3, #0 .text:0000BA44 MOVEQ R3, #1 .text:0000BA48 STREQ R3, [R4,#0x410] .text:0000BA4C BEQ loc_BA60 .text:0000BA50 .text:0000BA50 loc_BA50 ; CODE XREF: malloc+9Cj .text:0000BA50 ; malloc+BCj .text:0000BA50 MOV R0, R5 .text:0000BA54 MOV R1, R6 .text:0000BA58 BL arena_get2 .text:0000BA5C MOV R4, R0 .text:0000BA60 .text:0000BA60 loc_BA60 ; CODE XREF: malloc+C0j .text:0000BA60 ; malloc+D4j .text:0000BA60 CMP R4, #0 .text:0000BA64 MOV R0, #0 .text:0000BA68 LDMEQDB R11, {R4-R8,R10,R11,SP,PC} .text:0000BA6C MOV R0, R4 .text:0000BA70 MOV R1, R6 .text:0000BA74 BL chunk_alloc .text:0000BA78 SUBS R5, R0, #0 .text:0000BA7C BNE loc_BB90 .text:0000BA80 LDR R7, =main_arena .text:0000BA84 CMP R4, R7 .text:0000BA88 MOV R10, R7 .text:0000BA8C BEQ loc_BB0C .text:0000BA90 LDR R3, =0 .text:0000BA94 CMP R3, #0 .text:0000BA98 MOV R8, R3 .text:0000BA9C BEQ loc_BAB0 .text:0000BAA0 ADD R0, R4, #0x410 .text:0000BAA4 MOV LR, PC .text:0000BAA8 MOV PC, R8 .text:0000BAAC B loc_BAB4 .text:0000BAB0 ; --------------------------------------------------------------------------- .text:0000BAB0 .text:0000BAB0 loc_BAB0 ; CODE XREF: malloc+124j .text:0000BAB0 STR R5, [R4,#0x410] .text:0000BAB4 .text:0000BAB4 loc_BAB4 ; CODE XREF: malloc+134j .text:0000BAB4 LDR R3, =0 .text:0000BAB8 CMP R3, #0 .text:0000BABC BEQ loc_BAD0 .text:0000BAC0 LDR R0, =(main_arena+0x410) .text:0000BAC4 MOV LR, PC .text:0000BAC8 MOV PC, R3 .text:0000BACC B loc_BADC .text:0000BAD0 ; --------------------------------------------------------------------------- .text:0000BAD0 .text:0000BAD0 loc_BAD0 ; CODE XREF: malloc+144j .text:0000BAD0 LDR R2, =(main_arena+0x410) .text:0000BAD4 MOV R3, #1 .text:0000BAD8 STR R3, [R2] .text:0000BADC .text:0000BADC loc_BADC ; CODE XREF: malloc+154j .text:0000BADC MOV R0, R10 .text:0000BAE0 MOV R1, R6 .text:0000BAE4 BL chunk_alloc .text:0000BAE8 MOV R5, R0 .text:0000BAEC CMP R8, #0 .text:0000BAF0 BEQ loc_BB04 .text:0000BAF4 ADD R0, R10, #0x410 .text:0000BAF8 MOV LR, PC .text:0000BAFC MOV PC, R8 .text:0000BB00 B loc_BB80 .text:0000BB04 ; --------------------------------------------------------------------------- .text:0000BB04 .text:0000BB04 loc_BB04 ; CODE XREF: malloc+178j .text:0000BB04 STR R8, [R10,#0x410] .text:0000BB08 B loc_BB80 .text:0000BB0C ; --------------------------------------------------------------------------- .text:0000BB0C .text:0000BB0C loc_BB0C ; CODE XREF: malloc+114j .text:0000BB0C LDR R0, [R4,#0x408] .text:0000BB10 MOV R1, R6 .text:0000BB14 CMP R0, #0 .text:0000BB18 MOVNE R0, R4 .text:0000BB1C MOVEQ R0, #0 .text:0000BB20 BL arena_get2 .text:0000BB24 LDR R3, =0 .text:0000BB28 MOV R4, R0 .text:0000BB2C CMP R3, #0 .text:0000BB30 MOV R8, R3 .text:0000BB34 BEQ loc_BB48 .text:0000BB38 ADD R0, R7, #0x410 .text:0000BB3C MOV LR, PC .text:0000BB40 MOV PC, R8 .text:0000BB44 B loc_BB4C .text:0000BB48 ; --------------------------------------------------------------------------- .text:0000BB48 .text:0000BB48 loc_BB48 ; CODE XREF: malloc+1BCj .text:0000BB48 STR R5, [R7,#(main_arena+0x410 - 0x6B1E4)] .text:0000BB4C .text:0000BB4C loc_BB4C ; CODE XREF: malloc+1CCj .text:0000BB4C CMP R4, #0 .text:0000BB50 BEQ loc_BB80 .text:0000BB54 MOV R0, R4 .text:0000BB58 MOV R1, R6 .text:0000BB5C BL chunk_alloc .text:0000BB60 MOV R5, R0 .text:0000BB64 CMP R8, #0 .text:0000BB68 BEQ loc_BB7C .text:0000BB6C ADD R0, R4, #0x410 .text:0000BB70 MOV LR, PC .text:0000BB74 MOV PC, R8 .text:0000BB78 B loc_BB80 .text:0000BB7C ; --------------------------------------------------------------------------- .text:0000BB7C .text:0000BB7C loc_BB7C ; CODE XREF: malloc+1F0j .text:0000BB7C STR R8, [R4,#0x410] .text:0000BB80 .text:0000BB80 loc_BB80 ; CODE XREF: malloc+188j .text:0000BB80 ; malloc+190j ... .text:0000BB80 CMP R5, #0 .text:0000BB84 BNE loc_BBB0 .text:0000BB88 .text:0000BB88 loc_BB88 ; CODE XREF: malloc+58j .text:0000BB88 MOV R0, #0 .text:0000BB8C LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0000BB90 ; --------------------------------------------------------------------------- .text:0000BB90 .text:0000BB90 loc_BB90 ; CODE XREF: malloc+104j .text:0000BB90 LDR R3, =0 .text:0000BB94 CMP R3, #0 .text:0000BB98 BEQ loc_BBAC .text:0000BB9C ADD R0, R4, #0x410 .text:0000BBA0 MOV LR, PC .text:0000BBA4 MOV PC, R3 .text:0000BBA8 B loc_BBB0 .text:0000BBAC ; --------------------------------------------------------------------------- .text:0000BBAC .text:0000BBAC loc_BBAC ; CODE XREF: malloc+220j .text:0000BBAC STR R3, [R4,#0x410] .text:0000BBB0 .text:0000BBB0 loc_BBB0 ; CODE XREF: malloc+20Cj .text:0000BBB0 ; malloc+230j .text:0000BBB0 ADD R0, R5, #8 .text:0000BBB4 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0000BBB4 ; End of function malloc .text:0000BBB4 .text:0000BBB4 ; --------------------------------------------------------------------------- .text:0000BBB8 off_BBB8 DCD __malloc_hook ; DATA XREF: malloc+8r .text:0000BBBC off_BBBC DCD __libc_internal_tsd_get ; DATA XREF: malloc+68r .text:0000BBC0 off_BBC0 DCD __libc_tsd_MALLOC_data ; DATA XREF: malloc:loc_BA08r .text:0000BBC4 off_BBC4 DCD 0 ; DATA XREF: malloc+A0r .text:0000BBC8 off_BBC8 DCD main_arena ; DATA XREF: malloc+108r .text:0000BBCC off_BBCC DCD 0 ; DATA XREF: malloc+118r .text:0000BBCC ; malloc+1ACr ... .text:0000BBD0 off_BBD0 DCD 0 ; DATA XREF: malloc:loc_BAB4r .text:0000BBD4 off_BBD4 DCD main_arena+0x410 ; DATA XREF: malloc+148r .text:0000BBD4 ; malloc:loc_BAD0r .text:0000BBD8 .text:0000BBD8 ; =============== S U B R O U T I N E ======================================= .text:0000BBD8 .text:0000BBD8 ; Attributes: bp-based frame .text:0000BBD8 .text:0000BBD8 chunk_alloc ; CODE XREF: malloc+FCp .text:0000BBD8 ; malloc+16Cp ... .text:0000BBD8 .text:0000BBD8 var_38 = -0x38 .text:0000BBD8 var_34 = -0x34 .text:0000BBD8 var_30 = -0x30 .text:0000BBD8 var_2C = -0x2C .text:0000BBD8 .text:0000BBD8 MOV R12, SP .text:0000BBDC STMFD SP!, {R4-R12,LR,PC} .text:0000BBE0 SUB R11, R12, #4 .text:0000BBE4 MOV R10, R1 .text:0000BBE8 CMP R10, #0x1F8 .text:0000BBEC MOV R8, R0 .text:0000BBF0 SUB SP, SP, #0x10 .text:0000BBF4 BCS loc_BC48 .text:0000BBF8 MOV R6, R10,LSR#3 .text:0000BBFC MOV R3, R6,LSL#3 .text:0000BC00 ADD R3, R3, #8 .text:0000BC04 ADD R3, R8, R3 .text:0000BC08 SUB R1, R3, #8 .text:0000BC0C LDR R0, [R1,#0xC] .text:0000BC10 CMP R0, R1 .text:0000BC14 MOVEQ R1, R3 .text:0000BC18 LDREQ R0, [R1,#0xC] .text:0000BC1C CMP R0, R1 .text:0000BC20 BEQ loc_BC40 .text:0000BC24 LDR R4, [R0,#0xC] .text:0000BC28 LDMIB R0, {R3,LR} .text:0000BC2C STR R4, [LR,#0xC] .text:0000BC30 STR LR, [R4,#8] .text:0000BC34 MOV R1, #4 .text:0000BC38 BIC R5, R3, #3 .text:0000BC3C B loc_C3E0 .text:0000BC40 ; --------------------------------------------------------------------------- .text:0000BC40 .text:0000BC40 loc_BC40 ; CODE XREF: chunk_alloc+48j .text:0000BC40 ADD R6, R6, #2 .text:0000BC44 B loc_BCE4 .text:0000BC48 ; --------------------------------------------------------------------------- .text:0000BC48 .text:0000BC48 loc_BC48 ; CODE XREF: chunk_alloc+1Cj .text:0000BC48 MOVS R2, R10,LSR#9 .text:0000BC4C MOVEQ R6, R10,LSR#3 .text:0000BC50 BEQ loc_BCA8 .text:0000BC54 CMP R2, #4 .text:0000BC58 MOVLS R3, R10,LSR#6 .text:0000BC5C ADDLS R6, R3, #0x38 .text:0000BC60 BLS loc_BCA8 .text:0000BC64 CMP R2, #0x14 .text:0000BC68 ADDLS R6, R2, #0x5B .text:0000BC6C BLS loc_BCA8 .text:0000BC70 CMP R2, #0x54 .text:0000BC74 MOVLS R3, R10,LSR#12 .text:0000BC78 ADDLS R6, R3, #0x6E .text:0000BC7C BLS loc_BCA8 .text:0000BC80 CMP R2, #0x154 .text:0000BC84 MOVLS R3, R10,LSR#15 .text:0000BC88 ADDLS R6, R3, #0x77 .text:0000BC8C BLS loc_BCA8 .text:0000BC90 MOV R3, 0x554 .text:0000BC98 CMP R2, R3 .text:0000BC9C MOVLS R3, R10,LSR#18 .text:0000BCA0 ADDLS R6, R3, #0x7C .text:0000BCA4 MOVHI R6, #0x7E .text:0000BCA8 .text:0000BCA8 loc_BCA8 ; CODE XREF: chunk_alloc+78j .text:0000BCA8 ; chunk_alloc+88j ... .text:0000BCA8 ADD LR, R8, R6,LSL#3 .text:0000BCAC LDR R0, [LR,#0xC] .text:0000BCB0 B loc_BCC0 .text:0000BCB4 ; --------------------------------------------------------------------------- .text:0000BCB4 .text:0000BCB4 loc_BCB4 ; CODE XREF: chunk_alloc+100j .text:0000BCB4 CMP R12, #0 .text:0000BCB8 BGE loc_C3CC .text:0000BCBC LDR R0, [R0,#0xC] .text:0000BCC0 .text:0000BCC0 loc_BCC0 ; CODE XREF: chunk_alloc+D8j .text:0000BCC0 CMP R0, LR .text:0000BCC4 BEQ loc_BCE0 .text:0000BCC8 LDR R3, [R0,#4] .text:0000BCCC BIC R5, R3, #3 .text:0000BCD0 RSB R12, R10, R5 .text:0000BCD4 CMP R12, #0xF .text:0000BCD8 BLE loc_BCB4 .text:0000BCDC SUB R6, R6, #1 .text:0000BCE0 .text:0000BCE0 loc_BCE0 ; CODE XREF: chunk_alloc+ECj .text:0000BCE0 ADD R6, R6, #1 .text:0000BCE4 .text:0000BCE4 loc_BCE4 ; CODE XREF: chunk_alloc+6Cj .text:0000BCE4 ADD R3, R8, #8 .text:0000BCE8 LDR R0, [R8,#0x10] .text:0000BCEC MOV R7, R3 .text:0000BCF0 CMP R0, R3 .text:0000BCF4 BEQ loc_BE08 .text:0000BCF8 LDR R3, [R0,#4] .text:0000BCFC BIC R5, R3, #3 .text:0000BD00 RSB R12, R10, R5 .text:0000BD04 CMP R12, #0xF .text:0000BD08 ORRGT R3, R10, #1 .text:0000BD0C STRGT R3, [R0,#4] .text:0000BD10 BGT loc_C40C .text:0000BD14 STR R7, [R7,#0xC] .text:0000BD18 CMP R12, #0 .text:0000BD1C STR R7, [R8,#0x10] .text:0000BD20 BGE loc_C3DC .text:0000BD24 CMP R5, #0x200 .text:0000BD28 BCS loc_BD50 .text:0000BD2C MOV R12, R5,LSR#3 .text:0000BD30 MOV R3, R12,LSR#2 .text:0000BD34 LDR R2, [R8,#4] .text:0000BD38 MOV R1, #1 .text:0000BD3C ORR R2, R2, R1,LSL R3 .text:0000BD40 STR R2, [R8,#4] .text:0000BD44 ADD R4, R8, R12,LSL#3 .text:0000BD48 LDR LR, [R4,#8] .text:0000BD4C B loc_BDF8 .text:0000BD50 ; --------------------------------------------------------------------------- .text:0000BD50 .text:0000BD50 loc_BD50 ; CODE XREF: chunk_alloc+150j .text:0000BD50 MOVS R2, R5,LSR#9 .text:0000BD54 MOVEQ R12, R5,LSR#3 .text:0000BD58 BEQ loc_BDB0 .text:0000BD5C CMP R2, #4 .text:0000BD60 MOVLS R3, R5,LSR#6 .text:0000BD64 ADDLS R12, R3, #0x38 .text:0000BD68 BLS loc_BDB0 .text:0000BD6C CMP R2, #0x14 .text:0000BD70 ADDLS R12, R2, #0x5B .text:0000BD74 BLS loc_BDB0 .text:0000BD78 CMP R2, #0x54 .text:0000BD7C MOVLS R3, R5,LSR#12 .text:0000BD80 ADDLS R12, R3, #0x6E .text:0000BD84 BLS loc_BDB0 .text:0000BD88 CMP R2, #0x154 .text:0000BD8C MOVLS R3, R5,LSR#15 .text:0000BD90 ADDLS R12, R3, #0x77 .text:0000BD94 BLS loc_BDB0 .text:0000BD98 MOV R3, 0x554 .text:0000BDA0 CMP R2, R3 .text:0000BDA4 MOVLS R3, R5,LSR#18 .text:0000BDA8 ADDLS R12, R3, #0x7C .text:0000BDAC MOVHI R12, #0x7E .text:0000BDB0 .text:0000BDB0 loc_BDB0 ; CODE XREF: chunk_alloc+180j .text:0000BDB0 ; chunk_alloc+190j ... .text:0000BDB0 ADD R4, R8, R12,LSL#3 .text:0000BDB4 LDR LR, [R4,#8] .text:0000BDB8 CMP LR, R4 .text:0000BDBC BNE loc_BDE4 .text:0000BDC0 MOV R3, R12,LSR#2 .text:0000BDC4 LDR R2, [R8,#4] .text:0000BDC8 MOV R1, #1 .text:0000BDCC ORR R2, R2, R1,LSL R3 .text:0000BDD0 STR R2, [R8,#4] .text:0000BDD4 B loc_BDF8 .text:0000BDD8 ; --------------------------------------------------------------------------- .text:0000BDD8 .text:0000BDD8 loc_BDD8 ; CODE XREF: chunk_alloc+218j .text:0000BDD8 LDR LR, [LR,#8] .text:0000BDDC CMP LR, R4 .text:0000BDE0 BEQ loc_BDF4 .text:0000BDE4 .text:0000BDE4 loc_BDE4 ; CODE XREF: chunk_alloc+1E4j .text:0000BDE4 LDR R3, [LR,#4] .text:0000BDE8 BIC R3, R3, #3 .text:0000BDEC CMP R5, R3 .text:0000BDF0 BCC loc_BDD8 .text:0000BDF4 .text:0000BDF4 loc_BDF4 ; CODE XREF: chunk_alloc+208j .text:0000BDF4 LDR R4, [LR,#0xC] .text:0000BDF8 .text:0000BDF8 loc_BDF8 ; CODE XREF: chunk_alloc+174j .text:0000BDF8 ; chunk_alloc+1FCj .text:0000BDF8 STR R4, [R0,#0xC] .text:0000BDFC STR LR, [R0,#8] .text:0000BE00 STR R0, [R4,#8] .text:0000BE04 STR R0, [LR,#0xC] .text:0000BE08 .text:0000BE08 loc_BE08 ; CODE XREF: chunk_alloc+11Cj .text:0000BE08 CMP R6, #0 .text:0000BE0C ADDLT R3, R6, #3 .text:0000BE10 MOVGE R3, R6 .text:0000BE14 MOV R3, R3,ASR#2 .text:0000BE18 MOV R2, #1 .text:0000BE1C LDR R1, [R8,#4] .text:0000BE20 MOV R2, R2,LSL R3 .text:0000BE24 CMP R2, R1 .text:0000BE28 BHI loc_BF00 .text:0000BE2C TST R2, R1 .text:0000BE30 BNE loc_BE50 .text:0000BE34 BIC R3, R6, #3 .text:0000BE38 ADD R6, R3, #4 .text:0000BE3C B loc_BE44 .text:0000BE40 ; --------------------------------------------------------------------------- .text:0000BE40 .text:0000BE40 loc_BE40 ; CODE XREF: chunk_alloc+274j .text:0000BE40 ADD R6, R6, #4 .text:0000BE44 .text:0000BE44 loc_BE44 ; CODE XREF: chunk_alloc+264j .text:0000BE44 MOV R2, R2,LSL#1 .text:0000BE48 TST R2, R1 .text:0000BE4C BEQ loc_BE40 .text:0000BE50 .text:0000BE50 loc_BE50 ; CODE XREF: chunk_alloc+258j .text:0000BE50 ; chunk_alloc+300j ... .text:0000BE50 MOV R4, R6 .text:0000BE54 ADD R1, R8, R6,LSL#3 .text:0000BE58 MOV LR, R1 .text:0000BE5C .text:0000BE5C loc_BE5C ; CODE XREF: chunk_alloc+2C4j .text:0000BE5C LDR R0, [LR,#0xC] .text:0000BE60 CMP R0, LR .text:0000BE64 BEQ loc_BE90 .text:0000BE68 .text:0000BE68 loc_BE68 ; CODE XREF: chunk_alloc+2B4j .text:0000BE68 LDR R3, [R0,#4] .text:0000BE6C BIC R5, R3, #3 .text:0000BE70 RSB R12, R10, R5 .text:0000BE74 CMP R12, #0xF .text:0000BE78 BGT loc_C3F4 .text:0000BE7C CMP R12, #0 .text:0000BE80 BGE loc_C430 .text:0000BE84 LDR R0, [R0,#0xC] .text:0000BE88 CMP R0, LR .text:0000BE8C BNE loc_BE68 .text:0000BE90 .text:0000BE90 loc_BE90 ; CODE XREF: chunk_alloc+28Cj .text:0000BE90 ADD LR, LR, #8 .text:0000BE94 ADD R6, R6, #1 .text:0000BE98 TST R6, #3 .text:0000BE9C BNE loc_BE5C .text:0000BEA0 .text:0000BEA0 loc_BEA0 ; CODE XREF: chunk_alloc+2E0j .text:0000BEA0 TST R4, #3 .text:0000BEA4 BEQ loc_BEF0 .text:0000BEA8 SUB R1, R1, #8 .text:0000BEAC LDR R3, [R1,#8] .text:0000BEB0 SUB R4, R4, #1 .text:0000BEB4 CMP R3, R1 .text:0000BEB8 BEQ loc_BEA0 .text:0000BEBC .text:0000BEBC loc_BEBC ; CODE XREF: chunk_alloc+324j .text:0000BEBC LDR R3, [R8,#4] .text:0000BEC0 MOV R2, R2,LSL#1 .text:0000BEC4 CMP R2, R3 .text:0000BEC8 BHI loc_BF00 .text:0000BECC CMP R2, #0 .text:0000BED0 BEQ loc_BF00 .text:0000BED4 TST R2, R3 .text:0000BED8 BNE loc_BE50 .text:0000BEDC .text:0000BEDC loc_BEDC ; CODE XREF: chunk_alloc+310j .text:0000BEDC ADD R6, R6, #4 .text:0000BEE0 MOV R2, R2,LSL#1 .text:0000BEE4 TST R2, R3 .text:0000BEE8 BEQ loc_BEDC .text:0000BEEC B loc_BE50 .text:0000BEF0 ; --------------------------------------------------------------------------- .text:0000BEF0 .text:0000BEF0 loc_BEF0 ; CODE XREF: chunk_alloc+2CCj .text:0000BEF0 LDR R3, [R8,#4] .text:0000BEF4 BIC R3, R3, R2 .text:0000BEF8 STR R3, [R8,#4] .text:0000BEFC B loc_BEBC .text:0000BF00 ; --------------------------------------------------------------------------- .text:0000BF00 .text:0000BF00 loc_BF00 ; CODE XREF: chunk_alloc+250j .text:0000BF00 ; chunk_alloc+2F0j ... .text:0000BF00 LDR R2, [R8,#8] .text:0000BF04 LDR R3, [R2,#4] .text:0000BF08 MOV R0, R2 .text:0000BF0C BIC R3, R3, #3 .text:0000BF10 RSB R12, R10, R3 .text:0000BF14 CMP R12, #0xF .text:0000BF18 BGT loc_C474 .text:0000BF1C LDR R3, =mmap_threshold .text:0000BF20 LDR R2, [R3] .text:0000BF24 CMP R10, R2 .text:0000BF28 BCC loc_BFDC .text:0000BF2C LDR R6, =n_mmaps .text:0000BF30 LDR R3, =n_mmaps_max .text:0000BF34 LDR R1, [R6] .text:0000BF38 LDR R2, [R3] .text:0000BF3C CMP R1, R2 .text:0000BF40 BCS loc_BFDC .text:0000BF44 MOV R5, #0 .text:0000BF48 LDR R1, =__libc_pagesize .text:0000BF4C MOV R0, R5 .text:0000BF50 LDR R12, [R1] .text:0000BF54 MOV R3, 0xFFFFFFFF .text:0000BF58 STR R3, [SP,#0x38+var_38] .text:0000BF5C MOV R2, #3 .text:0000BF60 ADD R3, R3, #0x23 .text:0000BF64 STR R5, [SP,#0x38+var_34] .text:0000BF68 ADD R1, R12, R2 .text:0000BF6C ADD R1, R10, R1 .text:0000BF70 RSB R12, R12, #0 .text:0000BF74 AND R4, R1, R12 .text:0000BF78 MOV R1, R4 .text:0000BF7C BL mmap .text:0000BF80 CMN R0, #1 .text:0000BF84 MOVEQ R0, R5 .text:0000BF88 BEQ loc_BFD4 .text:0000BF8C LDR R1, =max_n_mmaps .text:0000BF90 LDR R3, [R6] .text:0000BF94 LDR R2, [R1] .text:0000BF98 ADD R3, R3, #1 .text:0000BF9C STR R3, [R6] .text:0000BFA0 CMP R3, R2 .text:0000BFA4 STRHI R3, [R1] .text:0000BFA8 STR R5, [R0] .text:0000BFAC ORR R3, R4, #2 .text:0000BFB0 STR R3, [R0,#4] .text:0000BFB4 LDR R1, =mmapped_mem .text:0000BFB8 LDR R12, =max_mmapped_mem .text:0000BFBC LDR R3, [R1] .text:0000BFC0 LDR R2, [R12] .text:0000BFC4 ADD R3, R3, R4 .text:0000BFC8 CMP R3, R2 .text:0000BFCC STR R3, [R1] .text:0000BFD0 STRHI R3, [R12] .text:0000BFD4 .text:0000BFD4 loc_BFD4 ; CODE XREF: chunk_alloc+3B0j .text:0000BFD4 CMP R0, #0 .text:0000BFD8 BNE locret_C48C .text:0000BFDC .text:0000BFDC loc_BFDC ; CODE XREF: chunk_alloc+350j .text:0000BFDC ; chunk_alloc+368j .text:0000BFDC LDR R7, [R8,#8] .text:0000BFE0 LDR R3, [R7,#4] .text:0000BFE4 BIC R3, R3, #3 .text:0000BFE8 STR R3, [R11,#var_30] .text:0000BFEC LDR R2, =main_arena .text:0000BFF0 CMP R8, R2 .text:0000BFF4 LDR R2, =__libc_pagesize .text:0000BFF8 LDR R2, [R2] .text:0000BFFC STR R2, [R11,#var_2C] .text:0000C000 BNE loc_C170 .text:0000C004 LDR R3, =top_pad .text:0000C008 LDR R1, =sbrk_base .text:0000C00C LDR R2, [R3] .text:0000C010 LDR R3, [R1] .text:0000C014 ADD R2, R10, R2 .text:0000C018 CMN R3, #1 .text:0000C01C LDR R3, [R11,#var_30] .text:0000C020 ADD R9, R2, #0x10 .text:0000C024 ADD R5, R7, R3 .text:0000C028 BEQ loc_C040 .text:0000C02C LDR R1, [R11,#var_2C] .text:0000C030 ADD R3, R2, #0xF .text:0000C034 ADD R3, R3, R1 .text:0000C038 RSB R2, R1, #0 .text:0000C03C AND R9, R3, R2 .text:0000C040 .text:0000C040 loc_C040 ; CODE XREF: chunk_alloc+450j .text:0000C040 LDR R4, =__morecore .text:0000C044 MOV R0, R9 .text:0000C048 MOV LR, PC .text:0000C04C LDR PC, [R4] .text:0000C050 SUBS R6, R0, #0 .text:0000C054 BEQ loc_C2E8 .text:0000C058 CMP R6, R5 .text:0000C05C BCS loc_C068 .text:0000C060 CMP R7, R8 .text:0000C064 BNE loc_C2E8 .text:0000C068 .text:0000C068 loc_C068 ; CODE XREF: chunk_alloc+484j .text:0000C068 LDR R3, =__after_morecore_hook .text:0000C06C LDR R2, [R3] .text:0000C070 CMP R2, #0 .text:0000C074 BEQ loc_C080 .text:0000C078 MOV LR, PC .text:0000C07C MOV PC, R2 .text:0000C080 .text:0000C080 loc_C080 ; CODE XREF: chunk_alloc+49Cj .text:0000C080 LDR R3, [R8,#0x40C] .text:0000C084 CMP R6, R5 .text:0000C088 ADD R2, R3, R9 .text:0000C08C STR R2, [R8,#0x40C] .text:0000C090 BNE loc_C0AC .text:0000C094 LDR R2, [R11,#var_30] .text:0000C098 ADD R1, R9, R2 .text:0000C09C ORR R3, R1, #1 .text:0000C0A0 STR R3, [R7,#4] .text:0000C0A4 MOV R7, #0 .text:0000C0A8 B loc_C154 .text:0000C0AC ; --------------------------------------------------------------------------- .text:0000C0AC .text:0000C0AC loc_C0AC ; CODE XREF: chunk_alloc+4B8j .text:0000C0AC LDR R1, =sbrk_base .text:0000C0B0 LDR R3, [R1] .text:0000C0B4 CMN R3, #1 .text:0000C0B8 STREQ R6, [R1] .text:0000C0BC RSBNE R3, R5, R6 .text:0000C0C0 ADDNE R3, R2, R3 .text:0000C0C4 STRNE R3, [R8,#0x40C] .text:0000C0C8 ADD R3, R6, #8 .text:0000C0CC ANDS R0, R3, #7 .text:0000C0D0 RSBNE R5, R0, #8 .text:0000C0D4 ADDNE R6, R6, R5 .text:0000C0D8 MOVEQ R5, R0 .text:0000C0DC LDR R1, [R11,#var_2C] .text:0000C0E0 ADD R3, R6, R9 .text:0000C0E4 SUB R2, R1, #1 .text:0000C0E8 AND R3, R3, R2 .text:0000C0EC RSB R3, R3, R1 .text:0000C0F0 ADD R5, R5, R3 .text:0000C0F4 MOV R0, R5 .text:0000C0F8 MOV LR, PC .text:0000C0FC LDR PC, [R4] .text:0000C100 SUBS R4, R0, #0 .text:0000C104 BEQ loc_C2E8 .text:0000C108 LDR R2, =__after_morecore_hook .text:0000C10C LDR R3, [R2] .text:0000C110 CMP R3, #0 .text:0000C114 BEQ loc_C120 .text:0000C118 MOV LR, PC .text:0000C11C MOV PC, R3 .text:0000C120 .text:0000C120 loc_C120 ; CODE XREF: chunk_alloc+53Cj .text:0000C120 LDR R3, =main_arena .text:0000C124 STR R6, [R3,#(main_arena+8 - 0x6B1E4)] .text:0000C128 LDR R1, =main_arena .text:0000C12C RSB R3, R6, R4 .text:0000C130 LDR R2, [R1,#(main_arena+0x40C - 0x6B1E4)] .text:0000C134 ADD R1, R3, R5 .text:0000C138 LDR R3, =main_arena .text:0000C13C ADD R2, R2, R5 .text:0000C140 CMP R7, R3 .text:0000C144 STR R2, [R3,#(main_arena+0x40C - 0x6B1E4)] .text:0000C148 MOVEQ R7, #0 .text:0000C14C ORR R3, R1, #1 .text:0000C150 STR R3, [R6,#4] .text:0000C154 .text:0000C154 loc_C154 ; CODE XREF: chunk_alloc+4D0j .text:0000C154 LDR R3, =main_arena .text:0000C158 LDR R1, =max_sbrked_mem .text:0000C15C LDR R2, [R3,#(main_arena+0x40C - 0x6B1E4)] .text:0000C160 LDR R3, [R1] .text:0000C164 CMP R2, R3 .text:0000C168 STRHI R2, [R1] .text:0000C16C B loc_C240 .text:0000C170 ; --------------------------------------------------------------------------- .text:0000C170 .text:0000C170 loc_C170 ; CODE XREF: chunk_alloc+428j .text:0000C170 LDR R1, [R11,#var_30] .text:0000C174 CMP R1, #0xF .text:0000C178 BLS loc_C2E8 .text:0000C17C ADD R3, R10, #0x10 .text:0000C180 CMP R3, R1 .text:0000C184 BLS loc_C2E8 .text:0000C188 MOV R4, R7,LSR#20 .text:0000C18C MOV R4, R4,LSL#20 .text:0000C190 MOV R0, R4 .text:0000C194 SUB R1, R1, #0x10 .text:0000C198 RSB R1, R1, R10 .text:0000C19C LDR R5, [R4,#8] .text:0000C1A0 BL grow_heap .text:0000C1A4 CMP R0, #0 .text:0000C1A8 BNE loc_C1EC .text:0000C1AC LDR R3, [R4,#8] .text:0000C1B0 LDR R2, [R8,#0x40C] .text:0000C1B4 RSB R3, R5, R3 .text:0000C1B8 ADD R2, R2, R3 .text:0000C1BC STR R2, [R8,#0x40C] .text:0000C1C0 LDR R0, =arena_mem .text:0000C1C4 LDR R1, [R4,#8] .text:0000C1C8 LDR R3, [R0] .text:0000C1CC RSB R2, R5, R1 .text:0000C1D0 ADD R3, R3, R2 .text:0000C1D4 ADD R1, R4, R1 .text:0000C1D8 STR R3, [R0] .text:0000C1DC RSB R1, R7, R1 .text:0000C1E0 ORR R3, R1, #1 .text:0000C1E4 STR R3, [R7,#4] .text:0000C1E8 B loc_C2E8 .text:0000C1EC ; --------------------------------------------------------------------------- .text:0000C1EC .text:0000C1EC loc_C1EC ; CODE XREF: chunk_alloc+5D0j .text:0000C1EC ADD R0, R10, #0x20 .text:0000C1F0 BL new_heap .text:0000C1F4 SUBS R12, R0, #0 .text:0000C1F8 BEQ loc_C2E8 .text:0000C1FC STR R8, [R12] .text:0000C200 STR R4, [R12,#4] .text:0000C204 LDR R2, [R12,#8] .text:0000C208 LDR R3, [R8,#0x40C] .text:0000C20C ADD R3, R3, R2 .text:0000C210 STR R3, [R8,#0x40C] .text:0000C214 LDR R1, =arena_mem .text:0000C218 LDR R3, [R1] .text:0000C21C LDR R2, [R12,#8] .text:0000C220 ADD R3, R3, R2 .text:0000C224 STR R3, [R1] .text:0000C228 ADD R0, R12, #0x10 .text:0000C22C STR R0, [R8,#8] .text:0000C230 LDR R3, [R12,#8] .text:0000C234 SUB R1, R3, #0x10 .text:0000C238 ORR R2, R1, #1 .text:0000C23C STR R2, [R0,#4] .text:0000C240 .text:0000C240 loc_C240 ; CODE XREF: chunk_alloc+594j .text:0000C240 CMP R7, #0 .text:0000C244 BEQ loc_C2E8 .text:0000C248 LDR R2, [R11,#var_30] .text:0000C24C MOV R3, #1 .text:0000C250 SUB R2, R2, #0x10 .text:0000C254 STR R2, [R11,#var_30] .text:0000C258 CMP R2, #0xF .text:0000C25C ADD R0, R2, R7 .text:0000C260 STR R3, [R0,#0xC] .text:0000C264 BLS loc_C2D4 .text:0000C268 ADD R3, R3, #8 .text:0000C26C STR R3, [R0,#4] .text:0000C270 MOV R2, #8 .text:0000C274 STR R2, [R0,#8] .text:0000C278 LDR R3, [R7,#4] .text:0000C27C LDR R1, [R11,#var_30] .text:0000C280 AND R3, R3, #1 .text:0000C284 ORR R3, R3, R1 .text:0000C288 STR R3, [R7,#4] .text:0000C28C MOV R0, R8 .text:0000C290 MOV R1, R7 .text:0000C294 BL chunk_free .text:0000C298 B loc_C2E8 .text:0000C298 ; --------------------------------------------------------------------------- .text:0000C29C off_C29C DCD mmap_threshold ; DATA XREF: chunk_alloc+344r .text:0000C2A0 off_C2A0 DCD n_mmaps ; DATA XREF: chunk_alloc+354r .text:0000C2A4 off_C2A4 DCD n_mmaps_max ; DATA XREF: chunk_alloc+358r .text:0000C2A8 off_C2A8 DCD __libc_pagesize ; DATA XREF: chunk_alloc+370r .text:0000C2A8 ; chunk_alloc+41Cr .text:0000C2AC off_C2AC DCD max_n_mmaps ; DATA XREF: chunk_alloc+3B4r .text:0000C2B0 off_C2B0 DCD mmapped_mem ; DATA XREF: chunk_alloc+3DCr .text:0000C2B4 off_C2B4 DCD max_mmapped_mem ; DATA XREF: chunk_alloc+3E0r .text:0000C2B8 off_C2B8 DCD main_arena ; DATA XREF: chunk_alloc+414r .text:0000C2B8 ; chunk_alloc:loc_C120r ... .text:0000C2BC off_C2BC DCD top_pad ; DATA XREF: chunk_alloc+42Cr .text:0000C2C0 off_C2C0 DCD sbrk_base ; DATA XREF: chunk_alloc+430r .text:0000C2C0 ; chunk_alloc:loc_C0ACr .text:0000C2C4 off_C2C4 DCD __morecore ; DATA XREF: chunk_alloc:loc_C040r .text:0000C2C8 off_C2C8 DCD __after_morecore_hook ; DATA XREF: chunk_alloc:loc_C068r .text:0000C2C8 ; chunk_alloc+530r .text:0000C2CC off_C2CC DCD max_sbrked_mem ; DATA XREF: chunk_alloc+580r .text:0000C2D0 off_C2D0 DCD arena_mem ; DATA XREF: chunk_alloc+5E8r .text:0000C2D0 ; chunk_alloc+63Cr .text:0000C2D4 ; --------------------------------------------------------------------------- .text:0000C2D4 .text:0000C2D4 loc_C2D4 ; CODE XREF: chunk_alloc+68Cj .text:0000C2D4 LDR R3, [R11,#var_30] .text:0000C2D8 ADD R2, R3, #8 .text:0000C2DC ORR R3, R2, #1 .text:0000C2E0 STR R3, [R7,#4] .text:0000C2E4 STR R2, [R0,#8] .text:0000C2E8 .text:0000C2E8 loc_C2E8 ; CODE XREF: chunk_alloc+47Cj .text:0000C2E8 ; chunk_alloc+48Cj ... .text:0000C2E8 LDR R2, [R8,#8] .text:0000C2EC LDR R3, [R2,#4] .text:0000C2F0 MOV R0, R2 .text:0000C2F4 BIC R3, R3, #3 .text:0000C2F8 RSB R12, R10, R3 .text:0000C2FC CMP R12, #0xF .text:0000C300 BGT loc_C474 .text:0000C304 LDR R1, =main_arena .text:0000C308 CMP R8, R1 .text:0000C30C BEQ loc_C3C4 .text:0000C310 LDR R3, =n_mmaps_max .text:0000C314 LDR R2, [R3] .text:0000C318 CMP R2, #0 .text:0000C31C BEQ loc_C3C4 .text:0000C320 MOV R5, #0 .text:0000C324 LDR R2, =__libc_pagesize .text:0000C328 MOV R0, R5 .text:0000C32C LDR R12, [R2] .text:0000C330 MOV R3, 0xFFFFFFFF .text:0000C334 STR R3, [SP,#0x38+var_38] .text:0000C338 MOV R2, #3 .text:0000C33C ADD R3, R3, #0x23 .text:0000C340 STR R5, [SP,#0x38+var_34] .text:0000C344 ADD R1, R12, R2 .text:0000C348 ADD R1, R10, R1 .text:0000C34C RSB R12, R12, #0 .text:0000C350 AND R4, R1, R12 .text:0000C354 MOV R1, R4 .text:0000C358 BL mmap .text:0000C35C MOV R12, R0 .text:0000C360 CMN R12, #1 .text:0000C364 MOVEQ R0, R5 .text:0000C368 BEQ loc_C3BC .text:0000C36C LDR R3, =n_mmaps .text:0000C370 LDR R0, =max_n_mmaps .text:0000C374 LDR R2, [R3] .text:0000C378 LDR R1, [R0] .text:0000C37C ADD R2, R2, #1 .text:0000C380 CMP R2, R1 .text:0000C384 STR R2, [R3] .text:0000C388 STRHI R2, [R0] .text:0000C38C STR R5, [R12] .text:0000C390 ORR R3, R4, #2 .text:0000C394 STR R3, [R12,#4] .text:0000C398 LDR R1, =mmapped_mem .text:0000C39C LDR LR, =max_mmapped_mem .text:0000C3A0 LDR R3, [R1] .text:0000C3A4 LDR R2, [LR] .text:0000C3A8 ADD R0, R3, R4 .text:0000C3AC CMP R0, R2 .text:0000C3B0 STR R0, [R1] .text:0000C3B4 STRHI R0, [LR] .text:0000C3B8 MOV R0, R12 .text:0000C3BC .text:0000C3BC loc_C3BC ; CODE XREF: chunk_alloc+790j .text:0000C3BC CMP R0, #0 .text:0000C3C0 BNE locret_C48C .text:0000C3C4 .text:0000C3C4 loc_C3C4 ; CODE XREF: chunk_alloc+734j .text:0000C3C4 ; chunk_alloc+744j .text:0000C3C4 MOV R0, #0 .text:0000C3C8 B locret_C48C .text:0000C3CC ; --------------------------------------------------------------------------- .text:0000C3CC .text:0000C3CC loc_C3CC ; CODE XREF: chunk_alloc+E0j .text:0000C3CC LDR R4, [R0,#0xC] .text:0000C3D0 LDR LR, [R0,#8] .text:0000C3D4 STR R4, [LR,#0xC] .text:0000C3D8 STR LR, [R4,#8] .text:0000C3DC .text:0000C3DC loc_C3DC ; CODE XREF: chunk_alloc+148j .text:0000C3DC MOV R1, #4 .text:0000C3E0 .text:0000C3E0 loc_C3E0 ; CODE XREF: chunk_alloc+64j .text:0000C3E0 ADD R2, R0, R5 .text:0000C3E4 LDR R3, [R2,R1] .text:0000C3E8 ORR R3, R3, #1 .text:0000C3EC STR R3, [R2,R1] .text:0000C3F0 B locret_C48C .text:0000C3F4 ; --------------------------------------------------------------------------- .text:0000C3F4 .text:0000C3F4 loc_C3F4 ; CODE XREF: chunk_alloc+2A0j .text:0000C3F4 ORR R3, R10, #1 .text:0000C3F8 STR R3, [R0,#4] .text:0000C3FC LDR R4, [R0,#0xC] .text:0000C400 LDR LR, [R0,#8] .text:0000C404 STR R4, [LR,#0xC] .text:0000C408 STR LR, [R4,#8] .text:0000C40C .text:0000C40C loc_C40C ; CODE XREF: chunk_alloc+138j .text:0000C40C ADD R1, R0, R10 .text:0000C410 STR R1, [R7,#0xC] .text:0000C414 STR R1, [R8,#0x10] .text:0000C418 STR R7, [R1,#0xC] .text:0000C41C STR R7, [R1,#8] .text:0000C420 ORR R3, R12, #1 .text:0000C424 STR R3, [R1,#4] .text:0000C428 STR R12, [R1,R12] .text:0000C42C B locret_C48C .text:0000C430 ; --------------------------------------------------------------------------- .text:0000C430 .text:0000C430 loc_C430 ; CODE XREF: chunk_alloc+2A8j .text:0000C430 MOV R1, #4 .text:0000C434 ADD R2, R0, R5 .text:0000C438 LDR R3, [R2,R1] .text:0000C43C ORR R3, R3, #1 .text:0000C440 STR R3, [R2,R1] .text:0000C444 LDR R4, [R0,#0xC] .text:0000C448 LDR LR, [R0,#8] .text:0000C44C STR R4, [LR,#0xC] .text:0000C450 STR LR, [R4,#8] .text:0000C454 B locret_C48C .text:0000C454 ; --------------------------------------------------------------------------- .text:0000C458 off_C458 DCD main_arena ; DATA XREF: chunk_alloc+72Cr .text:0000C45C off_C45C DCD n_mmaps_max ; DATA XREF: chunk_alloc+738r .text:0000C460 off_C460 DCD __libc_pagesize ; DATA XREF: chunk_alloc+74Cr .text:0000C464 off_C464 DCD n_mmaps ; DATA XREF: chunk_alloc+794r .text:0000C468 off_C468 DCD max_n_mmaps ; DATA XREF: chunk_alloc+798r .text:0000C46C off_C46C DCD mmapped_mem ; DATA XREF: chunk_alloc+7C0r .text:0000C470 off_C470 DCD max_mmapped_mem ; DATA XREF: chunk_alloc+7C4r .text:0000C474 ; --------------------------------------------------------------------------- .text:0000C474 .text:0000C474 loc_C474 ; CODE XREF: chunk_alloc+340j .text:0000C474 ; chunk_alloc+728j .text:0000C474 ORR R3, R10, #1 .text:0000C478 STR R3, [R0,#4] .text:0000C47C ADD R2, R0, R10 .text:0000C480 STR R2, [R8,#8] .text:0000C484 ORR R3, R12, #1 .text:0000C488 STR R3, [R2,#4] .text:0000C48C .text:0000C48C locret_C48C ; CODE XREF: chunk_alloc+400j .text:0000C48C ; chunk_alloc+7E8j ... .text:0000C48C LDMDB R11, {R4-R11,SP,PC} .text:0000C48C ; End of function chunk_alloc .text:0000C48C .text:0000C490 .text:0000C490 ; =============== S U B R O U T I N E ======================================= .text:0000C490 .text:0000C490 ; Attributes: bp-based frame .text:0000C490 .text:0000C490 WEAK free .text:0000C490 free ; CODE XREF: exit+DCp .text:0000C490 ; _IO_free_backup_area+24p ... .text:0000C490 .text:0000C490 var_4 = -4 .text:0000C490 .text:0000C490 MOV R12, SP .text:0000C494 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0000C498 LDR R3, =__free_hook .text:0000C49C LDR R3, [R3] .text:0000C4A0 SUB R11, R12, #4 .text:0000C4A4 CMP R3, #0 .text:0000C4A8 BEQ loc_C4BC .text:0000C4AC LDR R1, [R11,#var_4] .text:0000C4B0 MOV LR, PC .text:0000C4B4 MOV PC, R3 .text:0000C4B8 LDMDB R11, {R4,R5,R11,SP,PC} .text:0000C4BC ; --------------------------------------------------------------------------- .text:0000C4BC .text:0000C4BC loc_C4BC ; CODE XREF: free+18j .text:0000C4BC CMP R0, #0 .text:0000C4C0 LDMEQDB R11, {R4,R5,R11,SP,PC} .text:0000C4C4 SUB R5, R0, #8 .text:0000C4C8 LDR R3, [R5,#4] .text:0000C4CC TST R3, #2 .text:0000C4D0 BEQ loc_C4E0 .text:0000C4D4 MOV R0, R5 .text:0000C4D8 BL munmap_chunk .text:0000C4DC LDMDB R11, {R4,R5,R11,SP,PC} .text:0000C4E0 ; --------------------------------------------------------------------------- .text:0000C4E0 .text:0000C4E0 loc_C4E0 ; CODE XREF: free+40j .text:0000C4E0 LDR R0, =main_arena .text:0000C4E4 LDR R3, [R0,#(main_arena+8 - 0x6B1E4)] .text:0000C4E8 CMP R5, R3 .text:0000C4EC BCS loc_C500 .text:0000C4F0 LDR R3, =sbrk_base .text:0000C4F4 LDR R2, [R3] .text:0000C4F8 CMP R5, R2 .text:0000C4FC BCS loc_C510 .text:0000C500 .text:0000C500 loc_C500 ; CODE XREF: free+5Cj .text:0000C500 MOV R3, R5,LSR#20 .text:0000C504 MOV R3, R3,LSL#20 .text:0000C508 LDR R4, [R3] .text:0000C50C B loc_C514 .text:0000C510 ; --------------------------------------------------------------------------- .text:0000C510 .text:0000C510 loc_C510 ; CODE XREF: free+6Cj .text:0000C510 MOV R4, R0 .text:0000C514 .text:0000C514 loc_C514 ; CODE XREF: free+7Cj .text:0000C514 LDR R3, =0 .text:0000C518 CMP R3, #0 .text:0000C51C BEQ loc_C530 .text:0000C520 ADD R0, R4, #0x410 .text:0000C524 MOV LR, PC .text:0000C528 MOV PC, R3 .text:0000C52C B loc_C538 .text:0000C530 ; --------------------------------------------------------------------------- .text:0000C530 .text:0000C530 loc_C530 ; CODE XREF: free+8Cj .text:0000C530 MOV R3, #1 .text:0000C534 STR R3, [R4,#0x410] .text:0000C538 .text:0000C538 loc_C538 ; CODE XREF: free+9Cj .text:0000C538 MOV R0, R4 .text:0000C53C MOV R1, R5 .text:0000C540 BL chunk_free .text:0000C544 LDR R3, =0 .text:0000C548 CMP R3, #0 .text:0000C54C BEQ loc_C560 .text:0000C550 ADD R0, R4, #0x410 .text:0000C554 MOV LR, PC .text:0000C558 MOV PC, R3 .text:0000C55C LDMDB R11, {R4,R5,R11,SP,PC} .text:0000C560 ; --------------------------------------------------------------------------- .text:0000C560 .text:0000C560 loc_C560 ; CODE XREF: free+BCj .text:0000C560 STR R3, [R4,#0x410] .text:0000C564 LDMDB R11, {R4,R5,R11,SP,PC} .text:0000C564 ; End of function free .text:0000C564 .text:0000C564 ; --------------------------------------------------------------------------- .text:0000C568 off_C568 DCD __free_hook ; DATA XREF: free+8r .text:0000C56C off_C56C DCD main_arena ; DATA XREF: free:loc_C4E0r .text:0000C570 off_C570 DCD sbrk_base ; DATA XREF: free+60r .text:0000C574 off_C574 DCD 0 ; DATA XREF: free:loc_C514r .text:0000C578 off_C578 DCD 0 ; DATA XREF: free+B4r .text:0000C57C .text:0000C57C ; =============== S U B R O U T I N E ======================================= .text:0000C57C .text:0000C57C ; Attributes: bp-based frame .text:0000C57C .text:0000C57C chunk_free ; CODE XREF: chunk_alloc+6BCp .text:0000C57C ; free+B0p ... .text:0000C57C MOV R12, SP .text:0000C580 STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:0000C584 SUB R11, R12, #4 .text:0000C588 MOV R4, R1 .text:0000C58C LDR R1, [R4,#4] .text:0000C590 MOV R6, R0 .text:0000C594 LDR R2, [R6,#8] .text:0000C598 BIC R5, R1, #1 .text:0000C59C ADD R7, R4, R5 .text:0000C5A0 LDR R3, [R7,#4] .text:0000C5A4 CMP R7, R2 .text:0000C5A8 BIC R0, R3, #3 .text:0000C5AC BNE loc_C644 .text:0000C5B0 ADD R5, R5, R0 .text:0000C5B4 TST R1, #1 .text:0000C5B8 BNE loc_C5D8 .text:0000C5BC LDR R3, [R4] .text:0000C5C0 RSB R4, R3, R4 .text:0000C5C4 ADD R12, R4, #8 .text:0000C5C8 LDMIA R12, {R12,LR} .text:0000C5CC STR LR, [R12,#0xC] .text:0000C5D0 ADD R5, R5, R3 .text:0000C5D4 STR R12, [LR,#8] .text:0000C5D8 .text:0000C5D8 loc_C5D8 ; CODE XREF: chunk_free+3Cj .text:0000C5D8 ORR R3, R5, #1 .text:0000C5DC STR R3, [R4,#4] .text:0000C5E0 LDR R2, =main_arena .text:0000C5E4 STR R4, [R6,#8] .text:0000C5E8 CMP R6, R2 .text:0000C5EC BNE loc_C610 .text:0000C5F0 LDR R3, =trim_threshold .text:0000C5F4 LDR R2, [R3] .text:0000C5F8 CMP R5, R2 .text:0000C5FC LDMCCDB R11, {R4-R8,R11,SP,PC} .text:0000C600 LDR R3, =top_pad .text:0000C604 LDR R0, [R3] .text:0000C608 BL main_trim .text:0000C60C LDMDB R11, {R4-R8,R11,SP,PC} .text:0000C610 ; --------------------------------------------------------------------------- .text:0000C610 .text:0000C610 loc_C610 ; CODE XREF: chunk_free+70j .text:0000C610 LDR R3, =trim_threshold .text:0000C614 MOV R0, R4,LSR#20 .text:0000C618 LDR R2, [R3] .text:0000C61C MOV R0, R0,LSL#20 .text:0000C620 CMP R5, R2 .text:0000C624 BCS loc_C634 .text:0000C628 ADD R3, R0, #0x10 .text:0000C62C CMP R4, R3 .text:0000C630 LDMNEDB R11, {R4-R8,R11,SP,PC} .text:0000C634 .text:0000C634 loc_C634 ; CODE XREF: chunk_free+A8j .text:0000C634 LDR R3, =top_pad .text:0000C638 LDR R1, [R3] .text:0000C63C BL heap_trim .text:0000C640 LDMDB R11, {R4-R8,R11,SP,PC} .text:0000C644 ; --------------------------------------------------------------------------- .text:0000C644 .text:0000C644 loc_C644 ; CODE XREF: chunk_free+30j .text:0000C644 MOV R8, #0 .text:0000C648 TST R1, #1 .text:0000C64C BNE loc_C67C .text:0000C650 LDR R3, [R4] .text:0000C654 RSB R4, R3, R4 .text:0000C658 ADD R5, R5, R3 .text:0000C65C LDR R2, [R4,#8] .text:0000C660 ADD R3, R6, #8 .text:0000C664 CMP R2, R3 .text:0000C668 ADDEQ R8, R8, #1 .text:0000C66C LDRNE LR, [R4,#0xC] .text:0000C670 MOVNE R12, R2 .text:0000C674 STRNE LR, [R12,#0xC] .text:0000C678 STRNE R12, [LR,#8] .text:0000C67C .text:0000C67C loc_C67C ; CODE XREF: chunk_free+D0j .text:0000C67C ADD R3, R7, R0 .text:0000C680 LDR R2, [R3,#4] .text:0000C684 TST R2, #1 .text:0000C688 BNE loc_C6D8 .text:0000C68C ADD R5, R5, R0 .text:0000C690 CMP R8, #0 .text:0000C694 LDR R2, [R7,#8] .text:0000C698 BNE loc_C6C0 .text:0000C69C ADD R3, R6, #8 .text:0000C6A0 CMP R2, R3 .text:0000C6A4 BNE loc_C6C0 .text:0000C6A8 STR R4, [R2,#0xC] .text:0000C6AC STR R4, [R6,#0x10] .text:0000C6B0 STR R2, [R4,#0xC] .text:0000C6B4 MOV R8, #1 .text:0000C6B8 STR R2, [R4,#8] .text:0000C6BC B loc_C6D0 .text:0000C6C0 ; --------------------------------------------------------------------------- .text:0000C6C0 .text:0000C6C0 loc_C6C0 ; CODE XREF: chunk_free+11Cj .text:0000C6C0 ; chunk_free+128j .text:0000C6C0 LDR LR, [R7,#0xC] .text:0000C6C4 MOV R12, R2 .text:0000C6C8 STR LR, [R12,#0xC] .text:0000C6CC STR R12, [LR,#8] .text:0000C6D0 .text:0000C6D0 loc_C6D0 ; CODE XREF: chunk_free+140j .text:0000C6D0 ADD R7, R4, R5 .text:0000C6D4 B loc_C6DC .text:0000C6D8 ; --------------------------------------------------------------------------- .text:0000C6D8 .text:0000C6D8 loc_C6D8 ; CODE XREF: chunk_free+10Cj .text:0000C6D8 STR R0, [R7,#4] .text:0000C6DC .text:0000C6DC loc_C6DC ; CODE XREF: chunk_free+158j .text:0000C6DC ORR R3, R5, #1 .text:0000C6E0 STR R3, [R4,#4] .text:0000C6E4 CMP R8, #0 .text:0000C6E8 STR R5, [R7] .text:0000C6EC BNE loc_C7D4 .text:0000C6F0 CMP R5, #0x200 .text:0000C6F4 BCS loc_C71C .text:0000C6F8 MOV R0, R5,LSR#3 .text:0000C6FC MOV R3, R0,LSR#2 .text:0000C700 LDR R2, [R6,#4] .text:0000C704 MOV R1, #1 .text:0000C708 ORR R2, R2, R1,LSL R3 .text:0000C70C STR R2, [R6,#4] .text:0000C710 ADD LR, R6, R0,LSL#3 .text:0000C714 LDR R12, [LR,#8] .text:0000C718 B loc_C7C4 .text:0000C71C ; --------------------------------------------------------------------------- .text:0000C71C .text:0000C71C loc_C71C ; CODE XREF: chunk_free+178j .text:0000C71C MOVS R2, R5,LSR#9 .text:0000C720 MOVEQ R0, R5,LSR#3 .text:0000C724 BEQ loc_C77C .text:0000C728 CMP R2, #4 .text:0000C72C MOVLS R3, R5,LSR#6 .text:0000C730 ADDLS R0, R3, #0x38 .text:0000C734 BLS loc_C77C .text:0000C738 CMP R2, #0x14 .text:0000C73C ADDLS R0, R2, #0x5B .text:0000C740 BLS loc_C77C .text:0000C744 CMP R2, #0x54 .text:0000C748 MOVLS R3, R5,LSR#12 .text:0000C74C ADDLS R0, R3, #0x6E .text:0000C750 BLS loc_C77C .text:0000C754 CMP R2, #0x154 .text:0000C758 MOVLS R3, R5,LSR#15 .text:0000C75C ADDLS R0, R3, #0x77 .text:0000C760 BLS loc_C77C .text:0000C764 MOV R3, 0x554 .text:0000C76C CMP R2, R3 .text:0000C770 MOVLS R3, R5,LSR#18 .text:0000C774 ADDLS R0, R3, #0x7C .text:0000C778 MOVHI R0, #0x7E .text:0000C77C .text:0000C77C loc_C77C ; CODE XREF: chunk_free+1A8j .text:0000C77C ; chunk_free+1B8j ... .text:0000C77C ADD LR, R6, R0,LSL#3 .text:0000C780 LDR R12, [LR,#8] .text:0000C784 CMP R12, LR .text:0000C788 BNE loc_C7B0 .text:0000C78C MOV R3, R0,LSR#2 .text:0000C790 LDR R2, [R6,#4] .text:0000C794 MOV R1, #1 .text:0000C798 ORR R2, R2, R1,LSL R3 .text:0000C79C STR R2, [R6,#4] .text:0000C7A0 B loc_C7C4 .text:0000C7A4 ; --------------------------------------------------------------------------- .text:0000C7A4 .text:0000C7A4 loc_C7A4 ; CODE XREF: chunk_free+240j .text:0000C7A4 LDR R12, [R12,#8] .text:0000C7A8 CMP R12, LR .text:0000C7AC BEQ loc_C7C0 .text:0000C7B0 .text:0000C7B0 loc_C7B0 ; CODE XREF: chunk_free+20Cj .text:0000C7B0 LDR R3, [R12,#4] .text:0000C7B4 BIC R3, R3, #3 .text:0000C7B8 CMP R5, R3 .text:0000C7BC BCC loc_C7A4 .text:0000C7C0 .text:0000C7C0 loc_C7C0 ; CODE XREF: chunk_free+230j .text:0000C7C0 LDR LR, [R12,#0xC] .text:0000C7C4 .text:0000C7C4 loc_C7C4 ; CODE XREF: chunk_free+19Cj .text:0000C7C4 ; chunk_free+224j .text:0000C7C4 STR LR, [R4,#0xC] .text:0000C7C8 STR R12, [R4,#8] .text:0000C7CC STR R4, [LR,#8] .text:0000C7D0 STR R4, [R12,#0xC] .text:0000C7D4 .text:0000C7D4 loc_C7D4 ; CODE XREF: chunk_free+170j .text:0000C7D4 LDR R3, [R7,#4] .text:0000C7D8 CMP R3, #0xF .text:0000C7DC LDMHIDB R11, {R4-R8,R11,SP,PC} .text:0000C7E0 LDR R3, =trim_threshold .text:0000C7E4 LDR R2, [R3] .text:0000C7E8 CMP R5, R2 .text:0000C7EC LDMLSDB R11, {R4-R8,R11,SP,PC} .text:0000C7F0 LDR R3, =main_arena .text:0000C7F4 CMP R6, R3 .text:0000C7F8 LDMEQDB R11, {R4-R8,R11,SP,PC} .text:0000C7FC MOV R1, #0x80000000 .text:0000C800 LDR R2, [R6,#8] .text:0000C804 MOV R1, R1,ASR#11 .text:0000C808 AND R0, R2, R1 .text:0000C80C ADD R3, R0, #0x10 .text:0000C810 CMP R2, R3 .text:0000C814 LDMNEDB R11, {R4-R8,R11,SP,PC} .text:0000C818 LDR R2, [R0,#4] .text:0000C81C AND R3, R4, R1 .text:0000C820 CMP R2, R3 .text:0000C824 LDMNEDB R11, {R4-R8,R11,SP,PC} .text:0000C828 LDR R3, =top_pad .text:0000C82C LDR R1, [R3] .text:0000C830 BL heap_trim .text:0000C834 LDMDB R11, {R4-R8,R11,SP,PC} .text:0000C834 ; End of function chunk_free .text:0000C834 .text:0000C834 ; --------------------------------------------------------------------------- .text:0000C838 off_C838 DCD main_arena ; DATA XREF: chunk_free+64r .text:0000C838 ; chunk_free+274r .text:0000C83C off_C83C DCD trim_threshold ; DATA XREF: chunk_free+74r .text:0000C83C ; chunk_free:loc_C610r ... .text:0000C840 off_C840 DCD top_pad ; DATA XREF: chunk_free+84r .text:0000C840 ; chunk_free:loc_C634r ... .text:0000C844 .text:0000C844 ; =============== S U B R O U T I N E ======================================= .text:0000C844 .text:0000C844 ; Attributes: bp-based frame .text:0000C844 .text:0000C844 WEAK realloc .text:0000C844 realloc ; CODE XREF: realloc_hook_ini+34p .text:0000C844 ; add_dependency+E0p ... .text:0000C844 .text:0000C844 var_4 = -4 .text:0000C844 .text:0000C844 MOV R12, SP ; Alternative name is '__realloc' .text:0000C848 STMFD SP!, {R4-R12,LR,PC} .text:0000C84C SUB R11, R12, #4 .text:0000C850 LDR R3, =__realloc_hook .text:0000C854 MOV R6, R0 .text:0000C858 LDR R4, [R3] .text:0000C85C MOV R8, R1 .text:0000C860 CMP R4, #0 .text:0000C864 BEQ loc_C878 .text:0000C868 LDR R2, [R11,#var_4] .text:0000C86C MOV LR, PC .text:0000C870 MOV PC, R4 .text:0000C874 LDMDB R11, {R4-R11,SP,PC} .text:0000C878 ; --------------------------------------------------------------------------- .text:0000C878 .text:0000C878 loc_C878 ; CODE XREF: realloc+20j .text:0000C878 SUBS R3, R6, #0 .text:0000C87C MOVNE R3, #1 .text:0000C880 CMP R8, #0 .text:0000C884 MOVNE R3, #0 .text:0000C888 CMP R3, #0 .text:0000C88C BEQ loc_C89C .text:0000C890 MOV R0, R6 .text:0000C894 BL free .text:0000C898 B loc_C93C .text:0000C89C ; --------------------------------------------------------------------------- .text:0000C89C .text:0000C89C loc_C89C ; CODE XREF: realloc+48j .text:0000C89C CMP R6, #0 .text:0000C8A0 BNE loc_C8B0 .text:0000C8A4 MOV R0, R8 .text:0000C8A8 BL malloc .text:0000C8AC LDMDB R11, {R4-R11,SP,PC} .text:0000C8B0 ; --------------------------------------------------------------------------- .text:0000C8B0 .text:0000C8B0 loc_C8B0 ; CODE XREF: realloc+5Cj .text:0000C8B0 ADD R7, R8, #0xB .text:0000C8B4 SUB R10, R6, #8 .text:0000C8B8 CMP R7, R8 .text:0000C8BC MOVCS R3, #0 .text:0000C8C0 MOVCC R3, #1 .text:0000C8C4 CMP R7, #0 .text:0000C8C8 MOVLE R3, #1 .text:0000C8CC LDR R2, [R10,#4] .text:0000C8D0 CMP R3, #0 .text:0000C8D4 BIC R9, R2, #3 .text:0000C8D8 BEQ loc_C8EC .text:0000C8DC BL __errno_location .text:0000C8E0 MOV R3, #0xC .text:0000C8E4 STR R3, [R0] .text:0000C8E8 B loc_C93C .text:0000C8EC ; --------------------------------------------------------------------------- .text:0000C8EC .text:0000C8EC loc_C8EC ; CODE XREF: realloc+94j .text:0000C8EC CMP R7, #0x16 .text:0000C8F0 BIC R7, R7, #7 .text:0000C8F4 MOVLS R7, #0x10 .text:0000C8F8 LDR R3, [R10,#4] .text:0000C8FC TST R3, #2 .text:0000C900 BEQ loc_C9E0 .text:0000C904 MOV R0, R10 .text:0000C908 MOV R1, R7 .text:0000C90C BL mremap_chunk .text:0000C910 SUBS R5, R0, #0 .text:0000C914 ADDNE R0, R5, #8 .text:0000C918 LDMNEDB R11, {R4-R11,SP,PC} .text:0000C91C SUB R3, R9, #4 .text:0000C920 CMP R3, R7 .text:0000C924 MOV R0, R6 .text:0000C928 LDMCSDB R11, {R4-R11,SP,PC} .text:0000C92C MOV R0, R8 .text:0000C930 BL malloc .text:0000C934 SUBS R5, R0, #0 .text:0000C938 BNE loc_C944 .text:0000C93C .text:0000C93C loc_C93C ; CODE XREF: realloc+54j .text:0000C93C ; realloc+A4j .text:0000C93C MOV R0, #0 .text:0000C940 LDMDB R11, {R4-R11,SP,PC} .text:0000C944 ; --------------------------------------------------------------------------- .text:0000C944 .text:0000C944 loc_C944 ; CODE XREF: realloc+F4j .text:0000C944 SUB R4, R9, #8 .text:0000C948 CMP R4, #0x24 .text:0000C94C BHI loc_C9C0 .text:0000C950 MOV LR, R6 .text:0000C954 MOV R12, R5 .text:0000C958 CMP R4, #0x13 .text:0000C95C BLS loc_C9A4 .text:0000C960 LDR R3, [LR],#4 .text:0000C964 STR R3, [R12],#4 .text:0000C968 CMP R4, #0x1B .text:0000C96C ADD LR, LR, #4 .text:0000C970 LDR R3, [R6,#4] .text:0000C974 ADD R12, R12, #4 .text:0000C978 STR R3, [R5,#4] .text:0000C97C BLS loc_C9A4 .text:0000C980 LDR R3, [LR],#4 .text:0000C984 STR R3, [R12],#4 .text:0000C988 LDR R2, [LR],#4 .text:0000C98C CMP R4, #0x23 .text:0000C990 STR R2, [R12],#4 .text:0000C994 LDRHI R3, [LR],#4 .text:0000C998 STRHI R3, [R12],#4 .text:0000C99C LDRHI R2, [LR],#4 .text:0000C9A0 STRHI R2, [R12],#4 .text:0000C9A4 .text:0000C9A4 loc_C9A4 ; CODE XREF: realloc+118j .text:0000C9A4 ; realloc+138j .text:0000C9A4 LDR R3, [LR],#4 .text:0000C9A8 STR R3, [R12],#4 .text:0000C9AC LDR R2, [LR],#4 .text:0000C9B0 STR R2, [R12],#4 .text:0000C9B4 LDR R3, [LR] .text:0000C9B8 STR R3, [R12] .text:0000C9BC B loc_C9D0 .text:0000C9C0 ; --------------------------------------------------------------------------- .text:0000C9C0 .text:0000C9C0 loc_C9C0 ; CODE XREF: realloc+108j .text:0000C9C0 MOV R0, R5 .text:0000C9C4 MOV R1, R6 .text:0000C9C8 MOV R2, R4 .text:0000C9CC BL memcpy .text:0000C9D0 .text:0000C9D0 loc_C9D0 ; CODE XREF: realloc+178j .text:0000C9D0 MOV R0, R10 .text:0000C9D4 BL munmap_chunk .text:0000C9D8 MOV R0, R5 .text:0000C9DC LDMDB R11, {R4-R11,SP,PC} .text:0000C9E0 ; --------------------------------------------------------------------------- .text:0000C9E0 .text:0000C9E0 loc_C9E0 ; CODE XREF: realloc+BCj .text:0000C9E0 LDR R0, =main_arena .text:0000C9E4 LDR R3, [R0,#(main_arena+8 - 0x6B1E4)] .text:0000C9E8 CMP R10, R3 .text:0000C9EC BCS loc_CA00 .text:0000C9F0 LDR R3, =sbrk_base .text:0000C9F4 LDR R2, [R3] .text:0000C9F8 CMP R10, R2 .text:0000C9FC BCS loc_CA10 .text:0000CA00 .text:0000CA00 loc_CA00 ; CODE XREF: realloc+1A8j .text:0000CA00 MOV R3, R10,LSR#20 .text:0000CA04 MOV R3, R3,LSL#20 .text:0000CA08 LDR R4, [R3] .text:0000CA0C B loc_CA14 .text:0000CA10 ; --------------------------------------------------------------------------- .text:0000CA10 .text:0000CA10 loc_CA10 ; CODE XREF: realloc+1B8j .text:0000CA10 MOV R4, R0 .text:0000CA14 .text:0000CA14 loc_CA14 ; CODE XREF: realloc+1C8j .text:0000CA14 LDR R3, =0 .text:0000CA18 CMP R3, #0 .text:0000CA1C BEQ loc_CA30 .text:0000CA20 ADD R0, R4, #0x410 .text:0000CA24 MOV LR, PC .text:0000CA28 MOV PC, R3 .text:0000CA2C B loc_CA38 .text:0000CA30 ; --------------------------------------------------------------------------- .text:0000CA30 .text:0000CA30 loc_CA30 ; CODE XREF: realloc+1D8j .text:0000CA30 MOV R3, #1 .text:0000CA34 STR R3, [R4,#0x410] .text:0000CA38 .text:0000CA38 loc_CA38 ; CODE XREF: realloc+1E8j .text:0000CA38 LDR R3, =__libc_internal_tsd_set .text:0000CA3C LDR R3, [R3] .text:0000CA40 CMP R3, #0 .text:0000CA44 BEQ loc_CA5C .text:0000CA48 MOV R0, #0 .text:0000CA4C MOV R1, R4 .text:0000CA50 MOV LR, PC .text:0000CA54 MOV PC, R3 .text:0000CA58 B loc_CA64 .text:0000CA5C ; --------------------------------------------------------------------------- .text:0000CA5C .text:0000CA5C loc_CA5C ; CODE XREF: realloc+200j .text:0000CA5C LDR R3, =__libc_tsd_MALLOC_data .text:0000CA60 STR R4, [R3] .text:0000CA64 .text:0000CA64 loc_CA64 ; CODE XREF: realloc+214j .text:0000CA64 MOV R0, R4 .text:0000CA68 MOV R1, R10 .text:0000CA6C MOV R2, R9 .text:0000CA70 MOV R3, R7 .text:0000CA74 BL chunk_realloc .text:0000CA78 LDR R3, =0 .text:0000CA7C MOV R5, R0 .text:0000CA80 CMP R3, #0 .text:0000CA84 BEQ loc_CA98 .text:0000CA88 ADD R0, R4, #0x410 .text:0000CA8C MOV LR, PC .text:0000CA90 MOV PC, R3 .text:0000CA94 B loc_CA9C .text:0000CA98 ; --------------------------------------------------------------------------- .text:0000CA98 .text:0000CA98 loc_CA98 ; CODE XREF: realloc+240j .text:0000CA98 STR R3, [R4,#0x410] .text:0000CA9C .text:0000CA9C loc_CA9C ; CODE XREF: realloc+250j .text:0000CA9C CMP R5, #0 .text:0000CAA0 ADDNE R0, R5, #8 .text:0000CAA4 MOVEQ R0, #0 .text:0000CAA8 LDMDB R11, {R4-R11,SP,PC} .text:0000CAA8 ; End of function realloc .text:0000CAA8 .text:0000CAA8 ; --------------------------------------------------------------------------- .text:0000CAAC off_CAAC DCD __realloc_hook ; DATA XREF: realloc+Cr .text:0000CAB0 off_CAB0 DCD main_arena ; DATA XREF: realloc:loc_C9E0r .text:0000CAB4 off_CAB4 DCD sbrk_base ; DATA XREF: realloc+1ACr .text:0000CAB8 off_CAB8 DCD 0 ; DATA XREF: realloc:loc_CA14r .text:0000CABC off_CABC DCD __libc_internal_tsd_set ; DATA XREF: realloc:loc_CA38r .text:0000CAC0 off_CAC0 DCD __libc_tsd_MALLOC_data ; DATA XREF: realloc:loc_CA5Cr .text:0000CAC4 off_CAC4 DCD 0 ; DATA XREF: realloc+234r .text:0000CAC8 .text:0000CAC8 ; =============== S U B R O U T I N E ======================================= .text:0000CAC8 .text:0000CAC8 ; Attributes: bp-based frame .text:0000CAC8 .text:0000CAC8 chunk_realloc ; CODE XREF: realloc+230p .text:0000CAC8 ; realloc_check+248p .text:0000CAC8 .text:0000CAC8 var_30 = -0x30 .text:0000CAC8 var_2C = -0x2C .text:0000CAC8 .text:0000CAC8 MOV R12, SP .text:0000CACC STMFD SP!, {R4-R12,LR,PC} .text:0000CAD0 SUB R11, R12, #4 .text:0000CAD4 MOV R5, R2 .text:0000CAD8 MOV R9, R1 .text:0000CADC MOV R4, R9 .text:0000CAE0 MOV R8, R5 .text:0000CAE4 MOV R10, R3 .text:0000CAE8 CMP R8, R10 .text:0000CAEC SUB SP, SP, #8 .text:0000CAF0 STR R0, [R11,#var_2C] .text:0000CAF4 BGE loc_CF44 .text:0000CAF8 ADD R12, R4, R8 .text:0000CAFC LDR R3, [R0,#8] .text:0000CB00 ADD R6, R4, #8 .text:0000CB04 CMP R12, R3 .text:0000CB08 MOV LR, R3 .text:0000CB0C BEQ loc_CB28 .text:0000CB10 LDR R3, [R12,#4] .text:0000CB14 BIC R3, R3, #1 .text:0000CB18 ADD R3, R12, R3 .text:0000CB1C LDR R2, [R3,#4] .text:0000CB20 TST R2, #1 .text:0000CB24 BNE loc_CB9C .text:0000CB28 .text:0000CB28 loc_CB28 ; CODE XREF: chunk_realloc+44j .text:0000CB28 LDR R3, [R12,#4] .text:0000CB2C CMP R12, LR .text:0000CB30 BIC R1, R3, #3 .text:0000CB34 BNE loc_CB78 .text:0000CB38 ADD R2, R1, R8 .text:0000CB3C ADD R3, R10, #0x10 .text:0000CB40 CMP R2, R3 .text:0000CB44 BLT loc_CBA4 .text:0000CB48 LDR R1, [R11,#var_2C] .text:0000CB4C ADD R3, R4, R10 .text:0000CB50 STR R3, [R1,#8] .text:0000CB54 RSB R2, R10, R2 .text:0000CB58 ORR R2, R2, #1 .text:0000CB5C STR R2, [R3,#4] .text:0000CB60 LDR R1, [R4,#4] .text:0000CB64 MOV R0, R4 .text:0000CB68 AND R1, R1, #1 .text:0000CB6C ORR R1, R1, R10 .text:0000CB70 STR R1, [R4,#4] .text:0000CB74 B locret_CFC0 .text:0000CB78 ; --------------------------------------------------------------------------- .text:0000CB78 .text:0000CB78 loc_CB78 ; CODE XREF: chunk_realloc+6Cj .text:0000CB78 ADD R2, R1, R8 .text:0000CB7C CMP R2, R10 .text:0000CB80 BLT loc_CBA4 .text:0000CB84 LDR R1, [R12,#0xC] .text:0000CB88 LDR R3, [R12,#8] .text:0000CB8C STR R1, [R3,#0xC] .text:0000CB90 MOV R8, R2 .text:0000CB94 STR R3, [R1,#8] .text:0000CB98 B loc_CF44 .text:0000CB9C ; --------------------------------------------------------------------------- .text:0000CB9C .text:0000CB9C loc_CB9C ; CODE XREF: chunk_realloc+5Cj .text:0000CB9C MOV R12, #0 .text:0000CBA0 MOV R1, R12 .text:0000CBA4 .text:0000CBA4 loc_CBA4 ; CODE XREF: chunk_realloc+7Cj .text:0000CBA4 ; chunk_realloc+B8j .text:0000CBA4 LDR R3, [R9,#4] .text:0000CBA8 SUB R5, R5, #4 .text:0000CBAC TST R3, #1 .text:0000CBB0 BNE loc_CDB0 .text:0000CBB4 LDR R3, [R9] .text:0000CBB8 RSB R7, R3, R9 .text:0000CBBC LDR R2, [R7,#4] .text:0000CBC0 CMP R12, #0 .text:0000CBC4 BIC R0, R2, #3 .text:0000CBC8 BEQ loc_CCEC .text:0000CBCC CMP R12, LR .text:0000CBD0 BNE loc_CCC8 .text:0000CBD4 ADD R3, R1, R0 .text:0000CBD8 ADD R3, R3, R8 .text:0000CBDC ADD R2, R10, #0x10 .text:0000CBE0 CMP R3, R2 .text:0000CBE4 STR R3, [R11,#var_30] .text:0000CBE8 BLT loc_CCEC .text:0000CBEC LDR R1, [R7,#0xC] .text:0000CBF0 LDR R3, [R7,#8] .text:0000CBF4 STR R1, [R3,#0xC] .text:0000CBF8 MOV R4, R7 .text:0000CBFC STR R3, [R1,#8] .text:0000CC00 CMP R5, #0x24 .text:0000CC04 BHI loc_CC84 .text:0000CC08 MOV R0, R6 .text:0000CC0C ADD R1, R4, #8 .text:0000CC10 CMP R5, #0x13 .text:0000CC14 BLS loc_CC68 .text:0000CC18 LDR R3, [R0],#4 .text:0000CC1C STR R3, [R4,#8] .text:0000CC20 ADD R1, R4, #0x10 .text:0000CC24 CMP R5, #0x1B .text:0000CC28 LDR R3, [R6,#4] .text:0000CC2C ADD R0, R0, #4 .text:0000CC30 STR R3, [R4,#0xC] .text:0000CC34 BLS loc_CC68 .text:0000CC38 LDR R3, [R0],#4 .text:0000CC3C STR R3, [R4,#0x10] .text:0000CC40 ADD R1, R4, #0x18 .text:0000CC44 LDR R3, [R0],#4 .text:0000CC48 CMP R5, #0x23 .text:0000CC4C STR R3, [R4,#0x14] .text:0000CC50 BLS loc_CC68 .text:0000CC54 LDR R3, [R0],#4 .text:0000CC58 STR R3, [R4,#0x18] .text:0000CC5C LDR R2, [R0],#4 .text:0000CC60 ADD R1, R4, #0x20 .text:0000CC64 STR R2, [R4,#0x1C] .text:0000CC68 .text:0000CC68 loc_CC68 ; CODE XREF: chunk_realloc+14Cj .text:0000CC68 ; chunk_realloc+16Cj ... .text:0000CC68 LDR R3, [R0],#4 .text:0000CC6C STR R3, [R1],#4 .text:0000CC70 LDR R2, [R0],#4 .text:0000CC74 STR R2, [R1],#4 .text:0000CC78 LDR R3, [R0] .text:0000CC7C STR R3, [R1] .text:0000CC80 B loc_CC94 .text:0000CC84 ; --------------------------------------------------------------------------- .text:0000CC84 .text:0000CC84 loc_CC84 ; CODE XREF: chunk_realloc+13Cj .text:0000CC84 ADD R0, R4, #8 .text:0000CC88 MOV R1, R6 .text:0000CC8C MOV R2, R5 .text:0000CC90 BL memmove .text:0000CC94 .text:0000CC94 loc_CC94 ; CODE XREF: chunk_realloc+1B8j .text:0000CC94 LDR R2, [R11,#var_2C] .text:0000CC98 ADD R3, R7, R10 .text:0000CC9C STR R3, [R2,#8] .text:0000CCA0 LDR R1, [R11,#var_30] .text:0000CCA4 RSB R2, R10, R1 .text:0000CCA8 ORR R2, R2, #1 .text:0000CCAC STR R2, [R3,#4] .text:0000CCB0 LDR R1, [R7,#4] .text:0000CCB4 MOV R0, R7 .text:0000CCB8 AND R1, R1, #1 .text:0000CCBC ORR R1, R1, R10 .text:0000CCC0 STR R1, [R7,#4] .text:0000CCC4 B locret_CFC0 .text:0000CCC8 ; --------------------------------------------------------------------------- .text:0000CCC8 .text:0000CCC8 loc_CCC8 ; CODE XREF: chunk_realloc+108j .text:0000CCC8 ADD R3, R1, R0 .text:0000CCCC ADD R2, R3, R8 .text:0000CCD0 CMP R2, R10 .text:0000CCD4 BLT loc_CCEC .text:0000CCD8 LDR R1, [R12,#0xC] .text:0000CCDC LDR R3, [R12,#8] .text:0000CCE0 STR R1, [R3,#0xC] .text:0000CCE4 STR R3, [R1,#8] .text:0000CCE8 B loc_CD00 .text:0000CCEC ; --------------------------------------------------------------------------- .text:0000CCEC .text:0000CCEC loc_CCEC ; CODE XREF: chunk_realloc+100j .text:0000CCEC ; chunk_realloc+120j ... .text:0000CCEC CMP R7, #0 .text:0000CCF0 BEQ loc_CDB0 .text:0000CCF4 ADD R2, R0, R8 .text:0000CCF8 CMP R2, R10 .text:0000CCFC BLT loc_CDB0 .text:0000CD00 .text:0000CD00 loc_CD00 ; CODE XREF: chunk_realloc+220j .text:0000CD00 LDR R1, [R7,#0xC] .text:0000CD04 LDR R3, [R7,#8] .text:0000CD08 STR R1, [R3,#0xC] .text:0000CD0C MOV R4, R7 .text:0000CD10 MOV R8, R2 .text:0000CD14 STR R3, [R1,#8] .text:0000CD18 CMP R5, #0x24 .text:0000CD1C BHI loc_CD9C .text:0000CD20 MOV R0, R6 .text:0000CD24 ADD R1, R4, #8 .text:0000CD28 CMP R5, #0x13 .text:0000CD2C BLS loc_CD80 .text:0000CD30 LDR R3, [R0],#4 .text:0000CD34 STR R3, [R4,#8] .text:0000CD38 ADD R1, R4, #0x10 .text:0000CD3C CMP R5, #0x1B .text:0000CD40 LDR R3, [R6,#4] .text:0000CD44 ADD R0, R0, #4 .text:0000CD48 STR R3, [R4,#0xC] .text:0000CD4C BLS loc_CD80 .text:0000CD50 LDR R3, [R0],#4 .text:0000CD54 STR R3, [R4,#0x10] .text:0000CD58 ADD R1, R4, #0x18 .text:0000CD5C LDR R3, [R0],#4 .text:0000CD60 CMP R5, #0x23 .text:0000CD64 STR R3, [R4,#0x14] .text:0000CD68 BLS loc_CD80 .text:0000CD6C LDR R3, [R0],#4 .text:0000CD70 STR R3, [R4,#0x18] .text:0000CD74 LDR R2, [R0],#4 .text:0000CD78 ADD R1, R4, #0x20 .text:0000CD7C STR R2, [R4,#0x1C] .text:0000CD80 .text:0000CD80 loc_CD80 ; CODE XREF: chunk_realloc+264j .text:0000CD80 ; chunk_realloc+284j ... .text:0000CD80 LDR R3, [R0],#4 .text:0000CD84 STR R3, [R1],#4 .text:0000CD88 LDR R2, [R0],#4 .text:0000CD8C STR R2, [R1],#4 .text:0000CD90 LDR R3, [R0] .text:0000CD94 STR R3, [R1] .text:0000CD98 B loc_CF44 .text:0000CD9C ; --------------------------------------------------------------------------- .text:0000CD9C .text:0000CD9C loc_CD9C ; CODE XREF: chunk_realloc+254j .text:0000CD9C ADD R0, R4, #8 .text:0000CDA0 MOV R1, R6 .text:0000CDA4 MOV R2, R5 .text:0000CDA8 BL memmove .text:0000CDAC B loc_CF44 .text:0000CDB0 ; --------------------------------------------------------------------------- .text:0000CDB0 .text:0000CDB0 loc_CDB0 ; CODE XREF: chunk_realloc+E8j .text:0000CDB0 ; chunk_realloc+228j ... .text:0000CDB0 LDR R0, [R11,#var_2C] .text:0000CDB4 MOV R1, R10 .text:0000CDB8 BL chunk_alloc .text:0000CDBC SUBS R4, R0, #0 .text:0000CDC0 BNE loc_CE78 .text:0000CDC4 LDR R3, =main_arena .text:0000CDC8 LDR R2, [R11,#var_2C] .text:0000CDCC CMP R2, R3 .text:0000CDD0 MOV R7, R3 .text:0000CDD4 BEQ loc_CE1C .text:0000CDD8 LDR R3, =0 .text:0000CDDC CMP R3, #0 .text:0000CDE0 BEQ loc_CDF4 .text:0000CDE4 ADD R0, R7, #0x410 .text:0000CDE8 MOV LR, PC .text:0000CDEC MOV PC, R3 .text:0000CDF0 B loc_CDFC .text:0000CDF4 ; --------------------------------------------------------------------------- .text:0000CDF4 .text:0000CDF4 loc_CDF4 ; CODE XREF: chunk_realloc+318j .text:0000CDF4 MOV R3, #1 .text:0000CDF8 STR R3, [R7,#0x410] .text:0000CDFC .text:0000CDFC loc_CDFC ; CODE XREF: chunk_realloc+328j .text:0000CDFC MOV R0, R7 .text:0000CE00 MOV R1, R10 .text:0000CE04 BL chunk_alloc .text:0000CE08 LDR R3, =0 .text:0000CE0C MOV R4, R0 .text:0000CE10 CMP R3, #0 .text:0000CE14 BNE loc_CE5C .text:0000CE18 B loc_CE6C .text:0000CE1C ; --------------------------------------------------------------------------- .text:0000CE1C .text:0000CE1C loc_CE1C ; CODE XREF: chunk_realloc+30Cj .text:0000CE1C LDR R3, [R11,#var_2C] .text:0000CE20 LDR R0, [R3,#0x408] .text:0000CE24 MOV R1, R10 .text:0000CE28 CMP R0, #0 .text:0000CE2C MOVEQ R3, #0 .text:0000CE30 MOV R0, R3 .text:0000CE34 BL arena_get2 .text:0000CE38 SUBS R7, R0, #0 .text:0000CE3C BEQ loc_CE70 .text:0000CE40 MOV R0, R7 .text:0000CE44 MOV R1, R10 .text:0000CE48 BL chunk_alloc .text:0000CE4C LDR R3, =0 .text:0000CE50 MOV R4, R0 .text:0000CE54 CMP R3, #0 .text:0000CE58 BEQ loc_CE6C .text:0000CE5C .text:0000CE5C loc_CE5C ; CODE XREF: chunk_realloc+34Cj .text:0000CE5C ADD R0, R7, #0x410 .text:0000CE60 MOV LR, PC .text:0000CE64 MOV PC, R3 .text:0000CE68 B loc_CE70 .text:0000CE6C ; --------------------------------------------------------------------------- .text:0000CE6C .text:0000CE6C loc_CE6C ; CODE XREF: chunk_realloc+350j .text:0000CE6C ; chunk_realloc+390j .text:0000CE6C STR R3, [R7,#0x410] .text:0000CE70 .text:0000CE70 loc_CE70 ; CODE XREF: chunk_realloc+374j .text:0000CE70 ; chunk_realloc+3A0j .text:0000CE70 CMP R4, #0 .text:0000CE74 BEQ loc_CFBC .text:0000CE78 .text:0000CE78 loc_CE78 ; CODE XREF: chunk_realloc+2F8j .text:0000CE78 LDR R3, [R9,#4] .text:0000CE7C BIC R3, R3, #1 .text:0000CE80 ADD R3, R9, R3 .text:0000CE84 CMP R4, R3 .text:0000CE88 BNE loc_CEA0 .text:0000CE8C LDR R3, [R4,#4] .text:0000CE90 MOV R4, R9 .text:0000CE94 BIC R3, R3, #3 .text:0000CE98 ADD R8, R8, R3 .text:0000CE9C B loc_CF44 .text:0000CEA0 ; --------------------------------------------------------------------------- .text:0000CEA0 .text:0000CEA0 loc_CEA0 ; CODE XREF: chunk_realloc+3C0j .text:0000CEA0 CMP R5, #0x24 .text:0000CEA4 BHI loc_CF24 .text:0000CEA8 MOV R0, R6 .text:0000CEAC ADD R1, R4, #8 .text:0000CEB0 CMP R5, #0x13 .text:0000CEB4 BLS loc_CF08 .text:0000CEB8 LDR R3, [R0],#4 .text:0000CEBC STR R3, [R4,#8] .text:0000CEC0 ADD R1, R4, #0x10 .text:0000CEC4 CMP R5, #0x1B .text:0000CEC8 LDR R3, [R6,#4] .text:0000CECC ADD R0, R0, #4 .text:0000CED0 STR R3, [R4,#0xC] .text:0000CED4 BLS loc_CF08 .text:0000CED8 LDR R3, [R0],#4 .text:0000CEDC STR R3, [R4,#0x10] .text:0000CEE0 ADD R1, R4, #0x18 .text:0000CEE4 LDR R3, [R0],#4 .text:0000CEE8 CMP R5, #0x23 .text:0000CEEC STR R3, [R4,#0x14] .text:0000CEF0 BLS loc_CF08 .text:0000CEF4 LDR R3, [R0],#4 .text:0000CEF8 STR R3, [R4,#0x18] .text:0000CEFC LDR R2, [R0],#4 .text:0000CF00 ADD R1, R4, #0x20 .text:0000CF04 STR R2, [R4,#0x1C] .text:0000CF08 .text:0000CF08 loc_CF08 ; CODE XREF: chunk_realloc+3ECj .text:0000CF08 ; chunk_realloc+40Cj ... .text:0000CF08 LDR R3, [R0],#4 .text:0000CF0C STR R3, [R1],#4 .text:0000CF10 LDR R2, [R0],#4 .text:0000CF14 STR R2, [R1],#4 .text:0000CF18 LDR R3, [R0] .text:0000CF1C STR R3, [R1] .text:0000CF20 B loc_CF34 .text:0000CF24 ; --------------------------------------------------------------------------- .text:0000CF24 .text:0000CF24 loc_CF24 ; CODE XREF: chunk_realloc+3DCj .text:0000CF24 ADD R0, R4, #8 .text:0000CF28 MOV R1, R6 .text:0000CF2C MOV R2, R5 .text:0000CF30 BL memcpy .text:0000CF34 .text:0000CF34 loc_CF34 ; CODE XREF: chunk_realloc+458j .text:0000CF34 LDR R0, [R11,#var_2C] .text:0000CF38 MOV R1, R9 .text:0000CF3C BL chunk_free .text:0000CF40 B loc_CFBC .text:0000CF44 ; --------------------------------------------------------------------------- .text:0000CF44 .text:0000CF44 loc_CF44 ; CODE XREF: chunk_realloc+2Cj .text:0000CF44 ; chunk_realloc+D0j ... .text:0000CF44 RSB R2, R10, R8 .text:0000CF48 CMP R2, #0xF .text:0000CF4C BLS loc_CF98 .text:0000CF50 LDR R3, [R4,#4] .text:0000CF54 AND R3, R3, #1 .text:0000CF58 ORR R3, R3, R10 .text:0000CF5C STR R3, [R4,#4] .text:0000CF60 ADD R1, R4, R10 .text:0000CF64 ORR R3, R2, #1 .text:0000CF68 STR R3, [R1,#4] .text:0000CF6C MOV R0, #4 .text:0000CF70 ADD R2, R1, R2 .text:0000CF74 LDR R3, [R2,R0] .text:0000CF78 ORR R3, R3, #1 .text:0000CF7C STR R3, [R2,R0] .text:0000CF80 LDR R0, [R11,#var_2C] .text:0000CF84 BL chunk_free .text:0000CF88 B loc_CFBC .text:0000CF88 ; --------------------------------------------------------------------------- .text:0000CF8C off_CF8C DCD main_arena ; DATA XREF: chunk_realloc+2FCr .text:0000CF90 off_CF90 DCD 0 ; DATA XREF: chunk_realloc+310r .text:0000CF94 dword_CF94 DCD 0 ; DATA XREF: chunk_realloc+340r .text:0000CF94 ; chunk_realloc+384r .text:0000CF98 ; --------------------------------------------------------------------------- .text:0000CF98 .text:0000CF98 loc_CF98 ; CODE XREF: chunk_realloc+484j .text:0000CF98 LDR R3, [R4,#4] .text:0000CF9C AND R3, R3, #1 .text:0000CFA0 ORR R3, R3, R8 .text:0000CFA4 STR R3, [R4,#4] .text:0000CFA8 MOV R1, #4 .text:0000CFAC ADD R2, R4, R8 .text:0000CFB0 LDR R3, [R2,R1] .text:0000CFB4 ORR R3, R3, #1 .text:0000CFB8 STR R3, [R2,R1] .text:0000CFBC .text:0000CFBC loc_CFBC ; CODE XREF: chunk_realloc+3ACj .text:0000CFBC ; chunk_realloc+478j ... .text:0000CFBC MOV R0, R4 .text:0000CFC0 .text:0000CFC0 locret_CFC0 ; CODE XREF: chunk_realloc+ACj .text:0000CFC0 ; chunk_realloc+1FCj .text:0000CFC0 LDMDB R11, {R4-R11,SP,PC} .text:0000CFC0 ; End of function chunk_realloc .text:0000CFC0 .text:0000CFC4 .text:0000CFC4 ; =============== S U B R O U T I N E ======================================= .text:0000CFC4 .text:0000CFC4 ; Attributes: bp-based frame .text:0000CFC4 .text:0000CFC4 WEAK memalign .text:0000CFC4 memalign ; CODE XREF: memalign_hook_ini+2Cp .text:0000CFC4 ; valloc+30p ... .text:0000CFC4 .text:0000CFC4 var_4 = -4 .text:0000CFC4 .text:0000CFC4 MOV R12, SP .text:0000CFC8 STMFD SP!, {R4-R8,R10-R12,LR,PC} .text:0000CFCC LDR R3, =__memalign_hook .text:0000CFD0 SUB R11, R12, #4 .text:0000CFD4 LDR R3, [R3] .text:0000CFD8 MOV R7, R0 .text:0000CFDC CMP R3, #0 .text:0000CFE0 BEQ loc_CFF4 .text:0000CFE4 LDR R2, [R11,#var_4] .text:0000CFE8 MOV LR, PC .text:0000CFEC MOV PC, R3 .text:0000CFF0 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0000CFF4 ; --------------------------------------------------------------------------- .text:0000CFF4 .text:0000CFF4 loc_CFF4 ; CODE XREF: memalign+1Cj .text:0000CFF4 CMP R7, #8 .text:0000CFF8 BHI loc_D008 .text:0000CFFC MOV R0, R1 .text:0000D000 BL malloc .text:0000D004 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0000D008 ; --------------------------------------------------------------------------- .text:0000D008 .text:0000D008 loc_D008 ; CODE XREF: memalign+34j .text:0000D008 CMP R7, #0xF .text:0000D00C MOVLS R7, #0x10 .text:0000D010 ADD R6, R1, #0xB .text:0000D014 CMP R6, R1 .text:0000D018 MOVCS R3, #0 .text:0000D01C MOVCC R3, #1 .text:0000D020 CMP R6, #0 .text:0000D024 MOVLE R3, #1 .text:0000D028 CMP R3, #0 .text:0000D02C BEQ loc_D040 .text:0000D030 BL __errno_location .text:0000D034 MOV R3, #0xC .text:0000D038 STR R3, [R0] .text:0000D03C B loc_D1DC .text:0000D040 ; --------------------------------------------------------------------------- .text:0000D040 .text:0000D040 loc_D040 ; CODE XREF: memalign+68j .text:0000D040 CMP R6, #0x16 .text:0000D044 BIC R6, R6, #7 .text:0000D048 MOVLS R6, #0x10 .text:0000D04C LDR R3, =__libc_internal_tsd_get .text:0000D050 LDR R3, [R3] .text:0000D054 MOV R5, #0 .text:0000D058 CMP R3, R5 .text:0000D05C BEQ loc_D074 .text:0000D060 MOV R0, R5 .text:0000D064 MOV LR, PC .text:0000D068 MOV PC, R3 .text:0000D06C MOV R5, R0 .text:0000D070 B loc_D07C .text:0000D074 ; --------------------------------------------------------------------------- .text:0000D074 .text:0000D074 loc_D074 ; CODE XREF: memalign+98j .text:0000D074 LDR R3, =__libc_tsd_MALLOC_data .text:0000D078 LDR R5, [R3] .text:0000D07C .text:0000D07C loc_D07C ; CODE XREF: memalign+ACj .text:0000D07C SUBS R4, R5, #0 .text:0000D080 BEQ loc_D0BC .text:0000D084 LDR R3, =0 .text:0000D088 CMP R3, #0 .text:0000D08C BEQ loc_D0A8 .text:0000D090 ADD R0, R4, #0x410 .text:0000D094 MOV LR, PC .text:0000D098 MOV PC, R3 .text:0000D09C CMP R0, #0 .text:0000D0A0 BNE loc_D0BC .text:0000D0A4 B loc_D0D0 .text:0000D0A8 ; --------------------------------------------------------------------------- .text:0000D0A8 .text:0000D0A8 loc_D0A8 ; CODE XREF: memalign+C8j .text:0000D0A8 LDR R3, [R4,#0x410] .text:0000D0AC CMP R3, #0 .text:0000D0B0 MOVEQ R3, #1 .text:0000D0B4 STREQ R3, [R4,#0x410] .text:0000D0B8 BEQ loc_D0D0 .text:0000D0BC .text:0000D0BC loc_D0BC ; CODE XREF: memalign+BCj .text:0000D0BC ; memalign+DCj .text:0000D0BC MOV R0, R5 .text:0000D0C0 ADD R1, R6, R7 .text:0000D0C4 ADD R1, R1, #0x10 .text:0000D0C8 BL arena_get2 .text:0000D0CC MOV R4, R0 .text:0000D0D0 .text:0000D0D0 loc_D0D0 ; CODE XREF: memalign+E0j .text:0000D0D0 ; memalign+F4j .text:0000D0D0 CMP R4, #0 .text:0000D0D4 MOV R0, #0 .text:0000D0D8 LDMEQDB R11, {R4-R8,R10,R11,SP,PC} .text:0000D0DC MOV R0, R4 .text:0000D0E0 MOV R1, R6 .text:0000D0E4 MOV R2, R7 .text:0000D0E8 BL chunk_align .text:0000D0EC LDR R3, =0 .text:0000D0F0 MOV R5, R0 .text:0000D0F4 CMP R3, #0 .text:0000D0F8 MOV R10, R3 .text:0000D0FC BEQ loc_D110 .text:0000D100 ADD R0, R4, #0x410 .text:0000D104 MOV LR, PC .text:0000D108 MOV PC, R10 .text:0000D10C B loc_D114 .text:0000D110 ; --------------------------------------------------------------------------- .text:0000D110 .text:0000D110 loc_D110 ; CODE XREF: memalign+138j .text:0000D110 STR R10, [R4,#0x410] .text:0000D114 .text:0000D114 loc_D114 ; CODE XREF: memalign+148j .text:0000D114 CMP R5, #0 .text:0000D118 BNE loc_D1E4 .text:0000D11C LDR R3, =main_arena .text:0000D120 CMP R4, R3 .text:0000D124 MOV R8, R3 .text:0000D128 BEQ loc_D184 .text:0000D12C LDR R3, =0 .text:0000D130 CMP R3, #0 .text:0000D134 BEQ loc_D148 .text:0000D138 ADD R0, R8, #0x410 .text:0000D13C MOV LR, PC .text:0000D140 MOV PC, R3 .text:0000D144 B loc_D150 .text:0000D148 ; --------------------------------------------------------------------------- .text:0000D148 .text:0000D148 loc_D148 ; CODE XREF: memalign+170j .text:0000D148 MOV R3, #1 .text:0000D14C STR R3, [R8,#0x410] .text:0000D150 .text:0000D150 loc_D150 ; CODE XREF: memalign+180j .text:0000D150 MOV R0, R8 .text:0000D154 MOV R1, R6 .text:0000D158 MOV R2, R7 .text:0000D15C BL chunk_align .text:0000D160 MOV R5, R0 .text:0000D164 CMP R10, #0 .text:0000D168 BEQ loc_D17C .text:0000D16C ADD R0, R8, #0x410 .text:0000D170 MOV LR, PC .text:0000D174 MOV PC, R10 .text:0000D178 B loc_D1D4 .text:0000D17C ; --------------------------------------------------------------------------- .text:0000D17C .text:0000D17C loc_D17C ; CODE XREF: memalign+1A4j .text:0000D17C STR R10, [R8,#0x410] .text:0000D180 B loc_D1D4 .text:0000D184 ; --------------------------------------------------------------------------- .text:0000D184 .text:0000D184 loc_D184 ; CODE XREF: memalign+164j .text:0000D184 LDR R0, [R4,#0x408] .text:0000D188 MOV R1, R6 .text:0000D18C CMP R0, #0 .text:0000D190 MOVNE R0, R4 .text:0000D194 MOVEQ R0, #0 .text:0000D198 BL arena_get2 .text:0000D19C SUBS R4, R0, #0 .text:0000D1A0 BEQ loc_D1D4 .text:0000D1A4 MOV R0, R4 .text:0000D1A8 MOV R1, R6 .text:0000D1AC MOV R2, R7 .text:0000D1B0 BL chunk_align .text:0000D1B4 MOV R5, R0 .text:0000D1B8 CMP R10, #0 .text:0000D1BC BEQ loc_D1D0 .text:0000D1C0 ADD R0, R4, #0x410 .text:0000D1C4 MOV LR, PC .text:0000D1C8 MOV PC, R10 .text:0000D1CC B loc_D1D4 .text:0000D1D0 ; --------------------------------------------------------------------------- .text:0000D1D0 .text:0000D1D0 loc_D1D0 ; CODE XREF: memalign+1F8j .text:0000D1D0 STR R10, [R4,#0x410] .text:0000D1D4 .text:0000D1D4 loc_D1D4 ; CODE XREF: memalign+1B4j .text:0000D1D4 ; memalign+1BCj ... .text:0000D1D4 CMP R5, #0 .text:0000D1D8 BNE loc_D1E4 .text:0000D1DC .text:0000D1DC loc_D1DC ; CODE XREF: memalign+78j .text:0000D1DC MOV R0, #0 .text:0000D1E0 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0000D1E4 ; --------------------------------------------------------------------------- .text:0000D1E4 .text:0000D1E4 loc_D1E4 ; CODE XREF: memalign+154j .text:0000D1E4 ; memalign+214j .text:0000D1E4 ADD R0, R5, #8 .text:0000D1E8 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0000D1E8 ; End of function memalign .text:0000D1E8 .text:0000D1E8 ; --------------------------------------------------------------------------- .text:0000D1EC off_D1EC DCD __memalign_hook ; DATA XREF: memalign+8r .text:0000D1F0 off_D1F0 DCD __libc_internal_tsd_get ; DATA XREF: memalign+88r .text:0000D1F4 off_D1F4 DCD __libc_tsd_MALLOC_data ; DATA XREF: memalign:loc_D074r .text:0000D1F8 off_D1F8 DCD 0 ; DATA XREF: memalign+C0r .text:0000D1FC off_D1FC DCD 0 ; DATA XREF: memalign+128r .text:0000D200 off_D200 DCD main_arena ; DATA XREF: memalign+158r .text:0000D204 off_D204 DCD 0 ; DATA XREF: memalign+168r .text:0000D208 .text:0000D208 ; =============== S U B R O U T I N E ======================================= .text:0000D208 .text:0000D208 ; Attributes: bp-based frame .text:0000D208 .text:0000D208 chunk_align ; CODE XREF: memalign+124p .text:0000D208 ; memalign+198p ... .text:0000D208 MOV R12, SP .text:0000D20C STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:0000D210 SUB R11, R12, #4 .text:0000D214 MOV R8, R0 .text:0000D218 MOV R7, R1 .text:0000D21C MOV R5, R2 .text:0000D220 ADD R1, R7, R5 .text:0000D224 ADD R1, R1, #0x10 .text:0000D228 BL chunk_alloc .text:0000D22C SUBS R4, R0, #0 .text:0000D230 BEQ loc_D258 .text:0000D234 ADD R6, R4, #8 .text:0000D238 MOV R0, R6 .text:0000D23C MOV R1, R5 .text:0000D240 BL __umodsi3 .text:0000D244 CMP R0, #0 .text:0000D248 BNE loc_D260 .text:0000D24C LDR R3, [R4,#4] .text:0000D250 TST R3, #2 .text:0000D254 BEQ loc_D2F8 .text:0000D258 .text:0000D258 loc_D258 ; CODE XREF: chunk_align+28j .text:0000D258 MOV R0, R4 .text:0000D25C LDMDB R11, {R4-R8,R11,SP,PC} .text:0000D260 ; --------------------------------------------------------------------------- .text:0000D260 .text:0000D260 loc_D260 ; CODE XREF: chunk_align+40j .text:0000D260 ADD R3, R6, R5 .text:0000D264 SUB R3, R3, #1 .text:0000D268 RSB R2, R5, #0 .text:0000D26C AND R3, R3, R2 .text:0000D270 SUB R3, R3, #8 .text:0000D274 RSB R0, R4, R3 .text:0000D278 ADD R1, R3, R5 .text:0000D27C CMP R0, #0xF .text:0000D280 MOVGT R5, R3 .text:0000D284 MOVLE R5, R1 .text:0000D288 LDR R2, [R4,#4] .text:0000D28C RSB LR, R4, R5 .text:0000D290 TST R2, #2 .text:0000D294 BIC R2, R2, #3 .text:0000D298 RSB R12, LR, R2 .text:0000D29C BEQ loc_D2BC .text:0000D2A0 LDR R2, [R4] .text:0000D2A4 ORR R3, R12, #2 .text:0000D2A8 STR R3, [R5,#4] .text:0000D2AC MOV R0, R5 .text:0000D2B0 ADD R2, R2, LR .text:0000D2B4 STR R2, [R5] .text:0000D2B8 LDMDB R11, {R4-R8,R11,SP,PC} .text:0000D2BC ; --------------------------------------------------------------------------- .text:0000D2BC .text:0000D2BC loc_D2BC ; CODE XREF: chunk_align+94j .text:0000D2BC ORR R3, R12, #1 .text:0000D2C0 STR R3, [R5,#4] .text:0000D2C4 MOV R0, #4 .text:0000D2C8 ADD R1, R5, R12 .text:0000D2CC LDR R3, [R1,R0] .text:0000D2D0 ORR R3, R3, #1 .text:0000D2D4 STR R3, [R1,R0] .text:0000D2D8 LDR R2, [R4,#4] .text:0000D2DC AND R2, R2, #1 .text:0000D2E0 ORR R2, R2, LR .text:0000D2E4 STR R2, [R4,#4] .text:0000D2E8 MOV R0, R8 .text:0000D2EC MOV R1, R4 .text:0000D2F0 MOV R4, R5 .text:0000D2F4 BL chunk_free .text:0000D2F8 .text:0000D2F8 loc_D2F8 ; CODE XREF: chunk_align+4Cj .text:0000D2F8 LDR R3, [R4,#4] .text:0000D2FC BIC R3, R3, #3 .text:0000D300 RSB R2, R7, R3 .text:0000D304 CMP R2, #0xF .text:0000D308 BLE loc_D330 .text:0000D30C ADD R1, R4, R7 .text:0000D310 ORR R2, R2, #1 .text:0000D314 STR R2, [R1,#4] .text:0000D318 LDR R3, [R4,#4] .text:0000D31C AND R3, R3, #1 .text:0000D320 ORR R3, R3, R7 .text:0000D324 STR R3, [R4,#4] .text:0000D328 MOV R0, R8 .text:0000D32C BL chunk_free .text:0000D330 .text:0000D330 loc_D330 ; CODE XREF: chunk_align+100j .text:0000D330 MOV R0, R4 .text:0000D334 LDMDB R11, {R4-R8,R11,SP,PC} .text:0000D334 ; End of function chunk_align .text:0000D334 .text:0000D338 .text:0000D338 ; =============== S U B R O U T I N E ======================================= .text:0000D338 .text:0000D338 ; Attributes: bp-based frame .text:0000D338 .text:0000D338 WEAK valloc .text:0000D338 valloc .text:0000D338 MOV R12, SP ; Alternative name is '__valloc' .text:0000D33C STMFD SP!, {R4,R11,R12,LR,PC} .text:0000D340 LDR R3, =__libc_malloc_initialized .text:0000D344 SUB R11, R12, #4 .text:0000D348 LDR R2, [R3] .text:0000D34C MOV R4, R0 .text:0000D350 CMP R2, #0 .text:0000D354 BGE loc_D35C .text:0000D358 BL ptmalloc_init .text:0000D35C .text:0000D35C loc_D35C ; CODE XREF: valloc+1Cj .text:0000D35C LDR R3, =__libc_pagesize .text:0000D360 LDR R0, [R3] .text:0000D364 MOV R1, R4 .text:0000D368 BL memalign .text:0000D36C LDMDB R11, {R4,R11,SP,PC} .text:0000D36C ; End of function valloc .text:0000D36C .text:0000D36C ; --------------------------------------------------------------------------- .text:0000D370 off_D370 DCD __libc_malloc_initialized ; DATA XREF: valloc+8r .text:0000D374 off_D374 DCD __libc_pagesize ; DATA XREF: valloc:loc_D35Cr .text:0000D378 .text:0000D378 ; =============== S U B R O U T I N E ======================================= .text:0000D378 .text:0000D378 ; Attributes: bp-based frame .text:0000D378 .text:0000D378 WEAK pvalloc .text:0000D378 pvalloc .text:0000D378 MOV R12, SP ; Alternative name is '__libc_pvalloc' .text:0000D37C STMFD SP!, {R4,R11,R12,LR,PC} .text:0000D380 LDR R3, =__libc_malloc_initialized .text:0000D384 SUB R11, R12, #4 .text:0000D388 LDR R2, [R3] .text:0000D38C MOV R4, R0 .text:0000D390 CMP R2, #0 .text:0000D394 BGE loc_D39C .text:0000D398 BL ptmalloc_init .text:0000D39C .text:0000D39C loc_D39C ; CODE XREF: pvalloc+1Cj .text:0000D39C LDR R3, =__libc_pagesize .text:0000D3A0 LDR R1, [R3] .text:0000D3A4 MOV R0, R1 .text:0000D3A8 ADD R3, R4, R1 .text:0000D3AC SUB R3, R3, #1 .text:0000D3B0 RSB R1, R1, #0 .text:0000D3B4 AND R1, R3, R1 .text:0000D3B8 BL memalign .text:0000D3BC LDMDB R11, {R4,R11,SP,PC} .text:0000D3BC ; End of function pvalloc .text:0000D3BC .text:0000D3BC ; --------------------------------------------------------------------------- .text:0000D3C0 off_D3C0 DCD __libc_malloc_initialized ; DATA XREF: pvalloc+8r .text:0000D3C4 off_D3C4 DCD __libc_pagesize ; DATA XREF: pvalloc:loc_D39Cr .text:0000D3C8 .text:0000D3C8 ; =============== S U B R O U T I N E ======================================= .text:0000D3C8 .text:0000D3C8 ; Attributes: bp-based frame .text:0000D3C8 .text:0000D3C8 WEAK calloc .text:0000D3C8 calloc ; CODE XREF: _dl_new_object+34p .text:0000D3C8 ; _nl_find_msg+374p ... .text:0000D3C8 .text:0000D3C8 var_4 = -4 .text:0000D3C8 .text:0000D3C8 MOV R12, SP ; Alternative name is '__libc_calloc' .text:0000D3CC STMFD SP!, {R4-R12,LR,PC} .text:0000D3D0 LDR R3, =__malloc_hook .text:0000D3D4 LDR R3, [R3] .text:0000D3D8 SUB R11, R12, #4 .text:0000D3DC CMP R3, #0 .text:0000D3E0 BEQ loc_D428 .text:0000D3E4 MUL R6, R1, R0 .text:0000D3E8 LDR R1, [R11,#var_4] .text:0000D3EC MOV R0, R6 .text:0000D3F0 MOV LR, PC .text:0000D3F4 MOV PC, R3 .text:0000D3F8 SUBS R4, R0, #0 .text:0000D3FC BNE loc_D408 .text:0000D400 .text:0000D400 loc_D400 ; CODE XREF: calloc+44j .text:0000D400 ; calloc+5Cj ... .text:0000D400 MOV R0, R4 .text:0000D404 LDMDB R11, {R4-R11,SP,PC} .text:0000D408 ; --------------------------------------------------------------------------- .text:0000D408 .text:0000D408 loc_D408 ; CODE XREF: calloc+34j .text:0000D408 CMP R6, #0 .text:0000D40C BEQ loc_D400 .text:0000D410 MOV R3, #0 .text:0000D414 .text:0000D414 loc_D414 ; CODE XREF: calloc+58j .text:0000D414 SUB R6, R6, #1 .text:0000D418 CMP R6, #0 .text:0000D41C STRB R3, [R4,R6] .text:0000D420 BNE loc_D414 .text:0000D424 B loc_D400 .text:0000D428 ; --------------------------------------------------------------------------- .text:0000D428 .text:0000D428 loc_D428 ; CODE XREF: calloc+18j .text:0000D428 MUL R0, R1, R0 .text:0000D42C ADD R6, R0, #0xB .text:0000D430 CMP R6, #0 .text:0000D434 BLE loc_D440 .text:0000D438 CMP R6, R0 .text:0000D43C BCS loc_D450 .text:0000D440 .text:0000D440 loc_D440 ; CODE XREF: calloc+6Cj .text:0000D440 BL __errno_location .text:0000D444 MOV R3, #0xC .text:0000D448 STR R3, [R0] .text:0000D44C B loc_D4E4 .text:0000D450 ; --------------------------------------------------------------------------- .text:0000D450 .text:0000D450 loc_D450 ; CODE XREF: calloc+74j .text:0000D450 CMP R6, #0x16 .text:0000D454 BIC R6, R6, #7 .text:0000D458 MOVLS R6, #0x10 .text:0000D45C LDR R3, =__libc_internal_tsd_get .text:0000D460 LDR R3, [R3] .text:0000D464 MOV R5, #0 .text:0000D468 CMP R3, R5 .text:0000D46C BEQ loc_D484 .text:0000D470 MOV R0, R5 .text:0000D474 MOV LR, PC .text:0000D478 MOV PC, R3 .text:0000D47C MOV R5, R0 .text:0000D480 B loc_D48C .text:0000D484 ; --------------------------------------------------------------------------- .text:0000D484 .text:0000D484 loc_D484 ; CODE XREF: calloc+A4j .text:0000D484 LDR R3, =__libc_tsd_MALLOC_data .text:0000D488 LDR R5, [R3] .text:0000D48C .text:0000D48C loc_D48C ; CODE XREF: calloc+B8j .text:0000D48C SUBS R4, R5, #0 .text:0000D490 BEQ loc_D4CC .text:0000D494 LDR R3, =0 .text:0000D498 CMP R3, #0 .text:0000D49C BEQ loc_D4B8 .text:0000D4A0 ADD R0, R4, #0x410 .text:0000D4A4 MOV LR, PC .text:0000D4A8 MOV PC, R3 .text:0000D4AC CMP R0, #0 .text:0000D4B0 BNE loc_D4CC .text:0000D4B4 B loc_D4DC .text:0000D4B8 ; --------------------------------------------------------------------------- .text:0000D4B8 .text:0000D4B8 loc_D4B8 ; CODE XREF: calloc+D4j .text:0000D4B8 LDR R3, [R4,#0x410] .text:0000D4BC CMP R3, #0 .text:0000D4C0 MOVEQ R3, #1 .text:0000D4C4 STREQ R3, [R4,#0x410] .text:0000D4C8 BEQ loc_D4DC .text:0000D4CC .text:0000D4CC loc_D4CC ; CODE XREF: calloc+C8j .text:0000D4CC ; calloc+E8j .text:0000D4CC MOV R0, R5 .text:0000D4D0 MOV R1, R6 .text:0000D4D4 BL arena_get2 .text:0000D4D8 MOV R4, R0 .text:0000D4DC .text:0000D4DC loc_D4DC ; CODE XREF: calloc+ECj .text:0000D4DC ; calloc+100j .text:0000D4DC CMP R4, #0 .text:0000D4E0 BNE loc_D4EC .text:0000D4E4 .text:0000D4E4 loc_D4E4 ; CODE XREF: calloc+84j .text:0000D4E4 ; calloc+268j .text:0000D4E4 MOV R0, #0 .text:0000D4E8 LDMDB R11, {R4-R11,SP,PC} .text:0000D4EC ; --------------------------------------------------------------------------- .text:0000D4EC .text:0000D4EC loc_D4EC ; CODE XREF: calloc+118j .text:0000D4EC LDR R9, [R4,#8] .text:0000D4F0 MOV R0, R4 .text:0000D4F4 LDR R3, [R9,#4] .text:0000D4F8 MOV R1, R6 .text:0000D4FC BIC R10, R3, #3 .text:0000D500 BL chunk_alloc .text:0000D504 LDR R3, =0 .text:0000D508 MOV R5, R0 .text:0000D50C CMP R3, #0 .text:0000D510 MOV R8, R3 .text:0000D514 BEQ loc_D528 .text:0000D518 ADD R0, R4, #0x410 .text:0000D51C MOV LR, PC .text:0000D520 MOV PC, R8 .text:0000D524 B loc_D52C .text:0000D528 ; --------------------------------------------------------------------------- .text:0000D528 .text:0000D528 loc_D528 ; CODE XREF: calloc+14Cj .text:0000D528 STR R8, [R4,#0x410] .text:0000D52C .text:0000D52C loc_D52C ; CODE XREF: calloc+15Cj .text:0000D52C CMP R5, #0 .text:0000D530 BNE loc_D634 .text:0000D534 LDR R3, =main_arena .text:0000D538 CMP R4, R3 .text:0000D53C MOV R7, R3 .text:0000D540 BEQ loc_D598 .text:0000D544 LDR R3, =0 .text:0000D548 CMP R3, #0 .text:0000D54C BEQ loc_D560 .text:0000D550 ADD R0, R7, #0x410 .text:0000D554 MOV LR, PC .text:0000D558 MOV PC, R3 .text:0000D55C B loc_D568 .text:0000D560 ; --------------------------------------------------------------------------- .text:0000D560 .text:0000D560 loc_D560 ; CODE XREF: calloc+184j .text:0000D560 MOV R3, #1 .text:0000D564 STR R3, [R7,#0x410] .text:0000D568 .text:0000D568 loc_D568 ; CODE XREF: calloc+194j .text:0000D568 MOV R0, R7 .text:0000D56C MOV R1, R6 .text:0000D570 BL chunk_alloc .text:0000D574 MOV R5, R0 .text:0000D578 CMP R8, #0 .text:0000D57C BEQ loc_D590 .text:0000D580 ADD R0, R7, #0x410 .text:0000D584 MOV LR, PC .text:0000D588 MOV PC, R8 .text:0000D58C B loc_D62C .text:0000D590 ; --------------------------------------------------------------------------- .text:0000D590 .text:0000D590 loc_D590 ; CODE XREF: calloc+1B4j .text:0000D590 STR R8, [R7,#0x410] .text:0000D594 B loc_D62C .text:0000D598 ; --------------------------------------------------------------------------- .text:0000D598 .text:0000D598 loc_D598 ; CODE XREF: calloc+178j .text:0000D598 LDR R3, =0 .text:0000D59C CMP R3, #0 .text:0000D5A0 BEQ loc_D5B4 .text:0000D5A4 ADD R0, R4, #0x410 .text:0000D5A8 MOV LR, PC .text:0000D5AC MOV PC, R3 .text:0000D5B0 B loc_D5BC .text:0000D5B4 ; --------------------------------------------------------------------------- .text:0000D5B4 .text:0000D5B4 loc_D5B4 ; CODE XREF: calloc+1D8j .text:0000D5B4 MOV R3, #1 .text:0000D5B8 STR R3, [R4,#0x410] .text:0000D5BC .text:0000D5BC loc_D5BC ; CODE XREF: calloc+1E8j .text:0000D5BC LDR R0, [R4,#0x408] .text:0000D5C0 MOV R1, R6 .text:0000D5C4 CMP R0, #0 .text:0000D5C8 MOVNE R0, R4 .text:0000D5CC MOVEQ R0, #0 .text:0000D5D0 BL arena_get2 .text:0000D5D4 MOV R4, R0 .text:0000D5D8 CMP R8, #0 .text:0000D5DC BEQ loc_D5F0 .text:0000D5E0 LDR R0, =(main_arena+0x410) .text:0000D5E4 MOV LR, PC .text:0000D5E8 MOV PC, R8 .text:0000D5EC B loc_D5F8 .text:0000D5F0 ; --------------------------------------------------------------------------- .text:0000D5F0 .text:0000D5F0 loc_D5F0 ; CODE XREF: calloc+214j .text:0000D5F0 LDR R3, =(main_arena+0x410) .text:0000D5F4 STR R8, [R3] .text:0000D5F8 .text:0000D5F8 loc_D5F8 ; CODE XREF: calloc+224j .text:0000D5F8 CMP R4, #0 .text:0000D5FC BEQ loc_D62C .text:0000D600 MOV R0, R4 .text:0000D604 MOV R1, R6 .text:0000D608 BL chunk_alloc .text:0000D60C MOV R5, R0 .text:0000D610 CMP R8, #0 .text:0000D614 BEQ loc_D628 .text:0000D618 ADD R0, R4, #0x410 .text:0000D61C MOV LR, PC .text:0000D620 MOV PC, R8 .text:0000D624 B loc_D62C .text:0000D628 ; --------------------------------------------------------------------------- .text:0000D628 .text:0000D628 loc_D628 ; CODE XREF: calloc+24Cj .text:0000D628 STR R8, [R4,#0x410] .text:0000D62C .text:0000D62C loc_D62C ; CODE XREF: calloc+1C4j .text:0000D62C ; calloc+1CCj ... .text:0000D62C CMP R5, #0 .text:0000D630 BEQ loc_D4E4 .text:0000D634 .text:0000D634 loc_D634 ; CODE XREF: calloc+168j .text:0000D634 LDR R2, [R5,#4] .text:0000D638 ADD R4, R5, #8 .text:0000D63C ANDS R1, R2, #2 .text:0000D640 BNE loc_D400 .text:0000D644 BIC R2, R2, #3 .text:0000D648 CMP R2, R10 .text:0000D64C MOVLS R3, #0 .text:0000D650 MOVHI R3, #1 .text:0000D654 CMP R5, R9 .text:0000D658 MOVNE R3, #0 .text:0000D65C CMP R3, #0 .text:0000D660 MOVNE R2, R10 .text:0000D664 SUB R2, R2, #4 .text:0000D668 CMP R2, #0x24 .text:0000D66C BHI loc_D6C0 .text:0000D670 MOV R0, R4 .text:0000D674 CMP R2, #0x13 .text:0000D678 BLS loc_D6AC .text:0000D67C STR R1, [R5,#8] .text:0000D680 ADD R0, R5, #0x10 .text:0000D684 CMP R2, #0x1B .text:0000D688 STR R1, [R5,#0xC] .text:0000D68C BLS loc_D6AC .text:0000D690 STR R1, [R5,#0x10] .text:0000D694 ADD R0, R5, #0x18 .text:0000D698 CMP R2, #0x23 .text:0000D69C STR R1, [R5,#0x14] .text:0000D6A0 STRHI R1, [R5,#0x18] .text:0000D6A4 ADDHI R0, R5, #0x20 .text:0000D6A8 STRHI R1, [R5,#0x1C] .text:0000D6AC .text:0000D6AC loc_D6AC ; CODE XREF: calloc+2B0j .text:0000D6AC ; calloc+2C4j .text:0000D6AC MOV R3, #0 .text:0000D6B0 STR R3, [R0],#4 .text:0000D6B4 STR R3, [R0],#4 .text:0000D6B8 STR R3, [R0] .text:0000D6BC B loc_D6C8 .text:0000D6C0 ; --------------------------------------------------------------------------- .text:0000D6C0 .text:0000D6C0 loc_D6C0 ; CODE XREF: calloc+2A4j .text:0000D6C0 MOV R0, R4 .text:0000D6C4 BL memset .text:0000D6C8 .text:0000D6C8 loc_D6C8 ; CODE XREF: calloc+2F4j .text:0000D6C8 MOV R0, R4 .text:0000D6CC LDMDB R11, {R4-R11,SP,PC} .text:0000D6CC ; End of function calloc .text:0000D6CC .text:0000D6CC ; --------------------------------------------------------------------------- .text:0000D6D0 off_D6D0 DCD __malloc_hook ; DATA XREF: calloc+8r .text:0000D6D4 off_D6D4 DCD __libc_internal_tsd_get ; DATA XREF: calloc+94r .text:0000D6D8 off_D6D8 DCD __libc_tsd_MALLOC_data ; DATA XREF: calloc:loc_D484r .text:0000D6DC off_D6DC DCD 0 ; DATA XREF: calloc+CCr .text:0000D6E0 off_D6E0 DCD 0 ; DATA XREF: calloc+13Cr .text:0000D6E4 off_D6E4 DCD main_arena ; DATA XREF: calloc+16Cr .text:0000D6E8 off_D6E8 DCD 0 ; DATA XREF: calloc+17Cr .text:0000D6E8 ; calloc:loc_D598r .text:0000D6EC off_D6EC DCD main_arena+0x410 ; DATA XREF: calloc+218r .text:0000D6EC ; calloc:loc_D5F0r .text:0000D6F0 .text:0000D6F0 ; =============== S U B R O U T I N E ======================================= .text:0000D6F0 .text:0000D6F0 ; Attributes: bp-based frame .text:0000D6F0 .text:0000D6F0 WEAK malloc_trim .text:0000D6F0 malloc_trim .text:0000D6F0 MOV R12, SP .text:0000D6F4 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0000D6F8 SUB R11, R12, #4 .text:0000D6FC LDR R2, =0 .text:0000D700 MOV R4, R0 .text:0000D704 CMP R2, #0 .text:0000D708 BEQ loc_D724 .text:0000D70C LDR R3, =(main_arena+0x410) .text:0000D710 MOV R0, R3 .text:0000D714 MOV R5, R3 .text:0000D718 MOV LR, PC .text:0000D71C MOV PC, R2 .text:0000D720 B loc_D734 .text:0000D724 ; --------------------------------------------------------------------------- .text:0000D724 .text:0000D724 loc_D724 ; CODE XREF: malloc_trim+18j .text:0000D724 LDR R2, =(main_arena+0x410) .text:0000D728 MOV R3, #1 .text:0000D72C MOV R5, R2 .text:0000D730 STR R3, [R2] .text:0000D734 .text:0000D734 loc_D734 ; CODE XREF: malloc_trim+30j .text:0000D734 MOV R0, R4 .text:0000D738 BL main_trim .text:0000D73C LDR R3, =0 .text:0000D740 MOV R4, R0 .text:0000D744 CMP R3, #0 .text:0000D748 BEQ loc_D75C .text:0000D74C MOV R0, R5 .text:0000D750 MOV LR, PC .text:0000D754 MOV PC, R3 .text:0000D758 B loc_D760 .text:0000D75C ; --------------------------------------------------------------------------- .text:0000D75C .text:0000D75C loc_D75C ; CODE XREF: malloc_trim+58j .text:0000D75C STR R3, [R5] .text:0000D760 .text:0000D760 loc_D760 ; CODE XREF: malloc_trim+68j .text:0000D760 MOV R0, R4 .text:0000D764 LDMDB R11, {R4,R5,R11,SP,PC} .text:0000D764 ; End of function malloc_trim .text:0000D764 .text:0000D764 ; --------------------------------------------------------------------------- .text:0000D768 off_D768 DCD 0 ; DATA XREF: malloc_trim+Cr .text:0000D76C off_D76C DCD main_arena+0x410 ; DATA XREF: malloc_trim+1Cr .text:0000D76C ; malloc_trim:loc_D724r .text:0000D770 off_D770 DCD 0 ; DATA XREF: malloc_trim+4Cr .text:0000D774 .text:0000D774 ; =============== S U B R O U T I N E ======================================= .text:0000D774 .text:0000D774 ; Attributes: bp-based frame .text:0000D774 .text:0000D774 main_trim ; CODE XREF: chunk_free+8Cp .text:0000D774 ; malloc_trim+48p .text:0000D774 MOV R12, SP .text:0000D778 STMFD SP!, {R4-R8,R10-R12,LR,PC} .text:0000D77C LDR R10, =main_arena .text:0000D780 LDR R2, =__libc_pagesize .text:0000D784 LDR R7, [R10,#(main_arena+8 - 0x6B1E4)] .text:0000D788 LDR R4, [R2] .text:0000D78C SUB R11, R12, #4 .text:0000D790 LDR R3, [R7,#4] .text:0000D794 MOV R1, R4 .text:0000D798 BIC R6, R3, #3 .text:0000D79C RSB R3, R0, R6 .text:0000D7A0 SUB R0, R4, #0x11 .text:0000D7A4 ADD R0, R3, R0 .text:0000D7A8 BL __udivsi3 .text:0000D7AC SUB R0, R0, #1 .text:0000D7B0 MUL R5, R4, R0 .text:0000D7B4 CMP R5, R4 .text:0000D7B8 BGE loc_D7C4 .text:0000D7BC .text:0000D7BC loc_D7BC ; CODE XREF: main_trim+B4j .text:0000D7BC ; main_trim+D0j .text:0000D7BC MOV R0, #0 .text:0000D7C0 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0000D7C4 ; --------------------------------------------------------------------------- .text:0000D7C4 .text:0000D7C4 loc_D7C4 ; CODE XREF: main_trim+44j .text:0000D7C4 LDR R8, =__morecore .text:0000D7C8 MOV R0, #0 .text:0000D7CC MOV LR, PC .text:0000D7D0 LDR PC, [R8] .text:0000D7D4 ADD R3, R7, R6 .text:0000D7D8 CMP R0, R3 .text:0000D7DC MOV R0, #0 .text:0000D7E0 LDMNEDB R11, {R4-R8,R10,R11,SP,PC} .text:0000D7E4 RSB R0, R5, #0 .text:0000D7E8 MOV LR, PC .text:0000D7EC LDR PC, [R8] .text:0000D7F0 LDR R3, =__after_morecore_hook .text:0000D7F4 LDR R3, [R3] .text:0000D7F8 MOV R4, R0 .text:0000D7FC CMP R3, #0 .text:0000D800 BEQ loc_D80C .text:0000D804 MOV LR, PC .text:0000D808 MOV PC, R3 .text:0000D80C .text:0000D80C loc_D80C ; CODE XREF: main_trim+8Cj .text:0000D80C CMP R4, #0 .text:0000D810 BNE loc_D848 .text:0000D814 MOV R0, R4 .text:0000D818 MOV LR, PC .text:0000D81C LDR PC, [R8] .text:0000D820 RSB R6, R7, R0 .text:0000D824 CMP R6, #0xF .text:0000D828 BLE loc_D7BC .text:0000D82C LDR R3, =sbrk_base .text:0000D830 LDR R2, [R3] .text:0000D834 RSB R2, R2, R0 .text:0000D838 STR R2, [R10,#0x40C] .text:0000D83C ORR R3, R6, #1 .text:0000D840 STR R3, [R7,#4] .text:0000D844 B loc_D7BC .text:0000D848 ; --------------------------------------------------------------------------- .text:0000D848 .text:0000D848 loc_D848 ; CODE XREF: main_trim+9Cj .text:0000D848 LDR R2, [R10,#0x40C] .text:0000D84C MOV R0, #1 .text:0000D850 RSB R2, R5, R2 .text:0000D854 STR R2, [R10,#0x40C] .text:0000D858 RSB R3, R5, R6 .text:0000D85C ORR R3, R3, R0 .text:0000D860 STR R3, [R7,#4] .text:0000D864 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0000D864 ; End of function main_trim .text:0000D864 .text:0000D864 ; --------------------------------------------------------------------------- .text:0000D868 off_D868 DCD main_arena ; DATA XREF: main_trim+8r .text:0000D86C off_D86C DCD __libc_pagesize ; DATA XREF: main_trim+Cr .text:0000D870 off_D870 DCD __morecore ; DATA XREF: main_trim:loc_D7C4r .text:0000D874 off_D874 DCD __after_morecore_hook ; DATA XREF: main_trim+7Cr .text:0000D878 off_D878 DCD sbrk_base ; DATA XREF: main_trim+B8r .text:0000D87C .text:0000D87C ; =============== S U B R O U T I N E ======================================= .text:0000D87C .text:0000D87C ; Attributes: bp-based frame .text:0000D87C .text:0000D87C heap_trim ; CODE XREF: chunk_free+C0p .text:0000D87C ; chunk_free+2B4p .text:0000D87C .text:0000D87C var_34 = -0x34 .text:0000D87C var_30 = -0x30 .text:0000D87C var_2C = -0x2C .text:0000D87C .text:0000D87C MOV R12, SP .text:0000D880 STMFD SP!, {R4-R12,LR,PC} .text:0000D884 MOV R7, R0 .text:0000D888 LDR R3, =__libc_pagesize .text:0000D88C SUB SP, SP, #0xC .text:0000D890 LDR R10, [R7] .text:0000D894 LDR R9, [R3] .text:0000D898 LDR R8, [R10,#8] .text:0000D89C SUB R11, R12, #4 .text:0000D8A0 STR R1, [R11,#var_2C] .text:0000D8A4 LDR R12, =arena_mem .text:0000D8A8 ADD R3, R9, #0x10 .text:0000D8AC ADD R3, R1, R3 .text:0000D8B0 STR R3, [R11,#var_30] .text:0000D8B4 B loc_D924 .text:0000D8B8 ; --------------------------------------------------------------------------- .text:0000D8B8 .text:0000D8B8 loc_D8B8 ; CODE XREF: heap_trim+F4j .text:0000D8B8 LDR R3, [R10,#0x40C] .text:0000D8BC LDR R2, [R7,#8] .text:0000D8C0 RSB R3, R2, R3 .text:0000D8C4 STR R3, [R10,#0x40C] .text:0000D8C8 LDR R2, [R12] .text:0000D8CC LDR R3, [R7,#8] .text:0000D8D0 RSB R2, R3, R2 .text:0000D8D4 STR R2, [R12] .text:0000D8D8 STR R12, [R11,#var_34] .text:0000D8DC MOV R0, R7 .text:0000D8E0 MOV R1, #0x100000 .text:0000D8E4 BL munmap .text:0000D8E8 LDR R3, [R4,#4] .text:0000D8EC MOV R7, R5 .text:0000D8F0 LDR R12, [R11,#var_34] .text:0000D8F4 TST R3, #1 .text:0000D8F8 BNE loc_D914 .text:0000D8FC LDR R3, [R4] .text:0000D900 RSB R4, R3, R4 .text:0000D904 LDR R2, [R4,#0xC] .text:0000D908 LDR R3, [R4,#8] .text:0000D90C STR R2, [R3,#0xC] .text:0000D910 STR R3, [R2,#8] .text:0000D914 .text:0000D914 loc_D914 ; CODE XREF: heap_trim+7Cj .text:0000D914 MOV R8, R4 .text:0000D918 STR R8, [R10,#8] .text:0000D91C ORR R3, R6, #1 .text:0000D920 STR R3, [R8,#4] .text:0000D924 .text:0000D924 loc_D924 ; CODE XREF: heap_trim+38j .text:0000D924 ADD R3, R7, #0x10 .text:0000D928 CMP R8, R3 .text:0000D92C BNE loc_D974 .text:0000D930 LDR R5, [R7,#4] .text:0000D934 LDR R0, [R5,#8] .text:0000D938 SUB R3, R0, #8 .text:0000D93C LDR R2, [R5,R3] .text:0000D940 ADD R4, R5, R3 .text:0000D944 RSB R4, R2, R4 .text:0000D948 LDR R1, [R4,#4] .text:0000D94C BIC R3, R1, #3 .text:0000D950 ADD R6, R3, #8 .text:0000D954 TST R1, #1 .text:0000D958 LDREQ R3, [R4] .text:0000D95C ADDEQ R6, R6, R3 .text:0000D960 ADD R3, R6, #0x100000 .text:0000D964 LDR R2, [R11,#var_30] .text:0000D968 RSB R3, R0, R3 .text:0000D96C CMP R3, R2 .text:0000D970 BCS loc_D8B8 .text:0000D974 .text:0000D974 loc_D974 ; CODE XREF: heap_trim+B0j .text:0000D974 LDR R3, [R8,#4] .text:0000D978 MOV R1, R9 .text:0000D97C BIC R5, R3, #3 .text:0000D980 LDR R3, [R11,#var_2C] .text:0000D984 SUB R0, R9, #0x11 .text:0000D988 RSB R2, R3, R5 .text:0000D98C ADD R0, R2, R0 .text:0000D990 BL __udivsi3 .text:0000D994 SUB R0, R0, #1 .text:0000D998 MUL R4, R9, R0 .text:0000D99C CMP R4, R9 .text:0000D9A0 MOV R0, #0 .text:0000D9A4 BLT locret_D9F8 .text:0000D9A8 MOV R0, R7 .text:0000D9AC RSB R1, R4, #0 .text:0000D9B0 BL grow_heap .text:0000D9B4 CMP R0, #0 .text:0000D9B8 BNE loc_D9F4 .text:0000D9BC LDR R3, [R10,#0x40C] .text:0000D9C0 RSB R3, R4, R3 .text:0000D9C4 STR R3, [R10,#0x40C] .text:0000D9C8 LDR R1, =arena_mem .text:0000D9CC LDR R2, [R1] .text:0000D9D0 MOV R0, #1 .text:0000D9D4 RSB R2, R4, R2 .text:0000D9D8 STR R2, [R1] .text:0000D9DC RSB R3, R4, R5 .text:0000D9E0 ORR R3, R3, R0 .text:0000D9E4 STR R3, [R8,#4] .text:0000D9E8 B locret_D9F8 .text:0000D9E8 ; --------------------------------------------------------------------------- .text:0000D9EC off_D9EC DCD __libc_pagesize ; DATA XREF: heap_trim+Cr .text:0000D9F0 off_D9F0 DCD arena_mem ; DATA XREF: heap_trim+28r .text:0000D9F0 ; heap_trim+14Cr .text:0000D9F4 ; --------------------------------------------------------------------------- .text:0000D9F4 .text:0000D9F4 loc_D9F4 ; CODE XREF: heap_trim+13Cj .text:0000D9F4 MOV R0, #0 .text:0000D9F8 .text:0000D9F8 locret_D9F8 ; CODE XREF: heap_trim+128j .text:0000D9F8 ; heap_trim+16Cj .text:0000D9F8 LDMDB R11, {R4-R11,SP,PC} .text:0000D9F8 ; End of function heap_trim .text:0000D9F8 .text:0000D9FC .text:0000D9FC ; =============== S U B R O U T I N E ======================================= .text:0000D9FC .text:0000D9FC ; Attributes: bp-based frame .text:0000D9FC .text:0000D9FC WEAK malloc_usable_size .text:0000D9FC malloc_usable_size .text:0000D9FC MOV R12, SP ; Alternative name is '__malloc_usable_size' .text:0000DA00 STMFD SP!, {R11,R12,LR,PC} .text:0000DA04 SUB R11, R12, #4 .text:0000DA08 CMP R0, #0 .text:0000DA0C LDMEQDB R11, {R11,SP,PC} .text:0000DA10 SUB R2, R0, #8 .text:0000DA14 LDR R0, [R2,#4] .text:0000DA18 TST R0, #2 .text:0000DA1C BNE loc_DA40 .text:0000DA20 BIC R3, R0, #1 .text:0000DA24 ADD R3, R2, R3 .text:0000DA28 LDR R2, [R3,#4] .text:0000DA2C ANDS R2, R2, #1 .text:0000DA30 MOVEQ R0, R2 .text:0000DA34 BICNE R0, R0, #3 .text:0000DA38 SUBNE R0, R0, #4 .text:0000DA3C LDMDB R11, {R11,SP,PC} .text:0000DA40 ; --------------------------------------------------------------------------- .text:0000DA40 .text:0000DA40 loc_DA40 ; CODE XREF: malloc_usable_size+20j .text:0000DA40 BIC R0, R0, #3 .text:0000DA44 SUB R0, R0, #8 .text:0000DA48 LDMDB R11, {R11,SP,PC} .text:0000DA48 ; End of function malloc_usable_size .text:0000DA48 .text:0000DA4C .text:0000DA4C ; =============== S U B R O U T I N E ======================================= .text:0000DA4C .text:0000DA4C ; Attributes: bp-based frame .text:0000DA4C .text:0000DA4C malloc_update_mallinfo ; CODE XREF: malloc_stats+50p .text:0000DA4C ; mallinfo+5Cp .text:0000DA4C MOV R12, SP .text:0000DA50 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0000DA54 SUB R11, R12, #4 .text:0000DA58 MOV R5, R0 .text:0000DA5C LDR R3, =0 .text:0000DA60 MOV R4, R1 .text:0000DA64 CMP R3, #0 .text:0000DA68 BEQ loc_DA7C .text:0000DA6C ADD R0, R5, #0x410 .text:0000DA70 MOV LR, PC .text:0000DA74 MOV PC, R3 .text:0000DA78 B loc_DA84 .text:0000DA7C ; --------------------------------------------------------------------------- .text:0000DA7C .text:0000DA7C loc_DA7C ; CODE XREF: malloc_update_mallinfo+1Cj .text:0000DA7C MOV R3, #1 .text:0000DA80 STR R3, [R5,#0x410] .text:0000DA84 .text:0000DA84 loc_DA84 ; CODE XREF: malloc_update_mallinfo+2Cj .text:0000DA84 LDR R7, [R5,#0x40C] .text:0000DA88 LDR R3, [R5,#8] .text:0000DA8C LDR R6, =0 .text:0000DA90 LDR R2, [R3,#4] .text:0000DA94 MOV R3, #1 .text:0000DA98 BIC R12, R2, #3 .text:0000DA9C CMP R12, #0xF .text:0000DAA0 MOVLE R0, #0 .text:0000DAA4 MOVGT R0, #1 .text:0000DAA8 .text:0000DAA8 loc_DAA8 ; CODE XREF: malloc_update_mallinfo+94j .text:0000DAA8 ADD R1, R5, R3,LSL#3 .text:0000DAAC LDR R2, [R1,#0xC] .text:0000DAB0 ADD LR, R3, #1 .text:0000DAB4 CMP R2, R1 .text:0000DAB8 BEQ loc_DAD8 .text:0000DABC .text:0000DABC loc_DABC ; CODE XREF: malloc_update_mallinfo+88j .text:0000DABC LDR R3, [R2,#4] .text:0000DAC0 ADD R0, R0, #1 .text:0000DAC4 LDR R2, [R2,#0xC] .text:0000DAC8 BIC R3, R3, #3 .text:0000DACC ADD R12, R12, R3 .text:0000DAD0 CMP R2, R1 .text:0000DAD4 BNE loc_DABC .text:0000DAD8 .text:0000DAD8 loc_DAD8 ; CODE XREF: malloc_update_mallinfo+6Cj .text:0000DAD8 MOV R3, LR .text:0000DADC CMP R3, #0x7F .text:0000DAE0 BLE loc_DAA8 .text:0000DAE4 STR R7, [R4] .text:0000DAE8 STR R0, [R4,#4] .text:0000DAEC MOV R3, #0 .text:0000DAF0 STR R3, [R4,#0x18] .text:0000DAF4 STR R3, [R4,#0x14] .text:0000DAF8 STR R3, [R4,#8] .text:0000DAFC LDR R2, [R5,#0x40C] .text:0000DB00 STR R12, [R4,#0x20] .text:0000DB04 RSB R2, R12, R2 .text:0000DB08 STR R2, [R4,#0x1C] .text:0000DB0C LDR R3, =n_mmaps .text:0000DB10 LDR R2, [R3] .text:0000DB14 STR R2, [R4,#0xC] .text:0000DB18 LDR R3, =mmapped_mem .text:0000DB1C LDR R2, [R3] .text:0000DB20 STR R2, [R4,#0x10] .text:0000DB24 LDR R1, [R5,#8] .text:0000DB28 LDR R3, [R1,#4] .text:0000DB2C CMP R6, #0 .text:0000DB30 BIC R3, R3, #3 .text:0000DB34 STR R3, [R4,#0x24] .text:0000DB38 BEQ loc_DB4C .text:0000DB3C ADD R0, R5, #0x410 .text:0000DB40 MOV LR, PC .text:0000DB44 MOV PC, R6 .text:0000DB48 LDMDB R11, {R4-R7,R11,SP,PC} .text:0000DB4C ; --------------------------------------------------------------------------- .text:0000DB4C .text:0000DB4C loc_DB4C ; CODE XREF: malloc_update_mallinfo+ECj .text:0000DB4C STR R6, [R5,#0x410] .text:0000DB50 LDMDB R11, {R4-R7,R11,SP,PC} .text:0000DB50 ; End of function malloc_update_mallinfo .text:0000DB50 .text:0000DB50 ; --------------------------------------------------------------------------- .text:0000DB54 off_DB54 DCD 0 ; DATA XREF: malloc_update_mallinfo+10r .text:0000DB58 dword_DB58 DCD 0 ; DATA XREF: malloc_update_mallinfo+40r .text:0000DB5C off_DB5C DCD n_mmaps ; DATA XREF: malloc_update_mallinfo+C0r .text:0000DB60 off_DB60 DCD mmapped_mem ; DATA XREF: malloc_update_mallinfo+CCr .text:0000DB64 .text:0000DB64 ; =============== S U B R O U T I N E ======================================= .text:0000DB64 .text:0000DB64 ; Attributes: bp-based frame .text:0000DB64 .text:0000DB64 WEAK malloc_stats .text:0000DB64 malloc_stats .text:0000DB64 .text:0000DB64 var_50 = -0x50 .text:0000DB64 var_34 = -0x34 .text:0000DB64 .text:0000DB64 MOV R12, SP ; Alternative name is '__malloc_stats' .text:0000DB68 STMFD SP!, {R4-R12,LR,PC} .text:0000DB6C SUB R11, R12, #4 .text:0000DB70 LDR R3, =mmapped_mem .text:0000DB74 SUB SP, SP, #0x28 .text:0000DB78 LDR R7, [R3] .text:0000DB7C MOV R10, #0 .text:0000DB80 LDR R4, =main_arena .text:0000DB84 MOV R8, R7 .text:0000DB88 LDR R5, =stderr .text:0000DB8C LDR R9, =aSystemBytes10u ; "system bytes = %10u\n" .text:0000DB90 SUB R6, R11, #-var_50 .text:0000DB94 B loc_DBAC .text:0000DB94 ; --------------------------------------------------------------------------- .text:0000DB98 off_DB98 DCD mmapped_mem ; DATA XREF: malloc_stats+Cr .text:0000DB9C off_DB9C DCD main_arena ; DATA XREF: malloc_stats+1Cr .text:0000DBA0 off_DBA0 DCD stderr ; DATA XREF: malloc_stats+24r .text:0000DBA4 off_DBA4 DCD aSystemBytes10u ; DATA XREF: malloc_stats+28r .text:0000DBA4 ; "system bytes = %10u\n" .text:0000DBA8 ; --------------------------------------------------------------------------- .text:0000DBA8 .text:0000DBA8 loc_DBA8 ; CODE XREF: malloc_stats+A0j .text:0000DBA8 ADD R10, R10, #1 .text:0000DBAC .text:0000DBAC loc_DBAC ; CODE XREF: malloc_stats+30j .text:0000DBAC MOV R0, R4 .text:0000DBB0 MOV R1, R6 .text:0000DBB4 BL malloc_update_mallinfo .text:0000DBB8 LDR R1, =aArenaD ; "Arena %d:\n" .text:0000DBBC LDR R0, [R5] .text:0000DBC0 MOV R2, R10 .text:0000DBC4 BL fprintf .text:0000DBC8 LDR R0, [R5] .text:0000DBCC LDR R2, [R11,#var_50] .text:0000DBD0 MOV R1, R9 .text:0000DBD4 BL fprintf .text:0000DBD8 LDR R0, [R5] .text:0000DBDC LDR R2, [R11,#var_34] .text:0000DBE0 LDR R1, =aInUseBytes10u ; "in use bytes = %10u\n" .text:0000DBE4 BL fprintf .text:0000DBE8 LDR R4, [R4,#(main_arena+0x408 - 0x6B1E4)] .text:0000DBEC LDR R3, [R11,#var_50] .text:0000DBF0 LDR R2, [R11,#var_34] .text:0000DBF4 ADD R8, R8, R3 .text:0000DBF8 LDR R3, =main_arena .text:0000DBFC ADD R7, R7, R2 .text:0000DC00 CMP R4, R3 .text:0000DC04 BNE loc_DBA8 .text:0000DC08 LDR R0, [R5] .text:0000DC0C LDR R1, =aTotalIncl_Mmap ; "Total (incl. mmap):\n" .text:0000DC10 BL fprintf .text:0000DC14 MOV R1, R9 .text:0000DC18 LDR R0, [R5] .text:0000DC1C MOV R2, R8 .text:0000DC20 BL fprintf .text:0000DC24 LDR R1, =aInUseBytes10u ; "in use bytes = %10u\n" .text:0000DC28 LDR R0, [R5] .text:0000DC2C MOV R2, R7 .text:0000DC30 BL fprintf .text:0000DC34 LDR R0, [R5] .text:0000DC38 LDR R3, =max_n_mmaps .text:0000DC3C LDR R1, =aMaxMmapRegions ; "max mmap regions = %10u\n" .text:0000DC40 LDR R2, [R3] .text:0000DC44 BL fprintf .text:0000DC48 LDR R0, [R5] .text:0000DC4C LDR R3, =max_mmapped_mem .text:0000DC50 LDR R1, =aMaxMmapBytes10 ; "max mmap bytes = %10lu\n" .text:0000DC54 LDR R2, [R3] .text:0000DC58 BL fprintf .text:0000DC5C B locret_DC80 .text:0000DC5C ; --------------------------------------------------------------------------- .text:0000DC60 off_DC60 DCD aArenaD ; DATA XREF: malloc_stats+54r .text:0000DC60 ; "Arena %d:\n" .text:0000DC64 off_DC64 DCD aInUseBytes10u ; DATA XREF: malloc_stats+7Cr .text:0000DC64 ; malloc_stats+C0r .text:0000DC64 ; "in use bytes = %10u\n" .text:0000DC68 off_DC68 DCD main_arena ; DATA XREF: malloc_stats+94r .text:0000DC6C off_DC6C DCD aTotalIncl_Mmap ; DATA XREF: malloc_stats+A8r .text:0000DC6C ; "Total (incl. mmap):\n" .text:0000DC70 off_DC70 DCD max_n_mmaps ; DATA XREF: malloc_stats+D4r .text:0000DC74 off_DC74 DCD aMaxMmapRegions ; DATA XREF: malloc_stats+D8r .text:0000DC74 ; "max mmap regions = %10u\n" .text:0000DC78 off_DC78 DCD max_mmapped_mem ; DATA XREF: malloc_stats+E8r .text:0000DC7C off_DC7C DCD aMaxMmapBytes10 ; DATA XREF: malloc_stats+ECr .text:0000DC7C ; "max mmap bytes = %10lu\n" .text:0000DC80 ; --------------------------------------------------------------------------- .text:0000DC80 .text:0000DC80 locret_DC80 ; CODE XREF: malloc_stats+F8j .text:0000DC80 LDMDB R11, {R4-R11,SP,PC} .text:0000DC80 ; End of function malloc_stats .text:0000DC80 .text:0000DC84 .text:0000DC84 ; =============== S U B R O U T I N E ======================================= .text:0000DC84 .text:0000DC84 ; Attributes: bp-based frame .text:0000DC84 .text:0000DC84 WEAK mallinfo .text:0000DC84 mallinfo .text:0000DC84 .text:0000DC84 var_3C = -0x3C .text:0000DC84 .text:0000DC84 MOV R12, SP ; Alternative name is '__libc_mallinfo' .text:0000DC88 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0000DC8C SUB R11, R12, #4 .text:0000DC90 MOV R2, #0 .text:0000DC94 LDR R3, =__libc_internal_tsd_get .text:0000DC98 SUB SP, SP, #0x28 .text:0000DC9C LDR R3, [R3] .text:0000DCA0 MOV R5, R0 .text:0000DCA4 CMP R3, R2 .text:0000DCA8 BEQ loc_DCC4 .text:0000DCAC MOV R0, R2 .text:0000DCB0 MOV LR, PC .text:0000DCB4 MOV PC, R3 .text:0000DCB8 MOV R2, R0 .text:0000DCBC B loc_DCCC .text:0000DCBC ; --------------------------------------------------------------------------- .text:0000DCC0 off_DCC0 DCD __libc_internal_tsd_get ; DATA XREF: mallinfo+10r .text:0000DCC4 ; --------------------------------------------------------------------------- .text:0000DCC4 .text:0000DCC4 loc_DCC4 ; CODE XREF: mallinfo+24j .text:0000DCC4 LDR R3, =__libc_tsd_MALLOC_data .text:0000DCC8 LDR R2, [R3] .text:0000DCCC .text:0000DCCC loc_DCCC ; CODE XREF: mallinfo+38j .text:0000DCCC SUB R4, R11, #-var_3C .text:0000DCD0 MOV R1, R4 .text:0000DCD4 LDR R0, =main_arena .text:0000DCD8 CMP R2, #0 .text:0000DCDC MOVNE R0, R2 .text:0000DCE0 BL malloc_update_mallinfo .text:0000DCE4 LDMIA R4!, {R0-R3} .text:0000DCE8 MOV R12, R5 .text:0000DCEC STMIA R12!, {R0-R3} .text:0000DCF0 LDMIA R4!, {R0-R3} .text:0000DCF4 STMIA R12!, {R0-R3} .text:0000DCF8 LDMIA R4, {R0,R1} .text:0000DCFC STMIA R12, {R0,R1} .text:0000DD00 MOV R0, R5 .text:0000DD04 B locret_DD10 .text:0000DD04 ; --------------------------------------------------------------------------- .text:0000DD08 off_DD08 DCD __libc_tsd_MALLOC_data ; DATA XREF: mallinfo:loc_DCC4r .text:0000DD0C off_DD0C DCD main_arena ; DATA XREF: mallinfo+50r .text:0000DD10 ; --------------------------------------------------------------------------- .text:0000DD10 .text:0000DD10 locret_DD10 ; CODE XREF: mallinfo+80j .text:0000DD10 LDMDB R11, {R4,R5,R11,SP,PC} .text:0000DD10 ; End of function mallinfo .text:0000DD10 .text:0000DD14 .text:0000DD14 ; =============== S U B R O U T I N E ======================================= .text:0000DD14 .text:0000DD14 ; Attributes: bp-based frame .text:0000DD14 .text:0000DD14 WEAK mallopt .text:0000DD14 mallopt ; CODE XREF: ptmalloc_init+170p .text:0000DD14 ; ptmalloc_init+19Cp ... .text:0000DD14 MOV R12, SP ; Alternative name is '__mallopt' .text:0000DD18 STMFD SP!, {R11,R12,LR,PC} .text:0000DD1C SUB R11, R12, #4 .text:0000DD20 ADD R0, R0, #5 .text:0000DD24 CMP R0, #4 ; switch 5 cases .text:0000DD28 LDRLS PC, [PC,R0,LSL#2] ; switch jump .text:0000DD2C B loc_DD80 ; jumptable 0000DD28 default case .text:0000DD2C ; --------------------------------------------------------------------------- .text:0000DD30 DCD loc_DD78 ; jump table for switch statement .text:0000DD30 DCD loc_DD70 .text:0000DD30 DCD loc_DD5C .text:0000DD30 DCD loc_DD54 .text:0000DD30 DCD loc_DD44 .text:0000DD44 ; --------------------------------------------------------------------------- .text:0000DD44 .text:0000DD44 loc_DD44 ; CODE XREF: mallopt+14j .text:0000DD44 ; DATA XREF: mallopt+1Co .text:0000DD44 LDR R3, =trim_threshold ; jumptable 0000DD28 case 4 .text:0000DD48 .text:0000DD48 loc_DD48 ; CODE XREF: mallopt+44j .text:0000DD48 ; mallopt+58j ... .text:0000DD48 MOV R0, #1 .text:0000DD4C STR R1, [R3] .text:0000DD50 LDMDB R11, {R11,SP,PC} .text:0000DD54 ; --------------------------------------------------------------------------- .text:0000DD54 .text:0000DD54 loc_DD54 ; CODE XREF: mallopt+14j .text:0000DD54 ; DATA XREF: mallopt+1Co .text:0000DD54 LDR R3, =top_pad ; jumptable 0000DD28 case 3 .text:0000DD58 B loc_DD48 .text:0000DD5C ; --------------------------------------------------------------------------- .text:0000DD5C .text:0000DD5C loc_DD5C ; CODE XREF: mallopt+14j .text:0000DD5C ; DATA XREF: mallopt+1Co .text:0000DD5C CMP R1, #0x80000 ; jumptable 0000DD28 case 2 .text:0000DD60 MOVHI R0, #0 .text:0000DD64 LDMHIDB R11, {R11,SP,PC} .text:0000DD68 LDR R3, =mmap_threshold .text:0000DD6C B loc_DD48 .text:0000DD70 ; --------------------------------------------------------------------------- .text:0000DD70 .text:0000DD70 loc_DD70 ; CODE XREF: mallopt+14j .text:0000DD70 ; DATA XREF: mallopt+1Co .text:0000DD70 LDR R3, =n_mmaps_max ; jumptable 0000DD28 case 1 .text:0000DD74 B loc_DD48 .text:0000DD78 ; --------------------------------------------------------------------------- .text:0000DD78 .text:0000DD78 loc_DD78 ; CODE XREF: mallopt+14j .text:0000DD78 ; DATA XREF: mallopt+1Co .text:0000DD78 LDR R3, =check_action ; jumptable 0000DD28 case 0 .text:0000DD7C B loc_DD48 .text:0000DD80 ; --------------------------------------------------------------------------- .text:0000DD80 .text:0000DD80 loc_DD80 ; CODE XREF: mallopt+18j .text:0000DD80 MOV R0, #0 ; jumptable 0000DD28 default case .text:0000DD84 LDMDB R11, {R11,SP,PC} .text:0000DD84 ; End of function mallopt .text:0000DD84 .text:0000DD84 ; --------------------------------------------------------------------------- .text:0000DD88 off_DD88 DCD trim_threshold ; DATA XREF: mallopt:loc_DD44r .text:0000DD8C off_DD8C DCD top_pad ; DATA XREF: mallopt:loc_DD54r .text:0000DD90 off_DD90 DCD mmap_threshold ; DATA XREF: mallopt+54r .text:0000DD94 off_DD94 DCD n_mmaps_max ; DATA XREF: mallopt:loc_DD70r .text:0000DD98 off_DD98 DCD check_action ; DATA XREF: mallopt:loc_DD78r .text:0000DD9C .text:0000DD9C ; =============== S U B R O U T I N E ======================================= .text:0000DD9C .text:0000DD9C ; Attributes: bp-based frame .text:0000DD9C .text:0000DD9C WEAK malloc_get_state .text:0000DD9C malloc_get_state .text:0000DD9C MOV R12, SP ; Alternative name is '__malloc_get_state' .text:0000DDA0 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:0000DDA4 SUB R11, R12, #4 .text:0000DDA8 MOV R0, 0x448 .text:0000DDB0 BL malloc .text:0000DDB4 SUBS R4, R0, #0 .text:0000DDB8 MOVEQ R0, R4 .text:0000DDBC LDMEQDB R11, {R4-R6,R11,SP,PC} .text:0000DDC0 LDR R3, =0 .text:0000DDC4 CMP R3, #0 .text:0000DDC8 BEQ loc_DDDC .text:0000DDCC LDR R0, =(main_arena+0x410) .text:0000DDD0 MOV LR, PC .text:0000DDD4 MOV PC, R3 .text:0000DDD8 B loc_DDE8 .text:0000DDDC ; --------------------------------------------------------------------------- .text:0000DDDC .text:0000DDDC loc_DDDC ; CODE XREF: malloc_get_state+2Cj .text:0000DDDC LDR R2, =(main_arena+0x410) .text:0000DDE0 MOV R3, #1 .text:0000DDE4 STR R3, [R2] .text:0000DDE8 .text:0000DDE8 loc_DDE8 ; CODE XREF: malloc_get_state+3Cj .text:0000DDE8 MOV R3, #1 .text:0000DDEC STR R3, [R4,#4] .text:0000DDF0 LDR R2, =0x444C4541 .text:0000DDF4 STR R2, [R4] .text:0000DDF8 LDR R1, =main_arena .text:0000DDFC LDR R3, [R1] .text:0000DE00 STR R3, [R4,#8] .text:0000DE04 MOV LR, #0 .text:0000DE08 MOV R0, LR .text:0000DE0C LDR R6, =0 .text:0000DE10 ADD R12, R4, #0x14 .text:0000DE14 LDR R3, [R1,#(main_arena+4 - 0x6B1E4)] .text:0000DE18 MOV R5, R1 .text:0000DE1C STR R3, [R4,#0xC] .text:0000DE20 .text:0000DE20 loc_DE20 ; CODE XREF: malloc_get_state+B0j .text:0000DE20 ADD R3, R1, LR,LSL#3 .text:0000DE24 LDR R2, [R3,#8] .text:0000DE28 CMP R2, R3 .text:0000DE2C STREQ R0, [R12] .text:0000DE30 STREQ R0, [R12,#-4] .text:0000DE34 STRNE R2, [R12,#-4] .text:0000DE38 LDRNE R3, [R3,#0xC] .text:0000DE3C STRNE R3, [R12] .text:0000DE40 ADD R12, R12, #8 .text:0000DE44 ADD LR, LR, #1 .text:0000DE48 CMP LR, #0x7F .text:0000DE4C BLE loc_DE20 .text:0000DE50 LDR R3, =sbrk_base .text:0000DE54 LDR R2, [R3] .text:0000DE58 STR R2, [R4,#0x410] .text:0000DE5C LDR R3, [R5,#0x40C] .text:0000DE60 STR R3, [R4,#0x414] .text:0000DE64 LDR R2, =trim_threshold .text:0000DE68 LDR R3, [R2] .text:0000DE6C STR R3, [R4,#0x418] .text:0000DE70 LDR R2, =top_pad .text:0000DE74 LDR R3, [R2] .text:0000DE78 STR R3, [R4,#0x41C] .text:0000DE7C LDR R2, =n_mmaps_max .text:0000DE80 LDR R3, [R2] .text:0000DE84 STR R3, [R4,#0x420] .text:0000DE88 LDR R2, =mmap_threshold .text:0000DE8C LDR R3, [R2] .text:0000DE90 STR R3, [R4,#0x424] .text:0000DE94 LDR R2, =check_action .text:0000DE98 LDR R3, [R2] .text:0000DE9C STR R3, [R4,#0x428] .text:0000DEA0 LDR R2, =max_sbrked_mem .text:0000DEA4 LDR R1, [R2] .text:0000DEA8 MOV R3, #0 .text:0000DEAC STR R3, [R4,#0x430] .text:0000DEB0 STR R1, [R4,#0x42C] .text:0000DEB4 LDR R3, =n_mmaps .text:0000DEB8 LDR R2, [R3] .text:0000DEBC STR R2, [R4,#0x434] .text:0000DEC0 LDR R3, =max_n_mmaps .text:0000DEC4 LDR R2, [R3] .text:0000DEC8 STR R2, [R4,#0x438] .text:0000DECC LDR R3, =mmapped_mem .text:0000DED0 LDR R2, [R3] .text:0000DED4 STR R2, [R4,#0x43C] .text:0000DED8 LDR R3, =max_mmapped_mem .text:0000DEDC LDR R2, [R3] .text:0000DEE0 STR R2, [R4,#0x440] .text:0000DEE4 LDR R3, =using_malloc_checking .text:0000DEE8 LDR R2, [R3] .text:0000DEEC CMP R6, #0 .text:0000DEF0 STR R2, [R4,#0x444] .text:0000DEF4 BEQ loc_DF08 .text:0000DEF8 ADD R0, R5, #0x410 .text:0000DEFC MOV LR, PC .text:0000DF00 MOV PC, R6 .text:0000DF04 B loc_DF0C .text:0000DF08 ; --------------------------------------------------------------------------- .text:0000DF08 .text:0000DF08 loc_DF08 ; CODE XREF: malloc_get_state+158j .text:0000DF08 STR R6, [R5,#0x410] .text:0000DF0C .text:0000DF0C loc_DF0C ; CODE XREF: malloc_get_state+168j .text:0000DF0C MOV R0, R4 .text:0000DF10 LDMDB R11, {R4-R6,R11,SP,PC} .text:0000DF10 ; End of function malloc_get_state .text:0000DF10 .text:0000DF10 ; --------------------------------------------------------------------------- .text:0000DF14 off_DF14 DCD 0 ; DATA XREF: malloc_get_state+24r .text:0000DF18 off_DF18 DCD main_arena+0x410 ; DATA XREF: malloc_get_state+30r .text:0000DF18 ; malloc_get_state:loc_DDDCr .text:0000DF1C dword_DF1C DCD 0x444C4541 ; DATA XREF: malloc_get_state+54r .text:0000DF20 off_DF20 DCD main_arena ; DATA XREF: malloc_get_state+5Cr .text:0000DF24 off_DF24 DCD 0 ; DATA XREF: malloc_get_state+70r .text:0000DF28 off_DF28 DCD sbrk_base ; DATA XREF: malloc_get_state+B4r .text:0000DF2C off_DF2C DCD trim_threshold ; DATA XREF: malloc_get_state+C8r .text:0000DF30 off_DF30 DCD top_pad ; DATA XREF: malloc_get_state+D4r .text:0000DF34 off_DF34 DCD n_mmaps_max ; DATA XREF: malloc_get_state+E0r .text:0000DF38 off_DF38 DCD mmap_threshold ; DATA XREF: malloc_get_state+ECr .text:0000DF3C off_DF3C DCD check_action ; DATA XREF: malloc_get_state+F8r .text:0000DF40 off_DF40 DCD max_sbrked_mem ; DATA XREF: malloc_get_state+104r .text:0000DF44 off_DF44 DCD n_mmaps ; DATA XREF: malloc_get_state+118r .text:0000DF48 off_DF48 DCD max_n_mmaps ; DATA XREF: malloc_get_state+124r .text:0000DF4C off_DF4C DCD mmapped_mem ; DATA XREF: malloc_get_state+130r .text:0000DF50 off_DF50 DCD max_mmapped_mem ; DATA XREF: malloc_get_state+13Cr .text:0000DF54 off_DF54 DCD using_malloc_checking ; DATA XREF: malloc_get_state+148r .text:0000DF58 .text:0000DF58 ; =============== S U B R O U T I N E ======================================= .text:0000DF58 .text:0000DF58 ; Attributes: bp-based frame .text:0000DF58 .text:0000DF58 WEAK malloc_set_state .text:0000DF58 malloc_set_state .text:0000DF58 MOV R12, SP ; Alternative name is '__malloc_set_state' .text:0000DF5C STMFD SP!, {R4-R12,LR,PC} .text:0000DF60 LDR R4, =disallow_malloc_check .text:0000DF64 MOV R6, #1 .text:0000DF68 STR R6, [R4] .text:0000DF6C SUB R11, R12, #4 .text:0000DF70 MOV R5, R0 .text:0000DF74 BL ptmalloc_init .text:0000DF78 LDR R2, [R5] .text:0000DF7C LDR R3, =0x444C4541 .text:0000DF80 CMP R2, R3 .text:0000DF84 MOVNE R0, 0xFFFFFFFF .text:0000DF88 LDMNEDB R11, {R4-R11,SP,PC} .text:0000DF8C LDR R3, [R5,#4] .text:0000DF90 BIC R3, R3, #0xFF .text:0000DF94 CMP R3, #0 .text:0000DF98 MOVGT R0, 0xFFFFFFFE .text:0000DF9C LDMGTDB R11, {R4-R11,SP,PC} .text:0000DFA0 LDR R2, =0 .text:0000DFA4 CMP R2, #0 .text:0000DFA8 BEQ loc_DFC4 .text:0000DFAC LDR R3, =(main_arena+0x410) .text:0000DFB0 MOV R0, R3 .text:0000DFB4 MOV R9, R3 .text:0000DFB8 MOV LR, PC .text:0000DFBC MOV PC, R2 .text:0000DFC0 B loc_DFD0 .text:0000DFC4 ; --------------------------------------------------------------------------- .text:0000DFC4 .text:0000DFC4 loc_DFC4 ; CODE XREF: malloc_set_state+50j .text:0000DFC4 LDR R3, =(main_arena+0x410) .text:0000DFC8 MOV R9, R3 .text:0000DFCC STR R6, [R3] .text:0000DFD0 .text:0000DFD0 loc_DFD0 ; CODE XREF: malloc_set_state+68j .text:0000DFD0 LDR R3, =main_arena .text:0000DFD4 LDR R2, [R5,#8] .text:0000DFD8 MOV R0, #0 .text:0000DFDC STR R2, [R3] .text:0000DFE0 ADD LR, R5, #8 .text:0000DFE4 MOV R6, LR .text:0000DFE8 MOV R4, #0xC .text:0000DFEC MOV R12, #8 .text:0000DFF0 LDR R10, =0 .text:0000DFF4 MOV R8, R3 .text:0000DFF8 LDR R2, [R5,#0xC] .text:0000DFFC MOV R7, R8 .text:0000E000 STR R2, [R3,#(main_arena+4 - 0x6B1E4)] .text:0000E004 .text:0000E004 loc_E004 ; CODE XREF: malloc_set_state+F0j .text:0000E004 LDR R1, [R6,R12] .text:0000E008 ADD R2, R7, R0,LSL#3 .text:0000E00C CMP R1, #0 .text:0000E010 STREQ R2, [R2,#0xC] .text:0000E014 STREQ R2, [R2,#8] .text:0000E018 BEQ loc_E038 .text:0000E01C STR R1, [R2,#8] .text:0000E020 LDR R3, [LR,R4] .text:0000E024 CMP R0, #0 .text:0000E028 STR R3, [R2,#0xC] .text:0000E02C STRGT R2, [R1,#0xC] .text:0000E030 LDRGT R3, [R2,#0xC] .text:0000E034 STRGT R2, [R3,#8] .text:0000E038 .text:0000E038 loc_E038 ; CODE XREF: malloc_set_state+C0j .text:0000E038 ADD R4, R4, #8 .text:0000E03C ADD R12, R12, #8 .text:0000E040 ADD R0, R0, #1 .text:0000E044 CMP R0, #0x7F .text:0000E048 BLE loc_E004 .text:0000E04C LDR R1, [R5,#0x410] .text:0000E050 LDR R3, =sbrk_base .text:0000E054 STR R1, [R3] .text:0000E058 LDR R2, [R5,#0x414] .text:0000E05C STR R2, [R8,#0x40C] .text:0000E060 LDR R3, =trim_threshold .text:0000E064 LDR R1, [R5,#0x418] .text:0000E068 STR R1, [R3] .text:0000E06C LDR R3, =top_pad .text:0000E070 LDR R2, [R5,#0x41C] .text:0000E074 STR R2, [R3] .text:0000E078 LDR R3, =n_mmaps_max .text:0000E07C LDR R1, [R5,#0x420] .text:0000E080 STR R1, [R3] .text:0000E084 LDR R3, =mmap_threshold .text:0000E088 LDR R2, [R5,#0x424] .text:0000E08C STR R2, [R3] .text:0000E090 LDR R3, =check_action .text:0000E094 LDR R1, [R5,#0x428] .text:0000E098 STR R1, [R3] .text:0000E09C LDR R3, =max_sbrked_mem .text:0000E0A0 LDR R2, [R5,#0x42C] .text:0000E0A4 STR R2, [R3] .text:0000E0A8 LDR R3, =n_mmaps .text:0000E0AC LDR R1, [R5,#0x434] .text:0000E0B0 STR R1, [R3] .text:0000E0B4 LDR R3, =max_n_mmaps .text:0000E0B8 LDR R2, [R5,#0x438] .text:0000E0BC STR R2, [R3] .text:0000E0C0 LDR R3, =mmapped_mem .text:0000E0C4 LDR R1, [R5,#0x43C] .text:0000E0C8 STR R1, [R3] .text:0000E0CC LDR R3, =max_mmapped_mem .text:0000E0D0 LDR R0, [R5,#0x440] .text:0000E0D4 STR R0, [R3] .text:0000E0D8 LDR R2, [R5,#4] .text:0000E0DC CMP R2, #0 .text:0000E0E0 BLE loc_E158 .text:0000E0E4 LDR R3, [R5,#0x444] .text:0000E0E8 CMP R3, #0 .text:0000E0EC MOV R0, R3 .text:0000E0F0 BEQ loc_E11C .text:0000E0F4 LDR R3, =using_malloc_checking .text:0000E0F8 LDR R2, [R3] .text:0000E0FC CMP R2, #0 .text:0000E100 BNE loc_E11C .text:0000E104 LDR R2, =disallow_malloc_check .text:0000E108 LDR R3, [R2] .text:0000E10C CMP R3, #0 .text:0000E110 BNE loc_E11C .text:0000E114 BL __malloc_check_init .text:0000E118 B loc_E158 .text:0000E11C ; --------------------------------------------------------------------------- .text:0000E11C .text:0000E11C loc_E11C ; CODE XREF: malloc_set_state+198j .text:0000E11C ; malloc_set_state+1A8j ... .text:0000E11C CMP R0, #0 .text:0000E120 BNE loc_E158 .text:0000E124 LDR R2, =using_malloc_checking .text:0000E128 LDR R3, [R2] .text:0000E12C CMP R3, #0 .text:0000E130 BEQ loc_E158 .text:0000E134 STR R0, [R2] .text:0000E138 LDR R3, =__malloc_hook .text:0000E13C STR R0, [R3] .text:0000E140 LDR R2, =__free_hook .text:0000E144 STR R0, [R2] .text:0000E148 LDR R3, =__realloc_hook .text:0000E14C STR R0, [R3] .text:0000E150 LDR R2, =__memalign_hook .text:0000E154 STR R0, [R2] .text:0000E158 .text:0000E158 loc_E158 ; CODE XREF: malloc_set_state+188j .text:0000E158 ; malloc_set_state+1C0j ... .text:0000E158 CMP R10, #0 .text:0000E15C BEQ loc_E170 .text:0000E160 MOV R0, R9 .text:0000E164 MOV LR, PC .text:0000E168 MOV PC, R10 .text:0000E16C B loc_E174 .text:0000E170 ; --------------------------------------------------------------------------- .text:0000E170 .text:0000E170 loc_E170 ; CODE XREF: malloc_set_state+204j .text:0000E170 STR R10, [R9] .text:0000E174 .text:0000E174 loc_E174 ; CODE XREF: malloc_set_state+214j .text:0000E174 MOV R0, #0 .text:0000E178 LDMDB R11, {R4-R11,SP,PC} .text:0000E178 ; End of function malloc_set_state .text:0000E178 .text:0000E178 ; --------------------------------------------------------------------------- .text:0000E17C off_E17C DCD disallow_malloc_check ; DATA XREF: malloc_set_state+8r .text:0000E17C ; malloc_set_state+1ACr .text:0000E180 dword_E180 DCD 0x444C4541 ; DATA XREF: malloc_set_state+24r .text:0000E184 off_E184 DCD 0 ; DATA XREF: malloc_set_state+48r .text:0000E188 off_E188 DCD main_arena+0x410 ; DATA XREF: malloc_set_state+54r .text:0000E188 ; malloc_set_state:loc_DFC4r .text:0000E18C off_E18C DCD main_arena ; DATA XREF: malloc_set_state:loc_DFD0r .text:0000E190 dword_E190 DCD 0 ; DATA XREF: malloc_set_state+98r .text:0000E194 off_E194 DCD sbrk_base ; DATA XREF: malloc_set_state+F8r .text:0000E198 off_E198 DCD trim_threshold ; DATA XREF: malloc_set_state+108r .text:0000E19C off_E19C DCD top_pad ; DATA XREF: malloc_set_state+114r .text:0000E1A0 off_E1A0 DCD n_mmaps_max ; DATA XREF: malloc_set_state+120r .text:0000E1A4 off_E1A4 DCD mmap_threshold ; DATA XREF: malloc_set_state+12Cr .text:0000E1A8 off_E1A8 DCD check_action ; DATA XREF: malloc_set_state+138r .text:0000E1AC off_E1AC DCD max_sbrked_mem ; DATA XREF: malloc_set_state+144r .text:0000E1B0 off_E1B0 DCD n_mmaps ; DATA XREF: malloc_set_state+150r .text:0000E1B4 off_E1B4 DCD max_n_mmaps ; DATA XREF: malloc_set_state+15Cr .text:0000E1B8 off_E1B8 DCD mmapped_mem ; DATA XREF: malloc_set_state+168r .text:0000E1BC off_E1BC DCD max_mmapped_mem ; DATA XREF: malloc_set_state+174r .text:0000E1C0 off_E1C0 DCD using_malloc_checking ; DATA XREF: malloc_set_state+19Cr .text:0000E1C0 ; malloc_set_state+1CCr .text:0000E1C4 off_E1C4 DCD __malloc_hook ; DATA XREF: malloc_set_state+1E0r .text:0000E1C8 off_E1C8 DCD __free_hook ; DATA XREF: malloc_set_state+1E8r .text:0000E1CC off_E1CC DCD __realloc_hook ; DATA XREF: malloc_set_state+1F0r .text:0000E1D0 off_E1D0 DCD __memalign_hook ; DATA XREF: malloc_set_state+1F8r .text:0000E1D4 .text:0000E1D4 ; =============== S U B R O U T I N E ======================================= .text:0000E1D4 .text:0000E1D4 ; Attributes: bp-based frame .text:0000E1D4 .text:0000E1D4 chunk2mem_check ; CODE XREF: malloc_check+E0p .text:0000E1D4 ; realloc_check+284p ... .text:0000E1D4 MOV R12, SP .text:0000E1D8 STMFD SP!, {R11,R12,LR,PC} .text:0000E1DC SUB R11, R12, #4 .text:0000E1E0 MOV R12, R0 .text:0000E1E4 LDR R3, [R12,#4] .text:0000E1E8 ADD R0, R12, #8 .text:0000E1EC TST R3, #2 .text:0000E1F0 BIC R3, R3, #3 .text:0000E1F4 SUB R2, R3, #9 .text:0000E1F8 SUBEQ R2, R3, #5 .text:0000E1FC B loc_E20C .text:0000E200 ; --------------------------------------------------------------------------- .text:0000E200 .text:0000E200 loc_E200 ; CODE XREF: chunk2mem_check+48j .text:0000E200 MOV R3, #0xFF .text:0000E204 STRB R3, [R0,R2] .text:0000E208 SUB R2, R2, #0xFF .text:0000E20C .text:0000E20C loc_E20C ; CODE XREF: chunk2mem_check+28j .text:0000E20C CMP R2, R1 .text:0000E210 BLS loc_E224 .text:0000E214 RSB R3, R1, R2 .text:0000E218 CMP R3, #0xFF .text:0000E21C BHI loc_E200 .text:0000E220 STRB R3, [R0,R2] .text:0000E224 .text:0000E224 loc_E224 ; CODE XREF: chunk2mem_check+3Cj .text:0000E224 MOV R3, R12,LSR#11 .text:0000E228 EOR R3, R3, R12,LSR#3 .text:0000E22C STRB R3, [R0,R1] .text:0000E230 LDMDB R11, {R11,SP,PC} .text:0000E230 ; End of function chunk2mem_check .text:0000E230 .text:0000E234 .text:0000E234 ; =============== S U B R O U T I N E ======================================= .text:0000E234 .text:0000E234 ; Attributes: bp-based frame .text:0000E234 .text:0000E234 mem2chunk_check ; CODE XREF: free_check+4Cp .text:0000E234 ; realloc_check+60p .text:0000E234 MOV R12, SP .text:0000E238 STMFD SP!, {R4,R11,R12,LR,PC} .text:0000E23C SUB R11, R12, #4 .text:0000E240 SUB LR, R0, #8 .text:0000E244 TST LR, #7 .text:0000E248 BEQ loc_E254 .text:0000E24C .text:0000E24C loc_E24C ; CODE XREF: mem2chunk_check+4Cj .text:0000E24C ; mem2chunk_check+5Cj ... .text:0000E24C MOV R0, #0 .text:0000E250 LDMDB R11, {R4,R11,SP,PC} .text:0000E254 ; --------------------------------------------------------------------------- .text:0000E254 .text:0000E254 loc_E254 ; CODE XREF: mem2chunk_check+14j .text:0000E254 LDR R3, =sbrk_base .text:0000E258 LDR R4, [R3] .text:0000E25C CMP LR, R4 .text:0000E260 BCC loc_E330 .text:0000E264 LDR R3, =main_arena .text:0000E268 LDR R2, [R3,#(main_arena+0x40C - 0x6B1E4)] .text:0000E26C ADD R2, R4, R2 .text:0000E270 CMP LR, R2 .text:0000E274 BCS loc_E330 .text:0000E278 LDR R12, [LR,#4] .text:0000E27C TST R12, #2 .text:0000E280 BNE loc_E24C .text:0000E284 BIC R1, R12, #3 .text:0000E288 ADD R3, LR, R1 .text:0000E28C CMP R3, R2 .text:0000E290 BCS loc_E24C .text:0000E294 CMP R1, #0xF .text:0000E298 BLS loc_E24C .text:0000E29C TST R12, #4 .text:0000E2A0 BNE loc_E24C .text:0000E2A4 BIC R3, R12, #1 .text:0000E2A8 ADD R3, LR, R3 .text:0000E2AC LDR R2, [R3,#4] .text:0000E2B0 TST R2, #1 .text:0000E2B4 BEQ loc_E24C .text:0000E2B8 TST R12, #1 .text:0000E2BC BNE loc_E2EC .text:0000E2C0 LDR R0, [R0,#-8] .text:0000E2C4 TST R0, #7 .text:0000E2C8 BNE loc_E24C .text:0000E2CC RSB R0, R0, LR .text:0000E2D0 CMP R0, R4 .text:0000E2D4 BLT loc_E24C .text:0000E2D8 LDR R3, [R0,#4] .text:0000E2DC BIC R3, R3, #1 .text:0000E2E0 ADD R3, R0, R3 .text:0000E2E4 CMP R3, LR .text:0000E2E8 BNE loc_E24C .text:0000E2EC .text:0000E2EC loc_E2EC ; CODE XREF: mem2chunk_check+88j .text:0000E2EC ADD R1, R1, #3 .text:0000E2F0 MOV R3, LR,LSR#11 .text:0000E2F4 EOR R3, R3, LR,LSR#3 .text:0000E2F8 LDRB R2, [LR,R1] .text:0000E2FC AND R12, R3, #0xFF .text:0000E300 CMP R2, R12 .text:0000E304 BEQ loc_E3F8 .text:0000E308 .text:0000E308 loc_E308 ; CODE XREF: mem2chunk_check+F4j .text:0000E308 CMP R2, #0 .text:0000E30C BEQ loc_E24C .text:0000E310 ADD R3, R2, #8 .text:0000E314 CMP R1, R3 .text:0000E318 BCC loc_E24C .text:0000E31C RSB R1, R2, R1 .text:0000E320 LDRB R2, [LR,R1] .text:0000E324 CMP R2, R12 .text:0000E328 BNE loc_E308 .text:0000E32C B loc_E3F8 .text:0000E330 ; --------------------------------------------------------------------------- .text:0000E330 .text:0000E330 loc_E330 ; CODE XREF: mem2chunk_check+2Cj .text:0000E330 ; mem2chunk_check+40j .text:0000E330 LDR R3, =__libc_pagesize .text:0000E334 LDR R2, [R3] .text:0000E338 SUB R2, R2, #1 .text:0000E33C AND R0, R0, R2 .text:0000E340 CMP R0, #8 .text:0000E344 CMPNE R0, #0 .text:0000E348 BEQ loc_E388 .text:0000E34C CMP R0, #0x10 .text:0000E350 CMPNE R0, #0x20 .text:0000E354 BEQ loc_E388 .text:0000E358 CMP R0, #0x40 .text:0000E35C CMPNE R0, #0x80 .text:0000E360 BEQ loc_E388 .text:0000E364 CMP R0, #0x100 .text:0000E368 CMPNE R0, #0x200 .text:0000E36C BEQ loc_E388 .text:0000E370 CMP R0, #0x400 .text:0000E374 CMPNE R0, #0x800 .text:0000E378 BEQ loc_E388 .text:0000E37C CMP R0, #0x1000 .text:0000E380 CMPNE R0, #0x2000 .text:0000E384 BCC loc_E24C .text:0000E388 .text:0000E388 loc_E388 ; CODE XREF: mem2chunk_check+114j .text:0000E388 ; mem2chunk_check+120j ... .text:0000E388 LDR R1, [LR,#4] .text:0000E38C AND R3, R1, #3 .text:0000E390 CMP R3, #2 .text:0000E394 BNE loc_E24C .text:0000E398 LDR R0, [LR] .text:0000E39C RSB R3, R0, LR .text:0000E3A0 TST R3, R2 .text:0000E3A4 BNE loc_E24C .text:0000E3A8 BIC R1, R1, #3 .text:0000E3AC ADD R3, R0, R1 .text:0000E3B0 TST R3, R2 .text:0000E3B4 BNE loc_E24C .text:0000E3B8 SUB R1, R1, #1 .text:0000E3BC MOV R3, LR,LSR#11 .text:0000E3C0 EOR R3, R3, LR,LSR#3 .text:0000E3C4 LDRB R2, [LR,R1] .text:0000E3C8 AND R12, R3, #0xFF .text:0000E3CC CMP R2, R12 .text:0000E3D0 BEQ loc_E3F8 .text:0000E3D4 .text:0000E3D4 loc_E3D4 ; CODE XREF: mem2chunk_check+1C0j .text:0000E3D4 CMP R2, #0 .text:0000E3D8 BEQ loc_E24C .text:0000E3DC ADD R3, R2, #8 .text:0000E3E0 CMP R1, R3 .text:0000E3E4 BCC loc_E24C .text:0000E3E8 RSB R1, R2, R1 .text:0000E3EC LDRB R2, [LR,R1] .text:0000E3F0 CMP R2, R12 .text:0000E3F4 BNE loc_E3D4 .text:0000E3F8 .text:0000E3F8 loc_E3F8 ; CODE XREF: mem2chunk_check+D0j .text:0000E3F8 ; mem2chunk_check+F8j ... .text:0000E3F8 LDRB R3, [LR,R1] .text:0000E3FC MVN R3, R3 .text:0000E400 STRB R3, [LR,R1] .text:0000E404 MOV R0, LR .text:0000E408 LDMDB R11, {R4,R11,SP,PC} .text:0000E408 ; End of function mem2chunk_check .text:0000E408 .text:0000E408 ; --------------------------------------------------------------------------- .text:0000E40C off_E40C DCD sbrk_base ; DATA XREF: mem2chunk_check:loc_E254r .text:0000E410 off_E410 DCD main_arena ; DATA XREF: mem2chunk_check+30r .text:0000E414 off_E414 DCD __libc_pagesize ; DATA XREF: mem2chunk_check:loc_E330r .text:0000E418 .text:0000E418 ; =============== S U B R O U T I N E ======================================= .text:0000E418 .text:0000E418 ; Attributes: bp-based frame .text:0000E418 .text:0000E418 top_check ; CODE XREF: malloc_check:loc_E5D4p .text:0000E418 ; realloc_check+168p ... .text:0000E418 MOV R12, SP .text:0000E41C STMFD SP!, {R4-R12,LR,PC} .text:0000E420 LDR R10, =main_arena .text:0000E424 LDR R1, =sbrk_base .text:0000E428 LDR R0, =__libc_pagesize .text:0000E42C SUB R11, R12, #4 .text:0000E430 LDR R12, [R10,#(main_arena+8 - 0x6B1E4)] .text:0000E434 LDR R9, [R0] .text:0000E438 LDR R3, [R12,#4] .text:0000E43C LDR R2, [R1] .text:0000E440 LDR R1, [R10,#(main_arena+0x40C - 0x6B1E4)] .text:0000E444 BIC R3, R3, #3 .text:0000E448 ADD R3, R12, R3 .text:0000E44C ADD R2, R2, R1 .text:0000E450 CMP R3, R2 .text:0000E454 BEQ loc_E460 .text:0000E458 CMP R12, R10 .text:0000E45C BNE loc_E468 .text:0000E460 .text:0000E460 loc_E460 ; CODE XREF: top_check+3Cj .text:0000E460 MOV R0, #0 .text:0000E464 LDMDB R11, {R4-R11,SP,PC} .text:0000E468 ; --------------------------------------------------------------------------- .text:0000E468 .text:0000E468 loc_E468 ; CODE XREF: top_check+44j .text:0000E468 LDR R4, =check_action .text:0000E46C LDR R3, [R4] .text:0000E470 TST R3, #1 .text:0000E474 BEQ loc_E488 .text:0000E478 LDR R3, =stderr .text:0000E47C LDR R1, =aMallocTopChunk ; "malloc: top chunk is corrupt\n" .text:0000E480 LDR R0, [R3] .text:0000E484 BL fprintf .text:0000E488 .text:0000E488 loc_E488 ; CODE XREF: top_check+5Cj .text:0000E488 LDR R3, [R4] .text:0000E48C ANDS R8, R3, #2 .text:0000E490 BEQ loc_E498 .text:0000E494 BL abort .text:0000E498 ; --------------------------------------------------------------------------- .text:0000E498 .text:0000E498 loc_E498 ; CODE XREF: top_check+78j .text:0000E498 LDR R4, =__morecore .text:0000E49C MOV R0, R8 .text:0000E4A0 MOV LR, PC .text:0000E4A4 LDR PC, [R4] .text:0000E4A8 MOV R7, R0 .text:0000E4AC ADD R3, R7, #8 .text:0000E4B0 ANDS R6, R3, #7 .text:0000E4B4 LDR R1, =top_pad .text:0000E4B8 RSB R3, R6, #8 .text:0000E4BC LDR R2, [R1] .text:0000E4C0 MOVNE R6, R3 .text:0000E4C4 ADD R2, R6, R2 .text:0000E4C8 ADD R5, R2, #0x10 .text:0000E4CC ADD R3, R7, R5 .text:0000E4D0 SUB R2, R9, #1 .text:0000E4D4 AND R3, R3, R2 .text:0000E4D8 RSB R3, R3, R9 .text:0000E4DC ADD R5, R5, R3 .text:0000E4E0 MOV R0, R5 .text:0000E4E4 MOV LR, PC .text:0000E4E8 LDR PC, [R4] .text:0000E4EC SUBS R2, R0, #0 .text:0000E4F0 BEQ loc_E524 .text:0000E4F4 LDR R1, =sbrk_base .text:0000E4F8 MOV R0, R8 .text:0000E4FC LDR R3, [R1] .text:0000E500 ADD R1, R7, R6 .text:0000E504 STR R1, [R10,#8] .text:0000E508 RSB R3, R3, R2 .text:0000E50C ADD R3, R3, R5 .text:0000E510 STR R3, [R10,#0x40C] .text:0000E514 RSB R2, R6, R5 .text:0000E518 ORR R2, R2, #1 .text:0000E51C STR R2, [R1,#4] .text:0000E520 LDMDB R11, {R4-R11,SP,PC} .text:0000E524 ; --------------------------------------------------------------------------- .text:0000E524 .text:0000E524 loc_E524 ; CODE XREF: top_check+D8j .text:0000E524 MOV R0, 0xFFFFFFFF .text:0000E528 LDMDB R11, {R4-R11,SP,PC} .text:0000E528 ; End of function top_check .text:0000E528 .text:0000E528 ; --------------------------------------------------------------------------- .text:0000E52C off_E52C DCD main_arena ; DATA XREF: top_check+8r .text:0000E530 off_E530 DCD sbrk_base ; DATA XREF: top_check+Cr .text:0000E530 ; top_check+DCr .text:0000E534 off_E534 DCD __libc_pagesize ; DATA XREF: top_check+10r .text:0000E538 off_E538 DCD check_action ; DATA XREF: top_check:loc_E468r .text:0000E53C off_E53C DCD stderr ; DATA XREF: top_check+60r .text:0000E540 off_E540 DCD aMallocTopChunk ; DATA XREF: top_check+64r .text:0000E540 ; "malloc: top chunk is corrupt\n" .text:0000E544 off_E544 DCD __morecore ; DATA XREF: top_check:loc_E498r .text:0000E548 off_E548 DCD top_pad ; DATA XREF: top_check+9Cr .text:0000E54C .text:0000E54C ; =============== S U B R O U T I N E ======================================= .text:0000E54C .text:0000E54C ; Attributes: bp-based frame .text:0000E54C .text:0000E54C malloc_check ; CODE XREF: realloc_check+20p .text:0000E54C ; realloc_check+C4p ... .text:0000E54C MOV R12, SP .text:0000E550 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:0000E554 SUB R11, R12, #4 .text:0000E558 MOV R5, R0 .text:0000E55C ADD R4, R5, #0xC .text:0000E560 CMP R4, #0 .text:0000E564 BLE loc_E574 .text:0000E568 ADD R3, R5, #1 .text:0000E56C CMP R4, R3 .text:0000E570 BCS loc_E584 .text:0000E574 .text:0000E574 loc_E574 ; CODE XREF: malloc_check+18j .text:0000E574 BL __errno_location .text:0000E578 MOV R3, #0xC .text:0000E57C STR R3, [R0] .text:0000E580 B loc_E598 .text:0000E584 ; --------------------------------------------------------------------------- .text:0000E584 .text:0000E584 loc_E584 ; CODE XREF: malloc_check+24j .text:0000E584 CMP R4, #0x16 .text:0000E588 MOVLS R4, #0x10 .text:0000E58C BLS loc_E5A0 .text:0000E590 BIC R4, R4, #7 .text:0000E594 B loc_E5A0 .text:0000E598 ; --------------------------------------------------------------------------- .text:0000E598 .text:0000E598 loc_E598 ; CODE XREF: malloc_check+34j .text:0000E598 MOV R0, #0 .text:0000E59C LDMDB R11, {R4-R6,R11,SP,PC} .text:0000E5A0 ; --------------------------------------------------------------------------- .text:0000E5A0 .text:0000E5A0 loc_E5A0 ; CODE XREF: malloc_check+40j .text:0000E5A0 ; malloc_check+48j .text:0000E5A0 LDR R2, =0 .text:0000E5A4 CMP R2, #0 .text:0000E5A8 BEQ loc_E5C4 .text:0000E5AC LDR R3, =(main_arena+0x410) .text:0000E5B0 MOV R0, R3 .text:0000E5B4 MOV R6, R3 .text:0000E5B8 MOV LR, PC .text:0000E5BC MOV PC, R2 .text:0000E5C0 B loc_E5D4 .text:0000E5C4 ; --------------------------------------------------------------------------- .text:0000E5C4 .text:0000E5C4 loc_E5C4 ; CODE XREF: malloc_check+5Cj .text:0000E5C4 LDR R2, =(main_arena+0x410) .text:0000E5C8 MOV R3, #1 .text:0000E5CC MOV R6, R2 .text:0000E5D0 STR R3, [R2] .text:0000E5D4 .text:0000E5D4 loc_E5D4 ; CODE XREF: malloc_check+74j .text:0000E5D4 BL top_check .text:0000E5D8 CMP R0, #0 .text:0000E5DC BLT loc_E5F4 .text:0000E5E0 LDR R0, =main_arena .text:0000E5E4 MOV R1, R4 .text:0000E5E8 BL chunk_alloc .text:0000E5EC MOV R4, R0 .text:0000E5F0 B loc_E5F8 .text:0000E5F4 ; --------------------------------------------------------------------------- .text:0000E5F4 .text:0000E5F4 loc_E5F4 ; CODE XREF: malloc_check+90j .text:0000E5F4 MOV R4, #0 .text:0000E5F8 .text:0000E5F8 loc_E5F8 ; CODE XREF: malloc_check+A4j .text:0000E5F8 LDR R3, =0 .text:0000E5FC CMP R3, #0 .text:0000E600 BEQ loc_E614 .text:0000E604 MOV R0, R6 .text:0000E608 MOV LR, PC .text:0000E60C MOV PC, R3 .text:0000E610 B loc_E618 .text:0000E614 ; --------------------------------------------------------------------------- .text:0000E614 .text:0000E614 loc_E614 ; CODE XREF: malloc_check+B4j .text:0000E614 STR R3, [R6] .text:0000E618 .text:0000E618 loc_E618 ; CODE XREF: malloc_check+C4j .text:0000E618 CMP R4, #0 .text:0000E61C MOV R0, #0 .text:0000E620 LDMEQDB R11, {R4-R6,R11,SP,PC} .text:0000E624 MOV R0, R4 .text:0000E628 MOV R1, R5 .text:0000E62C BL chunk2mem_check .text:0000E630 LDMDB R11, {R4-R6,R11,SP,PC} .text:0000E630 ; End of function malloc_check .text:0000E630 .text:0000E630 ; --------------------------------------------------------------------------- .text:0000E634 off_E634 DCD 0 ; DATA XREF: malloc_check:loc_E5A0r .text:0000E638 off_E638 DCD main_arena+0x410 ; DATA XREF: malloc_check+60r .text:0000E638 ; malloc_check:loc_E5C4r .text:0000E63C off_E63C DCD main_arena ; DATA XREF: malloc_check+94r .text:0000E640 off_E640 DCD 0 ; DATA XREF: malloc_check:loc_E5F8r .text:0000E644 .text:0000E644 ; =============== S U B R O U T I N E ======================================= .text:0000E644 .text:0000E644 ; Attributes: bp-based frame .text:0000E644 .text:0000E644 free_check ; DATA XREF: __malloc_check_init+40o .text:0000E644 ; .text:off_B3ACo .text:0000E644 MOV R12, SP .text:0000E648 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:0000E64C SUB R11, R12, #4 .text:0000E650 SUBS R6, R0, #0 .text:0000E654 LDMEQDB R11, {R4-R6,R11,SP,PC} .text:0000E658 LDR R2, =0 .text:0000E65C CMP R2, #0 .text:0000E660 BEQ loc_E67C .text:0000E664 LDR R3, =(main_arena+0x410) .text:0000E668 MOV R0, R3 .text:0000E66C MOV R5, R3 .text:0000E670 MOV LR, PC .text:0000E674 MOV PC, R2 .text:0000E678 B loc_E68C .text:0000E67C ; --------------------------------------------------------------------------- .text:0000E67C .text:0000E67C loc_E67C ; CODE XREF: free_check+1Cj .text:0000E67C LDR R2, =(main_arena+0x410) .text:0000E680 MOV R3, #1 .text:0000E684 MOV R5, R2 .text:0000E688 STR R3, [R2] .text:0000E68C .text:0000E68C loc_E68C ; CODE XREF: free_check+34j .text:0000E68C MOV R0, R6 .text:0000E690 BL mem2chunk_check .text:0000E694 SUBS R4, R0, #0 .text:0000E698 BNE loc_E6F0 .text:0000E69C LDR R3, =0 .text:0000E6A0 CMP R3, #0 .text:0000E6A4 BEQ loc_E6B8 .text:0000E6A8 MOV R0, R5 .text:0000E6AC MOV LR, PC .text:0000E6B0 MOV PC, R3 .text:0000E6B4 B loc_E6BC .text:0000E6B8 ; --------------------------------------------------------------------------- .text:0000E6B8 .text:0000E6B8 loc_E6B8 ; CODE XREF: free_check+60j .text:0000E6B8 STR R4, [R5] .text:0000E6BC .text:0000E6BC loc_E6BC ; CODE XREF: free_check+70j .text:0000E6BC LDR R4, =check_action .text:0000E6C0 LDR R3, [R4] .text:0000E6C4 TST R3, #1 .text:0000E6C8 BEQ loc_E6E0 .text:0000E6CC LDR R3, =stderr .text:0000E6D0 LDR R1, =aFreeInvalidPoi ; "free(): invalid pointer %p!\n" .text:0000E6D4 LDR R0, [R3] .text:0000E6D8 MOV R2, R6 .text:0000E6DC BL fprintf .text:0000E6E0 .text:0000E6E0 loc_E6E0 ; CODE XREF: free_check+84j .text:0000E6E0 LDR R3, [R4] .text:0000E6E4 TST R3, #2 .text:0000E6E8 LDMEQDB R11, {R4-R6,R11,SP,PC} .text:0000E6EC BL abort .text:0000E6F0 ; --------------------------------------------------------------------------- .text:0000E6F0 .text:0000E6F0 loc_E6F0 ; CODE XREF: free_check+54j .text:0000E6F0 LDR R3, [R4,#4] .text:0000E6F4 TST R3, #2 .text:0000E6F8 BEQ loc_E728 .text:0000E6FC LDR R3, =0 .text:0000E700 CMP R3, #0 .text:0000E704 BEQ loc_E718 .text:0000E708 MOV R0, R5 .text:0000E70C MOV LR, PC .text:0000E710 MOV PC, R3 .text:0000E714 B loc_E71C .text:0000E718 ; --------------------------------------------------------------------------- .text:0000E718 .text:0000E718 loc_E718 ; CODE XREF: free_check+C0j .text:0000E718 STR R3, [R5] .text:0000E71C .text:0000E71C loc_E71C ; CODE XREF: free_check+D0j .text:0000E71C MOV R0, R4 .text:0000E720 BL munmap_chunk .text:0000E724 LDMDB R11, {R4-R6,R11,SP,PC} .text:0000E728 ; --------------------------------------------------------------------------- .text:0000E728 .text:0000E728 loc_E728 ; CODE XREF: free_check+B4j .text:0000E728 LDR R5, =main_arena .text:0000E72C MOV R1, R4 .text:0000E730 MOV R0, R5 .text:0000E734 BL chunk_free .text:0000E738 LDR R3, =0 .text:0000E73C CMP R3, #0 .text:0000E740 BEQ loc_E754 .text:0000E744 ADD R0, R5, #0x410 .text:0000E748 MOV LR, PC .text:0000E74C MOV PC, R3 .text:0000E750 LDMDB R11, {R4-R6,R11,SP,PC} .text:0000E754 ; --------------------------------------------------------------------------- .text:0000E754 .text:0000E754 loc_E754 ; CODE XREF: free_check+FCj .text:0000E754 STR R3, [R5,#(main_arena+0x410 - 0x6B1E4)] .text:0000E758 LDMDB R11, {R4-R6,R11,SP,PC} .text:0000E758 ; End of function free_check .text:0000E758 .text:0000E758 ; --------------------------------------------------------------------------- .text:0000E75C off_E75C DCD 0 ; DATA XREF: free_check+14r .text:0000E760 off_E760 DCD main_arena+0x410 ; DATA XREF: free_check+20r .text:0000E760 ; free_check:loc_E67Cr .text:0000E764 off_E764 DCD 0 ; DATA XREF: free_check+58r .text:0000E764 ; free_check+B8r ... .text:0000E768 off_E768 DCD check_action ; DATA XREF: free_check:loc_E6BCr .text:0000E76C off_E76C DCD stderr ; DATA XREF: free_check+88r .text:0000E770 off_E770 DCD aFreeInvalidPoi ; DATA XREF: free_check+8Cr .text:0000E770 ; "free(): invalid pointer %p!\n" .text:0000E774 off_E774 DCD main_arena ; DATA XREF: free_check:loc_E728r .text:0000E778 .text:0000E778 ; =============== S U B R O U T I N E ======================================= .text:0000E778 .text:0000E778 ; Attributes: bp-based frame .text:0000E778 .text:0000E778 realloc_check ; DATA XREF: __malloc_check_init+4Co .text:0000E778 ; .text:off_B3B4o .text:0000E778 MOV R12, SP .text:0000E77C STMFD SP!, {R4-R12,LR,PC} .text:0000E780 SUB R11, R12, #4 .text:0000E784 MOV R10, R1 .text:0000E788 SUBS R6, R0, #0 .text:0000E78C BNE loc_E7A0 .text:0000E790 MOV R0, R10 .text:0000E794 MOV R1, R6 .text:0000E798 BL malloc_check .text:0000E79C LDMDB R11, {R4-R11,SP,PC} .text:0000E7A0 ; --------------------------------------------------------------------------- .text:0000E7A0 .text:0000E7A0 loc_E7A0 ; CODE XREF: realloc_check+14j .text:0000E7A0 LDR R2, =0 .text:0000E7A4 CMP R2, #0 .text:0000E7A8 BEQ loc_E7C4 .text:0000E7AC LDR R3, =(main_arena+0x410) .text:0000E7B0 MOV R0, R3 .text:0000E7B4 MOV R9, R3 .text:0000E7B8 MOV LR, PC .text:0000E7BC MOV PC, R2 .text:0000E7C0 B loc_E7D4 .text:0000E7C4 ; --------------------------------------------------------------------------- .text:0000E7C4 .text:0000E7C4 loc_E7C4 ; CODE XREF: realloc_check+30j .text:0000E7C4 LDR R2, =(main_arena+0x410) .text:0000E7C8 MOV R3, #1 .text:0000E7CC MOV R9, R2 .text:0000E7D0 STR R3, [R2] .text:0000E7D4 .text:0000E7D4 loc_E7D4 ; CODE XREF: realloc_check+48j .text:0000E7D4 MOV R0, R6 .text:0000E7D8 BL mem2chunk_check .text:0000E7DC SUBS R8, R0, #0 .text:0000E7E0 BNE loc_E844 .text:0000E7E4 LDR R3, =0 .text:0000E7E8 CMP R3, #0 .text:0000E7EC BEQ loc_E800 .text:0000E7F0 MOV R0, R9 .text:0000E7F4 MOV LR, PC .text:0000E7F8 MOV PC, R3 .text:0000E7FC B loc_E804 .text:0000E800 ; --------------------------------------------------------------------------- .text:0000E800 .text:0000E800 loc_E800 ; CODE XREF: realloc_check+74j .text:0000E800 STR R8, [R9] .text:0000E804 .text:0000E804 loc_E804 ; CODE XREF: realloc_check+84j .text:0000E804 LDR R4, =check_action .text:0000E808 LDR R3, [R4] .text:0000E80C TST R3, #1 .text:0000E810 BEQ loc_E828 .text:0000E814 LDR R3, =stderr .text:0000E818 LDR R1, =aReallocInvalid ; "realloc(): invalid pointer %p!\n" .text:0000E81C LDR R0, [R3] .text:0000E820 MOV R2, R6 .text:0000E824 BL fprintf .text:0000E828 .text:0000E828 loc_E828 ; CODE XREF: realloc_check+98j .text:0000E828 LDR R3, [R4] .text:0000E82C ANDS R1, R3, #2 .text:0000E830 BEQ loc_E838 .text:0000E834 BL abort .text:0000E838 ; --------------------------------------------------------------------------- .text:0000E838 .text:0000E838 loc_E838 ; CODE XREF: realloc_check+B8j .text:0000E838 MOV R0, R10 .text:0000E83C BL malloc_check .text:0000E840 LDMDB R11, {R4-R11,SP,PC} .text:0000E844 ; --------------------------------------------------------------------------- .text:0000E844 .text:0000E844 loc_E844 ; CODE XREF: realloc_check+68j .text:0000E844 ADD R5, R10, #0xC .text:0000E848 LDR R3, [R8,#4] .text:0000E84C CMP R5, #0 .text:0000E850 BIC R7, R3, #3 .text:0000E854 MOV R2, R3 .text:0000E858 BLE loc_E868 .text:0000E85C ADD R3, R10, #1 .text:0000E860 CMP R5, R3 .text:0000E864 BCS loc_E878 .text:0000E868 .text:0000E868 loc_E868 ; CODE XREF: realloc_check+E0j .text:0000E868 BL __errno_location .text:0000E86C MOV R3, #0xC .text:0000E870 STR R3, [R0] .text:0000E874 B loc_E88C .text:0000E878 ; --------------------------------------------------------------------------- .text:0000E878 .text:0000E878 loc_E878 ; CODE XREF: realloc_check+ECj .text:0000E878 CMP R5, #0x16 .text:0000E87C MOVLS R5, #0x10 .text:0000E880 BLS loc_E8B4 .text:0000E884 BIC R5, R5, #7 .text:0000E888 B loc_E8B4 .text:0000E88C ; --------------------------------------------------------------------------- .text:0000E88C .text:0000E88C loc_E88C ; CODE XREF: realloc_check+FCj .text:0000E88C LDR R3, =0 .text:0000E890 CMP R3, #0 .text:0000E894 BEQ loc_E8A8 .text:0000E898 MOV R0, R9 .text:0000E89C MOV LR, PC .text:0000E8A0 MOV PC, R3 .text:0000E8A4 B loc_E8AC .text:0000E8A8 ; --------------------------------------------------------------------------- .text:0000E8A8 .text:0000E8A8 loc_E8A8 ; CODE XREF: realloc_check+11Cj .text:0000E8A8 STR R3, [R9] .text:0000E8AC .text:0000E8AC loc_E8AC ; CODE XREF: realloc_check+12Cj .text:0000E8AC MOV R0, #0 .text:0000E8B0 LDMDB R11, {R4-R11,SP,PC} .text:0000E8B4 ; --------------------------------------------------------------------------- .text:0000E8B4 .text:0000E8B4 loc_E8B4 ; CODE XREF: realloc_check+108j .text:0000E8B4 ; realloc_check+110j .text:0000E8B4 ANDS R4, R2, #2 .text:0000E8B8 BEQ loc_E9A4 .text:0000E8BC MOV R0, R8 .text:0000E8C0 MOV R1, R5 .text:0000E8C4 BL mremap_chunk .text:0000E8C8 SUBS R4, R0, #0 .text:0000E8CC BNE loc_E9C8 .text:0000E8D0 SUB R3, R7, #4 .text:0000E8D4 CMP R3, R5 .text:0000E8D8 MOVCS R4, R8 .text:0000E8DC BCS loc_E9C8 .text:0000E8E0 BL top_check .text:0000E8E4 CMP R0, #0 .text:0000E8E8 BLT loc_E8FC .text:0000E8EC LDR R0, =main_arena .text:0000E8F0 MOV R1, R5 .text:0000E8F4 BL chunk_alloc .text:0000E8F8 MOV R4, R0 .text:0000E8FC .text:0000E8FC loc_E8FC ; CODE XREF: realloc_check+170j .text:0000E8FC CMP R4, #0 .text:0000E900 BEQ loc_E9C8 .text:0000E904 SUB R2, R7, #8 .text:0000E908 CMP R2, #0x24 .text:0000E90C BHI loc_E98C .text:0000E910 MOV R12, R6 .text:0000E914 ADD R1, R4, #8 .text:0000E918 CMP R2, #0x13 .text:0000E91C BLS loc_E970 .text:0000E920 LDR R3, [R12],#4 .text:0000E924 STR R3, [R4,#8] .text:0000E928 ADD R1, R4, #0x10 .text:0000E92C CMP R2, #0x1B .text:0000E930 LDR R3, [R6,#4] .text:0000E934 ADD R12, R12, #4 .text:0000E938 STR R3, [R4,#0xC] .text:0000E93C BLS loc_E970 .text:0000E940 LDR R3, [R12],#4 .text:0000E944 STR R3, [R4,#0x10] .text:0000E948 ADD R1, R4, #0x18 .text:0000E94C LDR R3, [R12],#4 .text:0000E950 CMP R2, #0x23 .text:0000E954 STR R3, [R4,#0x14] .text:0000E958 BLS loc_E970 .text:0000E95C LDR R3, [R12],#4 .text:0000E960 STR R3, [R4,#0x18] .text:0000E964 LDR R2, [R12],#4 .text:0000E968 ADD R1, R4, #0x20 .text:0000E96C STR R2, [R4,#0x1C] .text:0000E970 .text:0000E970 loc_E970 ; CODE XREF: realloc_check+1A4j .text:0000E970 ; realloc_check+1C4j ... .text:0000E970 LDR R3, [R12],#4 .text:0000E974 STR R3, [R1],#4 .text:0000E978 LDR R2, [R12],#4 .text:0000E97C STR R2, [R1],#4 .text:0000E980 LDR R3, [R12] .text:0000E984 STR R3, [R1] .text:0000E988 B loc_E998 .text:0000E98C ; --------------------------------------------------------------------------- .text:0000E98C .text:0000E98C loc_E98C ; CODE XREF: realloc_check+194j .text:0000E98C ADD R0, R4, #8 .text:0000E990 MOV R1, R6 .text:0000E994 BL memcpy .text:0000E998 .text:0000E998 loc_E998 ; CODE XREF: realloc_check+210j .text:0000E998 MOV R0, R8 .text:0000E99C BL munmap_chunk .text:0000E9A0 B loc_E9C8 .text:0000E9A4 ; --------------------------------------------------------------------------- .text:0000E9A4 .text:0000E9A4 loc_E9A4 ; CODE XREF: realloc_check+140j .text:0000E9A4 BL top_check .text:0000E9A8 CMP R0, #0 .text:0000E9AC BLT loc_E9C8 .text:0000E9B0 MOV R1, R8 .text:0000E9B4 MOV R2, R7 .text:0000E9B8 LDR R0, =main_arena .text:0000E9BC MOV R3, R5 .text:0000E9C0 BL chunk_realloc .text:0000E9C4 MOV R4, R0 .text:0000E9C8 .text:0000E9C8 loc_E9C8 ; CODE XREF: realloc_check+154j .text:0000E9C8 ; realloc_check+164j ... .text:0000E9C8 LDR R3, =0 .text:0000E9CC CMP R3, #0 .text:0000E9D0 BEQ loc_E9E4 .text:0000E9D4 MOV R0, R9 .text:0000E9D8 MOV LR, PC .text:0000E9DC MOV PC, R3 .text:0000E9E0 B loc_E9E8 .text:0000E9E4 ; --------------------------------------------------------------------------- .text:0000E9E4 .text:0000E9E4 loc_E9E4 ; CODE XREF: realloc_check+258j .text:0000E9E4 STR R3, [R9] .text:0000E9E8 .text:0000E9E8 loc_E9E8 ; CODE XREF: realloc_check+268j .text:0000E9E8 CMP R4, #0 .text:0000E9EC MOV R0, #0 .text:0000E9F0 LDMEQDB R11, {R4-R11,SP,PC} .text:0000E9F4 MOV R0, R4 .text:0000E9F8 MOV R1, R10 .text:0000E9FC BL chunk2mem_check .text:0000EA00 LDMDB R11, {R4-R11,SP,PC} .text:0000EA00 ; End of function realloc_check .text:0000EA00 .text:0000EA00 ; --------------------------------------------------------------------------- .text:0000EA04 off_EA04 DCD 0 ; DATA XREF: realloc_check:loc_E7A0r .text:0000EA08 off_EA08 DCD main_arena+0x410 ; DATA XREF: realloc_check+34r .text:0000EA08 ; realloc_check:loc_E7C4r .text:0000EA0C off_EA0C DCD 0 ; DATA XREF: realloc_check+6Cr .text:0000EA0C ; realloc_check:loc_E88Cr ... .text:0000EA10 off_EA10 DCD check_action ; DATA XREF: realloc_check:loc_E804r .text:0000EA14 off_EA14 DCD stderr ; DATA XREF: realloc_check+9Cr .text:0000EA18 off_EA18 DCD aReallocInvalid ; DATA XREF: realloc_check+A0r .text:0000EA18 ; "realloc(): invalid pointer %p!\n" .text:0000EA1C off_EA1C DCD main_arena ; DATA XREF: realloc_check+174r .text:0000EA1C ; realloc_check+240r .text:0000EA20 .text:0000EA20 ; =============== S U B R O U T I N E ======================================= .text:0000EA20 .text:0000EA20 ; Attributes: bp-based frame .text:0000EA20 .text:0000EA20 memalign_check ; DATA XREF: __malloc_check_init+58o .text:0000EA20 ; .text:off_B3BCo .text:0000EA20 MOV R12, SP .text:0000EA24 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0000EA28 SUB R11, R12, #4 .text:0000EA2C MOV R5, R0 .text:0000EA30 CMP R5, #8 .text:0000EA34 MOV R6, R1 .text:0000EA38 BHI loc_EA4C .text:0000EA3C MOV R0, R6 .text:0000EA40 MOV R1, #0 .text:0000EA44 BL malloc_check .text:0000EA48 LDMDB R11, {R4-R7,R11,SP,PC} .text:0000EA4C ; --------------------------------------------------------------------------- .text:0000EA4C .text:0000EA4C loc_EA4C ; CODE XREF: memalign_check+18j .text:0000EA4C CMP R5, #0xF .text:0000EA50 MOVLS R5, #0x10 .text:0000EA54 ADD R4, R6, #0xC .text:0000EA58 CMP R4, #0 .text:0000EA5C BLE loc_EA6C .text:0000EA60 ADD R3, R6, #1 .text:0000EA64 CMP R4, R3 .text:0000EA68 BCS loc_EA7C .text:0000EA6C .text:0000EA6C loc_EA6C ; CODE XREF: memalign_check+3Cj .text:0000EA6C BL __errno_location .text:0000EA70 MOV R3, #0xC .text:0000EA74 STR R3, [R0] .text:0000EA78 B loc_EA90 .text:0000EA7C ; --------------------------------------------------------------------------- .text:0000EA7C .text:0000EA7C loc_EA7C ; CODE XREF: memalign_check+48j .text:0000EA7C CMP R4, #0x16 .text:0000EA80 MOVLS R4, #0x10 .text:0000EA84 BLS loc_EA98 .text:0000EA88 BIC R4, R4, #7 .text:0000EA8C B loc_EA98 .text:0000EA90 ; --------------------------------------------------------------------------- .text:0000EA90 .text:0000EA90 loc_EA90 ; CODE XREF: memalign_check+58j .text:0000EA90 MOV R0, #0 .text:0000EA94 LDMDB R11, {R4-R7,R11,SP,PC} .text:0000EA98 ; --------------------------------------------------------------------------- .text:0000EA98 .text:0000EA98 loc_EA98 ; CODE XREF: memalign_check+64j .text:0000EA98 ; memalign_check+6Cj .text:0000EA98 LDR R2, =0 .text:0000EA9C CMP R2, #0 .text:0000EAA0 BEQ loc_EABC .text:0000EAA4 LDR R3, =(main_arena+0x410) .text:0000EAA8 MOV R0, R3 .text:0000EAAC MOV R7, R3 .text:0000EAB0 MOV LR, PC .text:0000EAB4 MOV PC, R2 .text:0000EAB8 B loc_EACC .text:0000EABC ; --------------------------------------------------------------------------- .text:0000EABC .text:0000EABC loc_EABC ; CODE XREF: memalign_check+80j .text:0000EABC LDR R2, =(main_arena+0x410) .text:0000EAC0 MOV R3, #1 .text:0000EAC4 MOV R7, R2 .text:0000EAC8 STR R3, [R2] .text:0000EACC .text:0000EACC loc_EACC ; CODE XREF: memalign_check+98j .text:0000EACC BL top_check .text:0000EAD0 CMP R0, #0 .text:0000EAD4 BLT loc_EAF0 .text:0000EAD8 MOV R1, R4 .text:0000EADC LDR R0, =main_arena .text:0000EAE0 MOV R2, R5 .text:0000EAE4 BL chunk_align .text:0000EAE8 MOV R4, R0 .text:0000EAEC B loc_EAF4 .text:0000EAF0 ; --------------------------------------------------------------------------- .text:0000EAF0 .text:0000EAF0 loc_EAF0 ; CODE XREF: memalign_check+B4j .text:0000EAF0 MOV R4, #0 .text:0000EAF4 .text:0000EAF4 loc_EAF4 ; CODE XREF: memalign_check+CCj .text:0000EAF4 LDR R3, =0 .text:0000EAF8 CMP R3, #0 .text:0000EAFC BEQ loc_EB10 .text:0000EB00 MOV R0, R7 .text:0000EB04 MOV LR, PC .text:0000EB08 MOV PC, R3 .text:0000EB0C B loc_EB14 .text:0000EB10 ; --------------------------------------------------------------------------- .text:0000EB10 .text:0000EB10 loc_EB10 ; CODE XREF: memalign_check+DCj .text:0000EB10 STR R3, [R7] .text:0000EB14 .text:0000EB14 loc_EB14 ; CODE XREF: memalign_check+ECj .text:0000EB14 CMP R4, #0 .text:0000EB18 MOV R0, #0 .text:0000EB1C LDMEQDB R11, {R4-R7,R11,SP,PC} .text:0000EB20 MOV R0, R4 .text:0000EB24 MOV R1, R6 .text:0000EB28 BL chunk2mem_check .text:0000EB2C LDMDB R11, {R4-R7,R11,SP,PC} .text:0000EB2C ; End of function memalign_check .text:0000EB2C .text:0000EB2C ; --------------------------------------------------------------------------- .text:0000EB30 off_EB30 DCD 0 ; DATA XREF: memalign_check:loc_EA98r .text:0000EB34 off_EB34 DCD main_arena+0x410 ; DATA XREF: memalign_check+84r .text:0000EB34 ; memalign_check:loc_EABCr .text:0000EB38 off_EB38 DCD main_arena ; DATA XREF: memalign_check+BCr .text:0000EB3C off_EB3C DCD 0 ; DATA XREF: memalign_check:loc_EAF4r .text:0000EB40 .text:0000EB40 ; =============== S U B R O U T I N E ======================================= .text:0000EB40 .text:0000EB40 ; Attributes: bp-based frame .text:0000EB40 .text:0000EB40 malloc_starter ; DATA XREF: ptmalloc_init+38o .text:0000EB40 ; .text:off_B20Co .text:0000EB40 MOV R12, SP .text:0000EB44 STMFD SP!, {R11,R12,LR,PC} .text:0000EB48 SUB R11, R12, #4 .text:0000EB4C ADD R1, R0, #0xB .text:0000EB50 CMP R1, R0 .text:0000EB54 MOVCS R0, #0 .text:0000EB58 MOVCC R0, #1 .text:0000EB5C CMP R1, #0 .text:0000EB60 MOVLE R0, #1 .text:0000EB64 CMP R0, #0 .text:0000EB68 BEQ loc_EB7C .text:0000EB6C BL __errno_location .text:0000EB70 MOV R3, #0xC .text:0000EB74 STR R3, [R0] .text:0000EB78 B loc_EB90 .text:0000EB7C ; --------------------------------------------------------------------------- .text:0000EB7C .text:0000EB7C loc_EB7C ; CODE XREF: malloc_starter+28j .text:0000EB7C CMP R1, #0x16 .text:0000EB80 MOVLS R1, #0x10 .text:0000EB84 BLS loc_EB98 .text:0000EB88 BIC R1, R1, #7 .text:0000EB8C B loc_EB98 .text:0000EB90 ; --------------------------------------------------------------------------- .text:0000EB90 .text:0000EB90 loc_EB90 ; CODE XREF: malloc_starter+38j .text:0000EB90 MOV R0, #0 .text:0000EB94 LDMDB R11, {R11,SP,PC} .text:0000EB98 ; --------------------------------------------------------------------------- .text:0000EB98 .text:0000EB98 loc_EB98 ; CODE XREF: malloc_starter+44j .text:0000EB98 ; malloc_starter+4Cj .text:0000EB98 LDR R0, =main_arena .text:0000EB9C BL chunk_alloc .text:0000EBA0 CMP R0, #0 .text:0000EBA4 ADDNE R0, R0, #8 .text:0000EBA8 MOVEQ R0, #0 .text:0000EBAC LDMDB R11, {R11,SP,PC} .text:0000EBAC ; End of function malloc_starter .text:0000EBAC .text:0000EBAC ; --------------------------------------------------------------------------- .text:0000EBB0 off_EBB0 DCD main_arena ; DATA XREF: malloc_starter:loc_EB98r .text:0000EBB4 .text:0000EBB4 ; =============== S U B R O U T I N E ======================================= .text:0000EBB4 .text:0000EBB4 ; Attributes: bp-based frame .text:0000EBB4 .text:0000EBB4 free_starter ; DATA XREF: ptmalloc_init+48o .text:0000EBB4 ; .text:off_B214o .text:0000EBB4 MOV R12, SP .text:0000EBB8 STMFD SP!, {R11,R12,LR,PC} .text:0000EBBC SUB R11, R12, #4 .text:0000EBC0 CMP R0, #0 .text:0000EBC4 LDMEQDB R11, {R11,SP,PC} .text:0000EBC8 SUB R1, R0, #8 .text:0000EBCC LDR R3, [R1,#4] .text:0000EBD0 TST R3, #2 .text:0000EBD4 BEQ loc_EBE4 .text:0000EBD8 MOV R0, R1 .text:0000EBDC BL munmap_chunk .text:0000EBE0 LDMDB R11, {R11,SP,PC} .text:0000EBE4 ; --------------------------------------------------------------------------- .text:0000EBE4 .text:0000EBE4 loc_EBE4 ; CODE XREF: free_starter+20j .text:0000EBE4 LDR R0, =main_arena .text:0000EBE8 BL chunk_free .text:0000EBEC LDMDB R11, {R11,SP,PC} .text:0000EBEC ; End of function free_starter .text:0000EBEC .text:0000EBEC ; --------------------------------------------------------------------------- .text:0000EBF0 off_EBF0 DCD main_arena ; DATA XREF: free_starter:loc_EBE4r .text:0000EBF4 .text:0000EBF4 ; =============== S U B R O U T I N E ======================================= .text:0000EBF4 .text:0000EBF4 ; Attributes: bp-based frame .text:0000EBF4 .text:0000EBF4 malloc_atfork ; DATA XREF: ptmalloc_lock_all+74o .text:0000EBF4 ; .text:off_ADBCo .text:0000EBF4 MOV R12, SP .text:0000EBF8 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0000EBFC SUB R11, R12, #4 .text:0000EC00 LDR R3, =__libc_internal_tsd_get .text:0000EC04 MOV R5, R0 .text:0000EC08 LDR R2, [R3] .text:0000EC0C MOV R3, #0 .text:0000EC10 CMP R2, R3 .text:0000EC14 BEQ loc_EC2C .text:0000EC18 MOV R0, R3 .text:0000EC1C MOV LR, PC .text:0000EC20 MOV PC, R2 .text:0000EC24 MOV R3, R0 .text:0000EC28 B loc_EC34 .text:0000EC2C ; --------------------------------------------------------------------------- .text:0000EC2C .text:0000EC2C loc_EC2C ; CODE XREF: malloc_atfork+20j .text:0000EC2C LDR R3, =__libc_tsd_MALLOC_data .text:0000EC30 LDR R3, [R3] .text:0000EC34 .text:0000EC34 loc_EC34 ; CODE XREF: malloc_atfork+34j .text:0000EC34 CMP R3, #0 .text:0000EC38 BNE loc_ED00 .text:0000EC3C LDR R3, =save_malloc_hook .text:0000EC40 LDR R2, =malloc_check .text:0000EC44 LDR R1, [R3] .text:0000EC48 CMP R1, R2 .text:0000EC4C BEQ loc_ECB4 .text:0000EC50 ADD R1, R5, #0xB .text:0000EC54 CMP R1, R5 .text:0000EC58 MOVCS R3, #0 .text:0000EC5C MOVCC R3, #1 .text:0000EC60 CMP R1, #0 .text:0000EC64 MOVLE R3, #1 .text:0000EC68 CMP R3, #0 .text:0000EC6C BEQ loc_EC80 .text:0000EC70 .text:0000EC70 loc_EC70 ; CODE XREF: malloc_atfork+D4j .text:0000EC70 ; malloc_atfork+E0j .text:0000EC70 BL __errno_location .text:0000EC74 MOV R3, #0xC .text:0000EC78 STR R3, [R0] .text:0000EC7C B loc_EC94 .text:0000EC80 ; --------------------------------------------------------------------------- .text:0000EC80 .text:0000EC80 loc_EC80 ; CODE XREF: malloc_atfork+78j .text:0000EC80 CMP R1, #0x16 .text:0000EC84 MOVLS R1, #0x10 .text:0000EC88 BLS loc_EC9C .text:0000EC8C BIC R1, R1, #7 .text:0000EC90 B loc_EC9C .text:0000EC94 ; --------------------------------------------------------------------------- .text:0000EC94 .text:0000EC94 loc_EC94 ; CODE XREF: malloc_atfork+88j .text:0000EC94 ; malloc_atfork+C8j .text:0000EC94 MOV R0, #0 .text:0000EC98 LDMDB R11, {R4,R5,R11,SP,PC} .text:0000EC9C ; --------------------------------------------------------------------------- .text:0000EC9C .text:0000EC9C loc_EC9C ; CODE XREF: malloc_atfork+94j .text:0000EC9C ; malloc_atfork+9Cj .text:0000EC9C LDR R0, =main_arena .text:0000ECA0 BL chunk_alloc .text:0000ECA4 CMP R0, #0 .text:0000ECA8 ADDNE R0, R0, #8 .text:0000ECAC MOVEQ R0, #0 .text:0000ECB0 LDMDB R11, {R4,R5,R11,SP,PC} .text:0000ECB4 ; --------------------------------------------------------------------------- .text:0000ECB4 .text:0000ECB4 loc_ECB4 ; CODE XREF: malloc_atfork+58j .text:0000ECB4 BL top_check .text:0000ECB8 CMP R0, #0 .text:0000ECBC BLT loc_EC94 .text:0000ECC0 ADD R1, R5, #0xC .text:0000ECC4 CMP R1, #0 .text:0000ECC8 BLE loc_EC70 .text:0000ECCC ADD R3, R5, #1 .text:0000ECD0 CMP R1, R3 .text:0000ECD4 BCC loc_EC70 .text:0000ECD8 CMP R1, #0x16 .text:0000ECDC BIC R1, R1, #7 .text:0000ECE0 MOVLS R1, #0x10 .text:0000ECE4 LDR R0, =main_arena .text:0000ECE8 BL chunk_alloc .text:0000ECEC CMP R0, #0 .text:0000ECF0 LDMEQDB R11, {R4,R5,R11,SP,PC} .text:0000ECF4 MOV R1, R5 .text:0000ECF8 BL chunk2mem_check .text:0000ECFC LDMDB R11, {R4,R5,R11,SP,PC} .text:0000ED00 ; --------------------------------------------------------------------------- .text:0000ED00 .text:0000ED00 loc_ED00 ; CODE XREF: malloc_atfork+44j .text:0000ED00 LDR R3, =0 .text:0000ED04 CMP R3, #0 .text:0000ED08 BEQ loc_ED24 .text:0000ED0C LDR R4, =list_lock .text:0000ED10 MOV R0, R4 .text:0000ED14 MOV LR, PC .text:0000ED18 MOV PC, R3 .text:0000ED1C MOV R0, R4 .text:0000ED20 B loc_ED34 .text:0000ED24 ; --------------------------------------------------------------------------- .text:0000ED24 .text:0000ED24 loc_ED24 ; CODE XREF: malloc_atfork+114j .text:0000ED24 LDR R2, =list_lock .text:0000ED28 MOV R3, #1 .text:0000ED2C MOV R0, R2 .text:0000ED30 STR R3, [R2] .text:0000ED34 .text:0000ED34 loc_ED34 ; CODE XREF: malloc_atfork+12Cj .text:0000ED34 LDR R3, =0 .text:0000ED38 CMP R3, #0 .text:0000ED3C BEQ loc_ED4C .text:0000ED40 MOV LR, PC .text:0000ED44 MOV PC, R3 .text:0000ED48 B loc_ED50 .text:0000ED4C ; --------------------------------------------------------------------------- .text:0000ED4C .text:0000ED4C loc_ED4C ; CODE XREF: malloc_atfork+148j .text:0000ED4C STR R3, [R0] .text:0000ED50 .text:0000ED50 loc_ED50 ; CODE XREF: malloc_atfork+154j .text:0000ED50 MOV R0, R5 .text:0000ED54 BL malloc .text:0000ED58 LDMDB R11, {R4,R5,R11,SP,PC} .text:0000ED58 ; End of function malloc_atfork .text:0000ED58 .text:0000ED58 ; --------------------------------------------------------------------------- .text:0000ED5C off_ED5C DCD __libc_internal_tsd_get ; DATA XREF: malloc_atfork+Cr .text:0000ED60 off_ED60 DCD __libc_tsd_MALLOC_data .text:0000ED60 ; DATA XREF: malloc_atfork:loc_EC2Cr .text:0000ED64 off_ED64 DCD save_malloc_hook ; DATA XREF: malloc_atfork+48r .text:0000ED68 off_ED68 DCD malloc_check ; DATA XREF: malloc_atfork+4Cr .text:0000ED6C off_ED6C DCD main_arena ; DATA XREF: malloc_atfork:loc_EC9Cr .text:0000ED6C ; malloc_atfork+F0r .text:0000ED70 off_ED70 DCD 0 ; DATA XREF: malloc_atfork:loc_ED00r .text:0000ED74 off_ED74 DCD list_lock ; DATA XREF: malloc_atfork+118r .text:0000ED74 ; malloc_atfork:loc_ED24r .text:0000ED78 off_ED78 DCD 0 ; DATA XREF: malloc_atfork:loc_ED34r .text:0000ED7C .text:0000ED7C ; =============== S U B R O U T I N E ======================================= .text:0000ED7C .text:0000ED7C ; Attributes: bp-based frame .text:0000ED7C .text:0000ED7C free_atfork ; DATA XREF: ptmalloc_lock_all+84o .text:0000ED7C ; .text:off_ADC0o .text:0000ED7C MOV R12, SP .text:0000ED80 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:0000ED84 SUB R11, R12, #4 .text:0000ED88 CMP R0, #0 .text:0000ED8C LDMEQDB R11, {R4-R6,R11,SP,PC} .text:0000ED90 SUB R6, R0, #8 .text:0000ED94 LDR R3, [R6,#4] .text:0000ED98 TST R3, #2 .text:0000ED9C BEQ loc_EDAC .text:0000EDA0 MOV R0, R6 .text:0000EDA4 BL munmap_chunk .text:0000EDA8 LDMDB R11, {R4-R6,R11,SP,PC} .text:0000EDAC ; --------------------------------------------------------------------------- .text:0000EDAC .text:0000EDAC loc_EDAC ; CODE XREF: free_atfork+20j .text:0000EDAC LDR R0, =main_arena .text:0000EDB0 LDR R3, [R0,#(main_arena+8 - 0x6B1E4)] .text:0000EDB4 CMP R6, R3 .text:0000EDB8 BCS loc_EDCC .text:0000EDBC LDR R3, =sbrk_base .text:0000EDC0 LDR R2, [R3] .text:0000EDC4 CMP R6, R2 .text:0000EDC8 BCS loc_EDDC .text:0000EDCC .text:0000EDCC loc_EDCC ; CODE XREF: free_atfork+3Cj .text:0000EDCC MOV R3, R6,LSR#20 .text:0000EDD0 MOV R3, R3,LSL#20 .text:0000EDD4 LDR R5, [R3] .text:0000EDD8 B loc_EDE0 .text:0000EDDC ; --------------------------------------------------------------------------- .text:0000EDDC .text:0000EDDC loc_EDDC ; CODE XREF: free_atfork+4Cj .text:0000EDDC MOV R5, R0 .text:0000EDE0 .text:0000EDE0 loc_EDE0 ; CODE XREF: free_atfork+5Cj .text:0000EDE0 LDR R3, =__libc_internal_tsd_get .text:0000EDE4 LDR R3, [R3] .text:0000EDE8 CMP R3, #0 .text:0000EDEC BEQ loc_EE04 .text:0000EDF0 MOV R0, #0 .text:0000EDF4 MOV LR, PC .text:0000EDF8 MOV PC, R3 .text:0000EDFC MOV R4, R0 .text:0000EE00 B loc_EE0C .text:0000EE04 ; --------------------------------------------------------------------------- .text:0000EE04 .text:0000EE04 loc_EE04 ; CODE XREF: free_atfork+70j .text:0000EE04 LDR R3, =__libc_tsd_MALLOC_data .text:0000EE08 LDR R4, [R3] .text:0000EE0C .text:0000EE0C loc_EE0C ; CODE XREF: free_atfork+84j .text:0000EE0C CMP R4, #0 .text:0000EE10 BEQ loc_EE38 .text:0000EE14 LDR R3, =0 .text:0000EE18 CMP R3, #0 .text:0000EE1C BEQ loc_EE30 .text:0000EE20 ADD R0, R5, #0x410 .text:0000EE24 MOV LR, PC .text:0000EE28 MOV PC, R3 .text:0000EE2C B loc_EE38 .text:0000EE30 ; --------------------------------------------------------------------------- .text:0000EE30 .text:0000EE30 loc_EE30 ; CODE XREF: free_atfork+A0j .text:0000EE30 MOV R3, #1 .text:0000EE34 STR R3, [R5,#0x410] .text:0000EE38 .text:0000EE38 loc_EE38 ; CODE XREF: free_atfork+94j .text:0000EE38 ; free_atfork+B0j .text:0000EE38 MOV R0, R5 .text:0000EE3C MOV R1, R6 .text:0000EE40 BL chunk_free .text:0000EE44 CMP R4, #0 .text:0000EE48 LDMEQDB R11, {R4-R6,R11,SP,PC} .text:0000EE4C LDR R3, =0 .text:0000EE50 CMP R3, #0 .text:0000EE54 BEQ loc_EE68 .text:0000EE58 ADD R0, R5, #0x410 .text:0000EE5C MOV LR, PC .text:0000EE60 MOV PC, R3 .text:0000EE64 LDMDB R11, {R4-R6,R11,SP,PC} .text:0000EE68 ; --------------------------------------------------------------------------- .text:0000EE68 .text:0000EE68 loc_EE68 ; CODE XREF: free_atfork+D8j .text:0000EE68 STR R3, [R5,#0x410] .text:0000EE6C LDMDB R11, {R4-R6,R11,SP,PC} .text:0000EE6C ; End of function free_atfork .text:0000EE6C .text:0000EE6C ; --------------------------------------------------------------------------- .text:0000EE70 off_EE70 DCD main_arena ; DATA XREF: free_atfork:loc_EDACr .text:0000EE74 off_EE74 DCD sbrk_base ; DATA XREF: free_atfork+40r .text:0000EE78 off_EE78 DCD __libc_internal_tsd_get .text:0000EE78 ; DATA XREF: free_atfork:loc_EDE0r .text:0000EE7C off_EE7C DCD __libc_tsd_MALLOC_data ; DATA XREF: free_atfork:loc_EE04r .text:0000EE80 off_EE80 DCD 0 ; DATA XREF: free_atfork+98r .text:0000EE84 off_EE84 DCD 0 ; DATA XREF: free_atfork+D0r .text:0000EE88 .text:0000EE88 ; =============== S U B R O U T I N E ======================================= .text:0000EE88 .text:0000EE88 ; Attributes: bp-based frame .text:0000EE88 .text:0000EE88 WEAK posix_memalign .text:0000EE88 posix_memalign .text:0000EE88 MOV R12, SP .text:0000EE8C STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0000EE90 SUB R11, R12, #4 .text:0000EE94 TST R2, #3 .text:0000EE98 MOV R5, R0 .text:0000EE9C MOV R0, R1 .text:0000EEA0 BNE loc_EEB0 .text:0000EEA4 SUB R3, R2, #1 .text:0000EEA8 ANDS R4, R2, R3 .text:0000EEAC BEQ loc_EEB8 .text:0000EEB0 .text:0000EEB0 loc_EEB0 ; CODE XREF: posix_memalign+18j .text:0000EEB0 MOV R0, #0x16 .text:0000EEB4 LDMDB R11, {R4,R5,R11,SP,PC} .text:0000EEB8 ; --------------------------------------------------------------------------- .text:0000EEB8 .text:0000EEB8 loc_EEB8 ; CODE XREF: posix_memalign+24j .text:0000EEB8 MOV R1, R2 .text:0000EEBC BL memalign .text:0000EEC0 SUBS R3, R0, #0 .text:0000EEC4 MOV R0, #0xC .text:0000EEC8 LDMEQDB R11, {R4,R5,R11,SP,PC} .text:0000EECC MOV R0, R4 .text:0000EED0 STR R3, [R5] .text:0000EED4 LDMDB R11, {R4,R5,R11,SP,PC} .text:0000EED4 ; End of function posix_memalign .text:0000EED4 .text:0000EED8 .text:0000EED8 ; =============== S U B R O U T I N E ======================================= .text:0000EED8 .text:0000EED8 ; Attributes: bp-based frame .text:0000EED8 .text:0000EED8 EXPORT __default_morecore .text:0000EED8 __default_morecore .text:0000EED8 MOV R12, SP .text:0000EEDC STMFD SP!, {R11,R12,LR,PC} .text:0000EEE0 SUB R11, R12, #4 .text:0000EEE4 BL sbrk .text:0000EEE8 CMN R0, #1 .text:0000EEEC MOVEQ R0, #0 .text:0000EEF0 LDMDB R11, {R11,SP,PC} .text:0000EEF0 ; End of function __default_morecore .text:0000EEF0 .text:0000EEF4 .text:0000EEF4 ; =============== S U B R O U T I N E ======================================= .text:0000EEF4 .text:0000EEF4 ; Attributes: bp-based frame .text:0000EEF4 .text:0000EEF4 WEAK strerror_r .text:0000EEF4 strerror_r ; CODE XREF: perror+50p .text:0000EEF4 ; _dl_signal_error+E4p ... .text:0000EEF4 .text:0000EEF4 var_2C = -0x2C .text:0000EEF4 var_28 = -0x28 .text:0000EEF4 .text:0000EEF4 MOV R12, SP .text:0000EEF8 STMFD SP!, {R4-R12,LR,PC} .text:0000EEFC SUB R11, R12, #4 .text:0000EF00 MOV R10, R1 .text:0000EF04 MOV R7, R2 .text:0000EF08 SUBS R4, R0, #0 .text:0000EF0C SUB SP, SP, #0x18 .text:0000EF10 BLT loc_EF34 .text:0000EF14 LDR R3, =sys_nerr .text:0000EF18 LDR R2, [R3] .text:0000EF1C CMP R4, R2 .text:0000EF20 BGE loc_EF34 .text:0000EF24 LDR R3, =sys_errlist .text:0000EF28 LDR R1, [R3,R4,LSL#2] .text:0000EF2C CMP R1, #0 .text:0000EF30 BNE loc_EFF0 .text:0000EF34 .text:0000EF34 loc_EF34 ; CODE XREF: strerror_r+1Cj .text:0000EF34 ; strerror_r+2Cj .text:0000EF34 LDR R0, =_libc_intl_domainname ; "libc" .text:0000EF38 LDR R1, =aUnknownError ; "Unknown error " .text:0000EF3C MOV R2, #5 .text:0000EF40 LDR R9, =_itoa_lower_digits .text:0000EF44 BL dcgettext .text:0000EF48 MOV R8, R0 .text:0000EF4C BL strlen .text:0000EF50 MOV R6, R0 .text:0000EF54 SUB R5, R11, #-var_2C .text:0000EF58 MOV R3, #0 .text:0000EF5C STRB R3, [R11,#var_2C] .text:0000EF60 .text:0000EF60 loc_EF60 ; CODE XREF: strerror_r+90j .text:0000EF60 MOV R0, R4 .text:0000EF64 MOV R1, #0xA .text:0000EF68 BL __umodsi3 .text:0000EF6C LDRB R3, [R9,R0] .text:0000EF70 STRB R3, [R5,#-1]! .text:0000EF74 MOV R0, R4 .text:0000EF78 MOV R1, #0xA .text:0000EF7C BL __udivsi3 .text:0000EF80 SUBS R4, R0, #0 .text:0000EF84 BNE loc_EF60 .text:0000EF88 MOV R0, R10 .text:0000EF8C MOV R1, R8 .text:0000EF90 CMP R7, R6 .text:0000EF94 MOVCC R2, R7 .text:0000EF98 MOVCS R2, R6 .text:0000EF9C BL mempcpy .text:0000EFA0 CMP R6, R7 .text:0000EFA4 BCS loc_EFC8 .text:0000EFA8 MOV R1, R5 .text:0000EFAC SUB R2, R11, #-var_28 .text:0000EFB0 RSB R3, R5, R2 .text:0000EFB4 SUB R3, R3, #3 .text:0000EFB8 RSB R2, R6, R7 .text:0000EFBC CMP R3, R2 .text:0000EFC0 MOVCC R2, R3 .text:0000EFC4 BL memcpy .text:0000EFC8 .text:0000EFC8 loc_EFC8 ; CODE XREF: strerror_r+B0j .text:0000EFC8 CMP R7, #0 .text:0000EFCC ADDNE R3, R7, R10 .text:0000EFD0 STRNEB R4, [R3,#-1] .text:0000EFD4 MOV R0, R10 .text:0000EFD8 B loc_EFFC .text:0000EFD8 ; --------------------------------------------------------------------------- .text:0000EFDC off_EFDC DCD sys_nerr ; DATA XREF: strerror_r+20r .text:0000EFE0 off_EFE0 DCD sys_errlist ; DATA XREF: strerror_r+30r .text:0000EFE4 off_EFE4 DCD _libc_intl_domainname ; DATA XREF: strerror_r:loc_EF34r .text:0000EFE4 ; "libc" .text:0000EFE8 off_EFE8 DCD aUnknownError ; DATA XREF: strerror_r+44r .text:0000EFE8 ; "Unknown error " .text:0000EFEC off_EFEC DCD _itoa_lower_digits ; DATA XREF: strerror_r+4Cr .text:0000EFF0 ; --------------------------------------------------------------------------- .text:0000EFF0 .text:0000EFF0 loc_EFF0 ; CODE XREF: strerror_r+3Cj .text:0000EFF0 LDR R0, =_libc_intl_domainname ; "libc" .text:0000EFF4 MOV R2, #5 .text:0000EFF8 BL dcgettext .text:0000EFFC .text:0000EFFC loc_EFFC ; CODE XREF: strerror_r+E4j .text:0000EFFC B locret_F004 .text:0000EFFC ; --------------------------------------------------------------------------- .text:0000F000 off_F000 DCD _libc_intl_domainname ; DATA XREF: strerror_r:loc_EFF0r .text:0000F000 ; "libc" .text:0000F004 ; --------------------------------------------------------------------------- .text:0000F004 .text:0000F004 locret_F004 ; CODE XREF: strerror_r:loc_EFFCj .text:0000F004 LDMDB R11, {R4-R11,SP,PC} .text:0000F004 ; End of function strerror_r .text:0000F004 .text:0000F004 ; --------------------------------------------------------------------------- .text:0000F008 ALIGN 0x10 .text:0000F010 .text:0000F010 ; =============== S U B R O U T I N E ======================================= .text:0000F010 .text:0000F010 .text:0000F010 EXPORT strlen .text:0000F010 strlen ; CODE XREF: _IO_str_init_static+24p .text:0000F010 ; strerror_r+58p ... .text:0000F010 BIC R1, R0, #3 .text:0000F014 LDR R2, [R1],#4 .text:0000F018 ANDS R3, R0, #3 .text:0000F01C RSB R0, R3, #0 .text:0000F020 BEQ Laligned .text:0000F024 ORR R2, R2, #0xFF .text:0000F028 SUBS R3, R3, #1 .text:0000F02C ORRGT R2, R2, #0xFF00 .text:0000F030 SUBS R3, R3, #1 .text:0000F034 ORRGT R2, R2, #0xFF0000 .text:0000F038 .text:0000F038 Laligned ; CODE XREF: strlen+10j .text:0000F038 ; strlen+40j .text:0000F038 TST R2, #0xFF .text:0000F03C TSTNE R2, #0xFF00 .text:0000F040 TSTNE R2, #0xFF0000 .text:0000F044 TSTNE R2, #0xFF000000 .text:0000F048 ADDNE R0, R0, #4 .text:0000F04C LDRNE R2, [R1],#4 .text:0000F050 BNE Laligned .text:0000F054 .text:0000F054 Llastword .text:0000F054 TST R2, #0xFF .text:0000F058 ADDNE R0, R0, #1 .text:0000F05C TSTNE R2, #0xFF00 .text:0000F060 ADDNE R0, R0, #1 .text:0000F064 TSTNE R2, #0xFF0000 .text:0000F068 ADDNE R0, R0, #1 .text:0000F06C RET .text:0000F06C ; End of function strlen .text:0000F06C .text:0000F070 .text:0000F070 ; =============== S U B R O U T I N E ======================================= .text:0000F070 .text:0000F070 ; Attributes: bp-based frame .text:0000F070 .text:0000F070 EXPORT memmove .text:0000F070 memmove ; CODE XREF: save_for_backup+DCp .text:0000F070 ; chunk_realloc+1C8p ... .text:0000F070 MOV R12, SP .text:0000F074 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0000F078 SUB R11, R12, #4 .text:0000F07C MOV R4, R2 .text:0000F080 MOV R7, R0 .text:0000F084 MOV R6, R7 .text:0000F088 MOV R5, R1 .text:0000F08C RSB R3, R5, R7 .text:0000F090 CMP R3, R4 .text:0000F094 BCC loc_F120 .text:0000F098 CMP R4, #0xF .text:0000F09C BLS loc_F100 .text:0000F0A0 RSB R3, R7, #0 .text:0000F0A4 AND R3, R3, #3 .text:0000F0A8 RSB R4, R3, R4 .text:0000F0AC SUBS R2, R3, #0 .text:0000F0B0 BEQ loc_F0C4 .text:0000F0B4 .text:0000F0B4 loc_F0B4 ; CODE XREF: memmove+50j .text:0000F0B4 LDRB R3, [R5],#1 .text:0000F0B8 SUBS R2, R2, #1 .text:0000F0BC STRB R3, [R6],#1 .text:0000F0C0 BNE loc_F0B4 .text:0000F0C4 .text:0000F0C4 loc_F0C4 ; CODE XREF: memmove+40j .text:0000F0C4 TST R5, #3 .text:0000F0C8 BNE loc_F0E0 .text:0000F0CC MOV R0, R6 .text:0000F0D0 MOV R1, R5 .text:0000F0D4 MOV R2, R4,LSR#2 .text:0000F0D8 BL _wordcopy_fwd_aligned .text:0000F0DC B loc_F0F0 .text:0000F0E0 ; --------------------------------------------------------------------------- .text:0000F0E0 .text:0000F0E0 loc_F0E0 ; CODE XREF: memmove+58j .text:0000F0E0 MOV R0, R6 .text:0000F0E4 MOV R1, R5 .text:0000F0E8 MOV R2, R4,LSR#2 .text:0000F0EC BL _wordcopy_fwd_dest_aligned .text:0000F0F0 .text:0000F0F0 loc_F0F0 ; CODE XREF: memmove+6Cj .text:0000F0F0 BIC R3, R4, #3 .text:0000F0F4 ADD R5, R5, R3 .text:0000F0F8 ADD R6, R6, R3 .text:0000F0FC AND R4, R4, #3 .text:0000F100 .text:0000F100 loc_F100 ; CODE XREF: memmove+2Cj .text:0000F100 MOV R2, R4 .text:0000F104 CMP R2, #0 .text:0000F108 BEQ loc_F1A4 .text:0000F10C .text:0000F10C loc_F10C ; CODE XREF: memmove+A8j .text:0000F10C LDRB R3, [R5],#1 .text:0000F110 SUBS R2, R2, #1 .text:0000F114 STRB R3, [R6],#1 .text:0000F118 BNE loc_F10C .text:0000F11C B loc_F1A4 .text:0000F120 ; --------------------------------------------------------------------------- .text:0000F120 .text:0000F120 loc_F120 ; CODE XREF: memmove+24j .text:0000F120 ADD R5, R5, R4 .text:0000F124 ADD R6, R7, R4 .text:0000F128 CMP R4, #0xF .text:0000F12C BLS loc_F18C .text:0000F130 AND R3, R6, #3 .text:0000F134 RSB R4, R3, R4 .text:0000F138 SUBS R2, R3, #0 .text:0000F13C BEQ loc_F150 .text:0000F140 .text:0000F140 loc_F140 ; CODE XREF: memmove+DCj .text:0000F140 LDRB R3, [R5,#-1]! .text:0000F144 SUBS R2, R2, #1 .text:0000F148 STRB R3, [R6,#-1]! .text:0000F14C BNE loc_F140 .text:0000F150 .text:0000F150 loc_F150 ; CODE XREF: memmove+CCj .text:0000F150 TST R5, #3 .text:0000F154 BNE loc_F16C .text:0000F158 MOV R0, R6 .text:0000F15C MOV R1, R5 .text:0000F160 MOV R2, R4,LSR#2 .text:0000F164 BL _wordcopy_bwd_aligned .text:0000F168 B loc_F17C .text:0000F16C ; --------------------------------------------------------------------------- .text:0000F16C .text:0000F16C loc_F16C ; CODE XREF: memmove+E4j .text:0000F16C MOV R0, R6 .text:0000F170 MOV R1, R5 .text:0000F174 MOV R2, R4,LSR#2 .text:0000F178 BL _wordcopy_bwd_dest_aligned .text:0000F17C .text:0000F17C loc_F17C ; CODE XREF: memmove+F8j .text:0000F17C BIC R3, R4, #3 .text:0000F180 RSB R5, R3, R5 .text:0000F184 RSB R6, R3, R6 .text:0000F188 AND R4, R4, #3 .text:0000F18C .text:0000F18C loc_F18C ; CODE XREF: memmove+BCj .text:0000F18C SUBS R2, R4, #0 .text:0000F190 BEQ loc_F1A4 .text:0000F194 .text:0000F194 loc_F194 ; CODE XREF: memmove+130j .text:0000F194 LDRB R3, [R5,#-1]! .text:0000F198 SUBS R2, R2, #1 .text:0000F19C STRB R3, [R6,#-1]! .text:0000F1A0 BNE loc_F194 .text:0000F1A4 .text:0000F1A4 loc_F1A4 ; CODE XREF: memmove+98j .text:0000F1A4 ; memmove+ACj ... .text:0000F1A4 MOV R0, R7 .text:0000F1A8 LDMDB R11, {R4-R7,R11,SP,PC} .text:0000F1A8 ; End of function memmove .text:0000F1A8 .text:0000F1A8 ; --------------------------------------------------------------------------- .text:0000F1AC ALIGN 0x10 .text:0000F1B0 .text:0000F1B0 ; =============== S U B R O U T I N E ======================================= .text:0000F1B0 .text:0000F1B0 .text:0000F1B0 EXPORT memset .text:0000F1B0 memset ; CODE XREF: main+338p .text:0000F1B0 ; main+348p ... .text:0000F1B0 MOV R3, R0 .text:0000F1B4 CMP R2, #8 .text:0000F1B8 BLT loc_F218 .text:0000F1BC ORR R1, R1, R1,LSL#8 .text:0000F1C0 ORR R1, R1, R1,LSL#16 .text:0000F1C4 .text:0000F1C4 loc_F1C4 ; CODE XREF: memset+20j .text:0000F1C4 TST R3, #3 .text:0000F1C8 STRNEB R1, [R3],#1 .text:0000F1CC SUBNE R2, R2, #1 .text:0000F1D0 BNE loc_F1C4 .text:0000F1D4 MOV R12, R1 .text:0000F1D8 .text:0000F1D8 loc_F1D8 ; CODE XREF: memset+64j .text:0000F1D8 CMP R2, #8 .text:0000F1DC BLT loc_F218 .text:0000F1E0 STMIA R3!, {R1,R12} .text:0000F1E4 SUB R2, R2, #8 .text:0000F1E8 CMP R2, #8 .text:0000F1EC BLT loc_F218 .text:0000F1F0 STMIA R3!, {R1,R12} .text:0000F1F4 SUB R2, R2, #8 .text:0000F1F8 CMP R2, #8 .text:0000F1FC BLT loc_F218 .text:0000F200 STMIA R3!, {R1,R12} .text:0000F204 SUB R2, R2, #8 .text:0000F208 CMP R2, #8 .text:0000F20C STMGEIA R3!, {R1,R12} .text:0000F210 SUBGE R2, R2, #8 .text:0000F214 BGE loc_F1D8 .text:0000F218 .text:0000F218 loc_F218 ; CODE XREF: memset+8j .text:0000F218 ; memset+2Cj ... .text:0000F218 MOVS R2, R2 .text:0000F21C MOVEQ PC, LR .text:0000F220 RSB R2, R2, #7 .text:0000F224 ADD PC, PC, R2,LSL#2 .text:0000F224 ; End of function memset .text:0000F224 .text:0000F228 ; --------------------------------------------------------------------------- .text:0000F228 NOP .text:0000F22C STRB R1, [R3],#1 .text:0000F230 STRB R1, [R3],#1 .text:0000F234 STRB R1, [R3],#1 .text:0000F238 STRB R1, [R3],#1 .text:0000F23C STRB R1, [R3],#1 .text:0000F240 STRB R1, [R3],#1 .text:0000F244 STRB R1, [R3],#1 .text:0000F248 RET .text:0000F248 ; --------------------------------------------------------------------------- .text:0000F24C ALIGN 0x10 .text:0000F250 .text:0000F250 ; =============== S U B R O U T I N E ======================================= .text:0000F250 .text:0000F250 ; Attributes: bp-based frame .text:0000F250 .text:0000F250 WEAK mempcpy .text:0000F250 mempcpy ; CODE XREF: save_for_backup+74p .text:0000F250 ; save_for_backup+80p ... .text:0000F250 MOV R12, SP ; Alternative name is '__mempcpy' .text:0000F254 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:0000F258 SUB R11, R12, #4 .text:0000F25C MOV R4, R2 .text:0000F260 MOV R6, R0 .text:0000F264 MOV R5, R1 .text:0000F268 CMP R4, #0xF .text:0000F26C BLS loc_F2D0 .text:0000F270 RSB R3, R6, #0 .text:0000F274 AND R3, R3, #3 .text:0000F278 RSB R4, R3, R4 .text:0000F27C SUBS R2, R3, #0 .text:0000F280 BEQ loc_F294 .text:0000F284 .text:0000F284 loc_F284 ; CODE XREF: mempcpy+40j .text:0000F284 LDRB R3, [R5],#1 .text:0000F288 SUBS R2, R2, #1 .text:0000F28C STRB R3, [R6],#1 .text:0000F290 BNE loc_F284 .text:0000F294 .text:0000F294 loc_F294 ; CODE XREF: mempcpy+30j .text:0000F294 TST R5, #3 .text:0000F298 BNE loc_F2B0 .text:0000F29C MOV R0, R6 .text:0000F2A0 MOV R1, R5 .text:0000F2A4 MOV R2, R4,LSR#2 .text:0000F2A8 BL _wordcopy_fwd_aligned .text:0000F2AC B loc_F2C0 .text:0000F2B0 ; --------------------------------------------------------------------------- .text:0000F2B0 .text:0000F2B0 loc_F2B0 ; CODE XREF: mempcpy+48j .text:0000F2B0 MOV R0, R6 .text:0000F2B4 MOV R1, R5 .text:0000F2B8 MOV R2, R4,LSR#2 .text:0000F2BC BL _wordcopy_fwd_dest_aligned .text:0000F2C0 .text:0000F2C0 loc_F2C0 ; CODE XREF: mempcpy+5Cj .text:0000F2C0 BIC R3, R4, #3 .text:0000F2C4 ADD R5, R5, R3 .text:0000F2C8 ADD R6, R6, R3 .text:0000F2CC AND R4, R4, #3 .text:0000F2D0 .text:0000F2D0 loc_F2D0 ; CODE XREF: mempcpy+1Cj .text:0000F2D0 SUBS R2, R4, #0 .text:0000F2D4 BEQ loc_F2E8 .text:0000F2D8 .text:0000F2D8 loc_F2D8 ; CODE XREF: mempcpy+94j .text:0000F2D8 LDRB R3, [R5],#1 .text:0000F2DC SUBS R2, R2, #1 .text:0000F2E0 STRB R3, [R6],#1 .text:0000F2E4 BNE loc_F2D8 .text:0000F2E8 .text:0000F2E8 loc_F2E8 ; CODE XREF: mempcpy+84j .text:0000F2E8 MOV R0, R6 .text:0000F2EC LDMDB R11, {R4-R6,R11,SP,PC} .text:0000F2EC ; End of function mempcpy .text:0000F2EC .text:0000F2F0 .text:0000F2F0 ; =============== S U B R O U T I N E ======================================= .text:0000F2F0 .text:0000F2F0 ; Attributes: bp-based frame .text:0000F2F0 .text:0000F2F0 EXPORT memcpy .text:0000F2F0 memcpy ; CODE XREF: read_data_from_usbd+98p .text:0000F2F0 ; check_usbd_data+24p ... .text:0000F2F0 MOV R12, SP .text:0000F2F4 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0000F2F8 SUB R11, R12, #4 .text:0000F2FC MOV R4, R2 .text:0000F300 MOV R7, R0 .text:0000F304 MOV R6, R7 .text:0000F308 MOV R5, R1 .text:0000F30C CMP R4, #0xF .text:0000F310 BLS loc_F374 .text:0000F314 RSB R3, R7, #0 .text:0000F318 AND R3, R3, #3 .text:0000F31C RSB R4, R3, R4 .text:0000F320 SUBS R2, R3, #0 .text:0000F324 BEQ loc_F338 .text:0000F328 .text:0000F328 loc_F328 ; CODE XREF: memcpy+44j .text:0000F328 LDRB R3, [R5],#1 .text:0000F32C SUBS R2, R2, #1 .text:0000F330 STRB R3, [R6],#1 .text:0000F334 BNE loc_F328 .text:0000F338 .text:0000F338 loc_F338 ; CODE XREF: memcpy+34j .text:0000F338 TST R5, #3 .text:0000F33C BNE loc_F354 .text:0000F340 MOV R0, R6 .text:0000F344 MOV R1, R5 .text:0000F348 MOV R2, R4,LSR#2 .text:0000F34C BL _wordcopy_fwd_aligned .text:0000F350 B loc_F364 .text:0000F354 ; --------------------------------------------------------------------------- .text:0000F354 .text:0000F354 loc_F354 ; CODE XREF: memcpy+4Cj .text:0000F354 MOV R0, R6 .text:0000F358 MOV R1, R5 .text:0000F35C MOV R2, R4,LSR#2 .text:0000F360 BL _wordcopy_fwd_dest_aligned .text:0000F364 .text:0000F364 loc_F364 ; CODE XREF: memcpy+60j .text:0000F364 BIC R3, R4, #3 .text:0000F368 ADD R5, R5, R3 .text:0000F36C ADD R6, R6, R3 .text:0000F370 AND R4, R4, #3 .text:0000F374 .text:0000F374 loc_F374 ; CODE XREF: memcpy+20j .text:0000F374 SUBS R2, R4, #0 .text:0000F378 BEQ loc_F38C .text:0000F37C .text:0000F37C loc_F37C ; CODE XREF: memcpy+98j .text:0000F37C LDRB R3, [R5],#1 .text:0000F380 SUBS R2, R2, #1 .text:0000F384 STRB R3, [R6],#1 .text:0000F388 BNE loc_F37C .text:0000F38C .text:0000F38C loc_F38C ; CODE XREF: memcpy+88j .text:0000F38C MOV R0, R7 .text:0000F390 LDMDB R11, {R4-R7,R11,SP,PC} .text:0000F390 ; End of function memcpy .text:0000F390 .text:0000F394 .text:0000F394 ; =============== S U B R O U T I N E ======================================= .text:0000F394 .text:0000F394 ; Attributes: bp-based frame .text:0000F394 .text:0000F394 EXPORT _wordcopy_fwd_aligned .text:0000F394 _wordcopy_fwd_aligned ; CODE XREF: memmove+68p .text:0000F394 ; mempcpy+58p ... .text:0000F394 MOV R12, SP .text:0000F398 STMFD SP!, {R11,R12,LR,PC} .text:0000F39C SUB R11, R12, #4 .text:0000F3A0 AND R3, R2, #7 .text:0000F3A4 CMP R3, #7 ; switch 8 cases .text:0000F3A8 LDRLS PC, [PC,R3,LSL#2] ; switch jump .text:0000F3AC B loc_F444 ; jumptable 0000F3A8 default case .text:0000F3AC ; --------------------------------------------------------------------------- .text:0000F3B0 DCD loc_F430 ; jump table for switch statement .text:0000F3B0 DCD loc_F43C .text:0000F3B0 DCD loc_F3D0 .text:0000F3B0 DCD loc_F3E0 .text:0000F3B0 DCD loc_F3F0 .text:0000F3B0 DCD loc_F400 .text:0000F3B0 DCD loc_F410 .text:0000F3B0 DCD loc_F420 .text:0000F3D0 ; --------------------------------------------------------------------------- .text:0000F3D0 .text:0000F3D0 loc_F3D0 ; CODE XREF: _wordcopy_fwd_aligned+14j .text:0000F3D0 ; DATA XREF: _wordcopy_fwd_aligned+1Co .text:0000F3D0 LDR R3, [R1],#-0x18 ; jumptable 0000F3A8 case 2 .text:0000F3D4 SUB R0, R0, #0x1C .text:0000F3D8 ADD R2, R2, #6 .text:0000F3DC B loc_F47C .text:0000F3E0 ; --------------------------------------------------------------------------- .text:0000F3E0 .text:0000F3E0 loc_F3E0 ; CODE XREF: _wordcopy_fwd_aligned+14j .text:0000F3E0 ; DATA XREF: _wordcopy_fwd_aligned+1Co .text:0000F3E0 LDR R12, [R1],#-0x14 ; jumptable 0000F3A8 case 3 .text:0000F3E4 SUB R0, R0, #0x18 .text:0000F3E8 ADD R2, R2, #5 .text:0000F3EC B loc_F474 .text:0000F3F0 ; --------------------------------------------------------------------------- .text:0000F3F0 .text:0000F3F0 loc_F3F0 ; CODE XREF: _wordcopy_fwd_aligned+14j .text:0000F3F0 ; DATA XREF: _wordcopy_fwd_aligned+1Co .text:0000F3F0 LDR R3, [R1],#-0x10 ; jumptable 0000F3A8 case 4 .text:0000F3F4 SUB R0, R0, #0x14 .text:0000F3F8 ADD R2, R2, #4 .text:0000F3FC B loc_F46C .text:0000F400 ; --------------------------------------------------------------------------- .text:0000F400 .text:0000F400 loc_F400 ; CODE XREF: _wordcopy_fwd_aligned+14j .text:0000F400 ; DATA XREF: _wordcopy_fwd_aligned+1Co .text:0000F400 LDR R12, [R1],#-0xC ; jumptable 0000F3A8 case 5 .text:0000F404 SUB R0, R0, #0x10 .text:0000F408 ADD R2, R2, #3 .text:0000F40C B loc_F464 .text:0000F410 ; --------------------------------------------------------------------------- .text:0000F410 .text:0000F410 loc_F410 ; CODE XREF: _wordcopy_fwd_aligned+14j .text:0000F410 ; DATA XREF: _wordcopy_fwd_aligned+1Co .text:0000F410 LDR R3, [R1],#-8 ; jumptable 0000F3A8 case 6 .text:0000F414 SUB R0, R0, #0xC .text:0000F418 ADD R2, R2, #2 .text:0000F41C B loc_F45C .text:0000F420 ; --------------------------------------------------------------------------- .text:0000F420 .text:0000F420 loc_F420 ; CODE XREF: _wordcopy_fwd_aligned+14j .text:0000F420 ; DATA XREF: _wordcopy_fwd_aligned+1Co .text:0000F420 SUB R0, R0, #8 ; jumptable 0000F3A8 case 7 .text:0000F424 ADD R2, R2, #1 .text:0000F428 LDR R12, [R1],#-4 .text:0000F42C B loc_F454 .text:0000F430 ; --------------------------------------------------------------------------- .text:0000F430 .text:0000F430 loc_F430 ; CODE XREF: _wordcopy_fwd_aligned+14j .text:0000F430 ; DATA XREF: _wordcopy_fwd_aligned+1Co .text:0000F430 SUB R0, R0, #4 ; jumptable 0000F3A8 case 0 .text:0000F434 LDR R3, [R1] .text:0000F438 B loc_F44C .text:0000F43C ; --------------------------------------------------------------------------- .text:0000F43C .text:0000F43C loc_F43C ; CODE XREF: _wordcopy_fwd_aligned+14j .text:0000F43C ; DATA XREF: _wordcopy_fwd_aligned+1Co .text:0000F43C SUB R2, R2, #1 ; jumptable 0000F3A8 case 1 .text:0000F440 LDR R12, [R1],#4 .text:0000F444 .text:0000F444 loc_F444 ; CODE XREF: _wordcopy_fwd_aligned+18j .text:0000F444 ; _wordcopy_fwd_aligned+FCj .text:0000F444 LDR R3, [R1] ; jumptable 0000F3A8 default case .text:0000F448 STR R12, [R0] .text:0000F44C .text:0000F44C loc_F44C ; CODE XREF: _wordcopy_fwd_aligned+A4j .text:0000F44C LDR R12, [R1,#4] .text:0000F450 STR R3, [R0,#4] .text:0000F454 .text:0000F454 loc_F454 ; CODE XREF: _wordcopy_fwd_aligned+98j .text:0000F454 LDR R3, [R1,#8] .text:0000F458 STR R12, [R0,#8] .text:0000F45C .text:0000F45C loc_F45C ; CODE XREF: _wordcopy_fwd_aligned+88j .text:0000F45C LDR R12, [R1,#0xC] .text:0000F460 STR R3, [R0,#0xC] .text:0000F464 .text:0000F464 loc_F464 ; CODE XREF: _wordcopy_fwd_aligned+78j .text:0000F464 LDR R3, [R1,#0x10] .text:0000F468 STR R12, [R0,#0x10] .text:0000F46C .text:0000F46C loc_F46C ; CODE XREF: _wordcopy_fwd_aligned+68j .text:0000F46C LDR R12, [R1,#0x14] .text:0000F470 STR R3, [R0,#0x14] .text:0000F474 .text:0000F474 loc_F474 ; CODE XREF: _wordcopy_fwd_aligned+58j .text:0000F474 LDR R3, [R1,#0x18] .text:0000F478 STR R12, [R0,#0x18] .text:0000F47C .text:0000F47C loc_F47C ; CODE XREF: _wordcopy_fwd_aligned+48j .text:0000F47C LDR R12, [R1,#0x1C] .text:0000F480 ADD R1, R1, #0x20 .text:0000F484 STR R3, [R0,#0x1C] .text:0000F488 ADD R0, R0, #0x20 .text:0000F48C SUBS R2, R2, #8 .text:0000F490 BNE loc_F444 ; jumptable 0000F3A8 default case .text:0000F494 STR R12, [R0] .text:0000F498 LDMDB R11, {R11,SP,PC} .text:0000F498 ; End of function _wordcopy_fwd_aligned .text:0000F498 .text:0000F49C .text:0000F49C ; =============== S U B R O U T I N E ======================================= .text:0000F49C .text:0000F49C ; Attributes: bp-based frame .text:0000F49C .text:0000F49C EXPORT _wordcopy_fwd_dest_aligned .text:0000F49C _wordcopy_fwd_dest_aligned ; CODE XREF: memmove+7Cp .text:0000F49C ; mempcpy+6Cp ... .text:0000F49C MOV R12, SP .text:0000F4A0 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0000F4A4 SUB R11, R12, #4 .text:0000F4A8 AND R3, R1, #3 .text:0000F4AC BIC R1, R1, #3 .text:0000F4B0 MOV R6, R3,LSL#3 .text:0000F4B4 RSB R7, R6, #0x20 .text:0000F4B8 AND R3, R2, #3 .text:0000F4BC CMP R3, #3 ; switch 4 cases .text:0000F4C0 LDRLS PC, [PC,R3,LSL#2] ; switch jump .text:0000F4C4 B loc_F524 ; jumptable 0000F4C0 default case .text:0000F4C4 ; --------------------------------------------------------------------------- .text:0000F4C8 DCD loc_F504 ; jump table for switch statement .text:0000F4C8 DCD loc_F514 .text:0000F4C8 DCD loc_F4D8 .text:0000F4C8 DCD loc_F4F0 .text:0000F4D8 ; --------------------------------------------------------------------------- .text:0000F4D8 .text:0000F4D8 loc_F4D8 ; CODE XREF: _wordcopy_fwd_dest_aligned+24j .text:0000F4D8 ; DATA XREF: _wordcopy_fwd_dest_aligned+2Co .text:0000F4D8 LDR LR, [R1] ; jumptable 0000F4C0 case 2 .text:0000F4DC LDR R5, [R1,#4] .text:0000F4E0 SUB R1, R1, #4 .text:0000F4E4 SUB R0, R0, #0xC .text:0000F4E8 ADD R2, R2, #2 .text:0000F4EC B loc_F554 .text:0000F4F0 ; --------------------------------------------------------------------------- .text:0000F4F0 .text:0000F4F0 loc_F4F0 ; CODE XREF: _wordcopy_fwd_dest_aligned+24j .text:0000F4F0 ; DATA XREF: _wordcopy_fwd_dest_aligned+2Co .text:0000F4F0 SUB R0, R0, #8 ; jumptable 0000F4C0 case 3 .text:0000F4F4 LDR R12, [R1] .text:0000F4F8 ADD R2, R2, #1 .text:0000F4FC LDR LR, [R1,#4] .text:0000F500 B loc_F544 .text:0000F504 ; --------------------------------------------------------------------------- .text:0000F504 .text:0000F504 loc_F504 ; CODE XREF: _wordcopy_fwd_dest_aligned+24j .text:0000F504 ; DATA XREF: _wordcopy_fwd_dest_aligned+2Co .text:0000F504 LDR R4, [R1] ; jumptable 0000F4C0 case 0 .text:0000F508 SUB R0, R0, #4 .text:0000F50C LDR R12, [R1,#4]! .text:0000F510 B loc_F534 .text:0000F514 ; --------------------------------------------------------------------------- .text:0000F514 .text:0000F514 loc_F514 ; CODE XREF: _wordcopy_fwd_dest_aligned+24j .text:0000F514 ; DATA XREF: _wordcopy_fwd_dest_aligned+2Co .text:0000F514 LDR R5, [R1] ; jumptable 0000F4C0 case 1 .text:0000F518 LDR R4, [R1,#4] .text:0000F51C ADD R1, R1, #8 .text:0000F520 SUB R2, R2, #1 .text:0000F524 .text:0000F524 loc_F524 ; CODE XREF: _wordcopy_fwd_dest_aligned+28j .text:0000F524 ; _wordcopy_fwd_dest_aligned+D4j .text:0000F524 MOV R3, R4,LSL R7 ; jumptable 0000F4C0 default case .text:0000F528 LDR R12, [R1] .text:0000F52C ORR R3, R3, R5,LSR R6 .text:0000F530 STR R3, [R0] .text:0000F534 .text:0000F534 loc_F534 ; CODE XREF: _wordcopy_fwd_dest_aligned+74j .text:0000F534 MOV R3, R12,LSL R7 .text:0000F538 LDR LR, [R1,#4] .text:0000F53C ORR R3, R3, R4,LSR R6 .text:0000F540 STR R3, [R0,#4] .text:0000F544 .text:0000F544 loc_F544 ; CODE XREF: _wordcopy_fwd_dest_aligned+64j .text:0000F544 MOV R3, LR,LSL R7 .text:0000F548 LDR R5, [R1,#8] .text:0000F54C ORR R3, R3, R12,LSR R6 .text:0000F550 STR R3, [R0,#8] .text:0000F554 .text:0000F554 loc_F554 ; CODE XREF: _wordcopy_fwd_dest_aligned+50j .text:0000F554 LDR R4, [R1,#0xC] .text:0000F558 ADD R1, R1, #0x10 .text:0000F55C MOV R3, R5,LSL R7 .text:0000F560 ORR R3, R3, LR,LSR R6 .text:0000F564 STR R3, [R0,#0xC] .text:0000F568 ADD R0, R0, #0x10 .text:0000F56C SUBS R2, R2, #4 .text:0000F570 BNE loc_F524 ; jumptable 0000F4C0 default case .text:0000F574 MOV R3, R4,LSL R7 .text:0000F578 ORR R3, R3, R5,LSR R6 .text:0000F57C STR R3, [R0] .text:0000F580 LDMDB R11, {R4-R7,R11,SP,PC} .text:0000F580 ; End of function _wordcopy_fwd_dest_aligned .text:0000F580 .text:0000F584 .text:0000F584 ; =============== S U B R O U T I N E ======================================= .text:0000F584 .text:0000F584 ; Attributes: bp-based frame .text:0000F584 .text:0000F584 EXPORT _wordcopy_bwd_aligned .text:0000F584 _wordcopy_bwd_aligned ; CODE XREF: memmove+F4p .text:0000F584 MOV R12, SP .text:0000F588 STMFD SP!, {R11,R12,LR,PC} .text:0000F58C SUB R11, R12, #4 .text:0000F590 AND R3, R2, #7 .text:0000F594 CMP R3, #7 ; switch 8 cases .text:0000F598 LDRLS PC, [PC,R3,LSL#2] ; switch jump .text:0000F59C B loc_F658 ; jumptable 0000F598 default case .text:0000F59C ; --------------------------------------------------------------------------- .text:0000F5A0 DCD loc_F638 ; jump table for switch statement .text:0000F5A0 DCD loc_F648 .text:0000F5A0 DCD loc_F5C0 .text:0000F5A0 DCD loc_F5D4 .text:0000F5A0 DCD loc_F5E8 .text:0000F5A0 DCD loc_F5FC .text:0000F5A0 DCD loc_F610 .text:0000F5A0 DCD loc_F624 .text:0000F5C0 ; --------------------------------------------------------------------------- .text:0000F5C0 .text:0000F5C0 loc_F5C0 ; CODE XREF: _wordcopy_bwd_aligned+14j .text:0000F5C0 ; DATA XREF: _wordcopy_bwd_aligned+1Co .text:0000F5C0 SUB R1, R1, #8 ; jumptable 0000F598 case 2 .text:0000F5C4 SUB R0, R0, #4 .text:0000F5C8 ADD R2, R2, #6 .text:0000F5CC LDR R3, [R1,#4] .text:0000F5D0 B loc_F690 .text:0000F5D4 ; --------------------------------------------------------------------------- .text:0000F5D4 .text:0000F5D4 loc_F5D4 ; CODE XREF: _wordcopy_bwd_aligned+14j .text:0000F5D4 ; DATA XREF: _wordcopy_bwd_aligned+1Co .text:0000F5D4 SUB R1, R1, #0xC ; jumptable 0000F598 case 3 .text:0000F5D8 SUB R0, R0, #8 .text:0000F5DC ADD R2, R2, #5 .text:0000F5E0 LDR R12, [R1,#8] .text:0000F5E4 B loc_F688 .text:0000F5E8 ; --------------------------------------------------------------------------- .text:0000F5E8 .text:0000F5E8 loc_F5E8 ; CODE XREF: _wordcopy_bwd_aligned+14j .text:0000F5E8 ; DATA XREF: _wordcopy_bwd_aligned+1Co .text:0000F5E8 SUB R1, R1, #0x10 ; jumptable 0000F598 case 4 .text:0000F5EC SUB R0, R0, #0xC .text:0000F5F0 ADD R2, R2, #4 .text:0000F5F4 LDR R3, [R1,#0xC] .text:0000F5F8 B loc_F680 .text:0000F5FC ; --------------------------------------------------------------------------- .text:0000F5FC .text:0000F5FC loc_F5FC ; CODE XREF: _wordcopy_bwd_aligned+14j .text:0000F5FC ; DATA XREF: _wordcopy_bwd_aligned+1Co .text:0000F5FC SUB R1, R1, #0x14 ; jumptable 0000F598 case 5 .text:0000F600 SUB R0, R0, #0x10 .text:0000F604 ADD R2, R2, #3 .text:0000F608 LDR R12, [R1,#0x10] .text:0000F60C B loc_F678 .text:0000F610 ; --------------------------------------------------------------------------- .text:0000F610 .text:0000F610 loc_F610 ; CODE XREF: _wordcopy_bwd_aligned+14j .text:0000F610 ; DATA XREF: _wordcopy_bwd_aligned+1Co .text:0000F610 SUB R1, R1, #0x18 ; jumptable 0000F598 case 6 .text:0000F614 SUB R0, R0, #0x14 .text:0000F618 ADD R2, R2, #2 .text:0000F61C LDR R3, [R1,#0x14] .text:0000F620 B loc_F670 .text:0000F624 ; --------------------------------------------------------------------------- .text:0000F624 .text:0000F624 loc_F624 ; CODE XREF: _wordcopy_bwd_aligned+14j .text:0000F624 ; DATA XREF: _wordcopy_bwd_aligned+1Co .text:0000F624 SUB R1, R1, #0x1C ; jumptable 0000F598 case 7 .text:0000F628 SUB R0, R0, #0x18 .text:0000F62C ADD R2, R2, #1 .text:0000F630 LDR R12, [R1,#0x18] .text:0000F634 B loc_F668 .text:0000F638 ; --------------------------------------------------------------------------- .text:0000F638 .text:0000F638 loc_F638 ; CODE XREF: _wordcopy_bwd_aligned+14j .text:0000F638 ; DATA XREF: _wordcopy_bwd_aligned+1Co .text:0000F638 SUB R1, R1, #0x20 ; jumptable 0000F598 case 0 .text:0000F63C SUB R0, R0, #0x1C .text:0000F640 LDR R3, [R1,#0x1C] .text:0000F644 B loc_F660 .text:0000F648 ; --------------------------------------------------------------------------- .text:0000F648 .text:0000F648 loc_F648 ; CODE XREF: _wordcopy_bwd_aligned+14j .text:0000F648 ; DATA XREF: _wordcopy_bwd_aligned+1Co .text:0000F648 SUB R1, R1, #0x24 ; jumptable 0000F598 case 1 .text:0000F64C SUB R0, R0, #0x20 .text:0000F650 SUB R2, R2, #1 .text:0000F654 LDR R12, [R1,#0x20] .text:0000F658 .text:0000F658 loc_F658 ; CODE XREF: _wordcopy_bwd_aligned+18j .text:0000F658 ; _wordcopy_bwd_aligned+118j .text:0000F658 LDR R3, [R1,#0x1C] ; jumptable 0000F598 default case .text:0000F65C STR R12, [R0,#0x1C] .text:0000F660 .text:0000F660 loc_F660 ; CODE XREF: _wordcopy_bwd_aligned+C0j .text:0000F660 LDR R12, [R1,#0x18] .text:0000F664 STR R3, [R0,#0x18] .text:0000F668 .text:0000F668 loc_F668 ; CODE XREF: _wordcopy_bwd_aligned+B0j .text:0000F668 LDR R3, [R1,#0x14] .text:0000F66C STR R12, [R0,#0x14] .text:0000F670 .text:0000F670 loc_F670 ; CODE XREF: _wordcopy_bwd_aligned+9Cj .text:0000F670 LDR R12, [R1,#0x10] .text:0000F674 STR R3, [R0,#0x10] .text:0000F678 .text:0000F678 loc_F678 ; CODE XREF: _wordcopy_bwd_aligned+88j .text:0000F678 LDR R3, [R1,#0xC] .text:0000F67C STR R12, [R0,#0xC] .text:0000F680 .text:0000F680 loc_F680 ; CODE XREF: _wordcopy_bwd_aligned+74j .text:0000F680 LDR R12, [R1,#8] .text:0000F684 STR R3, [R0,#8] .text:0000F688 .text:0000F688 loc_F688 ; CODE XREF: _wordcopy_bwd_aligned+60j .text:0000F688 LDR R3, [R1,#4] .text:0000F68C STR R12, [R0,#4] .text:0000F690 .text:0000F690 loc_F690 ; CODE XREF: _wordcopy_bwd_aligned+4Cj .text:0000F690 LDR R12, [R1],#-0x20 .text:0000F694 STR R3, [R0],#-0x20 .text:0000F698 SUBS R2, R2, #8 .text:0000F69C BNE loc_F658 ; jumptable 0000F598 default case .text:0000F6A0 STR R12, [R0,#0x1C] .text:0000F6A4 LDMDB R11, {R11,SP,PC} .text:0000F6A4 ; End of function _wordcopy_bwd_aligned .text:0000F6A4 .text:0000F6A8 .text:0000F6A8 ; =============== S U B R O U T I N E ======================================= .text:0000F6A8 .text:0000F6A8 ; Attributes: bp-based frame .text:0000F6A8 .text:0000F6A8 EXPORT _wordcopy_bwd_dest_aligned .text:0000F6A8 _wordcopy_bwd_dest_aligned ; CODE XREF: memmove+108p .text:0000F6A8 MOV R12, SP .text:0000F6AC STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0000F6B0 SUB R11, R12, #4 .text:0000F6B4 AND R3, R1, #3 .text:0000F6B8 BIC R1, R1, #3 .text:0000F6BC ADD R1, R1, #4 .text:0000F6C0 MOV R6, R3,LSL#3 .text:0000F6C4 RSB R7, R6, #0x20 .text:0000F6C8 AND R3, R2, #3 .text:0000F6CC CMP R3, #3 ; switch 4 cases .text:0000F6D0 LDRLS PC, [PC,R3,LSL#2] ; switch jump .text:0000F6D4 B loc_F740 ; jumptable 0000F6D0 default case .text:0000F6D4 ; --------------------------------------------------------------------------- .text:0000F6D8 DCD loc_F718 ; jump table for switch statement .text:0000F6D8 DCD loc_F72C .text:0000F6D8 DCD loc_F6E8 .text:0000F6D8 DCD loc_F700 .text:0000F6E8 ; --------------------------------------------------------------------------- .text:0000F6E8 .text:0000F6E8 loc_F6E8 ; CODE XREF: _wordcopy_bwd_dest_aligned+28j .text:0000F6E8 ; DATA XREF: _wordcopy_bwd_dest_aligned+30o .text:0000F6E8 SUB R1, R1, #0xC ; jumptable 0000F6D0 case 2 .text:0000F6EC SUB R0, R0, #4 .text:0000F6F0 LDR LR, [R1,#8] .text:0000F6F4 ADD R2, R2, #2 .text:0000F6F8 LDR R4, [R1,#4] .text:0000F6FC B loc_F770 .text:0000F700 ; --------------------------------------------------------------------------- .text:0000F700 .text:0000F700 loc_F700 ; CODE XREF: _wordcopy_bwd_dest_aligned+28j .text:0000F700 ; DATA XREF: _wordcopy_bwd_dest_aligned+30o .text:0000F700 SUB R1, R1, #0x10 ; jumptable 0000F6D0 case 3 .text:0000F704 SUB R0, R0, #8 .text:0000F708 LDR R12, [R1,#0xC] .text:0000F70C ADD R2, R2, #1 .text:0000F710 LDR LR, [R1,#8] .text:0000F714 B loc_F760 .text:0000F718 ; --------------------------------------------------------------------------- .text:0000F718 .text:0000F718 loc_F718 ; CODE XREF: _wordcopy_bwd_dest_aligned+28j .text:0000F718 ; DATA XREF: _wordcopy_bwd_dest_aligned+30o .text:0000F718 SUB R1, R1, #0x14 ; jumptable 0000F6D0 case 0 .text:0000F71C LDR R5, [R1,#0x10] .text:0000F720 SUB R0, R0, #0xC .text:0000F724 LDR R12, [R1,#0xC] .text:0000F728 B loc_F750 .text:0000F72C ; --------------------------------------------------------------------------- .text:0000F72C .text:0000F72C loc_F72C ; CODE XREF: _wordcopy_bwd_dest_aligned+28j .text:0000F72C ; DATA XREF: _wordcopy_bwd_dest_aligned+30o .text:0000F72C SUB R1, R1, #0x18 ; jumptable 0000F6D0 case 1 .text:0000F730 SUB R0, R0, #0x10 .text:0000F734 LDR R4, [R1,#0x14] .text:0000F738 SUB R2, R2, #1 .text:0000F73C LDR R5, [R1,#0x10] .text:0000F740 .text:0000F740 loc_F740 ; CODE XREF: _wordcopy_bwd_dest_aligned+2Cj .text:0000F740 ; _wordcopy_bwd_dest_aligned+DCj .text:0000F740 MOV R3, R4,LSL R7 ; jumptable 0000F6D0 default case .text:0000F744 LDR R12, [R1,#0xC] .text:0000F748 ORR R3, R3, R5,LSR R6 .text:0000F74C STR R3, [R0,#0xC] .text:0000F750 .text:0000F750 loc_F750 ; CODE XREF: _wordcopy_bwd_dest_aligned+80j .text:0000F750 MOV R3, R5,LSL R7 .text:0000F754 LDR LR, [R1,#8] .text:0000F758 ORR R3, R3, R12,LSR R6 .text:0000F75C STR R3, [R0,#8] .text:0000F760 .text:0000F760 loc_F760 ; CODE XREF: _wordcopy_bwd_dest_aligned+6Cj .text:0000F760 MOV R3, R12,LSL R7 .text:0000F764 LDR R4, [R1,#4] .text:0000F768 ORR R3, R3, LR,LSR R6 .text:0000F76C STR R3, [R0,#4] .text:0000F770 .text:0000F770 loc_F770 ; CODE XREF: _wordcopy_bwd_dest_aligned+54j .text:0000F770 LDR R5, [R1],#-0x10 .text:0000F774 MOV R3, LR,LSL R7 .text:0000F778 ORR R3, R3, R4,LSR R6 .text:0000F77C STR R3, [R0],#-0x10 .text:0000F780 SUBS R2, R2, #4 .text:0000F784 BNE loc_F740 ; jumptable 0000F6D0 default case .text:0000F788 MOV R3, R4,LSL R7 .text:0000F78C ORR R3, R3, R5,LSR R6 .text:0000F790 STR R3, [R0,#0xC] .text:0000F794 LDMDB R11, {R4-R7,R11,SP,PC} .text:0000F794 ; End of function _wordcopy_bwd_dest_aligned .text:0000F794 .text:0000F798 .text:0000F798 ; =============== S U B R O U T I N E ======================================= .text:0000F798 .text:0000F798 ; Attributes: bp-based frame .text:0000F798 .text:0000F798 WEAK sleep .text:0000F798 sleep ; CODE XREF: main+370p .text:0000F798 .text:0000F798 var_1B4 = -0x1B4 .text:0000F798 var_1B0 = -0x1B0 .text:0000F798 var_1AC = -0x1AC .text:0000F798 var_120 = -0x120 .text:0000F798 var_A0 = -0xA0 .text:0000F798 .text:0000F798 MOV R12, SP ; Alternative name is '__sleep' .text:0000F79C STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:0000F7A0 SUB R11, R12, #4 .text:0000F7A4 CMP R0, #0 .text:0000F7A8 SUB SP, SP, #0x194 .text:0000F7AC STR R0, [R11,#var_1B4] .text:0000F7B0 MOV R3, #0 .text:0000F7B4 SUB R6, R11, #-var_1B4 .text:0000F7B8 STR R3, [R11,#var_1B0] .text:0000F7BC BEQ locret_F90C .text:0000F7C0 MOV R2, #0x1F .text:0000F7C4 SUB R1, R11, #-var_A0 .text:0000F7C8 MOV R4, R1 .text:0000F7CC SUB R8, R11, #-var_120 .text:0000F7D0 MOV R0, R3 .text:0000F7D4 .text:0000F7D4 loc_F7D4 ; CODE XREF: sleep+48j .text:0000F7D4 MOV R3, R2,LSL#2 .text:0000F7D8 SUBS R2, R2, #1 .text:0000F7DC STR R0, [R1,R3] .text:0000F7E0 BPL loc_F7D4 .text:0000F7E4 LDR R3, [R11,#var_A0] .text:0000F7E8 ORR R3, R3, #0x10000 .text:0000F7EC STR R3, [R11,#var_A0] .text:0000F7F0 MOV R0, #0 .text:0000F7F4 MOV R1, R4 .text:0000F7F8 MOV R2, R8 .text:0000F7FC BL sigprocmask .text:0000F800 CMP R0, #0 .text:0000F804 MOVNE R0, 0xFFFFFFFF .text:0000F808 BNE locret_F90C .text:0000F80C LDR R3, [R11,#var_120] .text:0000F810 TST R3, #0x10000 .text:0000F814 MOVEQ R1, #0 .text:0000F818 MOVNE R1, #1 .text:0000F81C CMP R1, #0 .text:0000F820 BNE loc_F8D4 .text:0000F824 MOV R3, #0x1F .text:0000F828 SUB R2, R11, #-var_1AC .text:0000F82C .text:0000F82C loc_F82C ; CODE XREF: sleep+9Cj .text:0000F82C STR R1, [R4,R3,LSL#2] .text:0000F830 SUBS R3, R3, #1 .text:0000F834 BPL loc_F82C .text:0000F838 LDR R3, [R11,#var_A0] .text:0000F83C ORR R3, R3, #0x10000 .text:0000F840 STR R3, [R11,#var_A0] .text:0000F844 MOV R0, #0x11 .text:0000F848 MOV R7, #0 .text:0000F84C MOV R1, R7 .text:0000F850 BL sigaction .text:0000F854 CMP R0, R7 .text:0000F858 BGE loc_F884 .text:0000F85C BL __errno_location .text:0000F860 LDR R5, [R0] .text:0000F864 MOV R0, #2 .text:0000F868 MOV R1, R8 .text:0000F86C MOV R2, R7 .text:0000F870 BL sigprocmask .text:0000F874 BL __errno_location .text:0000F878 STR R5, [R0] .text:0000F87C MOV R0, 0xFFFFFFFF .text:0000F880 B locret_F90C .text:0000F884 ; --------------------------------------------------------------------------- .text:0000F884 .text:0000F884 loc_F884 ; CODE XREF: sleep+C0j .text:0000F884 LDR R3, [R11,#var_1AC] .text:0000F888 CMP R3, #1 .text:0000F88C BNE loc_F8C4 .text:0000F890 MOV R0, R6 .text:0000F894 MOV R1, R6 .text:0000F898 BL nanosleep .text:0000F89C MOV R4, R0 .text:0000F8A0 BL __errno_location .text:0000F8A4 LDR R5, [R0] .text:0000F8A8 MOV R0, #2 .text:0000F8AC MOV R1, R8 .text:0000F8B0 MOV R2, R7 .text:0000F8B4 BL sigprocmask .text:0000F8B8 BL __errno_location .text:0000F8BC STR R5, [R0] .text:0000F8C0 B loc_F8E4 .text:0000F8C4 ; --------------------------------------------------------------------------- .text:0000F8C4 .text:0000F8C4 loc_F8C4 ; CODE XREF: sleep+F4j .text:0000F8C4 MOV R0, #2 .text:0000F8C8 MOV R1, R8 .text:0000F8CC MOV R2, R7 .text:0000F8D0 BL sigprocmask .text:0000F8D4 .text:0000F8D4 loc_F8D4 ; CODE XREF: sleep+88j .text:0000F8D4 MOV R0, R6 .text:0000F8D8 MOV R1, R6 .text:0000F8DC BL nanosleep .text:0000F8E0 MOV R4, R0 .text:0000F8E4 .text:0000F8E4 loc_F8E4 ; CODE XREF: sleep+128j .text:0000F8E4 CMP R4, #0 .text:0000F8E8 BEQ loc_F908 .text:0000F8EC MOV R3, 0x1DFFFFFF .text:0000F8F0 LDR R4, [R11,#var_1B4] .text:0000F8F4 SUB R3, R3, #0x328000 .text:0000F8F8 LDR R2, [R6,#4] .text:0000F8FC SUB R3, R3, #0x1B00 .text:0000F900 CMP R2, R3 .text:0000F904 ADDGT R4, R4, #1 .text:0000F908 .text:0000F908 loc_F908 ; CODE XREF: sleep+150j .text:0000F908 MOV R0, R4 .text:0000F90C .text:0000F90C locret_F90C ; CODE XREF: sleep+24j .text:0000F90C ; sleep+70j ... .text:0000F90C LDMDB R11, {R4-R8,R11,SP,PC} .text:0000F90C ; End of function sleep .text:0000F90C .text:0000F910 .text:0000F910 ; =============== S U B R O U T I N E ======================================= .text:0000F910 .text:0000F910 .text:0000F910 WEAK nanosleep .text:0000F910 nanosleep ; CODE XREF: sleep+100p .text:0000F910 ; sleep+144p .text:0000F910 SVC 0x9000A2 ; Alternative name is '__nanosleep' .text:0000F914 CMN R0, #0x1000 .text:0000F918 MOVCC PC, LR .text:0000F91C B __syscall_error .text:0000F91C ; End of function nanosleep .text:0000F91C .text:0000F920 .text:0000F920 ; =============== S U B R O U T I N E ======================================= .text:0000F920 .text:0000F920 ; Attributes: noreturn .text:0000F920 .text:0000F920 ; void exit(int status) .text:0000F920 WEAK _exit .text:0000F920 _exit ; CODE XREF: abort+19Cp .text:0000F920 ; exit+10Cp ... .text:0000F920 SVC 0x900001 .text:0000F924 CMN R0, #0x1000 .text:0000F928 NOP .text:0000F92C NOP .text:0000F92C ; End of function _exit .text:0000F92C .text:0000F930 .text:0000F930 ; =============== S U B R O U T I N E ======================================= .text:0000F930 .text:0000F930 ; Attributes: bp-based frame .text:0000F930 .text:0000F930 WEAK __fxstat64 .text:0000F930 __fxstat64 ; CODE XREF: check_one_fd+54p .text:0000F930 ; _dl_map_object_from_fd+30p ... .text:0000F930 .text:0000F930 var_68 = -0x68 .text:0000F930 var_67 = -0x67 .text:0000F930 var_64 = -0x64 .text:0000F930 var_60 = -0x60 .text:0000F930 var_5F = -0x5F .text:0000F930 var_5E = -0x5E .text:0000F930 var_5D = -0x5D .text:0000F930 var_5C = -0x5C .text:0000F930 var_5B = -0x5B .text:0000F930 var_5A = -0x5A .text:0000F930 var_59 = -0x59 .text:0000F930 var_58 = -0x58 .text:0000F930 var_57 = -0x57 .text:0000F930 var_54 = -0x54 .text:0000F930 var_50 = -0x50 .text:0000F930 var_4C = -0x4C .text:0000F930 var_48 = -0x48 .text:0000F930 var_40 = -0x40 .text:0000F930 var_38 = -0x38 .text:0000F930 .text:0000F930 MOV R12, SP .text:0000F934 STMFD SP!, {R4-R12,LR,PC} .text:0000F938 SUB R11, R12, #4 .text:0000F93C MOV R10, R0 .text:0000F940 LDR R9, =__have_no_stat64 .text:0000F944 MOV R4, R1 .text:0000F948 LDR R3, [R9] .text:0000F94C MOV R5, R2 .text:0000F950 CMP R3, #0 .text:0000F954 SUB SP, SP, #0x40 .text:0000F958 BNE loc_F9E8 .text:0000F95C BL __errno_location .text:0000F960 MOV R1, R5 .text:0000F964 LDR R8, [R0] .text:0000F968 MOV R0, R4 .text:0000F96C SVC 0x9000C5 .text:0000F970 MOV R7, R0 .text:0000F974 CMN R7, #0x1000 .text:0000F978 BLS loc_F98C .text:0000F97C BL __errno_location .text:0000F980 RSB R3, R7, #0 .text:0000F984 MOV R7, 0xFFFFFFFF .text:0000F988 STR R3, [R0] .text:0000F98C .text:0000F98C loc_F98C ; CODE XREF: __fxstat64+48j .text:0000F98C MOV R6, R7 .text:0000F990 CMN R6, #1 .text:0000F994 BNE loc_F9A8 .text:0000F998 BL __errno_location .text:0000F99C LDR R3, [R0] .text:0000F9A0 CMP R3, #0x26 .text:0000F9A4 BEQ loc_F9D8 .text:0000F9A8 .text:0000F9A8 loc_F9A8 ; CODE XREF: __fxstat64+64j .text:0000F9A8 CMP R6, #0 .text:0000F9AC BNE loc_F9D0 .text:0000F9B0 LDR R0, [R5,#0xC] .text:0000F9B4 MOV R2, #0x58 .text:0000F9B8 LDR R3, [R5,R2] .text:0000F9BC ADD R1, R5, R2 .text:0000F9C0 CMP R0, R3 .text:0000F9C4 MOVNE R3, R0 .text:0000F9C8 MOVNE R4, #0 .text:0000F9CC STMNEIA R1, {R3,R4} .text:0000F9D0 .text:0000F9D0 loc_F9D0 ; CODE XREF: __fxstat64+7Cj .text:0000F9D0 MOV R0, R7 .text:0000F9D4 B locret_FB24 .text:0000F9D8 ; --------------------------------------------------------------------------- .text:0000F9D8 .text:0000F9D8 loc_F9D8 ; CODE XREF: __fxstat64+74j .text:0000F9D8 BL __errno_location .text:0000F9DC STR R8, [R0] .text:0000F9E0 MOV R3, #1 .text:0000F9E4 STR R3, [R9] .text:0000F9E8 .text:0000F9E8 loc_F9E8 ; CODE XREF: __fxstat64+28j .text:0000F9E8 SUB R1, R11, #-var_68 .text:0000F9EC MOV R0, R4 .text:0000F9F0 SVC 0x90006C .text:0000F9F4 MOV R4, R0 .text:0000F9F8 CMN R4, #0x1000 .text:0000F9FC BLS loc_FA10 .text:0000FA00 BL __errno_location .text:0000FA04 RSB R3, R4, #0 .text:0000FA08 MOV R4, 0xFFFFFFFF .text:0000FA0C STR R3, [R0] .text:0000FA10 .text:0000FA10 loc_FA10 ; CODE XREF: __fxstat64+CCj .text:0000FA10 SUBS R6, R4, #0 .text:0000FA14 BNE loc_FB20 .text:0000FA18 CMP R10, #1 .text:0000FA1C BEQ loc_FB04 .text:0000FA20 CMP R10, #3 .text:0000FA24 BNE loc_FB04 .text:0000FA28 LDRB R1, [R11,#var_68] .text:0000FA2C LDRB R2, [R11,#var_67] .text:0000FA30 ORR R3, R1, R2,LSL#8 .text:0000FA34 MOV R4, #0 .text:0000FA38 STMIA R5, {R3,R4} .text:0000FA3C STR R6, [R5,#8] .text:0000FA40 LDR R1, [R11,#var_64] .text:0000FA44 ADD R2, R5, #0x58 .text:0000FA48 MOV R3, R1 .text:0000FA4C MOV R4, #0 .text:0000FA50 STMIA R2, {R3,R4} .text:0000FA54 STR R1, [R5,#0xC] .text:0000FA58 LDRB R3, [R11,#var_60] .text:0000FA5C LDRB R2, [R11,#var_5F] .text:0000FA60 ORR R3, R3, R2,LSL#8 .text:0000FA64 STR R3, [R5,#0x10] .text:0000FA68 LDRB R3, [R11,#var_5D] .text:0000FA6C LDRB R2, [R11,#var_5E] .text:0000FA70 ORR R2, R2, R3,LSL#8 .text:0000FA74 STR R2, [R5,#0x14] .text:0000FA78 LDRB R2, [R11,#var_5B] .text:0000FA7C LDRB R3, [R11,#var_5C] .text:0000FA80 ORR R3, R3, R2,LSL#8 .text:0000FA84 STR R3, [R5,#0x18] .text:0000FA88 LDRB R2, [R11,#var_5A] .text:0000FA8C LDRB R12, [R11,#var_58] .text:0000FA90 LDRB R0, [R11,#var_57] .text:0000FA94 LDRB R1, [R11,#var_59] .text:0000FA98 ORR R3, R12, R0,LSL#8 .text:0000FA9C ORR R2, R2, R1,LSL#8 .text:0000FAA0 STR R2, [R5,#0x1C] .text:0000FAA4 MOV R4, #0 .text:0000FAA8 ADD R2, R5, #0x20 .text:0000FAAC STMIA R2, {R3,R4} .text:0000FAB0 STR R6, [R5,#0x28] .text:0000FAB4 LDR R3, [R11,#var_54] .text:0000FAB8 ADD R1, R5, #0x2C .text:0000FABC MOV R4, #0 .text:0000FAC0 STMIA R1, {R3,R4} .text:0000FAC4 LDR R2, [R11,#var_50] .text:0000FAC8 STR R2, [R5,#0x34] .text:0000FACC LDR R3, [R11,#var_4C] .text:0000FAD0 ADD R1, R5, #0x38 .text:0000FAD4 MOV R4, #0 .text:0000FAD8 STMIA R1, {R3,R4} .text:0000FADC LDR R2, [R11,#var_48] .text:0000FAE0 STR R6, [R5,#0x44] .text:0000FAE4 STR R2, [R5,#0x40] .text:0000FAE8 LDR R3, [R11,#var_40] .text:0000FAEC STR R3, [R5,#0x48] .text:0000FAF0 STR R6, [R5,#0x4C] .text:0000FAF4 STR R6, [R5,#0x54] .text:0000FAF8 LDR R3, [R11,#var_38] .text:0000FAFC STR R3, [R5,#0x50] .text:0000FB00 B loc_FB1C .text:0000FB04 ; --------------------------------------------------------------------------- .text:0000FB04 .text:0000FB04 loc_FB04 ; CODE XREF: __fxstat64+ECj .text:0000FB04 ; __fxstat64+F4j .text:0000FB04 MOV R6, 0xFFFFFFFF .text:0000FB08 BL __errno_location .text:0000FB0C MOV R3, #0x16 .text:0000FB10 STR R3, [R0] .text:0000FB14 B loc_FB20 .text:0000FB14 ; --------------------------------------------------------------------------- .text:0000FB18 off_FB18 DCD __have_no_stat64 ; DATA XREF: __fxstat64+10r .text:0000FB1C ; --------------------------------------------------------------------------- .text:0000FB1C .text:0000FB1C loc_FB1C ; CODE XREF: __fxstat64+1D0j .text:0000FB1C MOV R6, #0 .text:0000FB20 .text:0000FB20 loc_FB20 ; CODE XREF: __fxstat64+E4j .text:0000FB20 ; __fxstat64+1E4j .text:0000FB20 MOV R0, R6 .text:0000FB24 .text:0000FB24 locret_FB24 ; CODE XREF: __fxstat64+A4j .text:0000FB24 LDMDB R11, {R4-R11,SP,PC} .text:0000FB24 ; End of function __fxstat64 .text:0000FB24 .text:0000FB24 ; --------------------------------------------------------------------------- .text:0000FB28 ALIGN 0x10 .text:0000FB30 .text:0000FB30 ; =============== S U B R O U T I N E ======================================= .text:0000FB30 .text:0000FB30 .text:0000FB30 WEAK open .text:0000FB30 open ; CODE XREF: open_usbd_interface+14p .text:0000FB30 ; open_fpga_interface+18p ... .text:0000FB30 SVC 0x900005 ; Alternative name is '__libc_open' .text:0000FB34 CMN R0, #0x1000 .text:0000FB38 MOVCC PC, LR .text:0000FB3C B __syscall_error .text:0000FB3C ; End of function open .text:0000FB3C .text:0000FB40 .text:0000FB40 ; =============== S U B R O U T I N E ======================================= .text:0000FB40 .text:0000FB40 .text:0000FB40 WEAK close .text:0000FB40 close ; CODE XREF: close_usbd_interface+1Cp .text:0000FB40 ; close_fpga_interface+24p ... .text:0000FB40 SVC 0x900006 ; Alternative name is '__close' .text:0000FB44 CMN R0, #0x1000 .text:0000FB48 MOVCC PC, LR .text:0000FB4C B __syscall_error .text:0000FB4C ; End of function close .text:0000FB4C .text:0000FB50 .text:0000FB50 ; =============== S U B R O U T I N E ======================================= .text:0000FB50 .text:0000FB50 .text:0000FB50 WEAK read .text:0000FB50 read ; CODE XREF: read_data_from_usbd+30p .text:0000FB50 ; _dl_map_object_from_fd+1FCp ... .text:0000FB50 SVC 0x900003 ; Alternative name is '__libc_read' .text:0000FB54 CMN R0, #0x1000 .text:0000FB58 MOVCC PC, LR .text:0000FB5C B __syscall_error .text:0000FB5C ; End of function read .text:0000FB5C .text:0000FB60 .text:0000FB60 ; =============== S U B R O U T I N E ======================================= .text:0000FB60 .text:0000FB60 .text:0000FB60 WEAK write .text:0000FB60 write ; CODE XREF: write_data_to_usbd+30p .text:0000FB60 ; _IO_new_file_write+3Cp ... .text:0000FB60 SVC 0x900004 ; Alternative name is '__libc_write' .text:0000FB64 CMN R0, #0x1000 .text:0000FB68 MOVCC PC, LR .text:0000FB6C B __syscall_error .text:0000FB6C ; End of function write .text:0000FB6C .text:0000FB70 .text:0000FB70 ; =============== S U B R O U T I N E ======================================= .text:0000FB70 .text:0000FB70 ; Attributes: bp-based frame .text:0000FB70 .text:0000FB70 WEAK fcntl .text:0000FB70 fcntl ; CODE XREF: check_one_fd+18p .text:0000FB70 ; opendir+E4p .text:0000FB70 .text:0000FB70 var_40 = -0x40 .text:0000FB70 var_3F = -0x3F .text:0000FB70 var_3E = -0x3E .text:0000FB70 var_3D = -0x3D .text:0000FB70 var_3C = -0x3C .text:0000FB70 var_38 = -0x38 .text:0000FB70 var_34 = -0x34 .text:0000FB70 var_30 = -0x30 .text:0000FB70 var_2C = -0x2C .text:0000FB70 var_28 = -0x28 .text:0000FB70 var_24 = -0x24 .text:0000FB70 varg_r1 = 4 .text:0000FB70 varg_r2 = 8 .text:0000FB70 varg_r3 = 0xC .text:0000FB70 .text:0000FB70 MOV R12, SP ; Alternative name is '__fcntl' .text:0000FB74 STMFD SP!, {R1-R3} .text:0000FB78 STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:0000FB7C LDR R5, =__have_no_fcntl64 .text:0000FB80 SUB SP, SP, #0x20 .text:0000FB84 LDR R3, [R5] .text:0000FB88 SUB R11, R12, #0x10 .text:0000FB8C LDR R7, [R11,#varg_r1] .text:0000FB90 MOV R8, R0 .text:0000FB94 LDR R6, [R11,#varg_r2] .text:0000FB98 CMP R3, #0 .text:0000FB9C BNE loc_FBE8 .text:0000FBA0 MOV R2, R6 .text:0000FBA4 MOV R1, R7 .text:0000FBA8 SVC 0x9000DD .text:0000FBAC MOV R4, R0 .text:0000FBB0 CMN R4, #0x1000 .text:0000FBB4 BLS loc_FBC8 .text:0000FBB8 BL __errno_location .text:0000FBBC RSB R3, R4, #0 .text:0000FBC0 MOV R4, 0xFFFFFFFF .text:0000FBC4 STR R3, [R0] .text:0000FBC8 .text:0000FBC8 loc_FBC8 ; CODE XREF: fcntl+44j .text:0000FBC8 CMP R4, #0 .text:0000FBCC BGE loc_FDE0 .text:0000FBD0 BL __errno_location .text:0000FBD4 LDR R3, [R0] .text:0000FBD8 CMP R3, #0x26 .text:0000FBDC BNE loc_FDE0 .text:0000FBE0 MOV R3, #1 .text:0000FBE4 STR R3, [R5] .text:0000FBE8 .text:0000FBE8 loc_FBE8 ; CODE XREF: fcntl+2Cj .text:0000FBE8 CMP R7, #0xC .text:0000FBEC BEQ loc_FC00 .text:0000FBF0 BLT loc_FDB4 .text:0000FBF4 CMP R7, #0xE .text:0000FBF8 BGT loc_FDB4 .text:0000FBFC B loc_FD04 .text:0000FC00 ; --------------------------------------------------------------------------- .text:0000FC00 .text:0000FC00 loc_FC00 ; CODE XREF: fcntl+7Cj .text:0000FC00 LDR R3, [R6,#4] .text:0000FC04 STR R3, [R11,#var_2C] .text:0000FC08 LDR R2, [R6,#4] .text:0000FC0C MOV R0, R3 .text:0000FC10 MOV R1, R0,ASR#31 .text:0000FC14 CMP R0, R2 .text:0000FC18 BNE loc_FD5C .text:0000FC1C LDR R3, [R6,#8] .text:0000FC20 CMP R1, R3 .text:0000FC24 BNE loc_FD5C .text:0000FC28 LDR R3, [R6,R7] .text:0000FC2C STR R3, [R11,#var_28] .text:0000FC30 MOV R0, R3 .text:0000FC34 MOV R1, R0,ASR#31 .text:0000FC38 LDR R2, [R6,R7] .text:0000FC3C ADD R7, R6, R7 .text:0000FC40 CMP R0, R2 .text:0000FC44 BNE loc_FD5C .text:0000FC48 LDR R3, [R7,#4] .text:0000FC4C CMP R1, R3 .text:0000FC50 BNE loc_FD5C .text:0000FC54 LDR R3, [R6] .text:0000FC58 STRB R3, [R11,#var_30] .text:0000FC5C MOV R3, R3,ASR#8 .text:0000FC60 STRB R3, [R11,#var_30+1] .text:0000FC64 LDR R2, [R6] .text:0000FC68 MOV R2, R2,LSR#16 .text:0000FC6C STRB R2, [R11,#var_30+2] .text:0000FC70 MOV R2, R2,ASR#8 .text:0000FC74 STRB R2, [R11,#var_30+3] .text:0000FC78 MOV R1, #5 .text:0000FC7C MOV R0, R8 .text:0000FC80 LDR R3, [R6,#0x14] .text:0000FC84 SUB R2, R11, #-var_30 .text:0000FC88 STR R3, [R11,#var_24] .text:0000FC8C SVC 0x900037 .text:0000FC90 MOV R5, R0 .text:0000FC94 CMN R5, #0x1000 .text:0000FC98 BLS loc_FCAC .text:0000FC9C BL __errno_location .text:0000FCA0 RSB R3, R5, #0 .text:0000FCA4 MOV R5, 0xFFFFFFFF .text:0000FCA8 STR R3, [R0] .text:0000FCAC .text:0000FCAC loc_FCAC ; CODE XREF: fcntl+128j .text:0000FCAC CMP R5, #0 .text:0000FCB0 MOVNE R0, R5 .text:0000FCB4 BNE locret_FDE4 .text:0000FCB8 LDR R3, [R11,#var_30] .text:0000FCBC STRB R3, [R6] .text:0000FCC0 MOV R3, R3,ASR#8 .text:0000FCC4 STRB R3, [R6,#1] .text:0000FCC8 LDR R2, [R11,#var_30] .text:0000FCCC MOV R2, R2,LSR#16 .text:0000FCD0 STRB R2, [R6,#2] .text:0000FCD4 MOV R2, R2,ASR#8 .text:0000FCD8 STRB R2, [R6,#3] .text:0000FCDC LDR R3, [R11,#var_2C] .text:0000FCE0 MOV R4, R3,ASR#31 .text:0000FCE4 STMIB R6, {R3,R4} .text:0000FCE8 LDR R1, [R11,#var_28] .text:0000FCEC MOV R2, R1,ASR#31 .text:0000FCF0 STMIA R7, {R1,R2} .text:0000FCF4 LDR R3, [R11,#var_24] .text:0000FCF8 MOV R0, R5 .text:0000FCFC STR R3, [R6,#0x14] .text:0000FD00 B locret_FDE4 .text:0000FD04 ; --------------------------------------------------------------------------- .text:0000FD04 .text:0000FD04 loc_FD04 ; CODE XREF: fcntl+8Cj .text:0000FD04 LDR R3, [R6,#4] .text:0000FD08 STR R3, [R11,#var_3C] .text:0000FD0C LDR R2, [R6,#4] .text:0000FD10 MOV R0, R3 .text:0000FD14 MOV R1, R0,ASR#31 .text:0000FD18 CMP R0, R2 .text:0000FD1C BNE loc_FD5C .text:0000FD20 LDR R3, [R6,#8] .text:0000FD24 CMP R1, R3 .text:0000FD28 BNE loc_FD5C .text:0000FD2C MOV R3, #0xC .text:0000FD30 LDR R2, [R6,R3] .text:0000FD34 STR R2, [R11,#var_38] .text:0000FD38 MOV R4, R2 .text:0000FD3C MOV R5, R4,ASR#31 .text:0000FD40 LDR R1, [R6,R3] .text:0000FD44 ADD R3, R6, R3 .text:0000FD48 CMP R4, R1 .text:0000FD4C BNE loc_FD5C .text:0000FD50 LDR R3, [R3,#4] .text:0000FD54 CMP R5, R3 .text:0000FD58 BEQ loc_FD70 .text:0000FD5C .text:0000FD5C loc_FD5C ; CODE XREF: fcntl+A8j .text:0000FD5C ; fcntl+B4j ... .text:0000FD5C BL __errno_location .text:0000FD60 MOV R3, #0x4B .text:0000FD64 STR R3, [R0] .text:0000FD68 MOV R0, 0xFFFFFFFF .text:0000FD6C B locret_FDE4 .text:0000FD70 ; --------------------------------------------------------------------------- .text:0000FD70 .text:0000FD70 loc_FD70 ; CODE XREF: fcntl+1E8j .text:0000FD70 LDR R3, [R6] .text:0000FD74 STRB R3, [R11,#var_40] .text:0000FD78 MOV R3, R3,ASR#8 .text:0000FD7C STRB R3, [R11,#var_3F] .text:0000FD80 LDR R2, [R6] .text:0000FD84 MOV R2, R2,LSR#16 .text:0000FD88 STRB R2, [R11,#var_3E] .text:0000FD8C MOV R2, R2,ASR#8 .text:0000FD90 STRB R2, [R11,#var_3D] .text:0000FD94 SUB R1, R7, #7 .text:0000FD98 MOV R0, R8 .text:0000FD9C LDR R3, [R6,#0x14] .text:0000FDA0 SUB R2, R11, #-var_40 .text:0000FDA4 STR R3, [R11,#var_34] .text:0000FDA8 SVC 0x900037 .text:0000FDAC B loc_FDC4 .text:0000FDAC ; --------------------------------------------------------------------------- .text:0000FDB0 off_FDB0 DCD __have_no_fcntl64 ; DATA XREF: fcntl+Cr .text:0000FDB4 ; --------------------------------------------------------------------------- .text:0000FDB4 .text:0000FDB4 loc_FDB4 ; CODE XREF: fcntl+80j .text:0000FDB4 ; fcntl+88j .text:0000FDB4 MOV R2, R6 .text:0000FDB8 MOV R1, R7 .text:0000FDBC MOV R0, R8 .text:0000FDC0 SVC 0x900037 .text:0000FDC4 .text:0000FDC4 loc_FDC4 ; CODE XREF: fcntl+23Cj .text:0000FDC4 MOV R4, R0 .text:0000FDC8 CMN R4, #0x1000 .text:0000FDCC BLS loc_FDE0 .text:0000FDD0 BL __errno_location .text:0000FDD4 RSB R3, R4, #0 .text:0000FDD8 MOV R4, 0xFFFFFFFF .text:0000FDDC STR R3, [R0] .text:0000FDE0 .text:0000FDE0 loc_FDE0 ; CODE XREF: fcntl+5Cj .text:0000FDE0 ; fcntl+6Cj ... .text:0000FDE0 MOV R0, R4 .text:0000FDE4 .text:0000FDE4 locret_FDE4 ; CODE XREF: fcntl+144j .text:0000FDE4 ; fcntl+190j ... .text:0000FDE4 LDMDB R11, {R4-R8,R11,SP,PC} .text:0000FDE4 ; End of function fcntl .text:0000FDE4 .text:0000FDE8 .text:0000FDE8 ; =============== S U B R O U T I N E ======================================= .text:0000FDE8 .text:0000FDE8 ; Attributes: bp-based frame .text:0000FDE8 .text:0000FDE8 WEAK sbrk .text:0000FDE8 sbrk ; CODE XREF: __default_morecore+Cp .text:0000FDE8 MOV R12, SP ; Alternative name is '__sbrk' .text:0000FDEC STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0000FDF0 SUB R11, R12, #4 .text:0000FDF4 LDR R2, =__curbrk .text:0000FDF8 MOV R5, R0 .text:0000FDFC LDR R3, [R2] .text:0000FE00 MOV R4, R2 .text:0000FE04 CMP R3, #0 .text:0000FE08 BEQ loc_FE1C .text:0000FE0C LDR R3, =__libc_multiple_libcs .text:0000FE10 LDR R2, [R3] .text:0000FE14 CMP R2, #0 .text:0000FE18 BEQ loc_FE30 .text:0000FE1C .text:0000FE1C loc_FE1C ; CODE XREF: sbrk+20j .text:0000FE1C MOV R0, #0 .text:0000FE20 BL brk .text:0000FE24 CMP R0, #0 .text:0000FE28 MOVLT R0, 0xFFFFFFFF .text:0000FE2C LDMLTDB R11, {R4,R5,R11,SP,PC} .text:0000FE30 .text:0000FE30 loc_FE30 ; CODE XREF: sbrk+30j .text:0000FE30 CMP R5, #0 .text:0000FE34 BEQ loc_FE54 .text:0000FE38 LDR R4, [R4] .text:0000FE3C ADD R0, R4, R5 .text:0000FE40 BL brk .text:0000FE44 CMP R0, #0 .text:0000FE48 MOVGE R0, R4 .text:0000FE4C MOVLT R0, 0xFFFFFFFF .text:0000FE50 LDMDB R11, {R4,R5,R11,SP,PC} .text:0000FE54 ; --------------------------------------------------------------------------- .text:0000FE54 .text:0000FE54 loc_FE54 ; CODE XREF: sbrk+4Cj .text:0000FE54 LDR R0, [R4] .text:0000FE58 LDMDB R11, {R4,R5,R11,SP,PC} .text:0000FE58 ; End of function sbrk .text:0000FE58 .text:0000FE58 ; --------------------------------------------------------------------------- .text:0000FE5C off_FE5C DCD __curbrk ; DATA XREF: sbrk+Cr .text:0000FE60 off_FE60 DCD __libc_multiple_libcs ; DATA XREF: sbrk+24r .text:0000FE64 .text:0000FE64 ; =============== S U B R O U T I N E ======================================= .text:0000FE64 .text:0000FE64 ; Attributes: bp-based frame .text:0000FE64 .text:0000FE64 WEAK getpagesize .text:0000FE64 getpagesize ; CODE XREF: ptmalloc_init+2Cp .text:0000FE64 ; non_dynamic_init+1Cp ... .text:0000FE64 MOV R12, SP ; Alternative name is '__getpagesize' .text:0000FE68 STMFD SP!, {R11,R12,LR,PC} .text:0000FE6C LDR R3, =_dl_pagesize .text:0000FE70 LDR R0, [R3] .text:0000FE74 SUB R11, R12, #4 .text:0000FE78 CMP R0, #0 .text:0000FE7C MOVEQ R0, #0x1000 .text:0000FE80 LDMDB R11, {R11,SP,PC} .text:0000FE80 ; End of function getpagesize .text:0000FE80 .text:0000FE80 ; --------------------------------------------------------------------------- .text:0000FE84 off_FE84 DCD _dl_pagesize ; DATA XREF: getpagesize+8r .text:0000FE88 ALIGN 0x10 .text:0000FE90 .text:0000FE90 ; =============== S U B R O U T I N E ======================================= .text:0000FE90 .text:0000FE90 .text:0000FE90 WEAK mmap .text:0000FE90 mmap ; CODE XREF: open_fpga_interface+58p .text:0000FE90 ; _IO_default_doallocate+30p ... .text:0000FE90 .text:0000FE90 varg_r0 = -0x10 .text:0000FE90 varg_r1 = -0xC .text:0000FE90 varg_r2 = -8 .text:0000FE90 varg_r3 = -4 .text:0000FE90 .text:0000FE90 STMFD SP!, {R0-R3} .text:0000FE94 MOV R0, SP .text:0000FE98 SVC 0x90005A .text:0000FE9C ADD SP, SP, #0x10 .text:0000FEA0 CMN R0, #0x1000 .text:0000FEA4 MOVCC PC, LR .text:0000FEA8 B __syscall_error .text:0000FEA8 ; End of function mmap .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 munmap .text:0000FEB0 munmap ; CODE XREF: close_fpga_interface+18p .text:0000FEB0 ; _IO_setb+50p ... .text:0000FEB0 SVC 0x90005B ; Alternative name is '__munmap' .text:0000FEB4 CMN R0, #0x1000 .text:0000FEB8 MOVCC PC, LR .text:0000FEBC B __syscall_error .text:0000FEBC ; End of function munmap .text:0000FEBC .text:0000FEC0 .text:0000FEC0 ; =============== S U B R O U T I N E ======================================= .text:0000FEC0 .text:0000FEC0 .text:0000FEC0 WEAK mprotect .text:0000FEC0 mprotect ; CODE XREF: new_heap+FCp .text:0000FEC0 ; grow_heap+48p ... .text:0000FEC0 SVC 0x90007D .text:0000FEC4 CMN R0, #0x1000 .text:0000FEC8 MOVCC PC, LR .text:0000FECC B __syscall_error .text:0000FECC ; End of function mprotect .text:0000FECC .text:0000FED0 .text:0000FED0 ; =============== S U B R O U T I N E ======================================= .text:0000FED0 .text:0000FED0 .text:0000FED0 WEAK mremap .text:0000FED0 mremap ; CODE XREF: mremap_chunk+48p .text:0000FED0 SVC 0x9000A3 ; Alternative name is '__mremap' .text:0000FED4 CMN R0, #0x1000 .text:0000FED8 MOVCC PC, LR .text:0000FEDC B __syscall_error .text:0000FEDC ; End of function mremap .text:0000FEDC .text:0000FEE0 .text:0000FEE0 ; =============== S U B R O U T I N E ======================================= .text:0000FEE0 .text:0000FEE0 ; Attributes: bp-based frame .text:0000FEE0 .text:0000FEE0 EXPORT _dl_dst_count .text:0000FEE0 _dl_dst_count ; CODE XREF: expand_dynamic_string_token+30p .text:0000FEE0 ; dl_open_worker+120p ... .text:0000FEE0 .text:0000FEE0 var_2C = -0x2C .text:0000FEE0 .text:0000FEE0 MOV R12, SP .text:0000FEE4 STMFD SP!, {R4-R12,LR,PC} .text:0000FEE8 SUB R11, R12, #4 .text:0000FEEC MOV R5, R0 .text:0000FEF0 MOV R10, R1 .text:0000FEF4 MOV R8, #0 .text:0000FEF8 LDR R9, =aOrigin ; "{ORIGIN}" .text:0000FEFC SUB SP, SP, #4 .text:0000FF00 STR R5, [R11,#var_2C] .text:0000FF04 .text:0000FF04 loc_FF04 ; CODE XREF: _dl_dst_count+138j .text:0000FF04 MOV R7, #1 .text:0000FF08 ADD R4, R5, R7 .text:0000FF0C MOV R0, R4 .text:0000FF10 MOV R1, R9 .text:0000FF14 MOV R2, #8 .text:0000FF18 BL strncmp .text:0000FF1C CMP R0, #0 .text:0000FF20 ADDEQ R7, R7, #8 .text:0000FF24 BEQ loc_FF64 .text:0000FF28 MOV R0, R4 .text:0000FF2C ADD R1, R9, #1 .text:0000FF30 MOV R2, #6 .text:0000FF34 BL strncmp .text:0000FF38 CMP R0, #0 .text:0000FF3C BNE loc_FF98 .text:0000FF40 LDRB R3, [R5,#7] .text:0000FF44 CMP R3, #0x2F .text:0000FF48 CMPNE R3, #0 .text:0000FF4C BEQ loc_FF60 .text:0000FF50 CMP R10, #0 .text:0000FF54 BEQ loc_FF98 .text:0000FF58 CMP R3, #0x3A .text:0000FF5C BNE loc_FF98 .text:0000FF60 .text:0000FF60 loc_FF60 ; CODE XREF: _dl_dst_count+6Cj .text:0000FF60 MOV R7, #7 .text:0000FF64 .text:0000FF64 loc_FF64 ; CODE XREF: _dl_dst_count+44j .text:0000FF64 LDR R3, =__libc_enable_secure .text:0000FF68 LDR R2, [R3] .text:0000FF6C CMP R2, #0 .text:0000FF70 BNE loc_10008 .text:0000FF74 LDR R3, [R11,#var_2C] .text:0000FF78 CMP R5, R3 .text:0000FF7C BEQ loc_10004 .text:0000FF80 CMP R10, #0 .text:0000FF84 BEQ loc_10008 .text:0000FF88 LDRB R3, [R5,#-1] .text:0000FF8C CMP R3, #0x3A .text:0000FF90 BNE loc_10008 .text:0000FF94 B loc_10004 .text:0000FF98 ; --------------------------------------------------------------------------- .text:0000FF98 .text:0000FF98 loc_FF98 ; CODE XREF: _dl_dst_count+5Cj .text:0000FF98 ; _dl_dst_count+74j ... .text:0000FF98 MOV R0, R4 .text:0000FF9C LDR R6, =aPlatform ; "{PLATFORM}" .text:0000FFA0 MOV R2, #0xA .text:0000FFA4 MOV R1, R6 .text:0000FFA8 BL strncmp .text:0000FFAC CMP R0, #0 .text:0000FFB0 BNE loc_FFC8 .text:0000FFB4 MOV R7, #0xB .text:0000FFB8 B loc_10004 .text:0000FFB8 ; --------------------------------------------------------------------------- .text:0000FFBC off_FFBC DCD aOrigin ; DATA XREF: _dl_dst_count+18r .text:0000FFBC ; "{ORIGIN}" .text:0000FFC0 off_FFC0 DCD __libc_enable_secure ; DATA XREF: _dl_dst_count:loc_FF64r .text:0000FFC4 off_FFC4 DCD aPlatform ; DATA XREF: _dl_dst_count+BCr .text:0000FFC4 ; "{PLATFORM}" .text:0000FFC8 ; --------------------------------------------------------------------------- .text:0000FFC8 .text:0000FFC8 loc_FFC8 ; CODE XREF: _dl_dst_count+D0j .text:0000FFC8 MOV R0, R4 .text:0000FFCC ADD R1, R6, #1 .text:0000FFD0 MOV R2, #8 .text:0000FFD4 BL strncmp .text:0000FFD8 CMP R0, #0 .text:0000FFDC BNE loc_10008 .text:0000FFE0 LDRB R3, [R5,#9] .text:0000FFE4 CMP R3, #0x2F .text:0000FFE8 CMPNE R3, #0 .text:0000FFEC BEQ loc_10000 .text:0000FFF0 CMP R10, #0 .text:0000FFF4 BEQ loc_10008 .text:0000FFF8 CMP R3, #0x3A .text:0000FFFC BNE loc_10008 .text:00010000 .text:00010000 loc_10000 ; CODE XREF: _dl_dst_count+10Cj .text:00010000 MOV R7, #9 .text:00010004 .text:00010004 loc_10004 ; CODE XREF: _dl_dst_count+9Cj .text:00010004 ; _dl_dst_count+B4j ... .text:00010004 ADD R8, R8, #1 .text:00010008 .text:00010008 loc_10008 ; CODE XREF: _dl_dst_count+90j .text:00010008 ; _dl_dst_count+A4j ... .text:00010008 ADD R0, R5, R7 .text:0001000C MOV R1, #0x24 .text:00010010 BL strchr .text:00010014 SUBS R5, R0, #0 .text:00010018 BNE loc_FF04 .text:0001001C MOV R0, R8 .text:00010020 LDMDB R11, {R4-R11,SP,PC} .text:00010020 ; End of function _dl_dst_count .text:00010020 .text:00010024 .text:00010024 ; =============== S U B R O U T I N E ======================================= .text:00010024 .text:00010024 ; Attributes: bp-based frame .text:00010024 .text:00010024 EXPORT _dl_dst_substitute .text:00010024 _dl_dst_substitute ; CODE XREF: expand_dynamic_string_token+11Cp .text:00010024 ; dl_open_worker+15Cp ... .text:00010024 .text:00010024 var_3C = -0x3C .text:00010024 var_38 = -0x38 .text:00010024 var_34 = -0x34 .text:00010024 var_30 = -0x30 .text:00010024 var_2C = -0x2C .text:00010024 .text:00010024 MOV R12, SP .text:00010028 STMFD SP!, {R4-R12,LR,PC} .text:0001002C SUB R11, R12, #4 .text:00010030 SUB SP, SP, #0x14 .text:00010034 STR R0, [R11,#var_2C] .text:00010038 STR R2, [R11,#var_30] .text:0001003C MOV R5, R1 .text:00010040 STR R5, [R11,#var_34] .text:00010044 MOV R9, R3 .text:00010048 MOV R10, R2 .text:0001004C STR R10, [R11,#var_38] .text:00010050 .text:00010050 loc_10050 ; CODE XREF: _dl_dst_substitute+20Cj .text:00010050 LDRB R3, [R5] .text:00010054 CMP R3, #0x24 .text:00010058 BNE loc_10204 .text:0001005C MOV R2, #0 .text:00010060 STR R2, [R11,#var_3C] .text:00010064 MOV R7, #1 .text:00010068 ADD R4, R5, R7 .text:0001006C MOV R0, R4 .text:00010070 LDR R6, =aOrigin ; "{ORIGIN}" .text:00010074 ADD R2, R2, #8 .text:00010078 MOV R1, R6 .text:0001007C BL strncmp .text:00010080 CMP R0, #0 .text:00010084 MOV R8, R4 .text:00010088 ADDEQ R7, R7, #8 .text:0001008C BEQ loc_100CC .text:00010090 MOV R0, R8 .text:00010094 ADD R1, R6, #1 .text:00010098 MOV R2, #6 .text:0001009C BL strncmp .text:000100A0 CMP R0, #0 .text:000100A4 BNE loc_1010C .text:000100A8 LDRB R3, [R5,#7] .text:000100AC CMP R3, #0x2F .text:000100B0 CMPNE R3, #0 .text:000100B4 BEQ loc_100C8 .text:000100B8 CMP R9, #0 .text:000100BC BEQ loc_1010C .text:000100C0 CMP R3, #0x3A .text:000100C4 BNE loc_1010C .text:000100C8 .text:000100C8 loc_100C8 ; CODE XREF: _dl_dst_substitute+90j .text:000100C8 MOV R7, #7 .text:000100CC .text:000100CC loc_100CC ; CODE XREF: _dl_dst_substitute+68j .text:000100CC LDR R3, =__libc_enable_secure .text:000100D0 LDR R2, [R3] .text:000100D4 CMP R2, #0 .text:000100D8 BNE loc_1016C .text:000100DC LDR R3, [R11,#var_34] .text:000100E0 CMP R5, R3 .text:000100E4 BEQ loc_100FC .text:000100E8 CMP R9, #0 .text:000100EC BEQ loc_1016C .text:000100F0 LDRB R3, [R5,#-1] .text:000100F4 CMP R3, #0x3A .text:000100F8 BNE loc_1016C .text:000100FC .text:000100FC loc_100FC ; CODE XREF: _dl_dst_substitute+C0j .text:000100FC LDR R2, [R11,#var_2C] .text:00010100 LDR R2, [R2,#0x148] .text:00010104 STR R2, [R11,#var_3C] .text:00010108 B loc_1016C .text:0001010C ; --------------------------------------------------------------------------- .text:0001010C .text:0001010C loc_1010C ; CODE XREF: _dl_dst_substitute+80j .text:0001010C ; _dl_dst_substitute+98j ... .text:0001010C MOV R0, R8 .text:00010110 LDR R4, =aPlatform ; "{PLATFORM}" .text:00010114 MOV R2, #0xA .text:00010118 MOV R1, R4 .text:0001011C BL strncmp .text:00010120 CMP R0, #0 .text:00010124 MOVEQ R7, #0xB .text:00010128 BEQ loc_10160 .text:0001012C MOV R0, R8 .text:00010130 ADD R1, R4, #1 .text:00010134 MOV R2, #8 .text:00010138 BL strncmp .text:0001013C CMP R0, #0 .text:00010140 BNE loc_1016C .text:00010144 LDRB R3, [R5,#9] .text:00010148 CMP R3, #0x2F .text:0001014C CMPNE R3, #0 .text:00010150 BEQ loc_1015C .text:00010154 CMP R3, #0x3A .text:00010158 BNE loc_1016C .text:0001015C .text:0001015C loc_1015C ; CODE XREF: _dl_dst_substitute+12Cj .text:0001015C MOV R7, #9 .text:00010160 .text:00010160 loc_10160 ; CODE XREF: _dl_dst_substitute+104j .text:00010160 LDR R3, =_dl_platform .text:00010164 LDR R3, [R3] .text:00010168 STR R3, [R11,#var_3C] .text:0001016C .text:0001016C loc_1016C ; CODE XREF: _dl_dst_substitute+B4j .text:0001016C ; _dl_dst_substitute+C8j ... .text:0001016C LDR R3, [R11,#var_3C] .text:00010170 CMP R3, #0 .text:00010174 CMNNE R3, #1 .text:00010178 BEQ loc_10194 .text:0001017C MOV R0, R10 .text:00010180 MOV R1, R3 .text:00010184 BL stpcpy .text:00010188 MOV R10, R0 .text:0001018C ADD R5, R5, R7 .text:00010190 B loc_10228 .text:00010194 ; --------------------------------------------------------------------------- .text:00010194 .text:00010194 loc_10194 ; CODE XREF: _dl_dst_substitute+154j .text:00010194 CMP R7, #1 .text:00010198 BLS loc_101E4 .text:0001019C LDRB R3, [R5,R7]! .text:000101A0 LDR R10, [R11,#var_38] .text:000101A4 AND R3, R3, #0xFF .text:000101A8 CMP R3, #0 .text:000101AC BEQ loc_10228 .text:000101B0 CMP R9, #0 .text:000101B4 BEQ loc_101C0 .text:000101B8 CMP R3, #0x3A .text:000101BC BEQ loc_10228 .text:000101C0 .text:000101C0 loc_101C0 ; CODE XREF: _dl_dst_substitute+190j .text:000101C0 ; _dl_dst_substitute+1B0j ... .text:000101C0 LDRB R3, [R5,#1]! .text:000101C4 AND R3, R3, #0xFF .text:000101C8 CMP R3, #0 .text:000101CC BEQ loc_10228 .text:000101D0 CMP R9, #0 .text:000101D4 BEQ loc_101C0 .text:000101D8 CMP R3, #0x3A .text:000101DC BNE loc_101C0 .text:000101E0 B loc_10228 .text:000101E4 ; --------------------------------------------------------------------------- .text:000101E4 .text:000101E4 loc_101E4 ; CODE XREF: _dl_dst_substitute+174j .text:000101E4 LDRB R3, [R5] .text:000101E8 MOV R5, R8 .text:000101EC STRB R3, [R10],#1 .text:000101F0 B loc_10228 .text:000101F0 ; --------------------------------------------------------------------------- .text:000101F4 off_101F4 DCD aOrigin ; DATA XREF: _dl_dst_substitute+4Cr .text:000101F4 ; "{ORIGIN}" .text:000101F8 off_101F8 DCD __libc_enable_secure .text:000101F8 ; DATA XREF: _dl_dst_substitute:loc_100CCr .text:000101FC off_101FC DCD aPlatform ; DATA XREF: _dl_dst_substitute+ECr .text:000101FC ; "{PLATFORM}" .text:00010200 off_10200 DCD _dl_platform ; DATA XREF: _dl_dst_substitute:loc_10160r .text:00010204 ; --------------------------------------------------------------------------- .text:00010204 .text:00010204 loc_10204 ; CODE XREF: _dl_dst_substitute+34j .text:00010204 ADD R5, R5, #1 .text:00010208 CMP R9, #0 .text:0001020C STRB R3, [R10],#1 .text:00010210 BEQ loc_10228 .text:00010214 LDRB R3, [R5] .text:00010218 LDR R2, [R11,#var_38] .text:0001021C CMP R3, #0x3A .text:00010220 MOVEQ R2, R10 .text:00010224 STR R2, [R11,#var_38] .text:00010228 .text:00010228 loc_10228 ; CODE XREF: _dl_dst_substitute+16Cj .text:00010228 ; _dl_dst_substitute+188j ... .text:00010228 LDRB R3, [R5] .text:0001022C CMP R3, #0 .text:00010230 BNE loc_10050 .text:00010234 LDR R0, [R11,#var_30] .text:00010238 STRB R3, [R10] .text:0001023C LDMDB R11, {R4-R11,SP,PC} .text:0001023C ; End of function _dl_dst_substitute .text:0001023C .text:00010240 .text:00010240 ; =============== S U B R O U T I N E ======================================= .text:00010240 .text:00010240 ; Attributes: bp-based frame .text:00010240 .text:00010240 expand_dynamic_string_token ; CODE XREF: decompose_rpath+BCp .text:00010240 ; _dl_map_object+5D8p .text:00010240 MOV R12, SP .text:00010244 STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:00010248 SUB R11, R12, #4 .text:0001024C MOV R7, #0 .text:00010250 MOV R6, R0 .text:00010254 MOV R5, R1 .text:00010258 MOV R0, R5 .text:0001025C MOV R1, #0x24 .text:00010260 BL strchr .text:00010264 CMP R0, #0 .text:00010268 BEQ loc_10278 .text:0001026C MOV R1, #1 .text:00010270 BL _dl_dst_count .text:00010274 MOV R7, R0 .text:00010278 .text:00010278 loc_10278 ; CODE XREF: expand_dynamic_string_token+28j .text:00010278 CMP R7, #0 .text:0001027C BNE loc_102B0 .text:00010280 MOV R0, R5 .text:00010284 BL strlen .text:00010288 ADD R4, R0, #1 .text:0001028C MOV R0, R4 .text:00010290 BL malloc .text:00010294 CMP R0, #0 .text:00010298 MOVEQ R0, R7 .text:0001029C LDMEQDB R11, {R4-R8,R11,SP,PC} .text:000102A0 MOV R1, R5 .text:000102A4 MOV R2, R4 .text:000102A8 BL memcpy .text:000102AC LDMDB R11, {R4-R8,R11,SP,PC} .text:000102B0 ; --------------------------------------------------------------------------- .text:000102B0 .text:000102B0 loc_102B0 ; CODE XREF: expand_dynamic_string_token+3Cj .text:000102B0 MOV R0, R5 .text:000102B4 BL strlen .text:000102B8 LDR R4, [R6,#0x148] .text:000102BC MOV R8, R0 .text:000102C0 CMP R4, #0 .text:000102C4 BNE loc_1030C .text:000102C8 LDR R3, [R6,#4] .text:000102CC LDRB R2, [R3] .text:000102D0 CMP R2, #0 .text:000102D4 BEQ loc_102F0 .text:000102D8 LDR R0, =aLL_name00 ; "(l)->l_name[0] == '\\0'" .text:000102DC LDR R1, =aDlLoad_c ; "dl-load.c" .text:000102E0 MOV R2, #0x138 .text:000102E4 LDR R3, =aExpand_dynamic ; "expand_dynamic_string_token" .text:000102E8 ADD R2, R2, #1 .text:000102EC BL __assert_fail .text:000102F0 ; --------------------------------------------------------------------------- .text:000102F0 .text:000102F0 loc_102F0 ; CODE XREF: expand_dynamic_string_token+94j .text:000102F0 BL _dl_get_origin .text:000102F4 CMP R0, #0 .text:000102F8 CMNNE R0, #1 .text:000102FC STR R0, [R6,#0x148] .text:00010300 BEQ loc_10320 .text:00010304 BL strlen .text:00010308 B loc_10324 .text:0001030C ; --------------------------------------------------------------------------- .text:0001030C .text:0001030C loc_1030C ; CODE XREF: expand_dynamic_string_token+84j .text:0001030C CMN R4, #1 .text:00010310 BEQ loc_10320 .text:00010314 MOV R0, R4 .text:00010318 BL strlen .text:0001031C B loc_10324 .text:00010320 ; --------------------------------------------------------------------------- .text:00010320 .text:00010320 loc_10320 ; CODE XREF: expand_dynamic_string_token+C0j .text:00010320 ; expand_dynamic_string_token+D0j .text:00010320 MOV R0, #0 .text:00010324 .text:00010324 loc_10324 ; CODE XREF: expand_dynamic_string_token+C8j .text:00010324 ; expand_dynamic_string_token+DCj .text:00010324 LDR R3, =_dl_platformlen .text:00010328 LDR R2, [R3] .text:0001032C CMP R2, R0 .text:00010330 MOVCC R2, R0 .text:00010334 SUB R2, R2, #7 .text:00010338 MLA R0, R2, R7, R8 .text:0001033C ADD R0, R0, #1 .text:00010340 BL malloc .text:00010344 SUBS R2, R0, #0 .text:00010348 MOV R0, #0 .text:0001034C LDMEQDB R11, {R4-R8,R11,SP,PC} .text:00010350 MOV R0, R6 .text:00010354 MOV R1, R5 .text:00010358 MOV R3, #1 .text:0001035C BL _dl_dst_substitute .text:00010360 LDMDB R11, {R4-R8,R11,SP,PC} .text:00010360 ; End of function expand_dynamic_string_token .text:00010360 .text:00010360 ; --------------------------------------------------------------------------- .text:00010364 off_10364 DCD aLL_name00 ; DATA XREF: expand_dynamic_string_token+98r .text:00010364 ; "(l)->l_name[0] == '\\0'" .text:00010368 off_10368 DCD aDlLoad_c ; DATA XREF: expand_dynamic_string_token+9Cr .text:00010368 ; "dl-load.c" .text:0001036C off_1036C DCD aExpand_dynamic ; DATA XREF: expand_dynamic_string_token+A4r .text:0001036C ; "expand_dynamic_string_token" .text:00010370 off_10370 DCD _dl_platformlen ; DATA XREF: expand_dynamic_string_token:loc_10324r .text:00010374 .text:00010374 ; =============== S U B R O U T I N E ======================================= .text:00010374 .text:00010374 ; Attributes: bp-based frame .text:00010374 .text:00010374 add_name_to_object ; CODE XREF: _dl_map_object_from_fd+BE0p .text:00010374 ; _dl_map_object+E4p .text:00010374 MOV R12, SP .text:00010378 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0001037C SUB R11, R12, #4 .text:00010380 MOV R6, #0 .text:00010384 LDR R4, [R0,#0x14] .text:00010388 MOV R5, R1 .text:0001038C CMP R4, R6 .text:00010390 BEQ loc_103B8 .text:00010394 .text:00010394 loc_10394 ; CODE XREF: add_name_to_object+40j .text:00010394 LDR R1, [R4] .text:00010398 MOV R0, R5 .text:0001039C BL strcmp .text:000103A0 CMP R0, #0 .text:000103A4 LDMEQDB R11, {R4-R7,R11,SP,PC} .text:000103A8 MOV R6, R4 .text:000103AC LDR R4, [R6,#4] .text:000103B0 CMP R4, #0 .text:000103B4 BNE loc_10394 .text:000103B8 .text:000103B8 loc_103B8 ; CODE XREF: add_name_to_object+1Cj .text:000103B8 MOV R0, R5 .text:000103BC BL strlen .text:000103C0 MOV R3, R0 .text:000103C4 ADD R0, R3, #0xD .text:000103C8 ADD R7, R3, #1 .text:000103CC BL malloc .text:000103D0 SUBS R4, R0, #0 .text:000103D4 BNE loc_103E8 .text:000103D8 MOV R0, #0xC .text:000103DC LDR R2, =aCannotAllocate ; "cannot allocate name record" .text:000103E0 MOV R1, R5 .text:000103E4 BL _dl_signal_error .text:000103E8 ; --------------------------------------------------------------------------- .text:000103E8 .text:000103E8 loc_103E8 ; CODE XREF: add_name_to_object+60j .text:000103E8 CMP R6, #0 .text:000103EC BNE loc_10408 .text:000103F0 LDR R0, =aLastpVoid0 ; "lastp != ((void *)0)" .text:000103F4 LDR R1, =aDlLoad_c ; "dl-load.c" .text:000103F8 MOV R2, #0x15C .text:000103FC LDR R3, =aAdd_name_to_ob ; "add_name_to_object" .text:00010400 ADD R2, R2, #2 .text:00010404 BL __assert_fail .text:00010408 ; --------------------------------------------------------------------------- .text:00010408 .text:00010408 loc_10408 ; CODE XREF: add_name_to_object+78j .text:00010408 ADD R0, R4, #0xC .text:0001040C MOV R1, R5 .text:00010410 MOV R2, R7 .text:00010414 BL memcpy .text:00010418 STR R0, [R4] .text:0001041C MOV R3, #0 .text:00010420 STR R3, [R4,#4] .text:00010424 STR R3, [R4,#8] .text:00010428 STR R4, [R6,#4] .text:0001042C LDMDB R11, {R4-R7,R11,SP,PC} .text:0001042C ; End of function add_name_to_object .text:0001042C .text:0001042C ; --------------------------------------------------------------------------- .text:00010430 off_10430 DCD aCannotAllocate ; DATA XREF: add_name_to_object+68r .text:00010430 ; "cannot allocate name record" .text:00010434 off_10434 DCD aLastpVoid0 ; DATA XREF: add_name_to_object+7Cr .text:00010434 ; "lastp != ((void *)0)" .text:00010438 off_10438 DCD aDlLoad_c ; DATA XREF: add_name_to_object+80r .text:00010438 ; "dl-load.c" .text:0001043C off_1043C DCD aAdd_name_to_ob ; DATA XREF: add_name_to_object+88r .text:0001043C ; "add_name_to_object" .text:00010440 .text:00010440 ; =============== S U B R O U T I N E ======================================= .text:00010440 .text:00010440 ; Attributes: bp-based frame .text:00010440 .text:00010440 decompose_rpath ; CODE XREF: _dl_map_object+210p .text:00010440 ; _dl_map_object+3C0p .text:00010440 .text:00010440 var_40 = -0x40 .text:00010440 var_3C = -0x3C .text:00010440 var_38 = -0x38 .text:00010440 var_34 = -0x34 .text:00010440 var_30 = -0x30 .text:00010440 var_2C = -0x2C .text:00010440 .text:00010440 MOV R12, SP .text:00010444 STMFD SP!, {R4-R12,LR,PC} .text:00010448 SUB R11, R12, #4 .text:0001044C LDR R8, =_dl_inhibit_rpath .text:00010450 SUB SP, SP, #0x18 .text:00010454 LDR R12, [R8] .text:00010458 STR R0, [R11,#var_30] .text:0001045C STR R3, [R11,#var_34] .text:00010460 MOV R7, R1 .text:00010464 MOV R6, R2 .text:00010468 LDR R2, [R6,#4] .text:0001046C CMP R12, #0 .text:00010470 STR R2, [R11,#var_38] .text:00010474 BEQ loc_104F4 .text:00010478 LDR R3, =__libc_enable_secure .text:0001047C LDR R5, [R3] .text:00010480 CMP R5, #0 .text:00010484 BNE loc_104F4 .text:00010488 MOV R0, R12 .text:0001048C MOV R1, R2 .text:00010490 BL strstr .text:00010494 SUBS R4, R0, #0 .text:00010498 BEQ loc_104F4 .text:0001049C LDR R0, [R11,#var_38] .text:000104A0 BL strlen .text:000104A4 LDR R3, [R8] .text:000104A8 CMP R4, R3 .text:000104AC BEQ loc_104BC .text:000104B0 LDRB R3, [R4,#-1] .text:000104B4 CMP R3, #0x3A .text:000104B8 BNE loc_104F4 .text:000104BC .text:000104BC loc_104BC ; CODE XREF: decompose_rpath+6Cj .text:000104BC LDRB R3, [R4,R0] .text:000104C0 CMP R3, #0x3A .text:000104C4 CMPNE R3, #0 .text:000104C8 BNE loc_104F4 .text:000104CC MOV R0, #4 .text:000104D0 BL malloc .text:000104D4 SUBS R10, R0, #0 .text:000104D8 BNE loc_104EC .text:000104DC MOV R0, #0xC .text:000104E0 LDR R2, =aCannotCreateCa ; "cannot create cache for search path" .text:000104E4 MOV R1, R10 .text:000104E8 BL _dl_signal_error .text:000104EC ; --------------------------------------------------------------------------- .text:000104EC .text:000104EC loc_104EC ; CODE XREF: decompose_rpath+98j .text:000104EC STR R5, [R10] .text:000104F0 B loc_107E8 .text:000104F4 ; --------------------------------------------------------------------------- .text:000104F4 .text:000104F4 loc_104F4 ; CODE XREF: decompose_rpath+34j .text:000104F4 ; decompose_rpath+44j ... .text:000104F4 MOV R0, R6 .text:000104F8 MOV R1, R7 .text:000104FC BL expand_dynamic_string_token .text:00010500 CMP R0, #0 .text:00010504 STR R0, [R11,#var_3C] .text:00010508 BNE loc_1051C .text:0001050C LDR R2, =aCannotCreateRu ; "cannot create RUNPATH/RPATH copy" .text:00010510 LDR R1, [R11,#var_3C] .text:00010514 MOV R0, #0xC .text:00010518 BL _dl_signal_error .text:0001051C ; --------------------------------------------------------------------------- .text:0001051C .text:0001051C loc_1051C ; CODE XREF: decompose_rpath+C8j .text:0001051C LDR R2, [R11,#var_3C] .text:00010520 MOV R0, #0 .text:00010524 LDRB R3, [R2] .text:00010528 MOV R1, R2 .text:0001052C CMP R3, R0 .text:00010530 SUB R3, R11, #-var_2C .text:00010534 STR R3, [R11,#var_40] .text:00010538 BEQ loc_10554 .text:0001053C .text:0001053C loc_1053C ; CODE XREF: decompose_rpath+110j .text:0001053C LDRB R2, [R1] .text:00010540 LDRB R3, [R1,#1]! .text:00010544 CMP R2, #0x3A .text:00010548 ADDEQ R0, R0, #1 .text:0001054C CMP R3, #0 .text:00010550 BNE loc_1053C .text:00010554 .text:00010554 loc_10554 ; CODE XREF: decompose_rpath+F8j .text:00010554 ADD R0, R0, #2 .text:00010558 MOV R0, R0,LSL#2 .text:0001055C BL malloc .text:00010560 SUBS R10, R0, #0 .text:00010564 BNE loc_10578 .text:00010568 MOV R0, #0xC .text:0001056C LDR R2, =aCannotCreateCa ; "cannot create cache for search path" .text:00010570 MOV R1, R10 .text:00010574 BL _dl_signal_error .text:00010578 ; --------------------------------------------------------------------------- .text:00010578 .text:00010578 loc_10578 ; CODE XREF: decompose_rpath+124j .text:00010578 LDR R2, [R11,#var_3C] .text:0001057C MOV R9, #0 .text:00010580 STR R2, [R11,#var_2C] .text:00010584 .text:00010584 loc_10584 ; CODE XREF: decompose_rpath+248j .text:00010584 ; decompose_rpath+370j .text:00010584 LDR R4, [R11,#var_2C] .text:00010588 CMP R4, #0 .text:0001058C BEQ loc_105B8 .text:00010590 LDR R1, =asc_55980 ; ":" .text:00010594 MOV R0, R4 .text:00010598 BL strpbrk .text:0001059C LDR R3, [R11,#var_40] .text:000105A0 CMP R0, #0 .text:000105A4 STR R0, [R3] .text:000105A8 MOVNE R3, #0 .text:000105AC STRNEB R3, [R0],#1 .text:000105B0 LDRNE R2, [R11,#var_40] .text:000105B4 STRNE R0, [R2] .text:000105B8 .text:000105B8 loc_105B8 ; CODE XREF: decompose_rpath+14Cj .text:000105B8 SUBS R7, R4, #0 .text:000105BC BEQ loc_107D8 .text:000105C0 MOV R0, R7 .text:000105C4 BL strlen .text:000105C8 MOV R6, R0 .text:000105CC LDR R3, =curwd.159 ; "./" .text:000105D0 CMP R6, #0 .text:000105D4 MOVEQ R7, R3 .text:000105D8 B loc_105E0 .text:000105DC ; --------------------------------------------------------------------------- .text:000105DC .text:000105DC loc_105DC ; CODE XREF: decompose_rpath+1B4j .text:000105DC SUB R6, R6, #1 .text:000105E0 .text:000105E0 loc_105E0 ; CODE XREF: decompose_rpath+198j .text:000105E0 CMP R6, #1 .text:000105E4 BLS loc_105F8 .text:000105E8 ADD R3, R6, R7 .text:000105EC LDRB R2, [R3,#-1] .text:000105F0 CMP R2, #0x2F .text:000105F4 BEQ loc_105DC .text:000105F8 .text:000105F8 loc_105F8 ; CODE XREF: decompose_rpath+1A4j .text:000105F8 CMP R6, #0 .text:000105FC BEQ loc_10618 .text:00010600 ADD R3, R6, R7 .text:00010604 LDRB R2, [R3,#-1] .text:00010608 CMP R2, #0x2F .text:0001060C MOVNE R3, #0x2F .text:00010610 STRNEB R3, [R6,R7] .text:00010614 ADDNE R6, R6, #1 .text:00010618 .text:00010618 loc_10618 ; CODE XREF: decompose_rpath+1BCj .text:00010618 LDR R3, =_dl_all_dirs .text:0001061C LDR R5, [R3] .text:00010620 B loc_10628 .text:00010624 ; --------------------------------------------------------------------------- .text:00010624 .text:00010624 loc_10624 ; CODE XREF: decompose_rpath+1F8j .text:00010624 ; decompose_rpath+210j .text:00010624 LDR R5, [R5] .text:00010628 .text:00010628 loc_10628 ; CODE XREF: decompose_rpath+1E0j .text:00010628 CMP R5, #0 .text:0001062C BEQ loc_10654 .text:00010630 LDR R3, [R5,#0x10] .text:00010634 CMP R3, R6 .text:00010638 BNE loc_10624 .text:0001063C MOV R0, R7 .text:00010640 LDR R1, [R5,#0xC] .text:00010644 MOV R2, R6 .text:00010648 BL memcmp .text:0001064C CMP R0, #0 .text:00010650 BNE loc_10624 .text:00010654 .text:00010654 loc_10654 ; CODE XREF: decompose_rpath+1ECj .text:00010654 CMP R5, #0 .text:00010658 BEQ loc_1068C .text:0001065C MOV R2, #0 .text:00010660 B loc_10668 .text:00010664 ; --------------------------------------------------------------------------- .text:00010664 .text:00010664 loc_10664 ; CODE XREF: decompose_rpath+238j .text:00010664 ADD R2, R2, #1 .text:00010668 .text:00010668 loc_10668 ; CODE XREF: decompose_rpath+220j .text:00010668 CMP R2, R9 .text:0001066C BCS loc_1067C .text:00010670 LDR R3, [R10,R2,LSL#2] .text:00010674 CMP R3, R5 .text:00010678 BNE loc_10664 .text:0001067C .text:0001067C loc_1067C ; CODE XREF: decompose_rpath+22Cj .text:0001067C CMP R2, R9 .text:00010680 STREQ R5, [R10,R9,LSL#2] .text:00010684 ADDEQ R9, R9, #1 .text:00010688 B loc_10584 .text:0001068C ; --------------------------------------------------------------------------- .text:0001068C .text:0001068C loc_1068C ; CODE XREF: decompose_rpath+218j .text:0001068C LDR R2, [R11,#var_38] .text:00010690 CMP R2, #0 .text:00010694 BEQ loc_106A8 .text:00010698 MOV R0, R2 .text:0001069C BL strlen .text:000106A0 ADD R8, R0, #1 .text:000106A4 B loc_106AC .text:000106A8 ; --------------------------------------------------------------------------- .text:000106A8 .text:000106A8 loc_106A8 ; CODE XREF: decompose_rpath+254j .text:000106A8 MOV R8, R5 .text:000106AC .text:000106AC loc_106AC ; CODE XREF: decompose_rpath+264j .text:000106AC LDR R4, =ncapstr .text:000106B0 LDR R3, [R4] .text:000106B4 ADD R0, R8, #0x14 .text:000106B8 ADD R0, R0, R3,LSL#2 .text:000106BC ADD R0, R0, R6 .text:000106C0 ADD R0, R0, #1 .text:000106C4 BL malloc .text:000106C8 SUBS R5, R0, #0 .text:000106CC BNE loc_106E0 .text:000106D0 MOV R0, #0xC .text:000106D4 LDR R2, =aCannotCreateCa ; "cannot create cache for search path" .text:000106D8 MOV R1, R5 .text:000106DC BL _dl_signal_error .text:000106E0 ; --------------------------------------------------------------------------- .text:000106E0 .text:000106E0 loc_106E0 ; CODE XREF: decompose_rpath+28Cj .text:000106E0 LDR R0, [R4] .text:000106E4 MOV R0, R0,LSL#2 .text:000106E8 ADD R0, R0, #0x14 .text:000106EC ADD R0, R5, R0 .text:000106F0 STR R0, [R5,#0xC] .text:000106F4 MOV R1, R7 .text:000106F8 MOV R2, R6 .text:000106FC BL mempcpy .text:00010700 MOV R1, #0 .text:00010704 STRB R1, [R0] .text:00010708 STR R6, [R5,#0x10] .text:0001070C LDR R2, =max_dirnamelen .text:00010710 LDR R3, [R2] .text:00010714 CMP R6, R3 .text:00010718 STRHI R6, [R2] .text:0001071C LDRB R2, [R7] .text:00010720 MOV R12, R1 .text:00010724 CMP R2, #0x2F .text:00010728 MOVNE R0, #2 .text:0001072C MOVEQ R0, #0 .text:00010730 LDR R3, [R4] .text:00010734 ADD R7, R9, #1 .text:00010738 CMP R12, R3 .text:0001073C BCS loc_10758 .text:00010740 ADD R2, R5, #0x14 .text:00010744 .text:00010744 loc_10744 ; CODE XREF: decompose_rpath+314j .text:00010744 STR R0, [R2,R12,LSL#2] .text:00010748 LDR R3, [R4] .text:0001074C ADD R12, R12, #1 .text:00010750 CMP R12, R3 .text:00010754 BCC loc_10744 .text:00010758 .text:00010758 loc_10758 ; CODE XREF: decompose_rpath+2FCj .text:00010758 LDR R3, [R11,#var_38] .text:0001075C LDR R2, [R11,#var_34] .text:00010760 CMP R3, #0 .text:00010764 STR R2, [R5,#4] .text:00010768 BEQ loc_10790 .text:0001076C MOV R2, R8 .text:00010770 LDR R3, [R4] .text:00010774 ADD R0, R6, R5 .text:00010778 LDR R1, [R11,#var_38] .text:0001077C ADD R0, R0, R3,LSL#2 .text:00010780 ADD R0, R0, #0x15 .text:00010784 BL memcpy .text:00010788 STR R0, [R5,#8] .text:0001078C B loc_10798 .text:00010790 ; --------------------------------------------------------------------------- .text:00010790 .text:00010790 loc_10790 ; CODE XREF: decompose_rpath+328j .text:00010790 LDR R3, [R11,#var_38] .text:00010794 STR R3, [R5,#8] .text:00010798 .text:00010798 loc_10798 ; CODE XREF: decompose_rpath+34Cj .text:00010798 LDR R2, =_dl_all_dirs .text:0001079C LDR R3, [R2] .text:000107A0 STR R3, [R5] .text:000107A4 STR R5, [R2] .text:000107A8 STR R5, [R10,R9,LSL#2] .text:000107AC MOV R9, R7 .text:000107B0 B loc_10584 .text:000107B0 ; --------------------------------------------------------------------------- .text:000107B4 off_107B4 DCD _dl_inhibit_rpath ; DATA XREF: decompose_rpath+Cr .text:000107B8 off_107B8 DCD __libc_enable_secure ; DATA XREF: decompose_rpath+38r .text:000107BC off_107BC DCD aCannotCreateCa ; DATA XREF: decompose_rpath+A0r .text:000107BC ; decompose_rpath+12Cr ... .text:000107BC ; "cannot create cache for search path" .text:000107C0 off_107C0 DCD aCannotCreateRu ; DATA XREF: decompose_rpath+CCr .text:000107C0 ; "cannot create RUNPATH/RPATH copy" .text:000107C4 off_107C4 DCD asc_55980 ; DATA XREF: decompose_rpath+150r .text:000107C4 ; ":" .text:000107C8 off_107C8 DCD curwd.159 ; DATA XREF: decompose_rpath+18Cr .text:000107C8 ; "./" .text:000107CC off_107CC DCD _dl_all_dirs ; DATA XREF: decompose_rpath:loc_10618r .text:000107CC ; decompose_rpath:loc_10798r .text:000107D0 off_107D0 DCD ncapstr ; DATA XREF: decompose_rpath:loc_106ACr .text:000107D4 off_107D4 DCD max_dirnamelen ; DATA XREF: decompose_rpath+2CCr .text:000107D8 ; --------------------------------------------------------------------------- .text:000107D8 .text:000107D8 loc_107D8 ; CODE XREF: decompose_rpath+17Cj .text:000107D8 MOV R3, #0 .text:000107DC STR R3, [R10,R9,LSL#2] .text:000107E0 LDR R0, [R11,#var_3C] .text:000107E4 BL free .text:000107E8 .text:000107E8 loc_107E8 ; CODE XREF: decompose_rpath+B0j .text:000107E8 LDR R3, [R11,#var_30] .text:000107EC STR R10, [R3] .text:000107F0 LDR R2, [R11,#var_30] .text:000107F4 MOV R3, #1 .text:000107F8 STR R3, [R2,#4] .text:000107FC LDMDB R11, {R4-R11,SP,PC} .text:000107FC ; End of function decompose_rpath .text:000107FC .text:00010800 .text:00010800 ; =============== S U B R O U T I N E ======================================= .text:00010800 .text:00010800 ; Attributes: bp-based frame .text:00010800 .text:00010800 EXPORT _dl_init_paths .text:00010800 _dl_init_paths ; CODE XREF: non_dynamic_init+58p .text:00010800 .text:00010800 var_38 = -0x38 .text:00010800 var_34 = -0x34 .text:00010800 var_30 = -0x30 .text:00010800 var_2C = -0x2C .text:00010800 .text:00010800 MOV R12, SP .text:00010804 STMFD SP!, {R4-R12,LR,PC} .text:00010808 LDR R3, =max_capstrlen .text:0001080C LDR R2, =_dl_platform .text:00010810 SUB R11, R12, #4 .text:00010814 LDR R12, =_dl_platformlen .text:00010818 MOV R10, R0 .text:0001081C LDR R4, =ncapstr .text:00010820 SUB SP, SP, #0x10 .text:00010824 LDR R0, [R2] .text:00010828 LDR R1, [R12] .text:0001082C MOV R2, R4 .text:00010830 BL _dl_important_hwcaps .text:00010834 LDR R3, =capstr .text:00010838 STR R0, [R3] .text:0001083C MOV R0, #8 .text:00010840 BL malloc .text:00010844 LDR R6, =rtld_search_dirs .text:00010848 SUBS R8, R0, #0 .text:0001084C STR R0, [R6] .text:00010850 BNE loc_10864 .text:00010854 MOV R0, #0xC .text:00010858 LDR R2, =aCannotCreateSe ; "cannot create search path array" .text:0001085C MOV R1, R8 .text:00010860 BL _dl_signal_error .text:00010864 ; --------------------------------------------------------------------------- .text:00010864 .text:00010864 loc_10864 ; CODE XREF: _dl_init_paths+50j .text:00010864 LDR R1, =ncapstr .text:00010868 LDR R0, [R1] .text:0001086C MOV R1, #5 .text:00010870 ADD R0, R0, #9 .text:00010874 BL __udivsi3 .text:00010878 MOV R5, R0 .text:0001087C ADD R0, R5, R5,LSL#3 .text:00010880 ADD R0, R5, R0,LSL#2 .text:00010884 ADD R0, R0, R0,LSL#2 .text:00010888 MOV R0, R0,LSL#2 .text:0001088C BL malloc .text:00010890 LDR R3, [R6] .text:00010894 STR R0, [R3] .text:00010898 LDR R12, [R6] .text:0001089C LDR R1, [R12] .text:000108A0 CMP R1, #0 .text:000108A4 BNE loc_108B4 .text:000108A8 LDR R2, =aCannotCreateCa ; "cannot create cache for search path" .text:000108AC MOV R0, #0xC .text:000108B0 BL _dl_signal_error .text:000108B4 ; --------------------------------------------------------------------------- .text:000108B4 .text:000108B4 loc_108B4 ; CODE XREF: _dl_init_paths+A4j .text:000108B4 MOV R3, #0 .text:000108B8 STR R3, [R6,#(dword_79B98 - 0x79B94)] .text:000108BC LDR R7, =system_dirs ; "/usr/local/arm/2.95.3/arm-linux/lib/" .text:000108C0 MOV R6, R3 .text:000108C4 LDR R9, =aSystemSearchPa ; "system search path" .text:000108C8 ADD R3, R5, R5,LSL#2 .text:000108CC LDR R4, =ncapstr .text:000108D0 MOV R0, R3,LSL#2 .text:000108D4 LDR R3, [R12] .text:000108D8 LDR R2, =_dl_all_dirs .text:000108DC MOV R12, R3 .text:000108E0 STR R3, [R2] .text:000108E4 .text:000108E4 loc_108E4 ; CODE XREF: _dl_init_paths+188j .text:000108E4 STR R12, [R8],#4 .text:000108E8 STR R9, [R12,#4] .text:000108EC MOV LR, #0 .text:000108F0 STR LR, [R12,#8] .text:000108F4 STR R7, [R12,#0xC] .text:000108F8 LDR R2, =system_dirs_len .text:000108FC LDR R3, [R2,R6,LSL#2] .text:00010900 STR R3, [R12,#0x10] .text:00010904 ADD R3, R3, #1 .text:00010908 MOV R2, R7 .text:0001090C LDRB R1, [R2] .text:00010910 ADD R7, R7, R3 .text:00010914 CMP R1, #0x2F .text:00010918 BEQ loc_10934 .text:0001091C LDR R0, =aPelemDirname0 ; "pelem->dirname[0] == '/'" .text:00010920 LDR R1, =aDlLoad_c ; "dl-load.c" .text:00010924 MOV R2, #0x26C .text:00010928 LDR R3, =a_dl_init_paths ; "_dl_init_paths" .text:0001092C ADD R2, R2, #1 .text:00010930 BL __assert_fail .text:00010934 ; --------------------------------------------------------------------------- .text:00010934 .text:00010934 loc_10934 ; CODE XREF: _dl_init_paths+118j .text:00010934 MOV R1, LR .text:00010938 LDR R3, [R4] .text:0001093C ADD R6, R6, #1 .text:00010940 CMP R1, R3 .text:00010944 BCS loc_1096C .text:00010948 ADD LR, R12, #0x14 .text:0001094C MOV R5, R1 .text:00010950 .text:00010950 loc_10950 ; CODE XREF: _dl_init_paths+168j .text:00010950 MOV R3, R1,LSL#2 .text:00010954 STR R5, [LR,R3] .text:00010958 LDR R3, =ncapstr .text:0001095C LDR R2, [R3] .text:00010960 ADD R1, R1, #1 .text:00010964 CMP R1, R2 .text:00010968 BCC loc_10950 .text:0001096C .text:0001096C loc_1096C ; CODE XREF: _dl_init_paths+144j .text:0001096C ADD R2, R12, R0 .text:00010970 CMP R6, #1 .text:00010974 MOVNE R3, R2 .text:00010978 MOVEQ R3, #0 .text:0001097C STR R3, [R12] .text:00010980 MOV R12, R2 .text:00010984 CMP R6, #0 .text:00010988 BEQ loc_108E4 .text:0001098C LDR R1, =max_dirnamelen .text:00010990 MOV R3, #0x24 .text:00010994 STR R3, [R1] .text:00010998 CMP R10, #0 .text:0001099C SUB R3, R3, #0x24 .text:000109A0 STR R3, [R8] .text:000109A4 BEQ loc_10D6C .text:000109A8 LDRB R3, [R10] .text:000109AC CMP R3, #0 .text:000109B0 BEQ loc_10D6C .text:000109B4 MOV R5, R10 .text:000109B8 MOV R0, R5 .text:000109BC BL strlen .text:000109C0 MOV R2, R0 .text:000109C4 ADD R3, R2, #4 .text:000109C8 BIC R3, R3, #3 .text:000109CC RSB SP, R3, SP .text:000109D0 MOV R0, SP .text:000109D4 MOV R1, R5 .text:000109D8 ADD R2, R2, #1 .text:000109DC BL memcpy .text:000109E0 MOV R1, #1 .text:000109E4 MOV R6, R0 .text:000109E8 LDRB R2, [R5] .text:000109EC SUB R3, R11, #-var_2C .text:000109F0 STR R3, [R11,#var_38] .text:000109F4 CMP R2, #0 .text:000109F8 BEQ loc_10A14 .text:000109FC .text:000109FC loc_109FC ; CODE XREF: _dl_init_paths+210j .text:000109FC SUB R3, R2, #0x3A .text:00010A00 LDRB R2, [R5,#1]! .text:00010A04 CMP R3, #1 .text:00010A08 ADDLS R1, R1, #1 .text:00010A0C CMP R2, #0 .text:00010A10 BNE loc_109FC .text:00010A14 .text:00010A14 loc_10A14 ; CODE XREF: _dl_init_paths+1F8j .text:00010A14 ADD R0, R1, #1 .text:00010A18 MOV R0, R0,LSL#2 .text:00010A1C BL malloc .text:00010A20 STR R0, [R11,#var_30] .text:00010A24 LDR R1, =env_path_list .text:00010A28 CMP R0, #0 .text:00010A2C STR R0, [R1] .text:00010A30 BNE loc_10A44 .text:00010A34 LDR R2, =aCannotCreateCa ; "cannot create cache for search path" .text:00010A38 LDR R1, [R11,#var_30] .text:00010A3C MOV R0, #0xC .text:00010A40 BL _dl_signal_error .text:00010A44 ; --------------------------------------------------------------------------- .text:00010A44 .text:00010A44 loc_10A44 ; CODE XREF: _dl_init_paths+230j .text:00010A44 LDR R3, =__libc_enable_secure .text:00010A48 LDR R3, [R3] .text:00010A4C STR R6, [R11,#var_2C] .text:00010A50 MOV R10, #0 .text:00010A54 STR R3, [R11,#var_34] .text:00010A58 .text:00010A58 loc_10A58 ; CODE XREF: _dl_init_paths+360j .text:00010A58 ; _dl_init_paths+510j .text:00010A58 LDR R5, [R11,#var_2C] .text:00010A5C CMP R5, #0 .text:00010A60 BEQ loc_10A88 .text:00010A64 LDR R1, =asc_559E4 ; ":;" .text:00010A68 MOV R0, R5 .text:00010A6C BL strpbrk .text:00010A70 LDR R2, [R11,#var_38] .text:00010A74 CMP R0, #0 .text:00010A78 STR R0, [R2] .text:00010A7C MOVNE R3, #0 .text:00010A80 STRNEB R3, [R0],#1 .text:00010A84 STRNE R0, [R2] .text:00010A88 .text:00010A88 loc_10A88 ; CODE XREF: _dl_init_paths+260j .text:00010A88 SUBS R7, R5, #0 .text:00010A8C BEQ loc_10D14 .text:00010A90 MOV R0, R7 .text:00010A94 BL strlen .text:00010A98 MOV R4, R0 .text:00010A9C LDR R3, =curwd.159 ; "./" .text:00010AA0 CMP R4, #0 .text:00010AA4 MOVEQ R7, R3 .text:00010AA8 B loc_10AB0 .text:00010AAC ; --------------------------------------------------------------------------- .text:00010AAC .text:00010AAC loc_10AAC ; CODE XREF: _dl_init_paths+2C4j .text:00010AAC SUB R4, R4, #1 .text:00010AB0 .text:00010AB0 loc_10AB0 ; CODE XREF: _dl_init_paths+2A8j .text:00010AB0 CMP R4, #1 .text:00010AB4 BLS loc_10AC8 .text:00010AB8 ADD R3, R4, R7 .text:00010ABC LDRB R2, [R3,#-1] .text:00010AC0 CMP R2, #0x2F .text:00010AC4 BEQ loc_10AAC .text:00010AC8 .text:00010AC8 loc_10AC8 ; CODE XREF: _dl_init_paths+2B4j .text:00010AC8 CMP R4, #0 .text:00010ACC BEQ loc_10AE8 .text:00010AD0 ADD R3, R4, R7 .text:00010AD4 LDRB R2, [R3,#-1] .text:00010AD8 CMP R2, #0x2F .text:00010ADC MOVNE R3, #0x2F .text:00010AE0 STRNEB R3, [R4,R7] .text:00010AE4 ADDNE R4, R4, #1 .text:00010AE8 .text:00010AE8 loc_10AE8 ; CODE XREF: _dl_init_paths+2CCj .text:00010AE8 LDR R3, =_dl_all_dirs .text:00010AEC LDR R5, [R3] .text:00010AF0 B loc_10AF8 .text:00010AF4 ; --------------------------------------------------------------------------- .text:00010AF4 .text:00010AF4 loc_10AF4 ; CODE XREF: _dl_init_paths+308j .text:00010AF4 ; _dl_init_paths+320j .text:00010AF4 LDR R5, [R5] .text:00010AF8 .text:00010AF8 loc_10AF8 ; CODE XREF: _dl_init_paths+2F0j .text:00010AF8 CMP R5, #0 .text:00010AFC BEQ loc_10B24 .text:00010B00 LDR R3, [R5,#0x10] .text:00010B04 CMP R3, R4 .text:00010B08 BNE loc_10AF4 .text:00010B0C MOV R0, R7 .text:00010B10 LDR R1, [R5,#0xC] .text:00010B14 MOV R2, R4 .text:00010B18 BL memcmp .text:00010B1C CMP R0, #0 .text:00010B20 BNE loc_10AF4 .text:00010B24 .text:00010B24 loc_10B24 ; CODE XREF: _dl_init_paths+2FCj .text:00010B24 CMP R5, #0 .text:00010B28 BEQ loc_10B64 .text:00010B2C MOV R2, #0 .text:00010B30 B loc_10B38 .text:00010B34 ; --------------------------------------------------------------------------- .text:00010B34 .text:00010B34 loc_10B34 ; CODE XREF: _dl_init_paths+34Cj .text:00010B34 ADD R2, R2, #1 .text:00010B38 .text:00010B38 loc_10B38 ; CODE XREF: _dl_init_paths+330j .text:00010B38 CMP R2, R10 .text:00010B3C BCS loc_10B50 .text:00010B40 LDR R1, [R11,#var_30] .text:00010B44 LDR R3, [R1,R2,LSL#2] .text:00010B48 CMP R3, R5 .text:00010B4C BNE loc_10B34 .text:00010B50 .text:00010B50 loc_10B50 ; CODE XREF: _dl_init_paths+33Cj .text:00010B50 CMP R2, R10 .text:00010B54 LDREQ R2, [R11,#var_30] .text:00010B58 STREQ R5, [R2,R10,LSL#2] .text:00010B5C ADDEQ R10, R10, #1 .text:00010B60 B loc_10A58 .text:00010B64 ; --------------------------------------------------------------------------- .text:00010B64 .text:00010B64 loc_10B64 ; CODE XREF: _dl_init_paths+328j .text:00010B64 LDR R1, =ncapstr .text:00010B68 MOV R6, R5 .text:00010B6C LDR R3, [R1] .text:00010B70 ADD R0, R6, #0x14 .text:00010B74 ADD R0, R0, R3,LSL#2 .text:00010B78 ADD R0, R0, R4 .text:00010B7C ADD R0, R0, #1 .text:00010B80 BL malloc .text:00010B84 SUBS R5, R0, #0 .text:00010B88 BNE loc_10BEC .text:00010B8C MOV R0, #0xC .text:00010B90 LDR R2, =aCannotCreateCa ; "cannot create cache for search path" .text:00010B94 MOV R1, R5 .text:00010B98 BL _dl_signal_error .text:00010B98 ; --------------------------------------------------------------------------- .text:00010B9C off_10B9C DCD max_capstrlen ; DATA XREF: _dl_init_paths+8r .text:00010BA0 off_10BA0 DCD _dl_platform ; DATA XREF: _dl_init_paths+Cr .text:00010BA4 off_10BA4 DCD _dl_platformlen ; DATA XREF: _dl_init_paths+14r .text:00010BA8 off_10BA8 DCD ncapstr ; DATA XREF: _dl_init_paths+1Cr .text:00010BA8 ; _dl_init_paths:loc_10864r ... .text:00010BAC off_10BAC DCD capstr ; DATA XREF: _dl_init_paths+34r .text:00010BB0 off_10BB0 DCD rtld_search_dirs ; DATA XREF: _dl_init_paths+44r .text:00010BB4 off_10BB4 DCD aCannotCreateSe ; DATA XREF: _dl_init_paths+58r .text:00010BB4 ; "cannot create search path array" .text:00010BB8 off_10BB8 DCD aCannotCreateCa ; DATA XREF: _dl_init_paths+A8r .text:00010BB8 ; _dl_init_paths+234r ... .text:00010BB8 ; "cannot create cache for search path" .text:00010BBC off_10BBC DCD system_dirs ; DATA XREF: _dl_init_paths+BCr .text:00010BBC ; "/usr/local/arm/2.95.3/arm-linux/lib/" .text:00010BC0 off_10BC0 DCD aSystemSearchPa ; DATA XREF: _dl_init_paths+C4r .text:00010BC0 ; "system search path" .text:00010BC4 off_10BC4 DCD _dl_all_dirs ; DATA XREF: _dl_init_paths+D8r .text:00010BC4 ; _dl_init_paths:loc_10AE8r .text:00010BC8 off_10BC8 DCD system_dirs_len ; DATA XREF: _dl_init_paths+F8r .text:00010BCC off_10BCC DCD aPelemDirname0 ; DATA XREF: _dl_init_paths+11Cr .text:00010BCC ; "pelem->dirname[0] == '/'" .text:00010BD0 off_10BD0 DCD aDlLoad_c ; DATA XREF: _dl_init_paths+120r .text:00010BD0 ; "dl-load.c" .text:00010BD4 off_10BD4 DCD a_dl_init_paths ; DATA XREF: _dl_init_paths+128r .text:00010BD4 ; "_dl_init_paths" .text:00010BD8 off_10BD8 DCD max_dirnamelen ; DATA XREF: _dl_init_paths+18Cr .text:00010BDC off_10BDC DCD env_path_list ; DATA XREF: _dl_init_paths+224r .text:00010BE0 off_10BE0 DCD __libc_enable_secure .text:00010BE0 ; DATA XREF: _dl_init_paths:loc_10A44r .text:00010BE4 off_10BE4 DCD asc_559E4 ; DATA XREF: _dl_init_paths+264r .text:00010BE4 ; ":;" .text:00010BE8 off_10BE8 DCD curwd.159 ; DATA XREF: _dl_init_paths+29Cr .text:00010BE8 ; "./" .text:00010BEC ; --------------------------------------------------------------------------- .text:00010BEC .text:00010BEC loc_10BEC ; CODE XREF: _dl_init_paths+388j .text:00010BEC LDR R2, =ncapstr .text:00010BF0 LDR R0, [R2] .text:00010BF4 MOV R0, R0,LSL#2 .text:00010BF8 ADD R0, R0, #0x14 .text:00010BFC ADD R0, R5, R0 .text:00010C00 STR R0, [R5,#0xC] .text:00010C04 MOV R1, R7 .text:00010C08 MOV R2, R4 .text:00010C0C BL mempcpy .text:00010C10 STRB R6, [R0] .text:00010C14 STR R4, [R5,#0x10] .text:00010C18 LDR R1, =max_dirnamelen .text:00010C1C LDR R3, [R1] .text:00010C20 CMP R4, R3 .text:00010C24 STRHI R4, [R1] .text:00010C28 LDR R2, [R11,#var_34] .text:00010C2C CMP R2, #0 .text:00010C30 BEQ loc_10CA0 .text:00010C34 MOV R0, #1 .text:00010C38 LDRB R3, [R7] .text:00010C3C ADD R9, R10, R0 .text:00010C40 LDR R8, =system_dirs ; "/usr/local/arm/2.95.3/arm-linux/lib/" .text:00010C44 CMP R3, #0x2F .text:00010C48 BNE loc_10CB4 .text:00010C4C B loc_10C64 .text:00010C50 ; --------------------------------------------------------------------------- .text:00010C50 .text:00010C50 loc_10C50 ; CODE XREF: _dl_init_paths+478j .text:00010C50 ; _dl_init_paths+490j .text:00010C50 LDR R1, =system_dirs_len .text:00010C54 LDR R3, [R1,R6,LSL#2] .text:00010C58 ADD R6, R6, #1 .text:00010C5C ADD R3, R3, #1 .text:00010C60 ADD R8, R8, R3 .text:00010C64 .text:00010C64 loc_10C64 ; CODE XREF: _dl_init_paths+44Cj .text:00010C64 CMP R6, #0 .text:00010C68 BNE loc_10C94 .text:00010C6C LDR R2, =system_dirs_len .text:00010C70 LDR R3, [R2,R6] .text:00010C74 CMP R4, R3 .text:00010C78 BNE loc_10C50 .text:00010C7C MOV R0, R8 .text:00010C80 MOV R1, R7 .text:00010C84 MOV R2, R4 .text:00010C88 BL memcmp .text:00010C8C CMP R0, #0 .text:00010C90 BNE loc_10C50 .text:00010C94 .text:00010C94 loc_10C94 ; CODE XREF: _dl_init_paths+468j .text:00010C94 SUBS R0, R6, #0 .text:00010C98 MOVNE R0, #1 .text:00010C9C B loc_10CB4 .text:00010CA0 ; --------------------------------------------------------------------------- .text:00010CA0 .text:00010CA0 loc_10CA0 ; CODE XREF: _dl_init_paths+430j .text:00010CA0 LDRB R3, [R7] .text:00010CA4 ADD R9, R10, #1 .text:00010CA8 CMP R3, #0x2F .text:00010CAC MOVNE R0, #2 .text:00010CB0 MOVEQ R0, #0 .text:00010CB4 .text:00010CB4 loc_10CB4 ; CODE XREF: _dl_init_paths+448j .text:00010CB4 ; _dl_init_paths+49Cj .text:00010CB4 LDR R1, =ncapstr .text:00010CB8 LDR R3, [R1] .text:00010CBC MOV R2, #0 .text:00010CC0 CMP R2, R3 .text:00010CC4 BCS loc_10CE4 .text:00010CC8 ADD R12, R5, #0x14 .text:00010CCC .text:00010CCC loc_10CCC ; CODE XREF: _dl_init_paths+4E0j .text:00010CCC STR R0, [R12,R2,LSL#2] .text:00010CD0 LDR R1, =ncapstr .text:00010CD4 LDR R3, [R1] .text:00010CD8 ADD R2, R2, #1 .text:00010CDC CMP R2, R3 .text:00010CE0 BCC loc_10CCC .text:00010CE4 .text:00010CE4 loc_10CE4 ; CODE XREF: _dl_init_paths+4C4j .text:00010CE4 MOV R3, #0 .text:00010CE8 STR R3, [R5,#8] .text:00010CEC LDR R2, =aLd_library_pat ; "LD_LIBRARY_PATH" .text:00010CF0 STR R2, [R5,#4] .text:00010CF4 LDR R3, =_dl_all_dirs .text:00010CF8 LDR R2, [R3] .text:00010CFC STR R2, [R5] .text:00010D00 LDR R1, [R11,#var_30] .text:00010D04 STR R5, [R1,R10,LSL#2] .text:00010D08 MOV R10, R9 .text:00010D0C STR R5, [R3] .text:00010D10 B loc_10A58 .text:00010D14 ; --------------------------------------------------------------------------- .text:00010D14 .text:00010D14 loc_10D14 ; CODE XREF: _dl_init_paths+28Cj .text:00010D14 LDR R2, [R11,#var_30] .text:00010D18 MOV R4, #0 .text:00010D1C STR R4, [R2,R10,LSL#2] .text:00010D20 LDR R3, =env_path_list .text:00010D24 LDR R0, [R3] .text:00010D28 LDR R3, [R0] .text:00010D2C CMP R3, R4 .text:00010D30 BNE loc_10D44 .text:00010D34 BL free .text:00010D38 LDR R1, =env_path_list .text:00010D3C MOV R3, 0xFFFFFFFF .text:00010D40 STR R3, [R1] .text:00010D44 .text:00010D44 loc_10D44 ; CODE XREF: _dl_init_paths+530j .text:00010D44 LDR R2, =env_path_list .text:00010D48 STR R4, [R2,#(dword_79B84 - 0x79B80)] .text:00010D4C B loc_10D78 .text:00010D4C ; --------------------------------------------------------------------------- .text:00010D50 off_10D50 DCD ncapstr ; DATA XREF: _dl_init_paths:loc_10BECr .text:00010D50 ; _dl_init_paths:loc_10CB4r ... .text:00010D54 off_10D54 DCD max_dirnamelen ; DATA XREF: _dl_init_paths+418r .text:00010D58 off_10D58 DCD system_dirs ; DATA XREF: _dl_init_paths+440r .text:00010D58 ; "/usr/local/arm/2.95.3/arm-linux/lib/" .text:00010D5C off_10D5C DCD system_dirs_len ; DATA XREF: _dl_init_paths:loc_10C50r .text:00010D5C ; _dl_init_paths+46Cr .text:00010D60 off_10D60 DCD aLd_library_pat ; DATA XREF: _dl_init_paths+4ECr .text:00010D60 ; "LD_LIBRARY_PATH" .text:00010D64 off_10D64 DCD _dl_all_dirs ; DATA XREF: _dl_init_paths+4F4r .text:00010D68 off_10D68 DCD env_path_list ; DATA XREF: _dl_init_paths+520r .text:00010D68 ; _dl_init_paths+538r ... .text:00010D6C ; --------------------------------------------------------------------------- .text:00010D6C .text:00010D6C loc_10D6C ; CODE XREF: _dl_init_paths+1A4j .text:00010D6C ; _dl_init_paths+1B0j .text:00010D6C LDR R1, =env_path_list .text:00010D70 MOV R3, 0xFFFFFFFF .text:00010D74 STR R3, [R1] .text:00010D78 .text:00010D78 loc_10D78 ; CODE XREF: _dl_init_paths+54Cj .text:00010D78 LDR R3, =_dl_all_dirs .text:00010D7C LDR R2, [R3] .text:00010D80 LDR R3, =_dl_init_all_dirs .text:00010D84 STR R2, [R3] .text:00010D88 B locret_10D98 .text:00010D88 ; --------------------------------------------------------------------------- .text:00010D8C off_10D8C DCD env_path_list ; DATA XREF: _dl_init_paths:loc_10D6Cr .text:00010D90 off_10D90 DCD _dl_all_dirs ; DATA XREF: _dl_init_paths:loc_10D78r .text:00010D94 off_10D94 DCD _dl_init_all_dirs ; DATA XREF: _dl_init_paths+580r .text:00010D98 ; --------------------------------------------------------------------------- .text:00010D98 .text:00010D98 locret_10D98 ; CODE XREF: _dl_init_paths+588j .text:00010D98 LDMDB R11, {R4-R11,SP,PC} .text:00010D98 ; End of function _dl_init_paths .text:00010D98 .text:00010D9C .text:00010D9C ; =============== S U B R O U T I N E ======================================= .text:00010D9C .text:00010D9C ; Attributes: noreturn bp-based frame .text:00010D9C .text:00010D9C lose ; CODE XREF: _dl_map_object_from_fd+60p .text:00010D9C ; _dl_map_object_from_fd+170p ... .text:00010D9C .text:00010D9C var_10 = -0x10 .text:00010D9C arg_0 = 4 .text:00010D9C arg_4 = 8 .text:00010D9C .text:00010D9C MOV R12, SP .text:00010DA0 STMFD SP!, {R11,R12,LR,PC} .text:00010DA4 SUB R11, R12, #4 .text:00010DA8 SUB SP, SP, #4 .text:00010DAC STR R1, [SP,#0x10+var_10] .text:00010DB0 MOV R7, R0 .text:00010DB4 MOV R0, R1 .text:00010DB8 MOV R6, R2 .text:00010DBC MOV R5, R3 .text:00010DC0 LDR R4, [R11,#arg_0] .text:00010DC4 BL close .text:00010DC8 CMP R4, #0 .text:00010DCC BEQ loc_10E08 .text:00010DD0 LDR R2, [R4,#0x10] .text:00010DD4 CMP R2, #0 .text:00010DD8 LDRNE R3, [R4,#0xC] .text:00010DDC STRNE R3, [R2,#0xC] .text:00010DE0 LDR R2, [R4,#0xC] .text:00010DE4 CMP R2, #0 .text:00010DE8 LDRNE R3, [R4,#0x10] .text:00010DEC STRNE R3, [R2,#0x10] .text:00010DF0 LDR R2, =_dl_nloaded .text:00010DF4 LDR R3, [R2] .text:00010DF8 SUB R3, R3, #1 .text:00010DFC STR R3, [R2] .text:00010E00 MOV R0, R4 .text:00010E04 BL free .text:00010E08 .text:00010E08 loc_10E08 ; CODE XREF: lose+30j .text:00010E08 MOV R0, R5 .text:00010E0C BL free .text:00010E10 MOV R0, R7 .text:00010E14 LDR R2, [R11,#arg_4] .text:00010E18 MOV R1, R6 .text:00010E1C BL _dl_signal_error .text:00010E1C ; End of function lose .text:00010E1C .text:00010E1C ; --------------------------------------------------------------------------- .text:00010E20 off_10E20 DCD _dl_nloaded ; DATA XREF: lose+54r .text:00010E24 ; --------------------------------------------------------------------------- .text:00010E24 LDMDB R11, {R4-R7,R11,SP,PC} .text:00010E28 .text:00010E28 ; =============== S U B R O U T I N E ======================================= .text:00010E28 .text:00010E28 ; Attributes: bp-based frame .text:00010E28 .text:00010E28 _dl_map_object_from_fd ; CODE XREF: _dl_map_object+748p .text:00010E28 .text:00010E28 var_D4 = -0xD4 .text:00010E28 var_D0 = -0xD0 .text:00010E28 var_C8 = -0xC8 .text:00010E28 var_C4 = -0xC4 .text:00010E28 var_C0 = -0xC0 .text:00010E28 var_BC = -0xBC .text:00010E28 var_B8 = -0xB8 .text:00010E28 var_B4 = -0xB4 .text:00010E28 var_B0 = -0xB0 .text:00010E28 var_AC = -0xAC .text:00010E28 var_A8 = -0xA8 .text:00010E28 var_A4 = -0xA4 .text:00010E28 var_A0 = -0xA0 .text:00010E28 var_9C = -0x9C .text:00010E28 var_98 = -0x98 .text:00010E28 var_40 = -0x40 .text:00010E28 var_38 = -0x38 .text:00010E28 var_34 = -0x34 .text:00010E28 var_30 = -0x30 .text:00010E28 var_2C = -0x2C .text:00010E28 var_28 = -0x28 .text:00010E28 arg_0 = 4 .text:00010E28 arg_4 = 8 .text:00010E28 arg_8 = 0xC .text:00010E28 .text:00010E28 MOV R12, SP .text:00010E2C STMFD SP!, {R4-R12,LR,PC} .text:00010E30 SUB R11, R12, #4 .text:00010E34 SUB SP, SP, #0xAC .text:00010E38 STR R0, [R11,#var_30] .text:00010E3C STR R1, [R11,#var_2C] .text:00010E40 STR R3, [R11,#var_34] .text:00010E44 MOV R3, #0 .text:00010E48 STR R3, [R11,#var_38] .text:00010E4C MOV R4, R2 .text:00010E50 SUB R2, R11, #-var_98 .text:00010E54 MOV R0, #3 .text:00010E58 BL __fxstat64 .text:00010E5C CMP R0, #0 .text:00010E60 BGE loc_10E8C .text:00010E64 BL __errno_location .text:00010E68 LDR R0, [R0] .text:00010E6C LDR R1, [R11,#var_2C] .text:00010E70 LDR R2, [R11,#var_30] .text:00010E74 LDR LR, [R11,#var_38] .text:00010E78 LDR R3, [R11,#var_34] .text:00010E7C STR LR, [SP,#0xD4+var_D4] .text:00010E80 LDR R12, =aCannotStatShar ; "cannot stat shared object" .text:00010E84 STR R12, [SP,#0xD4+var_D0] .text:00010E88 BL lose .text:00010E8C ; --------------------------------------------------------------------------- .text:00010E8C .text:00010E8C loc_10E8C ; CODE XREF: _dl_map_object_from_fd+38j .text:00010E8C LDR R3, =_dl_loaded .text:00010E90 LDR R2, [R3] .text:00010E94 CMP R2, #0 .text:00010E98 STR R2, [R11,#var_38] .text:00010E9C BEQ loc_10F28 .text:00010EA0 MOV R5, #0x174 .text:00010EA4 MOV R3, 0xFFFFFFE8 .text:00010EA8 ADD R0, R11, R3 .text:00010EAC SUB R7, R0, #0x28 .text:00010EB0 MOV LR, #0x16C .text:00010EB4 MOV R12, 0xFFFFFF90 .text:00010EB8 SUB R1, R11, #-var_28 .text:00010EBC LDR R6, [R1,R3] .text:00010EC0 .text:00010EC0 loc_10EC0 ; CODE XREF: _dl_map_object_from_fd+FCj .text:00010EC0 LDR R2, [R11,#var_38] .text:00010EC4 LDR R3, [R2,R5] .text:00010EC8 MOV R0, R2 .text:00010ECC CMP R3, R6 .text:00010ED0 ADD R3, R2, R5 .text:00010ED4 BNE loc_10F18 .text:00010ED8 LDR R2, [R3,#4] .text:00010EDC LDR R3, [R7,#4] .text:00010EE0 CMP R2, R3 .text:00010EE4 BNE loc_10F18 .text:00010EE8 LDR R2, [R0,LR] .text:00010EEC SUB R1, R11, #-var_28 .text:00010EF0 LDR R3, [R1,R12] .text:00010EF4 CMP R2, R3 .text:00010EF8 ADD R3, R0, LR .text:00010EFC ADD R2, R11, R12 .text:00010F00 SUB R1, R2, #0x28 .text:00010F04 BNE loc_10F18 .text:00010F08 LDR R2, [R3,#4] .text:00010F0C LDR R3, [R1,#4] .text:00010F10 CMP R2, R3 .text:00010F14 BEQ loc_119F0 .text:00010F18 .text:00010F18 loc_10F18 ; CODE XREF: _dl_map_object_from_fd+ACj .text:00010F18 ; _dl_map_object_from_fd+BCj ... .text:00010F18 LDR R3, [R0,#0xC] .text:00010F1C CMP R3, #0 .text:00010F20 STR R3, [R11,#var_38] .text:00010F24 BNE loc_10EC0 .text:00010F28 .text:00010F28 loc_10F28 ; CODE XREF: _dl_map_object_from_fd+74j .text:00010F28 LDR R3, [R11,#arg_8] .text:00010F2C ANDS R5, R3, #4 .text:00010F30 MOVNE R0, #0 .text:00010F34 BNE loc_11AC0 .text:00010F38 LDR R2, =_dl_debug_mask .text:00010F3C LDR R3, [R2] .text:00010F40 TST R3, #0x40 .text:00010F44 BEQ loc_10F54 .text:00010F48 LDR R0, =aFileSGeneratin ; "file=%s; generating link map\n" .text:00010F4C LDR R1, [R11,#var_30] .text:00010F50 BL _dl_debug_printf .text:00010F54 .text:00010F54 loc_10F54 ; CODE XREF: _dl_map_object_from_fd+11Cj .text:00010F54 LDR R0, [R11,#var_34] .text:00010F58 LDR R2, [R11,#arg_4] .text:00010F5C LDR R1, [R11,#var_30] .text:00010F60 LDR R3, [R11,#arg_0] .text:00010F64 BL _dl_new_object .text:00010F68 MOV R2, R0 .text:00010F6C CMP R2, #0 .text:00010F70 ADD R9, R4, #4 .text:00010F74 STR R2, [R11,#var_38] .text:00010F78 BNE loc_10F9C .text:00010F7C LDR R1, [R11,#var_2C] .text:00010F80 LDR R2, [R11,#var_30] .text:00010F84 LDR R3, [R11,#var_34] .text:00010F88 STR R5, [SP,#0xD4+var_D4] .text:00010F8C LDR R0, =aCannotCreateSh ; "cannot create shared object descriptor" .text:00010F90 STR R0, [SP,#0xD4+var_D0] .text:00010F94 MOV R0, #0xC .text:00010F98 BL lose .text:00010F9C ; --------------------------------------------------------------------------- .text:00010F9C .text:00010F9C loc_10F9C ; CODE XREF: _dl_map_object_from_fd+150j .text:00010F9C LDR R3, [R9,#0x18] .text:00010FA0 STR R3, [R2,#0xF0] .text:00010FA4 LDRB R12, [R4,#0x14] .text:00010FA8 LDR R3, [R9,#0x2C] .text:00010FAC LDRB R0, [R4,#0x15] .text:00010FB0 STRB R3, [R2,#0xF4] .text:00010FB4 MOV R3, R3,ASR#8 .text:00010FB8 STRB R3, [R2,#0xF5] .text:00010FBC LDRB R2, [R4,#0x30] .text:00010FC0 LDRB R3, [R4,#0x31] .text:00010FC4 LDR LR, [R9,#0x1C] .text:00010FC8 LDR R1, [R4] .text:00010FCC ORR R0, R12, R0,LSL#8 .text:00010FD0 STR R0, [R11,#var_A0] .text:00010FD4 ORR R2, R2, R3,LSL#8 .text:00010FD8 MOV R10, R2,LSL#5 .text:00010FDC ADD R3, LR, R10 .text:00010FE0 CMP R3, R1 .text:00010FE4 ADDLS R3, LR, #4 .text:00010FE8 ADDLS R4, R4, R3 .text:00010FEC STRLS R4, [R11,#var_9C] .text:00010FF0 BLS loc_11058 .text:00010FF4 ADD R3, R10, #3 .text:00010FF8 BIC R3, R3, #3 .text:00010FFC RSB SP, R3, SP .text:00011000 ADD R0, SP, #0xD4+var_B0 .text:00011004 STR R0, [R11,#var_9C] .text:00011008 MOV R1, R5 .text:0001100C LDR R0, [R11,#var_2C] .text:00011010 MOV R2, LR .text:00011014 BL lseek .text:00011018 LDR R1, [R11,#var_9C] .text:0001101C LDR R0, [R11,#var_2C] .text:00011020 MOV R2, R10 .text:00011024 BL read .text:00011028 CMP R0, R10 .text:0001102C BEQ loc_11058 .text:00011030 BL __errno_location .text:00011034 LDR R0, [R0] .text:00011038 LDR R1, [R11,#var_2C] .text:0001103C LDR R2, [R11,#var_30] .text:00011040 LDR LR, [R11,#var_38] .text:00011044 LDR R3, [R11,#var_34] .text:00011048 STR LR, [SP,#0xD4+var_D4] .text:0001104C LDR R12, =aCannotReadFile ; "cannot read file data" .text:00011050 STR R12, [SP,#0xD4+var_D0] .text:00011054 BL lose .text:00011058 ; --------------------------------------------------------------------------- .text:00011058 .text:00011058 loc_11058 ; CODE XREF: _dl_map_object_from_fd+1C8j .text:00011058 ; _dl_map_object_from_fd+204j .text:00011058 MOV R1, #0 .text:0001105C STR R1, [R11,#var_AC] .text:00011060 LDR R2, [R11,#var_38] .text:00011064 LDR R4, [R11,#var_9C] .text:00011068 LDRB R1, [R2,#0xF5] .text:0001106C LDRB R3, [R2,#0xF4] .text:00011070 STR SP, [R11,#var_A4] .text:00011074 ORR R3, R3, R1,LSL#8 .text:00011078 ADD R2, R3, R3,LSL#1 .text:0001107C SUB SP, SP, R2,LSL#3 .text:00011080 ADD R3, R4, R3,LSL#5 .text:00011084 CMP R4, R3 .text:00011088 ADD R2, SP, #0xD4+var_B0 .text:0001108C STR R2, [R11,#var_A8] .text:00011090 BCS loc_11248 .text:00011094 MOV R7, R2 .text:00011098 .text:00011098 loc_11098 ; CODE XREF: _dl_map_object_from_fd+41Cj .text:00011098 LDR R3, [R4] .text:0001109C CMP R3, #2 .text:000110A0 BEQ loc_110C0 .text:000110A4 BHI loc_110B4 .text:000110A8 CMP R3, #1 .text:000110AC BEQ loc_110F4 .text:000110B0 B loc_11224 .text:000110B4 ; --------------------------------------------------------------------------- .text:000110B4 .text:000110B4 loc_110B4 ; CODE XREF: _dl_map_object_from_fd+27Cj .text:000110B4 CMP R3, #6 .text:000110B8 BEQ loc_110E4 .text:000110BC B loc_11224 .text:000110C0 ; --------------------------------------------------------------------------- .text:000110C0 .text:000110C0 loc_110C0 ; CODE XREF: _dl_map_object_from_fd+278j .text:000110C0 LDR R1, [R11,#var_38] .text:000110C4 LDR R2, [R4,#8] .text:000110C8 STR R2, [R1,#8] .text:000110CC LDR R3, [R4,#0x14] .text:000110D0 MOV R3, R3,LSR#3 .text:000110D4 STRB R3, [R1,#0xF6] .text:000110D8 MOV R3, R3,ASR#8 .text:000110DC STRB R3, [R1,#0xF7] .text:000110E0 B loc_11224 .text:000110E4 ; --------------------------------------------------------------------------- .text:000110E4 .text:000110E4 loc_110E4 ; CODE XREF: _dl_map_object_from_fd+290j .text:000110E4 LDR R2, [R11,#var_38] .text:000110E8 LDR R3, [R4,#8] .text:000110EC STR R3, [R2,#0xEC] .text:000110F0 B loc_11224 .text:000110F4 ; --------------------------------------------------------------------------- .text:000110F4 .text:000110F4 loc_110F4 ; CODE XREF: _dl_map_object_from_fd+284j .text:000110F4 LDR R10, =_dl_pagesize .text:000110F8 LDR R5, [R4,#0x1C] .text:000110FC LDR R1, [R10] .text:00011100 MOV R0, R5 .text:00011104 BL __umodsi3 .text:00011108 SUBS R8, R0, #0 .text:0001110C MOV R1, R5 .text:00011110 BEQ loc_11138 .text:00011114 LDR R1, [R11,#var_2C] .text:00011118 LDR R2, [R11,#var_30] .text:0001111C LDR R12, [R11,#var_38] .text:00011120 LDR R3, [R11,#var_34] .text:00011124 STR R12, [SP,#0xD4+var_D4] .text:00011128 LDR R0, =aElfLoadCommand ; "ELF load command alignment not page-ali"... .text:0001112C STR R0, [SP,#0xD4+var_D0] .text:00011130 MOV R0, #0 .text:00011134 BL lose .text:00011138 ; --------------------------------------------------------------------------- .text:00011138 .text:00011138 loc_11138 ; CODE XREF: _dl_map_object_from_fd+2E8j .text:00011138 ADD R3, R4, #8 .text:0001113C LDMDA R3, {R0,R3} .text:00011140 SUB R0, R3, R0 .text:00011144 BL __umodsi3 .text:00011148 CMP R0, #0 .text:0001114C LDR R6, [R4,#8] .text:00011150 BEQ loc_1119C .text:00011154 LDR R1, [R11,#var_2C] .text:00011158 LDR R2, [R11,#var_30] .text:0001115C LDR R12, [R11,#var_38] .text:00011160 LDR R3, [R11,#var_34] .text:00011164 STR R12, [SP,#0xD4+var_D4] .text:00011168 LDR R0, =aElfLoadComma_0 ; "ELF load command address/offset not pro"... .text:0001116C STR R0, [SP,#0xD4+var_D0] .text:00011170 MOV R0, R8 .text:00011174 BL lose .text:00011174 ; --------------------------------------------------------------------------- .text:00011178 off_11178 DCD aCannotStatShar ; DATA XREF: _dl_map_object_from_fd+58r .text:00011178 ; "cannot stat shared object" .text:0001117C off_1117C DCD _dl_loaded ; DATA XREF: _dl_map_object_from_fd:loc_10E8Cr .text:00011180 off_11180 DCD _dl_debug_mask ; DATA XREF: _dl_map_object_from_fd+110r .text:00011184 off_11184 DCD aFileSGeneratin ; DATA XREF: _dl_map_object_from_fd+120r .text:00011184 ; "file=%s; generating link map\n" .text:00011188 off_11188 DCD aCannotCreateSh ; DATA XREF: _dl_map_object_from_fd+164r .text:00011188 ; "cannot create shared object descriptor" .text:0001118C off_1118C DCD aCannotReadFile ; DATA XREF: _dl_map_object_from_fd+224r .text:0001118C ; "cannot read file data" .text:00011190 off_11190 DCD _dl_pagesize ; DATA XREF: _dl_map_object_from_fd:loc_110F4r .text:00011194 off_11194 DCD aElfLoadCommand ; DATA XREF: _dl_map_object_from_fd+300r .text:00011194 ; "ELF load command alignment not page-ali"... .text:00011198 off_11198 DCD aElfLoadComma_0 ; DATA XREF: _dl_map_object_from_fd+340r .text:00011198 ; "ELF load command address/offset not pro"... .text:0001119C ; --------------------------------------------------------------------------- .text:0001119C .text:0001119C loc_1119C ; CODE XREF: _dl_map_object_from_fd+328j .text:0001119C ADD R7, R7, #0x18 .text:000111A0 RSB R3, R5, #0 .text:000111A4 AND R3, R6, R3 .text:000111A8 STR R3, [R7,#-0x18] .text:000111AC LDR R2, [R4,#8] .text:000111B0 LDR R1, [R4,#0x10] .text:000111B4 LDR R3, [R10] .text:000111B8 ADD R2, R2, R1 .text:000111BC ADD R2, R2, R3 .text:000111C0 SUB R2, R2, #1 .text:000111C4 RSB R3, R3, #0 .text:000111C8 AND R2, R2, R3 .text:000111CC STR R2, [R7,#-0x14] .text:000111D0 LDR R3, [R4,#8] .text:000111D4 LDR R2, [R4,#0x10] .text:000111D8 ADD R3, R3, R2 .text:000111DC STR R3, [R7,#-0x10] .text:000111E0 LDR R2, [R4,#8] .text:000111E4 LDR R3, [R4,#0x14] .text:000111E8 ADD R2, R2, R3 .text:000111EC STR R2, [R7,#-0xC] .text:000111F0 LDR R3, [R4,#0x1C] .text:000111F4 LDR R2, [R4,#4] .text:000111F8 RSB R3, R3, #0 .text:000111FC AND R2, R2, R3 .text:00011200 STR R2, [R7,#-8] .text:00011204 LDR R0, [R11,#var_AC] .text:00011208 LDR R3, [R4,#0x18] .text:0001120C ADD R0, R0, #1 .text:00011210 STR R0, [R11,#var_AC] .text:00011214 LDR R2, =_dl_pf_to_prot .text:00011218 AND R3, R3, #7 .text:0001121C LDRB R1, [R2,R3] .text:00011220 STR R1, [R7,#-4] .text:00011224 .text:00011224 loc_11224 ; CODE XREF: _dl_map_object_from_fd+288j .text:00011224 ; _dl_map_object_from_fd+294j ... .text:00011224 LDR R3, [R11,#var_38] .text:00011228 LDRB R2, [R3,#0xF4] .text:0001122C LDRB R1, [R3,#0xF5] .text:00011230 ORR R2, R2, R1,LSL#8 .text:00011234 LDR R1, [R11,#var_9C] .text:00011238 ADD R4, R4, #0x20 .text:0001123C ADD R2, R1, R2,LSL#5 .text:00011240 CMP R4, R2 .text:00011244 BCC loc_11098 .text:00011248 .text:00011248 loc_11248 ; CODE XREF: _dl_map_object_from_fd+268j .text:00011248 SUB R2, R11, #-var_AC .text:0001124C LDMIA R2, {R2,R5} .text:00011250 LDR R0, [R11,#var_A0] .text:00011254 SUB R3, R2, #1 .text:00011258 ADD R3, R3, R3,LSL#1 .text:0001125C MOV R6, R3,LSL#3 .text:00011260 ADD R4, R5, #0xC .text:00011264 LDR R3, [R4,R6] .text:00011268 LDR R12, [R5] .text:0001126C CMP R0, #3 .text:00011270 RSB R10, R12, R3 .text:00011274 BNE loc_11314 .text:00011278 LDR R2, [R5,#0x14] .text:0001127C LDR R3, [R11,#var_2C] .text:00011280 LDR R1, [R5,#0x10] .text:00011284 STR R3, [SP,#0xD4+var_D4] .text:00011288 STR R1, [SP,#0xD4+var_D0] .text:0001128C MOV R0, R12 .text:00011290 MOV R1, R10 .text:00011294 MOV R3, #2 .text:00011298 BL mmap .text:0001129C MOV R1, R0 .text:000112A0 CMN R1, #1 .text:000112A4 BNE loc_112D0 .text:000112A8 BL __errno_location .text:000112AC LDR R0, [R0] .text:000112B0 LDR R1, [R11,#var_2C] .text:000112B4 LDR R2, [R11,#var_30] .text:000112B8 LDR LR, [R11,#var_38] .text:000112BC LDR R3, [R11,#var_34] .text:000112C0 STR LR, [SP,#0xD4+var_D4] .text:000112C4 LDR R12, =aFailedToMapSeg ; "failed to map segment from shared objec"... .text:000112C8 STR R12, [SP,#0xD4+var_D0] .text:000112CC BL lose .text:000112D0 ; --------------------------------------------------------------------------- .text:000112D0 .text:000112D0 loc_112D0 ; CODE XREF: _dl_map_object_from_fd+47Cj .text:000112D0 LDR R2, [R11,#var_38] .text:000112D4 STR R1, [R2,#0x14C] .text:000112D8 ADD R3, R1, R10 .text:000112DC STR R3, [R2,#0x150] .text:000112E0 LDR R0, [R5] .text:000112E4 RSB R0, R0, R1 .text:000112E8 STR R0, [R2] .text:000112EC LDR R1, [R11,#var_AC] .text:000112F0 LDR R3, [R5,#4] .text:000112F4 MOV R1, R1,LSL#1 .text:000112F8 STR R1, [R11,#var_B0] .text:000112FC MOV R2, #0 .text:00011300 LDR R1, [R4,R6] .text:00011304 ADD R0, R0, R3 .text:00011308 RSB R1, R3, R1 .text:0001130C BL mprotect .text:00011310 B loc_113E0 .text:00011314 ; --------------------------------------------------------------------------- .text:00011314 .text:00011314 loc_11314 ; CODE XREF: _dl_map_object_from_fd+44Cj .text:00011314 LDR R2, [R11,#arg_8] .text:00011318 CMP R2, #0 .text:0001131C BGE loc_11344 .text:00011320 LDR R1, [R11,#var_2C] .text:00011324 LDR R2, [R11,#var_30] .text:00011328 LDR R12, [R11,#var_38] .text:0001132C LDR R3, [R11,#var_34] .text:00011330 STR R12, [SP,#0xD4+var_D4] .text:00011334 LDR R0, =aCannotDynamica ; "cannot dynamically load executable" .text:00011338 STR R0, [SP,#0xD4+var_D0] .text:0001133C MOV R0, #0 .text:00011340 BL lose .text:00011344 ; --------------------------------------------------------------------------- .text:00011344 .text:00011344 loc_11344 ; CODE XREF: _dl_map_object_from_fd+4F4j .text:00011344 LDR R3, [R11,#var_AC] .text:00011348 LDR R1, [R11,#var_38] .text:0001134C MOV R0, R3,LSL#1 .text:00011350 ADD R2, R0, R3 .text:00011354 LDR R3, [R1] .text:00011358 ADD R3, R12, R3 .text:0001135C STR R3, [R1,#0x14C] .text:00011360 ADD R2, R5, R2,LSL#3 .text:00011364 STR R0, [R11,#var_B0] .text:00011368 CMP R5, R2 .text:0001136C ADD R3, R3, R10 .text:00011370 STR R3, [R1,#0x150] .text:00011374 BCS loc_11570 .text:00011378 .text:00011378 loc_11378 ; CODE XREF: _dl_map_object_from_fd+744j .text:00011378 LDMIA R5, {R12,LR} .text:0001137C CMP LR, R12 .text:00011380 BLS loc_113E0 .text:00011384 LDR R3, [R11,#var_38] .text:00011388 ADD R1, R5, #0x10 .text:0001138C LDMIA R1, {R1,R2} .text:00011390 LDR R0, [R3] .text:00011394 LDR R3, [R11,#var_2C] .text:00011398 STR R1, [SP,#0xD4+var_D0] .text:0001139C STR R3, [SP,#0xD4+var_D4] .text:000113A0 RSB R1, R12, LR .text:000113A4 MOV R3, #0x12 .text:000113A8 ADD R0, R0, R12 .text:000113AC BL mmap .text:000113B0 CMN R0, #1 .text:000113B4 BNE loc_113E0 .text:000113B8 BL __errno_location .text:000113BC LDR R0, [R0] .text:000113C0 LDR R1, [R11,#var_2C] .text:000113C4 LDR R2, [R11,#var_30] .text:000113C8 LDR LR, [R11,#var_38] .text:000113CC LDR R3, [R11,#var_34] .text:000113D0 STR LR, [SP,#0xD4+var_D4] .text:000113D4 LDR R12, =aFailedToMapSeg ; "failed to map segment from shared objec"... .text:000113D8 STR R12, [SP,#0xD4+var_D0] .text:000113DC BL lose .text:000113E0 ; --------------------------------------------------------------------------- .text:000113E0 .text:000113E0 loc_113E0 ; CODE XREF: _dl_map_object_from_fd+4E8j .text:000113E0 ; _dl_map_object_from_fd+558j ... .text:000113E0 LDR LR, [R11,#var_38] .text:000113E4 LDR R3, [LR,#0xEC] .text:000113E8 CMP R3, #0 .text:000113EC BNE loc_11430 .text:000113F0 LDR R12, [R5,#0x10] .text:000113F4 LDR R0, [R9,#0x1C] .text:000113F8 CMP R12, R0 .text:000113FC BHI loc_11430 .text:00011400 LDMIA R5, {R1,R3} .text:00011404 SUB R3, R3, R1 .text:00011408 LDRB R2, [R9,#0x2C] .text:0001140C LDRB R1, [R9,#0x2D] .text:00011410 ADD R3, R3, R12 .text:00011414 ORR R2, R2, R1,LSL#8 .text:00011418 ADD R2, R0, R2,LSL#5 .text:0001141C CMP R3, R2 .text:00011420 LDR R3, [R5] .text:00011424 ADDCS R3, R3, R0 .text:00011428 RSBCS R3, R12, R3 .text:0001142C STRCS R3, [LR,#0xEC] .text:00011430 .text:00011430 loc_11430 ; CODE XREF: _dl_map_object_from_fd+5C4j .text:00011430 ; _dl_map_object_from_fd+5D4j .text:00011430 ADD R0, R5, #8 .text:00011434 LDMIA R0, {R0,LR} .text:00011438 CMP LR, R0 .text:0001143C BLS loc_11550 .text:00011440 LDR R3, [R11,#var_38] .text:00011444 LDR R1, =_dl_pagesize .text:00011448 LDR R2, [R3] .text:0001144C MOV R8, R1 .text:00011450 LDR R12, [R1] .text:00011454 ADD R4, R2, R0 .text:00011458 ADD R3, R4, R12 .text:0001145C SUB R3, R3, #1 .text:00011460 RSB R0, R12, #0 .text:00011464 AND R6, R3, R0 .text:00011468 ADD R7, R2, LR .text:0001146C CMP R7, R6 .text:00011470 MOVCC R6, R7 .text:00011474 CMP R6, R4 .text:00011478 BLS loc_114F4 .text:0001147C LDR R2, [R5,#0x14] .text:00011480 TST R2, #2 .text:00011484 BNE loc_114C8 .text:00011488 AND R0, R4, R0 .text:0001148C MOV R1, R12 .text:00011490 ORR R2, R2, #2 .text:00011494 BL mprotect .text:00011498 CMP R0, #0 .text:0001149C BGE loc_114C8 .text:000114A0 BL __errno_location .text:000114A4 LDR R0, [R0] .text:000114A8 LDR R1, [R11,#var_2C] .text:000114AC LDR R2, [R11,#var_30] .text:000114B0 LDR LR, [R11,#var_38] .text:000114B4 LDR R3, [R11,#var_34] .text:000114B8 STR LR, [SP,#0xD4+var_D4] .text:000114BC LDR R12, =aCannotChangeMe ; "cannot change memory protections" .text:000114C0 STR R12, [SP,#0xD4+var_D0] .text:000114C4 BL lose .text:000114C8 ; --------------------------------------------------------------------------- .text:000114C8 .text:000114C8 loc_114C8 ; CODE XREF: _dl_map_object_from_fd+65Cj .text:000114C8 ; _dl_map_object_from_fd+674j .text:000114C8 MOV R0, R4 .text:000114CC MOV R1, #0 .text:000114D0 RSB R2, R4, R6 .text:000114D4 BL memset .text:000114D8 LDR R2, [R5,#0x14] .text:000114DC TST R2, #2 .text:000114E0 BNE loc_114F4 .text:000114E4 LDR R1, [R8] .text:000114E8 RSB R0, R1, #0 .text:000114EC AND R0, R4, R0 .text:000114F0 BL mprotect .text:000114F4 .text:000114F4 loc_114F4 ; CODE XREF: _dl_map_object_from_fd+650j .text:000114F4 ; _dl_map_object_from_fd+6B8j .text:000114F4 CMP R7, R6 .text:000114F8 BLS loc_11550 .text:000114FC LDR R2, [R5,#0x14] .text:00011500 MOV R3, 0xFFFFFFFF .text:00011504 STR R3, [SP,#0xD4+var_D4] .text:00011508 MOV R1, #0 .text:0001150C STR R1, [SP,#0xD4+var_D0] .text:00011510 MOV R0, R6 .text:00011514 RSB R1, R0, R7 .text:00011518 ADD R3, R3, #0x33 .text:0001151C BL mmap .text:00011520 CMN R0, #1 .text:00011524 BNE loc_11550 .text:00011528 BL __errno_location .text:0001152C LDR R0, [R0] .text:00011530 LDR R1, [R11,#var_2C] .text:00011534 LDR R2, [R11,#var_30] .text:00011538 LDR LR, [R11,#var_38] .text:0001153C LDR R3, [R11,#var_34] .text:00011540 STR LR, [SP,#0xD4+var_D4] .text:00011544 LDR R12, =aCannotMapZeroF ; "cannot map zero-fill pages" .text:00011548 STR R12, [SP,#0xD4+var_D0] .text:0001154C BL lose .text:00011550 ; --------------------------------------------------------------------------- .text:00011550 .text:00011550 loc_11550 ; CODE XREF: _dl_map_object_from_fd+614j .text:00011550 ; _dl_map_object_from_fd+6D0j ... .text:00011550 LDR R2, [R11,#var_B0] .text:00011554 LDR R0, [R11,#var_AC] .text:00011558 ADD R5, R5, #0x18 .text:0001155C LDR R1, [R11,#var_A8] .text:00011560 ADD R3, R2, R0 .text:00011564 ADD R3, R1, R3,LSL#3 .text:00011568 CMP R5, R3 .text:0001156C BCC loc_11378 .text:00011570 .text:00011570 loc_11570 ; CODE XREF: _dl_map_object_from_fd+54Cj .text:00011570 LDR R2, [R11,#var_38] .text:00011574 LDR R1, [R2,#0xEC] .text:00011578 CMP R1, #0 .text:0001157C BNE loc_11614 .text:00011580 LDRB R0, [R9,#0x2C] .text:00011584 ADD R4, R9, #0x2C .text:00011588 LDRB R3, [R4,#1] .text:0001158C ORR R0, R0, R3,LSL#8 .text:00011590 MOV R0, R0,LSL#5 .text:00011594 BL malloc .text:00011598 CMP R0, #0 .text:0001159C BNE loc_115E0 .text:000115A0 LDR R1, [R11,#var_2C] .text:000115A4 LDR R2, [R11,#var_30] .text:000115A8 LDR R12, [R11,#var_38] .text:000115AC LDR R3, [R11,#var_34] .text:000115B0 STR R12, [SP,#0xD4+var_D4] .text:000115B4 LDR R0, =aCannotAlloca_0 ; "cannot allocate memory for program head"... .text:000115B8 STR R0, [SP,#0xD4+var_D0] .text:000115BC MOV R0, #0xC .text:000115C0 BL lose .text:000115C0 ; --------------------------------------------------------------------------- .text:000115C4 off_115C4 DCD _dl_pf_to_prot ; DATA XREF: _dl_map_object_from_fd+3ECr .text:000115C8 off_115C8 DCD aFailedToMapSeg ; DATA XREF: _dl_map_object_from_fd+49Cr .text:000115C8 ; _dl_map_object_from_fd+5ACr .text:000115C8 ; "failed to map segment from shared objec"... .text:000115CC off_115CC DCD aCannotDynamica ; DATA XREF: _dl_map_object_from_fd+50Cr .text:000115CC ; "cannot dynamically load executable" .text:000115D0 off_115D0 DCD _dl_pagesize ; DATA XREF: _dl_map_object_from_fd+61Cr .text:000115D4 off_115D4 DCD aCannotChangeMe ; DATA XREF: _dl_map_object_from_fd+694r .text:000115D4 ; "cannot change memory protections" .text:000115D8 off_115D8 DCD aCannotMapZeroF ; DATA XREF: _dl_map_object_from_fd+71Cr .text:000115D8 ; "cannot map zero-fill pages" .text:000115DC off_115DC DCD aCannotAlloca_0 ; DATA XREF: _dl_map_object_from_fd+78Cr .text:000115DC ; "cannot allocate memory for program head"... .text:000115E0 ; --------------------------------------------------------------------------- .text:000115E0 .text:000115E0 loc_115E0 ; CODE XREF: _dl_map_object_from_fd+774j .text:000115E0 LDRB R2, [R9,#0x2C] .text:000115E4 LDRB R3, [R4,#1] .text:000115E8 LDR R1, [R11,#var_9C] .text:000115EC LDR R4, [R11,#var_38] .text:000115F0 ORR R2, R2, R3,LSL#8 .text:000115F4 MOV R2, R2,LSL#5 .text:000115F8 BL memcpy .text:000115FC STR R0, [R4,#0xEC] .text:00011600 LDR R2, [R11,#var_38] .text:00011604 LDRB R3, [R2,#0x12C] .text:00011608 ORR R3, R3, #0x80 .text:0001160C STRB R3, [R2,#0x12C] .text:00011610 B loc_11620 .text:00011614 ; --------------------------------------------------------------------------- .text:00011614 .text:00011614 loc_11614 ; CODE XREF: _dl_map_object_from_fd+754j .text:00011614 LDR R3, [R2] .text:00011618 ADD R3, R1, R3 .text:0001161C STR R3, [R2,#0xEC] .text:00011620 .text:00011620 loc_11620 ; CODE XREF: _dl_map_object_from_fd+7E8j .text:00011620 LDR R0, [R11,#var_2C] .text:00011624 LDR SP, [R11,#var_A4] .text:00011628 BL close .text:0001162C LDR R1, [R11,#var_38] .text:00011630 LDRB R2, [R1,#0x12C] .text:00011634 LDR R0, [R11,#var_A0] .text:00011638 AND R3, R2, #3 .text:0001163C CMP R3, #1 .text:00011640 CMPEQ R0, #2 .text:00011644 BICEQ R3, R2, #3 .text:00011648 STREQB R3, [R1,#0x12C] .text:0001164C LDR R12, [R11,#var_38] .text:00011650 LDR LR, [R12,#8] .text:00011654 CMP LR, #0 .text:00011658 BNE loc_11688 .text:0001165C LDR R1, [R11,#var_A0] .text:00011660 CMP R1, #3 .text:00011664 BNE loc_11694 .text:00011668 LDR R1, [R11,#var_2C] .text:0001166C LDR R2, [R11,#var_30] .text:00011670 LDR R3, [R11,#var_34] .text:00011674 STR R12, [SP,#0xD4+var_D4] .text:00011678 LDR R0, =aObjectFileHasN ; "object file has no dynamic section" .text:0001167C STR R0, [SP,#0xD4+var_D0] .text:00011680 MOV R0, LR .text:00011684 BL lose .text:00011688 ; --------------------------------------------------------------------------- .text:00011688 .text:00011688 loc_11688 ; CODE XREF: _dl_map_object_from_fd+830j .text:00011688 LDR R3, [R12] .text:0001168C ADD R3, LR, R3 .text:00011690 STR R3, [R12,#8] .text:00011694 .text:00011694 loc_11694 ; CODE XREF: _dl_map_object_from_fd+83Cj .text:00011694 LDR R1, [R11,#var_38] .text:00011698 LDR R3, [R1,#0xF0] .text:0001169C LDR R0, [R1] .text:000116A0 ADD R3, R3, R0 .text:000116A4 STR R3, [R1,#0xF0] .text:000116A8 LDR R3, =_dl_debug_mask .text:000116AC LDR R2, [R3] .text:000116B0 TST R2, #0x40 .text:000116B4 BEQ loc_1170C .text:000116B8 LDR R2, [R1,#8] .text:000116BC STR R0, [SP,#0xD4+var_D4] .text:000116C0 MOV R1, #8 .text:000116C4 STMFA SP, {R1,R10} .text:000116C8 STR R1, [SP,#0xD4+var_C8] .text:000116CC LDR R3, [R11,#var_38] .text:000116D0 LDR R0, [R3,#0xF0] .text:000116D4 STR R1, [SP,#0xD4+var_C0] .text:000116D8 STR R0, [SP,#0xD4+var_C4] .text:000116DC LDR R3, [R11,#var_38] .text:000116E0 LDR R0, [R3,#0xEC] .text:000116E4 STR R1, [SP,#0xD4+var_B8] .text:000116E8 STR R0, [SP,#0xD4+var_BC] .text:000116EC LDR R12, [R11,#var_38] .text:000116F0 LDRB R3, [R12,#0xF4] .text:000116F4 LDRB R0, [R12,#0xF5] .text:000116F8 ORR R3, R3, R0,LSL R1 .text:000116FC STR R3, [SP,#0xD4+var_B4] .text:00011700 LDR R0, =aDynamic0x0LxBa ; " dynamic: 0x%0*lx base: 0x%0*lx siz"... .text:00011704 MOV R3, R1 .text:00011708 BL _dl_debug_printf .text:0001170C .text:0001170C loc_1170C ; CODE XREF: _dl_map_object_from_fd+88Cj .text:0001170C LDR LR, [R11,#var_38] .text:00011710 LDR R1, [LR,#8] .text:00011714 CMP R1, #0 .text:00011718 BEQ loc_118CC .text:0001171C LDR R3, [R1] .text:00011720 ADD R0, LR, #0x18 .text:00011724 LDR R12, [LR] .text:00011728 CMP R3, #0 .text:0001172C BEQ loc_117B0 .text:00011730 .text:00011730 loc_11730 ; CODE XREF: _dl_map_object_from_fd+984j .text:00011730 LDR R2, [R1] .text:00011734 CMP R2, #0x21 .text:00011738 STRLE R1, [R0,R2,LSL#2] .text:0001173C BLE loc_117A4 .text:00011740 RSB R3, R2, #0x6F000000 .text:00011744 ADD R3, R3, #0xFF0000 .text:00011748 ADD R3, R3, #0xFF00 .text:0001174C ADD R3, R3, #0xFF .text:00011750 CMP R3, #0xF .text:00011754 RSBLS R3, R2, #0x40000021 .text:00011758 ADDLS R3, R3, #0x30000000 .text:0001175C STRLS R1, [R0,R3,LSL#2] .text:00011760 BLS loc_117A4 .text:00011764 MOV R3, R2,LSL#1 .text:00011768 MOV R3, R3,ASR#1 .text:0001176C RSB R3, R3, #0 .text:00011770 SUB R2, R3, #1 .text:00011774 CMP R2, #2 .text:00011778 ADDLS R3, R0, R3,LSL#2 .text:0001177C STRLS R1, [R3,#0xC4] .text:00011780 BLS loc_117A4 .text:00011784 LDR R3, =aBadDynamicTag ; "bad dynamic tag" .text:00011788 CMP R3, #0 .text:0001178C BEQ loc_117A4 .text:00011790 LDR R0, =aBadDynamicTa_0 ; "! \"bad dynamic tag\"" .text:00011794 LDR R1, =aDynamicLink_h ; "dynamic-link.h" .text:00011798 LDR R3, =aElf_get_dynami ; "elf_get_dynamic_info" .text:0001179C MOV R2, #0x3E .text:000117A0 BL __assert_fail .text:000117A4 ; --------------------------------------------------------------------------- .text:000117A4 .text:000117A4 loc_117A4 ; CODE XREF: _dl_map_object_from_fd+914j .text:000117A4 ; _dl_map_object_from_fd+938j ... .text:000117A4 LDR R3, [R1,#8]! .text:000117A8 CMP R3, #0 .text:000117AC BNE loc_11730 .text:000117B0 .text:000117B0 loc_117B0 ; CODE XREF: _dl_map_object_from_fd+904j .text:000117B0 LDR R2, [R0,#0xC] .text:000117B4 CMP R2, #0 .text:000117B8 LDRNE R3, [R2,#4] .text:000117BC ADDNE R3, R3, R12 .text:000117C0 STRNE R3, [R2,#4] .text:000117C4 LDR R2, [R0,#0x14] .text:000117C8 CMP R2, #0 .text:000117CC LDRNE R3, [R2,#4] .text:000117D0 ADDNE R3, R3, R12 .text:000117D4 STRNE R3, [R2,#4] .text:000117D8 LDR R2, [R0,#0x18] .text:000117DC CMP R2, #0 .text:000117E0 LDRNE R3, [R2,#4] .text:000117E4 ADDNE R3, R3, R12 .text:000117E8 STRNE R3, [R2,#4] .text:000117EC LDR R1, [R0,#0x44] .text:000117F0 CMP R1, #0 .text:000117F4 BEQ loc_11828 .text:000117F8 LDR R3, [R0,#0x4C] .text:000117FC LDR R2, [R3,#4] .text:00011800 CMP R2, #8 .text:00011804 BEQ loc_1181C .text:00011808 LDR R0, =aInfo19D_un_d_v ; "info[19]->d_un.d_val == sizeof (Elf32_R"... .text:0001180C LDR R1, =aDynamicLink_h ; "dynamic-link.h" .text:00011810 LDR R3, =aElf_get_dynami ; "elf_get_dynamic_info" .text:00011814 MOV R2, #0x52 .text:00011818 BL __assert_fail .text:0001181C ; --------------------------------------------------------------------------- .text:0001181C .text:0001181C loc_1181C ; CODE XREF: _dl_map_object_from_fd+9DCj .text:0001181C LDR R3, [R1,#4] .text:00011820 ADD R3, R3, R12 .text:00011824 STR R3, [R1,#4] .text:00011828 .text:00011828 loc_11828 ; CODE XREF: _dl_map_object_from_fd+9CCj .text:00011828 LDR R3, [R0,#0x50] .text:0001182C CMP R3, #0 .text:00011830 BEQ loc_11854 .text:00011834 LDR R3, [R3,#4] .text:00011838 CMP R3, #0x11 .text:0001183C BEQ loc_11854 .text:00011840 LDR R0, =aInfo20D_un_d_v ; "info[20]->d_un.d_val == 17" .text:00011844 LDR R1, =aDynamicLink_h ; "dynamic-link.h" .text:00011848 LDR R3, =aElf_get_dynami ; "elf_get_dynamic_info" .text:0001184C MOV R2, #0x5A .text:00011850 BL __assert_fail .text:00011854 ; --------------------------------------------------------------------------- .text:00011854 .text:00011854 loc_11854 ; CODE XREF: _dl_map_object_from_fd+A08j .text:00011854 ; _dl_map_object_from_fd+A14j .text:00011854 LDR R2, [R0,#0x5C] .text:00011858 CMP R2, #0 .text:0001185C LDRNE R3, [R2,#4] .text:00011860 ADDNE R3, R3, R12 .text:00011864 STRNE R3, [R2,#4] .text:00011868 LDR R2, [R0,#0xC4] .text:0001186C CMP R2, #0 .text:00011870 LDRNE R3, [R2,#4] .text:00011874 ADDNE R3, R3, R12 .text:00011878 STRNE R3, [R2,#4] .text:0001187C LDR R3, [R0,#0x78] .text:00011880 CMP R3, #0 .text:00011884 BEQ loc_118AC .text:00011888 LDR R2, [R3,#4] .text:0001188C TST R2, #2 .text:00011890 STRNE R3, [R0,#0x40] .text:00011894 TST R2, #4 .text:00011898 LDRNE R3, [R0,#0x78] .text:0001189C STRNE R3, [R0,#0x58] .text:000118A0 TST R2, #8 .text:000118A4 LDRNE R3, [R0,#0x78] .text:000118A8 STRNE R3, [R0,#0x60] .text:000118AC .text:000118AC loc_118AC ; CODE XREF: _dl_map_object_from_fd+A5Cj .text:000118AC LDR R3, [R0,#0x98] .text:000118B0 CMP R3, #0 .text:000118B4 LDRNE R3, [R3,#4] .text:000118B8 STRNE R3, [LR,#0x198] .text:000118BC LDR R3, [R0,#0x74] .text:000118C0 CMP R3, #0 .text:000118C4 MOVNE R3, #0 .text:000118C8 STRNE R3, [R0,#0x3C] .text:000118CC .text:000118CC loc_118CC ; CODE XREF: _dl_map_object_from_fd+8F0j .text:000118CC LDR R2, [R11,#var_38] .text:000118D0 LDR R3, [R2,#0x198] .text:000118D4 TST R3, #0x40 .text:000118D8 BEQ loc_11984 .text:000118DC LDR R0, [R11,#arg_8] .text:000118E0 CMP R0, #0 .text:000118E4 BGE loc_11984 .text:000118E8 LDR R3, [R2,#0xC] .text:000118EC CMP R3, #0 .text:000118F0 BEQ loc_1190C .text:000118F4 LDR R0, =aLL_nextVoid0 ; "l->l_next == ((void *)0)" .text:000118F8 LDR R1, =aDlLoad_c ; "dl-load.c" .text:000118FC MOV R2, #0x430 .text:00011900 LDR R3, =a_dl_map_object ; "_dl_map_object_from_fd" .text:00011904 ADD R2, R2, #0xC .text:00011908 BL __assert_fail .text:0001190C ; --------------------------------------------------------------------------- .text:0001190C .text:0001190C loc_1190C ; CODE XREF: _dl_map_object_from_fd+AC8j .text:0001190C LDR R2, [R2,#0x10] .text:00011910 CMP R2, #0 .text:00011914 LDREQ R3, =_dl_loaded .text:00011918 STREQ R2, [R3] .text:0001191C STRNE R3, [R2,#0xC] .text:00011920 LDR R1, =_dl_nloaded .text:00011924 LDR R3, [R1] .text:00011928 SUB R3, R3, #1 .text:0001192C STR R3, [R1] .text:00011930 LDR R2, [R11,#var_38] .text:00011934 LDR R0, [R2,#0x14C] .text:00011938 ADD R3, R2, #0x150 .text:0001193C LDMDA R3, {R1,R3} .text:00011940 SUB R1, R3, R1 .text:00011944 BL munmap .text:00011948 LDR R3, [R11,#var_38] .text:0001194C LDR R0, [R3,#0x14] .text:00011950 BL free .text:00011954 LDR R2, [R11,#var_38] .text:00011958 LDRB R3, [R2,#0x12C] .text:0001195C MOVS R3, R3,LSR#7 .text:00011960 BEQ loc_1196C .text:00011964 LDR R0, [R2,#0xEC] .text:00011968 BL free .text:0001196C .text:0001196C loc_1196C ; CODE XREF: _dl_map_object_from_fd+B38j .text:0001196C LDR R0, [R11,#var_38] .text:00011970 BL free .text:00011974 LDR R1, [R11,#var_30] .text:00011978 LDR R2, =aSharedObjectCa ; "shared object cannot be dlopen()ed" .text:0001197C MOV R0, #0 .text:00011980 BL _dl_signal_error .text:00011984 ; --------------------------------------------------------------------------- .text:00011984 .text:00011984 loc_11984 ; CODE XREF: _dl_map_object_from_fd+AB0j .text:00011984 ; _dl_map_object_from_fd+ABCj .text:00011984 LDR R0, [R11,#var_38] .text:00011988 LDR R3, [R0,#0x28] .text:0001198C CMP R3, #0 .text:00011990 BEQ loc_11998 .text:00011994 BL _dl_setup_hash .text:00011998 .text:00011998 loc_11998 ; CODE XREF: _dl_map_object_from_fd+B68j .text:00011998 LDR R1, [R11,#var_38] .text:0001199C LDR R3, [R1,#0x58] .text:000119A0 CMP R3, #0 .text:000119A4 BEQ loc_11A88 .text:000119A8 LDR R2, [R1,#0x154] .text:000119AC ADD R3, R1, #0xF8 .text:000119B0 CMP R3, R2 .text:000119B4 BEQ loc_11A88 .text:000119B8 MOV R0, #4 .text:000119BC BL malloc .text:000119C0 LDR R12, [R11,#var_38] .text:000119C4 CMP R0, #0 .text:000119C8 STR R0, [R12,#0x108] .text:000119CC BNE loc_11A54 .text:000119D0 LDR R1, [R11,#var_2C] .text:000119D4 LDR R2, [R11,#var_30] .text:000119D8 LDR R3, [R11,#var_34] .text:000119DC STR R12, [SP,#0xD4+var_D4] .text:000119E0 LDR R0, =aCannotCreate_0 ; "cannot create searchlist" .text:000119E4 STR R0, [SP,#0xD4+var_D0] .text:000119E8 MOV R0, #0xC .text:000119EC BL lose .text:000119F0 ; --------------------------------------------------------------------------- .text:000119F0 .text:000119F0 loc_119F0 ; CODE XREF: _dl_map_object_from_fd+ECj .text:000119F0 LDR R0, [R11,#var_2C] .text:000119F4 BL close .text:000119F8 LDR R0, [R11,#var_34] .text:000119FC BL free .text:00011A00 LDR R0, [R11,#var_38] .text:00011A04 LDR R1, [R11,#var_30] .text:00011A08 BL add_name_to_object .text:00011A0C LDR R0, [R11,#var_38] .text:00011A10 B loc_11AC0 .text:00011A10 ; --------------------------------------------------------------------------- .text:00011A14 off_11A14 DCD aObjectFileHasN ; DATA XREF: _dl_map_object_from_fd+850r .text:00011A14 ; "object file has no dynamic section" .text:00011A18 off_11A18 DCD _dl_debug_mask ; DATA XREF: _dl_map_object_from_fd+880r .text:00011A1C off_11A1C DCD aDynamic0x0LxBa ; DATA XREF: _dl_map_object_from_fd+8D8r .text:00011A1C ; " dynamic: 0x%0*lx base: 0x%0*lx siz"... .text:00011A20 off_11A20 DCD aBadDynamicTag ; DATA XREF: _dl_map_object_from_fd+95Cr .text:00011A20 ; "bad dynamic tag" .text:00011A24 off_11A24 DCD aBadDynamicTa_0 ; DATA XREF: _dl_map_object_from_fd+968r .text:00011A24 ; "! \"bad dynamic tag\"" .text:00011A28 off_11A28 DCD aDynamicLink_h ; DATA XREF: _dl_map_object_from_fd+96Cr .text:00011A28 ; _dl_map_object_from_fd+9E4r ... .text:00011A28 ; "dynamic-link.h" .text:00011A2C off_11A2C DCD aElf_get_dynami ; DATA XREF: _dl_map_object_from_fd+970r .text:00011A2C ; _dl_map_object_from_fd+9E8r ... .text:00011A2C ; "elf_get_dynamic_info" .text:00011A30 off_11A30 DCD aInfo19D_un_d_v ; DATA XREF: _dl_map_object_from_fd+9E0r .text:00011A30 ; "info[19]->d_un.d_val == sizeof (Elf32_R"... .text:00011A34 off_11A34 DCD aInfo20D_un_d_v ; DATA XREF: _dl_map_object_from_fd+A18r .text:00011A34 ; "info[20]->d_un.d_val == 17" .text:00011A38 off_11A38 DCD aLL_nextVoid0 ; DATA XREF: _dl_map_object_from_fd+ACCr .text:00011A38 ; "l->l_next == ((void *)0)" .text:00011A3C off_11A3C DCD aDlLoad_c ; DATA XREF: _dl_map_object_from_fd+AD0r .text:00011A3C ; "dl-load.c" .text:00011A40 off_11A40 DCD a_dl_map_object ; DATA XREF: _dl_map_object_from_fd+AD8r .text:00011A40 ; "_dl_map_object_from_fd" .text:00011A44 off_11A44 DCD _dl_loaded ; DATA XREF: _dl_map_object_from_fd+AECr .text:00011A48 off_11A48 DCD _dl_nloaded ; DATA XREF: _dl_map_object_from_fd+AF8r .text:00011A4C off_11A4C DCD aSharedObjectCa ; DATA XREF: _dl_map_object_from_fd+B50r .text:00011A4C ; "shared object cannot be dlopen()ed" .text:00011A50 off_11A50 DCD aCannotCreate_0 ; DATA XREF: _dl_map_object_from_fd+BB8r .text:00011A50 ; "cannot create searchlist" .text:00011A54 ; --------------------------------------------------------------------------- .text:00011A54 .text:00011A54 loc_11A54 ; CODE XREF: _dl_map_object_from_fd+BA4j .text:00011A54 STR R12, [R0] .text:00011A58 MOV R2, #1 .text:00011A5C STR R2, [R12,#0x10C] .text:00011A60 STR R2, [R12,#0x114] .text:00011A64 LDR R3, [R12,#0x108] .text:00011A68 STR R3, [R12,#0x110] .text:00011A6C ADD R0, R12, #0x158 .text:00011A70 ADD R1, R12, #0x154 .text:00011A74 ADD R2, R2, #0xB .text:00011A78 BL memmove .text:00011A7C LDR R2, [R11,#var_38] .text:00011A80 ADD R3, R2, #0x108 .text:00011A84 STR R3, [R2,#0x154] .text:00011A88 .text:00011A88 loc_11A88 ; CODE XREF: _dl_map_object_from_fd+B7Cj .text:00011A88 ; _dl_map_object_from_fd+B8Cj .text:00011A88 LDR R2, [R11,#var_38] .text:00011A8C LDR R3, [R2,#0x198] .text:00011A90 TST R3, #0x20 .text:00011A94 LDRNE R3, =_dl_initfirst .text:00011A98 STRNE R2, [R3] .text:00011A9C LDR R0, [R11,#var_38] .text:00011AA0 SUB R3, R11, #-var_98 .text:00011AA4 LDMIA R3, {R1,R2} .text:00011AA8 ADD R12, R0, #0x16C .text:00011AAC STMIA R12, {R1,R2} .text:00011AB0 SUB R12, R11, #-var_40 .text:00011AB4 LDMIA R12, {R2,R3} .text:00011AB8 ADD R1, R0, #0x174 .text:00011ABC STMIA R1, {R2,R3} .text:00011AC0 .text:00011AC0 loc_11AC0 ; CODE XREF: _dl_map_object_from_fd+10Cj .text:00011AC0 ; _dl_map_object_from_fd+BE8j .text:00011AC0 B locret_11AC8 .text:00011AC0 ; --------------------------------------------------------------------------- .text:00011AC4 off_11AC4 DCD _dl_initfirst ; DATA XREF: _dl_map_object_from_fd+C6Cr .text:00011AC8 ; --------------------------------------------------------------------------- .text:00011AC8 .text:00011AC8 locret_11AC8 ; CODE XREF: _dl_map_object_from_fd:loc_11AC0j .text:00011AC8 LDMDB R11, {R4-R11,SP,PC} .text:00011AC8 ; End of function _dl_map_object_from_fd .text:00011AC8 .text:00011ACC .text:00011ACC ; =============== S U B R O U T I N E ======================================= .text:00011ACC .text:00011ACC ; Attributes: bp-based frame .text:00011ACC .text:00011ACC print_search_path ; CODE XREF: open_path+A4p .text:00011ACC .text:00011ACC var_30 = -0x30 .text:00011ACC var_2C = -0x2C .text:00011ACC .text:00011ACC MOV R12, SP .text:00011AD0 STMFD SP!, {R4-R12,LR,PC} .text:00011AD4 SUB R11, R12, #4 .text:00011AD8 LDR R12, =max_dirnamelen .text:00011ADC LDR LR, =max_capstrlen .text:00011AE0 MOV R6, R0 .text:00011AE4 LDR R0, =aSearchPath ; " search path=" .text:00011AE8 SUB SP, SP, #8 .text:00011AEC LDR R3, [R12] .text:00011AF0 LDR R4, [LR] .text:00011AF4 MOV R9, R1 .text:00011AF8 STR R2, [R11,#var_2C] .text:00011AFC ADD R3, R3, R4 .text:00011B00 BIC R3, R3, #0xE0000000 .text:00011B04 ADD R3, R3, #3 .text:00011B08 BIC R3, R3, #0xC0000003 .text:00011B0C RSB SP, R3, SP .text:00011B10 MOV R4, SP .text:00011B14 BL _dl_debug_printf .text:00011B18 LDR R2, [R6] .text:00011B1C MOV R3, #1 .text:00011B20 STR R3, [R11,#var_30] .text:00011B24 B loc_11C04 .text:00011B28 ; --------------------------------------------------------------------------- .text:00011B28 .text:00011B28 loc_11B28 ; CODE XREF: print_search_path+148j .text:00011B28 ADD R1, R2, #0xC .text:00011B2C LDMIA R1, {R1,R2} .text:00011B30 MOV R0, R4 .text:00011B34 BL mempcpy .text:00011B38 MOV R5, #0 .text:00011B3C LDR R2, =ncapstr .text:00011B40 MOV R8, R0 .text:00011B44 LDR R3, [R2] .text:00011B48 ADD R10, R6, #4 .text:00011B4C CMP R5, R3 .text:00011B50 BCS loc_11BFC .text:00011B54 MOV R7, R5 .text:00011B58 .text:00011B58 loc_11B58 ; CODE XREF: print_search_path+12Cj .text:00011B58 LDR R3, [R6] .text:00011B5C ADD R3, R3, #0x14 .text:00011B60 LDR R2, [R3,R5,LSL#2] .text:00011B64 CMP R2, #1 .text:00011B68 BEQ loc_11BE8 .text:00011B6C LDR R3, =capstr .text:00011B70 LDR R2, [R3] .text:00011B74 MOV R0, R5,LSL#3 .text:00011B78 LDR R1, [R0,R2] .text:00011B7C ADD R0, R0, R2 .text:00011B80 LDR R2, [R0,#4] .text:00011B84 MOV R0, R8 .text:00011B88 BL mempcpy .text:00011B8C CMP R0, R4 .text:00011B90 BEQ loc_11BAC .text:00011B94 ADD R3, R4, #1 .text:00011B98 CMP R0, R3 .text:00011B9C BNE loc_11BB4 .text:00011BA0 LDRB R3, [R4] .text:00011BA4 CMP R3, #0x2F .text:00011BA8 BNE loc_11BB4 .text:00011BAC .text:00011BAC loc_11BAC ; CODE XREF: print_search_path+C4j .text:00011BAC STRB R7, [R0] .text:00011BB0 B loc_11BB8 .text:00011BB4 ; --------------------------------------------------------------------------- .text:00011BB4 .text:00011BB4 loc_11BB4 ; CODE XREF: print_search_path+D0j .text:00011BB4 ; print_search_path+DCj .text:00011BB4 STRB R7, [R0,#-1] .text:00011BB8 .text:00011BB8 loc_11BB8 ; CODE XREF: print_search_path+E4j .text:00011BB8 LDR R3, [R11,#var_30] .text:00011BBC CMP R3, #0 .text:00011BC0 BEQ loc_11BDC .text:00011BC4 MOV R2, #0 .text:00011BC8 STR R2, [R11,#var_30] .text:00011BCC LDR R0, =aS ; "%s" .text:00011BD0 MOV R1, R4 .text:00011BD4 BL _dl_debug_printf_c .text:00011BD8 B loc_11BE8 .text:00011BDC ; --------------------------------------------------------------------------- .text:00011BDC .text:00011BDC loc_11BDC ; CODE XREF: print_search_path+F4j .text:00011BDC LDR R0, =aS_0 ; ":%s" .text:00011BE0 MOV R1, R4 .text:00011BE4 BL _dl_debug_printf_c .text:00011BE8 .text:00011BE8 loc_11BE8 ; CODE XREF: print_search_path+9Cj .text:00011BE8 ; print_search_path+10Cj .text:00011BE8 LDR R2, =ncapstr .text:00011BEC LDR R3, [R2] .text:00011BF0 ADD R5, R5, #1 .text:00011BF4 CMP R5, R3 .text:00011BF8 BCC loc_11B58 .text:00011BFC .text:00011BFC loc_11BFC ; CODE XREF: print_search_path+84j .text:00011BFC MOV R6, R10 .text:00011C00 LDR R2, [R6] .text:00011C04 .text:00011C04 loc_11C04 ; CODE XREF: print_search_path+58j .text:00011C04 CMP R2, #0 .text:00011C08 BEQ loc_11C18 .text:00011C0C LDR R3, [R2,#4] .text:00011C10 CMP R3, R9 .text:00011C14 BEQ loc_11B28 .text:00011C18 .text:00011C18 loc_11C18 ; CODE XREF: print_search_path+13Cj .text:00011C18 LDR R3, [R11,#var_2C] .text:00011C1C CMP R3, #0 .text:00011C20 BEQ loc_11C70 .text:00011C24 LDRB R3, [R3] .text:00011C28 CMP R3, #0 .text:00011C2C LDREQ R3, =_dl_argv .text:00011C30 LDREQ R2, [R3] .text:00011C34 LDREQ R2, [R2] .text:00011C38 LDRNE R2, [R11,#var_2C] .text:00011C3C LDR R0, =aSFromFileS ; "\t\t(%s from file %s)\n" .text:00011C40 MOV R1, R9 .text:00011C44 BL _dl_debug_printf_c .text:00011C48 B locret_11C84 .text:00011C48 ; --------------------------------------------------------------------------- .text:00011C4C off_11C4C DCD max_dirnamelen ; DATA XREF: print_search_path+Cr .text:00011C50 off_11C50 DCD max_capstrlen ; DATA XREF: print_search_path+10r .text:00011C54 off_11C54 DCD aSearchPath ; DATA XREF: print_search_path+18r .text:00011C54 ; " search path=" .text:00011C58 off_11C58 DCD ncapstr ; DATA XREF: print_search_path+70r .text:00011C58 ; print_search_path:loc_11BE8r .text:00011C5C off_11C5C DCD capstr ; DATA XREF: print_search_path+A0r .text:00011C60 off_11C60 DCD aS ; DATA XREF: print_search_path+100r .text:00011C60 ; "%s" .text:00011C64 off_11C64 DCD aS_0 ; DATA XREF: print_search_path:loc_11BDCr .text:00011C64 ; ":%s" .text:00011C68 off_11C68 DCD _dl_argv ; DATA XREF: print_search_path+160r .text:00011C6C off_11C6C DCD aSFromFileS ; DATA XREF: print_search_path+170r .text:00011C6C ; "\t\t(%s from file %s)\n" .text:00011C70 ; --------------------------------------------------------------------------- .text:00011C70 .text:00011C70 loc_11C70 ; CODE XREF: print_search_path+154j .text:00011C70 LDR R0, =aS_1 ; "\t\t(%s)\n" .text:00011C74 MOV R1, R9 .text:00011C78 BL _dl_debug_printf_c .text:00011C7C B locret_11C84 .text:00011C7C ; --------------------------------------------------------------------------- .text:00011C80 off_11C80 DCD aS_1 ; DATA XREF: print_search_path:loc_11C70r .text:00011C80 ; "\t\t(%s)\n" .text:00011C84 ; --------------------------------------------------------------------------- .text:00011C84 .text:00011C84 locret_11C84 ; CODE XREF: print_search_path+17Cj .text:00011C84 ; print_search_path+1B0j .text:00011C84 LDMDB R11, {R4-R11,SP,PC} .text:00011C84 ; End of function print_search_path .text:00011C84 .text:00011C88 .text:00011C88 ; =============== S U B R O U T I N E ======================================= .text:00011C88 .text:00011C88 ; Attributes: bp-based frame .text:00011C88 .text:00011C88 open_verify ; CODE XREF: open_path+148p .text:00011C88 ; _dl_map_object+4F4p ... .text:00011C88 .text:00011C88 var_58 = -0x58 .text:00011C88 var_54 = -0x54 .text:00011C88 var_50 = -0x50 .text:00011C88 var_4C = -0x4C .text:00011C88 var_48 = -0x48 .text:00011C88 .text:00011C88 MOV R12, SP .text:00011C8C STMFD SP!, {R4-R12,LR,PC} .text:00011C90 SUB R11, R12, #4 .text:00011C94 SUB SP, SP, #0x30 .text:00011C98 STR R0, [R11,#var_4C] .text:00011C9C MOV R10, R1 .text:00011CA0 MOV R1, #0 .text:00011CA4 BL open .text:00011CA8 MOV R8, R0 .text:00011CAC CMN R8, #1 .text:00011CB0 BEQ loc_120D8 .text:00011CB4 BL __errno_location .text:00011CB8 MOV R5, #0 .text:00011CBC STR R5, [R0] .text:00011CC0 MOV R0, R8 .text:00011CC4 ADD R7, R10, #4 .text:00011CC8 MOV R1, R7 .text:00011CCC MOV R2, #0x400 .text:00011CD0 BL read .text:00011CD4 CMP R0, #0x33 .text:00011CD8 STR R0, [R10] .text:00011CDC BGT loc_11D1C .text:00011CE0 BL __errno_location .text:00011CE4 MOV R4, R0 .text:00011CE8 BL __errno_location .text:00011CEC LDR R1, [R0] .text:00011CF0 LDR R0, [R4] .text:00011CF4 STR R5, [SP,#0x58+var_58] .text:00011CF8 LDR R3, =aCannotReadFile ; "cannot read file data" .text:00011CFC LDR R2, =aFileTooShort ; "file too short" .text:00011D00 CMP R1, R5 .text:00011D04 MOVEQ R3, R2 .text:00011D08 STR R3, [SP,#0x58+var_54] .text:00011D0C MOV R1, R8 .text:00011D10 LDR R2, [R11,#var_4C] .text:00011D14 MOV R3, R5 .text:00011D18 BL lose .text:00011D1C ; --------------------------------------------------------------------------- .text:00011D1C .text:00011D1C loc_11D1C ; CODE XREF: open_verify+54j .text:00011D1C MOV R0, R7 .text:00011D20 LDR R1, =expected.182 .text:00011D24 MOV R2, #7 .text:00011D28 BL memcmp .text:00011D2C CMP R0, #0 .text:00011D30 BEQ loc_11E3C .text:00011D34 LDRB R0, [R7,#7] .text:00011D38 CMP R0, #0x61 .text:00011D3C CMPNE R0, #0 .text:00011D40 BNE loc_11E3C .text:00011D44 LDRB R12, [R7,#8] .text:00011D48 CMP R12, #0 .text:00011D4C BNE loc_11E3C .text:00011D50 LDR R2, [R10,#4] .text:00011D54 LDR R3, =0x464C457F .text:00011D58 CMP R2, R3 .text:00011D5C BEQ loc_11D80 .text:00011D60 STR R12, [SP,#0x58+var_58] .text:00011D64 LDR R3, =aInvalidElfHead ; "invalid ELF header" .text:00011D68 STR R3, [SP,#0x58+var_54] .text:00011D6C MOV R0, R12 .text:00011D70 MOV R1, R8 .text:00011D74 LDR R2, [R11,#var_4C] .text:00011D78 MOV R3, R0 .text:00011D7C BL lose .text:00011D80 ; --------------------------------------------------------------------------- .text:00011D80 .text:00011D80 loc_11D80 ; CODE XREF: open_verify+D4j .text:00011D80 LDRB R3, [R7,#4] .text:00011D84 CMP R3, #1 .text:00011D88 BNE loc_12064 .text:00011D8C LDRB R3, [R7,#5] .text:00011D90 CMP R3, #1 .text:00011D94 BEQ loc_11DB8 .text:00011D98 STR R12, [SP,#0x58+var_58] .text:00011D9C LDR R3, =aElfFileDataEnc ; "ELF file data encoding not little-endia"... .text:00011DA0 STR R3, [SP,#0x58+var_54] .text:00011DA4 MOV R0, R12 .text:00011DA8 MOV R1, R8 .text:00011DAC LDR R2, [R11,#var_4C] .text:00011DB0 MOV R3, R0 .text:00011DB4 BL lose .text:00011DB8 ; --------------------------------------------------------------------------- .text:00011DB8 .text:00011DB8 loc_11DB8 ; CODE XREF: open_verify+10Cj .text:00011DB8 LDRB R3, [R7,#6] .text:00011DBC CMP R3, #1 .text:00011DC0 BEQ loc_11DE4 .text:00011DC4 STR R12, [SP,#0x58+var_58] .text:00011DC8 LDR R3, =aElfFileVersion ; "ELF file version ident does not match c"... .text:00011DCC STR R3, [SP,#0x58+var_54] .text:00011DD0 MOV R0, R12 .text:00011DD4 MOV R1, R8 .text:00011DD8 LDR R2, [R11,#var_4C] .text:00011DDC MOV R3, R0 .text:00011DE0 BL lose .text:00011DE4 ; --------------------------------------------------------------------------- .text:00011DE4 .text:00011DE4 loc_11DE4 ; CODE XREF: open_verify+138j .text:00011DE4 SUBS R3, R0, #0x61 .text:00011DE8 MOVNE R3, #1 .text:00011DEC CMP R0, #0 .text:00011DF0 MOVNE R0, R3 .text:00011DF4 MOVEQ R0, #0 .text:00011DF8 CMP R0, #0 .text:00011DFC BEQ loc_11E20 .text:00011E00 STR R12, [SP,#0x58+var_58] .text:00011E04 LDR R3, =aElfFileOsAbiIn ; "ELF file OS ABI invalid" .text:00011E08 STR R3, [SP,#0x58+var_54] .text:00011E0C MOV R0, R12 .text:00011E10 MOV R1, R8 .text:00011E14 LDR R2, [R11,#var_4C] .text:00011E18 MOV R3, R0 .text:00011E1C BL lose .text:00011E20 ; --------------------------------------------------------------------------- .text:00011E20 .text:00011E20 loc_11E20 ; CODE XREF: open_verify+174j .text:00011E20 STR R0, [SP,#0x58+var_58] .text:00011E24 LDR R3, =aInternalError ; "internal error" .text:00011E28 STR R3, [SP,#0x58+var_54] .text:00011E2C MOV R1, R8 .text:00011E30 LDR R2, [R11,#var_4C] .text:00011E34 MOV R3, R0 .text:00011E38 BL lose .text:00011E3C ; --------------------------------------------------------------------------- .text:00011E3C .text:00011E3C loc_11E3C ; CODE XREF: open_verify+A8j .text:00011E3C ; open_verify+B8j ... .text:00011E3C LDR R3, [R7,#0x14] .text:00011E40 CMP R3, #1 .text:00011E44 BEQ loc_11E68 .text:00011E48 MOV R0, #0 .text:00011E4C STR R0, [SP,#0x58+var_58] .text:00011E50 LDR R3, =aElfFileVersi_0 ; "ELF file version does not match current"... .text:00011E54 STR R3, [SP,#0x58+var_54] .text:00011E58 MOV R1, R8 .text:00011E5C LDR R2, [R11,#var_4C] .text:00011E60 MOV R3, R0 .text:00011E64 BL lose .text:00011E68 ; --------------------------------------------------------------------------- .text:00011E68 .text:00011E68 loc_11E68 ; CODE XREF: open_verify+1BCj .text:00011E68 LDR R2, [R7,#0x10] .text:00011E6C MOV R3, R2,LSR#16 .text:00011E70 CMP R3, #0x28 .text:00011E74 BNE loc_12064 .text:00011E78 LDR R3, [R7,#0x28] .text:00011E7C MOV R3, R3,LSR#16 .text:00011E80 CMP R3, #0x20 .text:00011E84 BEQ loc_11EA8 .text:00011E88 MOV R0, #0 .text:00011E8C STR R0, [SP,#0x58+var_58] .text:00011E90 LDR R3, =aElfFileSPhents ; "ELF file's phentsize not the expected s"... .text:00011E94 STR R3, [SP,#0x58+var_54] .text:00011E98 MOV R1, R8 .text:00011E9C LDR R2, [R11,#var_4C] .text:00011EA0 MOV R3, R0 .text:00011EA4 BL lose .text:00011EA8 ; --------------------------------------------------------------------------- .text:00011EA8 .text:00011EA8 loc_11EA8 ; CODE XREF: open_verify+1FCj .text:00011EA8 SUB R3, R2, #2 .text:00011EAC MOV R3, R3,LSL#16 .text:00011EB0 CMP R3, #0x10000 .text:00011EB4 BLS loc_11ED8 .text:00011EB8 MOV R0, #0 .text:00011EBC STR R0, [SP,#0x58+var_58] .text:00011EC0 LDR R3, =aOnlyEt_dynAndE ; "only ET_DYN and ET_EXEC can be loaded" .text:00011EC4 STR R3, [SP,#0x58+var_54] .text:00011EC8 MOV R1, R8 .text:00011ECC LDR R2, [R11,#var_4C] .text:00011ED0 MOV R3, R0 .text:00011ED4 BL lose .text:00011ED8 ; --------------------------------------------------------------------------- .text:00011ED8 .text:00011ED8 loc_11ED8 ; CODE XREF: open_verify+22Cj .text:00011ED8 LDRB R2, [R7,#0x2C] .text:00011EDC ADD R0, R7, #0x2C .text:00011EE0 LDRB R3, [R0,#1] .text:00011EE4 LDR R12, [R7,#0x1C] .text:00011EE8 LDR R1, [R10] .text:00011EEC STR R0, [R11,#var_50] .text:00011EF0 ORR R2, R2, R3,LSL#8 .text:00011EF4 MOV R4, R2,LSL#5 .text:00011EF8 ADD R3, R12, R4 .text:00011EFC CMP R3, R1 .text:00011F00 ADDLS R3, R12, #4 .text:00011F04 ADDLS R9, R10, R3 .text:00011F08 BLS loc_11F60 .text:00011F0C RSB SP, R4, SP .text:00011F10 ADD R9, SP, #0x58+var_50 .text:00011F14 MOV R0, R8 .text:00011F18 MOV R1, #0 .text:00011F1C MOV R2, R12 .text:00011F20 BL lseek .text:00011F24 MOV R0, R8 .text:00011F28 MOV R1, R9 .text:00011F2C MOV R2, R4 .text:00011F30 BL read .text:00011F34 CMP R0, R4 .text:00011F38 BEQ loc_11F60 .text:00011F3C BL __errno_location .text:00011F40 LDR R0, [R0] .text:00011F44 MOV R3, #0 .text:00011F48 STR R3, [SP,#0x58+var_58] .text:00011F4C LDR R2, =aCannotReadFile ; "cannot read file data" .text:00011F50 STR R2, [SP,#0x58+var_54] .text:00011F54 LDR R2, [R11,#var_4C] .text:00011F58 MOV R1, R8 .text:00011F5C BL lose .text:00011F60 ; --------------------------------------------------------------------------- .text:00011F60 .text:00011F60 loc_11F60 ; CODE XREF: open_verify+280j .text:00011F60 ; open_verify+2B0j .text:00011F60 LDR R1, [R11,#var_50] .text:00011F64 LDRB R3, [R7,#0x2C] .text:00011F68 LDRB R2, [R1,#1] .text:00011F6C MOV R5, R9 .text:00011F70 ORR R3, R3, R2,LSL#8 .text:00011F74 ADD R3, R5, R3,LSL#5 .text:00011F78 CMP R5, R3 .text:00011F7C BCS loc_120D8 .text:00011F80 .text:00011F80 loc_11F80 ; CODE XREF: open_verify+44Cj .text:00011F80 LDR R3, [R5] .text:00011F84 CMP R3, #4 .text:00011F88 BNE loc_120B8 .text:00011F8C LDR R6, [R5,#0x10] .text:00011F90 CMP R6, #0x20 .text:00011F94 BNE loc_120B8 .text:00011F98 LDR R3, [R5,#0x1C] .text:00011F9C CMP R3, #3 .text:00011FA0 BLS loc_120B8 .text:00011FA4 LDR R12, [R5,#4] .text:00011FA8 LDR R2, [R10] .text:00011FAC ADD R3, R12, #0x20 .text:00011FB0 CMP R3, R2 .text:00011FB4 ADDLS R3, R12, #4 .text:00011FB8 ADDLS R4, R10, R3 .text:00011FBC BLS loc_12010 .text:00011FC0 MOV R0, R8 .text:00011FC4 MOV R1, #0 .text:00011FC8 MOV R2, R12 .text:00011FCC BL lseek .text:00011FD0 MOV R0, R8 .text:00011FD4 SUB R4, R11, #-var_48 .text:00011FD8 MOV R1, R4 .text:00011FDC MOV R2, R6 .text:00011FE0 BL read .text:00011FE4 CMP R0, #0x20 .text:00011FE8 BEQ loc_12010 .text:00011FEC BL __errno_location .text:00011FF0 LDR R0, [R0] .text:00011FF4 MOV R3, #0 .text:00011FF8 STR R3, [SP,#0x58+var_58] .text:00011FFC LDR R2, =aCannotReadFile ; "cannot read file data" .text:00012000 STR R2, [SP,#0x58+var_54] .text:00012004 LDR R2, [R11,#var_4C] .text:00012008 MOV R1, R8 .text:0001200C BL lose .text:00012010 ; --------------------------------------------------------------------------- .text:00012010 .text:00012010 loc_12010 ; CODE XREF: open_verify+334j .text:00012010 ; open_verify+360j .text:00012010 MOV R0, R4 .text:00012014 LDR R1, =expected_note.183 .text:00012018 MOV R2, #0x10 .text:0001201C BL memcmp .text:00012020 CMP R0, #0 .text:00012024 BNE loc_120B8 .text:00012028 LDR R2, [R4,#0x10] .text:0001202C LDRB R3, [R4,#0x18] .text:00012030 LDRB R1, [R4,#0x14] .text:00012034 CMP R2, #0 .text:00012038 MOV R3, R3,LSL#8 .text:0001203C LDRB R2, [R4,#0x1C] .text:00012040 ORR R3, R3, R1,LSL#16 .text:00012044 ADD R0, R3, R2 .text:00012048 BNE loc_12064 .text:0001204C LDR R3, =_dl_osversion .text:00012050 LDR R3, [R3] .text:00012054 CMP R3, #0 .text:00012058 BEQ loc_120D8 .text:0001205C CMP R3, R0 .text:00012060 BCS loc_120D8 .text:00012064 .text:00012064 loc_12064 ; CODE XREF: open_verify+100j .text:00012064 ; open_verify+1ECj ... .text:00012064 MOV R0, R8 .text:00012068 MOV R8, 0xFFFFFFFF .text:0001206C BL close .text:00012070 BL __errno_location .text:00012074 MOV R3, #2 .text:00012078 STR R3, [R0] .text:0001207C B loc_120D8 .text:0001207C ; --------------------------------------------------------------------------- .text:00012080 off_12080 DCD aCannotReadFile ; DATA XREF: open_verify+70r .text:00012080 ; open_verify+2C4r ... .text:00012080 ; "cannot read file data" .text:00012084 off_12084 DCD aFileTooShort ; DATA XREF: open_verify+74r .text:00012084 ; "file too short" .text:00012088 off_12088 DCD expected.182 ; DATA XREF: open_verify+98r .text:0001208C dword_1208C DCD 0x464C457F ; DATA XREF: open_verify+CCr .text:00012090 off_12090 DCD aInvalidElfHead ; DATA XREF: open_verify+DCr .text:00012090 ; "invalid ELF header" .text:00012094 off_12094 DCD aElfFileDataEnc ; DATA XREF: open_verify+114r .text:00012094 ; "ELF file data encoding not little-endia"... .text:00012098 off_12098 DCD aElfFileVersion ; DATA XREF: open_verify+140r .text:00012098 ; "ELF file version ident does not match c"... .text:0001209C off_1209C DCD aElfFileOsAbiIn ; DATA XREF: open_verify+17Cr .text:0001209C ; "ELF file OS ABI invalid" .text:000120A0 off_120A0 DCD aInternalError ; DATA XREF: open_verify+19Cr .text:000120A0 ; "internal error" .text:000120A4 off_120A4 DCD aElfFileVersi_0 ; DATA XREF: open_verify+1C8r .text:000120A4 ; "ELF file version does not match current"... .text:000120A8 off_120A8 DCD aElfFileSPhents ; DATA XREF: open_verify+208r .text:000120A8 ; "ELF file's phentsize not the expected s"... .text:000120AC off_120AC DCD aOnlyEt_dynAndE ; DATA XREF: open_verify+238r .text:000120AC ; "only ET_DYN and ET_EXEC can be loaded" .text:000120B0 off_120B0 DCD expected_note.183 ; DATA XREF: open_verify+38Cr .text:000120B4 off_120B4 DCD _dl_osversion ; DATA XREF: open_verify+3C4r .text:000120B8 ; --------------------------------------------------------------------------- .text:000120B8 .text:000120B8 loc_120B8 ; CODE XREF: open_verify+300j .text:000120B8 ; open_verify+30Cj ... .text:000120B8 LDR R1, [R11,#var_50] .text:000120BC LDRB R3, [R7,#0x2C] .text:000120C0 LDRB R2, [R1,#1] .text:000120C4 ADD R5, R5, #0x20 .text:000120C8 ORR R3, R3, R2,LSL#8 .text:000120CC ADD R3, R9, R3,LSL#5 .text:000120D0 CMP R5, R3 .text:000120D4 BCC loc_11F80 .text:000120D8 .text:000120D8 loc_120D8 ; CODE XREF: open_verify+28j .text:000120D8 ; open_verify+2F4j ... .text:000120D8 MOV R0, R8 .text:000120DC LDMDB R11, {R4-R11,SP,PC} .text:000120DC ; End of function open_verify .text:000120DC .text:000120E0 .text:000120E0 ; =============== S U B R O U T I N E ======================================= .text:000120E0 .text:000120E0 ; Attributes: bp-based frame .text:000120E0 .text:000120E0 open_path ; CODE XREF: _dl_map_object:loc_1264Cp .text:000120E0 ; _dl_map_object+2F0p ... .text:000120E0 .text:000120E0 var_AC = -0xAC .text:000120E0 var_A8 = -0xA8 .text:000120E0 var_A4 = -0xA4 .text:000120E0 var_A0 = -0xA0 .text:000120E0 var_9C = -0x9C .text:000120E0 var_98 = -0x98 .text:000120E0 var_94 = -0x94 .text:000120E0 var_90 = -0x90 .text:000120E0 var_8C = -0x8C .text:000120E0 var_88 = -0x88 .text:000120E0 var_78 = -0x78 .text:000120E0 arg_0 = 4 .text:000120E0 arg_4 = 8 .text:000120E0 .text:000120E0 MOV R12, SP .text:000120E4 STMFD SP!, {R4-R12,LR,PC} .text:000120E8 SUB R11, R12, #4 .text:000120EC SUB SP, SP, #0x84 .text:000120F0 STR R3, [R11,#var_94] .text:000120F4 LDR R3, [R3] .text:000120F8 STR R0, [R11,#var_8C] .text:000120FC STR R2, [R11,#var_90] .text:00012100 MOV R12, #0 .text:00012104 STR R12, [R11,#var_A0] .text:00012108 STR R3, [R11,#var_98] .text:0001210C LDR R2, =max_dirnamelen .text:00012110 LDR R3, [R2] .text:00012114 STR R12, [R11,#var_9C] .text:00012118 LDR R0, =max_capstrlen .text:0001211C MOV R5, 0xFFFFFFFF .text:00012120 LDR R2, [R0] .text:00012124 MOV R9, R1 .text:00012128 ADD R3, R3, R2 .text:0001212C ADD R3, R3, R9 .text:00012130 ADD R3, R3, #3 .text:00012134 BIC R3, R3, #3 .text:00012138 RSB SP, R3, SP .text:0001213C MOV R7, SP .text:00012140 .text:00012140 loc_12140 ; CODE XREF: open_path+2D8j .text:00012140 MOV R1, #0 .text:00012144 STR R1, [R11,#var_AC] .text:00012148 LDR R2, =_dl_debug_mask .text:0001214C LDR R3, [R2] .text:00012150 STR R1, [R11,#var_A4] .text:00012154 TST R3, #1 .text:00012158 LDR R3, [R11,#var_98] .text:0001215C LDR R4, [R3] .text:00012160 BEQ loc_12188 .text:00012164 LDR R3, [R4,#4] .text:00012168 LDR R12, [R11,#var_9C] .text:0001216C CMP R12, R3 .text:00012170 BEQ loc_12188 .text:00012174 STR R3, [R11,#var_9C] .text:00012178 LDR R0, [R11,#var_98] .text:0001217C LDR R2, [R4,#8] .text:00012180 MOV R1, R3 .text:00012184 BL print_search_path .text:00012188 .text:00012188 loc_12188 ; CODE XREF: open_path+80j .text:00012188 ; open_path+90j .text:00012188 LDR R1, [R4,#0xC] .text:0001218C MOV R0, R7 .text:00012190 LDR R2, [R4,#0x10] .text:00012194 MOV R8, #0 .text:00012198 BL mempcpy .text:0001219C CMN R5, #1 .text:000121A0 STR R0, [R11,#var_A8] .text:000121A4 BNE loc_12318 .text:000121A8 LDR R2, =ncapstr .text:000121AC LDR R3, [R2] .text:000121B0 CMP R8, R3 .text:000121B4 BCS loc_12318 .text:000121B8 ADD R4, R4, #0x14 .text:000121BC MOV R10, #2 .text:000121C0 MOV R6, R8 .text:000121C4 .text:000121C4 loc_121C4 ; CODE XREF: open_path+234j .text:000121C4 LDR R3, [R4,R6] .text:000121C8 CMP R3, #1 .text:000121CC BEQ loc_122F8 .text:000121D0 LDR R2, =capstr .text:000121D4 LDR R0, [R2] .text:000121D8 MOV R3, R8,LSL#3 .text:000121DC LDR R1, [R3,R0] .text:000121E0 ADD R3, R3, R0 .text:000121E4 LDR R2, [R3,#4] .text:000121E8 LDR R0, [R11,#var_A8] .text:000121EC BL mempcpy .text:000121F0 LDR R1, [R11,#var_8C] .text:000121F4 MOV R2, R9 .text:000121F8 BL mempcpy .text:000121FC LDR R1, =_dl_debug_mask .text:00012200 LDR R3, [R1] .text:00012204 RSB R0, R7, R0 .text:00012208 STR R0, [R11,#var_A4] .text:0001220C TST R3, #1 .text:00012210 BEQ loc_12220 .text:00012214 LDR R0, =aTryingFileS ; " trying file=%s\n" .text:00012218 MOV R1, R7 .text:0001221C BL _dl_debug_printf .text:00012220 .text:00012220 loc_12220 ; CODE XREF: open_path+130j .text:00012220 LDR R1, [R11,#arg_4] .text:00012224 MOV R0, R7 .text:00012228 BL open_verify .text:0001222C LDR R2, [R4,R6] .text:00012230 MOV R5, R0 .text:00012234 CMP R2, #0 .text:00012238 BNE loc_1228C .text:0001223C CMN R5, #1 .text:00012240 BNE loc_12288 .text:00012244 LDR R12, [R11,#var_A4] .text:00012248 RSB R3, R9, R12 .text:0001224C ADD R3, R3, R7 .text:00012250 STRB R2, [R3,R5] .text:00012254 MOV R0, #3 .text:00012258 MOV R1, R7 .text:0001225C SUB R2, R11, #-var_88 .text:00012260 BL __xstat64 .text:00012264 CMP R0, #0 .text:00012268 BNE loc_1227C .text:0001226C LDR R3, [R11,#var_78] .text:00012270 AND R3, R3, #0xF000 .text:00012274 CMP R3, #0x4000 .text:00012278 BEQ loc_12288 .text:0001227C .text:0001227C loc_1227C ; CODE XREF: open_path+188j .text:0001227C MOV R3, #1 .text:00012280 STR R3, [R4,R6] .text:00012284 B loc_1228C .text:00012288 ; --------------------------------------------------------------------------- .text:00012288 .text:00012288 loc_12288 ; CODE XREF: open_path+160j .text:00012288 ; open_path+198j .text:00012288 STR R10, [R4,R6] .text:0001228C .text:0001228C loc_1228C ; CODE XREF: open_path+158j .text:0001228C ; open_path+1A4j .text:0001228C LDR R3, [R4,R6] .text:00012290 LDR R1, [R11,#var_AC] .text:00012294 LDR R2, [R11,#var_90] .text:00012298 CMP R3, #2 .text:0001229C ORREQ R1, R1, #1 .text:000122A0 CMN R5, #1 .text:000122A4 CMPNE R2, #0 .text:000122A8 STR R1, [R11,#var_AC] .text:000122AC BEQ loc_122F8 .text:000122B0 LDR R3, =__libc_enable_secure .text:000122B4 LDR R2, [R3] .text:000122B8 CMP R2, #0 .text:000122BC BEQ loc_122F8 .text:000122C0 MOV R0, #3 .text:000122C4 MOV R1, R5 .text:000122C8 SUB R2, R11, #-var_88 .text:000122CC BL __fxstat64 .text:000122D0 CMP R0, #0 .text:000122D4 BNE loc_122E4 .text:000122D8 LDR R3, [R11,#var_78] .text:000122DC TST R3, #0x800 .text:000122E0 BNE loc_122F8 .text:000122E4 .text:000122E4 loc_122E4 ; CODE XREF: open_path+1F4j .text:000122E4 MOV R0, R5 .text:000122E8 MOV R5, 0xFFFFFFFF .text:000122EC BL close .text:000122F0 BL __errno_location .text:000122F4 STR R10, [R0] .text:000122F8 .text:000122F8 loc_122F8 ; CODE XREF: open_path+ECj .text:000122F8 ; open_path+1CCj ... .text:000122F8 ADD R6, R6, #4 .text:000122FC ADD R8, R8, #1 .text:00012300 CMN R5, #1 .text:00012304 BNE loc_12318 .text:00012308 LDR R12, =ncapstr .text:0001230C LDR R3, [R12] .text:00012310 CMP R8, R3 .text:00012314 BCC loc_121C4 .text:00012318 .text:00012318 loc_12318 ; CODE XREF: open_path+C4j .text:00012318 ; open_path+D4j ... .text:00012318 CMN R5, #1 .text:0001231C BEQ loc_12374 .text:00012320 LDR R0, [R11,#var_A4] .text:00012324 BL malloc .text:00012328 LDR R1, [R11,#arg_0] .text:0001232C CMP R0, #0 .text:00012330 STR R0, [R1] .text:00012334 BEQ loc_1234C .text:00012338 LDR R2, [R11,#var_A4] .text:0001233C MOV R1, R7 .text:00012340 BL memcpy .text:00012344 MOV R0, R5 .text:00012348 B locret_123EC .text:0001234C ; --------------------------------------------------------------------------- .text:0001234C .text:0001234C loc_1234C ; CODE XREF: open_path+254j .text:0001234C MOV R0, R5 .text:00012350 BL close .text:00012354 B loc_123E8 .text:00012354 ; --------------------------------------------------------------------------- .text:00012358 off_12358 DCD max_dirnamelen ; DATA XREF: open_path+2Cr .text:0001235C off_1235C DCD max_capstrlen ; DATA XREF: open_path+38r .text:00012360 off_12360 DCD _dl_debug_mask ; DATA XREF: open_path+68r .text:00012360 ; open_path+11Cr .text:00012364 off_12364 DCD ncapstr ; DATA XREF: open_path+C8r .text:00012364 ; open_path+228r .text:00012368 off_12368 DCD capstr ; DATA XREF: open_path+F0r .text:0001236C off_1236C DCD aTryingFileS ; DATA XREF: open_path+134r .text:0001236C ; " trying file=%s\n" .text:00012370 off_12370 DCD __libc_enable_secure ; DATA XREF: open_path+1D0r .text:00012374 ; --------------------------------------------------------------------------- .text:00012374 .text:00012374 loc_12374 ; CODE XREF: open_path+23Cj .text:00012374 LDR R2, [R11,#var_AC] .text:00012378 CMP R2, #0 .text:0001237C BEQ loc_12398 .text:00012380 BL __errno_location .text:00012384 LDR R0, [R0] .text:00012388 CMP R0, #2 .text:0001238C BEQ loc_12398 .text:00012390 CMP R0, #0xD .text:00012394 BNE loc_123E8 .text:00012398 .text:00012398 loc_12398 ; CODE XREF: open_path+29Cj .text:00012398 ; open_path+2ACj .text:00012398 LDR R12, [R11,#var_98] .text:0001239C LDR R1, [R11,#var_A0] .text:000123A0 LDR R2, [R11,#var_AC] .text:000123A4 LDR R3, [R12,#4]! .text:000123A8 ORR R1, R1, R2 .text:000123AC STR R1, [R11,#var_A0] .text:000123B0 CMP R3, #0 .text:000123B4 STR R12, [R11,#var_98] .text:000123B8 BNE loc_12140 .text:000123BC CMP R1, #0 .text:000123C0 BNE loc_123E8 .text:000123C4 LDR R12, [R11,#var_94] .text:000123C8 LDR R3, [R12,#4] .text:000123CC CMP R3, #0 .text:000123D0 BEQ loc_123DC .text:000123D4 LDR R0, [R12] .text:000123D8 BL free .text:000123DC .text:000123DC loc_123DC ; CODE XREF: open_path+2F0j .text:000123DC LDR R1, [R11,#var_94] .text:000123E0 MOV R3, 0xFFFFFFFF .text:000123E4 STR R3, [R1] .text:000123E8 .text:000123E8 loc_123E8 ; CODE XREF: open_path+274j .text:000123E8 ; open_path+2B4j ... .text:000123E8 MOV R0, 0xFFFFFFFF .text:000123EC .text:000123EC locret_123EC ; CODE XREF: open_path+268j .text:000123EC LDMDB R11, {R4-R11,SP,PC} .text:000123EC ; End of function open_path .text:000123EC .text:000123F0 .text:000123F0 ; =============== S U B R O U T I N E ======================================= .text:000123F0 .text:000123F0 ; Attributes: bp-based frame .text:000123F0 .text:000123F0 EXPORT _dl_map_object .text:000123F0 _dl_map_object ; CODE XREF: dl_open_worker+190p .text:000123F0 ; openaux+34p .text:000123F0 .text:000123F0 var_44C = -0x44C .text:000123F0 var_448 = -0x448 .text:000123F0 var_444 = -0x444 .text:000123F0 var_440 = -0x440 .text:000123F0 var_43C = -0x43C .text:000123F0 var_438 = -0x438 .text:000123F0 var_434 = -0x434 .text:000123F0 var_430 = -0x430 .text:000123F0 var_420 = -0x420 .text:000123F0 arg_0 = 4 .text:000123F0 arg_4 = 8 .text:000123F0 .text:000123F0 MOV R12, SP .text:000123F4 STMFD SP!, {R4-R12,LR,PC} .text:000123F8 SUB R11, R12, #4 .text:000123FC LDR R12, =_dl_loaded .text:00012400 SUB SP, SP, #0x420 .text:00012404 SUB SP, SP, #4 .text:00012408 LDR R6, [R12] .text:0001240C STR R0, [R11,#var_434] .text:00012410 STR R2, [R11,#var_438] .text:00012414 MOV R8, R1 .text:00012418 MOV R10, R12 .text:0001241C STR R3, [R11,#var_43C] .text:00012420 CMP R6, #0 .text:00012424 BEQ loc_124F8 .text:00012428 .text:00012428 loc_12428 ; CODE XREF: _dl_map_object+104j .text:00012428 LDRB R3, [R6,#0x12D] .text:0001242C TST R3, #2 .text:00012430 BNE loc_124EC .text:00012434 LDR R1, [R6,#4] .text:00012438 MOV R0, R8 .text:0001243C BL strcmp .text:00012440 LDR R4, [R6,#0x14] .text:00012444 CMP R0, #0 .text:00012448 MOVNE R5, #0 .text:0001244C MOVEQ R5, #1 .text:00012450 CMP R4, #0 .text:00012454 CMPNE R0, #0 .text:00012458 BEQ loc_12488 .text:0001245C .text:0001245C loc_1245C ; CODE XREF: _dl_map_object+94j .text:0001245C LDR R1, [R4] .text:00012460 MOV R0, R8 .text:00012464 BL strcmp .text:00012468 CMP R0, #0 .text:0001246C MOVEQ R5, #1 .text:00012470 LDRNE R4, [R4,#4] .text:00012474 CMP R4, #0 .text:00012478 EORNE R3, R5, #1 .text:0001247C MOVEQ R3, #0 .text:00012480 CMP R3, #0 .text:00012484 BNE loc_1245C .text:00012488 .text:00012488 loc_12488 ; CODE XREF: _dl_map_object+68j .text:00012488 CMP R5, #0 .text:0001248C BNE loc_124E4 .text:00012490 LDRB R3, [R6,#0x12D] .text:00012494 TST R3, #1 .text:00012498 BNE loc_124EC .text:0001249C LDR R2, [R6,#0x50] .text:000124A0 CMP R2, #0 .text:000124A4 BEQ loc_124EC .text:000124A8 LDR R3, [R6,#0x2C] .text:000124AC LDR R2, [R2,#4] .text:000124B0 LDR R1, [R3,#4] .text:000124B4 MOV R0, R8 .text:000124B8 ADD R4, R1, R2 .text:000124BC MOV R1, R4 .text:000124C0 BL strcmp .text:000124C4 CMP R0, #0 .text:000124C8 BNE loc_124EC .text:000124CC MOV R0, R6 .text:000124D0 MOV R1, R4 .text:000124D4 BL add_name_to_object .text:000124D8 LDRB R3, [R6,#0x12D] .text:000124DC ORR R3, R3, #1 .text:000124E0 STRB R3, [R6,#0x12D] .text:000124E4 .text:000124E4 loc_124E4 ; CODE XREF: _dl_map_object+9Cj .text:000124E4 MOV R0, R6 .text:000124E8 B locret_12B3C .text:000124EC ; --------------------------------------------------------------------------- .text:000124EC .text:000124EC loc_124EC ; CODE XREF: _dl_map_object+40j .text:000124EC ; _dl_map_object+A8j ... .text:000124EC LDR R6, [R6,#0xC] .text:000124F0 CMP R6, #0 .text:000124F4 BNE loc_12428 .text:000124F8 .text:000124F8 loc_124F8 ; CODE XREF: _dl_map_object+34j .text:000124F8 LDR R2, =_dl_debug_mask .text:000124FC LDR R1, [R11,#var_434] .text:00012500 LDR R3, [R2] .text:00012504 CMP R1, #0 .text:00012508 MOV R3, R3,LSR#6 .text:0001250C ANDNE R3, R3, #1 .text:00012510 MOVEQ R3, #0 .text:00012514 CMP R3, #0 .text:00012518 BEQ loc_12540 .text:0001251C LDR R2, [R1,#4] .text:00012520 LDRB R3, [R2] .text:00012524 CMP R3, #0 .text:00012528 LDREQ R3, =_dl_argv .text:0001252C LDREQ R2, [R3] .text:00012530 LDREQ R2, [R2] .text:00012534 LDR R0, =aFileSNeededByS ; "\nfile=%s; needed by %s\n" .text:00012538 MOV R1, R8 .text:0001253C BL _dl_debug_printf .text:00012540 .text:00012540 loc_12540 ; CODE XREF: _dl_map_object+128j .text:00012540 MOV R0, R8 .text:00012544 MOV R1, #0x2F .text:00012548 BL strchr .text:0001254C CMP R0, #0 .text:00012550 BNE loc_129B4 .text:00012554 MOV R0, R8 .text:00012558 BL strlen .text:0001255C LDR R2, =_dl_debug_mask .text:00012560 LDR R3, [R2] .text:00012564 ADD R0, R0, #1 .text:00012568 STR R0, [R11,#var_440] .text:0001256C TST R3, #1 .text:00012570 BEQ loc_12580 .text:00012574 LDR R0, =aFindLibrarySSe ; "find library=%s; searching\n" .text:00012578 MOV R1, R8 .text:0001257C BL _dl_debug_printf .text:00012580 .text:00012580 loc_12580 ; CODE XREF: _dl_map_object+180j .text:00012580 LDR R3, [R11,#var_434] .text:00012584 MOV R9, 0xFFFFFFFF .text:00012588 CMP R3, #0 .text:0001258C BEQ loc_1259C .text:00012590 LDR R3, [R3,#0x8C] .text:00012594 CMP R3, #0 .text:00012598 BNE loc_126E8 .text:0001259C .text:0001259C loc_1259C ; CODE XREF: _dl_map_object+19Cj .text:0001259C LDR R6, [R11,#var_434] .text:000125A0 CMP R6, #0 .text:000125A4 BEQ loc_12670 .text:000125A8 SUB R7, R11, #-var_420 .text:000125AC SUB R7, R7, #8 .text:000125B0 SUB R7, R7, #8 .text:000125B4 SUB R5, R11, #-var_420 .text:000125B8 SUB R5, R5, #8 .text:000125BC SUB R5, R5, #4 .text:000125C0 .text:000125C0 loc_125C0 ; CODE XREF: _dl_map_object+27Cj .text:000125C0 LDR R3, [R6,#0x138] .text:000125C4 CMP R3, #0 .text:000125C8 BNE loc_1262C .text:000125CC LDR R2, [R6,#0x54] .text:000125D0 CMP R2, #0 .text:000125D4 MOVEQ R3, 0xFFFFFFFF .text:000125D8 STREQ R3, [R6,#0x138] .text:000125DC BEQ loc_12654 .text:000125E0 LDR R3, [R6,#0x2C] .text:000125E4 ADD R4, R6, #0x138 .text:000125E8 LDR R1, [R2,#4] .text:000125EC MOV R0, R4 .text:000125F0 LDR R12, [R3,#4] .text:000125F4 MOV R2, R6 .text:000125F8 LDR R3, =aRpath ; "RPATH" .text:000125FC ADD R1, R12, R1 .text:00012600 BL decompose_rpath .text:00012604 LDR R3, [R6,#0x138] .text:00012608 CMN R3, #1 .text:0001260C BEQ loc_12654 .text:00012610 STR R7, [SP,#0x44C+var_44C] .text:00012614 STR R5, [SP,#0x44C+var_448] .text:00012618 LDR R1, [R11,#var_440] .text:0001261C MOV R0, R8 .text:00012620 LDR R2, [R11,#var_438] .text:00012624 MOV R3, R4 .text:00012628 B loc_1264C .text:0001262C ; --------------------------------------------------------------------------- .text:0001262C .text:0001262C loc_1262C ; CODE XREF: _dl_map_object+1D8j .text:0001262C CMN R3, #1 .text:00012630 BEQ loc_12654 .text:00012634 STR R7, [SP,#0x44C+var_44C] .text:00012638 STR R5, [SP,#0x44C+var_448] .text:0001263C LDR R1, [R11,#var_440] .text:00012640 MOV R0, R8 .text:00012644 LDR R2, [R11,#var_438] .text:00012648 ADD R3, R6, #0x138 .text:0001264C .text:0001264C loc_1264C ; CODE XREF: _dl_map_object+238j .text:0001264C BL open_path .text:00012650 MOV R9, R0 .text:00012654 .text:00012654 loc_12654 ; CODE XREF: _dl_map_object+1ECj .text:00012654 ; _dl_map_object+21Cj ... .text:00012654 LDR R6, [R6,#0x118] .text:00012658 SUBS R3, R6, #0 .text:0001265C MOVNE R3, #1 .text:00012660 CMN R9, #1 .text:00012664 MOVNE R3, #0 .text:00012668 CMP R3, #0 .text:0001266C BNE loc_125C0 .text:00012670 .text:00012670 loc_12670 ; CODE XREF: _dl_map_object+1B4j .text:00012670 LDR R6, [R10] .text:00012674 SUBS R3, R6, #0 .text:00012678 MOVNE R3, #1 .text:0001267C CMN R9, #1 .text:00012680 MOVNE R3, #0 .text:00012684 CMP R3, #0 .text:00012688 BEQ loc_126E8 .text:0001268C LDRB R3, [R6,#0x12C] .text:00012690 LDR R12, [R11,#var_434] .text:00012694 AND R3, R3, #3 .text:00012698 CMP R3, #2 .text:0001269C CMPNE R6, R12 .text:000126A0 BEQ loc_126E8 .text:000126A4 LDR R3, [R6,#0x138] .text:000126A8 CMN R3, #1 .text:000126AC BEQ loc_126E8 .text:000126B0 SUB R3, R11, #-var_420 .text:000126B4 SUB R3, R3, #8 .text:000126B8 SUB R3, R3, #8 .text:000126BC SUB R2, R11, #-var_420 .text:000126C0 STR R3, [SP,#0x44C+var_44C] .text:000126C4 SUB R2, R2, #8 .text:000126C8 SUB R2, R2, #4 .text:000126CC STR R2, [SP,#0x44C+var_448] .text:000126D0 LDR R1, [R11,#var_440] .text:000126D4 MOV R0, R8 .text:000126D8 LDR R2, [R11,#var_438] .text:000126DC ADD R3, R6, #0x138 .text:000126E0 BL open_path .text:000126E4 MOV R9, R0 .text:000126E8 .text:000126E8 loc_126E8 ; CODE XREF: _dl_map_object+1A8j .text:000126E8 ; _dl_map_object+298j ... .text:000126E8 CMN R9, #1 .text:000126EC BNE loc_12738 .text:000126F0 LDR R12, =env_path_list .text:000126F4 LDR R3, [R12] .text:000126F8 CMN R3, #1 .text:000126FC BEQ loc_12738 .text:00012700 SUB R3, R11, #-var_420 .text:00012704 SUB R3, R3, #8 .text:00012708 SUB R3, R3, #8 .text:0001270C SUB R2, R11, #-var_420 .text:00012710 STR R3, [SP,#0x44C+var_44C] .text:00012714 SUB R2, R2, #8 .text:00012718 SUB R2, R2, #4 .text:0001271C STR R2, [SP,#0x44C+var_448] .text:00012720 LDR R1, [R11,#var_440] .text:00012724 MOV R0, R8 .text:00012728 LDR R2, [R11,#var_438] .text:0001272C MOV R3, R12 .text:00012730 BL open_path .text:00012734 MOV R9, R0 .text:00012738 .text:00012738 loc_12738 ; CODE XREF: _dl_map_object+2FCj .text:00012738 ; _dl_map_object+30Cj .text:00012738 LDR R1, [R11,#var_434] .text:0001273C CMP R1, #0 .text:00012740 BEQ loc_12844 .text:00012744 LDR R3, [R1,#0x17C] .text:00012748 CMN R3, #1 .text:0001274C BEQ loc_12844 .text:00012750 CMP R3, #0 .text:00012754 BNE loc_12800 .text:00012758 LDR R2, [R1,#0x8C] .text:0001275C CMP R2, #0 .text:00012760 BNE loc_1278C .text:00012764 MOV R3, 0xFFFFFFFF .text:00012768 STR R3, [R1,#0x17C] .text:0001276C B loc_12844 .text:0001276C ; --------------------------------------------------------------------------- .text:00012770 off_12770 DCD _dl_loaded ; DATA XREF: _dl_map_object+Cr .text:00012774 off_12774 DCD _dl_debug_mask ; DATA XREF: _dl_map_object:loc_124F8r .text:00012774 ; _dl_map_object+16Cr .text:00012778 off_12778 DCD _dl_argv ; DATA XREF: _dl_map_object+138r .text:0001277C off_1277C DCD aFileSNeededByS ; DATA XREF: _dl_map_object+144r .text:0001277C ; "\nfile=%s; needed by %s\n" .text:00012780 off_12780 DCD aFindLibrarySSe ; DATA XREF: _dl_map_object+184r .text:00012780 ; "find library=%s; searching\n" .text:00012784 off_12784 DCD aRpath ; DATA XREF: _dl_map_object+208r .text:00012784 ; "RPATH" .text:00012788 off_12788 DCD env_path_list ; DATA XREF: _dl_map_object+300r .text:0001278C ; --------------------------------------------------------------------------- .text:0001278C .text:0001278C loc_1278C ; CODE XREF: _dl_map_object+370j .text:0001278C LDR R12, [R11,#var_434] .text:00012790 LDR R1, [R2,#4] .text:00012794 LDR R2, [R11,#var_434] .text:00012798 LDR R3, [R12,#0x2C] .text:0001279C ADD R4, R12, #0x17C .text:000127A0 LDR R12, [R3,#4] .text:000127A4 MOV R0, R4 .text:000127A8 LDR R3, =aRunpath ; "RUNPATH" .text:000127AC ADD R1, R12, R1 .text:000127B0 BL decompose_rpath .text:000127B4 LDR R1, [R11,#var_434] .text:000127B8 LDR R3, [R1,#0x17C] .text:000127BC CMN R3, #1 .text:000127C0 BEQ loc_12844 .text:000127C4 SUB R3, R11, #-var_420 .text:000127C8 SUB R3, R3, #8 .text:000127CC SUB R3, R3, #8 .text:000127D0 SUB R2, R11, #-var_420 .text:000127D4 STR R3, [SP,#0x44C+var_44C] .text:000127D8 SUB R2, R2, #8 .text:000127DC SUB R2, R2, #4 .text:000127E0 STR R2, [SP,#0x44C+var_448] .text:000127E4 LDR R1, [R11,#var_440] .text:000127E8 MOV R0, R8 .text:000127EC LDR R2, [R11,#var_438] .text:000127F0 MOV R3, R4 .text:000127F4 B loc_1283C .text:000127F8 ; --------------------------------------------------------------------------- .text:000127F8 .text:000127F8 loc_127F8 ; CODE XREF: _dl_map_object+4C8j .text:000127F8 MOV R10, R0 .text:000127FC B loc_128CC .text:00012800 ; --------------------------------------------------------------------------- .text:00012800 .text:00012800 loc_12800 ; CODE XREF: _dl_map_object+364j .text:00012800 CMN R3, #1 .text:00012804 BEQ loc_12844 .text:00012808 SUB R3, R11, #-var_420 .text:0001280C SUB R3, R3, #8 .text:00012810 SUB R3, R3, #8 .text:00012814 SUB R2, R11, #-var_420 .text:00012818 STR R3, [SP,#0x44C+var_44C] .text:0001281C SUB R2, R2, #8 .text:00012820 SUB R2, R2, #4 .text:00012824 STR R2, [SP,#0x44C+var_448] .text:00012828 LDR R1, [R11,#var_440] .text:0001282C LDR R12, [R11,#var_434] .text:00012830 MOV R0, R8 .text:00012834 LDR R2, [R11,#var_438] .text:00012838 ADD R3, R12, #0x17C .text:0001283C .text:0001283C loc_1283C ; CODE XREF: _dl_map_object+404j .text:0001283C BL open_path .text:00012840 MOV R9, R0 .text:00012844 .text:00012844 loc_12844 ; CODE XREF: _dl_map_object+350j .text:00012844 ; _dl_map_object+35Cj ... .text:00012844 CMN R9, #1 .text:00012848 BNE loc_12934 .text:0001284C LDR R1, [R11,#var_438] .text:00012850 CMP R1, #0 .text:00012854 BEQ loc_12868 .text:00012858 LDR R3, =__libc_enable_secure .text:0001285C LDR R2, [R3] .text:00012860 CMP R2, #0 .text:00012864 BNE loc_12934 .text:00012868 .text:00012868 loc_12868 ; CODE XREF: _dl_map_object+464j .text:00012868 MOV R0, R8 .text:0001286C LDR R6, [R11,#var_434] .text:00012870 BL _dl_load_cache_lookup .text:00012874 SUBS R10, R0, #0 .text:00012878 BEQ loc_12934 .text:0001287C LDR R6, [R11,#var_434] .text:00012880 CMP R6, #0 .text:00012884 BEQ loc_128CC .text:00012888 LDR R3, [R6,#0x198] .text:0001288C TST R3, #0x800 .text:00012890 BEQ loc_128CC .text:00012894 MOV R5, #0 .text:00012898 LDR R7, =system_dirs ; "/usr/local/arm/2.95.3/arm-linux/lib/" .text:0001289C .text:0001289C loc_1289C ; CODE XREF: _dl_map_object+4D8j .text:0001289C LDR R2, =system_dirs_len .text:000128A0 MOV R0, R10 .text:000128A4 LDR R4, [R2,R5,LSL#2] .text:000128A8 MOV R1, R7 .text:000128AC MOV R2, R4 .text:000128B0 BL memcmp .text:000128B4 CMP R0, #0 .text:000128B8 BEQ loc_127F8 .text:000128BC ADD R3, R4, #1 .text:000128C0 ADD R7, R7, R3 .text:000128C4 ADDS R5, R5, #1 .text:000128C8 BEQ loc_1289C .text:000128CC .text:000128CC loc_128CC ; CODE XREF: _dl_map_object+40Cj .text:000128CC ; _dl_map_object+494j ... .text:000128CC CMP R10, #0 .text:000128D0 BEQ loc_12934 .text:000128D4 MOV R0, R10 .text:000128D8 SUB R1, R11, #-var_420 .text:000128DC SUB R1, R1, #8 .text:000128E0 SUB R1, R1, #4 .text:000128E4 BL open_verify .text:000128E8 MOV R9, R0 .text:000128EC CMN R9, #1 .text:000128F0 BEQ loc_12934 .text:000128F4 MOV R0, R10 .text:000128F8 BL strlen .text:000128FC ADD R4, R0, #1 .text:00012900 MOV R0, R4 .text:00012904 BL malloc .text:00012908 CMP R0, #0 .text:0001290C BEQ loc_1291C .text:00012910 MOV R1, R10 .text:00012914 MOV R2, R4 .text:00012918 BL memcpy .text:0001291C .text:0001291C loc_1291C ; CODE XREF: _dl_map_object+51Cj .text:0001291C CMP R0, #0 .text:00012920 STR R0, [R11,#var_430] .text:00012924 BNE loc_12934 .text:00012928 MOV R0, R9 .text:0001292C MOV R9, 0xFFFFFFFF .text:00012930 BL close .text:00012934 .text:00012934 loc_12934 ; CODE XREF: _dl_map_object+458j .text:00012934 ; _dl_map_object+474j ... .text:00012934 CMN R9, #1 .text:00012938 BNE loc_12998 .text:0001293C CMP R6, #0 .text:00012940 BEQ loc_12950 .text:00012944 LDR R3, [R6,#0x198] .text:00012948 TST R3, #0x800 .text:0001294C BNE loc_12998 .text:00012950 .text:00012950 loc_12950 ; CODE XREF: _dl_map_object+550j .text:00012950 LDR R12, =rtld_search_dirs .text:00012954 LDR R3, [R12] .text:00012958 CMN R3, #1 .text:0001295C BEQ loc_12998 .text:00012960 SUB R3, R11, #-var_420 .text:00012964 SUB R3, R3, #8 .text:00012968 SUB R3, R3, #8 .text:0001296C SUB R2, R11, #-var_420 .text:00012970 STR R3, [SP,#0x44C+var_44C] .text:00012974 SUB R2, R2, #8 .text:00012978 SUB R2, R2, #4 .text:0001297C STR R2, [SP,#0x44C+var_448] .text:00012980 LDR R1, [R11,#var_440] .text:00012984 MOV R0, R8 .text:00012988 LDR R2, [R11,#var_438] .text:0001298C MOV R3, R12 .text:00012990 BL open_path .text:00012994 MOV R9, R0 .text:00012998 .text:00012998 loc_12998 ; CODE XREF: _dl_map_object+548j .text:00012998 ; _dl_map_object+55Cj ... .text:00012998 LDR R12, =_dl_debug_mask .text:0001299C LDR R3, [R12] .text:000129A0 TST R3, #1 .text:000129A4 BEQ loc_12A30 .text:000129A8 LDR R0, =asc_55EB4 ; "\n" .text:000129AC BL _dl_debug_printf .text:000129B0 B loc_12A30 .text:000129B4 ; --------------------------------------------------------------------------- .text:000129B4 .text:000129B4 loc_129B4 ; CODE XREF: _dl_map_object+160j .text:000129B4 LDR R1, [R11,#var_434] .text:000129B8 CMP R1, #0 .text:000129BC BEQ loc_129D0 .text:000129C0 MOV R0, R1 .text:000129C4 MOV R1, R8 .text:000129C8 BL expand_dynamic_string_token .text:000129CC B loc_129FC .text:000129D0 ; --------------------------------------------------------------------------- .text:000129D0 .text:000129D0 loc_129D0 ; CODE XREF: _dl_map_object+5CCj .text:000129D0 MOV R0, R8 .text:000129D4 BL strlen .text:000129D8 ADD R4, R0, #1 .text:000129DC MOV R0, R4 .text:000129E0 BL malloc .text:000129E4 CMP R0, #0 .text:000129E8 LDREQ R0, [R11,#var_434] .text:000129EC BEQ loc_129FC .text:000129F0 MOV R1, R8 .text:000129F4 MOV R2, R4 .text:000129F8 BL memcpy .text:000129FC .text:000129FC loc_129FC ; CODE XREF: _dl_map_object+5DCj .text:000129FC ; _dl_map_object+5FCj .text:000129FC CMP R0, #0 .text:00012A00 STR R0, [R11,#var_430] .text:00012A04 MOVEQ R9, 0xFFFFFFFF .text:00012A08 BEQ loc_12A30 .text:00012A0C SUB R1, R11, #-var_420 .text:00012A10 SUB R1, R1, #8 .text:00012A14 SUB R1, R1, #4 .text:00012A18 BL open_verify .text:00012A1C MOV R9, R0 .text:00012A20 CMN R9, #1 .text:00012A24 BNE loc_12A30 .text:00012A28 LDR R0, [R11,#var_430] .text:00012A2C BL free .text:00012A30 .text:00012A30 loc_12A30 ; CODE XREF: _dl_map_object+5B4j .text:00012A30 ; _dl_map_object+5C0j ... .text:00012A30 CMN R9, #1 .text:00012A34 BNE loc_12B08 .text:00012A38 LDR R3, [R11,#arg_0] .text:00012A3C CMP R3, #0 .text:00012A40 BEQ loc_12ACC .text:00012A44 MOV R0, R8 .text:00012A48 BL strlen .text:00012A4C ADD R4, R0, #1 .text:00012A50 MOV R0, R4 .text:00012A54 BL malloc .text:00012A58 CMP R0, #0 .text:00012A5C BEQ loc_12A6C .text:00012A60 MOV R1, R8 .text:00012A64 MOV R2, R4 .text:00012A68 BL memcpy .text:00012A6C .text:00012A6C loc_12A6C ; CODE XREF: _dl_map_object+66Cj .text:00012A6C CMP R0, #0 .text:00012A70 BEQ loc_12A8C .text:00012A74 LDR R2, [R11,#var_43C] .text:00012A78 LDR R3, [R11,#var_434] .text:00012A7C MOV R1, R8 .text:00012A80 BL _dl_new_object .text:00012A84 SUBS R6, R0, #0 .text:00012A88 BNE loc_12A9C .text:00012A8C .text:00012A8C loc_12A8C ; CODE XREF: _dl_map_object+680j .text:00012A8C MOV R0, #0xC .text:00012A90 LDR R2, =aCannotCreateSh ; "cannot create shared object descriptor" .text:00012A94 MOV R1, R8 .text:00012A98 BL _dl_signal_error .text:00012A9C ; --------------------------------------------------------------------------- .text:00012A9C .text:00012A9C loc_12A9C ; CODE XREF: _dl_map_object+698j .text:00012A9C LDRB R3, [R6,#0x12D] .text:00012AA0 MOV R2, #1 .text:00012AA4 STR R2, [R6,#0x11C] .text:00012AA8 ORR R3, R3, #2 .text:00012AAC STRB R3, [R6,#0x12D] .text:00012AB0 LDR R2, =dummy_bucket.190 .text:00012AB4 LDRB R3, [R6,#0x12C] .text:00012AB8 STR R2, [R6,#0x120] .text:00012ABC MOV R0, R6 .text:00012AC0 ORR R3, R3, #4 .text:00012AC4 STRB R3, [R6,#0x12C] .text:00012AC8 B locret_12B3C .text:00012ACC ; --------------------------------------------------------------------------- .text:00012ACC .text:00012ACC loc_12ACC ; CODE XREF: _dl_map_object+650j .text:00012ACC BL __errno_location .text:00012AD0 LDR R0, [R0] .text:00012AD4 LDR R2, =aCannotOpenShar ; "cannot open shared object file" .text:00012AD8 MOV R1, R8 .text:00012ADC BL _dl_signal_error .text:00012ADC ; --------------------------------------------------------------------------- .text:00012AE0 off_12AE0 DCD aRunpath ; DATA XREF: _dl_map_object+3B8r .text:00012AE0 ; "RUNPATH" .text:00012AE4 off_12AE4 DCD __libc_enable_secure ; DATA XREF: _dl_map_object+468r .text:00012AE8 off_12AE8 DCD system_dirs ; DATA XREF: _dl_map_object+4A8r .text:00012AE8 ; "/usr/local/arm/2.95.3/arm-linux/lib/" .text:00012AEC off_12AEC DCD system_dirs_len ; DATA XREF: _dl_map_object:loc_1289Cr .text:00012AF0 off_12AF0 DCD rtld_search_dirs ; DATA XREF: _dl_map_object:loc_12950r .text:00012AF4 off_12AF4 DCD _dl_debug_mask ; DATA XREF: _dl_map_object:loc_12998r .text:00012AF8 off_12AF8 DCD asc_55EB4 ; DATA XREF: _dl_map_object+5B8r .text:00012AF8 ; "\n" .text:00012AFC off_12AFC DCD aCannotCreateSh ; DATA XREF: _dl_map_object+6A0r .text:00012AFC ; "cannot create shared object descriptor" .text:00012B00 off_12B00 DCD dummy_bucket.190 ; DATA XREF: _dl_map_object+6C0r .text:00012B04 off_12B04 DCD aCannotOpenShar ; DATA XREF: _dl_map_object+6E4r .text:00012B04 ; "cannot open shared object file" .text:00012B08 ; --------------------------------------------------------------------------- .text:00012B08 .text:00012B08 loc_12B08 ; CODE XREF: _dl_map_object+644j .text:00012B08 LDR R2, [R11,#var_434] .text:00012B0C STR R2, [SP,#0x44C+var_44C] .text:00012B10 LDR R3, [R11,#var_43C] .text:00012B14 STR R3, [SP,#0x44C+var_448] .text:00012B18 LDR R3, [R11,#arg_4] .text:00012B1C STR R3, [SP,#0x44C+var_444] .text:00012B20 MOV R0, R8 .text:00012B24 MOV R1, R9 .text:00012B28 SUB R2, R11, #-var_420 .text:00012B2C SUB R2, R2, #8 .text:00012B30 LDR R3, [R11,#var_430] .text:00012B34 SUB R2, R2, #4 .text:00012B38 BL _dl_map_object_from_fd .text:00012B3C .text:00012B3C locret_12B3C ; CODE XREF: _dl_map_object+F8j .text:00012B3C ; _dl_map_object+6D8j .text:00012B3C LDMDB R11, {R4-R11,SP,PC} .text:00012B3C ; End of function _dl_map_object .text:00012B3C .text:00012B40 .text:00012B40 ; =============== S U B R O U T I N E ======================================= .text:00012B40 .text:00012B40 ; Attributes: bp-based frame .text:00012B40 .text:00012B40 _dl_cache_libcmp ; CODE XREF: _dl_load_cache_lookup+1F8p .text:00012B40 ; _dl_load_cache_lookup+248p ... .text:00012B40 MOV R12, SP .text:00012B44 STMFD SP!, {R4,R11,R12,LR,PC} .text:00012B48 SUB R11, R12, #4 .text:00012B4C MOV R4, R0 .text:00012B50 LDRB R12, [R4] .text:00012B54 MOV LR, R1 .text:00012B58 CMP R12, #0 .text:00012B5C BEQ loc_12C40 .text:00012B60 .text:00012B60 loc_12B60 ; CODE XREF: _dl_cache_libcmp+FCj .text:00012B60 SUB R3, R12, #0x30 .text:00012B64 CMP R3, #9 .text:00012B68 BHI loc_12C04 .text:00012B6C LDRB R3, [LR] .text:00012B70 SUB R3, R3, #0x30 .text:00012B74 CMP R3, #9 .text:00012B78 BHI loc_12BFC .text:00012B7C LDRB R3, [R4] .text:00012B80 LDRB R1, [LR],#1 .text:00012B84 LDRB R2, [R4,#1]! .text:00012B88 SUB R0, R3, #0x30 .text:00012B8C SUB R12, R1, #0x30 .text:00012B90 SUB R2, R2, #0x30 .text:00012B94 CMP R2, #9 .text:00012B98 BHI loc_12BBC .text:00012B9C .text:00012B9C loc_12B9C ; CODE XREF: _dl_cache_libcmp+78j .text:00012B9C LDRB R3, [R4] .text:00012BA0 ADD R2, R0, R0,LSL#2 .text:00012BA4 LDRB R1, [R4,#1]! .text:00012BA8 ADD R3, R3, R2,LSL#1 .text:00012BAC SUB R0, R3, #0x30 .text:00012BB0 SUB R1, R1, #0x30 .text:00012BB4 CMP R1, #9 .text:00012BB8 BLS loc_12B9C .text:00012BBC .text:00012BBC loc_12BBC ; CODE XREF: _dl_cache_libcmp+58j .text:00012BBC LDRB R3, [LR] .text:00012BC0 SUB R3, R3, #0x30 .text:00012BC4 CMP R3, #9 .text:00012BC8 BHI loc_12BEC .text:00012BCC .text:00012BCC loc_12BCC ; CODE XREF: _dl_cache_libcmp+A8j .text:00012BCC LDRB R3, [LR] .text:00012BD0 ADD R2, R12, R12,LSL#2 .text:00012BD4 LDRB R1, [LR,#1]! .text:00012BD8 ADD R3, R3, R2,LSL#1 .text:00012BDC SUB R12, R3, #0x30 .text:00012BE0 SUB R1, R1, #0x30 .text:00012BE4 CMP R1, #9 .text:00012BE8 BLS loc_12BCC .text:00012BEC .text:00012BEC loc_12BEC ; CODE XREF: _dl_cache_libcmp+88j .text:00012BEC CMP R0, R12 .text:00012BF0 BEQ loc_12C34 .text:00012BF4 RSB R0, R12, R0 .text:00012BF8 LDMDB R11, {R4,R11,SP,PC} .text:00012BFC ; --------------------------------------------------------------------------- .text:00012BFC .text:00012BFC loc_12BFC ; CODE XREF: _dl_cache_libcmp+38j .text:00012BFC MOV R0, #1 .text:00012C00 LDMDB R11, {R4,R11,SP,PC} .text:00012C04 ; --------------------------------------------------------------------------- .text:00012C04 .text:00012C04 loc_12C04 ; CODE XREF: _dl_cache_libcmp+28j .text:00012C04 LDRB R2, [LR] .text:00012C08 SUB R3, R2, #0x30 .text:00012C0C CMP R3, #9 .text:00012C10 MOVLS R0, 0xFFFFFFFF .text:00012C14 LDMLSDB R11, {R4,R11,SP,PC} .text:00012C18 CMP R12, R2 .text:00012C1C LDRNEB R3, [R4] .text:00012C20 LDRNEB R0, [LR] .text:00012C24 RSBNE R0, R0, R3 .text:00012C28 LDMNEDB R11, {R4,R11,SP,PC} .text:00012C2C ADD R4, R4, #1 .text:00012C30 ADD LR, LR, #1 .text:00012C34 .text:00012C34 loc_12C34 ; CODE XREF: _dl_cache_libcmp+B0j .text:00012C34 LDRB R12, [R4] .text:00012C38 CMP R12, #0 .text:00012C3C BNE loc_12B60 .text:00012C40 .text:00012C40 loc_12C40 ; CODE XREF: _dl_cache_libcmp+1Cj .text:00012C40 LDRB R3, [R4] .text:00012C44 LDRB R0, [LR] .text:00012C48 RSB R0, R0, R3 .text:00012C4C LDMDB R11, {R4,R11,SP,PC} .text:00012C4C ; End of function _dl_cache_libcmp .text:00012C4C .text:00012C50 .text:00012C50 ; =============== S U B R O U T I N E ======================================= .text:00012C50 .text:00012C50 ; Attributes: bp-based frame .text:00012C50 .text:00012C50 EXPORT _dl_load_cache_lookup .text:00012C50 _dl_load_cache_lookup ; CODE XREF: _dl_map_object+480p .text:00012C50 .text:00012C50 var_30 = -0x30 .text:00012C50 var_2C = -0x2C .text:00012C50 .text:00012C50 MOV R12, SP .text:00012C54 STMFD SP!, {R4-R12,LR,PC} .text:00012C58 LDR R2, =_dl_debug_mask .text:00012C5C SUB SP, SP, #8 .text:00012C60 LDR R3, [R2] .text:00012C64 SUB R11, R12, #4 .text:00012C68 STR R0, [R11,#var_2C] .text:00012C6C TST R3, #1 .text:00012C70 BEQ loc_12C80 .text:00012C74 LDR R0, =aSearchCacheS ; " search cache=%s\n" .text:00012C78 LDR R1, =aUsrLocalArm2_9 ; "/usr/local/arm/2.95.3/arm-linux/etc/ld."... .text:00012C7C BL _dl_debug_printf .text:00012C80 .text:00012C80 loc_12C80 ; CODE XREF: _dl_load_cache_lookup+20j .text:00012C80 LDR R2, =cache .text:00012C84 LDR R3, [R2] .text:00012C88 CMP R3, #0 .text:00012C8C BNE loc_12DA8 .text:00012C90 LDR R4, =cachesize .text:00012C94 MOV R2, #1 .text:00012C98 LDR R0, =aUsrLocalArm2_9 ; "/usr/local/arm/2.95.3/arm-linux/etc/ld."... .text:00012C9C MOV R1, R4 .text:00012CA0 BL _dl_sysdep_read_whole_file .text:00012CA4 SUBS R5, R0, #0 .text:00012CA8 BEQ loc_12D24 .text:00012CAC LDR R3, [R4] .text:00012CB0 CMP R3, #0x10 .text:00012CB4 BLS loc_12D24 .text:00012CB8 MOV R0, R5 .text:00012CBC LDR R1, =aLd_so1_7_0 ; "ld.so-1.7.0" .text:00012CC0 MOV R2, #0xB .text:00012CC4 BL memcmp .text:00012CC8 CMP R0, #0 .text:00012CCC BNE loc_12D24 .text:00012CD0 LDR R1, =cache .text:00012CD4 STR R5, [R1] .text:00012CD8 LDR R1, [R4] .text:00012CDC LDR R3, [R5,#0xC] .text:00012CE0 LDR R4, =cache_new .text:00012CE4 ADD R3, R3, R3,LSL#1 .text:00012CE8 MOV R3, R3,LSL#2 .text:00012CEC ADD R3, R3, #0x10 .text:00012CF0 ADD R2, R3, #0x30 .text:00012CF4 CMP R1, R2 .text:00012CF8 ADD R0, R5, R3 .text:00012CFC STR R0, [R4] .text:00012D00 BCC loc_12D18 .text:00012D04 LDR R1, =aGlibcLd_so_cac ; "glibc-ld.so.cache1.1" .text:00012D08 MOV R2, #0x14 .text:00012D0C BL memcmp .text:00012D10 CMP R0, #0 .text:00012D14 BEQ loc_12D84 .text:00012D18 .text:00012D18 loc_12D18 ; CODE XREF: _dl_load_cache_lookup+B0j .text:00012D18 MOV R3, 0xFFFFFFFF .text:00012D1C STR R3, [R4] .text:00012D20 B loc_12D84 .text:00012D24 ; --------------------------------------------------------------------------- .text:00012D24 .text:00012D24 loc_12D24 ; CODE XREF: _dl_load_cache_lookup+58j .text:00012D24 ; _dl_load_cache_lookup+64j ... .text:00012D24 CMP R5, #0 .text:00012D28 BEQ loc_12D64 .text:00012D2C LDR R3, [R4] .text:00012D30 CMP R3, #0x30 .text:00012D34 BLS loc_12D64 .text:00012D38 MOV R0, R5 .text:00012D3C LDR R1, =aGlibcLd_so_cac ; "glibc-ld.so.cache1.1" .text:00012D40 MOV R2, #0x14 .text:00012D44 BL memcmp .text:00012D48 CMP R0, #0 .text:00012D4C BNE loc_12D64 .text:00012D50 LDR R2, =cache .text:00012D54 STR R5, [R2] .text:00012D58 LDR R3, =cache_new .text:00012D5C STR R5, [R3] .text:00012D60 B loc_12D84 .text:00012D64 ; --------------------------------------------------------------------------- .text:00012D64 .text:00012D64 loc_12D64 ; CODE XREF: _dl_load_cache_lookup+D8j .text:00012D64 ; _dl_load_cache_lookup+E4j ... .text:00012D64 CMP R5, #0 .text:00012D68 BEQ loc_12D78 .text:00012D6C LDR R1, [R4] .text:00012D70 MOV R0, R5 .text:00012D74 BL munmap .text:00012D78 .text:00012D78 loc_12D78 ; CODE XREF: _dl_load_cache_lookup+118j .text:00012D78 LDR R1, =cache .text:00012D7C MOV R3, 0xFFFFFFFF .text:00012D80 STR R3, [R1] .text:00012D84 .text:00012D84 loc_12D84 ; CODE XREF: _dl_load_cache_lookup+C4j .text:00012D84 ; _dl_load_cache_lookup+D0j ... .text:00012D84 LDR R2, =cache .text:00012D88 LDR R3, [R2] .text:00012D8C CMP R3, #0 .text:00012D90 BNE loc_12DA8 .text:00012D94 LDR R0, =aCacheVoid0 ; "cache != ((void *)0)" .text:00012D98 LDR R1, =a__SysdepsGener ; "../sysdeps/generic/dl-cache.c" .text:00012D9C LDR R3, =a_dl_load_cache ; "_dl_load_cache_lookup" .text:00012DA0 MOV R2, #0xCA .text:00012DA4 BL __assert_fail .text:00012DA8 ; --------------------------------------------------------------------------- .text:00012DA8 .text:00012DA8 loc_12DA8 ; CODE XREF: _dl_load_cache_lookup+3Cj .text:00012DA8 ; _dl_load_cache_lookup+140j .text:00012DA8 LDR R3, =cache .text:00012DAC LDR R12, [R3] .text:00012DB0 CMN R12, #1 .text:00012DB4 MOVEQ R0, #0 .text:00012DB8 BEQ loc_131B8 .text:00012DBC LDR R3, =cache_new .text:00012DC0 LDR R9, [R3] .text:00012DC4 MOV R1, #0 .text:00012DC8 STR R1, [R11,#var_30] .text:00012DCC CMN R9, #1 .text:00012DD0 BEQ loc_12FC8 .text:00012DD4 LDR R3, =cachesize .text:00012DD8 LDR R2, [R3] .text:00012DDC MOV R6, R9 .text:00012DE0 ADD R2, R12, R2 .text:00012DE4 RSB R8, R6, R2 .text:00012DE8 MOV R10, R1 .text:00012DEC LDR R2, [R6,#0x14] .text:00012DF0 MOV R0, #1 .text:00012DF4 SUB R7, R2, #1 .text:00012DF8 ADD R3, R7, R7,LSR#31 .text:00012DFC MOV R5, R3,ASR R0 .text:00012E00 B loc_12E18 .text:00012E04 ; --------------------------------------------------------------------------- .text:00012E04 .text:00012E04 loc_12E04 ; CODE XREF: _dl_load_cache_lookup+200j .text:00012E04 ADDLT R10, R5, #1 .text:00012E08 SUBGE R7, R5, #1 .text:00012E0C ADD R3, R10, R7 .text:00012E10 ADD R3, R3, R3,LSR#31 .text:00012E14 MOV R5, R3,ASR#1 .text:00012E18 .text:00012E18 loc_12E18 ; CODE XREF: _dl_load_cache_lookup+1B0j .text:00012E18 CMP R10, R7 .text:00012E1C BGT loc_12E54 .text:00012E20 LDR R2, =cache_new .text:00012E24 LDR R3, [R2] .text:00012E28 ADD R2, R5, R5,LSL#1 .text:00012E2C ADD R3, R3, #0x34 .text:00012E30 LDR R3, [R3,R2,LSL#3] .text:00012E34 CMP R3, R8 .text:00012E38 MOV R0, #1 .text:00012E3C BCS loc_12E54 .text:00012E40 LDR R0, [R11,#var_2C] .text:00012E44 ADD R1, R9, R3 .text:00012E48 BL _dl_cache_libcmp .text:00012E4C CMP R0, #0 .text:00012E50 BNE loc_12E04 .text:00012E54 .text:00012E54 loc_12E54 ; CODE XREF: _dl_load_cache_lookup+1CCj .text:00012E54 ; _dl_load_cache_lookup+1ECj .text:00012E54 CMP R0, #0 .text:00012E58 BNE loc_13188 .text:00012E5C MOV R10, R5 .text:00012E60 B loc_12E68 .text:00012E64 ; --------------------------------------------------------------------------- .text:00012E64 .text:00012E64 loc_12E64 ; CODE XREF: _dl_load_cache_lookup+250j .text:00012E64 MOV R5, R4 .text:00012E68 .text:00012E68 loc_12E68 ; CODE XREF: _dl_load_cache_lookup+210j .text:00012E68 CMP R5, #0 .text:00012E6C BLE loc_12EA4 .text:00012E70 LDR R1, =cache_new .text:00012E74 SUB R4, R5, #1 .text:00012E78 LDR R3, [R1] .text:00012E7C ADD R2, R4, R4,LSL#1 .text:00012E80 ADD R3, R3, #0x34 .text:00012E84 LDR R3, [R3,R2,LSL#3] .text:00012E88 CMP R3, R8 .text:00012E8C BCS loc_12EA4 .text:00012E90 LDR R0, [R11,#var_2C] .text:00012E94 ADD R1, R9, R3 .text:00012E98 BL _dl_cache_libcmp .text:00012E9C CMP R0, #0 .text:00012EA0 BEQ loc_12E64 .text:00012EA4 .text:00012EA4 loc_12EA4 ; CODE XREF: _dl_load_cache_lookup+21Cj .text:00012EA4 ; _dl_load_cache_lookup+23Cj .text:00012EA4 ADD R3, R5, R5,LSL#1 .text:00012EA8 MOV R6, R3,LSL#3 .text:00012EAC .text:00012EAC loc_12EAC ; CODE XREF: _dl_load_cache_lookup+370j .text:00012EAC CMP R5, R10 .text:00012EB0 BLE loc_12EE0 .text:00012EB4 LDR R2, =cache_new .text:00012EB8 LDR R3, [R2] .text:00012EBC ADD R3, R3, #0x34 .text:00012EC0 LDR R3, [R3,R6] .text:00012EC4 CMP R3, R8 .text:00012EC8 BCS loc_13188 .text:00012ECC LDR R0, [R11,#var_2C] .text:00012ED0 ADD R1, R9, R3 .text:00012ED4 BL _dl_cache_libcmp .text:00012ED8 CMP R0, #0 .text:00012EDC BNE loc_13188 .text:00012EE0 .text:00012EE0 loc_12EE0 ; CODE XREF: _dl_load_cache_lookup+260j .text:00012EE0 LDR R3, =cache_new .text:00012EE4 LDR R0, [R3] .text:00012EE8 ADD R3, R0, #0x30 .text:00012EEC LDR R12, [R3,R6] .text:00012EF0 CMP R12, #3 .text:00012EF4 CMPNE R12, #1 .text:00012EF8 BNE loc_12FB4 .text:00012EFC ADD R3, R0, #0x38 .text:00012F00 LDR R2, [R3,R6] .text:00012F04 CMP R2, R8 .text:00012F08 BCS loc_12FB4 .text:00012F0C LDR R1, [R11,#var_30] .text:00012F10 CMP R1, #0 .text:00012F14 BEQ loc_12F28 .text:00012F18 LDR R2, =_dl_correct_cache_id .text:00012F1C LDR R3, [R2] .text:00012F20 CMP R12, R3 .text:00012F24 BNE loc_12FB4 .text:00012F28 .text:00012F28 loc_12F28 ; CODE XREF: _dl_load_cache_lookup+2C4j .text:00012F28 LDR R3, =_dl_osversion .text:00012F2C LDR R1, [R3] .text:00012F30 CMP R1, #0 .text:00012F34 BEQ loc_12F48 .text:00012F38 ADD R3, R0, #0x3C .text:00012F3C LDR R2, [R3,R6] .text:00012F40 CMP R2, R1 .text:00012F44 BHI loc_12FB4 .text:00012F48 .text:00012F48 loc_12F48 ; CODE XREF: _dl_load_cache_lookup+2E4j .text:00012F48 LDR R3, =0 .text:00012F4C CMP R3, #0 .text:00012F50 BEQ loc_12F8C .text:00012F54 LDR R1, =0 .text:00012F58 ADD R3, R0, #0x40 .text:00012F5C LDR R2, [R1] .text:00012F60 ADD R3, R3, R6 .text:00012F64 LDMIA R3, {R3,R4} .text:00012F68 MOV R1, R2 .text:00012F6C MOV R2, #0 .text:00012F70 AND R3, R3, R1 .text:00012F74 AND R4, R4, R2 .text:00012F78 CMP R4, R2 .text:00012F7C BHI loc_12FB4 .text:00012F80 BNE loc_12F8C .text:00012F84 CMP R3, R1 .text:00012F88 BHI loc_12FB4 .text:00012F8C .text:00012F8C loc_12F8C ; CODE XREF: _dl_load_cache_lookup+300j .text:00012F8C ; _dl_load_cache_lookup+330j .text:00012F8C LDR R2, =cache_new .text:00012F90 LDR R3, [R2] .text:00012F94 LDR R2, =_dl_correct_cache_id .text:00012F98 LDR R1, [R2] .text:00012F9C ADD R3, R3, #0x38 .text:00012FA0 LDR R2, [R3,R6] .text:00012FA4 CMP R12, R1 .text:00012FA8 ADD R2, R9, R2 .text:00012FAC STR R2, [R11,#var_30] .text:00012FB0 BEQ loc_13188 .text:00012FB4 .text:00012FB4 loc_12FB4 ; CODE XREF: _dl_load_cache_lookup+2A8j .text:00012FB4 ; _dl_load_cache_lookup+2B8j ... .text:00012FB4 ADD R6, R6, #0x18 .text:00012FB8 ADD R5, R5, #1 .text:00012FBC CMP R5, R7 .text:00012FC0 BLE loc_12EAC .text:00012FC4 B loc_13188 .text:00012FC8 ; --------------------------------------------------------------------------- .text:00012FC8 .text:00012FC8 loc_12FC8 ; CODE XREF: _dl_load_cache_lookup+180j .text:00012FC8 LDR R2, [R12,#0xC] .text:00012FCC LDR R1, =cachesize .text:00012FD0 ADD R3, R2, R2,LSL#1 .text:00012FD4 MOV R3, R3,LSL#2 .text:00012FD8 ADD R3, R3, #0x10 .text:00012FDC LDR R0, [R1] .text:00012FE0 ADD R6, R12, R3 .text:00012FE4 RSB R8, R3, R0 .text:00012FE8 LDR R10, [R11,#var_30] .text:00012FEC MOV R0, #1 .text:00012FF0 SUB R7, R2, #1 .text:00012FF4 ADD R3, R7, R7,LSR#31 .text:00012FF8 B loc_1304C .text:00012FFC ; --------------------------------------------------------------------------- .text:00012FFC .text:00012FFC loc_12FFC ; CODE XREF: _dl_load_cache_lookup+438j .text:00012FFC BGE loc_13040 .text:00013000 ADD R10, R5, #1 .text:00013004 B loc_13044 .text:00013004 ; --------------------------------------------------------------------------- .text:00013008 off_13008 DCD _dl_debug_mask ; DATA XREF: _dl_load_cache_lookup+8r .text:0001300C off_1300C DCD aSearchCacheS ; DATA XREF: _dl_load_cache_lookup+24r .text:0001300C ; " search cache=%s\n" .text:00013010 off_13010 DCD aUsrLocalArm2_9 ; DATA XREF: _dl_load_cache_lookup+28r .text:00013010 ; _dl_load_cache_lookup+48r .text:00013010 ; "/usr/local/arm/2.95.3/arm-linux/etc/ld."... .text:00013014 off_13014 DCD cache ; DATA XREF: _dl_load_cache_lookup:loc_12C80r .text:00013014 ; _dl_load_cache_lookup+80r ... .text:00013018 off_13018 DCD cachesize ; DATA XREF: _dl_load_cache_lookup+40r .text:00013018 ; _dl_load_cache_lookup+184r ... .text:0001301C off_1301C DCD aLd_so1_7_0 ; DATA XREF: _dl_load_cache_lookup+6Cr .text:0001301C ; "ld.so-1.7.0" .text:00013020 off_13020 DCD cache_new ; DATA XREF: _dl_load_cache_lookup+90r .text:00013020 ; _dl_load_cache_lookup+108r ... .text:00013024 off_13024 DCD aGlibcLd_so_cac ; DATA XREF: _dl_load_cache_lookup+B4r .text:00013024 ; _dl_load_cache_lookup+ECr .text:00013024 ; "glibc-ld.so.cache1.1" .text:00013028 off_13028 DCD aCacheVoid0 ; DATA XREF: _dl_load_cache_lookup+144r .text:00013028 ; "cache != ((void *)0)" .text:0001302C off_1302C DCD a__SysdepsGener ; DATA XREF: _dl_load_cache_lookup+148r .text:0001302C ; "../sysdeps/generic/dl-cache.c" .text:00013030 off_13030 DCD a_dl_load_cache ; DATA XREF: _dl_load_cache_lookup+14Cr .text:00013030 ; "_dl_load_cache_lookup" .text:00013034 off_13034 DCD _dl_correct_cache_id .text:00013034 ; DATA XREF: _dl_load_cache_lookup+2C8r .text:00013034 ; _dl_load_cache_lookup+344r .text:00013038 off_13038 DCD _dl_osversion ; DATA XREF: _dl_load_cache_lookup:loc_12F28r .text:0001303C dword_1303C DCD 0 ; DATA XREF: _dl_load_cache_lookup:loc_12F48r .text:0001303C ; _dl_load_cache_lookup+304r .text:00013040 ; --------------------------------------------------------------------------- .text:00013040 .text:00013040 loc_13040 ; CODE XREF: _dl_load_cache_lookup:loc_12FFCj .text:00013040 SUB R7, R5, #1 .text:00013044 .text:00013044 loc_13044 ; CODE XREF: _dl_load_cache_lookup+3B4j .text:00013044 ADD R3, R10, R7 .text:00013048 ADD R3, R3, R3,LSR#31 .text:0001304C .text:0001304C loc_1304C ; CODE XREF: _dl_load_cache_lookup+3A8j .text:0001304C MOV R5, R3,ASR#1 .text:00013050 CMP R10, R7 .text:00013054 BGT loc_1308C .text:00013058 LDR R1, =cache .text:0001305C LDR R3, [R1] .text:00013060 ADD R2, R5, R5,LSL#1 .text:00013064 ADD R3, R3, #0x14 .text:00013068 LDR R3, [R3,R2,LSL#2] .text:0001306C CMP R3, R8 .text:00013070 MOV R0, #1 .text:00013074 BCS loc_1308C .text:00013078 LDR R0, [R11,#var_2C] .text:0001307C ADD R1, R6, R3 .text:00013080 BL _dl_cache_libcmp .text:00013084 CMP R0, #0 .text:00013088 BNE loc_12FFC .text:0001308C .text:0001308C loc_1308C ; CODE XREF: _dl_load_cache_lookup+404j .text:0001308C ; _dl_load_cache_lookup+424j .text:0001308C CMP R0, #0 .text:00013090 BNE loc_13188 .text:00013094 MOV R10, R5 .text:00013098 B loc_130A4 .text:00013098 ; --------------------------------------------------------------------------- .text:0001309C off_1309C DCD cache ; DATA XREF: _dl_load_cache_lookup+408r .text:000130A0 ; --------------------------------------------------------------------------- .text:000130A0 .text:000130A0 loc_130A0 ; CODE XREF: _dl_load_cache_lookup+48Cj .text:000130A0 MOV R5, R4 .text:000130A4 .text:000130A4 loc_130A4 ; CODE XREF: _dl_load_cache_lookup+448j .text:000130A4 CMP R5, #0 .text:000130A8 BLE loc_130E0 .text:000130AC LDR R2, =cache .text:000130B0 SUB R4, R5, #1 .text:000130B4 LDR R3, [R2] .text:000130B8 ADD R2, R4, R4,LSL#1 .text:000130BC ADD R3, R3, #0x14 .text:000130C0 LDR R3, [R3,R2,LSL#2] .text:000130C4 CMP R3, R8 .text:000130C8 BCS loc_130E0 .text:000130CC LDR R0, [R11,#var_2C] .text:000130D0 ADD R1, R6, R3 .text:000130D4 BL _dl_cache_libcmp .text:000130D8 CMP R0, #0 .text:000130DC BEQ loc_130A0 .text:000130E0 .text:000130E0 loc_130E0 ; CODE XREF: _dl_load_cache_lookup+458j .text:000130E0 ; _dl_load_cache_lookup+478j .text:000130E0 ADD R3, R5, R5,LSL#1 .text:000130E4 MOV R4, R3,LSL#2 .text:000130E8 .text:000130E8 loc_130E8 ; CODE XREF: _dl_load_cache_lookup+534j .text:000130E8 CMP R5, R10 .text:000130EC BLE loc_1311C .text:000130F0 LDR R1, =cache .text:000130F4 LDR R3, [R1] .text:000130F8 ADD R3, R3, #0x14 .text:000130FC LDR R3, [R3,R4] .text:00013100 CMP R3, R8 .text:00013104 BCS loc_13188 .text:00013108 LDR R0, [R11,#var_2C] .text:0001310C ADD R1, R6, R3 .text:00013110 BL _dl_cache_libcmp .text:00013114 CMP R0, #0 .text:00013118 BNE loc_13188 .text:0001311C .text:0001311C loc_1311C ; CODE XREF: _dl_load_cache_lookup+49Cj .text:0001311C LDR R3, =cache .text:00013120 LDR R2, [R3] .text:00013124 ADD R3, R2, #0x10 .text:00013128 LDR R1, [R3,R4] .text:0001312C CMP R1, #3 .text:00013130 CMPNE R1, #1 .text:00013134 BNE loc_13178 .text:00013138 ADD R3, R2, #0x18 .text:0001313C LDR R2, [R3,R4] .text:00013140 CMP R2, R8 .text:00013144 BCS loc_13178 .text:00013148 LDR R3, [R11,#var_30] .text:0001314C LDR R0, =_dl_correct_cache_id .text:00013150 CMP R3, #0 .text:00013154 BEQ loc_13164 .text:00013158 LDR R3, [R0] .text:0001315C CMP R1, R3 .text:00013160 BNE loc_13178 .text:00013164 .text:00013164 loc_13164 ; CODE XREF: _dl_load_cache_lookup+504j .text:00013164 LDR R3, [R0] .text:00013168 ADD R2, R6, R2 .text:0001316C STR R2, [R11,#var_30] .text:00013170 CMP R1, R3 .text:00013174 BEQ loc_13188 .text:00013178 .text:00013178 loc_13178 ; CODE XREF: _dl_load_cache_lookup+4E4j .text:00013178 ; _dl_load_cache_lookup+4F4j ... .text:00013178 ADD R4, R4, #0xC .text:0001317C ADD R5, R5, #1 .text:00013180 CMP R5, R7 .text:00013184 BLE loc_130E8 .text:00013188 .text:00013188 loc_13188 ; CODE XREF: _dl_load_cache_lookup+208j .text:00013188 ; _dl_load_cache_lookup+278j ... .text:00013188 LDR R1, =_dl_debug_mask .text:0001318C LDR R2, [R11,#var_30] .text:00013190 LDR R3, [R1] .text:00013194 CMP R2, #0 .text:00013198 ANDNE R3, R3, #1 .text:0001319C MOVEQ R3, #0 .text:000131A0 CMP R3, #0 .text:000131A4 BEQ loc_131B4 .text:000131A8 LDR R0, =aTryingFileS_0 ; " trying file=%s\n" .text:000131AC MOV R1, R2 .text:000131B0 BL _dl_debug_printf .text:000131B4 .text:000131B4 loc_131B4 ; CODE XREF: _dl_load_cache_lookup+554j .text:000131B4 LDR R0, [R11,#var_30] .text:000131B8 .text:000131B8 loc_131B8 ; CODE XREF: _dl_load_cache_lookup+168j .text:000131B8 B locret_131CC .text:000131B8 ; --------------------------------------------------------------------------- .text:000131BC off_131BC DCD cache ; DATA XREF: _dl_load_cache_lookup+45Cr .text:000131BC ; _dl_load_cache_lookup+4A0r ... .text:000131C0 off_131C0 DCD _dl_correct_cache_id .text:000131C0 ; DATA XREF: _dl_load_cache_lookup+4FCr .text:000131C4 off_131C4 DCD _dl_debug_mask ; DATA XREF: _dl_load_cache_lookup:loc_13188r .text:000131C8 off_131C8 DCD aTryingFileS_0 ; DATA XREF: _dl_load_cache_lookup+558r .text:000131C8 ; " trying file=%s\n" .text:000131CC ; --------------------------------------------------------------------------- .text:000131CC .text:000131CC locret_131CC ; CODE XREF: _dl_load_cache_lookup:loc_131B8j .text:000131CC LDMDB R11, {R4-R11,SP,PC} .text:000131CC ; End of function _dl_load_cache_lookup .text:000131CC .text:000131D0 .text:000131D0 ; =============== S U B R O U T I N E ======================================= .text:000131D0 .text:000131D0 ; Attributes: bp-based frame .text:000131D0 .text:000131D0 EXPORT _dl_unload_cache .text:000131D0 _dl_unload_cache ; CODE XREF: .text:00051454p .text:000131D0 MOV R12, SP .text:000131D4 STMFD SP!, {R4,R11,R12,LR,PC} .text:000131D8 LDR R4, =cache .text:000131DC LDR R0, [R4] .text:000131E0 SUB R11, R12, #4 .text:000131E4 CMP R0, #0 .text:000131E8 CMNNE R0, #1 .text:000131EC LDMEQDB R11, {R4,R11,SP,PC} .text:000131F0 LDR R3, =cachesize .text:000131F4 LDR R1, [R3] .text:000131F8 BL munmap .text:000131FC MOV R3, #0 .text:00013200 STR R3, [R4] .text:00013204 LDMDB R11, {R4,R11,SP,PC} .text:00013204 ; End of function _dl_unload_cache .text:00013204 .text:00013204 ; --------------------------------------------------------------------------- .text:00013208 off_13208 DCD cache ; DATA XREF: _dl_unload_cache+8r .text:0001320C off_1320C DCD cachesize ; DATA XREF: _dl_unload_cache+20r .text:00013210 .text:00013210 ; =============== S U B R O U T I N E ======================================= .text:00013210 .text:00013210 ; Attributes: bp-based frame .text:00013210 .text:00013210 add_dependency ; CODE XREF: _dl_lookup_symbol+39Cp .text:00013210 ; _dl_lookup_versioned_symbol+4ECp .text:00013210 MOV R12, SP .text:00013214 STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:00013218 SUB R11, R12, #4 .text:0001321C MOV R7, #0 .text:00013220 MOV R5, R0 .text:00013224 LDR R3, =0 .text:00013228 MOV R4, R1 .text:0001322C CMP R3, R7 .text:00013230 BEQ loc_13240 .text:00013234 LDR R0, =_dl_load_lock .text:00013238 MOV LR, PC .text:0001323C MOV PC, R3 .text:00013240 .text:00013240 loc_13240 ; CODE XREF: add_dependency+20j .text:00013240 LDR R1, [R5,#0x184] .text:00013244 LDR R3, [R1,R7,LSL#2] .text:00013248 MOV R2, R7 .text:0001324C LDR R8, =0 .text:00013250 B loc_1325C .text:00013254 ; --------------------------------------------------------------------------- .text:00013254 .text:00013254 loc_13254 ; CODE XREF: add_dependency+58j .text:00013254 ADD R2, R2, #1 .text:00013258 LDR R3, [R1,R2,LSL#2] .text:0001325C .text:0001325C loc_1325C ; CODE XREF: add_dependency+40j .text:0001325C CMP R3, #0 .text:00013260 BEQ loc_1326C .text:00013264 CMP R3, R4 .text:00013268 BNE loc_13254 .text:0001326C .text:0001326C loc_1326C ; CODE XREF: add_dependency+50j .text:0001326C LDR R3, [R1,R2,LSL#2] .text:00013270 CMP R3, #0 .text:00013274 BNE loc_13384 .text:00013278 LDR R6, [R5,#0x18C] .text:0001327C MOV R2, R3 .text:00013280 LDR R1, [R5,#0x190] .text:00013284 B loc_1328C .text:00013288 ; --------------------------------------------------------------------------- .text:00013288 .text:00013288 loc_13288 ; CODE XREF: add_dependency+8Cj .text:00013288 ADD R2, R2, #1 .text:0001328C .text:0001328C loc_1328C ; CODE XREF: add_dependency+74j .text:0001328C CMP R2, R6 .text:00013290 BCS loc_132A0 .text:00013294 LDR R3, [R1,R2,LSL#2] .text:00013298 CMP R3, R4 .text:0001329C BNE loc_13288 .text:000132A0 .text:000132A0 loc_132A0 ; CODE XREF: add_dependency+80j .text:000132A0 CMP R2, R6 .text:000132A4 BNE loc_13384 .text:000132A8 LDR R3, =_dl_loaded .text:000132AC LDR R3, [R3] .text:000132B0 CMP R3, #0 .text:000132B4 CMPNE R3, R4 .text:000132B8 BEQ loc_132CC .text:000132BC .text:000132BC loc_132BC ; CODE XREF: add_dependency+B8j .text:000132BC LDR R3, [R3,#0xC] .text:000132C0 CMP R3, #0 .text:000132C4 CMPNE R3, R4 .text:000132C8 BNE loc_132BC .text:000132CC .text:000132CC loc_132CC ; CODE XREF: add_dependency+A8j .text:000132CC CMP R3, #0 .text:000132D0 BEQ loc_13380 .text:000132D4 LDR R1, [R5,#0x188] .text:000132D8 CMP R6, R1 .text:000132DC BCC loc_13308 .text:000132E0 ADD R1, R1, #5 .text:000132E4 STR R1, [R5,#0x188] .text:000132E8 LDR R0, [R5,#0x190] .text:000132EC MOV R1, R1,LSL#2 .text:000132F0 BL realloc .text:000132F4 CMP R0, #0 .text:000132F8 STRNE R0, [R5,#0x190] .text:000132FC LDREQ R3, [R5,#0x188] .text:00013300 SUBEQ R3, R3, #5 .text:00013304 STREQ R3, [R5,#0x188] .text:00013308 .text:00013308 loc_13308 ; CODE XREF: add_dependency+CCj .text:00013308 LDR R3, [R5,#0x188] .text:0001330C CMP R6, R3 .text:00013310 BCS loc_13328 .text:00013314 LDR R3, [R5,#0x18C] .text:00013318 LDR R2, [R5,#0x190] .text:0001331C STR R4, [R2,R3,LSL#2] .text:00013320 ADD R3, R3, #1 .text:00013324 STR R3, [R5,#0x18C] .text:00013328 .text:00013328 loc_13328 ; CODE XREF: add_dependency+100j .text:00013328 LDR R3, [R4,#0x128] .text:0001332C ADD R3, R3, #1 .text:00013330 STR R3, [R4,#0x128] .text:00013334 LDR R2, =_dl_debug_mask .text:00013338 LDR R3, [R2] .text:0001333C TST R3, #0x40 .text:00013340 BEQ loc_13384 .text:00013344 LDR R1, [R4,#4] .text:00013348 LDRB R3, [R1] .text:0001334C CMP R3, #0 .text:00013350 LDREQ R3, =_dl_argv .text:00013354 LDREQ R2, [R3] .text:00013358 LDREQ R1, [R2] .text:0001335C LDR R2, [R5,#4] .text:00013360 LDRB R3, [R2] .text:00013364 CMP R3, #0 .text:00013368 LDREQ R3, =_dl_argv .text:0001336C LDREQ R2, [R3] .text:00013370 LDREQ R2, [R2] .text:00013374 LDR R0, =aFileSNeededB_0 ; "\nfile=%s; needed by %s (relocation dep"... .text:00013378 BL _dl_debug_printf .text:0001337C B loc_13384 .text:00013380 ; --------------------------------------------------------------------------- .text:00013380 .text:00013380 loc_13380 ; CODE XREF: add_dependency+C0j .text:00013380 MOV R7, 0xFFFFFFFF .text:00013384 .text:00013384 loc_13384 ; CODE XREF: add_dependency+64j .text:00013384 ; add_dependency+94j ... .text:00013384 CMP R8, #0 .text:00013388 BEQ loc_13398 .text:0001338C LDR R0, =_dl_load_lock .text:00013390 MOV LR, PC .text:00013394 MOV PC, R8 .text:00013398 .text:00013398 loc_13398 ; CODE XREF: add_dependency+178j .text:00013398 MOV R0, R7 .text:0001339C LDMDB R11, {R4-R8,R11,SP,PC} .text:0001339C ; End of function add_dependency .text:0001339C .text:0001339C ; --------------------------------------------------------------------------- .text:000133A0 off_133A0 DCD 0 ; DATA XREF: add_dependency+14r .text:000133A4 off_133A4 DCD _dl_load_lock ; DATA XREF: add_dependency+24r .text:000133A4 ; add_dependency+17Cr .text:000133A8 dword_133A8 DCD 0 ; DATA XREF: add_dependency+3Cr .text:000133AC off_133AC DCD _dl_loaded ; DATA XREF: add_dependency+98r .text:000133B0 off_133B0 DCD _dl_debug_mask ; DATA XREF: add_dependency+124r .text:000133B4 off_133B4 DCD _dl_argv ; DATA XREF: add_dependency+140r .text:000133B4 ; add_dependency+158r .text:000133B8 off_133B8 DCD aFileSNeededB_0 ; DATA XREF: add_dependency+164r .text:000133B8 ; "\nfile=%s; needed by %s (relocation dep"... .text:000133BC .text:000133BC ; =============== S U B R O U T I N E ======================================= .text:000133BC .text:000133BC ; Attributes: bp-based frame .text:000133BC .text:000133BC EXPORT _dl_lookup_symbol .text:000133BC _dl_lookup_symbol ; CODE XREF: do_dlsym+38p .text:000133BC ; .text:000522E0p ... .text:000133BC .text:000133BC var_94 = -0x94 .text:000133BC var_90 = -0x90 .text:000133BC var_8C = -0x8C .text:000133BC var_88 = -0x88 .text:000133BC var_84 = -0x84 .text:000133BC var_80 = -0x80 .text:000133BC var_7C = -0x7C .text:000133BC var_78 = -0x78 .text:000133BC var_74 = -0x74 .text:000133BC var_70 = -0x70 .text:000133BC var_6C = -0x6C .text:000133BC var_68 = -0x68 .text:000133BC var_64 = -0x64 .text:000133BC var_60 = -0x60 .text:000133BC var_5C = -0x5C .text:000133BC var_58 = -0x58 .text:000133BC var_54 = -0x54 .text:000133BC var_50 = -0x50 .text:000133BC var_4C = -0x4C .text:000133BC var_48 = -0x48 .text:000133BC var_44 = -0x44 .text:000133BC var_40 = -0x40 .text:000133BC var_38 = -0x38 .text:000133BC var_34 = -0x34 .text:000133BC var_30 = -0x30 .text:000133BC var_2C = -0x2C .text:000133BC arg_0 = 4 .text:000133BC arg_4 = 8 .text:000133BC .text:000133BC MOV R12, SP .text:000133C0 STMFD SP!, {R4-R12,LR,PC} .text:000133C4 SUB R11, R12, #4 .text:000133C8 SUB SP, SP, #0x6C .text:000133CC STR R0, [R11,#var_44] .text:000133D0 STR R1, [R11,#var_48] .text:000133D4 STR R2, [R11,#var_4C] .text:000133D8 STR R3, [R11,#var_50] .text:000133DC .text:000133DC loc_133DC ; CODE XREF: _dl_lookup_symbol+3B0j .text:000133DC LDR R0, [R11,#var_48] .text:000133E0 MOV R1, #0 .text:000133E4 STR R1, [R11,#var_54] .text:000133E8 CMP R0, #0 .text:000133EC LDRNE R2, [R0,#4] .text:000133F0 STRNE R2, [R11,#var_54] .text:000133F4 LDR R4, [R11,#var_44] .text:000133F8 LDRB R3, [R4] .text:000133FC MOV R0, #0 .text:00013400 STR R0, [R11,#var_58] .text:00013404 CMP R3, R0 .text:00013408 BEQ loc_134B0 .text:0001340C LDRB R3, [R4,#1] .text:00013410 MOV R1, R4 .text:00013414 LDRB R2, [R1],#1 .text:00013418 CMP R3, R0 .text:0001341C STR R2, [R11,#var_58] .text:00013420 BEQ loc_134B0 .text:00013424 LDRB R3, [R4,#1] .text:00013428 LDR R4, [R11,#var_58] .text:0001342C LDRB R2, [R1,#1]! .text:00013430 ADD R4, R3, R4,LSL#4 .text:00013434 CMP R2, R0 .text:00013438 STR R4, [R11,#var_58] .text:0001343C BEQ loc_134B0 .text:00013440 LDRB R3, [R1] .text:00013444 LDRB R2, [R1,#1]! .text:00013448 ADD R4, R3, R4,LSL#4 .text:0001344C CMP R2, R0 .text:00013450 STR R4, [R11,#var_58] .text:00013454 BEQ loc_134B0 .text:00013458 LDRB R3, [R1] .text:0001345C LDRB R2, [R1,#1]! .text:00013460 ADD R4, R3, R4,LSL#4 .text:00013464 CMP R2, R0 .text:00013468 STR R4, [R11,#var_58] .text:0001346C BEQ loc_134B0 .text:00013470 LDRB R3, [R1] .text:00013474 LDRB R2, [R1,#1]! .text:00013478 ADD R4, R3, R4,LSL#4 .text:0001347C CMP R2, R0 .text:00013480 STR R4, [R11,#var_58] .text:00013484 BEQ loc_134B0 .text:00013488 .text:00013488 loc_13488 ; CODE XREF: _dl_lookup_symbol+F0j .text:00013488 LDRB R3, [R1] .text:0001348C LDR R0, [R11,#var_58] .text:00013490 ADD R0, R3, R0,LSL#4 .text:00013494 AND R2, R0, #0xF0000000 .text:00013498 EOR R0, R0, R2 .text:0001349C LDRB R3, [R1,#1]! .text:000134A0 EOR R0, R0, R2,LSR#24 .text:000134A4 STR R0, [R11,#var_58] .text:000134A8 CMP R3, #0 .text:000134AC BNE loc_13488 .text:000134B0 .text:000134B0 loc_134B0 ; CODE XREF: _dl_lookup_symbol+4Cj .text:000134B0 ; _dl_lookup_symbol+64j ... .text:000134B0 LDR R1, =_dl_num_relocations .text:000134B4 LDR R3, [R1] .text:000134B8 ADD R3, R3, #1 .text:000134BC STR R3, [R1] .text:000134C0 SUB R4, R11, #-var_30 .text:000134C4 MOV R3, #0 .text:000134C8 MOV R2, #0 .text:000134CC STMIA R4, {R2,R3} .text:000134D0 LDR R0, [R11,#var_50] .text:000134D4 LDR R1, [R11,#arg_0] .text:000134D8 STR R0, [R11,#var_5C] .text:000134DC CMP R1, #0x14 .text:000134E0 MOVNE R1, #0 .text:000134E4 MOVEQ R1, #1 .text:000134E8 STR R1, [R11,#var_60] .text:000134EC LDR R2, [R11,#arg_0] .text:000134F0 LDR R3, [R0] .text:000134F4 CMP R2, #0x16 .text:000134F8 MOVNE R2, #0 .text:000134FC MOVEQ R2, #1 .text:00013500 STR R2, [R11,#var_64] .text:00013504 CMP R3, #0 .text:00013508 BEQ loc_13784 .text:0001350C MOV R10, R4 .text:00013510 .text:00013510 loc_13510 ; CODE XREF: _dl_lookup_symbol+3C4j .text:00013510 LDR R3, [R11,#var_4C] .text:00013514 LDR R3, [R3] .text:00013518 STR R3, [R11,#var_68] .text:0001351C LDR R4, [R11,#var_5C] .text:00013520 LDR R3, [R4] .text:00013524 LDR R0, [R3] .text:00013528 MOV R1, #0 .text:0001352C STR R1, [R11,#var_6C] .text:00013530 STR R0, [R11,#var_70] .text:00013534 LDR R3, [R3,#4] .text:00013538 STR R3, [R11,#var_74] .text:0001353C .text:0001353C loc_1353C ; CODE XREF: _dl_lookup_symbol+350j .text:0001353C LDR R2, [R11,#var_60] .text:00013540 MOV R12, #0 .text:00013544 LDR R3, [R11,#var_6C] .text:00013548 MOV R9, R12 .text:0001354C LDR R4, [R11,#var_70] .text:00013550 CMP R2, R12 .text:00013554 LDR R6, [R4,R3,LSL#2] .text:00013558 BEQ loc_13568 .text:0001355C LDRB R3, [R6,#0x12C] .text:00013560 TST R3, #3 .text:00013564 BEQ loc_136F8 .text:00013568 .text:00013568 loc_13568 ; CODE XREF: _dl_lookup_symbol+19Cj .text:00013568 LDR R3, =_dl_debug_mask .text:0001356C LDR R2, [R3] .text:00013570 TST R2, #8 .text:00013574 BEQ loc_135A4 .text:00013578 LDR R2, [R6,#4] .text:0001357C LDRB R3, [R2] .text:00013580 LDR R0, =aSymbolSLookupI ; "symbol=%s; lookup in file=%s\n" .text:00013584 CMP R3, #0 .text:00013588 LDREQ R3, =_dl_argv .text:0001358C LDREQ R2, [R3] .text:00013590 LDREQ R2, [R2] .text:00013594 STR R12, [R11,#var_90] .text:00013598 LDR R1, [R11,#var_44] .text:0001359C BL _dl_debug_printf .text:000135A0 LDR R12, [R11,#var_90] .text:000135A4 .text:000135A4 loc_135A4 ; CODE XREF: _dl_lookup_symbol+1B8j .text:000135A4 LDR R1, [R6,#0x11C] .text:000135A8 ADD R2, R6, #0x2C .text:000135AC LDMIA R2, {R2,R3} .text:000135B0 LDR R2, [R2,#4] .text:000135B4 LDR R8, [R3,#4] .text:000135B8 STR R2, [R11,#var_78] .text:000135BC LDR R7, [R6,#0x144] .text:000135C0 STR R12, [R11,#var_90] .text:000135C4 LDR R0, [R11,#var_58] .text:000135C8 BL __umodsi3 .text:000135CC LDR R3, [R6,#0x120] .text:000135D0 LDR R5, [R3,R0,LSL#2] .text:000135D4 LDR R12, [R11,#var_90] .text:000135D8 CMP R5, #0 .text:000135DC BEQ loc_1369C .text:000135E0 .text:000135E0 loc_135E0 ; CODE XREF: _dl_lookup_symbol+2DCj .text:000135E0 MOV R2, R5,LSL#4 .text:000135E4 ADD R4, R8, R2 .text:000135E8 LDR R3, [R4,#4] .text:000135EC CMP R3, #0 .text:000135F0 BEQ loc_1368C .text:000135F4 LDR R0, [R11,#var_64] .text:000135F8 CMP R0, #0 .text:000135FC BEQ loc_1360C .text:00013600 LDR R3, [R4,#0xC] .text:00013604 MOVS R3, R3,LSR#16 .text:00013608 BEQ loc_1368C .text:0001360C .text:0001360C loc_1360C ; CODE XREF: _dl_lookup_symbol+240j .text:0001360C LDRB R3, [R4,#0xC] .text:00013610 AND R3, R3, #0xF .text:00013614 CMP R3, #2 .text:00013618 BHI loc_1368C .text:0001361C LDR R1, [R11,#var_68] .text:00013620 CMP R4, R1 .text:00013624 BEQ loc_1364C .text:00013628 LDR R0, [R8,R2] .text:0001362C STR R12, [R11,#var_90] .text:00013630 LDR R2, [R11,#var_78] .text:00013634 LDR R1, [R11,#var_44] .text:00013638 ADD R0, R2, R0 .text:0001363C BL strcmp .text:00013640 CMP R0, #0 .text:00013644 LDR R12, [R11,#var_90] .text:00013648 BNE loc_1368C .text:0001364C .text:0001364C loc_1364C ; CODE XREF: _dl_lookup_symbol+268j .text:0001364C CMP R7, #0 .text:00013650 BEQ loc_136B0 .text:00013654 MOV R3, R5,LSL#1 .text:00013658 LDRB R1, [R3,R7] .text:0001365C ADD R3, R3, R7 .text:00013660 LDRB R2, [R3,#1] .text:00013664 ORR R2, R1, R2,LSL#8 .text:00013668 MOV R3, R2,LSL#17 .text:0001366C MOV R3, R3,LSR#17 .text:00013670 CMP R3, #2 .text:00013674 BLS loc_136B0 .text:00013678 TST R2, #0x8000 .text:0001367C BNE loc_1368C .text:00013680 ADD R9, R9, #1 .text:00013684 CMP R9, #1 .text:00013688 MOVEQ R12, R4 .text:0001368C .text:0001368C loc_1368C ; CODE XREF: _dl_lookup_symbol+234j .text:0001368C ; _dl_lookup_symbol+24Cj ... .text:0001368C LDR R3, [R6,#0x124] .text:00013690 LDR R5, [R3,R5,LSL#2] .text:00013694 CMP R5, #0 .text:00013698 BNE loc_135E0 .text:0001369C .text:0001369C loc_1369C ; CODE XREF: _dl_lookup_symbol+220j .text:0001369C CMP R9, #1 .text:000136A0 MOVEQ R4, R12 .text:000136A4 MOVNE R4, #0 .text:000136A8 CMP R4, #0 .text:000136AC BEQ loc_136F8 .text:000136B0 .text:000136B0 loc_136B0 ; CODE XREF: _dl_lookup_symbol+294j .text:000136B0 ; _dl_lookup_symbol+2B8j .text:000136B0 LDRB R3, [R4,#0xC] .text:000136B4 MOV R3, R3,LSR#4 .text:000136B8 CMP R3, #1 .text:000136BC BEQ loc_136E8 .text:000136C0 CMP R3, #2 .text:000136C4 BNE loc_136F8 .text:000136C8 LDR R3, =_dl_dynamic_weak .text:000136CC LDR R2, [R3] .text:000136D0 CMP R2, #0 .text:000136D4 BEQ loc_136E8 .text:000136D8 LDR R3, [R10] .text:000136DC CMP R3, #0 .text:000136E0 STMEQIA R10, {R4,R6} .text:000136E4 B loc_136F8 .text:000136E8 ; --------------------------------------------------------------------------- .text:000136E8 .text:000136E8 loc_136E8 ; CODE XREF: _dl_lookup_symbol+300j .text:000136E8 ; _dl_lookup_symbol+318j .text:000136E8 STR R4, [R10] .text:000136EC MOV R3, #1 .text:000136F0 STR R6, [R10,#4] .text:000136F4 B loc_13714 .text:000136F8 ; --------------------------------------------------------------------------- .text:000136F8 .text:000136F8 loc_136F8 ; CODE XREF: _dl_lookup_symbol+1A8j .text:000136F8 ; _dl_lookup_symbol+2F0j ... .text:000136F8 LDR R3, [R11,#var_6C] .text:000136FC LDR R4, [R11,#var_74] .text:00013700 ADD R3, R3, #1 .text:00013704 CMP R3, R4 .text:00013708 STR R3, [R11,#var_6C] .text:0001370C BCC loc_1353C .text:00013710 MOV R3, #0 .text:00013714 .text:00013714 loc_13714 ; CODE XREF: _dl_lookup_symbol+338j .text:00013714 CMP R3, #0 .text:00013718 BEQ loc_13770 .text:0001371C LDR R1, [R10,#4] .text:00013720 LDRB R3, [R1,#0x12C] .text:00013724 AND R3, R3, #0x13 .text:00013728 CMP R3, #0x12 .text:0001372C BNE loc_13784 .text:00013730 LDR R0, [R11,#arg_4] .text:00013734 LDR R2, [R11,#var_48] .text:00013738 CMP R0, #0 .text:0001373C MOVNE R3, #0 .text:00013740 MOVEQ R3, #1 .text:00013744 CMP R2, R1 .text:00013748 MOVEQ R3, #0 .text:0001374C CMP R3, #0 .text:00013750 BEQ loc_13784 .text:00013754 MOV R0, R2 .text:00013758 BL add_dependency .text:0001375C CMP R0, #0 .text:00013760 BGE loc_13784 .text:00013764 MOV R3, #0 .text:00013768 STR R3, [R11,#arg_4] .text:0001376C B loc_133DC .text:00013770 ; --------------------------------------------------------------------------- .text:00013770 .text:00013770 loc_13770 ; CODE XREF: _dl_lookup_symbol+35Cj .text:00013770 LDR R4, [R11,#var_5C] .text:00013774 LDR R3, [R4,#4]! .text:00013778 CMP R3, #0 .text:0001377C STR R4, [R11,#var_5C] .text:00013780 BNE loc_13510 .text:00013784 .text:00013784 loc_13784 ; CODE XREF: _dl_lookup_symbol+14Cj .text:00013784 ; _dl_lookup_symbol+370j ... .text:00013784 LDR R3, [R11,#var_30] .text:00013788 CMP R3, #0 .text:0001378C BNE loc_13888 .text:00013790 LDR R0, [R11,#var_4C] .text:00013794 LDR R3, [R0] .text:00013798 CMP R3, #0 .text:0001379C BEQ loc_137B0 .text:000137A0 LDRB R3, [R3,#0xC] .text:000137A4 MOV R3, R3,LSR#4 .text:000137A8 CMP R3, #2 .text:000137AC BEQ loc_13858 .text:000137B0 .text:000137B0 loc_137B0 ; CODE XREF: _dl_lookup_symbol+3E0j .text:000137B0 LDR R1, [R11,#var_54] .text:000137B4 CMP R1, #0 .text:000137B8 BEQ loc_137C8 .text:000137BC LDRB R3, [R1] .text:000137C0 CMP R3, #0 .text:000137C4 BNE loc_137E4 .text:000137C8 .text:000137C8 loc_137C8 ; CODE XREF: _dl_lookup_symbol+3FCj .text:000137C8 LDR R3, =_dl_argv .text:000137CC LDR R2, [R3] .text:000137D0 LDR R1, [R2] .text:000137D4 LDR R7, =aMainProgram ; "<main program>" .text:000137D8 CMP R1, #0 .text:000137DC MOVNE R7, R1 .text:000137E0 B loc_137E8 .text:000137E4 ; --------------------------------------------------------------------------- .text:000137E4 .text:000137E4 loc_137E4 ; CODE XREF: _dl_lookup_symbol+408j .text:000137E4 LDR R7, [R11,#var_54] .text:000137E8 .text:000137E8 loc_137E8 ; CODE XREF: _dl_lookup_symbol+424j .text:000137E8 LDR R2, [R11,#var_44] .text:000137EC STR R2, [R11,#var_34] .text:000137F0 MOV R5, #1 .text:000137F4 MOV R4, #0 .text:000137F8 LDR R3, =undefined_msg ; "undefined symbol: " .text:000137FC SUB R6, R11, #-var_38 .text:00013800 STR R3, [R11,#var_38] .text:00013804 .text:00013804 loc_13804 ; CODE XREF: _dl_lookup_symbol+45Cj .text:00013804 LDR R0, [R6,R4,LSL#2] .text:00013808 ADD R4, R4, #1 .text:0001380C BL strlen .text:00013810 ADD R5, R5, R0 .text:00013814 CMP R4, #1 .text:00013818 BLS loc_13804 .text:0001381C ADD R3, R5, #3 .text:00013820 BIC R3, R3, #3 .text:00013824 RSB SP, R3, SP .text:00013828 ADD R5, SP, #0x94+var_90 .text:0001382C MOV R0, R5 .text:00013830 MOV R4, #0 .text:00013834 .text:00013834 loc_13834 ; CODE XREF: _dl_lookup_symbol+488j .text:00013834 LDR R1, [R6,R4,LSL#2] .text:00013838 ADD R4, R4, #1 .text:0001383C BL stpcpy .text:00013840 CMP R4, #1 .text:00013844 BLS loc_13834 .text:00013848 MOV R0, #0 .text:0001384C MOV R1, R7 .text:00013850 MOV R2, R5 .text:00013854 BL _dl_signal_cerror .text:00013858 .text:00013858 loc_13858 ; CODE XREF: _dl_lookup_symbol+3F0j .text:00013858 MOV R3, #0 .text:0001385C LDR R4, [R11,#var_4C] .text:00013860 MOV R0, R3 .text:00013864 STR R3, [R4] .text:00013868 B locret_13BD0 .text:00013868 ; --------------------------------------------------------------------------- .text:0001386C off_1386C DCD _dl_num_relocations ; DATA XREF: _dl_lookup_symbol:loc_134B0r .text:00013870 off_13870 DCD _dl_debug_mask ; DATA XREF: _dl_lookup_symbol:loc_13568r .text:00013874 off_13874 DCD aSymbolSLookupI ; DATA XREF: _dl_lookup_symbol+1C4r .text:00013874 ; "symbol=%s; lookup in file=%s\n" .text:00013878 off_13878 DCD _dl_argv ; DATA XREF: _dl_lookup_symbol+1CCr .text:00013878 ; _dl_lookup_symbol:loc_137C8r .text:0001387C off_1387C DCD _dl_dynamic_weak ; DATA XREF: _dl_lookup_symbol+30Cr .text:00013880 off_13880 DCD aMainProgram ; DATA XREF: _dl_lookup_symbol+418r .text:00013880 ; "<main program>" .text:00013884 off_13884 DCD undefined_msg ; DATA XREF: _dl_lookup_symbol+43Cr .text:00013884 ; "undefined symbol: " .text:00013888 ; --------------------------------------------------------------------------- .text:00013888 .text:00013888 loc_13888 ; CODE XREF: _dl_lookup_symbol+3D0j .text:00013888 LDR R0, [R11,#var_4C] .text:0001388C LDR R3, [R0] .text:00013890 MOV R4, #0 .text:00013894 CMP R3, R4 .text:00013898 BEQ loc_138B0 .text:0001389C LDRB R3, [R3,#0xD] .text:000138A0 AND R3, R3, #3 .text:000138A4 CMP R3, #3 .text:000138A8 MOVNE R4, #0 .text:000138AC MOVEQ R4, #1 .text:000138B0 .text:000138B0 loc_138B0 ; CODE XREF: _dl_lookup_symbol+4DCj .text:000138B0 LDR R2, =_dl_debug_mask .text:000138B4 LDR R3, [R2] .text:000138B8 TST R3, #4 .text:000138BC BEQ loc_1393C .text:000138C0 LDR R1, [R11,#var_54] .text:000138C4 CMP R1, #0 .text:000138C8 BEQ loc_138D8 .text:000138CC LDRB R3, [R1] .text:000138D0 CMP R3, #0 .text:000138D4 BNE loc_138F4 .text:000138D8 .text:000138D8 loc_138D8 ; CODE XREF: _dl_lookup_symbol+50Cj .text:000138D8 LDR R3, =_dl_argv .text:000138DC LDR R2, [R3] .text:000138E0 LDR R1, [R2] .text:000138E4 LDR LR, =aMainProgram ; "<main program>" .text:000138E8 CMP R1, #0 .text:000138EC MOVNE LR, R1 .text:000138F0 B loc_138F8 .text:000138F4 ; --------------------------------------------------------------------------- .text:000138F4 .text:000138F4 loc_138F4 ; CODE XREF: _dl_lookup_symbol+518j .text:000138F4 LDR LR, [R11,#var_54] .text:000138F8 .text:000138F8 loc_138F8 ; CODE XREF: _dl_lookup_symbol+534j .text:000138F8 LDR R3, [R11,#var_2C] .text:000138FC LDR R3, [R3,#4] .text:00013900 LDRB R2, [R3] .text:00013904 CMP R2, #0 .text:00013908 MOVNE R2, R3 .text:0001390C LDREQ R3, =_dl_argv .text:00013910 LDREQ R2, [R3] .text:00013914 LDREQ R2, [R2] .text:00013918 LDR R3, [R11,#var_44] .text:0001391C STR R3, [SP,#0x94+var_94] .text:00013920 LDR R12, =aNormal ; "normal" .text:00013924 MOV R1, LR .text:00013928 LDR R3, =aProtected ; "protected" .text:0001392C CMP R4, #0 .text:00013930 LDR R0, =aBindingFileSTo ; "binding file %s to %s: %s symbol `%s'\n" .text:00013934 MOVEQ R3, R12 .text:00013938 BL _dl_debug_printf .text:0001393C .text:0001393C loc_1393C ; CODE XREF: _dl_lookup_symbol+500j .text:0001393C CMP R4, #0 .text:00013940 LDREQ R3, [R11,#var_30] .text:00013944 LDREQ R4, [R11,#var_4C] .text:00013948 STREQ R3, [R4] .text:0001394C BEQ loc_13B9C .text:00013950 SUB R2, R11, #-var_40 .text:00013954 MOV R1, #0 .text:00013958 MOV R0, #0 .text:0001395C STMIA R2, {R0,R1} .text:00013960 LDR R1, [R11,#var_50] .text:00013964 STR R1, [R11,#var_5C] .text:00013968 LDR R3, [R1] .text:0001396C MOV R12, R2 .text:00013970 CMP R3, #0 .text:00013974 BEQ loc_13B74 .text:00013978 .text:00013978 loc_13978 ; CODE XREF: _dl_lookup_symbol+7B4j .text:00013978 LDR R2, [R11,#var_4C] .text:0001397C LDR R2, [R2] .text:00013980 STR R2, [R11,#var_7C] .text:00013984 LDR R4, [R11,#var_5C] .text:00013988 LDR R3, [R4] .text:0001398C LDR R0, [R3] .text:00013990 MOV R1, #0 .text:00013994 STR R1, [R11,#var_80] .text:00013998 STR R0, [R11,#var_84] .text:0001399C LDR R3, [R3,#4] .text:000139A0 STR R3, [R11,#var_88] .text:000139A4 .text:000139A4 loc_139A4 ; CODE XREF: _dl_lookup_symbol+794j .text:000139A4 LDR R2, =_dl_debug_mask .text:000139A8 LDR R3, [R2] .text:000139AC MOV R9, #0 .text:000139B0 LDR R4, [R11,#var_84] .text:000139B4 TST R3, #8 .text:000139B8 LDR R3, [R11,#var_80] .text:000139BC MOV R10, R9 .text:000139C0 LDR R6, [R4,R3,LSL#2] .text:000139C4 BEQ loc_139F4 .text:000139C8 LDR R2, [R6,#4] .text:000139CC LDRB R3, [R2] .text:000139D0 LDR R0, =aSymbolSLookupI ; "symbol=%s; lookup in file=%s\n" .text:000139D4 CMP R3, R9 .text:000139D8 LDREQ R3, =_dl_argv .text:000139DC LDREQ R2, [R3] .text:000139E0 LDREQ R2, [R2] .text:000139E4 STR R12, [R11,#var_90] .text:000139E8 LDR R1, [R11,#var_44] .text:000139EC BL _dl_debug_printf .text:000139F0 LDR R12, [R11,#var_90] .text:000139F4 .text:000139F4 loc_139F4 ; CODE XREF: _dl_lookup_symbol+608j .text:000139F4 LDR R1, [R6,#0x11C] .text:000139F8 ADD R2, R6, #0x2C .text:000139FC LDMIA R2, {R2,R3} .text:00013A00 LDR R2, [R2,#4] .text:00013A04 LDR R8, [R3,#4] .text:00013A08 STR R2, [R11,#var_8C] .text:00013A0C LDR R7, [R6,#0x144] .text:00013A10 STR R12, [R11,#var_90] .text:00013A14 LDR R0, [R11,#var_58] .text:00013A18 BL __umodsi3 .text:00013A1C LDR R3, [R6,#0x120] .text:00013A20 LDR R5, [R3,R0,LSL#2] .text:00013A24 LDR R12, [R11,#var_90] .text:00013A28 CMP R5, #0 .text:00013A2C BEQ loc_13AE0 .text:00013A30 .text:00013A30 loc_13A30 ; CODE XREF: _dl_lookup_symbol+720j .text:00013A30 MOV R2, R5,LSL#4 .text:00013A34 ADD R4, R8, R2 .text:00013A38 LDR R3, [R4,#4] .text:00013A3C CMP R3, #0 .text:00013A40 BEQ loc_13AD0 .text:00013A44 LDR R3, [R4,#0xC] .text:00013A48 MOVS R3, R3,LSR#16 .text:00013A4C BEQ loc_13AD0 .text:00013A50 LDRB R3, [R4,#0xC] .text:00013A54 AND R3, R3, #0xF .text:00013A58 CMP R3, #2 .text:00013A5C BHI loc_13AD0 .text:00013A60 LDR R0, [R11,#var_7C] .text:00013A64 CMP R4, R0 .text:00013A68 BEQ loc_13A90 .text:00013A6C LDR R0, [R8,R2] .text:00013A70 STR R12, [R11,#var_90] .text:00013A74 LDR R2, [R11,#var_8C] .text:00013A78 LDR R1, [R11,#var_44] .text:00013A7C ADD R0, R2, R0 .text:00013A80 BL strcmp .text:00013A84 CMP R0, #0 .text:00013A88 LDR R12, [R11,#var_90] .text:00013A8C BNE loc_13AD0 .text:00013A90 .text:00013A90 loc_13A90 ; CODE XREF: _dl_lookup_symbol+6ACj .text:00013A90 CMP R7, #0 .text:00013A94 BEQ loc_13AF4 .text:00013A98 MOV R3, R5,LSL#1 .text:00013A9C LDRB R1, [R3,R7] .text:00013AA0 ADD R3, R3, R7 .text:00013AA4 LDRB R2, [R3,#1] .text:00013AA8 ORR R2, R1, R2,LSL#8 .text:00013AAC MOV R3, R2,LSL#17 .text:00013AB0 MOV R3, R3,LSR#17 .text:00013AB4 CMP R3, #2 .text:00013AB8 BLS loc_13AF4 .text:00013ABC TST R2, #0x8000 .text:00013AC0 BNE loc_13AD0 .text:00013AC4 ADD R10, R10, #1 .text:00013AC8 CMP R10, #1 .text:00013ACC MOVEQ R9, R4 .text:00013AD0 .text:00013AD0 loc_13AD0 ; CODE XREF: _dl_lookup_symbol+684j .text:00013AD0 ; _dl_lookup_symbol+690j ... .text:00013AD0 LDR R3, [R6,#0x124] .text:00013AD4 LDR R5, [R3,R5,LSL#2] .text:00013AD8 CMP R5, #0 .text:00013ADC BNE loc_13A30 .text:00013AE0 .text:00013AE0 loc_13AE0 ; CODE XREF: _dl_lookup_symbol+670j .text:00013AE0 CMP R10, #1 .text:00013AE4 MOVEQ R4, R9 .text:00013AE8 MOVNE R4, #0 .text:00013AEC CMP R4, #0 .text:00013AF0 BEQ loc_13B3C .text:00013AF4 .text:00013AF4 loc_13AF4 ; CODE XREF: _dl_lookup_symbol+6D8j .text:00013AF4 ; _dl_lookup_symbol+6FCj .text:00013AF4 LDRB R3, [R4,#0xC] .text:00013AF8 MOV R3, R3,LSR#4 .text:00013AFC CMP R3, #1 .text:00013B00 BEQ loc_13B2C .text:00013B04 CMP R3, #2 .text:00013B08 BNE loc_13B3C .text:00013B0C LDR R3, =_dl_dynamic_weak .text:00013B10 LDR R2, [R3] .text:00013B14 CMP R2, #0 .text:00013B18 BEQ loc_13B2C .text:00013B1C LDR R3, [R12] .text:00013B20 CMP R3, #0 .text:00013B24 STMEQIA R12, {R4,R6} .text:00013B28 B loc_13B3C .text:00013B2C ; --------------------------------------------------------------------------- .text:00013B2C .text:00013B2C loc_13B2C ; CODE XREF: _dl_lookup_symbol+744j .text:00013B2C ; _dl_lookup_symbol+75Cj .text:00013B2C STR R4, [R12] .text:00013B30 MOV R3, #1 .text:00013B34 STR R6, [R12,#4] .text:00013B38 B loc_13B58 .text:00013B3C ; --------------------------------------------------------------------------- .text:00013B3C .text:00013B3C loc_13B3C ; CODE XREF: _dl_lookup_symbol+734j .text:00013B3C ; _dl_lookup_symbol+74Cj ... .text:00013B3C LDR R3, [R11,#var_80] .text:00013B40 LDR R4, [R11,#var_88] .text:00013B44 ADD R3, R3, #1 .text:00013B48 CMP R3, R4 .text:00013B4C STR R3, [R11,#var_80] .text:00013B50 BCC loc_139A4 .text:00013B54 MOV R3, #0 .text:00013B58 .text:00013B58 loc_13B58 ; CODE XREF: _dl_lookup_symbol+77Cj .text:00013B58 CMP R3, #0 .text:00013B5C BNE loc_13B74 .text:00013B60 LDR R0, [R11,#var_5C] .text:00013B64 LDR R3, [R0,#4]! .text:00013B68 CMP R3, #0 .text:00013B6C STR R0, [R11,#var_5C] .text:00013B70 BNE loc_13978 .text:00013B74 .text:00013B74 loc_13B74 ; CODE XREF: _dl_lookup_symbol+5B8j .text:00013B74 ; _dl_lookup_symbol+7A0j .text:00013B74 LDR R3, [R11,#var_40] .text:00013B78 CMP R3, #0 .text:00013B7C BEQ loc_13B90 .text:00013B80 LDR R3, [R12,#4] .text:00013B84 LDR R1, [R11,#var_48] .text:00013B88 CMP R3, R1 .text:00013B8C BNE loc_13BC8 .text:00013B90 .text:00013B90 loc_13B90 ; CODE XREF: _dl_lookup_symbol+7C0j .text:00013B90 LDR R3, [R11,#var_30] .text:00013B94 LDR R2, [R11,#var_4C] .text:00013B98 STR R3, [R2] .text:00013B9C .text:00013B9C loc_13B9C ; CODE XREF: _dl_lookup_symbol+590j .text:00013B9C LDR R2, [R11,#var_2C] .text:00013BA0 LDR R0, [R2] .text:00013BA4 B locret_13BD0 .text:00013BA4 ; --------------------------------------------------------------------------- .text:00013BA8 off_13BA8 DCD _dl_debug_mask ; DATA XREF: _dl_lookup_symbol:loc_138B0r .text:00013BA8 ; _dl_lookup_symbol:loc_139A4r .text:00013BAC off_13BAC DCD _dl_argv ; DATA XREF: _dl_lookup_symbol:loc_138D8r .text:00013BAC ; _dl_lookup_symbol+550r ... .text:00013BB0 off_13BB0 DCD aMainProgram ; DATA XREF: _dl_lookup_symbol+528r .text:00013BB0 ; "<main program>" .text:00013BB4 off_13BB4 DCD aNormal ; DATA XREF: _dl_lookup_symbol+564r .text:00013BB4 ; "normal" .text:00013BB8 off_13BB8 DCD aProtected ; DATA XREF: _dl_lookup_symbol+56Cr .text:00013BB8 ; "protected" .text:00013BBC off_13BBC DCD aBindingFileSTo ; DATA XREF: _dl_lookup_symbol+574r .text:00013BBC ; "binding file %s to %s: %s symbol `%s'\n" .text:00013BC0 off_13BC0 DCD aSymbolSLookupI ; DATA XREF: _dl_lookup_symbol+614r .text:00013BC0 ; "symbol=%s; lookup in file=%s\n" .text:00013BC4 off_13BC4 DCD _dl_dynamic_weak ; DATA XREF: _dl_lookup_symbol+750r .text:00013BC8 ; --------------------------------------------------------------------------- .text:00013BC8 .text:00013BC8 loc_13BC8 ; CODE XREF: _dl_lookup_symbol+7D0j .text:00013BC8 LDR R3, [R11,#var_48] .text:00013BCC LDR R0, [R3] .text:00013BD0 .text:00013BD0 locret_13BD0 ; CODE XREF: _dl_lookup_symbol+4ACj .text:00013BD0 ; _dl_lookup_symbol+7E8j .text:00013BD0 LDMDB R11, {R4-R11,SP,PC} .text:00013BD0 ; End of function _dl_lookup_symbol .text:00013BD0 .text:00013BD4 .text:00013BD4 ; =============== S U B R O U T I N E ======================================= .text:00013BD4 .text:00013BD4 ; Attributes: bp-based frame .text:00013BD4 .text:00013BD4 EXPORT _dl_lookup_symbol_skip .text:00013BD4 _dl_lookup_symbol_skip .text:00013BD4 .text:00013BD4 var_AC = -0xAC .text:00013BD4 var_A8 = -0xA8 .text:00013BD4 var_A4 = -0xA4 .text:00013BD4 var_A0 = -0xA0 .text:00013BD4 var_9C = -0x9C .text:00013BD4 var_98 = -0x98 .text:00013BD4 var_94 = -0x94 .text:00013BD4 var_90 = -0x90 .text:00013BD4 var_8C = -0x8C .text:00013BD4 var_88 = -0x88 .text:00013BD4 var_84 = -0x84 .text:00013BD4 var_80 = -0x80 .text:00013BD4 var_7C = -0x7C .text:00013BD4 var_78 = -0x78 .text:00013BD4 var_74 = -0x74 .text:00013BD4 var_70 = -0x70 .text:00013BD4 var_6C = -0x6C .text:00013BD4 var_68 = -0x68 .text:00013BD4 var_64 = -0x64 .text:00013BD4 var_60 = -0x60 .text:00013BD4 var_5C = -0x5C .text:00013BD4 var_58 = -0x58 .text:00013BD4 var_54 = -0x54 .text:00013BD4 var_50 = -0x50 .text:00013BD4 var_4C = -0x4C .text:00013BD4 var_48 = -0x48 .text:00013BD4 var_44 = -0x44 .text:00013BD4 var_40 = -0x40 .text:00013BD4 var_3C = -0x3C .text:00013BD4 var_38 = -0x38 .text:00013BD4 var_30 = -0x30 .text:00013BD4 var_2C = -0x2C .text:00013BD4 arg_0 = 4 .text:00013BD4 .text:00013BD4 MOV R12, SP .text:00013BD8 STMFD SP!, {R4-R12,LR,PC} .text:00013BDC SUB R11, R12, #4 .text:00013BE0 MOV R12, #0 .text:00013BE4 SUB SP, SP, #0x84 .text:00013BE8 STR R12, [R11,#var_48] .text:00013BEC STR R0, [R11,#var_3C] .text:00013BF0 STR R2, [R11,#var_44] .text:00013BF4 CMP R1, #0 .text:00013BF8 MOV R0, R3 .text:00013BFC STR R1, [R11,#var_40] .text:00013C00 LDRNE LR, [R1,#4] .text:00013C04 STRNE LR, [R11,#var_48] .text:00013C08 LDR R1, [R11,#var_3C] .text:00013C0C LDR R12, =_dl_num_relocations .text:00013C10 LDRB R3, [R1] .text:00013C14 MOV R2, #0 .text:00013C18 STR R2, [R11,#var_4C] .text:00013C1C CMP R3, R2 .text:00013C20 BEQ loc_13CC4 .text:00013C24 LDRB R3, [R1,#1] .text:00013C28 LDRB LR, [R1],#1 .text:00013C2C CMP R3, R2 .text:00013C30 STR LR, [R11,#var_4C] .text:00013C34 BEQ loc_13CC4 .text:00013C38 LDR R3, [R11,#var_3C] .text:00013C3C LDRB R2, [R3,#1] .text:00013C40 LDRB R3, [R1,#1]! .text:00013C44 ADD LR, R2, LR,LSL#4 .text:00013C48 CMP R3, #0 .text:00013C4C STR LR, [R11,#var_4C] .text:00013C50 BEQ loc_13CC4 .text:00013C54 LDRB R2, [R1] .text:00013C58 LDRB R3, [R1,#1]! .text:00013C5C ADD LR, R2, LR,LSL#4 .text:00013C60 CMP R3, #0 .text:00013C64 STR LR, [R11,#var_4C] .text:00013C68 BEQ loc_13CC4 .text:00013C6C LDRB R2, [R1] .text:00013C70 LDRB R3, [R1,#1]! .text:00013C74 ADD LR, R2, LR,LSL#4 .text:00013C78 CMP R3, #0 .text:00013C7C STR LR, [R11,#var_4C] .text:00013C80 BEQ loc_13CC4 .text:00013C84 LDRB R2, [R1] .text:00013C88 LDRB R3, [R1,#1]! .text:00013C8C ADD LR, R2, LR,LSL#4 .text:00013C90 CMP R3, #0 .text:00013C94 STR LR, [R11,#var_4C] .text:00013C98 BEQ loc_13CC4 .text:00013C9C .text:00013C9C loc_13C9C ; CODE XREF: _dl_lookup_symbol_skip+ECj .text:00013C9C LDRB R3, [R1] .text:00013CA0 LDR LR, [R11,#var_4C] .text:00013CA4 ADD LR, R3, LR,LSL#4 .text:00013CA8 AND R2, LR, #0xF0000000 .text:00013CAC EOR LR, LR, R2 .text:00013CB0 LDRB R3, [R1,#1]! .text:00013CB4 EOR LR, LR, R2,LSR#24 .text:00013CB8 STR LR, [R11,#var_4C] .text:00013CBC CMP R3, #0 .text:00013CC0 BNE loc_13C9C .text:00013CC4 .text:00013CC4 loc_13CC4 ; CODE XREF: _dl_lookup_symbol_skip+4Cj .text:00013CC4 ; _dl_lookup_symbol_skip+60j ... .text:00013CC4 MOV R3, #0 .text:00013CC8 MOV R2, #0 .text:00013CCC SUB LR, R11, #-var_30 .text:00013CD0 STMIA LR, {R2,R3} .text:00013CD4 LDR R3, [R12] .text:00013CD8 ADD R3, R3, #1 .text:00013CDC STR R3, [R12] .text:00013CE0 STR R0, [R11,#var_50] .text:00013CE4 LDR R3, [R0] .text:00013CE8 LDR R2, [R3,#8] .text:00013CEC MOV R1, #0 .text:00013CF0 STR R1, [R11,#var_54] .text:00013CF4 LDR R3, [R2,R1,LSL#2] .text:00013CF8 LDR R2, [R11,#arg_0] .text:00013CFC CMP R3, R2 .text:00013D00 BEQ loc_13D50 .text:00013D04 .text:00013D04 loc_13D04 ; CODE XREF: _dl_lookup_symbol_skip+178j .text:00013D04 LDR R2, [R0] .text:00013D08 LDR R12, [R11,#var_54] .text:00013D0C LDR R3, [R2,#0xC] .text:00013D10 CMP R12, R3 .text:00013D14 BCC loc_13D30 .text:00013D18 LDR R0, =aIScopeR_ndupli ; "i < (*scope)->r_nduplist" .text:00013D1C LDR R1, =aDlLookup_c ; "dl-lookup.c" .text:00013D20 MOV R2, #0x12C .text:00013D24 LDR R3, =a_dl_lookup_sym ; "_dl_lookup_symbol_skip" .text:00013D28 ADD R2, R2, #3 .text:00013D2C BL __assert_fail .text:00013D30 ; --------------------------------------------------------------------------- .text:00013D30 .text:00013D30 loc_13D30 ; CODE XREF: _dl_lookup_symbol_skip+140j .text:00013D30 LDR LR, [R11,#var_54] .text:00013D34 LDR R2, [R2,#8] .text:00013D38 ADD LR, LR, #1 .text:00013D3C STR LR, [R11,#var_54] .text:00013D40 LDR R1, [R11,#arg_0] .text:00013D44 LDR R3, [R2,LR,LSL#2] .text:00013D48 CMP R3, R1 .text:00013D4C BNE loc_13D04 .text:00013D50 .text:00013D50 loc_13D50 ; CODE XREF: _dl_lookup_symbol_skip+12Cj .text:00013D50 LDR R3, [R0] .text:00013D54 LDR R12, [R11,#var_54] .text:00013D58 LDR R2, [R3,#4] .text:00013D5C CMP R12, R2 .text:00013D60 STR R2, [R11,#var_58] .text:00013D64 BCS loc_13F58 .text:00013D68 LDR LR, [R11,#var_44] .text:00013D6C LDR LR, [LR] .text:00013D70 STR LR, [R11,#var_5C] .text:00013D74 SUB R10, R11, #-var_30 .text:00013D78 LDR R3, [R3] .text:00013D7C MOV R9, R12 .text:00013D80 STR R3, [R11,#var_60] .text:00013D84 .text:00013D84 loc_13D84 ; CODE XREF: _dl_lookup_symbol_skip+35Cj .text:00013D84 MOV R0, #0 .text:00013D88 STR R0, [R11,#var_64] .text:00013D8C LDR R1, [R11,#var_60] .text:00013D90 LDR R2, [R11,#arg_0] .text:00013D94 LDR R6, [R1,R9,LSL#2] .text:00013D98 MOV R12, R0 .text:00013D9C CMP R6, R2 .text:00013DA0 MOVNE R3, #0 .text:00013DA4 MOVEQ R3, #1 .text:00013DA8 CMP R2, R0 .text:00013DAC MOVEQ R3, R0 .text:00013DB0 CMP R3, R0 .text:00013DB4 BNE loc_13F24 .text:00013DB8 LDR R3, =_dl_debug_mask .text:00013DBC LDR R2, [R3] .text:00013DC0 TST R2, #8 .text:00013DC4 BEQ loc_13DF4 .text:00013DC8 LDR R2, [R6,#4] .text:00013DCC LDRB R3, [R2] .text:00013DD0 CMP R3, R0 .text:00013DD4 LDR R0, =aSymbolSLookupI ; "symbol=%s; lookup in file=%s\n" .text:00013DD8 LDREQ R3, =_dl_argv .text:00013DDC LDREQ R2, [R3] .text:00013DE0 LDREQ R2, [R2] .text:00013DE4 STR R12, [R11,#var_A8] .text:00013DE8 LDR R1, [R11,#var_3C] .text:00013DEC BL _dl_debug_printf .text:00013DF0 LDR R12, [R11,#var_A8] .text:00013DF4 .text:00013DF4 loc_13DF4 ; CODE XREF: _dl_lookup_symbol_skip+1F0j .text:00013DF4 LDR R1, [R6,#0x11C] .text:00013DF8 ADD R2, R6, #0x2C .text:00013DFC LDMIA R2, {R2,R3} .text:00013E00 LDR R2, [R2,#4] .text:00013E04 LDR R8, [R3,#4] .text:00013E08 STR R2, [R11,#var_68] .text:00013E0C LDR R7, [R6,#0x144] .text:00013E10 STR R12, [R11,#var_A8] .text:00013E14 LDR R0, [R11,#var_4C] .text:00013E18 BL __umodsi3 .text:00013E1C LDR R3, [R6,#0x120] .text:00013E20 LDR R5, [R3,R0,LSL#2] .text:00013E24 LDR R12, [R11,#var_A8] .text:00013E28 CMP R5, #0 .text:00013E2C BEQ loc_13EDC .text:00013E30 .text:00013E30 loc_13E30 ; CODE XREF: _dl_lookup_symbol_skip+304j .text:00013E30 MOV R2, R5,LSL#4 .text:00013E34 ADD R4, R8, R2 .text:00013E38 LDR R3, [R4,#4] .text:00013E3C CMP R3, #0 .text:00013E40 BEQ loc_13ECC .text:00013E44 LDRB R3, [R4,#0xC] .text:00013E48 AND R3, R3, #0xF .text:00013E4C CMP R3, #2 .text:00013E50 BHI loc_13ECC .text:00013E54 LDR R3, [R11,#var_5C] .text:00013E58 CMP R4, R3 .text:00013E5C BEQ loc_13E84 .text:00013E60 LDR R0, [R8,R2] .text:00013E64 STR R12, [R11,#var_A8] .text:00013E68 LDR LR, [R11,#var_68] .text:00013E6C LDR R1, [R11,#var_3C] .text:00013E70 ADD R0, LR, R0 .text:00013E74 BL strcmp .text:00013E78 CMP R0, #0 .text:00013E7C LDR R12, [R11,#var_A8] .text:00013E80 BNE loc_13ECC .text:00013E84 .text:00013E84 loc_13E84 ; CODE XREF: _dl_lookup_symbol_skip+288j .text:00013E84 CMP R7, #0 .text:00013E88 BEQ loc_13EF0 .text:00013E8C MOV R3, R5,LSL#1 .text:00013E90 LDRB R1, [R3,R7] .text:00013E94 ADD R3, R3, R7 .text:00013E98 LDRB R2, [R3,#1] .text:00013E9C ORR R2, R1, R2,LSL#8 .text:00013EA0 MOV R3, R2,LSL#17 .text:00013EA4 MOV R3, R3,LSR#17 .text:00013EA8 CMP R3, #2 .text:00013EAC BLS loc_13EF0 .text:00013EB0 TST R2, #0x8000 .text:00013EB4 BNE loc_13ECC .text:00013EB8 ADD R12, R12, #1 .text:00013EBC LDR R0, [R11,#var_64] .text:00013EC0 CMP R12, #1 .text:00013EC4 MOVEQ R0, R4 .text:00013EC8 STR R0, [R11,#var_64] .text:00013ECC .text:00013ECC loc_13ECC ; CODE XREF: _dl_lookup_symbol_skip+26Cj .text:00013ECC ; _dl_lookup_symbol_skip+27Cj ... .text:00013ECC LDR R3, [R6,#0x124] .text:00013ED0 LDR R5, [R3,R5,LSL#2] .text:00013ED4 CMP R5, #0 .text:00013ED8 BNE loc_13E30 .text:00013EDC .text:00013EDC loc_13EDC ; CODE XREF: _dl_lookup_symbol_skip+258j .text:00013EDC LDR R4, [R11,#var_64] .text:00013EE0 CMP R12, #1 .text:00013EE4 MOVNE R4, #0 .text:00013EE8 CMP R4, #0 .text:00013EEC BEQ loc_13F24 .text:00013EF0 .text:00013EF0 loc_13EF0 ; CODE XREF: _dl_lookup_symbol_skip+2B4j .text:00013EF0 ; _dl_lookup_symbol_skip+2D8j .text:00013EF0 LDRB R3, [R4,#0xC] .text:00013EF4 MOV R3, R3,LSR#4 .text:00013EF8 CMP R3, #1 .text:00013EFC BEQ loc_14130 .text:00013F00 CMP R3, #2 .text:00013F04 BNE loc_13F24 .text:00013F08 LDR R3, =_dl_dynamic_weak .text:00013F0C LDR R2, [R3] .text:00013F10 CMP R2, #0 .text:00013F14 BEQ loc_14130 .text:00013F18 LDR R3, [R10] .text:00013F1C CMP R3, #0 .text:00013F20 STMEQIA R10, {R4,R6} .text:00013F24 .text:00013F24 loc_13F24 ; CODE XREF: _dl_lookup_symbol_skip+1E0j .text:00013F24 ; _dl_lookup_symbol_skip+318j ... .text:00013F24 LDR R1, [R11,#var_58] .text:00013F28 ADD R9, R9, #1 .text:00013F2C CMP R9, R1 .text:00013F30 BCC loc_13D84 .text:00013F34 B loc_14158 .text:00013F34 ; --------------------------------------------------------------------------- .text:00013F38 off_13F38 DCD _dl_num_relocations ; DATA XREF: _dl_lookup_symbol_skip+38r .text:00013F3C off_13F3C DCD aIScopeR_ndupli ; DATA XREF: _dl_lookup_symbol_skip+144r .text:00013F3C ; "i < (*scope)->r_nduplist" .text:00013F40 off_13F40 DCD aDlLookup_c ; DATA XREF: _dl_lookup_symbol_skip+148r .text:00013F40 ; "dl-lookup.c" .text:00013F44 off_13F44 DCD a_dl_lookup_sym ; DATA XREF: _dl_lookup_symbol_skip+150r .text:00013F44 ; "_dl_lookup_symbol_skip" .text:00013F48 off_13F48 DCD _dl_debug_mask ; DATA XREF: _dl_lookup_symbol_skip+1E4r .text:00013F4C off_13F4C DCD aSymbolSLookupI ; DATA XREF: _dl_lookup_symbol_skip+200r .text:00013F4C ; "symbol=%s; lookup in file=%s\n" .text:00013F50 off_13F50 DCD _dl_argv ; DATA XREF: _dl_lookup_symbol_skip+204r .text:00013F54 off_13F54 DCD _dl_dynamic_weak ; DATA XREF: _dl_lookup_symbol_skip+334r .text:00013F58 ; --------------------------------------------------------------------------- .text:00013F58 .text:00013F58 loc_13F58 ; CODE XREF: _dl_lookup_symbol_skip+190j .text:00013F58 ; _dl_lookup_symbol_skip+58Cj .text:00013F58 LDR R2, [R11,#var_50] .text:00013F5C LDR R3, [R2,#4]! .text:00013F60 CMP R3, #0 .text:00013F64 STR R2, [R11,#var_50] .text:00013F68 BEQ loc_14164 .text:00013F6C LDR R12, [R11,#var_44] .text:00013F70 LDR R12, [R12] .text:00013F74 STR R12, [R11,#var_6C] .text:00013F78 LDR LR, [R3] .text:00013F7C MOV R0, #0 .text:00013F80 STR R0, [R11,#var_70] .text:00013F84 STR LR, [R11,#var_74] .text:00013F88 LDR R3, [R3,#4] .text:00013F8C SUB R10, R11, #-var_30 .text:00013F90 STR R3, [R11,#var_78] .text:00013F94 .text:00013F94 loc_13F94 ; CODE XREF: _dl_lookup_symbol_skip+580j .text:00013F94 LDR R1, [R11,#var_70] .text:00013F98 LDR R2, [R11,#var_74] .text:00013F9C LDR LR, [R11,#arg_0] .text:00013FA0 MOV R12, #0 .text:00013FA4 LDR R6, [R2,R1,LSL#2] .text:00013FA8 MOV R9, R12 .text:00013FAC CMP R6, LR .text:00013FB0 MOVNE R3, #0 .text:00013FB4 MOVEQ R3, #1 .text:00013FB8 CMP LR, R12 .text:00013FBC MOVEQ R3, R12 .text:00013FC0 CMP R3, R12 .text:00013FC4 BNE loc_14140 .text:00013FC8 LDR R3, =_dl_debug_mask .text:00013FCC LDR R2, [R3] .text:00013FD0 TST R2, #8 .text:00013FD4 BEQ loc_14004 .text:00013FD8 LDR R2, [R6,#4] .text:00013FDC LDRB R3, [R2] .text:00013FE0 LDR R0, =aSymbolSLookupI ; "symbol=%s; lookup in file=%s\n" .text:00013FE4 CMP R3, R12 .text:00013FE8 LDREQ R3, =_dl_argv .text:00013FEC LDREQ R2, [R3] .text:00013FF0 LDREQ R2, [R2] .text:00013FF4 STR R12, [R11,#var_A8] .text:00013FF8 LDR R1, [R11,#var_3C] .text:00013FFC BL _dl_debug_printf .text:00014000 LDR R12, [R11,#var_A8] .text:00014004 .text:00014004 loc_14004 ; CODE XREF: _dl_lookup_symbol_skip+400j .text:00014004 LDR R1, [R6,#0x11C] .text:00014008 ADD R2, R6, #0x2C .text:0001400C LDMIA R2, {R2,R3} .text:00014010 LDR R2, [R2,#4] .text:00014014 LDR R8, [R3,#4] .text:00014018 STR R2, [R11,#var_7C] .text:0001401C LDR R7, [R6,#0x144] .text:00014020 STR R12, [R11,#var_A8] .text:00014024 LDR R0, [R11,#var_4C] .text:00014028 BL __umodsi3 .text:0001402C LDR R3, [R6,#0x120] .text:00014030 LDR R5, [R3,R0,LSL#2] .text:00014034 LDR R12, [R11,#var_A8] .text:00014038 CMP R5, #0 .text:0001403C BEQ loc_140E4 .text:00014040 .text:00014040 loc_14040 ; CODE XREF: _dl_lookup_symbol_skip+50Cj .text:00014040 MOV R2, R5,LSL#4 .text:00014044 ADD R4, R8, R2 .text:00014048 LDR R3, [R4,#4] .text:0001404C CMP R3, #0 .text:00014050 BEQ loc_140D4 .text:00014054 LDRB R3, [R4,#0xC] .text:00014058 AND R3, R3, #0xF .text:0001405C CMP R3, #2 .text:00014060 BHI loc_140D4 .text:00014064 LDR R0, [R11,#var_6C] .text:00014068 CMP R4, R0 .text:0001406C BEQ loc_14094 .text:00014070 LDR R0, [R8,R2] .text:00014074 STR R12, [R11,#var_A8] .text:00014078 LDR R2, [R11,#var_7C] .text:0001407C LDR R1, [R11,#var_3C] .text:00014080 ADD R0, R2, R0 .text:00014084 BL strcmp .text:00014088 CMP R0, #0 .text:0001408C LDR R12, [R11,#var_A8] .text:00014090 BNE loc_140D4 .text:00014094 .text:00014094 loc_14094 ; CODE XREF: _dl_lookup_symbol_skip+498j .text:00014094 CMP R7, #0 .text:00014098 BEQ loc_140F8 .text:0001409C MOV R3, R5,LSL#1 .text:000140A0 LDRB R1, [R3,R7] .text:000140A4 ADD R3, R3, R7 .text:000140A8 LDRB R2, [R3,#1] .text:000140AC ORR R2, R1, R2,LSL#8 .text:000140B0 MOV R3, R2,LSL#17 .text:000140B4 MOV R3, R3,LSR#17 .text:000140B8 CMP R3, #2 .text:000140BC BLS loc_140F8 .text:000140C0 TST R2, #0x8000 .text:000140C4 BNE loc_140D4 .text:000140C8 ADD R9, R9, #1 .text:000140CC CMP R9, #1 .text:000140D0 MOVEQ R12, R4 .text:000140D4 .text:000140D4 loc_140D4 ; CODE XREF: _dl_lookup_symbol_skip+47Cj .text:000140D4 ; _dl_lookup_symbol_skip+48Cj ... .text:000140D4 LDR R3, [R6,#0x124] .text:000140D8 LDR R5, [R3,R5,LSL#2] .text:000140DC CMP R5, #0 .text:000140E0 BNE loc_14040 .text:000140E4 .text:000140E4 loc_140E4 ; CODE XREF: _dl_lookup_symbol_skip+468j .text:000140E4 CMP R9, #1 .text:000140E8 MOVEQ R4, R12 .text:000140EC MOVNE R4, #0 .text:000140F0 CMP R4, #0 .text:000140F4 BEQ loc_14140 .text:000140F8 .text:000140F8 loc_140F8 ; CODE XREF: _dl_lookup_symbol_skip+4C4j .text:000140F8 ; _dl_lookup_symbol_skip+4E8j .text:000140F8 LDRB R3, [R4,#0xC] .text:000140FC MOV R3, R3,LSR#4 .text:00014100 CMP R3, #1 .text:00014104 BEQ loc_14130 .text:00014108 CMP R3, #2 .text:0001410C BNE loc_14140 .text:00014110 LDR R3, =_dl_dynamic_weak .text:00014114 LDR R2, [R3] .text:00014118 CMP R2, #0 .text:0001411C BEQ loc_14130 .text:00014120 LDR R3, [R10] .text:00014124 CMP R3, #0 .text:00014128 STMEQIA R10, {R4,R6} .text:0001412C B loc_14140 .text:00014130 ; --------------------------------------------------------------------------- .text:00014130 .text:00014130 loc_14130 ; CODE XREF: _dl_lookup_symbol_skip+328j .text:00014130 ; _dl_lookup_symbol_skip+340j ... .text:00014130 STR R4, [R10] .text:00014134 MOV R3, #1 .text:00014138 STR R6, [R10,#4] .text:0001413C B loc_1415C .text:00014140 ; --------------------------------------------------------------------------- .text:00014140 .text:00014140 loc_14140 ; CODE XREF: _dl_lookup_symbol_skip+3F0j .text:00014140 ; _dl_lookup_symbol_skip+520j ... .text:00014140 LDR R3, [R11,#var_70] .text:00014144 LDR R12, [R11,#var_78] .text:00014148 ADD R3, R3, #1 .text:0001414C CMP R3, R12 .text:00014150 STR R3, [R11,#var_70] .text:00014154 BCC loc_13F94 .text:00014158 .text:00014158 loc_14158 ; CODE XREF: _dl_lookup_symbol_skip+360j .text:00014158 MOV R3, #0 .text:0001415C .text:0001415C loc_1415C ; CODE XREF: _dl_lookup_symbol_skip+568j .text:0001415C CMP R3, #0 .text:00014160 BEQ loc_13F58 .text:00014164 .text:00014164 loc_14164 ; CODE XREF: _dl_lookup_symbol_skip+394j .text:00014164 LDR R3, [R11,#var_30] .text:00014168 CMP R3, #0 .text:0001416C LDREQ LR, [R11,#var_44] .text:00014170 MOVEQ R0, R3 .text:00014174 STREQ R3, [LR] .text:00014178 BEQ locret_146D0 .text:0001417C LDR R0, [R11,#var_44] .text:00014180 LDR R3, [R0] .text:00014184 MOV R4, #0 .text:00014188 CMP R3, R4 .text:0001418C BEQ loc_141A4 .text:00014190 LDRB R3, [R3,#0xD] .text:00014194 AND R3, R3, #3 .text:00014198 CMP R3, #3 .text:0001419C MOVNE R4, #0 .text:000141A0 MOVEQ R4, #1 .text:000141A4 .text:000141A4 loc_141A4 ; CODE XREF: _dl_lookup_symbol_skip+5B8j .text:000141A4 LDR R2, =_dl_debug_mask .text:000141A8 LDR R3, [R2] .text:000141AC TST R3, #4 .text:000141B0 BEQ loc_14230 .text:000141B4 LDR R1, [R11,#var_48] .text:000141B8 CMP R1, #0 .text:000141BC BEQ loc_141CC .text:000141C0 LDRB R3, [R1] .text:000141C4 CMP R3, #0 .text:000141C8 BNE loc_141E8 .text:000141CC .text:000141CC loc_141CC ; CODE XREF: _dl_lookup_symbol_skip+5E8j .text:000141CC LDR R3, =_dl_argv .text:000141D0 LDR R2, [R3] .text:000141D4 LDR R1, [R2] .text:000141D8 LDR LR, =aMainProgram ; "<main program>" .text:000141DC CMP R1, #0 .text:000141E0 MOVNE LR, R1 .text:000141E4 B loc_141EC .text:000141E8 ; --------------------------------------------------------------------------- .text:000141E8 .text:000141E8 loc_141E8 ; CODE XREF: _dl_lookup_symbol_skip+5F4j .text:000141E8 LDR LR, [R11,#var_48] .text:000141EC .text:000141EC loc_141EC ; CODE XREF: _dl_lookup_symbol_skip+610j .text:000141EC LDR R3, [R11,#var_2C] .text:000141F0 LDR R3, [R3,#4] .text:000141F4 LDRB R2, [R3] .text:000141F8 CMP R2, #0 .text:000141FC MOVNE R2, R3 .text:00014200 LDREQ R3, =_dl_argv .text:00014204 LDREQ R2, [R3] .text:00014208 LDREQ R2, [R2] .text:0001420C LDR R3, [R11,#var_3C] .text:00014210 STR R3, [SP,#0xAC+var_AC] .text:00014214 LDR R12, =aNormal ; "normal" .text:00014218 MOV R1, LR .text:0001421C LDR R3, =aProtected ; "protected" .text:00014220 CMP R4, #0 .text:00014224 LDR R0, =aBindingFileSTo ; "binding file %s to %s: %s symbol `%s'\n" .text:00014228 MOVEQ R3, R12 .text:0001422C BL _dl_debug_printf .text:00014230 .text:00014230 loc_14230 ; CODE XREF: _dl_lookup_symbol_skip+5DCj .text:00014230 CMP R4, #0 .text:00014234 BNE loc_1426C .text:00014238 LDR R3, [R11,#var_30] .text:0001423C LDR R12, [R11,#var_44] .text:00014240 STR R3, [R12] .text:00014244 LDR R2, [R11,#var_2C] .text:00014248 B loc_146CC .text:00014248 ; --------------------------------------------------------------------------- .text:0001424C off_1424C DCD _dl_debug_mask ; DATA XREF: _dl_lookup_symbol_skip+3F4r .text:0001424C ; _dl_lookup_symbol_skip:loc_141A4r .text:00014250 off_14250 DCD aSymbolSLookupI ; DATA XREF: _dl_lookup_symbol_skip+40Cr .text:00014250 ; "symbol=%s; lookup in file=%s\n" .text:00014254 off_14254 DCD _dl_argv ; DATA XREF: _dl_lookup_symbol_skip+414r .text:00014254 ; _dl_lookup_symbol_skip:loc_141CCr ... .text:00014258 off_14258 DCD _dl_dynamic_weak ; DATA XREF: _dl_lookup_symbol_skip+53Cr .text:0001425C off_1425C DCD aMainProgram ; DATA XREF: _dl_lookup_symbol_skip+604r .text:0001425C ; "<main program>" .text:00014260 off_14260 DCD aNormal ; DATA XREF: _dl_lookup_symbol_skip+640r .text:00014260 ; "normal" .text:00014264 off_14264 DCD aProtected ; DATA XREF: _dl_lookup_symbol_skip+648r .text:00014264 ; "protected" .text:00014268 off_14268 DCD aBindingFileSTo ; DATA XREF: _dl_lookup_symbol_skip+650r .text:00014268 ; "binding file %s to %s: %s symbol `%s'\n" .text:0001426C ; --------------------------------------------------------------------------- .text:0001426C .text:0001426C loc_1426C ; CODE XREF: _dl_lookup_symbol_skip+660j .text:0001426C LDR LR, [R11,#var_50] .text:00014270 SUB R3, R11, #-var_38 .text:00014274 LDR R2, [LR] .text:00014278 MOV R1, #0 .text:0001427C MOV R0, #0 .text:00014280 STMIA R3, {R0,R1} .text:00014284 LDR R12, [R11,#var_54] .text:00014288 LDR R1, [R2,#4] .text:0001428C CMP R12, R1 .text:00014290 MOV R12, R3 .text:00014294 STR R1, [R11,#var_80] .text:00014298 BCS loc_14474 .text:0001429C LDR LR, [R11,#var_44] .text:000142A0 LDR LR, [LR] .text:000142A4 STR LR, [R11,#var_84] .text:000142A8 LDR R10, [R11,#var_54] .text:000142AC LDR R2, [R2] .text:000142B0 STR R2, [R11,#var_88] .text:000142B4 .text:000142B4 loc_142B4 ; CODE XREF: _dl_lookup_symbol_skip+898j .text:000142B4 MOV R0, #0 .text:000142B8 STR R0, [R11,#var_8C] .text:000142BC LDR R1, [R11,#var_88] .text:000142C0 LDR R2, [R11,#arg_0] .text:000142C4 LDR R6, [R1,R10,LSL#2] .text:000142C8 MOV R9, R0 .text:000142CC CMP R6, R2 .text:000142D0 MOVNE R3, #0 .text:000142D4 MOVEQ R3, #1 .text:000142D8 CMP R2, R0 .text:000142DC MOVEQ R3, R0 .text:000142E0 CMP R3, R0 .text:000142E4 BNE loc_14460 .text:000142E8 LDR LR, =_dl_debug_mask .text:000142EC LDR R3, [LR] .text:000142F0 TST R3, #8 .text:000142F4 BEQ loc_14324 .text:000142F8 LDR R2, [R6,#4] .text:000142FC LDRB R3, [R2] .text:00014300 CMP R3, R0 .text:00014304 LDR R0, =aSymbolSLookupI ; "symbol=%s; lookup in file=%s\n" .text:00014308 LDREQ R3, =_dl_argv .text:0001430C LDREQ R2, [R3] .text:00014310 LDREQ R2, [R2] .text:00014314 STR R12, [R11,#var_A8] .text:00014318 LDR R1, [R11,#var_3C] .text:0001431C BL _dl_debug_printf .text:00014320 LDR R12, [R11,#var_A8] .text:00014324 .text:00014324 loc_14324 ; CODE XREF: _dl_lookup_symbol_skip+720j .text:00014324 LDR R1, [R6,#0x11C] .text:00014328 ADD R2, R6, #0x2C .text:0001432C LDMIA R2, {R2,R3} .text:00014330 LDR R2, [R2,#4] .text:00014334 LDR R8, [R3,#4] .text:00014338 STR R2, [R11,#var_90] .text:0001433C LDR R7, [R6,#0x144] .text:00014340 STR R12, [R11,#var_A8] .text:00014344 LDR R0, [R11,#var_4C] .text:00014348 BL __umodsi3 .text:0001434C LDR R3, [R6,#0x120] .text:00014350 LDR R5, [R3,R0,LSL#2] .text:00014354 LDR R12, [R11,#var_A8] .text:00014358 CMP R5, #0 .text:0001435C BEQ loc_14418 .text:00014360 .text:00014360 loc_14360 ; CODE XREF: _dl_lookup_symbol_skip+840j .text:00014360 MOV R2, R5,LSL#4 .text:00014364 ADD R4, R8, R2 .text:00014368 LDR R3, [R4,#4] .text:0001436C CMP R3, #0 .text:00014370 BEQ loc_14408 .text:00014374 LDR R3, [R4,#0xC] .text:00014378 MOVS R3, R3,LSR#16 .text:0001437C BEQ loc_14408 .text:00014380 LDRB R3, [R4,#0xC] .text:00014384 AND R3, R3, #0xF .text:00014388 CMP R3, #2 .text:0001438C BHI loc_14408 .text:00014390 LDR R0, [R11,#var_84] .text:00014394 CMP R4, R0 .text:00014398 BEQ loc_143C0 .text:0001439C LDR R0, [R8,R2] .text:000143A0 STR R12, [R11,#var_A8] .text:000143A4 LDR R2, [R11,#var_90] .text:000143A8 LDR R1, [R11,#var_3C] .text:000143AC ADD R0, R2, R0 .text:000143B0 BL strcmp .text:000143B4 CMP R0, #0 .text:000143B8 LDR R12, [R11,#var_A8] .text:000143BC BNE loc_14408 .text:000143C0 .text:000143C0 loc_143C0 ; CODE XREF: _dl_lookup_symbol_skip+7C4j .text:000143C0 CMP R7, #0 .text:000143C4 BEQ loc_1442C .text:000143C8 MOV R3, R5,LSL#1 .text:000143CC LDRB R1, [R3,R7] .text:000143D0 ADD R3, R3, R7 .text:000143D4 LDRB R2, [R3,#1] .text:000143D8 ORR R2, R1, R2,LSL#8 .text:000143DC MOV R3, R2,LSL#17 .text:000143E0 MOV R3, R3,LSR#17 .text:000143E4 CMP R3, #2 .text:000143E8 BLS loc_1442C .text:000143EC TST R2, #0x8000 .text:000143F0 BNE loc_14408 .text:000143F4 ADD R9, R9, #1 .text:000143F8 LDR R3, [R11,#var_8C] .text:000143FC CMP R9, #1 .text:00014400 MOVEQ R3, R4 .text:00014404 STR R3, [R11,#var_8C] .text:00014408 .text:00014408 loc_14408 ; CODE XREF: _dl_lookup_symbol_skip+79Cj .text:00014408 ; _dl_lookup_symbol_skip+7A8j ... .text:00014408 LDR R3, [R6,#0x124] .text:0001440C LDR R5, [R3,R5,LSL#2] .text:00014410 CMP R5, #0 .text:00014414 BNE loc_14360 .text:00014418 .text:00014418 loc_14418 ; CODE XREF: _dl_lookup_symbol_skip+788j .text:00014418 LDR R4, [R11,#var_8C] .text:0001441C CMP R9, #1 .text:00014420 MOVNE R4, #0 .text:00014424 CMP R4, #0 .text:00014428 BEQ loc_14460 .text:0001442C .text:0001442C loc_1442C ; CODE XREF: _dl_lookup_symbol_skip+7F0j .text:0001442C ; _dl_lookup_symbol_skip+814j .text:0001442C LDRB R3, [R4,#0xC] .text:00014430 MOV R3, R3,LSR#4 .text:00014434 CMP R3, #1 .text:00014438 BEQ loc_14654 .text:0001443C CMP R3, #2 .text:00014440 BNE loc_14460 .text:00014444 LDR R3, =_dl_dynamic_weak .text:00014448 LDR R2, [R3] .text:0001444C CMP R2, #0 .text:00014450 BEQ loc_14654 .text:00014454 LDR R3, [R12] .text:00014458 CMP R3, #0 .text:0001445C STMEQIA R12, {R4,R6} .text:00014460 .text:00014460 loc_14460 ; CODE XREF: _dl_lookup_symbol_skip+710j .text:00014460 ; _dl_lookup_symbol_skip+854j ... .text:00014460 LDR LR, [R11,#var_80] .text:00014464 ADD R10, R10, #1 .text:00014468 CMP R10, LR .text:0001446C BCC loc_142B4 .text:00014470 B loc_1468C .text:00014474 ; --------------------------------------------------------------------------- .text:00014474 .text:00014474 loc_14474 ; CODE XREF: _dl_lookup_symbol_skip+6C4j .text:00014474 ; _dl_lookup_symbol_skip+AC0j .text:00014474 LDR R0, [R11,#var_50] .text:00014478 LDR R3, [R0,#4]! .text:0001447C CMP R3, #0 .text:00014480 STR R0, [R11,#var_50] .text:00014484 BEQ loc_14698 .text:00014488 LDR R1, [R11,#var_44] .text:0001448C LDR R1, [R1] .text:00014490 STR R1, [R11,#var_94] .text:00014494 LDR R2, [R3] .text:00014498 MOV LR, #0 .text:0001449C STR LR, [R11,#var_98] .text:000144A0 STR R2, [R11,#var_9C] .text:000144A4 LDR R3, [R3,#4] .text:000144A8 STR R3, [R11,#var_A0] .text:000144AC .text:000144AC loc_144AC ; CODE XREF: _dl_lookup_symbol_skip+AB4j .text:000144AC LDR R0, [R11,#var_98] .text:000144B0 LDR R1, [R11,#var_9C] .text:000144B4 LDR R2, [R11,#arg_0] .text:000144B8 MOV R9, #0 .text:000144BC LDR R6, [R1,R0,LSL#2] .text:000144C0 MOV R10, R9 .text:000144C4 CMP R6, R2 .text:000144C8 MOVNE R3, #0 .text:000144CC MOVEQ R3, #1 .text:000144D0 CMP R2, R9 .text:000144D4 MOVEQ R3, R9 .text:000144D8 CMP R3, R9 .text:000144DC BNE loc_14674 .text:000144E0 LDR LR, =_dl_debug_mask .text:000144E4 LDR R3, [LR] .text:000144E8 TST R3, #8 .text:000144EC BEQ loc_1451C .text:000144F0 LDR R2, [R6,#4] .text:000144F4 LDRB R3, [R2] .text:000144F8 LDR R0, =aSymbolSLookupI ; "symbol=%s; lookup in file=%s\n" .text:000144FC CMP R3, R9 .text:00014500 LDREQ R3, =_dl_argv .text:00014504 LDREQ R2, [R3] .text:00014508 LDREQ R2, [R2] .text:0001450C STR R12, [R11,#var_A8] .text:00014510 LDR R1, [R11,#var_3C] .text:00014514 BL _dl_debug_printf .text:00014518 LDR R12, [R11,#var_A8] .text:0001451C .text:0001451C loc_1451C ; CODE XREF: _dl_lookup_symbol_skip+918j .text:0001451C LDR R1, [R6,#0x11C] .text:00014520 ADD R2, R6, #0x2C .text:00014524 LDMIA R2, {R2,R3} .text:00014528 LDR R2, [R2,#4] .text:0001452C LDR R8, [R3,#4] .text:00014530 STR R2, [R11,#var_A4] .text:00014534 LDR R7, [R6,#0x144] .text:00014538 STR R12, [R11,#var_A8] .text:0001453C LDR R0, [R11,#var_4C] .text:00014540 BL __umodsi3 .text:00014544 LDR R3, [R6,#0x120] .text:00014548 LDR R5, [R3,R0,LSL#2] .text:0001454C LDR R12, [R11,#var_A8] .text:00014550 CMP R5, #0 .text:00014554 BEQ loc_14608 .text:00014558 .text:00014558 loc_14558 ; CODE XREF: _dl_lookup_symbol_skip+A30j .text:00014558 MOV R2, R5,LSL#4 .text:0001455C ADD R4, R8, R2 .text:00014560 LDR R3, [R4,#4] .text:00014564 CMP R3, #0 .text:00014568 BEQ loc_145F8 .text:0001456C LDR R3, [R4,#0xC] .text:00014570 MOVS R3, R3,LSR#16 .text:00014574 BEQ loc_145F8 .text:00014578 LDRB R3, [R4,#0xC] .text:0001457C AND R3, R3, #0xF .text:00014580 CMP R3, #2 .text:00014584 BHI loc_145F8 .text:00014588 LDR R0, [R11,#var_94] .text:0001458C CMP R4, R0 .text:00014590 BEQ loc_145B8 .text:00014594 LDR R0, [R8,R2] .text:00014598 STR R12, [R11,#var_A8] .text:0001459C LDR R2, [R11,#var_A4] .text:000145A0 LDR R1, [R11,#var_3C] .text:000145A4 ADD R0, R2, R0 .text:000145A8 BL strcmp .text:000145AC CMP R0, #0 .text:000145B0 LDR R12, [R11,#var_A8] .text:000145B4 BNE loc_145F8 .text:000145B8 .text:000145B8 loc_145B8 ; CODE XREF: _dl_lookup_symbol_skip+9BCj .text:000145B8 CMP R7, #0 .text:000145BC BEQ loc_1461C .text:000145C0 MOV R3, R5,LSL#1 .text:000145C4 LDRB R1, [R3,R7] .text:000145C8 ADD R3, R3, R7 .text:000145CC LDRB R2, [R3,#1] .text:000145D0 ORR R2, R1, R2,LSL#8 .text:000145D4 MOV R3, R2,LSL#17 .text:000145D8 MOV R3, R3,LSR#17 .text:000145DC CMP R3, #2 .text:000145E0 BLS loc_1461C .text:000145E4 TST R2, #0x8000 .text:000145E8 BNE loc_145F8 .text:000145EC ADD R10, R10, #1 .text:000145F0 CMP R10, #1 .text:000145F4 MOVEQ R9, R4 .text:000145F8 .text:000145F8 loc_145F8 ; CODE XREF: _dl_lookup_symbol_skip+994j .text:000145F8 ; _dl_lookup_symbol_skip+9A0j ... .text:000145F8 LDR R3, [R6,#0x124] .text:000145FC LDR R5, [R3,R5,LSL#2] .text:00014600 CMP R5, #0 .text:00014604 BNE loc_14558 .text:00014608 .text:00014608 loc_14608 ; CODE XREF: _dl_lookup_symbol_skip+980j .text:00014608 CMP R10, #1 .text:0001460C MOVEQ R4, R9 .text:00014610 MOVNE R4, #0 .text:00014614 CMP R4, #0 .text:00014618 BEQ loc_14674 .text:0001461C .text:0001461C loc_1461C ; CODE XREF: _dl_lookup_symbol_skip+9E8j .text:0001461C ; _dl_lookup_symbol_skip+A0Cj .text:0001461C LDRB R3, [R4,#0xC] .text:00014620 MOV R3, R3,LSR#4 .text:00014624 CMP R3, #1 .text:00014628 BEQ loc_14654 .text:0001462C CMP R3, #2 .text:00014630 BNE loc_14674 .text:00014634 LDR R3, =_dl_dynamic_weak .text:00014638 LDR R2, [R3] .text:0001463C CMP R2, #0 .text:00014640 BEQ loc_14654 .text:00014644 LDR R3, [R12] .text:00014648 CMP R3, #0 .text:0001464C STMEQIA R12, {R4,R6} .text:00014650 B loc_14674 .text:00014654 ; --------------------------------------------------------------------------- .text:00014654 .text:00014654 loc_14654 ; CODE XREF: _dl_lookup_symbol_skip+864j .text:00014654 ; _dl_lookup_symbol_skip+87Cj ... .text:00014654 STR R4, [R12] .text:00014658 MOV R3, #1 .text:0001465C STR R6, [R12,#4] .text:00014660 B loc_14690 .text:00014660 ; --------------------------------------------------------------------------- .text:00014664 off_14664 DCD _dl_debug_mask ; DATA XREF: _dl_lookup_symbol_skip+714r .text:00014664 ; _dl_lookup_symbol_skip+90Cr .text:00014668 off_14668 DCD aSymbolSLookupI ; DATA XREF: _dl_lookup_symbol_skip+730r .text:00014668 ; _dl_lookup_symbol_skip+924r .text:00014668 ; "symbol=%s; lookup in file=%s\n" .text:0001466C off_1466C DCD _dl_argv ; DATA XREF: _dl_lookup_symbol_skip+734r .text:0001466C ; _dl_lookup_symbol_skip+92Cr .text:00014670 off_14670 DCD _dl_dynamic_weak ; DATA XREF: _dl_lookup_symbol_skip+870r .text:00014670 ; _dl_lookup_symbol_skip+A60r .text:00014674 ; --------------------------------------------------------------------------- .text:00014674 .text:00014674 loc_14674 ; CODE XREF: _dl_lookup_symbol_skip+908j .text:00014674 ; _dl_lookup_symbol_skip+A44j ... .text:00014674 LDR R3, [R11,#var_98] .text:00014678 LDR LR, [R11,#var_A0] .text:0001467C ADD R3, R3, #1 .text:00014680 CMP R3, LR .text:00014684 STR R3, [R11,#var_98] .text:00014688 BCC loc_144AC .text:0001468C .text:0001468C loc_1468C ; CODE XREF: _dl_lookup_symbol_skip+89Cj .text:0001468C MOV R3, #0 .text:00014690 .text:00014690 loc_14690 ; CODE XREF: _dl_lookup_symbol_skip+A8Cj .text:00014690 CMP R3, #0 .text:00014694 BEQ loc_14474 .text:00014698 .text:00014698 loc_14698 ; CODE XREF: _dl_lookup_symbol_skip+8B0j .text:00014698 LDR R3, [R11,#var_38] .text:0001469C CMP R3, #0 .text:000146A0 BEQ loc_146B4 .text:000146A4 LDR R3, [R12,#4] .text:000146A8 LDR R0, [R11,#var_40] .text:000146AC CMP R3, R0 .text:000146B0 BNE loc_146C8 .text:000146B4 .text:000146B4 loc_146B4 ; CODE XREF: _dl_lookup_symbol_skip+ACCj .text:000146B4 LDR R3, [R11,#var_30] .text:000146B8 LDR R1, [R11,#var_44] .text:000146BC STR R3, [R1] .text:000146C0 LDR R2, [R11,#var_2C] .text:000146C4 B loc_146CC .text:000146C8 ; --------------------------------------------------------------------------- .text:000146C8 .text:000146C8 loc_146C8 ; CODE XREF: _dl_lookup_symbol_skip+ADCj .text:000146C8 LDR R2, [R11,#var_40] .text:000146CC .text:000146CC loc_146CC ; CODE XREF: _dl_lookup_symbol_skip+674j .text:000146CC ; _dl_lookup_symbol_skip+AF0j .text:000146CC LDR R0, [R2] .text:000146D0 .text:000146D0 locret_146D0 ; CODE XREF: _dl_lookup_symbol_skip+5A4j .text:000146D0 LDMDB R11, {R4-R11,SP,PC} .text:000146D0 ; End of function _dl_lookup_symbol_skip .text:000146D0 .text:000146D4 .text:000146D4 ; =============== S U B R O U T I N E ======================================= .text:000146D4 .text:000146D4 ; Attributes: bp-based frame .text:000146D4 .text:000146D4 EXPORT _dl_lookup_versioned_symbol .text:000146D4 _dl_lookup_versioned_symbol ; CODE XREF: .text:000522A8p .text:000146D4 ; fixup+D4p ... .text:000146D4 .text:000146D4 var_D8 = -0xD8 .text:000146D4 var_D4 = -0xD4 .text:000146D4 var_D0 = -0xD0 .text:000146D4 var_CC = -0xCC .text:000146D4 var_C8 = -0xC8 .text:000146D4 var_C4 = -0xC4 .text:000146D4 var_C0 = -0xC0 .text:000146D4 var_BC = -0xBC .text:000146D4 var_B8 = -0xB8 .text:000146D4 var_B4 = -0xB4 .text:000146D4 var_B0 = -0xB0 .text:000146D4 var_AC = -0xAC .text:000146D4 var_A8 = -0xA8 .text:000146D4 var_A4 = -0xA4 .text:000146D4 var_A0 = -0xA0 .text:000146D4 var_9C = -0x9C .text:000146D4 var_98 = -0x98 .text:000146D4 var_94 = -0x94 .text:000146D4 var_90 = -0x90 .text:000146D4 var_8C = -0x8C .text:000146D4 var_88 = -0x88 .text:000146D4 var_84 = -0x84 .text:000146D4 var_80 = -0x80 .text:000146D4 var_7C = -0x7C .text:000146D4 var_78 = -0x78 .text:000146D4 var_74 = -0x74 .text:000146D4 var_70 = -0x70 .text:000146D4 var_68 = -0x68 .text:000146D4 var_64 = -0x64 .text:000146D4 var_60 = -0x60 .text:000146D4 var_5C = -0x5C .text:000146D4 var_58 = -0x58 .text:000146D4 var_54 = -0x54 .text:000146D4 var_50 = -0x50 .text:000146D4 var_4C = -0x4C .text:000146D4 var_48 = -0x48 .text:000146D4 arg_0 = 4 .text:000146D4 arg_4 = 8 .text:000146D4 arg_8 = 0xC .text:000146D4 .text:000146D4 MOV R12, SP .text:000146D8 STMFD SP!, {R4-R12,LR,PC} .text:000146DC SUB R11, R12, #4 .text:000146E0 SUB SP, SP, #0xB0 .text:000146E4 STR R0, [R11,#var_7C] .text:000146E8 STR R1, [R11,#var_80] .text:000146EC STR R2, [R11,#var_84] .text:000146F0 STR R3, [R11,#var_88] .text:000146F4 SUB R0, R11, #-var_70 .text:000146F8 STR R0, [R11,#var_D0] .text:000146FC .text:000146FC loc_146FC ; CODE XREF: _dl_lookup_versioned_symbol+500j .text:000146FC LDR R1, [R11,#var_80] .text:00014700 MOV R2, #0 .text:00014704 STR R2, [R11,#var_8C] .text:00014708 CMP R1, #0 .text:0001470C LDRNE R3, [R1,#4] .text:00014710 STRNE R3, [R11,#var_8C] .text:00014714 LDR R4, [R11,#var_7C] .text:00014718 LDRB R3, [R4] .text:0001471C MOV R0, #0 .text:00014720 STR R0, [R11,#var_90] .text:00014724 CMP R3, R0 .text:00014728 BEQ loc_147D0 .text:0001472C LDRB R3, [R4,#1] .text:00014730 MOV R1, R4 .text:00014734 LDRB R2, [R1],#1 .text:00014738 CMP R3, R0 .text:0001473C STR R2, [R11,#var_90] .text:00014740 BEQ loc_147D0 .text:00014744 LDRB R3, [R4,#1] .text:00014748 LDR R4, [R11,#var_90] .text:0001474C LDRB R2, [R1,#1]! .text:00014750 ADD R4, R3, R4,LSL#4 .text:00014754 CMP R2, R0 .text:00014758 STR R4, [R11,#var_90] .text:0001475C BEQ loc_147D0 .text:00014760 LDRB R3, [R1] .text:00014764 LDRB R2, [R1,#1]! .text:00014768 ADD R4, R3, R4,LSL#4 .text:0001476C CMP R2, R0 .text:00014770 STR R4, [R11,#var_90] .text:00014774 BEQ loc_147D0 .text:00014778 LDRB R3, [R1] .text:0001477C LDRB R2, [R1,#1]! .text:00014780 ADD R4, R3, R4,LSL#4 .text:00014784 CMP R2, R0 .text:00014788 STR R4, [R11,#var_90] .text:0001478C BEQ loc_147D0 .text:00014790 LDRB R3, [R1] .text:00014794 LDRB R2, [R1,#1]! .text:00014798 ADD R4, R3, R4,LSL#4 .text:0001479C CMP R2, R0 .text:000147A0 STR R4, [R11,#var_90] .text:000147A4 BEQ loc_147D0 .text:000147A8 .text:000147A8 loc_147A8 ; CODE XREF: _dl_lookup_versioned_symbol+F8j .text:000147A8 LDRB R3, [R1] .text:000147AC LDR R0, [R11,#var_90] .text:000147B0 ADD R0, R3, R0,LSL#4 .text:000147B4 AND R2, R0, #0xF0000000 .text:000147B8 EOR R0, R0, R2 .text:000147BC LDRB R3, [R1,#1]! .text:000147C0 EOR R0, R0, R2,LSR#24 .text:000147C4 STR R0, [R11,#var_90] .text:000147C8 CMP R3, #0 .text:000147CC BNE loc_147A8 .text:000147D0 .text:000147D0 loc_147D0 ; CODE XREF: _dl_lookup_versioned_symbol+54j .text:000147D0 ; _dl_lookup_versioned_symbol+6Cj ... .text:000147D0 LDR R4, [R11,#var_D0] .text:000147D4 MOV R3, #0 .text:000147D8 MOV R2, #0 .text:000147DC STMIA R4, {R2,R3} .text:000147E0 LDR R0, =_dl_num_relocations .text:000147E4 LDR R3, [R0] .text:000147E8 ADD R3, R3, #1 .text:000147EC STR R3, [R0] .text:000147F0 LDR R1, [R11,#var_88] .text:000147F4 LDR R2, [R11,#arg_4] .text:000147F8 STR R1, [R11,#var_94] .text:000147FC CMP R2, #0x14 .text:00014800 MOVNE R2, #0 .text:00014804 MOVEQ R2, #1 .text:00014808 STR R2, [R11,#var_98] .text:0001480C LDR R4, [R11,#arg_4] .text:00014810 LDR R3, [R1] .text:00014814 CMP R4, #0x16 .text:00014818 MOVNE R4, #0 .text:0001481C MOVEQ R4, #1 .text:00014820 STR R4, [R11,#var_9C] .text:00014824 CMP R3, #0 .text:00014828 BEQ loc_14D08 .text:0001482C .text:0001482C loc_1482C ; CODE XREF: _dl_lookup_versioned_symbol+630j .text:0001482C LDR R0, [R11,#var_84] .text:00014830 LDR R0, [R0] .text:00014834 STR R0, [R11,#var_A0] .text:00014838 LDR R1, [R11,#var_94] .text:0001483C LDR R3, [R1] .text:00014840 LDR R2, [R3] .text:00014844 MOV R4, #0 .text:00014848 STR R4, [R11,#var_A4] .text:0001484C STR R2, [R11,#var_A8] .text:00014850 LDR R3, [R3,#4] .text:00014854 STR R3, [R11,#var_AC] .text:00014858 .text:00014858 loc_14858 ; CODE XREF: _dl_lookup_versioned_symbol+4A0j .text:00014858 LDR R0, [R11,#var_98] .text:0001485C LDR R1, [R11,#var_A4] .text:00014860 LDR R2, [R11,#var_A8] .text:00014864 CMP R0, #0 .text:00014868 LDR R7, [R2,R1,LSL#2] .text:0001486C BEQ loc_1487C .text:00014870 LDRB R3, [R7,#0x12C] .text:00014874 TST R3, #3 .text:00014878 BEQ loc_14B60 .text:0001487C .text:0001487C loc_1487C ; CODE XREF: _dl_lookup_versioned_symbol+198j .text:0001487C LDR R3, =_dl_debug_mask .text:00014880 LDR R2, [R3] .text:00014884 TST R2, #8 .text:00014888 BEQ loc_148B0 .text:0001488C LDR R2, [R7,#4] .text:00014890 LDRB R3, [R2] .text:00014894 LDR R0, =aSymbolSLookupI ; "symbol=%s; lookup in file=%s\n" .text:00014898 CMP R3, #0 .text:0001489C LDREQ R3, =_dl_argv .text:000148A0 LDREQ R2, [R3] .text:000148A4 LDREQ R2, [R2] .text:000148A8 LDR R1, [R11,#var_7C] .text:000148AC BL _dl_debug_printf .text:000148B0 .text:000148B0 loc_148B0 ; CODE XREF: _dl_lookup_versioned_symbol+1B4j .text:000148B0 LDR R1, [R7,#0x11C] .text:000148B4 ADD R2, R7, #0x2C .text:000148B8 LDMIA R2, {R2,R3} .text:000148BC LDR R3, [R3,#4] .text:000148C0 STR R3, [R11,#var_B0] .text:000148C4 LDR R2, [R2,#4] .text:000148C8 STR R2, [R11,#var_B4] .text:000148CC LDR R0, [R11,#var_90] .text:000148D0 LDR R9, [R7,#0x144] .text:000148D4 BL __umodsi3 .text:000148D8 LDR R3, [R7,#0x120] .text:000148DC LDR R10, [R3,R0,LSL#2] .text:000148E0 CMP R10, #0 .text:000148E4 BEQ loc_14AC4 .text:000148E8 .text:000148E8 loc_148E8 ; CODE XREF: _dl_lookup_versioned_symbol+394j .text:000148E8 LDR R3, [R11,#var_B0] .text:000148EC MOV R2, R10,LSL#4 .text:000148F0 ADD R8, R3, R2 .text:000148F4 LDR R3, [R8,#4] .text:000148F8 CMP R3, #0 .text:000148FC BEQ loc_14A5C .text:00014900 LDR R4, [R11,#var_9C] .text:00014904 CMP R4, #0 .text:00014908 BEQ loc_14918 .text:0001490C LDR R3, [R8,#0xC] .text:00014910 MOVS R3, R3,LSR#16 .text:00014914 BEQ loc_14A5C .text:00014918 .text:00014918 loc_14918 ; CODE XREF: _dl_lookup_versioned_symbol+234j .text:00014918 LDRB R3, [R8,#0xC] .text:0001491C AND R3, R3, #0xF .text:00014920 CMP R3, #2 .text:00014924 BHI loc_14A5C .text:00014928 LDR R0, [R11,#var_A0] .text:0001492C CMP R8, R0 .text:00014930 BEQ loc_14954 .text:00014934 LDR R1, [R11,#var_B0] .text:00014938 LDR R0, [R1,R2] .text:0001493C LDR R2, [R11,#var_B4] .text:00014940 LDR R1, [R11,#var_7C] .text:00014944 ADD R0, R2, R0 .text:00014948 BL strcmp .text:0001494C CMP R0, #0 .text:00014950 BNE loc_14A5C .text:00014954 .text:00014954 loc_14954 ; CODE XREF: _dl_lookup_versioned_symbol+25Cj .text:00014954 CMP R9, #0 .text:00014958 BNE loc_149DC .text:0001495C LDR R3, [R11,#arg_0] .text:00014960 LDR R6, [R3,#0xC] .text:00014964 CMP R6, #0 .text:00014968 BEQ loc_14A70 .text:0001496C LDR R1, [R7,#4] .text:00014970 MOV R0, R6 .text:00014974 BL strcmp .text:00014978 LDR R4, [R7,#0x14] .text:0001497C CMP R0, #0 .text:00014980 MOVNE R5, #0 .text:00014984 MOVEQ R5, #1 .text:00014988 CMP R4, #0 .text:0001498C CMPNE R0, #0 .text:00014990 BEQ loc_149C0 .text:00014994 .text:00014994 loc_14994 ; CODE XREF: _dl_lookup_versioned_symbol+2E8j .text:00014994 LDR R1, [R4] .text:00014998 MOV R0, R6 .text:0001499C BL strcmp .text:000149A0 CMP R0, #0 .text:000149A4 MOVEQ R5, #1 .text:000149A8 LDRNE R4, [R4,#4] .text:000149AC CMP R4, #0 .text:000149B0 EORNE R3, R5, #1 .text:000149B4 MOVEQ R3, #0 .text:000149B8 CMP R3, #0 .text:000149BC BNE loc_14994 .text:000149C0 .text:000149C0 loc_149C0 ; CODE XREF: _dl_lookup_versioned_symbol+2BCj .text:000149C0 CMP R5, #0 .text:000149C4 BEQ loc_14A70 .text:000149C8 LDR R0, =aVersionFilenam ; "version->filename == ((void *)0) || ! _"... .text:000149CC LDR R1, =aDoLookup_h ; "do-lookup.h" .text:000149D0 LDR R3, =aDo_lookup_vers ; "do_lookup_versioned" .text:000149D4 MOV R2, #0x68 .text:000149D8 BL __assert_fail .text:000149DC ; --------------------------------------------------------------------------- .text:000149DC .text:000149DC loc_149DC ; CODE XREF: _dl_lookup_versioned_symbol+284j .text:000149DC MOV R5, R10,LSL#1 .text:000149E0 LDRB R2, [R5,R9] .text:000149E4 ADD R6, R5, R9 .text:000149E8 LDRB R3, [R6,#1] .text:000149EC LDR R12, [R7,#0x134] .text:000149F0 ORR R2, R2, R3,LSL#8 .text:000149F4 MOV R0, R2,LSL#17 .text:000149F8 MOV R0, R0,LSR#17 .text:000149FC MOV R4, R0,LSL#4 .text:00014A00 ADD R3, R4, R12 .text:00014A04 LDR R1, [R3,#4] .text:00014A08 LDR R3, [R11,#arg_0] .text:00014A0C LDR R2, [R3,#4] .text:00014A10 CMP R1, R2 .text:00014A14 BNE loc_14A2C .text:00014A18 LDR R0, [R12,R0,LSL#4] .text:00014A1C LDR R1, [R3] .text:00014A20 BL strcmp .text:00014A24 CMP R0, #0 .text:00014A28 BEQ loc_14A70 .text:00014A2C .text:00014A2C loc_14A2C ; CODE XREF: _dl_lookup_versioned_symbol+340j .text:00014A2C LDR R0, [R11,#arg_0] .text:00014A30 LDR R3, [R0,#8] .text:00014A34 CMP R3, #0 .text:00014A38 BNE loc_14A5C .text:00014A3C LDR R3, [R7,#0x134] .text:00014A40 ADD R3, R4, R3 .text:00014A44 LDR R2, [R3,#4] .text:00014A48 CMP R2, #0 .text:00014A4C BNE loc_14A5C .text:00014A50 LDRB R3, [R6,#1] .text:00014A54 MOVS R3, R3,LSR#7 .text:00014A58 BEQ loc_14A70 .text:00014A5C .text:00014A5C loc_14A5C ; CODE XREF: _dl_lookup_versioned_symbol+228j .text:00014A5C ; _dl_lookup_versioned_symbol+240j ... .text:00014A5C LDR R3, [R7,#0x124] .text:00014A60 LDR R10, [R3,R10,LSL#2] .text:00014A64 CMP R10, #0 .text:00014A68 BNE loc_148E8 .text:00014A6C B loc_14AC4 .text:00014A70 ; --------------------------------------------------------------------------- .text:00014A70 .text:00014A70 loc_14A70 ; CODE XREF: _dl_lookup_versioned_symbol+294j .text:00014A70 ; _dl_lookup_versioned_symbol+2F0j ... .text:00014A70 LDRB R3, [R8,#0xC] .text:00014A74 MOV R3, R3,LSR#4 .text:00014A78 CMP R3, #1 .text:00014A7C BEQ loc_14AB0 .text:00014A80 CMP R3, #2 .text:00014A84 BNE loc_14AC4 .text:00014A88 LDR R3, =_dl_dynamic_weak .text:00014A8C LDR R2, [R3] .text:00014A90 CMP R2, #0 .text:00014A94 BEQ loc_14AB0 .text:00014A98 LDR R1, [R11,#var_D0] .text:00014A9C LDR R3, [R1] .text:00014AA0 CMP R3, #0 .text:00014AA4 STREQ R8, [R1] .text:00014AA8 STREQ R7, [R1,#4] .text:00014AAC B loc_14AC4 .text:00014AB0 ; --------------------------------------------------------------------------- .text:00014AB0 .text:00014AB0 loc_14AB0 ; CODE XREF: _dl_lookup_versioned_symbol+3A8j .text:00014AB0 ; _dl_lookup_versioned_symbol+3C0j .text:00014AB0 LDR R2, [R11,#var_D0] .text:00014AB4 STR R8, [R2] .text:00014AB8 MOV R0, #1 .text:00014ABC STR R7, [R2,#4] .text:00014AC0 B loc_14B7C .text:00014AC4 ; --------------------------------------------------------------------------- .text:00014AC4 .text:00014AC4 loc_14AC4 ; CODE XREF: _dl_lookup_versioned_symbol+210j .text:00014AC4 ; _dl_lookup_versioned_symbol+398j ... .text:00014AC4 CMP R10, #0 .text:00014AC8 BNE loc_14B60 .text:00014ACC LDR R3, [R11,#arg_0] .text:00014AD0 LDR R6, [R3,#0xC] .text:00014AD4 CMP R6, #0 .text:00014AD8 BEQ loc_14B60 .text:00014ADC LDR R1, [R7,#4] .text:00014AE0 MOV R0, R6 .text:00014AE4 BL strcmp .text:00014AE8 LDR R4, [R7,#0x14] .text:00014AEC CMP R0, #0 .text:00014AF0 MOVNE R5, #0 .text:00014AF4 MOVEQ R5, #1 .text:00014AF8 CMP R4, #0 .text:00014AFC CMPNE R0, #0 .text:00014B00 BEQ loc_14B58 .text:00014B04 .text:00014B04 loc_14B04 ; CODE XREF: _dl_lookup_versioned_symbol+480j .text:00014B04 LDR R1, [R4] .text:00014B08 MOV R0, R6 .text:00014B0C BL strcmp .text:00014B10 CMP R0, #0 .text:00014B14 BNE loc_14B40 .text:00014B18 MOV R5, #1 .text:00014B1C B loc_14B44 .text:00014B1C ; --------------------------------------------------------------------------- .text:00014B20 off_14B20 DCD _dl_num_relocations ; DATA XREF: _dl_lookup_versioned_symbol+10Cr .text:00014B24 off_14B24 DCD _dl_debug_mask ; DATA XREF: _dl_lookup_versioned_symbol:loc_1487Cr .text:00014B28 off_14B28 DCD aSymbolSLookupI ; DATA XREF: _dl_lookup_versioned_symbol+1C0r .text:00014B28 ; "symbol=%s; lookup in file=%s\n" .text:00014B2C off_14B2C DCD _dl_argv ; DATA XREF: _dl_lookup_versioned_symbol+1C8r .text:00014B30 off_14B30 DCD aVersionFilenam ; DATA XREF: _dl_lookup_versioned_symbol+2F4r .text:00014B30 ; "version->filename == ((void *)0) || ! _"... .text:00014B34 off_14B34 DCD aDoLookup_h ; DATA XREF: _dl_lookup_versioned_symbol+2F8r .text:00014B34 ; "do-lookup.h" .text:00014B38 off_14B38 DCD aDo_lookup_vers ; DATA XREF: _dl_lookup_versioned_symbol+2FCr .text:00014B38 ; "do_lookup_versioned" .text:00014B3C off_14B3C DCD _dl_dynamic_weak ; DATA XREF: _dl_lookup_versioned_symbol+3B4r .text:00014B40 ; --------------------------------------------------------------------------- .text:00014B40 .text:00014B40 loc_14B40 ; CODE XREF: _dl_lookup_versioned_symbol+440j .text:00014B40 LDR R4, [R4,#4] .text:00014B44 .text:00014B44 loc_14B44 ; CODE XREF: _dl_lookup_versioned_symbol+448j .text:00014B44 CMP R4, #0 .text:00014B48 EORNE R3, R5, #1 .text:00014B4C MOVEQ R3, #0 .text:00014B50 CMP R3, #0 .text:00014B54 BNE loc_14B04 .text:00014B58 .text:00014B58 loc_14B58 ; CODE XREF: _dl_lookup_versioned_symbol+42Cj .text:00014B58 CMP R5, #0 .text:00014B5C BNE loc_14BD8 .text:00014B60 .text:00014B60 loc_14B60 ; CODE XREF: _dl_lookup_versioned_symbol+1A4j .text:00014B60 ; _dl_lookup_versioned_symbol+3F4j ... .text:00014B60 LDR R4, [R11,#var_A4] .text:00014B64 LDR R0, [R11,#var_AC] .text:00014B68 ADD R4, R4, #1 .text:00014B6C CMP R4, R0 .text:00014B70 STR R4, [R11,#var_A4] .text:00014B74 BCC loc_14858 .text:00014B78 MOV R0, #0 .text:00014B7C .text:00014B7C loc_14B7C ; CODE XREF: _dl_lookup_versioned_symbol+3ECj .text:00014B7C ; _dl_lookup_versioned_symbol+508j .text:00014B7C CMP R0, #0 .text:00014B80 BLE loc_14BE0 .text:00014B84 LDR R2, [R11,#var_D0] .text:00014B88 LDR R1, [R2,#4] .text:00014B8C LDRB R3, [R1,#0x12C] .text:00014B90 AND R3, R3, #0x13 .text:00014B94 CMP R3, #0x12 .text:00014B98 BNE loc_14D08 .text:00014B9C LDR R4, [R11,#arg_8] .text:00014BA0 LDR R0, [R11,#var_80] .text:00014BA4 CMP R4, #0 .text:00014BA8 MOVNE R3, #0 .text:00014BAC MOVEQ R3, #1 .text:00014BB0 CMP R0, R1 .text:00014BB4 MOVEQ R3, #0 .text:00014BB8 CMP R3, #0 .text:00014BBC BEQ loc_14D08 .text:00014BC0 BL add_dependency .text:00014BC4 CMP R0, #0 .text:00014BC8 BGE loc_14D08 .text:00014BCC MOV R1, #0 .text:00014BD0 STR R1, [R11,#arg_8] .text:00014BD4 B loc_146FC .text:00014BD8 ; --------------------------------------------------------------------------- .text:00014BD8 .text:00014BD8 loc_14BD8 ; CODE XREF: _dl_lookup_versioned_symbol+488j .text:00014BD8 MOV R0, 0xFFFFFFFF .text:00014BDC B loc_14B7C .text:00014BE0 ; --------------------------------------------------------------------------- .text:00014BE0 .text:00014BE0 loc_14BE0 ; CODE XREF: _dl_lookup_versioned_symbol+4ACj .text:00014BE0 BGE loc_14CF4 .text:00014BE4 LDR R2, [R11,#var_8C] .text:00014BE8 CMP R2, #0 .text:00014BEC BEQ loc_14BFC .text:00014BF0 LDRB R3, [R2] .text:00014BF4 CMP R3, #0 .text:00014BF8 BNE loc_14C18 .text:00014BFC .text:00014BFC loc_14BFC ; CODE XREF: _dl_lookup_versioned_symbol+518j .text:00014BFC LDR R3, =_dl_argv .text:00014C00 LDR R2, [R3] .text:00014C04 LDR R1, [R2] .text:00014C08 LDR R7, =aMainProgram ; "<main program>" .text:00014C0C CMP R1, #0 .text:00014C10 MOVNE R7, R1 .text:00014C14 B loc_14C1C .text:00014C18 ; --------------------------------------------------------------------------- .text:00014C18 .text:00014C18 loc_14C18 ; CODE XREF: _dl_lookup_versioned_symbol+524j .text:00014C18 LDR R7, [R11,#var_8C] .text:00014C1C .text:00014C1C loc_14C1C ; CODE XREF: _dl_lookup_versioned_symbol+540j .text:00014C1C LDR R3, [R11,#var_7C] .text:00014C20 STR R3, [R11,#var_64] .text:00014C24 LDR R2, =aVersion ; ", version " .text:00014C28 STR R2, [R11,#var_60] .text:00014C2C LDR R3, =aSymbol ; "symbol " .text:00014C30 STR R3, [R11,#var_68] .text:00014C34 LDR R4, [R11,#arg_0] .text:00014C38 LDR R2, =aNotDefinedInFi ; " not defined in file " .text:00014C3C LDR R3, [R4] .text:00014C40 STR R2, [R11,#var_58] .text:00014C44 STR R3, [R11,#var_5C] .text:00014C48 LDR R2, =aWithLinkTimeRe ; " with link time reference" .text:00014C4C LDR R3, [R4,#0xC] .text:00014C50 STR R2, [R11,#var_50] .text:00014C54 STR R3, [R11,#var_54] .text:00014C58 LDR R2, =aNoVersionSymbo ; " (no version symbols)" .text:00014C5C LDR R3, =dword_56184 .text:00014C60 CMN R0, #2 .text:00014C64 MOVEQ R3, R2 .text:00014C68 STR R3, [R11,#var_4C] .text:00014C6C SUB R12, R11, #-var_68 .text:00014C70 LDMIA R12!, {R0-R3} .text:00014C74 SUB LR, R11, #-var_48 .text:00014C78 STMIA LR!, {R0-R3} .text:00014C7C MOV R5, #1 .text:00014C80 SUB R6, R11, #-var_48 .text:00014C84 LDMIA R12, {R0-R3} .text:00014C88 MOV R4, #0 .text:00014C8C STMIA LR, {R0-R3} .text:00014C90 .text:00014C90 loc_14C90 ; CODE XREF: _dl_lookup_versioned_symbol+5D0j .text:00014C90 LDR R0, [R6,R4,LSL#2] .text:00014C94 ADD R4, R4, #1 .text:00014C98 BL strlen .text:00014C9C ADD R5, R5, R0 .text:00014CA0 CMP R4, #7 .text:00014CA4 BLS loc_14C90 .text:00014CA8 ADD R3, R5, #3 .text:00014CAC BIC R3, R3, #3 .text:00014CB0 RSB SP, R3, SP .text:00014CB4 ADD R5, SP, #0xD8+var_D0 .text:00014CB8 MOV R0, R5 .text:00014CBC MOV R4, #0 .text:00014CC0 .text:00014CC0 loc_14CC0 ; CODE XREF: _dl_lookup_versioned_symbol+5FCj .text:00014CC0 LDR R1, [R6,R4,LSL#2] .text:00014CC4 ADD R4, R4, #1 .text:00014CC8 BL stpcpy .text:00014CCC CMP R4, #7 .text:00014CD0 BLS loc_14CC0 .text:00014CD4 MOV R0, #0 .text:00014CD8 MOV R1, R7 .text:00014CDC MOV R2, R5 .text:00014CE0 BL _dl_signal_cerror .text:00014CE4 MOV R0, #0 .text:00014CE8 LDR R1, [R11,#var_84] .text:00014CEC STR R0, [R1] .text:00014CF0 B locret_152B4 .text:00014CF4 ; --------------------------------------------------------------------------- .text:00014CF4 .text:00014CF4 loc_14CF4 ; CODE XREF: _dl_lookup_versioned_symbol:loc_14BE0j .text:00014CF4 LDR R2, [R11,#var_94] .text:00014CF8 LDR R3, [R2,#4]! .text:00014CFC CMP R3, #0 .text:00014D00 STR R2, [R11,#var_94] .text:00014D04 BNE loc_1482C .text:00014D08 .text:00014D08 loc_14D08 ; CODE XREF: _dl_lookup_versioned_symbol+154j .text:00014D08 ; _dl_lookup_versioned_symbol+4C4j ... .text:00014D08 LDR R3, [R11,#var_70] .text:00014D0C CMP R3, #0 .text:00014D10 BNE loc_14E14 .text:00014D14 LDR R4, [R11,#var_84] .text:00014D18 LDR R3, [R4] .text:00014D1C CMP R3, #0 .text:00014D20 BEQ loc_14D34 .text:00014D24 LDRB R3, [R3,#0xC] .text:00014D28 MOV R3, R3,LSR#4 .text:00014D2C CMP R3, #2 .text:00014D30 BEQ loc_14E00 .text:00014D34 .text:00014D34 loc_14D34 ; CODE XREF: _dl_lookup_versioned_symbol+64Cj .text:00014D34 LDR R0, [R11,#var_8C] .text:00014D38 CMP R0, #0 .text:00014D3C BEQ loc_14D4C .text:00014D40 LDRB R3, [R0] .text:00014D44 CMP R3, #0 .text:00014D48 BNE loc_14D68 .text:00014D4C .text:00014D4C loc_14D4C ; CODE XREF: _dl_lookup_versioned_symbol+668j .text:00014D4C LDR R3, =_dl_argv .text:00014D50 LDR R2, [R3] .text:00014D54 LDR R1, [R2] .text:00014D58 LDR R7, =aMainProgram ; "<main program>" .text:00014D5C CMP R1, #0 .text:00014D60 MOVNE R7, R1 .text:00014D64 B loc_14D6C .text:00014D68 ; --------------------------------------------------------------------------- .text:00014D68 .text:00014D68 loc_14D68 ; CODE XREF: _dl_lookup_versioned_symbol+674j .text:00014D68 LDR R7, [R11,#var_8C] .text:00014D6C .text:00014D6C loc_14D6C ; CODE XREF: _dl_lookup_versioned_symbol+690j .text:00014D6C LDR R1, [R11,#var_7C] .text:00014D70 STR R1, [R11,#var_54] .text:00014D74 LDR R3, =undefined_msg ; "undefined symbol: " .text:00014D78 STR R3, [R11,#var_58] .text:00014D7C LDR R2, =aVersion ; ", version " .text:00014D80 STR R2, [R11,#var_50] .text:00014D84 LDR R2, [R11,#arg_0] .text:00014D88 LDR R3, [R2] .text:00014D8C STR R3, [R11,#var_4C] .text:00014D90 MOV R5, #1 .text:00014D94 MOV R4, #0 .text:00014D98 SUB R12, R11, #-var_58 .text:00014D9C SUB LR, R11, #-var_68 .text:00014DA0 LDMIA R12, {R0-R3} .text:00014DA4 MOV R6, LR .text:00014DA8 STMIA LR, {R0-R3} .text:00014DAC .text:00014DAC loc_14DAC ; CODE XREF: _dl_lookup_versioned_symbol+6ECj .text:00014DAC LDR R0, [R6,R4,LSL#2] .text:00014DB0 ADD R4, R4, #1 .text:00014DB4 BL strlen .text:00014DB8 ADD R5, R5, R0 .text:00014DBC CMP R4, #3 .text:00014DC0 BLS loc_14DAC .text:00014DC4 ADD R3, R5, #3 .text:00014DC8 BIC R3, R3, #3 .text:00014DCC RSB SP, R3, SP .text:00014DD0 ADD R5, SP, #0xD8+var_D0 .text:00014DD4 MOV R0, R5 .text:00014DD8 MOV R4, #0 .text:00014DDC .text:00014DDC loc_14DDC ; CODE XREF: _dl_lookup_versioned_symbol+718j .text:00014DDC LDR R1, [R6,R4,LSL#2] .text:00014DE0 ADD R4, R4, #1 .text:00014DE4 BL stpcpy .text:00014DE8 CMP R4, #3 .text:00014DEC BLS loc_14DDC .text:00014DF0 MOV R0, #0 .text:00014DF4 MOV R1, R7 .text:00014DF8 MOV R2, R5 .text:00014DFC BL _dl_signal_cerror .text:00014E00 .text:00014E00 loc_14E00 ; CODE XREF: _dl_lookup_versioned_symbol+65Cj .text:00014E00 MOV R3, #0 .text:00014E04 LDR R4, [R11,#var_84] .text:00014E08 MOV R0, R3 .text:00014E0C STR R3, [R4] .text:00014E10 B locret_152B4 .text:00014E14 ; --------------------------------------------------------------------------- .text:00014E14 .text:00014E14 loc_14E14 ; CODE XREF: _dl_lookup_versioned_symbol+63Cj .text:00014E14 LDR R0, [R11,#var_84] .text:00014E18 LDR R3, [R0] .text:00014E1C MOV R4, #0 .text:00014E20 CMP R3, R4 .text:00014E24 BEQ loc_14E3C .text:00014E28 LDRB R3, [R3,#0xD] .text:00014E2C AND R3, R3, #3 .text:00014E30 CMP R3, #3 .text:00014E34 MOVNE R4, #0 .text:00014E38 MOVEQ R4, #1 .text:00014E3C .text:00014E3C loc_14E3C ; CODE XREF: _dl_lookup_versioned_symbol+750j .text:00014E3C LDR R2, =_dl_debug_mask .text:00014E40 LDR R3, [R2] .text:00014E44 TST R3, #4 .text:00014E48 BEQ loc_14F08 .text:00014E4C LDR R1, [R11,#var_8C] .text:00014E50 CMP R1, #0 .text:00014E54 BEQ loc_14E64 .text:00014E58 LDRB R3, [R1] .text:00014E5C CMP R3, #0 .text:00014E60 BNE loc_14E80 .text:00014E64 .text:00014E64 loc_14E64 ; CODE XREF: _dl_lookup_versioned_symbol+780j .text:00014E64 LDR R3, =_dl_argv .text:00014E68 LDR R2, [R3] .text:00014E6C LDR R1, [R2] .text:00014E70 LDR LR, =aMainProgram ; "<main program>" .text:00014E74 CMP R1, #0 .text:00014E78 MOVNE LR, R1 .text:00014E7C B loc_14E84 .text:00014E80 ; --------------------------------------------------------------------------- .text:00014E80 .text:00014E80 loc_14E80 ; CODE XREF: _dl_lookup_versioned_symbol+78Cj .text:00014E80 LDR LR, [R11,#var_8C] .text:00014E84 .text:00014E84 loc_14E84 ; CODE XREF: _dl_lookup_versioned_symbol+7A8j .text:00014E84 LDR R2, [R11,#var_D0] .text:00014E88 LDR R3, [R2,#4] .text:00014E8C LDR R3, [R3,#4] .text:00014E90 LDRB R2, [R3] .text:00014E94 CMP R2, #0 .text:00014E98 BEQ loc_14ECC .text:00014E9C MOV R2, R3 .text:00014EA0 B loc_14ED8 .text:00014EA0 ; --------------------------------------------------------------------------- .text:00014EA4 off_14EA4 DCD _dl_argv ; DATA XREF: _dl_lookup_versioned_symbol:loc_14BFCr .text:00014EA4 ; _dl_lookup_versioned_symbol:loc_14D4Cr ... .text:00014EA8 off_14EA8 DCD aMainProgram ; DATA XREF: _dl_lookup_versioned_symbol+534r .text:00014EA8 ; _dl_lookup_versioned_symbol+684r ... .text:00014EA8 ; "<main program>" .text:00014EAC off_14EAC DCD aVersion ; DATA XREF: _dl_lookup_versioned_symbol+550r .text:00014EAC ; _dl_lookup_versioned_symbol+6A8r .text:00014EAC ; ", version " .text:00014EB0 off_14EB0 DCD aSymbol ; DATA XREF: _dl_lookup_versioned_symbol+558r .text:00014EB0 ; "symbol " .text:00014EB4 off_14EB4 DCD aNotDefinedInFi ; DATA XREF: _dl_lookup_versioned_symbol+564r .text:00014EB4 ; " not defined in file " .text:00014EB8 off_14EB8 DCD aWithLinkTimeRe ; DATA XREF: _dl_lookup_versioned_symbol+574r .text:00014EB8 ; " with link time reference" .text:00014EBC off_14EBC DCD aNoVersionSymbo ; DATA XREF: _dl_lookup_versioned_symbol+584r .text:00014EBC ; " (no version symbols)" .text:00014EC0 off_14EC0 DCD dword_56184 ; DATA XREF: _dl_lookup_versioned_symbol+588r .text:00014EC4 off_14EC4 DCD undefined_msg ; DATA XREF: _dl_lookup_versioned_symbol+6A0r .text:00014EC4 ; "undefined symbol: " .text:00014EC8 off_14EC8 DCD _dl_debug_mask ; DATA XREF: _dl_lookup_versioned_symbol:loc_14E3Cr .text:00014ECC ; --------------------------------------------------------------------------- .text:00014ECC .text:00014ECC loc_14ECC ; CODE XREF: _dl_lookup_versioned_symbol+7C4j .text:00014ECC LDR R3, =_dl_argv .text:00014ED0 LDR R2, [R3] .text:00014ED4 LDR R2, [R2] .text:00014ED8 .text:00014ED8 loc_14ED8 ; CODE XREF: _dl_lookup_versioned_symbol+7CCj .text:00014ED8 LDR R3, [R11,#var_7C] .text:00014EDC STR R3, [SP,#0xD8+var_D8] .text:00014EE0 LDR R0, [R11,#arg_0] .text:00014EE4 LDR R3, [R0] .text:00014EE8 STR R3, [SP,#0xD8+var_D4] .text:00014EEC LDR R12, =aNormal ; "normal" .text:00014EF0 MOV R1, LR .text:00014EF4 LDR R3, =aProtected ; "protected" .text:00014EF8 CMP R4, #0 .text:00014EFC LDR R0, =aBindingFileS_0 ; "binding file %s to %s: %s symbol `%s' ["... .text:00014F00 MOVEQ R3, R12 .text:00014F04 BL _dl_debug_printf .text:00014F08 .text:00014F08 loc_14F08 ; CODE XREF: _dl_lookup_versioned_symbol+774j .text:00014F08 CMP R4, #0 .text:00014F0C BEQ loc_15268 .text:00014F10 SUB R2, R11, #-var_78 .text:00014F14 MOV R1, #0 .text:00014F18 MOV R0, #0 .text:00014F1C STMIA R2, {R0,R1} .text:00014F20 LDR R1, [R11,#var_88] .text:00014F24 STR R1, [R11,#var_94] .text:00014F28 LDR R3, [R1] .text:00014F2C CMP R3, #0 .text:00014F30 BEQ loc_1524C .text:00014F34 .text:00014F34 loc_14F34 ; CODE XREF: _dl_lookup_versioned_symbol+B74j .text:00014F34 LDR R2, [R11,#var_84] .text:00014F38 LDR R2, [R2] .text:00014F3C STR R2, [R11,#var_B8] .text:00014F40 LDR R4, [R11,#var_94] .text:00014F44 LDR R3, [R4] .text:00014F48 LDR R0, [R3] .text:00014F4C MOV R1, #0 .text:00014F50 STR R1, [R11,#var_BC] .text:00014F54 STR R0, [R11,#var_C0] .text:00014F58 LDR R3, [R3,#4] .text:00014F5C STR R3, [R11,#var_C4] .text:00014F60 .text:00014F60 loc_14F60 ; CODE XREF: _dl_lookup_versioned_symbol+B54j .text:00014F60 LDR R2, =_dl_debug_mask .text:00014F64 LDR R3, [R2] .text:00014F68 LDR R4, [R11,#var_C0] .text:00014F6C TST R3, #8 .text:00014F70 LDR R3, [R11,#var_BC] .text:00014F74 LDR R7, [R4,R3,LSL#2] .text:00014F78 BEQ loc_14FA0 .text:00014F7C LDR R2, [R7,#4] .text:00014F80 LDRB R3, [R2] .text:00014F84 LDR R0, =aSymbolSLookupI ; "symbol=%s; lookup in file=%s\n" .text:00014F88 CMP R3, #0 .text:00014F8C LDREQ R3, =_dl_argv .text:00014F90 LDREQ R2, [R3] .text:00014F94 LDREQ R2, [R2] .text:00014F98 LDR R1, [R11,#var_7C] .text:00014F9C BL _dl_debug_printf .text:00014FA0 .text:00014FA0 loc_14FA0 ; CODE XREF: _dl_lookup_versioned_symbol+8A4j .text:00014FA0 LDR R1, [R7,#0x11C] .text:00014FA4 ADD R2, R7, #0x2C .text:00014FA8 LDMIA R2, {R2,R3} .text:00014FAC LDR R3, [R3,#4] .text:00014FB0 STR R3, [R11,#var_C8] .text:00014FB4 LDR R2, [R2,#4] .text:00014FB8 STR R2, [R11,#var_CC] .text:00014FBC LDR R0, [R11,#var_90] .text:00014FC0 LDR R9, [R7,#0x144] .text:00014FC4 BL __umodsi3 .text:00014FC8 LDR R3, [R7,#0x120] .text:00014FCC LDR R10, [R3,R0,LSL#2] .text:00014FD0 CMP R10, #0 .text:00014FD4 BEQ loc_1519C .text:00014FD8 .text:00014FD8 loc_14FD8 ; CODE XREF: _dl_lookup_versioned_symbol+A74j .text:00014FD8 LDR R0, [R11,#var_C8] .text:00014FDC MOV R2, R10,LSL#4 .text:00014FE0 ADD R8, R0, R2 .text:00014FE4 LDR R3, [R8,#4] .text:00014FE8 CMP R3, #0 .text:00014FEC BEQ loc_1513C .text:00014FF0 LDR R3, [R8,#0xC] .text:00014FF4 MOVS R3, R3,LSR#16 .text:00014FF8 BEQ loc_1513C .text:00014FFC LDRB R3, [R8,#0xC] .text:00015000 AND R3, R3, #0xF .text:00015004 CMP R3, #2 .text:00015008 BHI loc_1513C .text:0001500C LDR R1, [R11,#var_B8] .text:00015010 CMP R8, R1 .text:00015014 BEQ loc_15034 .text:00015018 LDR R0, [R0,R2] .text:0001501C LDR R2, [R11,#var_CC] .text:00015020 LDR R1, [R11,#var_7C] .text:00015024 ADD R0, R2, R0 .text:00015028 BL strcmp .text:0001502C CMP R0, #0 .text:00015030 BNE loc_1513C .text:00015034 .text:00015034 loc_15034 ; CODE XREF: _dl_lookup_versioned_symbol+940j .text:00015034 CMP R9, #0 .text:00015038 BNE loc_150BC .text:0001503C LDR R3, [R11,#arg_0] .text:00015040 LDR R6, [R3,#0xC] .text:00015044 CMP R6, #0 .text:00015048 BEQ loc_15150 .text:0001504C LDR R1, [R7,#4] .text:00015050 MOV R0, R6 .text:00015054 BL strcmp .text:00015058 LDR R4, [R7,#0x14] .text:0001505C CMP R0, #0 .text:00015060 MOVNE R5, #0 .text:00015064 MOVEQ R5, #1 .text:00015068 CMP R4, #0 .text:0001506C CMPNE R0, #0 .text:00015070 BEQ loc_150A0 .text:00015074 .text:00015074 loc_15074 ; CODE XREF: _dl_lookup_versioned_symbol+9C8j .text:00015074 LDR R1, [R4] .text:00015078 MOV R0, R6 .text:0001507C BL strcmp .text:00015080 CMP R0, #0 .text:00015084 MOVEQ R5, #1 .text:00015088 LDRNE R4, [R4,#4] .text:0001508C CMP R4, #0 .text:00015090 EORNE R3, R5, #1 .text:00015094 MOVEQ R3, #0 .text:00015098 CMP R3, #0 .text:0001509C BNE loc_15074 .text:000150A0 .text:000150A0 loc_150A0 ; CODE XREF: _dl_lookup_versioned_symbol+99Cj .text:000150A0 CMP R5, #0 .text:000150A4 BEQ loc_15150 .text:000150A8 LDR R0, =aVersionFilenam ; "version->filename == ((void *)0) || ! _"... .text:000150AC LDR R1, =aDoLookup_h ; "do-lookup.h" .text:000150B0 LDR R3, =aDo_lookup_vers ; "do_lookup_versioned" .text:000150B4 MOV R2, #0x68 .text:000150B8 BL __assert_fail .text:000150BC ; --------------------------------------------------------------------------- .text:000150BC .text:000150BC loc_150BC ; CODE XREF: _dl_lookup_versioned_symbol+964j .text:000150BC MOV R5, R10,LSL#1 .text:000150C0 LDRB R2, [R5,R9] .text:000150C4 ADD R6, R5, R9 .text:000150C8 LDRB R3, [R6,#1] .text:000150CC LDR R12, [R7,#0x134] .text:000150D0 ORR R2, R2, R3,LSL#8 .text:000150D4 MOV R0, R2,LSL#17 .text:000150D8 MOV R0, R0,LSR#17 .text:000150DC MOV R4, R0,LSL#4 .text:000150E0 ADD R3, R4, R12 .text:000150E4 LDR R1, [R3,#4] .text:000150E8 LDR R3, [R11,#arg_0] .text:000150EC LDR R2, [R3,#4] .text:000150F0 CMP R1, R2 .text:000150F4 BNE loc_1510C .text:000150F8 LDR R0, [R12,R0,LSL#4] .text:000150FC LDR R1, [R3] .text:00015100 BL strcmp .text:00015104 CMP R0, #0 .text:00015108 BEQ loc_15150 .text:0001510C .text:0001510C loc_1510C ; CODE XREF: _dl_lookup_versioned_symbol+A20j .text:0001510C LDR R0, [R11,#arg_0] .text:00015110 LDR R3, [R0,#8] .text:00015114 CMP R3, #0 .text:00015118 BNE loc_1513C .text:0001511C LDR R3, [R7,#0x134] .text:00015120 ADD R3, R4, R3 .text:00015124 LDR R2, [R3,#4] .text:00015128 CMP R2, #0 .text:0001512C BNE loc_1513C .text:00015130 LDRB R3, [R6,#1] .text:00015134 MOVS R3, R3,LSR#7 .text:00015138 BEQ loc_15150 .text:0001513C .text:0001513C loc_1513C ; CODE XREF: _dl_lookup_versioned_symbol+918j .text:0001513C ; _dl_lookup_versioned_symbol+924j ... .text:0001513C LDR R3, [R7,#0x124] .text:00015140 LDR R10, [R3,R10,LSL#2] .text:00015144 CMP R10, #0 .text:00015148 BNE loc_14FD8 .text:0001514C B loc_1519C .text:00015150 ; --------------------------------------------------------------------------- .text:00015150 .text:00015150 loc_15150 ; CODE XREF: _dl_lookup_versioned_symbol+974j .text:00015150 ; _dl_lookup_versioned_symbol+9D0j ... .text:00015150 LDRB R3, [R8,#0xC] .text:00015154 MOV R3, R3,LSR#4 .text:00015158 CMP R3, #1 .text:0001515C BEQ loc_1518C .text:00015160 CMP R3, #2 .text:00015164 BNE loc_1519C .text:00015168 LDR R3, =_dl_dynamic_weak .text:0001516C LDR R2, [R3] .text:00015170 CMP R2, #0 .text:00015174 BEQ loc_1518C .text:00015178 LDR R3, [R11,#var_78] .text:0001517C CMP R3, #0 .text:00015180 STREQ R8, [R11,#var_78] .text:00015184 STREQ R7, [R11,#var_74] .text:00015188 B loc_1519C .text:0001518C ; --------------------------------------------------------------------------- .text:0001518C .text:0001518C loc_1518C ; CODE XREF: _dl_lookup_versioned_symbol+A88j .text:0001518C ; _dl_lookup_versioned_symbol+AA0j .text:0001518C STR R8, [R11,#var_78] .text:00015190 MOV R3, #1 .text:00015194 STR R7, [R11,#var_74] .text:00015198 B loc_15230 .text:0001519C ; --------------------------------------------------------------------------- .text:0001519C .text:0001519C loc_1519C ; CODE XREF: _dl_lookup_versioned_symbol+900j .text:0001519C ; _dl_lookup_versioned_symbol+A78j ... .text:0001519C CMP R10, #0 .text:000151A0 BNE loc_15214 .text:000151A4 LDR R1, [R11,#arg_0] .text:000151A8 LDR R6, [R1,#0xC] .text:000151AC CMP R6, #0 .text:000151B0 BEQ loc_15214 .text:000151B4 LDR R1, [R7,#4] .text:000151B8 MOV R0, R6 .text:000151BC BL strcmp .text:000151C0 LDR R4, [R7,#0x14] .text:000151C4 CMP R0, #0 .text:000151C8 MOVNE R5, #0 .text:000151CC MOVEQ R5, #1 .text:000151D0 CMP R4, #0 .text:000151D4 CMPNE R0, #0 .text:000151D8 BEQ loc_15208 .text:000151DC .text:000151DC loc_151DC ; CODE XREF: _dl_lookup_versioned_symbol+B30j .text:000151DC LDR R1, [R4] .text:000151E0 MOV R0, R6 .text:000151E4 BL strcmp .text:000151E8 CMP R0, #0 .text:000151EC MOVEQ R5, #1 .text:000151F0 LDRNE R4, [R4,#4] .text:000151F4 CMP R4, #0 .text:000151F8 EORNE R3, R5, #1 .text:000151FC MOVEQ R3, #0 .text:00015200 CMP R3, #0 .text:00015204 BNE loc_151DC .text:00015208 .text:00015208 loc_15208 ; CODE XREF: _dl_lookup_versioned_symbol+B04j .text:00015208 CMP R5, #0 .text:0001520C MOVNE R3, 0xFFFFFFFF .text:00015210 BNE loc_15230 .text:00015214 .text:00015214 loc_15214 ; CODE XREF: _dl_lookup_versioned_symbol+ACCj .text:00015214 ; _dl_lookup_versioned_symbol+ADCj .text:00015214 LDR R2, [R11,#var_BC] .text:00015218 LDR R3, [R11,#var_C4] .text:0001521C ADD R2, R2, #1 .text:00015220 CMP R2, R3 .text:00015224 STR R2, [R11,#var_BC] .text:00015228 BCC loc_14F60 .text:0001522C MOV R3, #0 .text:00015230 .text:00015230 loc_15230 ; CODE XREF: _dl_lookup_versioned_symbol+AC4j .text:00015230 ; _dl_lookup_versioned_symbol+B3Cj .text:00015230 CMP R3, #0 .text:00015234 BNE loc_1524C .text:00015238 LDR R4, [R11,#var_94] .text:0001523C LDR R3, [R4,#4]! .text:00015240 CMP R3, #0 .text:00015244 STR R4, [R11,#var_94] .text:00015248 BNE loc_14F34 .text:0001524C .text:0001524C loc_1524C ; CODE XREF: _dl_lookup_versioned_symbol+85Cj .text:0001524C ; _dl_lookup_versioned_symbol+B60j .text:0001524C LDR R3, [R11,#var_78] .text:00015250 CMP R3, #0 .text:00015254 BEQ loc_15268 .text:00015258 LDR R3, [R11,#var_74] .text:0001525C LDR R0, [R11,#var_80] .text:00015260 CMP R3, R0 .text:00015264 BNE loc_152AC .text:00015268 .text:00015268 loc_15268 ; CODE XREF: _dl_lookup_versioned_symbol+838j .text:00015268 ; _dl_lookup_versioned_symbol+B80j .text:00015268 LDR R3, [R11,#var_70] .text:0001526C LDR R1, [R11,#var_84] .text:00015270 STR R3, [R1] .text:00015274 LDR R3, [R11,#var_D0] .text:00015278 LDR R2, [R3,#4] .text:0001527C LDR R0, [R2] .text:00015280 B locret_152B4 .text:00015280 ; --------------------------------------------------------------------------- .text:00015284 off_15284 DCD _dl_argv ; DATA XREF: _dl_lookup_versioned_symbol:loc_14ECCr .text:00015284 ; _dl_lookup_versioned_symbol+8B8r .text:00015288 off_15288 DCD aNormal ; DATA XREF: _dl_lookup_versioned_symbol+818r .text:00015288 ; "normal" .text:0001528C off_1528C DCD aProtected ; DATA XREF: _dl_lookup_versioned_symbol+820r .text:0001528C ; "protected" .text:00015290 off_15290 DCD aBindingFileS_0 ; DATA XREF: _dl_lookup_versioned_symbol+828r .text:00015290 ; "binding file %s to %s: %s symbol `%s' ["... .text:00015294 off_15294 DCD _dl_debug_mask ; DATA XREF: _dl_lookup_versioned_symbol:loc_14F60r .text:00015298 off_15298 DCD aSymbolSLookupI ; DATA XREF: _dl_lookup_versioned_symbol+8B0r .text:00015298 ; "symbol=%s; lookup in file=%s\n" .text:0001529C off_1529C DCD aVersionFilenam ; DATA XREF: _dl_lookup_versioned_symbol+9D4r .text:0001529C ; "version->filename == ((void *)0) || ! _"... .text:000152A0 off_152A0 DCD aDoLookup_h ; DATA XREF: _dl_lookup_versioned_symbol+9D8r .text:000152A0 ; "do-lookup.h" .text:000152A4 off_152A4 DCD aDo_lookup_vers ; DATA XREF: _dl_lookup_versioned_symbol+9DCr .text:000152A4 ; "do_lookup_versioned" .text:000152A8 off_152A8 DCD _dl_dynamic_weak ; DATA XREF: _dl_lookup_versioned_symbol+A94r .text:000152AC ; --------------------------------------------------------------------------- .text:000152AC .text:000152AC loc_152AC ; CODE XREF: _dl_lookup_versioned_symbol+B90j .text:000152AC LDR R4, [R11,#var_80] .text:000152B0 LDR R0, [R4] .text:000152B4 .text:000152B4 locret_152B4 ; CODE XREF: _dl_lookup_versioned_symbol+61Cj .text:000152B4 ; _dl_lookup_versioned_symbol+73Cj ... .text:000152B4 LDMDB R11, {R4-R11,SP,PC} .text:000152B4 ; End of function _dl_lookup_versioned_symbol .text:000152B4 .text:000152B8 .text:000152B8 ; =============== S U B R O U T I N E ======================================= .text:000152B8 .text:000152B8 ; Attributes: bp-based frame .text:000152B8 .text:000152B8 EXPORT _dl_lookup_versioned_symbol_skip .text:000152B8 _dl_lookup_versioned_symbol_skip .text:000152B8 .text:000152B8 var_C4 = -0xC4 .text:000152B8 var_C0 = -0xC0 .text:000152B8 var_BC = -0xBC .text:000152B8 var_B8 = -0xB8 .text:000152B8 var_B4 = -0xB4 .text:000152B8 var_B0 = -0xB0 .text:000152B8 var_AC = -0xAC .text:000152B8 var_A8 = -0xA8 .text:000152B8 var_A4 = -0xA4 .text:000152B8 var_A0 = -0xA0 .text:000152B8 var_9C = -0x9C .text:000152B8 var_98 = -0x98 .text:000152B8 var_94 = -0x94 .text:000152B8 var_90 = -0x90 .text:000152B8 var_8C = -0x8C .text:000152B8 var_88 = -0x88 .text:000152B8 var_84 = -0x84 .text:000152B8 var_80 = -0x80 .text:000152B8 var_7C = -0x7C .text:000152B8 var_78 = -0x78 .text:000152B8 var_74 = -0x74 .text:000152B8 var_70 = -0x70 .text:000152B8 var_6C = -0x6C .text:000152B8 var_68 = -0x68 .text:000152B8 var_64 = -0x64 .text:000152B8 var_60 = -0x60 .text:000152B8 var_5C = -0x5C .text:000152B8 var_58 = -0x58 .text:000152B8 var_54 = -0x54 .text:000152B8 var_50 = -0x50 .text:000152B8 var_4C = -0x4C .text:000152B8 var_48 = -0x48 .text:000152B8 var_44 = -0x44 .text:000152B8 var_40 = -0x40 .text:000152B8 var_3C = -0x3C .text:000152B8 var_38 = -0x38 .text:000152B8 var_34 = -0x34 .text:000152B8 var_30 = -0x30 .text:000152B8 var_2C = -0x2C .text:000152B8 arg_0 = 4 .text:000152B8 arg_4 = 8 .text:000152B8 .text:000152B8 MOV R12, SP .text:000152BC STMFD SP!, {R4-R12,LR,PC} .text:000152C0 SUB R11, R12, #4 .text:000152C4 MOV R12, #0 .text:000152C8 SUB SP, SP, #0x9C .text:000152CC STR R12, [R11,#var_48] .text:000152D0 STR R0, [R11,#var_3C] .text:000152D4 STR R2, [R11,#var_44] .text:000152D8 CMP R1, #0 .text:000152DC MOV R0, R3 .text:000152E0 STR R1, [R11,#var_40] .text:000152E4 LDRNE LR, [R1,#4] .text:000152E8 STRNE LR, [R11,#var_48] .text:000152EC LDR R1, [R11,#var_3C] .text:000152F0 LDR R12, =_dl_num_relocations .text:000152F4 LDRB R3, [R1] .text:000152F8 MOV R2, #0 .text:000152FC STR R2, [R11,#var_4C] .text:00015300 CMP R3, R2 .text:00015304 BEQ loc_153A8 .text:00015308 LDRB R3, [R1,#1] .text:0001530C LDRB LR, [R1],#1 .text:00015310 CMP R3, R2 .text:00015314 STR LR, [R11,#var_4C] .text:00015318 BEQ loc_153A8 .text:0001531C LDR R3, [R11,#var_3C] .text:00015320 LDRB R2, [R3,#1] .text:00015324 LDRB R3, [R1,#1]! .text:00015328 ADD LR, R2, LR,LSL#4 .text:0001532C CMP R3, #0 .text:00015330 STR LR, [R11,#var_4C] .text:00015334 BEQ loc_153A8 .text:00015338 LDRB R2, [R1] .text:0001533C LDRB R3, [R1,#1]! .text:00015340 ADD LR, R2, LR,LSL#4 .text:00015344 CMP R3, #0 .text:00015348 STR LR, [R11,#var_4C] .text:0001534C BEQ loc_153A8 .text:00015350 LDRB R2, [R1] .text:00015354 LDRB R3, [R1,#1]! .text:00015358 ADD LR, R2, LR,LSL#4 .text:0001535C CMP R3, #0 .text:00015360 STR LR, [R11,#var_4C] .text:00015364 BEQ loc_153A8 .text:00015368 LDRB R2, [R1] .text:0001536C LDRB R3, [R1,#1]! .text:00015370 ADD LR, R2, LR,LSL#4 .text:00015374 CMP R3, #0 .text:00015378 STR LR, [R11,#var_4C] .text:0001537C BEQ loc_153A8 .text:00015380 .text:00015380 loc_15380 ; CODE XREF: _dl_lookup_versioned_symbol_skip+ECj .text:00015380 LDRB R3, [R1] .text:00015384 LDR LR, [R11,#var_4C] .text:00015388 ADD LR, R3, LR,LSL#4 .text:0001538C AND R2, LR, #0xF0000000 .text:00015390 EOR LR, LR, R2 .text:00015394 LDRB R3, [R1,#1]! .text:00015398 EOR LR, LR, R2,LSR#24 .text:0001539C STR LR, [R11,#var_4C] .text:000153A0 CMP R3, #0 .text:000153A4 BNE loc_15380 .text:000153A8 .text:000153A8 loc_153A8 ; CODE XREF: _dl_lookup_versioned_symbol_skip+4Cj .text:000153A8 ; _dl_lookup_versioned_symbol_skip+60j ... .text:000153A8 MOV R3, #0 .text:000153AC MOV R2, #0 .text:000153B0 SUB LR, R11, #-var_30 .text:000153B4 STMIA LR, {R2,R3} .text:000153B8 LDR R3, [R12] .text:000153BC ADD R3, R3, #1 .text:000153C0 STR R3, [R12] .text:000153C4 STR R0, [R11,#var_50] .text:000153C8 LDR R3, [R0] .text:000153CC LDR R2, [R3,#8] .text:000153D0 MOV R1, #0 .text:000153D4 STR R1, [R11,#var_54] .text:000153D8 LDR R3, [R2,R1,LSL#2] .text:000153DC LDR R2, [R11,#arg_4] .text:000153E0 CMP R3, R2 .text:000153E4 BEQ loc_15434 .text:000153E8 .text:000153E8 loc_153E8 ; CODE XREF: _dl_lookup_versioned_symbol_skip+178j .text:000153E8 LDR R2, [R0] .text:000153EC LDR R12, [R11,#var_54] .text:000153F0 LDR R3, [R2,#0xC] .text:000153F4 CMP R12, R3 .text:000153F8 BCC loc_15414 .text:000153FC LDR R0, =aIScopeR_ndupli ; "i < (*scope)->r_nduplist" .text:00015400 LDR R1, =aDlLookup_c ; "dl-lookup.c" .text:00015404 MOV R2, #0x1F8 .text:00015408 LDR R3, =a_dl_lookup_ver ; "_dl_lookup_versioned_symbol_skip" .text:0001540C ADD R2, R2, #2 .text:00015410 BL __assert_fail .text:00015414 ; --------------------------------------------------------------------------- .text:00015414 .text:00015414 loc_15414 ; CODE XREF: _dl_lookup_versioned_symbol_skip+140j .text:00015414 LDR LR, [R11,#var_54] .text:00015418 LDR R2, [R2,#8] .text:0001541C ADD LR, LR, #1 .text:00015420 STR LR, [R11,#var_54] .text:00015424 LDR R1, [R11,#arg_4] .text:00015428 LDR R3, [R2,LR,LSL#2] .text:0001542C CMP R3, R1 .text:00015430 BNE loc_153E8 .text:00015434 .text:00015434 loc_15434 ; CODE XREF: _dl_lookup_versioned_symbol_skip+12Cj .text:00015434 LDR R3, [R0] .text:00015438 LDR R12, [R11,#var_54] .text:0001543C LDR R2, [R3,#4] .text:00015440 CMP R12, R2 .text:00015444 STR R2, [R11,#var_58] .text:00015448 BCS loc_15774 .text:0001544C SUB LR, R11, #-var_30 .text:00015450 STR LR, [R11,#var_60] .text:00015454 LDR R0, [R11,#var_44] .text:00015458 LDR R0, [R0] .text:0001545C STR R12, [R11,#var_64] .text:00015460 STR R0, [R11,#var_5C] .text:00015464 LDR R3, [R3] .text:00015468 STR R3, [R11,#var_68] .text:0001546C .text:0001546C loc_1546C ; CODE XREF: _dl_lookup_versioned_symbol_skip+4B4j .text:0001546C LDR R1, [R11,#var_64] .text:00015470 LDR R2, [R11,#var_68] .text:00015474 LDR R12, [R11,#arg_4] .text:00015478 LDR R7, [R2,R1,LSL#2] .text:0001547C CMP R7, R12 .text:00015480 MOVNE R3, #0 .text:00015484 MOVEQ R3, #1 .text:00015488 CMP R12, #0 .text:0001548C MOVEQ R3, #0 .text:00015490 CMP R3, #0 .text:00015494 BNE loc_15758 .text:00015498 LDR R3, =_dl_debug_mask .text:0001549C LDR R2, [R3] .text:000154A0 TST R2, #8 .text:000154A4 BEQ loc_154CC .text:000154A8 LDR R2, [R7,#4] .text:000154AC LDRB R3, [R2] .text:000154B0 LDR R0, =aSymbolSLookupI ; "symbol=%s; lookup in file=%s\n" .text:000154B4 CMP R3, #0 .text:000154B8 LDREQ R3, =_dl_argv .text:000154BC LDREQ R2, [R3] .text:000154C0 LDREQ R2, [R2] .text:000154C4 LDR R1, [R11,#var_3C] .text:000154C8 BL _dl_debug_printf .text:000154CC .text:000154CC loc_154CC ; CODE XREF: _dl_lookup_versioned_symbol_skip+1ECj .text:000154CC LDR R1, [R7,#0x11C] .text:000154D0 ADD R2, R7, #0x2C .text:000154D4 LDMIA R2, {R2,R3} .text:000154D8 LDR R3, [R3,#4] .text:000154DC STR R3, [R11,#var_6C] .text:000154E0 LDR R2, [R2,#4] .text:000154E4 STR R2, [R11,#var_70] .text:000154E8 LDR R0, [R11,#var_4C] .text:000154EC LDR R9, [R7,#0x144] .text:000154F0 BL __umodsi3 .text:000154F4 LDR R3, [R7,#0x120] .text:000154F8 LDR R8, [R3,R0,LSL#2] .text:000154FC CMP R8, #0 .text:00015500 BEQ loc_156E4 .text:00015504 .text:00015504 loc_15504 ; CODE XREF: _dl_lookup_versioned_symbol_skip+3B0j .text:00015504 LDR LR, [R11,#var_6C] .text:00015508 MOV R2, R8,LSL#4 .text:0001550C ADD R10, LR, R2 .text:00015510 LDR R3, [R10,#4] .text:00015514 CMP R3, #0 .text:00015518 BEQ loc_1565C .text:0001551C LDRB R3, [R10,#0xC] .text:00015520 AND R3, R3, #0xF .text:00015524 CMP R3, #2 .text:00015528 BHI loc_1565C .text:0001552C LDR R0, [R11,#var_5C] .text:00015530 CMP R10, R0 .text:00015534 BEQ loc_15554 .text:00015538 LDR R0, [LR,R2] .text:0001553C LDR R2, [R11,#var_70] .text:00015540 LDR R1, [R11,#var_3C] .text:00015544 ADD R0, R2, R0 .text:00015548 BL strcmp .text:0001554C CMP R0, #0 .text:00015550 BNE loc_1565C .text:00015554 .text:00015554 loc_15554 ; CODE XREF: _dl_lookup_versioned_symbol_skip+27Cj .text:00015554 CMP R9, #0 .text:00015558 BNE loc_155DC .text:0001555C LDR R3, [R11,#arg_0] .text:00015560 LDR R6, [R3,#0xC] .text:00015564 CMP R6, #0 .text:00015568 BEQ loc_15670 .text:0001556C LDR R1, [R7,#4] .text:00015570 MOV R0, R6 .text:00015574 BL strcmp .text:00015578 LDR R4, [R7,#0x14] .text:0001557C CMP R0, #0 .text:00015580 MOVNE R5, #0 .text:00015584 MOVEQ R5, #1 .text:00015588 CMP R4, #0 .text:0001558C CMPNE R0, #0 .text:00015590 BEQ loc_155C0 .text:00015594 .text:00015594 loc_15594 ; CODE XREF: _dl_lookup_versioned_symbol_skip+304j .text:00015594 LDR R1, [R4] .text:00015598 MOV R0, R6 .text:0001559C BL strcmp .text:000155A0 CMP R0, #0 .text:000155A4 MOVEQ R5, #1 .text:000155A8 LDRNE R4, [R4,#4] .text:000155AC CMP R4, #0 .text:000155B0 EORNE R3, R5, #1 .text:000155B4 MOVEQ R3, #0 .text:000155B8 CMP R3, #0 .text:000155BC BNE loc_15594 .text:000155C0 .text:000155C0 loc_155C0 ; CODE XREF: _dl_lookup_versioned_symbol_skip+2D8j .text:000155C0 CMP R5, #0 .text:000155C4 BEQ loc_15670 .text:000155C8 LDR R0, =aVersionFilenam ; "version->filename == ((void *)0) || ! _"... .text:000155CC LDR R1, =aDoLookup_h ; "do-lookup.h" .text:000155D0 LDR R3, =aDo_lookup_vers ; "do_lookup_versioned" .text:000155D4 MOV R2, #0x68 .text:000155D8 BL __assert_fail .text:000155DC ; --------------------------------------------------------------------------- .text:000155DC .text:000155DC loc_155DC ; CODE XREF: _dl_lookup_versioned_symbol_skip+2A0j .text:000155DC MOV R5, R8,LSL#1 .text:000155E0 LDRB R2, [R5,R9] .text:000155E4 ADD R6, R5, R9 .text:000155E8 LDRB R3, [R6,#1] .text:000155EC LDR R12, [R7,#0x134] .text:000155F0 LDR LR, [R11,#arg_0] .text:000155F4 ORR R2, R2, R3,LSL#8 .text:000155F8 MOV R0, R2,LSL#17 .text:000155FC MOV R0, R0,LSR#17 .text:00015600 MOV R4, R0,LSL#4 .text:00015604 ADD R3, R4, R12 .text:00015608 LDR R1, [R3,#4] .text:0001560C LDR R2, [LR,#4] .text:00015610 CMP R1, R2 .text:00015614 BNE loc_1562C .text:00015618 LDR R0, [R12,R0,LSL#4] .text:0001561C LDR R1, [LR] .text:00015620 BL strcmp .text:00015624 CMP R0, #0 .text:00015628 BEQ loc_15670 .text:0001562C .text:0001562C loc_1562C ; CODE XREF: _dl_lookup_versioned_symbol_skip+35Cj .text:0001562C LDR R0, [R11,#arg_0] .text:00015630 LDR R3, [R0,#8] .text:00015634 CMP R3, #0 .text:00015638 BNE loc_1565C .text:0001563C LDR R3, [R7,#0x134] .text:00015640 ADD R3, R4, R3 .text:00015644 LDR R2, [R3,#4] .text:00015648 CMP R2, #0 .text:0001564C BNE loc_1565C .text:00015650 LDRB R3, [R6,#1] .text:00015654 MOVS R3, R3,LSR#7 .text:00015658 BEQ loc_15670 .text:0001565C .text:0001565C loc_1565C ; CODE XREF: _dl_lookup_versioned_symbol_skip+260j .text:0001565C ; _dl_lookup_versioned_symbol_skip+270j ... .text:0001565C LDR R3, [R7,#0x124] .text:00015660 LDR R8, [R3,R8,LSL#2] .text:00015664 CMP R8, #0 .text:00015668 BNE loc_15504 .text:0001566C B loc_156E4 .text:00015670 ; --------------------------------------------------------------------------- .text:00015670 .text:00015670 loc_15670 ; CODE XREF: _dl_lookup_versioned_symbol_skip+2B0j .text:00015670 ; _dl_lookup_versioned_symbol_skip+30Cj ... .text:00015670 LDRB R3, [R10,#0xC] .text:00015674 MOV R3, R3,LSR#4 .text:00015678 CMP R3, #1 .text:0001567C BEQ loc_156B0 .text:00015680 CMP R3, #2 .text:00015684 BNE loc_156E4 .text:00015688 LDR R3, =_dl_dynamic_weak .text:0001568C LDR R2, [R3] .text:00015690 CMP R2, #0 .text:00015694 BEQ loc_156B0 .text:00015698 LDR R1, [R11,#var_60] .text:0001569C LDR R3, [R1] .text:000156A0 CMP R3, #0 .text:000156A4 STREQ R10, [R1] .text:000156A8 STREQ R7, [R1,#4] .text:000156AC B loc_156E4 .text:000156B0 ; --------------------------------------------------------------------------- .text:000156B0 .text:000156B0 loc_156B0 ; CODE XREF: _dl_lookup_versioned_symbol_skip+3C4j .text:000156B0 ; _dl_lookup_versioned_symbol_skip+3DCj .text:000156B0 LDR R2, [R11,#var_60] .text:000156B4 B loc_15A00 .text:000156B4 ; --------------------------------------------------------------------------- .text:000156B8 off_156B8 DCD _dl_num_relocations ; DATA XREF: _dl_lookup_versioned_symbol_skip+38r .text:000156BC off_156BC DCD aIScopeR_ndupli ; DATA XREF: _dl_lookup_versioned_symbol_skip+144r .text:000156BC ; "i < (*scope)->r_nduplist" .text:000156C0 off_156C0 DCD aDlLookup_c ; DATA XREF: _dl_lookup_versioned_symbol_skip+148r .text:000156C0 ; "dl-lookup.c" .text:000156C4 off_156C4 DCD a_dl_lookup_ver ; DATA XREF: _dl_lookup_versioned_symbol_skip+150r .text:000156C4 ; "_dl_lookup_versioned_symbol_skip" .text:000156C8 off_156C8 DCD _dl_debug_mask ; DATA XREF: _dl_lookup_versioned_symbol_skip+1E0r .text:000156CC off_156CC DCD aSymbolSLookupI ; DATA XREF: _dl_lookup_versioned_symbol_skip+1F8r .text:000156CC ; "symbol=%s; lookup in file=%s\n" .text:000156D0 off_156D0 DCD _dl_argv ; DATA XREF: _dl_lookup_versioned_symbol_skip+200r .text:000156D4 off_156D4 DCD aVersionFilenam ; DATA XREF: _dl_lookup_versioned_symbol_skip+310r .text:000156D4 ; "version->filename == ((void *)0) || ! _"... .text:000156D8 off_156D8 DCD aDoLookup_h ; DATA XREF: _dl_lookup_versioned_symbol_skip+314r .text:000156D8 ; "do-lookup.h" .text:000156DC off_156DC DCD aDo_lookup_vers ; DATA XREF: _dl_lookup_versioned_symbol_skip+318r .text:000156DC ; "do_lookup_versioned" .text:000156E0 off_156E0 DCD _dl_dynamic_weak ; DATA XREF: _dl_lookup_versioned_symbol_skip+3D0r .text:000156E4 ; --------------------------------------------------------------------------- .text:000156E4 .text:000156E4 loc_156E4 ; CODE XREF: _dl_lookup_versioned_symbol_skip+248j .text:000156E4 ; _dl_lookup_versioned_symbol_skip+3B4j ... .text:000156E4 CMP R8, #0 .text:000156E8 BNE loc_15758 .text:000156EC LDR R3, [R11,#arg_0] .text:000156F0 LDR R6, [R3,#0xC] .text:000156F4 CMP R6, #0 .text:000156F8 BEQ loc_15758 .text:000156FC LDR R1, [R7,#4] .text:00015700 MOV R0, R6 .text:00015704 BL strcmp .text:00015708 LDR R4, [R7,#0x14] .text:0001570C CMP R0, #0 .text:00015710 MOVNE R5, #0 .text:00015714 MOVEQ R5, #1 .text:00015718 CMP R4, #0 .text:0001571C CMPNE R0, #0 .text:00015720 BEQ loc_15750 .text:00015724 .text:00015724 loc_15724 ; CODE XREF: _dl_lookup_versioned_symbol_skip+494j .text:00015724 LDR R1, [R4] .text:00015728 MOV R0, R6 .text:0001572C BL strcmp .text:00015730 CMP R0, #0 .text:00015734 MOVEQ R5, #1 .text:00015738 LDRNE R4, [R4,#4] .text:0001573C CMP R4, #0 .text:00015740 EORNE R3, R5, #1 .text:00015744 MOVEQ R3, #0 .text:00015748 CMP R3, #0 .text:0001574C BNE loc_15724 .text:00015750 .text:00015750 loc_15750 ; CODE XREF: _dl_lookup_versioned_symbol_skip+468j .text:00015750 CMP R5, #0 .text:00015754 BNE loc_15A84 .text:00015758 .text:00015758 loc_15758 ; CODE XREF: _dl_lookup_versioned_symbol_skip+1DCj .text:00015758 ; _dl_lookup_versioned_symbol_skip+430j ... .text:00015758 LDR R12, [R11,#var_64] .text:0001575C LDR LR, [R11,#var_58] .text:00015760 ADD R12, R12, #1 .text:00015764 CMP R12, LR .text:00015768 STR R12, [R11,#var_64] .text:0001576C BCC loc_1546C .text:00015770 B loc_15AA4 .text:00015774 ; --------------------------------------------------------------------------- .text:00015774 .text:00015774 loc_15774 ; CODE XREF: _dl_lookup_versioned_symbol_skip+190j .text:00015774 ; _dl_lookup_versioned_symbol_skip+7F4j .text:00015774 LDR R0, [R11,#var_50] .text:00015778 LDR R3, [R0,#4]! .text:0001577C CMP R3, #0 .text:00015780 STR R0, [R11,#var_50] .text:00015784 BEQ loc_15AB0 .text:00015788 LDR R1, [R11,#var_44] .text:0001578C LDR R1, [R1] .text:00015790 SUB R2, R11, #-var_30 .text:00015794 STR R2, [R11,#var_78] .text:00015798 STR R1, [R11,#var_74] .text:0001579C LDR R12, [R3] .text:000157A0 MOV LR, #0 .text:000157A4 STR LR, [R11,#var_7C] .text:000157A8 STR R12, [R11,#var_80] .text:000157AC LDR R3, [R3,#4] .text:000157B0 STR R3, [R11,#var_84] .text:000157B4 .text:000157B4 loc_157B4 ; CODE XREF: _dl_lookup_versioned_symbol_skip+7E8j .text:000157B4 LDR R0, [R11,#var_7C] .text:000157B8 LDR R1, [R11,#var_80] .text:000157BC LDR R2, [R11,#arg_4] .text:000157C0 LDR R7, [R1,R0,LSL#2] .text:000157C4 CMP R7, R2 .text:000157C8 MOVNE R3, #0 .text:000157CC MOVEQ R3, #1 .text:000157D0 CMP R2, #0 .text:000157D4 MOVEQ R3, #0 .text:000157D8 CMP R3, #0 .text:000157DC BNE loc_15A8C .text:000157E0 LDR R3, =_dl_debug_mask .text:000157E4 LDR R2, [R3] .text:000157E8 TST R2, #8 .text:000157EC BEQ loc_15814 .text:000157F0 LDR R2, [R7,#4] .text:000157F4 LDRB R3, [R2] .text:000157F8 LDR R0, =aSymbolSLookupI ; "symbol=%s; lookup in file=%s\n" .text:000157FC CMP R3, #0 .text:00015800 LDREQ R3, =_dl_argv .text:00015804 LDREQ R2, [R3] .text:00015808 LDREQ R2, [R2] .text:0001580C LDR R1, [R11,#var_3C] .text:00015810 BL _dl_debug_printf .text:00015814 .text:00015814 loc_15814 ; CODE XREF: _dl_lookup_versioned_symbol_skip+534j .text:00015814 LDR R1, [R7,#0x11C] .text:00015818 ADD R2, R7, #0x2C .text:0001581C LDMIA R2, {R2,R3} .text:00015820 LDR R3, [R3,#4] .text:00015824 STR R3, [R11,#var_88] .text:00015828 LDR R2, [R2,#4] .text:0001582C STR R2, [R11,#var_8C] .text:00015830 LDR R0, [R11,#var_4C] .text:00015834 LDR R9, [R7,#0x144] .text:00015838 BL __umodsi3 .text:0001583C LDR R3, [R7,#0x120] .text:00015840 LDR R8, [R3,R0,LSL#2] .text:00015844 CMP R8, #0 .text:00015848 BEQ loc_15A10 .text:0001584C .text:0001584C loc_1584C ; CODE XREF: _dl_lookup_versioned_symbol_skip+6FCj .text:0001584C LDR R3, [R11,#var_88] .text:00015850 MOV R2, R8,LSL#4 .text:00015854 ADD R10, R3, R2 .text:00015858 LDR R3, [R10,#4] .text:0001585C CMP R3, #0 .text:00015860 BEQ loc_159A8 .text:00015864 LDRB R3, [R10,#0xC] .text:00015868 AND R3, R3, #0xF .text:0001586C CMP R3, #2 .text:00015870 BHI loc_159A8 .text:00015874 LDR R12, [R11,#var_74] .text:00015878 CMP R10, R12 .text:0001587C BEQ loc_158A0 .text:00015880 LDR LR, [R11,#var_88] .text:00015884 LDR R0, [LR,R2] .text:00015888 LDR R2, [R11,#var_8C] .text:0001588C LDR R1, [R11,#var_3C] .text:00015890 ADD R0, R2, R0 .text:00015894 BL strcmp .text:00015898 CMP R0, #0 .text:0001589C BNE loc_159A8 .text:000158A0 .text:000158A0 loc_158A0 ; CODE XREF: _dl_lookup_versioned_symbol_skip+5C4j .text:000158A0 CMP R9, #0 .text:000158A4 BNE loc_15928 .text:000158A8 LDR R3, [R11,#arg_0] .text:000158AC LDR R6, [R3,#0xC] .text:000158B0 CMP R6, #0 .text:000158B4 BEQ loc_159BC .text:000158B8 LDR R1, [R7,#4] .text:000158BC MOV R0, R6 .text:000158C0 BL strcmp .text:000158C4 LDR R4, [R7,#0x14] .text:000158C8 CMP R0, #0 .text:000158CC MOVNE R5, #0 .text:000158D0 MOVEQ R5, #1 .text:000158D4 CMP R4, #0 .text:000158D8 CMPNE R0, #0 .text:000158DC BEQ loc_1590C .text:000158E0 .text:000158E0 loc_158E0 ; CODE XREF: _dl_lookup_versioned_symbol_skip+650j .text:000158E0 LDR R1, [R4] .text:000158E4 MOV R0, R6 .text:000158E8 BL strcmp .text:000158EC CMP R0, #0 .text:000158F0 MOVEQ R5, #1 .text:000158F4 LDRNE R4, [R4,#4] .text:000158F8 CMP R4, #0 .text:000158FC EORNE R3, R5, #1 .text:00015900 MOVEQ R3, #0 .text:00015904 CMP R3, #0 .text:00015908 BNE loc_158E0 .text:0001590C .text:0001590C loc_1590C ; CODE XREF: _dl_lookup_versioned_symbol_skip+624j .text:0001590C CMP R5, #0 .text:00015910 BEQ loc_159BC .text:00015914 LDR R0, =aVersionFilenam ; "version->filename == ((void *)0) || ! _"... .text:00015918 LDR R1, =aDoLookup_h ; "do-lookup.h" .text:0001591C LDR R3, =aDo_lookup_vers ; "do_lookup_versioned" .text:00015920 MOV R2, #0x68 .text:00015924 BL __assert_fail .text:00015928 ; --------------------------------------------------------------------------- .text:00015928 .text:00015928 loc_15928 ; CODE XREF: _dl_lookup_versioned_symbol_skip+5ECj .text:00015928 MOV R5, R8,LSL#1 .text:0001592C LDRB R2, [R5,R9] .text:00015930 ADD R6, R5, R9 .text:00015934 LDRB R3, [R6,#1] .text:00015938 LDR R12, [R7,#0x134] .text:0001593C LDR LR, [R11,#arg_0] .text:00015940 ORR R2, R2, R3,LSL#8 .text:00015944 MOV R0, R2,LSL#17 .text:00015948 MOV R0, R0,LSR#17 .text:0001594C MOV R4, R0,LSL#4 .text:00015950 ADD R3, R4, R12 .text:00015954 LDR R1, [R3,#4] .text:00015958 LDR R2, [LR,#4] .text:0001595C CMP R1, R2 .text:00015960 BNE loc_15978 .text:00015964 LDR R0, [R12,R0,LSL#4] .text:00015968 LDR R1, [LR] .text:0001596C BL strcmp .text:00015970 CMP R0, #0 .text:00015974 BEQ loc_159BC .text:00015978 .text:00015978 loc_15978 ; CODE XREF: _dl_lookup_versioned_symbol_skip+6A8j .text:00015978 LDR R0, [R11,#arg_0] .text:0001597C LDR R3, [R0,#8] .text:00015980 CMP R3, #0 .text:00015984 BNE loc_159A8 .text:00015988 LDR R3, [R7,#0x134] .text:0001598C ADD R3, R4, R3 .text:00015990 LDR R2, [R3,#4] .text:00015994 CMP R2, #0 .text:00015998 BNE loc_159A8 .text:0001599C LDRB R3, [R6,#1] .text:000159A0 MOVS R3, R3,LSR#7 .text:000159A4 BEQ loc_159BC .text:000159A8 .text:000159A8 loc_159A8 ; CODE XREF: _dl_lookup_versioned_symbol_skip+5A8j .text:000159A8 ; _dl_lookup_versioned_symbol_skip+5B8j ... .text:000159A8 LDR R3, [R7,#0x124] .text:000159AC LDR R8, [R3,R8,LSL#2] .text:000159B0 CMP R8, #0 .text:000159B4 BNE loc_1584C .text:000159B8 B loc_15A10 .text:000159BC ; --------------------------------------------------------------------------- .text:000159BC .text:000159BC loc_159BC ; CODE XREF: _dl_lookup_versioned_symbol_skip+5FCj .text:000159BC ; _dl_lookup_versioned_symbol_skip+658j ... .text:000159BC LDRB R3, [R10,#0xC] .text:000159C0 MOV R3, R3,LSR#4 .text:000159C4 CMP R3, #1 .text:000159C8 BEQ loc_159FC .text:000159CC CMP R3, #2 .text:000159D0 BNE loc_15A10 .text:000159D4 LDR R3, =_dl_dynamic_weak .text:000159D8 LDR R2, [R3] .text:000159DC CMP R2, #0 .text:000159E0 BEQ loc_159FC .text:000159E4 LDR R1, [R11,#var_78] .text:000159E8 LDR R3, [R1] .text:000159EC CMP R3, #0 .text:000159F0 STREQ R10, [R1] .text:000159F4 STREQ R7, [R1,#4] .text:000159F8 B loc_15A10 .text:000159FC ; --------------------------------------------------------------------------- .text:000159FC .text:000159FC loc_159FC ; CODE XREF: _dl_lookup_versioned_symbol_skip+710j .text:000159FC ; _dl_lookup_versioned_symbol_skip+728j .text:000159FC LDR R2, [R11,#var_78] .text:00015A00 .text:00015A00 loc_15A00 ; CODE XREF: _dl_lookup_versioned_symbol_skip+3FCj .text:00015A00 STR R10, [R2] .text:00015A04 MOV R3, #1 .text:00015A08 STR R7, [R2,#4] .text:00015A0C B loc_15AA8 .text:00015A10 ; --------------------------------------------------------------------------- .text:00015A10 .text:00015A10 loc_15A10 ; CODE XREF: _dl_lookup_versioned_symbol_skip+590j .text:00015A10 ; _dl_lookup_versioned_symbol_skip+700j ... .text:00015A10 CMP R8, #0 .text:00015A14 BNE loc_15A8C .text:00015A18 LDR R3, [R11,#arg_0] .text:00015A1C LDR R6, [R3,#0xC] .text:00015A20 CMP R6, #0 .text:00015A24 BEQ loc_15A8C .text:00015A28 LDR R1, [R7,#4] .text:00015A2C MOV R0, R6 .text:00015A30 BL strcmp .text:00015A34 LDR R4, [R7,#0x14] .text:00015A38 CMP R0, #0 .text:00015A3C MOVNE R5, #0 .text:00015A40 MOVEQ R5, #1 .text:00015A44 CMP R4, #0 .text:00015A48 CMPNE R0, #0 .text:00015A4C BEQ loc_15A7C .text:00015A50 .text:00015A50 loc_15A50 ; CODE XREF: _dl_lookup_versioned_symbol_skip+7C0j .text:00015A50 LDR R1, [R4] .text:00015A54 MOV R0, R6 .text:00015A58 BL strcmp .text:00015A5C CMP R0, #0 .text:00015A60 MOVEQ R5, #1 .text:00015A64 LDRNE R4, [R4,#4] .text:00015A68 CMP R4, #0 .text:00015A6C EORNE R3, R5, #1 .text:00015A70 MOVEQ R3, #0 .text:00015A74 CMP R3, #0 .text:00015A78 BNE loc_15A50 .text:00015A7C .text:00015A7C loc_15A7C ; CODE XREF: _dl_lookup_versioned_symbol_skip+794j .text:00015A7C CMP R5, #0 .text:00015A80 BEQ loc_15A8C .text:00015A84 .text:00015A84 loc_15A84 ; CODE XREF: _dl_lookup_versioned_symbol_skip+49Cj .text:00015A84 MOV R3, 0xFFFFFFFF .text:00015A88 B loc_15AA8 .text:00015A8C ; --------------------------------------------------------------------------- .text:00015A8C .text:00015A8C loc_15A8C ; CODE XREF: _dl_lookup_versioned_symbol_skip+524j .text:00015A8C ; _dl_lookup_versioned_symbol_skip+75Cj ... .text:00015A8C LDR R12, [R11,#var_7C] .text:00015A90 LDR LR, [R11,#var_84] .text:00015A94 ADD R12, R12, #1 .text:00015A98 CMP R12, LR .text:00015A9C STR R12, [R11,#var_7C] .text:00015AA0 BCC loc_157B4 .text:00015AA4 .text:00015AA4 loc_15AA4 ; CODE XREF: _dl_lookup_versioned_symbol_skip+4B8j .text:00015AA4 MOV R3, #0 .text:00015AA8 .text:00015AA8 loc_15AA8 ; CODE XREF: _dl_lookup_versioned_symbol_skip+754j .text:00015AA8 ; _dl_lookup_versioned_symbol_skip+7D0j .text:00015AA8 CMP R3, #0 .text:00015AAC BEQ loc_15774 .text:00015AB0 .text:00015AB0 loc_15AB0 ; CODE XREF: _dl_lookup_versioned_symbol_skip+4CCj .text:00015AB0 LDR R3, [R11,#var_30] .text:00015AB4 CMP R3, #0 .text:00015AB8 BNE loc_15B9C .text:00015ABC LDR R0, [R11,#var_44] .text:00015AC0 LDR R3, [R0] .text:00015AC4 CMP R3, #0 .text:00015AC8 BEQ loc_15ADC .text:00015ACC LDRB R3, [R3,#0xC] .text:00015AD0 MOV R3, R3,LSR#4 .text:00015AD4 CMP R3, #2 .text:00015AD8 BEQ loc_15B64 .text:00015ADC .text:00015ADC loc_15ADC ; CODE XREF: _dl_lookup_versioned_symbol_skip+810j .text:00015ADC LDR R0, [R11,#var_3C] .text:00015AE0 BL strlen .text:00015AE4 MOV R4, R0 .text:00015AE8 ADD R3, R4, #0x13 .text:00015AEC BIC R3, R3, #0xE0000000 .text:00015AF0 ADD R3, R3, #3 .text:00015AF4 BIC R3, R3, #0xC0000003 .text:00015AF8 RSB SP, R3, SP .text:00015AFC ADD R5, SP, #0xC4+var_BC .text:00015B00 MOV R0, R5 .text:00015B04 LDR R1, =undefined_msg ; "undefined symbol: " .text:00015B08 MOV R2, #0x12 .text:00015B0C BL mempcpy .text:00015B10 LDR R1, [R11,#var_3C] .text:00015B14 ADD R2, R4, #1 .text:00015B18 BL mempcpy .text:00015B1C LDR R1, [R11,#var_48] .text:00015B20 CMP R1, #0 .text:00015B24 BEQ loc_15B34 .text:00015B28 LDRB R3, [R1] .text:00015B2C CMP R3, #0 .text:00015B30 BNE loc_15B50 .text:00015B34 .text:00015B34 loc_15B34 ; CODE XREF: _dl_lookup_versioned_symbol_skip+86Cj .text:00015B34 LDR R3, =_dl_argv .text:00015B38 LDR R2, [R3] .text:00015B3C LDR R1, [R2] .text:00015B40 LDR R12, =aMainProgram ; "<main program>" .text:00015B44 CMP R1, #0 .text:00015B48 MOVNE R12, R1 .text:00015B4C B loc_15B54 .text:00015B50 ; --------------------------------------------------------------------------- .text:00015B50 .text:00015B50 loc_15B50 ; CODE XREF: _dl_lookup_versioned_symbol_skip+878j .text:00015B50 LDR R12, [R11,#var_48] .text:00015B54 .text:00015B54 loc_15B54 ; CODE XREF: _dl_lookup_versioned_symbol_skip+894j .text:00015B54 MOV R0, #0 .text:00015B58 MOV R1, R12 .text:00015B5C MOV R2, R5 .text:00015B60 BL _dl_signal_cerror .text:00015B64 .text:00015B64 loc_15B64 ; CODE XREF: _dl_lookup_versioned_symbol_skip+820j .text:00015B64 MOV R3, #0 .text:00015B68 LDR R2, [R11,#var_44] .text:00015B6C MOV R0, R3 .text:00015B70 STR R3, [R2] .text:00015B74 B locret_1634C .text:00015B74 ; --------------------------------------------------------------------------- .text:00015B78 off_15B78 DCD _dl_debug_mask ; DATA XREF: _dl_lookup_versioned_symbol_skip+528r .text:00015B7C off_15B7C DCD aSymbolSLookupI ; DATA XREF: _dl_lookup_versioned_symbol_skip+540r .text:00015B7C ; "symbol=%s; lookup in file=%s\n" .text:00015B80 off_15B80 DCD _dl_argv ; DATA XREF: _dl_lookup_versioned_symbol_skip+548r .text:00015B80 ; _dl_lookup_versioned_symbol_skip:loc_15B34r .text:00015B84 off_15B84 DCD aVersionFilenam ; DATA XREF: _dl_lookup_versioned_symbol_skip+65Cr .text:00015B84 ; "version->filename == ((void *)0) || ! _"... .text:00015B88 off_15B88 DCD aDoLookup_h ; DATA XREF: _dl_lookup_versioned_symbol_skip+660r .text:00015B88 ; "do-lookup.h" .text:00015B8C off_15B8C DCD aDo_lookup_vers ; DATA XREF: _dl_lookup_versioned_symbol_skip+664r .text:00015B8C ; "do_lookup_versioned" .text:00015B90 off_15B90 DCD _dl_dynamic_weak ; DATA XREF: _dl_lookup_versioned_symbol_skip+71Cr .text:00015B94 off_15B94 DCD undefined_msg ; DATA XREF: _dl_lookup_versioned_symbol_skip+84Cr .text:00015B94 ; "undefined symbol: " .text:00015B98 off_15B98 DCD aMainProgram ; DATA XREF: _dl_lookup_versioned_symbol_skip+888r .text:00015B98 ; "<main program>" .text:00015B9C ; --------------------------------------------------------------------------- .text:00015B9C .text:00015B9C loc_15B9C ; CODE XREF: _dl_lookup_versioned_symbol_skip+800j .text:00015B9C LDR R12, [R11,#var_44] .text:00015BA0 LDR R3, [R12] .text:00015BA4 MOV R4, #0 .text:00015BA8 CMP R3, R4 .text:00015BAC BEQ loc_15BC4 .text:00015BB0 LDRB R3, [R3,#0xD] .text:00015BB4 AND R3, R3, #3 .text:00015BB8 CMP R3, #3 .text:00015BBC MOVNE R4, #0 .text:00015BC0 MOVEQ R4, #1 .text:00015BC4 .text:00015BC4 loc_15BC4 ; CODE XREF: _dl_lookup_versioned_symbol_skip+8F4j .text:00015BC4 LDR R2, =_dl_debug_mask .text:00015BC8 LDR R3, [R2] .text:00015BCC TST R3, #4 .text:00015BD0 BEQ loc_15C5C .text:00015BD4 LDR LR, [R11,#var_48] .text:00015BD8 CMP LR, #0 .text:00015BDC BEQ loc_15BEC .text:00015BE0 LDRB R3, [LR] .text:00015BE4 CMP R3, #0 .text:00015BE8 BNE loc_15C08 .text:00015BEC .text:00015BEC loc_15BEC ; CODE XREF: _dl_lookup_versioned_symbol_skip+924j .text:00015BEC LDR R3, =_dl_argv .text:00015BF0 LDR R2, [R3] .text:00015BF4 LDR R1, [R2] .text:00015BF8 LDR LR, =aMainProgram ; "<main program>" .text:00015BFC CMP R1, #0 .text:00015C00 MOVNE LR, R1 .text:00015C04 B loc_15C0C .text:00015C08 ; --------------------------------------------------------------------------- .text:00015C08 .text:00015C08 loc_15C08 ; CODE XREF: _dl_lookup_versioned_symbol_skip+930j .text:00015C08 LDR LR, [R11,#var_48] .text:00015C0C .text:00015C0C loc_15C0C ; CODE XREF: _dl_lookup_versioned_symbol_skip+94Cj .text:00015C0C LDR R3, [R11,#var_2C] .text:00015C10 LDR R3, [R3,#4] .text:00015C14 LDRB R2, [R3] .text:00015C18 CMP R2, #0 .text:00015C1C MOVNE R2, R3 .text:00015C20 LDREQ R3, =_dl_argv .text:00015C24 LDREQ R2, [R3] .text:00015C28 LDREQ R2, [R2] .text:00015C2C LDR R0, [R11,#var_3C] .text:00015C30 STR R0, [SP,#0xC4+var_C4] .text:00015C34 LDR R1, [R11,#arg_0] .text:00015C38 LDR R3, [R1] .text:00015C3C STR R3, [SP,#0xC4+var_C0] .text:00015C40 LDR R12, =aNormal ; "normal" .text:00015C44 LDR R0, =aBindingFileS_0 ; "binding file %s to %s: %s symbol `%s' ["... .text:00015C48 CMP R4, #0 .text:00015C4C LDR R3, =aProtected ; "protected" .text:00015C50 MOV R1, LR .text:00015C54 MOVEQ R3, R12 .text:00015C58 BL _dl_debug_printf .text:00015C5C .text:00015C5C loc_15C5C ; CODE XREF: _dl_lookup_versioned_symbol_skip+918j .text:00015C5C CMP R4, #0 .text:00015C60 LDREQ R3, [R11,#var_30] .text:00015C64 LDREQ R2, [R11,#var_44] .text:00015C68 STREQ R3, [R2] .text:00015C6C BEQ loc_1631C .text:00015C70 LDR R12, [R11,#var_50] .text:00015C74 SUB R3, R11, #-var_38 .text:00015C78 LDR R2, [R12] .text:00015C7C MOV R1, #0 .text:00015C80 MOV R0, #0 .text:00015C84 STMIA R3, {R0,R1} .text:00015C88 LDR R12, [R11,#var_54] .text:00015C8C LDR R1, [R2,#4] .text:00015C90 CMP R12, R1 .text:00015C94 STR R1, [R11,#var_90] .text:00015C98 BCS loc_15FC0 .text:00015C9C LDR LR, [R11,#var_44] .text:00015CA0 LDR LR, [LR] .text:00015CA4 STR R12, [R11,#var_98] .text:00015CA8 STR LR, [R11,#var_94] .text:00015CAC LDR R2, [R2] .text:00015CB0 STR R2, [R11,#var_9C] .text:00015CB4 .text:00015CB4 loc_15CB4 ; CODE XREF: _dl_lookup_versioned_symbol_skip+D00j .text:00015CB4 LDR R0, [R11,#var_98] .text:00015CB8 LDR R1, [R11,#var_9C] .text:00015CBC LDR R2, [R11,#arg_4] .text:00015CC0 LDR R7, [R1,R0,LSL#2] .text:00015CC4 CMP R7, R2 .text:00015CC8 MOVNE R3, #0 .text:00015CCC MOVEQ R3, #1 .text:00015CD0 CMP R2, #0 .text:00015CD4 MOVEQ R3, #0 .text:00015CD8 CMP R3, #0 .text:00015CDC BNE loc_15FA4 .text:00015CE0 LDR R12, =_dl_debug_mask .text:00015CE4 LDR R3, [R12] .text:00015CE8 TST R3, #8 .text:00015CEC BEQ loc_15D14 .text:00015CF0 LDR R2, [R7,#4] .text:00015CF4 LDRB R3, [R2] .text:00015CF8 LDR R0, =aSymbolSLookupI ; "symbol=%s; lookup in file=%s\n" .text:00015CFC CMP R3, #0 .text:00015D00 LDREQ R3, =_dl_argv .text:00015D04 LDREQ R2, [R3] .text:00015D08 LDREQ R2, [R2] .text:00015D0C LDR R1, [R11,#var_3C] .text:00015D10 BL _dl_debug_printf .text:00015D14 .text:00015D14 loc_15D14 ; CODE XREF: _dl_lookup_versioned_symbol_skip+A34j .text:00015D14 LDR R1, [R7,#0x11C] .text:00015D18 ADD R2, R7, #0x2C .text:00015D1C LDMIA R2, {R2,R3} .text:00015D20 LDR R3, [R3,#4] .text:00015D24 STR R3, [R11,#var_A0] .text:00015D28 LDR R2, [R2,#4] .text:00015D2C STR R2, [R11,#var_A4] .text:00015D30 LDR R0, [R11,#var_4C] .text:00015D34 LDR R9, [R7,#0x144] .text:00015D38 BL __umodsi3 .text:00015D3C LDR R3, [R7,#0x120] .text:00015D40 LDR R10, [R3,R0,LSL#2] .text:00015D44 CMP R10, #0 .text:00015D48 BEQ loc_15EFC .text:00015D4C .text:00015D4C loc_15D4C ; CODE XREF: _dl_lookup_versioned_symbol_skip+C04j .text:00015D4C LDR LR, [R11,#var_A0] .text:00015D50 MOV R2, R10,LSL#4 .text:00015D54 ADD R8, LR, R2 .text:00015D58 LDR R3, [R8,#4] .text:00015D5C CMP R3, #0 .text:00015D60 BEQ loc_15EB0 .text:00015D64 LDR R3, [R8,#0xC] .text:00015D68 MOVS R3, R3,LSR#16 .text:00015D6C BEQ loc_15EB0 .text:00015D70 LDRB R3, [R8,#0xC] .text:00015D74 AND R3, R3, #0xF .text:00015D78 CMP R3, #2 .text:00015D7C BHI loc_15EB0 .text:00015D80 LDR R0, [R11,#var_94] .text:00015D84 CMP R8, R0 .text:00015D88 BEQ loc_15DA8 .text:00015D8C LDR R0, [LR,R2] .text:00015D90 LDR R2, [R11,#var_A4] .text:00015D94 LDR R1, [R11,#var_3C] .text:00015D98 ADD R0, R2, R0 .text:00015D9C BL strcmp .text:00015DA0 CMP R0, #0 .text:00015DA4 BNE loc_15EB0 .text:00015DA8 .text:00015DA8 loc_15DA8 ; CODE XREF: _dl_lookup_versioned_symbol_skip+AD0j .text:00015DA8 CMP R9, #0 .text:00015DAC BNE loc_15E30 .text:00015DB0 LDR R3, [R11,#arg_0] .text:00015DB4 LDR R6, [R3,#0xC] .text:00015DB8 CMP R6, #0 .text:00015DBC BEQ loc_15EC4 .text:00015DC0 LDR R1, [R7,#4] .text:00015DC4 MOV R0, R6 .text:00015DC8 BL strcmp .text:00015DCC LDR R4, [R7,#0x14] .text:00015DD0 CMP R0, #0 .text:00015DD4 MOVNE R5, #0 .text:00015DD8 MOVEQ R5, #1 .text:00015DDC CMP R4, #0 .text:00015DE0 CMPNE R0, #0 .text:00015DE4 BEQ loc_15E14 .text:00015DE8 .text:00015DE8 loc_15DE8 ; CODE XREF: _dl_lookup_versioned_symbol_skip+B58j .text:00015DE8 LDR R1, [R4] .text:00015DEC MOV R0, R6 .text:00015DF0 BL strcmp .text:00015DF4 CMP R0, #0 .text:00015DF8 MOVEQ R5, #1 .text:00015DFC LDRNE R4, [R4,#4] .text:00015E00 CMP R4, #0 .text:00015E04 EORNE R3, R5, #1 .text:00015E08 MOVEQ R3, #0 .text:00015E0C CMP R3, #0 .text:00015E10 BNE loc_15DE8 .text:00015E14 .text:00015E14 loc_15E14 ; CODE XREF: _dl_lookup_versioned_symbol_skip+B2Cj .text:00015E14 CMP R5, #0 .text:00015E18 BEQ loc_15EC4 .text:00015E1C LDR R0, =aVersionFilenam ; "version->filename == ((void *)0) || ! _"... .text:00015E20 LDR R1, =aDoLookup_h ; "do-lookup.h" .text:00015E24 LDR R3, =aDo_lookup_vers ; "do_lookup_versioned" .text:00015E28 MOV R2, #0x68 .text:00015E2C BL __assert_fail .text:00015E30 ; --------------------------------------------------------------------------- .text:00015E30 .text:00015E30 loc_15E30 ; CODE XREF: _dl_lookup_versioned_symbol_skip+AF4j .text:00015E30 MOV R5, R10,LSL#1 .text:00015E34 LDRB R2, [R5,R9] .text:00015E38 ADD R6, R5, R9 .text:00015E3C LDRB R3, [R6,#1] .text:00015E40 LDR R12, [R7,#0x134] .text:00015E44 LDR LR, [R11,#arg_0] .text:00015E48 ORR R2, R2, R3,LSL#8 .text:00015E4C MOV R0, R2,LSL#17 .text:00015E50 MOV R0, R0,LSR#17 .text:00015E54 MOV R4, R0,LSL#4 .text:00015E58 ADD R3, R4, R12 .text:00015E5C LDR R1, [R3,#4] .text:00015E60 LDR R2, [LR,#4] .text:00015E64 CMP R1, R2 .text:00015E68 BNE loc_15E80 .text:00015E6C LDR R0, [R12,R0,LSL#4] .text:00015E70 LDR R1, [LR] .text:00015E74 BL strcmp .text:00015E78 CMP R0, #0 .text:00015E7C BEQ loc_15EC4 .text:00015E80 .text:00015E80 loc_15E80 ; CODE XREF: _dl_lookup_versioned_symbol_skip+BB0j .text:00015E80 LDR R0, [R11,#arg_0] .text:00015E84 LDR R3, [R0,#8] .text:00015E88 CMP R3, #0 .text:00015E8C BNE loc_15EB0 .text:00015E90 LDR R3, [R7,#0x134] .text:00015E94 ADD R3, R4, R3 .text:00015E98 LDR R2, [R3,#4] .text:00015E9C CMP R2, #0 .text:00015EA0 BNE loc_15EB0 .text:00015EA4 LDRB R3, [R6,#1] .text:00015EA8 MOVS R3, R3,LSR#7 .text:00015EAC BEQ loc_15EC4 .text:00015EB0 .text:00015EB0 loc_15EB0 ; CODE XREF: _dl_lookup_versioned_symbol_skip+AA8j .text:00015EB0 ; _dl_lookup_versioned_symbol_skip+AB4j ... .text:00015EB0 LDR R3, [R7,#0x124] .text:00015EB4 LDR R10, [R3,R10,LSL#2] .text:00015EB8 CMP R10, #0 .text:00015EBC BNE loc_15D4C .text:00015EC0 B loc_15EFC .text:00015EC4 ; --------------------------------------------------------------------------- .text:00015EC4 .text:00015EC4 loc_15EC4 ; CODE XREF: _dl_lookup_versioned_symbol_skip+B04j .text:00015EC4 ; _dl_lookup_versioned_symbol_skip+B60j ... .text:00015EC4 LDRB R3, [R8,#0xC] .text:00015EC8 MOV R3, R3,LSR#4 .text:00015ECC CMP R3, #1 .text:00015ED0 BEQ loc_16244 .text:00015ED4 CMP R3, #2 .text:00015ED8 BNE loc_15EFC .text:00015EDC LDR R3, =_dl_dynamic_weak .text:00015EE0 LDR R2, [R3] .text:00015EE4 CMP R2, #0 .text:00015EE8 BEQ loc_16244 .text:00015EEC LDR R3, [R11,#var_38] .text:00015EF0 CMP R3, #0 .text:00015EF4 STREQ R8, [R11,#var_38] .text:00015EF8 STREQ R7, [R11,#var_34] .text:00015EFC .text:00015EFC loc_15EFC ; CODE XREF: _dl_lookup_versioned_symbol_skip+A90j .text:00015EFC ; _dl_lookup_versioned_symbol_skip+C08j ... .text:00015EFC CMP R10, #0 .text:00015F00 BNE loc_15FA4 .text:00015F04 LDR R1, [R11,#arg_0] .text:00015F08 LDR R6, [R1,#0xC] .text:00015F0C CMP R6, #0 .text:00015F10 BEQ loc_15FA4 .text:00015F14 LDR R1, [R7,#4] .text:00015F18 MOV R0, R6 .text:00015F1C BL strcmp .text:00015F20 LDR R4, [R7,#0x14] .text:00015F24 CMP R0, #0 .text:00015F28 MOVNE R5, #0 .text:00015F2C MOVEQ R5, #1 .text:00015F30 CMP R4, #0 .text:00015F34 CMPNE R0, #0 .text:00015F38 BEQ loc_15F9C .text:00015F3C .text:00015F3C loc_15F3C ; CODE XREF: _dl_lookup_versioned_symbol_skip+CE0j .text:00015F3C LDR R1, [R4] .text:00015F40 MOV R0, R6 .text:00015F44 BL strcmp .text:00015F48 CMP R0, #0 .text:00015F4C BNE loc_15F84 .text:00015F50 MOV R5, #1 .text:00015F54 B loc_15F88 .text:00015F54 ; --------------------------------------------------------------------------- .text:00015F58 off_15F58 DCD _dl_debug_mask ; DATA XREF: _dl_lookup_versioned_symbol_skip:loc_15BC4r .text:00015F58 ; _dl_lookup_versioned_symbol_skip+A28r .text:00015F5C off_15F5C DCD _dl_argv ; DATA XREF: _dl_lookup_versioned_symbol_skip:loc_15BECr .text:00015F5C ; _dl_lookup_versioned_symbol_skip+968r ... .text:00015F60 off_15F60 DCD aMainProgram ; DATA XREF: _dl_lookup_versioned_symbol_skip+940r .text:00015F60 ; "<main program>" .text:00015F64 off_15F64 DCD aNormal ; DATA XREF: _dl_lookup_versioned_symbol_skip+988r .text:00015F64 ; "normal" .text:00015F68 off_15F68 DCD aBindingFileS_0 ; DATA XREF: _dl_lookup_versioned_symbol_skip+98Cr .text:00015F68 ; "binding file %s to %s: %s symbol `%s' ["... .text:00015F6C off_15F6C DCD aProtected ; DATA XREF: _dl_lookup_versioned_symbol_skip+994r .text:00015F6C ; "protected" .text:00015F70 off_15F70 DCD aSymbolSLookupI ; DATA XREF: _dl_lookup_versioned_symbol_skip+A40r .text:00015F70 ; "symbol=%s; lookup in file=%s\n" .text:00015F74 off_15F74 DCD aVersionFilenam ; DATA XREF: _dl_lookup_versioned_symbol_skip+B64r .text:00015F74 ; "version->filename == ((void *)0) || ! _"... .text:00015F78 off_15F78 DCD aDoLookup_h ; DATA XREF: _dl_lookup_versioned_symbol_skip+B68r .text:00015F78 ; "do-lookup.h" .text:00015F7C off_15F7C DCD aDo_lookup_vers ; DATA XREF: _dl_lookup_versioned_symbol_skip+B6Cr .text:00015F7C ; "do_lookup_versioned" .text:00015F80 off_15F80 DCD _dl_dynamic_weak ; DATA XREF: _dl_lookup_versioned_symbol_skip+C24r .text:00015F84 ; --------------------------------------------------------------------------- .text:00015F84 .text:00015F84 loc_15F84 ; CODE XREF: _dl_lookup_versioned_symbol_skip+C94j .text:00015F84 LDR R4, [R4,#4] .text:00015F88 .text:00015F88 loc_15F88 ; CODE XREF: _dl_lookup_versioned_symbol_skip+C9Cj .text:00015F88 CMP R4, #0 .text:00015F8C EORNE R3, R5, #1 .text:00015F90 MOVEQ R3, #0 .text:00015F94 CMP R3, #0 .text:00015F98 BNE loc_15F3C .text:00015F9C .text:00015F9C loc_15F9C ; CODE XREF: _dl_lookup_versioned_symbol_skip+C80j .text:00015F9C CMP R5, #0 .text:00015FA0 BNE loc_162C8 .text:00015FA4 .text:00015FA4 loc_15FA4 ; CODE XREF: _dl_lookup_versioned_symbol_skip+A24j .text:00015FA4 ; _dl_lookup_versioned_symbol_skip+C48j ... .text:00015FA4 LDR R2, [R11,#var_98] .text:00015FA8 LDR R3, [R11,#var_90] .text:00015FAC ADD R2, R2, #1 .text:00015FB0 CMP R2, R3 .text:00015FB4 STR R2, [R11,#var_98] .text:00015FB8 BCC loc_15CB4 .text:00015FBC B loc_162E8 .text:00015FC0 ; --------------------------------------------------------------------------- .text:00015FC0 .text:00015FC0 loc_15FC0 ; CODE XREF: _dl_lookup_versioned_symbol_skip+9E0j .text:00015FC0 ; _dl_lookup_versioned_symbol_skip+1038j .text:00015FC0 LDR R12, [R11,#var_50] .text:00015FC4 LDR R3, [R12,#4]! .text:00015FC8 CMP R3, #0 .text:00015FCC STR R12, [R11,#var_50] .text:00015FD0 BEQ loc_162F4 .text:00015FD4 LDR LR, [R11,#var_44] .text:00015FD8 LDR LR, [LR] .text:00015FDC STR LR, [R11,#var_A8] .text:00015FE0 LDR R0, [R3] .text:00015FE4 MOV R1, #0 .text:00015FE8 STR R1, [R11,#var_AC] .text:00015FEC STR R0, [R11,#var_B0] .text:00015FF0 LDR R3, [R3,#4] .text:00015FF4 STR R3, [R11,#var_B4] .text:00015FF8 .text:00015FF8 loc_15FF8 ; CODE XREF: _dl_lookup_versioned_symbol_skip+102Cj .text:00015FF8 LDR R2, [R11,#var_AC] .text:00015FFC LDR R3, [R11,#var_B0] .text:00016000 LDR R12, [R11,#arg_4] .text:00016004 LDR R7, [R3,R2,LSL#2] .text:00016008 CMP R7, R12 .text:0001600C MOVNE R3, #0 .text:00016010 MOVEQ R3, #1 .text:00016014 CMP R12, #0 .text:00016018 MOVEQ R3, #0 .text:0001601C CMP R3, #0 .text:00016020 BNE loc_162D0 .text:00016024 LDR LR, =_dl_debug_mask .text:00016028 LDR R3, [LR] .text:0001602C TST R3, #8 .text:00016030 BEQ loc_16058 .text:00016034 LDR R2, [R7,#4] .text:00016038 LDRB R3, [R2] .text:0001603C LDR R0, =aSymbolSLookupI ; "symbol=%s; lookup in file=%s\n" .text:00016040 CMP R3, #0 .text:00016044 LDREQ R3, =_dl_argv .text:00016048 LDREQ R2, [R3] .text:0001604C LDREQ R2, [R2] .text:00016050 LDR R1, [R11,#var_3C] .text:00016054 BL _dl_debug_printf .text:00016058 .text:00016058 loc_16058 ; CODE XREF: _dl_lookup_versioned_symbol_skip+D78j .text:00016058 LDR R1, [R7,#0x11C] .text:0001605C ADD R2, R7, #0x2C .text:00016060 LDMIA R2, {R2,R3} .text:00016064 LDR R3, [R3,#4] .text:00016068 STR R3, [R11,#var_B8] .text:0001606C LDR R2, [R2,#4] .text:00016070 STR R2, [R11,#var_BC] .text:00016074 LDR R0, [R11,#var_4C] .text:00016078 LDR R9, [R7,#0x144] .text:0001607C BL __umodsi3 .text:00016080 LDR R3, [R7,#0x120] .text:00016084 LDR R10, [R3,R0,LSL#2] .text:00016088 CMP R10, #0 .text:0001608C BEQ loc_16254 .text:00016090 .text:00016090 loc_16090 ; CODE XREF: _dl_lookup_versioned_symbol_skip+F48j .text:00016090 LDR R0, [R11,#var_B8] .text:00016094 MOV R2, R10,LSL#4 .text:00016098 ADD R8, R0, R2 .text:0001609C LDR R3, [R8,#4] .text:000160A0 CMP R3, #0 .text:000160A4 BEQ loc_161F4 .text:000160A8 LDR R3, [R8,#0xC] .text:000160AC MOVS R3, R3,LSR#16 .text:000160B0 BEQ loc_161F4 .text:000160B4 LDRB R3, [R8,#0xC] .text:000160B8 AND R3, R3, #0xF .text:000160BC CMP R3, #2 .text:000160C0 BHI loc_161F4 .text:000160C4 LDR R1, [R11,#var_A8] .text:000160C8 CMP R8, R1 .text:000160CC BEQ loc_160EC .text:000160D0 LDR R0, [R0,R2] .text:000160D4 LDR R2, [R11,#var_BC] .text:000160D8 LDR R1, [R11,#var_3C] .text:000160DC ADD R0, R2, R0 .text:000160E0 BL strcmp .text:000160E4 CMP R0, #0 .text:000160E8 BNE loc_161F4 .text:000160EC .text:000160EC loc_160EC ; CODE XREF: _dl_lookup_versioned_symbol_skip+E14j .text:000160EC CMP R9, #0 .text:000160F0 BNE loc_16174 .text:000160F4 LDR R3, [R11,#arg_0] .text:000160F8 LDR R6, [R3,#0xC] .text:000160FC CMP R6, #0 .text:00016100 BEQ loc_16208 .text:00016104 LDR R1, [R7,#4] .text:00016108 MOV R0, R6 .text:0001610C BL strcmp .text:00016110 LDR R4, [R7,#0x14] .text:00016114 CMP R0, #0 .text:00016118 MOVNE R5, #0 .text:0001611C MOVEQ R5, #1 .text:00016120 CMP R4, #0 .text:00016124 CMPNE R0, #0 .text:00016128 BEQ loc_16158 .text:0001612C .text:0001612C loc_1612C ; CODE XREF: _dl_lookup_versioned_symbol_skip+E9Cj .text:0001612C LDR R1, [R4] .text:00016130 MOV R0, R6 .text:00016134 BL strcmp .text:00016138 CMP R0, #0 .text:0001613C MOVEQ R5, #1 .text:00016140 LDRNE R4, [R4,#4] .text:00016144 CMP R4, #0 .text:00016148 EORNE R3, R5, #1 .text:0001614C MOVEQ R3, #0 .text:00016150 CMP R3, #0 .text:00016154 BNE loc_1612C .text:00016158 .text:00016158 loc_16158 ; CODE XREF: _dl_lookup_versioned_symbol_skip+E70j .text:00016158 CMP R5, #0 .text:0001615C BEQ loc_16208 .text:00016160 LDR R0, =aVersionFilenam ; "version->filename == ((void *)0) || ! _"... .text:00016164 LDR R1, =aDoLookup_h ; "do-lookup.h" .text:00016168 LDR R3, =aDo_lookup_vers ; "do_lookup_versioned" .text:0001616C MOV R2, #0x68 .text:00016170 BL __assert_fail .text:00016174 ; --------------------------------------------------------------------------- .text:00016174 .text:00016174 loc_16174 ; CODE XREF: _dl_lookup_versioned_symbol_skip+E38j .text:00016174 MOV R5, R10,LSL#1 .text:00016178 LDRB R2, [R5,R9] .text:0001617C ADD R6, R5, R9 .text:00016180 LDRB R3, [R6,#1] .text:00016184 LDR R12, [R7,#0x134] .text:00016188 LDR LR, [R11,#arg_0] .text:0001618C ORR R2, R2, R3,LSL#8 .text:00016190 MOV R0, R2,LSL#17 .text:00016194 MOV R0, R0,LSR#17 .text:00016198 MOV R4, R0,LSL#4 .text:0001619C ADD R3, R4, R12 .text:000161A0 LDR R1, [R3,#4] .text:000161A4 LDR R2, [LR,#4] .text:000161A8 CMP R1, R2 .text:000161AC BNE loc_161C4 .text:000161B0 LDR R0, [R12,R0,LSL#4] .text:000161B4 LDR R1, [LR] .text:000161B8 BL strcmp .text:000161BC CMP R0, #0 .text:000161C0 BEQ loc_16208 .text:000161C4 .text:000161C4 loc_161C4 ; CODE XREF: _dl_lookup_versioned_symbol_skip+EF4j .text:000161C4 LDR R0, [R11,#arg_0] .text:000161C8 LDR R3, [R0,#8] .text:000161CC CMP R3, #0 .text:000161D0 BNE loc_161F4 .text:000161D4 LDR R3, [R7,#0x134] .text:000161D8 ADD R3, R4, R3 .text:000161DC LDR R2, [R3,#4] .text:000161E0 CMP R2, #0 .text:000161E4 BNE loc_161F4 .text:000161E8 LDRB R3, [R6,#1] .text:000161EC MOVS R3, R3,LSR#7 .text:000161F0 BEQ loc_16208 .text:000161F4 .text:000161F4 loc_161F4 ; CODE XREF: _dl_lookup_versioned_symbol_skip+DECj .text:000161F4 ; _dl_lookup_versioned_symbol_skip+DF8j ... .text:000161F4 LDR R3, [R7,#0x124] .text:000161F8 LDR R10, [R3,R10,LSL#2] .text:000161FC CMP R10, #0 .text:00016200 BNE loc_16090 .text:00016204 B loc_16254 .text:00016208 ; --------------------------------------------------------------------------- .text:00016208 .text:00016208 loc_16208 ; CODE XREF: _dl_lookup_versioned_symbol_skip+E48j .text:00016208 ; _dl_lookup_versioned_symbol_skip+EA4j ... .text:00016208 LDRB R3, [R8,#0xC] .text:0001620C MOV R3, R3,LSR#4 .text:00016210 CMP R3, #1 .text:00016214 BEQ loc_16244 .text:00016218 CMP R3, #2 .text:0001621C BNE loc_16254 .text:00016220 LDR R3, =_dl_dynamic_weak .text:00016224 LDR R2, [R3] .text:00016228 CMP R2, #0 .text:0001622C BEQ loc_16244 .text:00016230 LDR R3, [R11,#var_38] .text:00016234 CMP R3, #0 .text:00016238 STREQ R8, [R11,#var_38] .text:0001623C STREQ R7, [R11,#var_34] .text:00016240 B loc_16254 .text:00016244 ; --------------------------------------------------------------------------- .text:00016244 .text:00016244 loc_16244 ; CODE XREF: _dl_lookup_versioned_symbol_skip+C18j .text:00016244 ; _dl_lookup_versioned_symbol_skip+C30j ... .text:00016244 STR R8, [R11,#var_38] .text:00016248 MOV R3, #1 .text:0001624C STR R7, [R11,#var_34] .text:00016250 B loc_162EC .text:00016254 ; --------------------------------------------------------------------------- .text:00016254 .text:00016254 loc_16254 ; CODE XREF: _dl_lookup_versioned_symbol_skip+DD4j .text:00016254 ; _dl_lookup_versioned_symbol_skip+F4Cj ... .text:00016254 CMP R10, #0 .text:00016258 BNE loc_162D0 .text:0001625C LDR R1, [R11,#arg_0] .text:00016260 LDR R6, [R1,#0xC] .text:00016264 CMP R6, #0 .text:00016268 BEQ loc_162D0 .text:0001626C LDR R1, [R7,#4] .text:00016270 MOV R0, R6 .text:00016274 BL strcmp .text:00016278 LDR R4, [R7,#0x14] .text:0001627C CMP R0, #0 .text:00016280 MOVNE R5, #0 .text:00016284 MOVEQ R5, #1 .text:00016288 CMP R4, #0 .text:0001628C CMPNE R0, #0 .text:00016290 BEQ loc_162C0 .text:00016294 .text:00016294 loc_16294 ; CODE XREF: _dl_lookup_versioned_symbol_skip+1004j .text:00016294 LDR R1, [R4] .text:00016298 MOV R0, R6 .text:0001629C BL strcmp .text:000162A0 CMP R0, #0 .text:000162A4 MOVEQ R5, #1 .text:000162A8 LDRNE R4, [R4,#4] .text:000162AC CMP R4, #0 .text:000162B0 EORNE R3, R5, #1 .text:000162B4 MOVEQ R3, #0 .text:000162B8 CMP R3, #0 .text:000162BC BNE loc_16294 .text:000162C0 .text:000162C0 loc_162C0 ; CODE XREF: _dl_lookup_versioned_symbol_skip+FD8j .text:000162C0 CMP R5, #0 .text:000162C4 BEQ loc_162D0 .text:000162C8 .text:000162C8 loc_162C8 ; CODE XREF: _dl_lookup_versioned_symbol_skip+CE8j .text:000162C8 MOV R3, 0xFFFFFFFF .text:000162CC B loc_162EC .text:000162D0 ; --------------------------------------------------------------------------- .text:000162D0 .text:000162D0 loc_162D0 ; CODE XREF: _dl_lookup_versioned_symbol_skip+D68j .text:000162D0 ; _dl_lookup_versioned_symbol_skip+FA0j ... .text:000162D0 LDR R2, [R11,#var_AC] .text:000162D4 LDR R3, [R11,#var_B4] .text:000162D8 ADD R2, R2, #1 .text:000162DC CMP R2, R3 .text:000162E0 STR R2, [R11,#var_AC] .text:000162E4 BCC loc_15FF8 .text:000162E8 .text:000162E8 loc_162E8 ; CODE XREF: _dl_lookup_versioned_symbol_skip+D04j .text:000162E8 MOV R3, #0 .text:000162EC .text:000162EC loc_162EC ; CODE XREF: _dl_lookup_versioned_symbol_skip+F98j .text:000162EC ; _dl_lookup_versioned_symbol_skip+1014j .text:000162EC CMP R3, #0 .text:000162F0 BEQ loc_15FC0 .text:000162F4 .text:000162F4 loc_162F4 ; CODE XREF: _dl_lookup_versioned_symbol_skip+D18j .text:000162F4 LDR R3, [R11,#var_38] .text:000162F8 CMP R3, #0 .text:000162FC BEQ loc_16310 .text:00016300 LDR R3, [R11,#var_34] .text:00016304 LDR R12, [R11,#var_40] .text:00016308 CMP R3, R12 .text:0001630C BNE loc_16344 .text:00016310 .text:00016310 loc_16310 ; CODE XREF: _dl_lookup_versioned_symbol_skip+1044j .text:00016310 LDR R3, [R11,#var_30] .text:00016314 LDR LR, [R11,#var_44] .text:00016318 STR R3, [LR] .text:0001631C .text:0001631C loc_1631C ; CODE XREF: _dl_lookup_versioned_symbol_skip+9B4j .text:0001631C LDR R2, [R11,#var_2C] .text:00016320 LDR R0, [R2] .text:00016324 B locret_1634C .text:00016324 ; --------------------------------------------------------------------------- .text:00016328 off_16328 DCD _dl_debug_mask ; DATA XREF: _dl_lookup_versioned_symbol_skip+D6Cr .text:0001632C off_1632C DCD aSymbolSLookupI ; DATA XREF: _dl_lookup_versioned_symbol_skip+D84r .text:0001632C ; "symbol=%s; lookup in file=%s\n" .text:00016330 off_16330 DCD _dl_argv ; DATA XREF: _dl_lookup_versioned_symbol_skip+D8Cr .text:00016334 off_16334 DCD aVersionFilenam ; DATA XREF: _dl_lookup_versioned_symbol_skip+EA8r .text:00016334 ; "version->filename == ((void *)0) || ! _"... .text:00016338 off_16338 DCD aDoLookup_h ; DATA XREF: _dl_lookup_versioned_symbol_skip+EACr .text:00016338 ; "do-lookup.h" .text:0001633C off_1633C DCD aDo_lookup_vers ; DATA XREF: _dl_lookup_versioned_symbol_skip+EB0r .text:0001633C ; "do_lookup_versioned" .text:00016340 off_16340 DCD _dl_dynamic_weak ; DATA XREF: _dl_lookup_versioned_symbol_skip+F68r .text:00016344 ; --------------------------------------------------------------------------- .text:00016344 .text:00016344 loc_16344 ; CODE XREF: _dl_lookup_versioned_symbol_skip+1054j .text:00016344 LDR R1, [R11,#var_40] .text:00016348 LDR R0, [R1] .text:0001634C .text:0001634C locret_1634C ; CODE XREF: _dl_lookup_versioned_symbol_skip+8BCj .text:0001634C ; _dl_lookup_versioned_symbol_skip+106Cj .text:0001634C LDMDB R11, {R4-R11,SP,PC} .text:0001634C ; End of function _dl_lookup_versioned_symbol_skip .text:0001634C .text:00016350 .text:00016350 ; =============== S U B R O U T I N E ======================================= .text:00016350 .text:00016350 ; Attributes: bp-based frame .text:00016350 .text:00016350 EXPORT _dl_setup_hash .text:00016350 _dl_setup_hash ; CODE XREF: _dl_map_object_from_fd+B6Cp .text:00016350 MOV R12, SP .text:00016354 STMFD SP!, {R11,R12,LR,PC} .text:00016358 SUB R11, R12, #4 .text:0001635C MOV R12, R0 .text:00016360 LDR R3, [R12,#0x28] .text:00016364 CMP R3, #0 .text:00016368 LDMEQDB R11, {R11,SP,PC} .text:0001636C LDR R1, [R12] .text:00016370 LDR R2, [R3,#4] .text:00016374 ADD R3, R1, R2 .text:00016378 LDR R0, [R1,R2] .text:0001637C ADD R3, R3, #8 .text:00016380 STR R3, [R12,#0x120] .text:00016384 STR R0, [R12,#0x11C] .text:00016388 ADD R3, R3, R0,LSL#2 .text:0001638C STR R3, [R12,#0x124] .text:00016390 LDMDB R11, {R11,SP,PC} .text:00016390 ; End of function _dl_setup_hash .text:00016390 .text:00016394 .text:00016394 ; =============== S U B R O U T I N E ======================================= .text:00016394 .text:00016394 ; Attributes: bp-based frame .text:00016394 .text:00016394 EXPORT _dl_new_object .text:00016394 _dl_new_object ; CODE XREF: _dl_map_object_from_fd+13Cp .text:00016394 ; _dl_map_object+690p .text:00016394 .text:00016394 var_2C = -0x2C .text:00016394 .text:00016394 MOV R12, SP .text:00016398 STMFD SP!, {R4-R12,LR,PC} .text:0001639C SUB R11, R12, #4 .text:000163A0 SUB SP, SP, #4 .text:000163A4 STR R2, [R11,#var_2C] .text:000163A8 MOV R8, R3 .text:000163AC MOV R9, R0 .text:000163B0 MOV R10, R1 .text:000163B4 MOV R0, R10 .text:000163B8 BL strlen .text:000163BC MOV R4, R0 .text:000163C0 MOV R0, #0x1A0 .text:000163C4 MOV R1, #1 .text:000163C8 BL calloc .text:000163CC MOV R7, R0 .text:000163D0 ADD R0, R4, #0xD .text:000163D4 BL malloc .text:000163D8 MOV R5, R0 .text:000163DC CMP R5, #0 .text:000163E0 MOVNE R3, #0 .text:000163E4 MOVEQ R3, #1 .text:000163E8 CMP R7, #0 .text:000163EC MOVNE R6, R3 .text:000163F0 MOVEQ R6, #1 .text:000163F4 CMP R6, #0 .text:000163F8 ADD R4, R4, #1 .text:000163FC MOVNE R0, #0 .text:00016400 BNE locret_1664C .text:00016404 STR R9, [R7,#4] .text:00016408 ADD R0, R5, #0xC .text:0001640C MOV R1, R10 .text:00016410 MOV R2, R4 .text:00016414 BL memcpy .text:00016418 STMIA R5, {R0,R6} .text:0001641C STR R5, [R7,#0x14] .text:00016420 STR R8, [R7,#0x118] .text:00016424 LDR LR, [R11,#var_2C] .text:00016428 MOV R12, R6 .text:0001642C LDR R1, =_dl_loaded .text:00016430 AND R2, LR, #3 .text:00016434 LDR R0, [R1] .text:00016438 MOV R5, R1 .text:0001643C LDRB R3, [R7,#0x12C] .text:00016440 CMP R0, #0 .text:00016444 BIC R3, R3, #3 .text:00016448 ORR R2, R2, R3 .text:0001644C STRB R2, [R7,#0x12C] .text:00016450 BEQ loc_164A0 .text:00016454 MOV R2, R0 .text:00016458 ADD R1, R7, #0xF8 .text:0001645C MOV LR, R12 .text:00016460 ADD R0, R7, #0x154 .text:00016464 LDR R3, [R2,#0xC] .text:00016468 ADD R12, LR, #1 .text:0001646C LDR R4, =_dl_nloaded .text:00016470 CMP R3, #0 .text:00016474 BEQ loc_16488 .text:00016478 .text:00016478 loc_16478 ; CODE XREF: _dl_new_object+F0j .text:00016478 LDR R2, [R2,#0xC] .text:0001647C LDR R3, [R2,#0xC] .text:00016480 CMP R3, #0 .text:00016484 BNE loc_16478 .text:00016488 .text:00016488 loc_16488 ; CODE XREF: _dl_new_object+E0j .text:00016488 STR R2, [R7,#0x10] .text:0001648C STR R7, [R2,#0xC] .text:00016490 LDR R3, [R5] .text:00016494 ADD R3, R3, #0xF8 .text:00016498 STR R3, [R0,LR] .text:0001649C B loc_164AC .text:000164A0 ; --------------------------------------------------------------------------- .text:000164A0 .text:000164A0 loc_164A0 ; CODE XREF: _dl_new_object+BCj .text:000164A0 STR R7, [R1] .text:000164A4 ADD R1, R7, #0xF8 .text:000164A8 LDR R4, =_dl_nloaded .text:000164AC .text:000164AC loc_164AC ; CODE XREF: _dl_new_object+108j .text:000164AC LDR R3, [R4] .text:000164B0 CMP R8, #0 .text:000164B4 ADD R3, R3, #1 .text:000164B8 STR R3, [R4] .text:000164BC BEQ loc_164F8 .text:000164C0 B loc_164C8 .text:000164C4 ; --------------------------------------------------------------------------- .text:000164C4 .text:000164C4 loc_164C4 ; CODE XREF: _dl_new_object+13Cj .text:000164C4 LDR R8, [R8,#0x118] .text:000164C8 .text:000164C8 loc_164C8 ; CODE XREF: _dl_new_object+12Cj .text:000164C8 LDR R3, [R8,#0x118] .text:000164CC CMP R3, #0 .text:000164D0 BNE loc_164C4 .text:000164D4 CMP R12, #0 .text:000164D8 ADD R2, R8, #0xF8 .text:000164DC BEQ loc_164EC .text:000164E0 LDR R3, [R7,#0x154] .text:000164E4 CMP R2, R3 .text:000164E8 BEQ loc_16514 .text:000164EC .text:000164EC loc_164EC ; CODE XREF: _dl_new_object+148j .text:000164EC ADD R3, R7, #0x154 .text:000164F0 STR R2, [R3,R12,LSL#2] .text:000164F4 B loc_16514 .text:000164F8 ; --------------------------------------------------------------------------- .text:000164F8 .text:000164F8 loc_164F8 ; CODE XREF: _dl_new_object+128j .text:000164F8 CMP R12, #0 .text:000164FC BEQ loc_1650C .text:00016500 LDR R3, [R7,#0x154] .text:00016504 CMP R1, R3 .text:00016508 BEQ loc_16514 .text:0001650C .text:0001650C loc_1650C ; CODE XREF: _dl_new_object+168j .text:0001650C ADD R3, R7, #0x154 .text:00016510 STR R1, [R3,R12,LSL#2] .text:00016514 .text:00016514 loc_16514 ; CODE XREF: _dl_new_object+154j .text:00016514 ; _dl_new_object+160j ... .text:00016514 LDRB R3, [R9] .text:00016518 STR R1, [R7,#0x164] .text:0001651C CMP R3, #0 .text:00016520 BEQ loc_16648 .text:00016524 CMP R3, #0x2F .text:00016528 BNE loc_16564 .text:0001652C MOV R0, R9 .text:00016530 BL strlen .text:00016534 ADD R5, R0, #1 .text:00016538 MOV R0, R5 .text:0001653C BL malloc .text:00016540 SUBS R4, R0, #0 .text:00016544 BNE loc_16550 .text:00016548 .text:00016548 loc_16548 ; CODE XREF: _dl_new_object+240j .text:00016548 ; _dl_new_object+24Cj .text:00016548 MOV R4, 0xFFFFFFFF .text:0001654C B loc_1660C .text:00016550 ; --------------------------------------------------------------------------- .text:00016550 .text:00016550 loc_16550 ; CODE XREF: _dl_new_object+1B0j .text:00016550 MOV R0, R4 .text:00016554 MOV R1, R9 .text:00016558 MOV R2, R5 .text:0001655C BL memcpy .text:00016560 B loc_1660C .text:00016564 ; --------------------------------------------------------------------------- .text:00016564 .text:00016564 loc_16564 ; CODE XREF: _dl_new_object+194j .text:00016564 MOV R0, R9 .text:00016568 BL strlen .text:0001656C MOV R3, R0 .text:00016570 ADD R5, R3, #0x81 .text:00016574 MOV R8, #0 .text:00016578 MOV R0, R5 .text:0001657C ADD R6, R3, #1 .text:00016580 BL malloc .text:00016584 B loc_16598 .text:00016588 ; --------------------------------------------------------------------------- .text:00016588 .text:00016588 loc_16588 ; CODE XREF: _dl_new_object+230j .text:00016588 ADD R5, R5, #0x80 .text:0001658C MOV R0, R4 .text:00016590 MOV R1, R5 .text:00016594 BL realloc .text:00016598 .text:00016598 loc_16598 ; CODE XREF: _dl_new_object+1F0j .text:00016598 MOV R4, R0 .text:0001659C CMP R4, #0 .text:000165A0 BEQ loc_165C8 .text:000165A4 MOV R0, R4 .text:000165A8 RSB R1, R6, R5 .text:000165AC BL getcwd .text:000165B0 SUBS R8, R0, #0 .text:000165B4 BNE loc_165C8 .text:000165B8 BL __errno_location .text:000165BC LDR R3, [R0] .text:000165C0 CMP R3, #0x22 .text:000165C4 BEQ loc_16588 .text:000165C8 .text:000165C8 loc_165C8 ; CODE XREF: _dl_new_object+20Cj .text:000165C8 ; _dl_new_object+220j .text:000165C8 CMP R8, #0 .text:000165CC BNE loc_165E4 .text:000165D0 CMP R4, #0 .text:000165D4 BEQ loc_16548 .text:000165D8 MOV R0, R4 .text:000165DC BL free .text:000165E0 B loc_16548 .text:000165E4 ; --------------------------------------------------------------------------- .text:000165E4 .text:000165E4 loc_165E4 ; CODE XREF: _dl_new_object+238j .text:000165E4 MOV R0, R4 .text:000165E8 MOV R1, #0 .text:000165EC BL rawmemchr .text:000165F0 LDRB R3, [R0,#-1] .text:000165F4 CMP R3, #0x2F .text:000165F8 MOVNE R3, #0x2F .text:000165FC STRNEB R3, [R0],#1 .text:00016600 MOV R1, R9 .text:00016604 MOV R2, R6 .text:00016608 BL memcpy .text:0001660C .text:0001660C loc_1660C ; CODE XREF: _dl_new_object+1B8j .text:0001660C ; _dl_new_object+1CCj .text:0001660C CMN R4, #1 .text:00016610 BEQ loc_16644 .text:00016614 MOV R0, R4 .text:00016618 MOV R1, #0x2F .text:0001661C BL strrchr .text:00016620 CMP R0, R4 .text:00016624 BNE loc_1663C .text:00016628 MOV R3, #0 .text:0001662C STRB R3, [R4,#1] .text:00016630 B loc_16644 .text:00016630 ; --------------------------------------------------------------------------- .text:00016634 off_16634 DCD _dl_loaded ; DATA XREF: _dl_new_object+98r .text:00016638 off_16638 DCD _dl_nloaded ; DATA XREF: _dl_new_object+D8r .text:00016638 ; _dl_new_object+114r .text:0001663C ; --------------------------------------------------------------------------- .text:0001663C .text:0001663C loc_1663C ; CODE XREF: _dl_new_object+290j .text:0001663C MOV R3, #0 .text:00016640 STRB R3, [R0] .text:00016644 .text:00016644 loc_16644 ; CODE XREF: _dl_new_object+27Cj .text:00016644 ; _dl_new_object+29Cj .text:00016644 STR R4, [R7,#0x148] .text:00016648 .text:00016648 loc_16648 ; CODE XREF: _dl_new_object+18Cj .text:00016648 MOV R0, R7 .text:0001664C .text:0001664C locret_1664C ; CODE XREF: _dl_new_object+6Cj .text:0001664C LDMDB R11, {R4-R11,SP,PC} .text:0001664C ; End of function _dl_new_object .text:0001664C .text:00016650 .text:00016650 ; =============== S U B R O U T I N E ======================================= .text:00016650 .text:00016650 ; Attributes: noreturn bp-based frame .text:00016650 .text:00016650 EXPORT _dl_signal_error .text:00016650 _dl_signal_error ; CODE XREF: add_name_to_object+70p .text:00016650 ; decompose_rpath+A8p ... .text:00016650 .text:00016650 var_414 = -0x414 .text:00016650 var_410 = -0x410 .text:00016650 var_400 = -0x400 .text:00016650 .text:00016650 MOV R12, SP .text:00016654 STMFD SP!, {R11,R12,LR,PC} .text:00016658 SUB R11, R12, #4 .text:0001665C CMP R2, #0 .text:00016660 MOV R6, R0 .text:00016664 LDR R3, =__libc_internal_tsd_get .text:00016668 MOV R5, R1 .text:0001666C LDR R12, =aDynamicLinkerB ; "DYNAMIC LINKER BUG!!!" .text:00016670 SUB SP, SP, #0x410 .text:00016674 LDR R3, [R3] .text:00016678 MOVNE R8, R2 .text:0001667C MOVEQ R8, R12 .text:00016680 CMP R3, #0 .text:00016684 BEQ loc_1669C .text:00016688 MOV R0, #1 .text:0001668C MOV LR, PC .text:00016690 MOV PC, R3 .text:00016694 MOV R4, R0 .text:00016698 B loc_166A4 .text:0001669C ; --------------------------------------------------------------------------- .text:0001669C .text:0001669C loc_1669C ; CODE XREF: _dl_signal_error+34j .text:0001669C LDR R3, =__libc_tsd_DL_ERROR_data .text:000166A0 LDR R4, [R3] .text:000166A4 .text:000166A4 loc_166A4 ; CODE XREF: _dl_signal_error+48j .text:000166A4 CMP R4, #0 .text:000166A8 BEQ loc_1671C .text:000166AC MOV R0, R5 .text:000166B0 BL strlen .text:000166B4 ADD R10, R0, #1 .text:000166B8 MOV R0, R8 .text:000166BC BL strlen .text:000166C0 ADD R7, R0, #1 .text:000166C4 ADD R0, R10, R7 .text:000166C8 BL malloc .text:000166CC CMP R0, #0 .text:000166D0 STR R0, [R4,#4] .text:000166D4 BEQ loc_166F8 .text:000166D8 MOV R1, R8 .text:000166DC MOV R2, R7 .text:000166E0 BL mempcpy .text:000166E4 MOV R1, R5 .text:000166E8 MOV R2, R10 .text:000166EC BL memcpy .text:000166F0 STR R0, [R4] .text:000166F4 B loc_16708 .text:000166F8 ; --------------------------------------------------------------------------- .text:000166F8 .text:000166F8 loc_166F8 ; CODE XREF: _dl_signal_error+84j .text:000166F8 LDR R3, =dword_56200 .text:000166FC STR R3, [R4] .text:00016700 LDR R2, =_dl_out_of_memory ; "out of memory" .text:00016704 STR R2, [R4,#4] .text:00016708 .text:00016708 loc_16708 ; CODE XREF: _dl_signal_error+A4j .text:00016708 CMP R6, #0 .text:0001670C ADD R0, R4, #8 .text:00016710 MOVNE R1, R6 .text:00016714 MOVEQ R1, 0xFFFFFFFF .text:00016718 BL siglongjmp .text:0001671C ; --------------------------------------------------------------------------- .text:0001671C .text:0001671C loc_1671C ; CODE XREF: _dl_signal_error+58j .text:0001671C CMP R6, #0 .text:00016720 BEQ loc_1673C .text:00016724 MOV R0, R6 .text:00016728 SUB R1, R11, #-var_400 .text:0001672C SUB R1, R1, #0xC .text:00016730 MOV R2, #0x400 .text:00016734 BL strerror_r .text:00016738 B loc_16740 .text:0001673C ; --------------------------------------------------------------------------- .text:0001673C .text:0001673C loc_1673C ; CODE XREF: _dl_signal_error+D0j .text:0001673C LDR R0, =dword_56200 .text:00016740 .text:00016740 loc_16740 ; CODE XREF: _dl_signal_error+E8j .text:00016740 LDR R4, =dword_56200 .text:00016744 LDR LR, =aProgramNameUnk ; "<program name unknown>" .text:00016748 LDR R3, =_dl_argv .text:0001674C LDR R7, =aSErrorWhileLoa ; "%s: error while loading shared librarie"... .text:00016750 LDR R2, [R3] .text:00016754 LDR R3, [R2] .text:00016758 MOV R1, R4 .text:0001675C LDR R2, =asc_56254 ; ": " .text:00016760 CMP R3, #0 .text:00016764 MOVNE LR, R3 .text:00016768 SUBS R12, R5, #0 .text:0001676C MOVEQ R12, R4 .text:00016770 BEQ loc_16784 .text:00016774 LDRB R3, [R5] .text:00016778 CMP R3, #0 .text:0001677C MOVNE R1, R2 .text:00016780 MOVEQ R1, R4 .text:00016784 .text:00016784 loc_16784 ; CODE XREF: _dl_signal_error+120j .text:00016784 STMEA SP, {R1,R8} .text:00016788 CMP R6, #0 .text:0001678C MOVNE R3, R2 .text:00016790 MOVEQ R3, R4 .text:00016794 STR R3, [SP,#0x41C+var_414] .text:00016798 STR R0, [SP,#0x41C+var_410] .text:0001679C MOV R0, #2 .text:000167A0 MOV R1, R7 .text:000167A4 MOV R2, LR .text:000167A8 MOV R3, R12 .text:000167AC BL _dl_dprintf .text:000167B0 MOV R0, #0x7F ; status .text:000167B4 BL _exit .text:000167B4 ; End of function _dl_signal_error .text:000167B4 .text:000167B4 ; --------------------------------------------------------------------------- .text:000167B8 off_167B8 DCD __libc_internal_tsd_get ; DATA XREF: _dl_signal_error+14r .text:000167BC off_167BC DCD aDynamicLinkerB ; DATA XREF: _dl_signal_error+1Cr .text:000167BC ; "DYNAMIC LINKER BUG!!!" .text:000167C0 off_167C0 DCD __libc_tsd_DL_ERROR_data .text:000167C0 ; DATA XREF: _dl_signal_error:loc_1669Cr .text:000167C4 off_167C4 DCD dword_56200 ; DATA XREF: _dl_signal_error:loc_166F8r .text:000167C4 ; _dl_signal_error:loc_1673Cr ... .text:000167C8 off_167C8 DCD _dl_out_of_memory ; DATA XREF: _dl_signal_error+B0r .text:000167C8 ; "out of memory" .text:000167CC off_167CC DCD aProgramNameUnk ; DATA XREF: _dl_signal_error+F4r .text:000167CC ; "<program name unknown>" .text:000167D0 off_167D0 DCD _dl_argv ; DATA XREF: _dl_signal_error+F8r .text:000167D4 off_167D4 DCD aSErrorWhileLoa ; DATA XREF: _dl_signal_error+FCr .text:000167D4 ; "%s: error while loading shared librarie"... .text:000167D8 off_167D8 DCD asc_56254 ; DATA XREF: _dl_signal_error+10Cr .text:000167D8 ; ": " .text:000167DC ; --------------------------------------------------------------------------- .text:000167DC LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:000167E0 .text:000167E0 ; =============== S U B R O U T I N E ======================================= .text:000167E0 .text:000167E0 ; Attributes: bp-based frame .text:000167E0 .text:000167E0 EXPORT _dl_signal_cerror .text:000167E0 _dl_signal_cerror ; CODE XREF: _dl_lookup_symbol+498p .text:000167E0 ; _dl_lookup_versioned_symbol+60Cp ... .text:000167E0 MOV R12, SP .text:000167E4 STMFD SP!, {R11,R12,LR,PC} .text:000167E8 LDR R3, =receiver .text:000167EC LDR R3, [R3] .text:000167F0 SUB R11, R12, #4 .text:000167F4 CMP R3, #0 .text:000167F8 BEQ loc_16808 .text:000167FC MOV LR, PC .text:00016800 MOV PC, R3 .text:00016804 LDMDB R11, {R11,SP,PC} .text:00016808 ; --------------------------------------------------------------------------- .text:00016808 .text:00016808 loc_16808 ; CODE XREF: _dl_signal_cerror+18j .text:00016808 BL _dl_signal_error .text:00016808 ; End of function _dl_signal_cerror .text:00016808 .text:00016808 ; --------------------------------------------------------------------------- .text:0001680C off_1680C DCD receiver ; DATA XREF: _dl_signal_cerror+8r .text:00016810 .text:00016810 ; =============== S U B R O U T I N E ======================================= .text:00016810 .text:00016810 ; Attributes: bp-based frame .text:00016810 .text:00016810 EXPORT _dl_catch_error .text:00016810 _dl_catch_error ; CODE XREF: dlerror_run+28p .text:00016810 ; .text:0005144Cp ... .text:00016810 .text:00016810 var_108 = -0x108 .text:00016810 var_104 = -0x104 .text:00016810 var_100 = -0x100 .text:00016810 var_FC = -0xFC .text:00016810 var_F8 = -0xF8 .text:00016810 var_F4 = -0xF4 .text:00016810 env = -0xF0 .text:00016810 var_14 = -0x14 .text:00016810 .text:00016810 MOV R12, SP .text:00016814 STMFD SP!, {R4,R11,R12,LR,PC} .text:00016818 SUB R11, R12, #4 .text:0001681C LDR R12, =__libc_internal_tsd_get .text:00016820 SUB SP, SP, #0xF8 .text:00016824 LDR R12, [R12] .text:00016828 MOV LR, #0 .text:0001682C STR LR, [R11,#var_F4] .text:00016830 STR R0, [R11,#var_FC] .text:00016834 STR R1, [R11,#var_100] .text:00016838 STR R2, [R11,#var_104] .text:0001683C STR R3, [R11,#var_108] .text:00016840 CMP R12, LR .text:00016844 BEQ loc_16858 .text:00016848 MOV R0, #1 .text:0001684C MOV LR, PC .text:00016850 MOV PC, R12 .text:00016854 B loc_16860 .text:00016858 ; --------------------------------------------------------------------------- .text:00016858 .text:00016858 loc_16858 ; CODE XREF: _dl_catch_error+34j .text:00016858 LDR R3, =__libc_tsd_DL_ERROR_data .text:0001685C LDR R0, [R3] .text:00016860 .text:00016860 loc_16860 ; CODE XREF: _dl_catch_error+44j .text:00016860 STR R0, [R11,#var_14] .text:00016864 SUB R0, R11, #-env ; env .text:00016868 BL _setjmp .text:0001686C SUBS R4, R0, #0 .text:00016870 BNE loc_168FC .text:00016874 LDR R3, =__libc_internal_tsd_set .text:00016878 LDR R3, [R3] .text:0001687C CMP R3, #0 .text:00016880 BEQ loc_16898 .text:00016884 MOV R0, #1 .text:00016888 SUB R1, R11, #-var_F8 .text:0001688C MOV LR, PC .text:00016890 MOV PC, R3 .text:00016894 B loc_168A4 .text:00016898 ; --------------------------------------------------------------------------- .text:00016898 .text:00016898 loc_16898 ; CODE XREF: _dl_catch_error+70j .text:00016898 LDR R2, =__libc_tsd_DL_ERROR_data .text:0001689C SUB R3, R11, #-var_F8 .text:000168A0 STR R3, [R2] .text:000168A4 .text:000168A4 loc_168A4 ; CODE XREF: _dl_catch_error+84j .text:000168A4 SUB R0, R11, #-var_108 .text:000168A8 LDMIA R0, {R0,R2} .text:000168AC MOV LR, PC .text:000168B0 MOV PC, R2 .text:000168B4 LDR R3, =__libc_internal_tsd_set .text:000168B8 LDR R3, [R3] .text:000168BC CMP R3, #0 .text:000168C0 BEQ loc_168D8 .text:000168C4 LDR R1, [R11,#var_14] .text:000168C8 MOV R0, #1 .text:000168CC MOV LR, PC .text:000168D0 MOV PC, R3 .text:000168D4 B loc_168E4 .text:000168D8 ; --------------------------------------------------------------------------- .text:000168D8 .text:000168D8 loc_168D8 ; CODE XREF: _dl_catch_error+B0j .text:000168D8 LDR R2, =__libc_tsd_DL_ERROR_data .text:000168DC LDR R3, [R11,#var_14] .text:000168E0 STR R3, [R2] .text:000168E4 .text:000168E4 loc_168E4 ; CODE XREF: _dl_catch_error+C4j .text:000168E4 LDR R2, [R11,#var_FC] .text:000168E8 MOV R3, #0 .text:000168EC STR R3, [R2] .text:000168F0 LDR R2, [R11,#var_100] .text:000168F4 MOV R0, R3 .text:000168F8 B loc_16958 .text:000168FC ; --------------------------------------------------------------------------- .text:000168FC .text:000168FC loc_168FC ; CODE XREF: _dl_catch_error+60j .text:000168FC LDR R3, =__libc_internal_tsd_set .text:00016900 LDR R3, [R3] .text:00016904 CMP R3, #0 .text:00016908 BEQ loc_1692C .text:0001690C LDR R1, [R11,#var_14] .text:00016910 MOV R0, #1 .text:00016914 MOV LR, PC .text:00016918 MOV PC, R3 .text:0001691C B loc_16938 .text:0001691C ; --------------------------------------------------------------------------- .text:00016920 off_16920 DCD __libc_internal_tsd_get ; DATA XREF: _dl_catch_error+Cr .text:00016924 off_16924 DCD __libc_tsd_DL_ERROR_data .text:00016924 ; DATA XREF: _dl_catch_error:loc_16858r .text:00016924 ; _dl_catch_error:loc_16898r ... .text:00016928 off_16928 DCD __libc_internal_tsd_set ; DATA XREF: _dl_catch_error+64r .text:00016928 ; _dl_catch_error+A4r ... .text:0001692C ; --------------------------------------------------------------------------- .text:0001692C .text:0001692C loc_1692C ; CODE XREF: _dl_catch_error+F8j .text:0001692C LDR R2, =__libc_tsd_DL_ERROR_data .text:00016930 LDR R3, [R11,#var_14] .text:00016934 STR R3, [R2] .text:00016938 .text:00016938 loc_16938 ; CODE XREF: _dl_catch_error+10Cj .text:00016938 SUB R2, R11, #-var_FC .text:0001693C LDMIA R2, {R2,R3} .text:00016940 STR R3, [R2] .text:00016944 LDR R3, [R11,#var_F4] .text:00016948 CMN R4, #1 .text:0001694C LDR R2, [R11,#var_100] .text:00016950 MOVNE R0, R4 .text:00016954 MOVEQ R0, #0 .text:00016958 .text:00016958 loc_16958 ; CODE XREF: _dl_catch_error+E8j .text:00016958 STR R3, [R2] .text:0001695C B locret_16964 .text:0001695C ; --------------------------------------------------------------------------- .text:00016960 off_16960 DCD __libc_tsd_DL_ERROR_data .text:00016960 ; DATA XREF: _dl_catch_error:loc_1692Cr .text:00016964 ; --------------------------------------------------------------------------- .text:00016964 .text:00016964 locret_16964 ; CODE XREF: _dl_catch_error+14Cj .text:00016964 LDMDB R11, {R4,R11,SP,PC} .text:00016964 ; End of function _dl_catch_error .text:00016964 .text:00016968 .text:00016968 ; =============== S U B R O U T I N E ======================================= .text:00016968 .text:00016968 ; Attributes: bp-based frame .text:00016968 .text:00016968 EXPORT _dl_receive_error .text:00016968 _dl_receive_error .text:00016968 MOV R12, SP .text:0001696C STMFD SP!, {R4-R12,LR,PC} .text:00016970 SUB R11, R12, #4 .text:00016974 MOV R7, R0 .text:00016978 LDR R3, =__libc_internal_tsd_get .text:0001697C MOV R8, R1 .text:00016980 LDR R3, [R3] .text:00016984 MOV R6, R2 .text:00016988 CMP R3, #0 .text:0001698C BEQ loc_169A4 .text:00016990 MOV R0, #1 .text:00016994 MOV LR, PC .text:00016998 MOV PC, R3 .text:0001699C MOV R4, R0 .text:000169A0 B loc_169AC .text:000169A4 ; --------------------------------------------------------------------------- .text:000169A4 .text:000169A4 loc_169A4 ; CODE XREF: _dl_receive_error+24j .text:000169A4 LDR R3, =__libc_tsd_DL_ERROR_data .text:000169A8 LDR R4, [R3] .text:000169AC .text:000169AC loc_169AC ; CODE XREF: _dl_receive_error+38j .text:000169AC LDR R3, =receiver .text:000169B0 LDR R2, =__libc_internal_tsd_set .text:000169B4 MOV R9, R3 .text:000169B8 LDR R12, [R2] .text:000169BC MOV R10, R2 .text:000169C0 LDR R5, [R3] .text:000169C4 CMP R12, #0 .text:000169C8 BEQ loc_169E0 .text:000169CC MOV R0, #1 .text:000169D0 MOV R1, #0 .text:000169D4 MOV LR, PC .text:000169D8 MOV PC, R12 .text:000169DC B loc_169E8 .text:000169E0 ; --------------------------------------------------------------------------- .text:000169E0 .text:000169E0 loc_169E0 ; CODE XREF: _dl_receive_error+60j .text:000169E0 LDR R3, =__libc_tsd_DL_ERROR_data .text:000169E4 STR R12, [R3] .text:000169E8 .text:000169E8 loc_169E8 ; CODE XREF: _dl_receive_error+74j .text:000169E8 STR R7, [R9] .text:000169EC MOV R0, R6 .text:000169F0 MOV LR, PC .text:000169F4 MOV PC, R8 .text:000169F8 LDR R2, [R10] .text:000169FC CMP R2, #0 .text:00016A00 BEQ loc_16A18 .text:00016A04 MOV R0, #1 .text:00016A08 MOV R1, R4 .text:00016A0C MOV LR, PC .text:00016A10 MOV PC, R2 .text:00016A14 B loc_16A20 .text:00016A18 ; --------------------------------------------------------------------------- .text:00016A18 .text:00016A18 loc_16A18 ; CODE XREF: _dl_receive_error+98j .text:00016A18 LDR R3, =__libc_tsd_DL_ERROR_data .text:00016A1C STR R4, [R3] .text:00016A20 .text:00016A20 loc_16A20 ; CODE XREF: _dl_receive_error+ACj .text:00016A20 STR R5, [R9] .text:00016A24 LDMDB R11, {R4-R11,SP,PC} .text:00016A24 ; End of function _dl_receive_error .text:00016A24 .text:00016A24 ; --------------------------------------------------------------------------- .text:00016A28 off_16A28 DCD __libc_internal_tsd_get .text:00016A28 ; DATA XREF: _dl_receive_error+10r .text:00016A2C off_16A2C DCD __libc_tsd_DL_ERROR_data .text:00016A2C ; DATA XREF: _dl_receive_error:loc_169A4r .text:00016A2C ; _dl_receive_error:loc_169E0r ... .text:00016A30 off_16A30 DCD receiver ; DATA XREF: _dl_receive_error:loc_169ACr .text:00016A34 off_16A34 DCD __libc_internal_tsd_set .text:00016A34 ; DATA XREF: _dl_receive_error+48r .text:00016A38 .text:00016A38 ; =============== S U B R O U T I N E ======================================= .text:00016A38 .text:00016A38 ; Attributes: bp-based frame .text:00016A38 .text:00016A38 EXPORT _dl_sysdep_read_whole_file .text:00016A38 _dl_sysdep_read_whole_file ; CODE XREF: _dl_load_cache_lookup+50p .text:00016A38 .text:00016A38 var_84 = -0x84 .text:00016A38 var_80 = -0x80 .text:00016A38 var_7C = -0x7C .text:00016A38 var_50 = -0x50 .text:00016A38 var_1C = -0x1C .text:00016A38 .text:00016A38 MOV R12, SP .text:00016A3C STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:00016A40 SUB R11, R12, #4 .text:00016A44 MOV R7, R1 .text:00016A48 MOV R1, #0 .text:00016A4C MOV R4, R2 .text:00016A50 SUB SP, SP, #0x68 .text:00016A54 BL open .text:00016A58 SUBS R6, R0, #0 .text:00016A5C MOV R0, #0 .text:00016A60 BLT locret_16AE4 .text:00016A64 MOV R0, #3 .text:00016A68 MOV R1, R6 .text:00016A6C SUB R2, R11, #-var_7C .text:00016A70 BL __fxstat64 .text:00016A74 CMP R0, #0 .text:00016A78 BLT loc_16A9C .text:00016A7C MOV R1, 0xFFFFFFCC .text:00016A80 SUB R3, R11, #-var_1C .text:00016A84 LDR R0, [R3,R1] .text:00016A88 ADD R1, R1, R11 .text:00016A8C SUB R3, R1, #0x1C .text:00016A90 LDR R2, [R3,#4] .text:00016A94 ORRS R0, R0, R2 .text:00016A98 BNE loc_16AA4 .text:00016A9C .text:00016A9C loc_16A9C ; CODE XREF: _dl_sysdep_read_whole_file+40j .text:00016A9C MOV R4, #0 .text:00016AA0 B loc_16AD8 .text:00016AA4 ; --------------------------------------------------------------------------- .text:00016AA4 .text:00016AA4 loc_16AA4 ; CODE XREF: _dl_sysdep_read_whole_file+60j .text:00016AA4 STR R6, [SP,#0x84+var_84] .text:00016AA8 MOV R5, #0 .text:00016AAC STR R5, [SP,#0x84+var_80] .text:00016AB0 MOV R0, R5 .text:00016AB4 MOV R2, R4 .text:00016AB8 LDR R1, [R11,#var_50] .text:00016ABC MOV R3, #2 .text:00016AC0 BL mmap .text:00016AC4 MOV R4, R0 .text:00016AC8 CMN R4, #1 .text:00016ACC MOVEQ R4, R5 .text:00016AD0 LDRNE R3, [R11,#var_50] .text:00016AD4 STRNE R3, [R7] .text:00016AD8 .text:00016AD8 loc_16AD8 ; CODE XREF: _dl_sysdep_read_whole_file+68j .text:00016AD8 MOV R0, R6 .text:00016ADC BL close .text:00016AE0 MOV R0, R4 .text:00016AE4 .text:00016AE4 locret_16AE4 ; CODE XREF: _dl_sysdep_read_whole_file+28j .text:00016AE4 LDMDB R11, {R4-R7,R11,SP,PC} .text:00016AE4 ; End of function _dl_sysdep_read_whole_file .text:00016AE4 .text:00016AE8 .text:00016AE8 ; =============== S U B R O U T I N E ======================================= .text:00016AE8 .text:00016AE8 ; Attributes: bp-based frame .text:00016AE8 .text:00016AE8 _dl_debug_vdprintf ; CODE XREF: _dl_debug_printf+24p .text:00016AE8 ; _dl_debug_printf_c+24p ... .text:00016AE8 .text:00016AE8 var_258 = -0x258 .text:00016AE8 var_58 = -0x58 .text:00016AE8 var_54 = -0x54 .text:00016AE8 var_50 = -0x50 .text:00016AE8 var_4C = -0x4C .text:00016AE8 var_48 = -0x48 .text:00016AE8 var_44 = -0x44 .text:00016AE8 var_40 = -0x40 .text:00016AE8 var_3C = -0x3C .text:00016AE8 var_38 = -0x38 .text:00016AE8 var_34 = -0x34 .text:00016AE8 var_30 = -0x30 .text:00016AE8 var_2B = -0x2B .text:00016AE8 var_2A = -0x2A .text:00016AE8 .text:00016AE8 MOV R12, SP .text:00016AEC STMFD SP!, {R4-R12,LR,PC} .text:00016AF0 SUB R11, R12, #4 .text:00016AF4 SUB SP, SP, #0x30 .text:00016AF8 STR R1, [R11,#var_38] .text:00016AFC STR R3, [R11,#var_3C] .text:00016B00 MOV R5, R2 .text:00016B04 LDRB R3, [R5] .text:00016B08 MOV R10, #0 .text:00016B0C STR R10, [R11,#var_44] .text:00016B10 STR R0, [R11,#var_34] .text:00016B14 SUB SP, SP, #0x200 .text:00016B18 STR SP, [R11,#var_40] .text:00016B1C CMP R3, R10 .text:00016B20 BEQ loc_16F68 .text:00016B24 .text:00016B24 loc_16B24 ; CODE XREF: _dl_debug_vdprintf+47Cj .text:00016B24 STR R5, [R11,#var_48] .text:00016B28 LDR R1, [R11,#var_38] .text:00016B2C LDR R2, [R11,#var_40] .text:00016B30 CMP R1, #0 .text:00016B34 ADD R2, R2, #4 .text:00016B38 STR R2, [R11,#var_58] .text:00016B3C BLE loc_16C24 .text:00016B40 SUB R7, R11, #-var_30 .text:00016B44 LDR R3, [R11,#var_44] .text:00016B48 ADD R9, R10, #1 .text:00016B4C CMP R3, #0 .text:00016B50 BNE loc_16BE4 .text:00016B54 BL getpid .text:00016B58 STR R0, [R11,#var_44] .text:00016B5C MOV R3, 0x1869F .text:00016B68 CMP R0, R3 .text:00016B6C BLS loc_16B84 .text:00016B70 LDR R0, =aPid0Pid100000 ; "pid >= 0 && pid < 100000" .text:00016B74 LDR R1, =aDlMisc_c ; "dl-misc.c" .text:00016B78 LDR R3, =a_dl_debug_vdpr ; "_dl_debug_vdprintf" .text:00016B7C MOV R2, #0x71 .text:00016B80 BL __assert_fail .text:00016B84 ; --------------------------------------------------------------------------- .text:00016B84 .text:00016B84 loc_16B84 ; CODE XREF: _dl_debug_vdprintf+84j .text:00016B84 LDR R4, [R11,#var_44] .text:00016B88 SUB R6, R11, #-var_2B .text:00016B8C LDR R8, =_itoa_lower_digits .text:00016B90 .text:00016B90 loc_16B90 ; CODE XREF: _dl_debug_vdprintf+CCj .text:00016B90 MOV R0, R4 .text:00016B94 MOV R1, #0xA .text:00016B98 BL __umodsi3 .text:00016B9C LDRB R3, [R8,R0] .text:00016BA0 STRB R3, [R6,#-1]! .text:00016BA4 MOV R0, R4 .text:00016BA8 MOV R1, #0xA .text:00016BAC BL __udivsi3 .text:00016BB0 SUBS R4, R0, #0 .text:00016BB4 BNE loc_16B90 .text:00016BB8 MOV R3, R6 .text:00016BBC CMP R3, R7 .text:00016BC0 BLS loc_16BD4 .text:00016BC4 MOV R2, #0x30 .text:00016BC8 .text:00016BC8 loc_16BC8 ; CODE XREF: _dl_debug_vdprintf+E8j .text:00016BC8 STRB R2, [R3,#-1]! .text:00016BCC CMP R3, R7 .text:00016BD0 BHI loc_16BC8 .text:00016BD4 .text:00016BD4 loc_16BD4 ; CODE XREF: _dl_debug_vdprintf+D8j .text:00016BD4 MOV R3, #0x3A .text:00016BD8 STRB R3, [R11,#var_2B] .text:00016BDC MOV R2, #9 .text:00016BE0 STRB R2, [R11,#var_2A] .text:00016BE4 .text:00016BE4 loc_16BE4 ; CODE XREF: _dl_debug_vdprintf+68j .text:00016BE4 CMP R10, #0x3F .text:00016BE8 BLE loc_16C00 .text:00016BEC LDR R0, =aNiovNiovmax ; "niov < niovmax" .text:00016BF0 LDR R1, =aDlMisc_c ; "dl-misc.c" .text:00016BF4 LDR R3, =a_dl_debug_vdpr ; "_dl_debug_vdprintf" .text:00016BF8 MOV R2, #0x7A .text:00016BFC BL __assert_fail .text:00016C00 ; --------------------------------------------------------------------------- .text:00016C00 .text:00016C00 loc_16C00 ; CODE XREF: _dl_debug_vdprintf+100j .text:00016C00 MOV R2, R10,LSL#3 .text:00016C04 LDR R1, [R11,#var_58] .text:00016C08 MOV R3, #7 .text:00016C0C STR R3, [R1,R2] .text:00016C10 SUB R3, R3, #8 .text:00016C14 STR R3, [R11,#var_38] .text:00016C18 LDR R1, [R11,#var_40] .text:00016C1C MOV R10, R9 .text:00016C20 STR R7, [R1,R2] .text:00016C24 .text:00016C24 loc_16C24 ; CODE XREF: _dl_debug_vdprintf+54j .text:00016C24 LDRB R3, [R5] .text:00016C28 MOV R8, R10,LSL#3 .text:00016C2C CMP R3, #0 .text:00016C30 CMPNE R3, #0x25 .text:00016C34 BEQ loc_16C6C .text:00016C38 LDR R2, [R11,#var_38] .text:00016C3C CMP R2, #0 .text:00016C40 B loc_16C60 .text:00016C44 ; --------------------------------------------------------------------------- .text:00016C44 .text:00016C44 loc_16C44 ; CODE XREF: _dl_debug_vdprintf:loc_16C60j .text:00016C44 ; _dl_debug_vdprintf+180j .text:00016C44 LDRB R3, [R5,#1]! .text:00016C48 AND R3, R3, #0xFF .text:00016C4C CMP R3, #0 .text:00016C50 CMPNE R3, #0x25 .text:00016C54 BEQ loc_16C6C .text:00016C58 LDR R1, [R11,#var_38] .text:00016C5C CMP R1, #0 .text:00016C60 .text:00016C60 loc_16C60 ; CODE XREF: _dl_debug_vdprintf+158j .text:00016C60 BEQ loc_16C44 .text:00016C64 CMP R3, #0xA .text:00016C68 BNE loc_16C44 .text:00016C6C .text:00016C6C loc_16C6C ; CODE XREF: _dl_debug_vdprintf+14Cj .text:00016C6C ; _dl_debug_vdprintf+16Cj .text:00016C6C CMP R10, #0x3F .text:00016C70 BLE loc_16C88 .text:00016C74 LDR R0, =aNiovNiovmax ; "niov < niovmax" .text:00016C78 LDR R1, =aDlMisc_c ; "dl-misc.c" .text:00016C7C LDR R3, =a_dl_debug_vdpr ; "_dl_debug_vdprintf" .text:00016C80 MOV R2, #0x87 .text:00016C84 BL __assert_fail .text:00016C88 ; --------------------------------------------------------------------------- .text:00016C88 .text:00016C88 loc_16C88 ; CODE XREF: _dl_debug_vdprintf+188j .text:00016C88 LDR R2, [R11,#var_48] .text:00016C8C LDR R1, [R11,#var_58] .text:00016C90 RSB R3, R2, R5 .text:00016C94 CMP R3, #0 .text:00016C98 STR R3, [R1,R8] .text:00016C9C LDRNE R3, [R11,#var_40] .text:00016CA0 ADDNE R10, R10, #1 .text:00016CA4 STRNE R2, [R3,R8] .text:00016CA8 LDRB R3, [R5] .text:00016CAC CMP R3, #0x25 .text:00016CB0 BNE loc_16EEC .text:00016CB4 MOV R1, #0x20 .text:00016CB8 STR R1, [R11,#var_4C] .text:00016CBC LDRB R3, [R5,#1]! .text:00016CC0 MOV R2, 0xFFFFFFFF .text:00016CC4 STR R2, [R11,#var_50] .text:00016CC8 AND R3, R3, #0xFF .text:00016CCC CMP R3, #0x30 .text:00016CD0 ADDEQ R5, R5, #1 .text:00016CD4 STREQ R3, [R11,#var_4C] .text:00016CD8 LDRB R3, [R5] .text:00016CDC CMP R3, #0x2A .text:00016CE0 BNE loc_16CF8 .text:00016CE4 LDR R3, [R11,#var_3C] .text:00016CE8 LDR R1, [R3],#4 .text:00016CEC STR R1, [R11,#var_50] .text:00016CF0 ADD R5, R5, #1 .text:00016CF4 STR R3, [R11,#var_3C] .text:00016CF8 .text:00016CF8 loc_16CF8 ; CODE XREF: _dl_debug_vdprintf+1F8j .text:00016CF8 MOV R2, R5 .text:00016CFC LDRB R3, [R2],#1 .text:00016D00 CMP R3, #0x5A .text:00016D04 CMPNE R3, #0x6C .text:00016D08 MOVEQ R5, R2 .text:00016D0C LDRB R3, [R5] .text:00016D10 CMP R3, #0x75 .text:00016D14 BEQ loc_16D30 .text:00016D18 BGT loc_16D28 .text:00016D1C CMP R3, #0x73 .text:00016D20 BEQ loc_16E98 .text:00016D24 B loc_16EC8 .text:00016D28 ; --------------------------------------------------------------------------- .text:00016D28 .text:00016D28 loc_16D28 ; CODE XREF: _dl_debug_vdprintf+230j .text:00016D28 CMP R3, #0x78 .text:00016D2C BNE loc_16EC8 .text:00016D30 .text:00016D30 loc_16D30 ; CODE XREF: _dl_debug_vdprintf+22Cj .text:00016D30 SUB SP, SP, #0xC .text:00016D34 ADD R2, SP, #0x264+var_258 .text:00016D38 STR R2, [R11,#var_54] .text:00016D3C LDR R1, [R11,#var_3C] .text:00016D40 LDRB R3, [R5] .text:00016D44 MOV R7, R2 .text:00016D48 LDR R4, [R1],#4 .text:00016D4C CMP R3, #0x78 .text:00016D50 MOVNE R6, #0xA .text:00016D54 MOVEQ R6, #0x10 .text:00016D58 CMP R6, #0xA .text:00016D5C STR R1, [R11,#var_3C] .text:00016D60 BEQ loc_16D80 .text:00016D64 BHI loc_16D74 .text:00016D68 CMP R6, #8 .text:00016D6C BEQ loc_16DE4 .text:00016D70 B loc_16E0C .text:00016D74 ; --------------------------------------------------------------------------- .text:00016D74 .text:00016D74 loc_16D74 ; CODE XREF: _dl_debug_vdprintf+27Cj .text:00016D74 CMP R6, #0x10 .text:00016D78 BEQ loc_16DBC .text:00016D7C B loc_16E0C .text:00016D80 ; --------------------------------------------------------------------------- .text:00016D80 .text:00016D80 loc_16D80 ; CODE XREF: _dl_debug_vdprintf+278j .text:00016D80 MOV R8, R10,LSL#3 .text:00016D84 ADD R9, R10, #1 .text:00016D88 ADD R5, R5, #1 .text:00016D8C .text:00016D8C loc_16D8C ; CODE XREF: _dl_debug_vdprintf+2CCj .text:00016D8C MOV R0, R4 .text:00016D90 MOV R1, #0xA .text:00016D94 BL __umodsi3 .text:00016D98 LDR R2, =_itoa_lower_digits .text:00016D9C LDRB R3, [R2,R0] .text:00016DA0 STRB R3, [R7,#-1]! .text:00016DA4 MOV R1, #0xA .text:00016DA8 MOV R0, R4 .text:00016DAC BL __udivsi3 .text:00016DB0 SUBS R4, R0, #0 .text:00016DB4 BNE loc_16D8C .text:00016DB8 B loc_16E48 .text:00016DBC ; --------------------------------------------------------------------------- .text:00016DBC .text:00016DBC loc_16DBC ; CODE XREF: _dl_debug_vdprintf+290j .text:00016DBC MOV R8, R10,LSL#3 .text:00016DC0 ADD R9, R10, #1 .text:00016DC4 ADD R5, R5, #1 .text:00016DC8 .text:00016DC8 loc_16DC8 ; CODE XREF: _dl_debug_vdprintf+2F4j .text:00016DC8 LDR R1, =_itoa_lower_digits .text:00016DCC AND R3, R4, #0xF .text:00016DD0 LDRB R2, [R1,R3] .text:00016DD4 MOVS R4, R4,LSR#4 .text:00016DD8 STRB R2, [R7,#-1]! .text:00016DDC BNE loc_16DC8 .text:00016DE0 B loc_16E48 .text:00016DE4 ; --------------------------------------------------------------------------- .text:00016DE4 .text:00016DE4 loc_16DE4 ; CODE XREF: _dl_debug_vdprintf+284j .text:00016DE4 MOV R8, R10,LSL#3 .text:00016DE8 ADD R9, R10, #1 .text:00016DEC ADD R5, R5, #1 .text:00016DF0 .text:00016DF0 loc_16DF0 ; CODE XREF: _dl_debug_vdprintf+31Cj .text:00016DF0 LDR R1, =_itoa_lower_digits .text:00016DF4 AND R3, R4, #7 .text:00016DF8 LDRB R2, [R1,R3] .text:00016DFC MOVS R4, R4,LSR#3 .text:00016E00 STRB R2, [R7,#-1]! .text:00016E04 BNE loc_16DF0 .text:00016E08 B loc_16E48 .text:00016E0C ; --------------------------------------------------------------------------- .text:00016E0C .text:00016E0C loc_16E0C ; CODE XREF: _dl_debug_vdprintf+288j .text:00016E0C ; _dl_debug_vdprintf+294j .text:00016E0C MOV R8, R10,LSL#3 .text:00016E10 ADD R9, R10, #1 .text:00016E14 ADD R5, R5, #1 .text:00016E18 .text:00016E18 loc_16E18 ; CODE XREF: _dl_debug_vdprintf+35Cj .text:00016E18 MOV R0, R4 .text:00016E1C MOV R1, R6 .text:00016E20 BL __umodsi3 .text:00016E24 LDR R2, =_itoa_lower_digits .text:00016E28 LDRB R3, [R2,R0] .text:00016E2C STRB R3, [R7,#-1]! .text:00016E30 MOV R1, R6 .text:00016E34 MOV R0, R4 .text:00016E38 BL __udivsi3 .text:00016E3C MOV R4, R0 .text:00016E40 CMP R4, #0 .text:00016E44 BNE loc_16E18 .text:00016E48 .text:00016E48 loc_16E48 ; CODE XREF: _dl_debug_vdprintf+2D0j .text:00016E48 ; _dl_debug_vdprintf+2F8j ... .text:00016E48 LDR R3, [R11,#var_50] .text:00016E4C MOV R2, R7 .text:00016E50 CMN R3, #1 .text:00016E54 BEQ loc_16E78 .text:00016E58 B loc_16E64 .text:00016E5C ; --------------------------------------------------------------------------- .text:00016E5C .text:00016E5C loc_16E5C ; CODE XREF: _dl_debug_vdprintf+38Cj .text:00016E5C LDR R3, [R11,#var_4C] .text:00016E60 STRB R3, [R2,#-1]! .text:00016E64 .text:00016E64 loc_16E64 ; CODE XREF: _dl_debug_vdprintf+370j .text:00016E64 LDR R1, [R11,#var_54] .text:00016E68 RSB R3, R2, R1 .text:00016E6C LDR R1, [R11,#var_50] .text:00016E70 CMP R3, R1 .text:00016E74 BLT loc_16E5C .text:00016E78 .text:00016E78 loc_16E78 ; CODE XREF: _dl_debug_vdprintf+36Cj .text:00016E78 LDR R3, [R11,#var_40] .text:00016E7C STR R2, [R3,R8] .text:00016E80 LDR R1, [R11,#var_54] .text:00016E84 RSB R3, R2, R1 .text:00016E88 LDR R2, [R11,#var_58] .text:00016E8C MOV R10, R9 .text:00016E90 STR R3, [R2,R8] .text:00016E94 B loc_16F5C .text:00016E98 ; --------------------------------------------------------------------------- .text:00016E98 .text:00016E98 loc_16E98 ; CODE XREF: _dl_debug_vdprintf+238j .text:00016E98 LDR R3, [R11,#var_3C] .text:00016E9C LDR R0, [R3],#4 .text:00016EA0 STR R3, [R11,#var_3C] .text:00016EA4 LDR R1, [R11,#var_40] .text:00016EA8 MOV R4, R10,LSL#3 .text:00016EAC STR R0, [R1,R4] .text:00016EB0 ADD R10, R10, #1 .text:00016EB4 BL strlen .text:00016EB8 LDR R2, [R11,#var_58] .text:00016EBC ADD R5, R5, #1 .text:00016EC0 STR R0, [R2,R4] .text:00016EC4 B loc_16F5C .text:00016EC8 ; --------------------------------------------------------------------------- .text:00016EC8 .text:00016EC8 loc_16EC8 ; CODE XREF: _dl_debug_vdprintf+23Cj .text:00016EC8 ; _dl_debug_vdprintf+244j .text:00016EC8 LDR R3, =aInvalidFormatS ; "invalid format specifier" .text:00016ECC ADD R5, R5, #1 .text:00016ED0 CMP R3, #0 .text:00016ED4 BEQ loc_16F5C .text:00016ED8 LDR R0, =aInvalidForma_0 ; "! \"invalid format specifier\"" .text:00016EDC LDR R1, =aDlMisc_c ; "dl-misc.c" .text:00016EE0 LDR R3, =a_dl_debug_vdpr ; "_dl_debug_vdprintf" .text:00016EE4 MOV R2, #0xD7 .text:00016EE8 BL __assert_fail .text:00016EEC ; --------------------------------------------------------------------------- .text:00016EEC .text:00016EEC loc_16EEC ; CODE XREF: _dl_debug_vdprintf+1C8j .text:00016EEC CMP R3, #0xA .text:00016EF0 BNE loc_16F5C .text:00016EF4 LDR R3, [R11,#var_48] .text:00016EF8 CMP R5, R3 .text:00016EFC BNE loc_16F38 .text:00016F00 LDR R1, [R11,#var_40] .text:00016F04 MOV R2, R10,LSL#3 .text:00016F08 STR R5, [R1,R2] .text:00016F0C ADD R10, R10, #1 .text:00016F10 LDR R1, [R11,#var_58] .text:00016F14 MOV R3, #1 .text:00016F18 B loc_16F4C .text:00016F18 ; --------------------------------------------------------------------------- .text:00016F1C off_16F1C DCD aPid0Pid100000 ; DATA XREF: _dl_debug_vdprintf+88r .text:00016F1C ; "pid >= 0 && pid < 100000" .text:00016F20 off_16F20 DCD aDlMisc_c ; DATA XREF: _dl_debug_vdprintf+8Cr .text:00016F20 ; _dl_debug_vdprintf+108r ... .text:00016F20 ; "dl-misc.c" .text:00016F24 off_16F24 DCD a_dl_debug_vdpr ; DATA XREF: _dl_debug_vdprintf+90r .text:00016F24 ; _dl_debug_vdprintf+10Cr ... .text:00016F24 ; "_dl_debug_vdprintf" .text:00016F28 off_16F28 DCD _itoa_lower_digits ; DATA XREF: _dl_debug_vdprintf+A4r .text:00016F28 ; _dl_debug_vdprintf+2B0r ... .text:00016F2C off_16F2C DCD aNiovNiovmax ; DATA XREF: _dl_debug_vdprintf+104r .text:00016F2C ; _dl_debug_vdprintf+18Cr .text:00016F2C ; "niov < niovmax" .text:00016F30 off_16F30 DCD aInvalidFormatS ; DATA XREF: _dl_debug_vdprintf:loc_16EC8r .text:00016F30 ; "invalid format specifier" .text:00016F34 off_16F34 DCD aInvalidForma_0 ; DATA XREF: _dl_debug_vdprintf+3F0r .text:00016F34 ; "! \"invalid format specifier\"" .text:00016F38 ; --------------------------------------------------------------------------- .text:00016F38 .text:00016F38 loc_16F38 ; CODE XREF: _dl_debug_vdprintf+414j .text:00016F38 SUB R2, R10, #1 .text:00016F3C LDR R1, [R11,#var_58] .text:00016F40 MOV R2, R2,LSL#3 .text:00016F44 LDR R3, [R1,R2] .text:00016F48 ADD R3, R3, #1 .text:00016F4C .text:00016F4C loc_16F4C ; CODE XREF: _dl_debug_vdprintf+430j .text:00016F4C STR R3, [R1,R2] .text:00016F50 MOV R2, #1 .text:00016F54 ADD R5, R5, R2 .text:00016F58 STR R2, [R11,#var_38] .text:00016F5C .text:00016F5C loc_16F5C ; CODE XREF: _dl_debug_vdprintf+3ACj .text:00016F5C ; _dl_debug_vdprintf+3DCj ... .text:00016F5C LDRB R3, [R5] .text:00016F60 CMP R3, #0 .text:00016F64 BNE loc_16B24 .text:00016F68 .text:00016F68 loc_16F68 ; CODE XREF: _dl_debug_vdprintf+38j .text:00016F68 LDR R0, [R11,#var_34] .text:00016F6C LDR R1, [R11,#var_40] .text:00016F70 MOV R2, R10 .text:00016F74 BL writev .text:00016F78 LDMDB R11, {R4-R11,SP,PC} .text:00016F78 ; End of function _dl_debug_vdprintf .text:00016F78 .text:00016F7C .text:00016F7C ; =============== S U B R O U T I N E ======================================= .text:00016F7C .text:00016F7C ; Attributes: bp-based frame .text:00016F7C .text:00016F7C EXPORT _dl_debug_printf .text:00016F7C _dl_debug_printf ; CODE XREF: _dl_map_object_from_fd+128p .text:00016F7C ; _dl_map_object_from_fd+8E0p ... .text:00016F7C .text:00016F7C varg_r0 = 4 .text:00016F7C varg_r1 = 8 .text:00016F7C varg_r2 = 0xC .text:00016F7C varg_r3 = 0x10 .text:00016F7C .text:00016F7C MOV R12, SP .text:00016F80 STMFD SP!, {R0-R3} .text:00016F84 STMFD SP!, {R11,R12,LR,PC} .text:00016F88 LDR R3, =_dl_debug_fd .text:00016F8C SUB R11, R12, #0x14 .text:00016F90 LDR R2, [R11,#varg_r0] .text:00016F94 MOV R1, #1 .text:00016F98 LDR R0, [R3] .text:00016F9C ADD R3, R11, #8 .text:00016FA0 BL _dl_debug_vdprintf .text:00016FA4 B locret_16FAC .text:00016FA4 ; --------------------------------------------------------------------------- .text:00016FA8 off_16FA8 DCD _dl_debug_fd ; DATA XREF: _dl_debug_printf+Cr .text:00016FAC ; --------------------------------------------------------------------------- .text:00016FAC .text:00016FAC locret_16FAC ; CODE XREF: _dl_debug_printf+28j .text:00016FAC LDMDB R11, {R11,SP,PC} .text:00016FAC ; End of function _dl_debug_printf .text:00016FAC .text:00016FB0 .text:00016FB0 ; =============== S U B R O U T I N E ======================================= .text:00016FB0 .text:00016FB0 ; Attributes: bp-based frame .text:00016FB0 .text:00016FB0 EXPORT _dl_debug_printf_c .text:00016FB0 _dl_debug_printf_c ; CODE XREF: print_search_path+108p .text:00016FB0 ; print_search_path+118p ... .text:00016FB0 .text:00016FB0 varg_r0 = 4 .text:00016FB0 varg_r1 = 8 .text:00016FB0 varg_r2 = 0xC .text:00016FB0 varg_r3 = 0x10 .text:00016FB0 .text:00016FB0 MOV R12, SP .text:00016FB4 STMFD SP!, {R0-R3} .text:00016FB8 STMFD SP!, {R11,R12,LR,PC} .text:00016FBC LDR R3, =_dl_debug_fd .text:00016FC0 SUB R11, R12, #0x14 .text:00016FC4 LDR R2, [R11,#varg_r0] .text:00016FC8 MOV R1, 0xFFFFFFFF .text:00016FCC LDR R0, [R3] .text:00016FD0 ADD R3, R11, #8 .text:00016FD4 BL _dl_debug_vdprintf .text:00016FD8 B locret_16FE0 .text:00016FD8 ; --------------------------------------------------------------------------- .text:00016FDC off_16FDC DCD _dl_debug_fd ; DATA XREF: _dl_debug_printf_c+Cr .text:00016FE0 ; --------------------------------------------------------------------------- .text:00016FE0 .text:00016FE0 locret_16FE0 ; CODE XREF: _dl_debug_printf_c+28j .text:00016FE0 LDMDB R11, {R11,SP,PC} .text:00016FE0 ; End of function _dl_debug_printf_c .text:00016FE0 .text:00016FE4 .text:00016FE4 ; =============== S U B R O U T I N E ======================================= .text:00016FE4 .text:00016FE4 ; Attributes: bp-based frame .text:00016FE4 .text:00016FE4 EXPORT _dl_dprintf .text:00016FE4 _dl_dprintf ; CODE XREF: _dl_signal_error+15Cp .text:00016FE4 ; _dl_start_profile+4A0p ... .text:00016FE4 .text:00016FE4 varg_r1 = 4 .text:00016FE4 varg_r2 = 8 .text:00016FE4 varg_r3 = 0xC .text:00016FE4 .text:00016FE4 MOV R12, SP .text:00016FE8 STMFD SP!, {R1-R3} .text:00016FEC STMFD SP!, {R11,R12,LR,PC} .text:00016FF0 MOV R1, #0 .text:00016FF4 SUB R11, R12, #0x10 .text:00016FF8 LDR R2, [R11,#varg_r1] .text:00016FFC ADD R3, R11, #8 .text:00017000 BL _dl_debug_vdprintf .text:00017004 LDMDB R11, {R11,SP,PC} .text:00017004 ; End of function _dl_dprintf .text:00017004 .text:00017008 .text:00017008 ; =============== S U B R O U T I N E ======================================= .text:00017008 .text:00017008 ; Attributes: bp-based frame .text:00017008 .text:00017008 EXPORT _dl_aux_init .text:00017008 _dl_aux_init ; CODE XREF: __libc_start_main+B8p .text:00017008 MOV R12, SP .text:0001700C STMFD SP!, {R11,R12,LR,PC} .text:00017010 LDR R3, [R0] .text:00017014 SUB R11, R12, #4 .text:00017018 CMP R3, #0 .text:0001701C LDMEQDB R11, {R11,SP,PC} .text:00017020 LDR R1, =_dl_pagesize .text:00017024 LDR R2, =_dl_clktck .text:00017028 .text:00017028 loc_17028 ; CODE XREF: _dl_aux_init+54j .text:00017028 LDR R3, [R0] .text:0001702C CMP R3, #6 .text:00017030 BEQ loc_17040 .text:00017034 CMP R3, #0x11 .text:00017038 BEQ loc_1704C .text:0001703C B loc_17054 .text:00017040 ; --------------------------------------------------------------------------- .text:00017040 .text:00017040 loc_17040 ; CODE XREF: _dl_aux_init+28j .text:00017040 LDR R3, [R0,#4] .text:00017044 STR R3, [R1] .text:00017048 B loc_17054 .text:0001704C ; --------------------------------------------------------------------------- .text:0001704C .text:0001704C loc_1704C ; CODE XREF: _dl_aux_init+30j .text:0001704C LDR R3, [R0,#4] .text:00017050 STR R3, [R2] .text:00017054 .text:00017054 loc_17054 ; CODE XREF: _dl_aux_init+34j .text:00017054 ; _dl_aux_init+40j .text:00017054 LDR R3, [R0,#8]! .text:00017058 CMP R3, #0 .text:0001705C BNE loc_17028 .text:00017060 LDMDB R11, {R11,SP,PC} .text:00017060 ; End of function _dl_aux_init .text:00017060 .text:00017060 ; --------------------------------------------------------------------------- .text:00017064 off_17064 DCD _dl_pagesize ; DATA XREF: _dl_aux_init+18r .text:00017068 off_17068 DCD _dl_clktck ; DATA XREF: _dl_aux_init+1Cr .text:0001706C .text:0001706C ; =============== S U B R O U T I N E ======================================= .text:0001706C .text:0001706C ; Attributes: bp-based frame .text:0001706C .text:0001706C non_dynamic_init .text:0001706C MOV R12, SP .text:00017070 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:00017074 LDR R4, =_dl_pagesize .text:00017078 LDR R3, [R4] .text:0001707C SUB R11, R12, #4 .text:00017080 CMP R3, #0 .text:00017084 BNE loc_17090 .text:00017088 BL getpagesize .text:0001708C STR R0, [R4] .text:00017090 .text:00017090 loc_17090 ; CODE XREF: non_dynamic_init+18j .text:00017090 LDR R0, =aLd_warn ; "LD_WARN" .text:00017094 BL getenv .text:00017098 LDR R3, =dword_562E8 .text:0001709C CMP R0, #0 .text:000170A0 MOV R5, R3 .text:000170A4 MOVNE R3, R0 .text:000170A8 LDRB R2, [R3] .text:000170AC LDR R1, =_dl_verbose .text:000170B0 SUBS R2, R2, #0 .text:000170B4 MOVNE R2, #1 .text:000170B8 STR R2, [R1] .text:000170BC LDR R0, =aLd_library_p_0 ; "LD_LIBRARY_PATH" .text:000170C0 BL getenv .text:000170C4 BL _dl_init_paths .text:000170C8 LDR R0, =aLd_bind_now ; "LD_BIND_NOW" .text:000170CC BL getenv .text:000170D0 CMP R0, #0 .text:000170D4 MOVEQ R0, R5 .text:000170D8 LDRB R3, [R0] .text:000170DC LDR R2, =_dl_lazy .text:000170E0 CMP R3, #0 .text:000170E4 MOVNE R3, #0 .text:000170E8 MOVEQ R3, #1 .text:000170EC STR R3, [R2] .text:000170F0 LDR R0, =aLd_bind_not ; "LD_BIND_NOT" .text:000170F4 BL getenv .text:000170F8 CMP R0, #0 .text:000170FC MOVEQ R0, R5 .text:00017100 LDRB R3, [R0] .text:00017104 LDR R2, =_dl_bind_not .text:00017108 SUBS R3, R3, #0 .text:0001710C MOVNE R3, #1 .text:00017110 STR R3, [R2] .text:00017114 LDR R6, =_dl_platform .text:00017118 LDR R0, =aLd_dynamic_wea ; "LD_DYNAMIC_WEAK" .text:0001711C LDR R4, =_dl_dynamic_weak .text:00017120 BL getenv .text:00017124 CMP R0, #0 .text:00017128 LDR R2, =__libc_enable_secure .text:0001712C MOVEQ R0, R5 .text:00017130 LDRB R3, [R0] .text:00017134 LDR R1, [R2] .text:00017138 CMP R3, #0 .text:0001713C MOVNE R3, #0 .text:00017140 MOVEQ R3, #1 .text:00017144 STR R3, [R4] .text:00017148 CMP R1, #0 .text:0001714C BEQ loc_17188 .text:00017150 MOV R4, #0 .text:00017154 LDR R5, =unsecure_envvars.111 .text:00017158 .text:00017158 loc_17158 ; CODE XREF: non_dynamic_init+FCj .text:00017158 LDR R0, [R5,R4,LSL#2] .text:0001715C ADD R4, R4, #1 .text:00017160 BL unsetenv .text:00017164 CMP R4, #9 .text:00017168 BLS loc_17158 .text:0001716C LDR R0, =aEtcSuidDebug ; "/etc/suid-debug" .text:00017170 MOV R1, #0 .text:00017174 BL access .text:00017178 CMP R0, #0 .text:0001717C BEQ loc_17188 .text:00017180 LDR R0, =aMalloc_check_0 ; "MALLOC_CHECK_" .text:00017184 BL unsetenv .text:00017188 .text:00017188 loc_17188 ; CODE XREF: non_dynamic_init+E0j .text:00017188 ; non_dynamic_init+110j .text:00017188 LDR R3, [R6] .text:0001718C CMP R3, #0 .text:00017190 BEQ loc_171A0 .text:00017194 LDRB R3, [R3] .text:00017198 CMP R3, #0 .text:0001719C STREQ R3, [R6] .text:000171A0 .text:000171A0 loc_171A0 ; CODE XREF: non_dynamic_init+124j .text:000171A0 LDR R0, [R6] .text:000171A4 CMP R0, #0 .text:000171A8 LDMEQDB R11, {R4-R6,R11,SP,PC} .text:000171AC BL strlen .text:000171B0 LDR R3, =_dl_platformlen .text:000171B4 STR R0, [R3] .text:000171B8 LDMDB R11, {R4-R6,R11,SP,PC} .text:000171B8 ; End of function non_dynamic_init .text:000171B8 .text:000171B8 ; --------------------------------------------------------------------------- .text:000171BC off_171BC DCD _dl_pagesize ; DATA XREF: non_dynamic_init+8r .text:000171C0 off_171C0 DCD aLd_warn ; DATA XREF: non_dynamic_init:loc_17090r .text:000171C0 ; "LD_WARN" .text:000171C4 off_171C4 DCD dword_562E8 ; DATA XREF: non_dynamic_init+2Cr .text:000171C8 off_171C8 DCD _dl_verbose ; DATA XREF: non_dynamic_init+40r .text:000171CC off_171CC DCD aLd_library_p_0 ; DATA XREF: non_dynamic_init+50r .text:000171CC ; "LD_LIBRARY_PATH" .text:000171D0 off_171D0 DCD aLd_bind_now ; DATA XREF: non_dynamic_init+5Cr .text:000171D0 ; "LD_BIND_NOW" .text:000171D4 off_171D4 DCD _dl_lazy ; DATA XREF: non_dynamic_init+70r .text:000171D8 off_171D8 DCD aLd_bind_not ; DATA XREF: non_dynamic_init+84r .text:000171D8 ; "LD_BIND_NOT" .text:000171DC off_171DC DCD _dl_bind_not ; DATA XREF: non_dynamic_init+98r .text:000171E0 off_171E0 DCD _dl_platform ; DATA XREF: non_dynamic_init+A8r .text:000171E4 off_171E4 DCD aLd_dynamic_wea ; DATA XREF: non_dynamic_init+ACr .text:000171E4 ; "LD_DYNAMIC_WEAK" .text:000171E8 off_171E8 DCD _dl_dynamic_weak ; DATA XREF: non_dynamic_init+B0r .text:000171EC off_171EC DCD __libc_enable_secure ; DATA XREF: non_dynamic_init+BCr .text:000171F0 off_171F0 DCD unsecure_envvars.111 ; DATA XREF: non_dynamic_init+E8r .text:000171F4 off_171F4 DCD aEtcSuidDebug ; DATA XREF: non_dynamic_init+100r .text:000171F4 ; "/etc/suid-debug" .text:000171F8 off_171F8 DCD aMalloc_check_0 ; DATA XREF: non_dynamic_init+114r .text:000171F8 ; "MALLOC_CHECK_" .text:000171FC off_171FC DCD _dl_platformlen ; DATA XREF: non_dynamic_init+144r .text:00017200 .text:00017200 ; =============== S U B R O U T I N E ======================================= .text:00017200 .text:00017200 ; Attributes: bp-based frame .text:00017200 .text:00017200 EXPORT _dl_important_hwcaps .text:00017200 _dl_important_hwcaps ; CODE XREF: _dl_init_paths+30p .text:00017200 MOV R12, SP .text:00017204 STMFD SP!, {R4,R11,R12,LR,PC} .text:00017208 SUB R11, R12, #4 .text:0001720C MOV R0, #8 .text:00017210 MOV R4, R2 .text:00017214 BL malloc .text:00017218 SUBS R1, R0, #0 .text:0001721C BNE loc_1722C .text:00017220 LDR R2, =aCannotCreate_1 ; "cannot create capability list" .text:00017224 MOV R0, #0xC .text:00017228 BL _dl_signal_error .text:0001722C ; --------------------------------------------------------------------------- .text:0001722C .text:0001722C loc_1722C ; CODE XREF: _dl_important_hwcaps+1Cj .text:0001722C STR R1, [R1] .text:00017230 MOV R3, #0 .text:00017234 STR R3, [R1,#4] .text:00017238 MOV R0, R1 .text:0001723C ADD R3, R3, #1 .text:00017240 STR R3, [R4] .text:00017244 LDMDB R11, {R4,R11,SP,PC} .text:00017244 ; End of function _dl_important_hwcaps .text:00017244 .text:00017244 ; --------------------------------------------------------------------------- .text:00017248 off_17248 DCD aCannotCreate_1 ; DATA XREF: _dl_important_hwcaps+20r .text:00017248 ; "cannot create capability list" .text:0001724C .text:0001724C ; =============== S U B R O U T I N E ======================================= .text:0001724C .text:0001724C ; Attributes: bp-based frame .text:0001724C .text:0001724C EXPORT __libc_init_secure .text:0001724C __libc_init_secure ; CODE XREF: init+70p .text:0001724C MOV R12, SP .text:00017250 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:00017254 SUB R11, R12, #4 .text:00017258 MOV R5, #0 .text:0001725C BL geteuid .text:00017260 MOV R4, R0 .text:00017264 BL getuid .text:00017268 CMP R4, R0 .text:0001726C BNE loc_17284 .text:00017270 BL getegid .text:00017274 MOV R4, R0 .text:00017278 BL getgid .text:0001727C CMP R4, R0 .text:00017280 BEQ loc_17288 .text:00017284 .text:00017284 loc_17284 ; CODE XREF: __libc_init_secure+20j .text:00017284 MOV R5, #1 .text:00017288 .text:00017288 loc_17288 ; CODE XREF: __libc_init_secure+34j .text:00017288 LDR R3, =__libc_enable_secure .text:0001728C STR R5, [R3] .text:00017290 LDMDB R11, {R4,R5,R11,SP,PC} .text:00017290 ; End of function __libc_init_secure .text:00017290 .text:00017290 ; --------------------------------------------------------------------------- .text:00017294 off_17294 DCD __libc_enable_secure .text:00017294 ; DATA XREF: __libc_init_secure:loc_17288r .text:00017298 .text:00017298 ; =============== S U B R O U T I N E ======================================= .text:00017298 .text:00017298 ; Attributes: bp-based frame .text:00017298 .text:00017298 EXPORT _dl_get_origin .text:00017298 _dl_get_origin ; CODE XREF: expand_dynamic_string_token:loc_102F0p .text:00017298 ; dl_open_worker:loc_510E0p ... .text:00017298 .text:00017298 var_1000 = -0x1000 .text:00017298 var_1C = -0x1C .text:00017298 .text:00017298 MOV R12, SP .text:0001729C STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:000172A0 SUB R11, R12, #4 .text:000172A4 SUB R5, R11, #-var_1000 .text:000172A8 SUB R5, R5, #0x1C .text:000172AC MOV R1, R5 .text:000172B0 MOV R2, 0xFFF .text:000172B8 LDR R0, =aProcSelfExe ; "/proc/self/exe" .text:000172BC SUB SP, SP, #0x1000 .text:000172C0 BL readlink .text:000172C4 CMN R0, #1 .text:000172C8 BEQ loc_17338 .text:000172CC MOV R3, #0x80000000 .text:000172D0 MOV R3, R3,ASR#19 .text:000172D4 SUB R1, R11, #-var_1C .text:000172D8 LDRB R2, [R1,R3] .text:000172DC CMP R2, #0x5B .text:000172E0 BEQ loc_17338 .text:000172E4 MOV R0, R5 .text:000172E8 MOV R1, #0x2F .text:000172EC BL strrchr .text:000172F0 MOV R6, R0 .text:000172F4 RSB R7, R5, R6 .text:000172F8 ADD R0, R7, #1 .text:000172FC BL malloc .text:00017300 SUBS R4, R0, #0 .text:00017304 BEQ loc_17364 .text:00017308 CMP R6, R5 .text:0001730C BNE loc_17324 .text:00017310 MOV R0, R4 .text:00017314 LDR R1, =asc_563E8 ; "/" .text:00017318 MOV R2, #2 .text:0001731C BL memcpy .text:00017320 B loc_173B0 .text:00017324 ; --------------------------------------------------------------------------- .text:00017324 .text:00017324 loc_17324 ; CODE XREF: _dl_get_origin+74j .text:00017324 MOV R0, R4 .text:00017328 MOV R1, R5 .text:0001732C MOV R2, R7 .text:00017330 BL mempcpy .text:00017334 B loc_173A8 .text:00017338 ; --------------------------------------------------------------------------- .text:00017338 .text:00017338 loc_17338 ; CODE XREF: _dl_get_origin+30j .text:00017338 ; _dl_get_origin+48j .text:00017338 LDR R6, =_dl_origin_path .text:0001733C LDR R0, [R6] .text:00017340 MOV R4, 0xFFFFFFFF .text:00017344 CMP R0, #0 .text:00017348 BEQ loc_173B0 .text:0001734C BL strlen .text:00017350 MOV R5, R0 .text:00017354 ADD R0, R5, #1 .text:00017358 BL malloc .text:0001735C SUBS R4, R0, #0 .text:00017360 BNE loc_1736C .text:00017364 .text:00017364 loc_17364 ; CODE XREF: _dl_get_origin+6Cj .text:00017364 MOV R4, 0xFFFFFFFF .text:00017368 B loc_173B0 .text:0001736C ; --------------------------------------------------------------------------- .text:0001736C .text:0001736C loc_1736C ; CODE XREF: _dl_get_origin+C8j .text:0001736C MOV R0, R4 .text:00017370 LDR R1, [R6] .text:00017374 MOV R2, R5 .text:00017378 BL mempcpy .text:0001737C ADD R2, R4, #1 .text:00017380 B loc_17394 .text:00017380 ; --------------------------------------------------------------------------- .text:00017384 off_17384 DCD aProcSelfExe ; DATA XREF: _dl_get_origin+20r .text:00017384 ; "/proc/self/exe" .text:00017388 off_17388 DCD asc_563E8 ; DATA XREF: _dl_get_origin+7Cr .text:00017388 ; "/" .text:0001738C off_1738C DCD _dl_origin_path ; DATA XREF: _dl_get_origin:loc_17338r .text:00017390 ; --------------------------------------------------------------------------- .text:00017390 .text:00017390 loc_17390 ; CODE XREF: _dl_get_origin+10Cj .text:00017390 SUB R0, R0, #1 .text:00017394 .text:00017394 loc_17394 ; CODE XREF: _dl_get_origin+E8j .text:00017394 CMP R0, R2 .text:00017398 BLS loc_173A8 .text:0001739C LDRB R3, [R0,#-1] .text:000173A0 CMP R3, #0x2F .text:000173A4 BEQ loc_17390 .text:000173A8 .text:000173A8 loc_173A8 ; CODE XREF: _dl_get_origin+9Cj .text:000173A8 ; _dl_get_origin+100j .text:000173A8 MOV R3, #0 .text:000173AC STRB R3, [R0] .text:000173B0 .text:000173B0 loc_173B0 ; CODE XREF: _dl_get_origin+88j .text:000173B0 ; _dl_get_origin+B0j ... .text:000173B0 MOV R0, R4 .text:000173B4 LDMDB R11, {R4-R7,R11,SP,PC} .text:000173B4 ; End of function _dl_get_origin .text:000173B4 .text:000173B8 .text:000173B8 ; =============== S U B R O U T I N E ======================================= .text:000173B8 .text:000173B8 ; Attributes: bp-based frame .text:000173B8 .text:000173B8 init ; CODE XREF: __libc_init_first+Cp .text:000173B8 MOV R12, SP .text:000173BC STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:000173C0 SUB R11, R12, #4 .text:000173C4 MOV R12, #0 .text:000173C8 MOV R5, R0 .text:000173CC MOV R6, R1 .text:000173D0 LDR R3, =_dl_starting_up .text:000173D4 MOV R4, R2 .text:000173D8 CMP R3, R12 .text:000173DC SUB SP, SP, #0x1C8 .text:000173E0 BEQ loc_173F4 .text:000173E4 LDR R3, [R3] .text:000173E8 CMP R3, R12 .text:000173EC MOVNE R12, #0 .text:000173F0 MOVEQ R12, #1 .text:000173F4 .text:000173F4 loc_173F4 ; CODE XREF: init+28j .text:000173F4 LDR R3, =__libc_multiple_libcs .text:000173F8 CMP R12, #0 .text:000173FC STR R12, [R3] .text:00017400 BNE loc_17410 .text:00017404 LDR R3, =__fpu_control .text:00017408 LDR R0, [R3] .text:0001740C BL __setfpucw .text:00017410 .text:00017410 loc_17410 ; CODE XREF: init+48j .text:00017410 LDR R3, =__libc_argc .text:00017414 STR R5, [R3] .text:00017418 LDR R2, =__libc_argv .text:0001741C STR R6, [R2] .text:00017420 LDR R3, =environ .text:00017424 STR R4, [R3] .text:00017428 BL __libc_init_secure .text:0001742C MOV R0, R5 .text:00017430 MOV R1, R6 .text:00017434 MOV R2, R4 .text:00017438 BL __libc_init .text:0001743C MOV R0, R4 .text:00017440 BL __getopt_clean_environment .text:00017444 B locret_17460 .text:00017444 ; --------------------------------------------------------------------------- .text:00017448 off_17448 DCD _dl_starting_up ; DATA XREF: init+18r .text:0001744C off_1744C DCD __libc_multiple_libcs ; DATA XREF: init:loc_173F4r .text:00017450 off_17450 DCD __fpu_control ; DATA XREF: init+4Cr .text:00017454 off_17454 DCD __libc_argc ; DATA XREF: init:loc_17410r .text:00017458 off_17458 DCD __libc_argv ; DATA XREF: init+60r .text:0001745C off_1745C DCD environ ; DATA XREF: init+68r .text:00017460 ; --------------------------------------------------------------------------- .text:00017460 .text:00017460 locret_17460 ; CODE XREF: init+8Cj .text:00017460 LDMDB R11, {R4-R6,R11,SP,PC} .text:00017460 ; End of function init .text:00017460 .text:00017464 .text:00017464 ; =============== S U B R O U T I N E ======================================= .text:00017464 .text:00017464 ; Attributes: bp-based frame .text:00017464 .text:00017464 EXPORT __libc_init_first .text:00017464 __libc_init_first ; CODE XREF: __libc_start_main+E0p .text:00017464 MOV R12, SP .text:00017468 STMFD SP!, {R11,R12,LR,PC} .text:0001746C SUB R11, R12, #4 .text:00017470 BL init .text:00017474 LDMDB R11, {R11,SP,PC} .text:00017474 ; End of function __libc_init_first .text:00017474 .text:00017478 .text:00017478 ; =============== S U B R O U T I N E ======================================= .text:00017478 .text:00017478 ; Attributes: noreturn bp-based frame .text:00017478 .text:00017478 EXPORT _dl_start .text:00017478 _dl_start .text:00017478 MOV R12, SP .text:0001747C STMFD SP!, {R11,R12,LR,PC} .text:00017480 SUB R11, R12, #4 .text:00017484 BL abort .text:00017484 ; End of function _dl_start .text:00017484 .text:00017488 ; --------------------------------------------------------------------------- .text:00017488 LDMDB R11, {R11,SP,PC} .text:0001748C .text:0001748C ; =============== S U B R O U T I N E ======================================= .text:0001748C .text:0001748C ; Attributes: bp-based frame .text:0001748C .text:0001748C _dl_name_match_p .text:0001748C MOV R12, SP .text:00017490 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:00017494 SUB R11, R12, #4 .text:00017498 MOV R4, R1 .text:0001749C MOV R6, R0 .text:000174A0 LDR R1, [R4,#4] .text:000174A4 BL strcmp .text:000174A8 LDR R4, [R4,#0x14] .text:000174AC CMP R0, #0 .text:000174B0 MOVNE R5, #0 .text:000174B4 MOVEQ R5, #1 .text:000174B8 CMP R4, #0 .text:000174BC CMPNE R0, #0 .text:000174C0 BEQ loc_174F0 .text:000174C4 .text:000174C4 loc_174C4 ; CODE XREF: _dl_name_match_p+60j .text:000174C4 LDR R1, [R4] .text:000174C8 MOV R0, R6 .text:000174CC BL strcmp .text:000174D0 CMP R0, #0 .text:000174D4 MOVEQ R5, #1 .text:000174D8 LDRNE R4, [R4,#4] .text:000174DC CMP R4, #0 .text:000174E0 EORNE R3, R5, #1 .text:000174E4 MOVEQ R3, #0 .text:000174E8 CMP R3, #0 .text:000174EC BNE loc_174C4 .text:000174F0 .text:000174F0 loc_174F0 ; CODE XREF: _dl_name_match_p+34j .text:000174F0 MOV R0, R5 .text:000174F4 LDMDB R11, {R4-R6,R11,SP,PC} .text:000174F4 ; End of function _dl_name_match_p .text:000174F4 .text:000174F8 .text:000174F8 ; =============== S U B R O U T I N E ======================================= .text:000174F8 .text:000174F8 ; Attributes: bp-based frame .text:000174F8 .text:000174F8 EXPORT __libc_init .text:000174F8 __libc_init ; CODE XREF: init+80p .text:000174F8 MOV R12, SP .text:000174FC STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:00017500 SUB R11, R12, #4 .text:00017504 MOV R8, R0 .text:00017508 MOV R7, R1 .text:0001750C MOV R5, R2 .text:00017510 LDR R4, =__elf_set___libc_subinit_element_non_dynamic_init__ .text:00017514 LDR R3, =__elf_set___libc_subfreeres_element_free_mem__ .text:00017518 CMP R4, R3 .text:0001751C MOV R6, R3 .text:00017520 LDMCSDB R11, {R4-R8,R11,SP,PC} .text:00017524 .text:00017524 loc_17524 ; CODE XREF: __libc_init+44j .text:00017524 MOV R0, R8 .text:00017528 MOV R1, R7 .text:0001752C MOV R2, R5 .text:00017530 MOV LR, PC .text:00017534 LDR PC, [R4],#4 .text:00017538 CMP R4, R6 .text:0001753C BCC loc_17524 .text:00017540 LDMDB R11, {R4-R8,R11,SP,PC} .text:00017540 ; End of function __libc_init .text:00017540 .text:00017540 ; --------------------------------------------------------------------------- .text:00017544 off_17544 DCD __elf_set___libc_subinit_element_non_dynamic_init__ .text:00017544 ; DATA XREF: __libc_init+18r .text:00017548 off_17548 DCD __elf_set___libc_subfreeres_element_free_mem__ .text:00017548 ; DATA XREF: __libc_init+1Cr .text:0001754C ALIGN 0x10 .text:00017550 .text:00017550 ; =============== S U B R O U T I N E ======================================= .text:00017550 .text:00017550 .text:00017550 EXPORT __syscall_error .text:00017550 __syscall_error ; CODE XREF: nanosleep+Cj .text:00017550 ; open+Cj ... .text:00017550 RSB R0, R0, #0 .text:00017554 .text:00017554 EXPORT __syscall_error_1 .text:00017554 __syscall_error_1 .text:00017554 LDR R1, =errno .text:00017558 STR R0, [R1] .text:0001755C STMFD SP!, {R0,LR} .text:00017560 BL __errno_location .text:00017564 LDMFD SP!, {R1,LR} .text:00017568 STR R1, [R0] .text:0001756C MOV R0, 0xFFFFFFFF .text:00017570 RET .text:00017570 ; End of function __syscall_error .text:00017570 .text:00017570 ; --------------------------------------------------------------------------- .text:00017574 _errno_loc DCD errno ; DATA XREF: __syscall_error:__syscall_error_1r .text:00017578 ALIGN 0x10 .text:00017580 .text:00017580 ; =============== S U B R O U T I N E ======================================= .text:00017580 .text:00017580 ; Attributes: noreturn bp-based frame .text:00017580 .text:00017580 EXPORT __assert_fail .text:00017580 __assert_fail ; CODE XREF: expand_dynamic_string_token+ACp .text:00017580 ; add_name_to_object+90p ... .text:00017580 .text:00017580 var_18 = -0x18 .text:00017580 var_14 = -0x14 .text:00017580 var_10 = -0x10 .text:00017580 .text:00017580 MOV R12, SP .text:00017584 STMFD SP!, {R11,R12,LR,PC} .text:00017588 SUB R11, R12, #4 .text:0001758C MOV R7, R2 .text:00017590 MOV R2, #5 .text:00017594 MOV R6, R0 .text:00017598 MOV R5, R1 .text:0001759C LDR R0, =_libc_intl_domainname ; "libc" .text:000175A0 MOV R4, R3 .text:000175A4 LDR R1, =aSSSUSSassertio ; "%s%s%s:%u: %s%sAssertion `%s' failed.\n" .text:000175A8 SUB SP, SP, #0x14 .text:000175AC BL dcgettext .text:000175B0 STMEA SP, {R5,R7} .text:000175B4 STR R6, [SP,#0x20+var_10] .text:000175B8 LDR R5, =dword_5647C .text:000175BC CMP R4, #0 .text:000175C0 LDR R3, =asc_56480 ; ": " .text:000175C4 MOVEQ R4, R5 .text:000175C8 STR R4, [SP,#0x20+var_18] .text:000175CC MOVNE R2, R3 .text:000175D0 MOVEQ R2, R5 .text:000175D4 STR R2, [SP,#0x20+var_14] .text:000175D8 LDR R4, =stderr .text:000175DC LDR R2, =__assert_program_name .text:000175E0 LDR LR, [R4] .text:000175E4 MOV R1, R0 .text:000175E8 LDR R12, [R2] .text:000175EC MOV R0, LR .text:000175F0 CMP R12, #0 .text:000175F4 MOVNE R2, R12 .text:000175F8 MOVEQ R2, R5 .text:000175FC CMP R12, #0 .text:00017600 MOVEQ R3, R5 .text:00017604 BL fprintf .text:00017608 LDR R0, [R4] .text:0001760C BL fflush .text:00017610 BL abort .text:00017610 ; End of function __assert_fail .text:00017610 .text:00017610 ; --------------------------------------------------------------------------- .text:00017614 off_17614 DCD _libc_intl_domainname ; DATA XREF: __assert_fail+1Cr .text:00017614 ; "libc" .text:00017618 off_17618 DCD aSSSUSSassertio ; DATA XREF: __assert_fail+24r .text:00017618 ; "%s%s%s:%u: %s%sAssertion `%s' failed.\n" .text:0001761C off_1761C DCD dword_5647C ; DATA XREF: __assert_fail+38r .text:00017620 off_17620 DCD asc_56480 ; DATA XREF: __assert_fail+40r .text:00017620 ; ": " .text:00017624 off_17624 DCD stderr ; DATA XREF: __assert_fail+58r .text:00017628 off_17628 DCD __assert_program_name ; DATA XREF: __assert_fail+5Cr .text:0001762C ; --------------------------------------------------------------------------- .text:0001762C LDMDB R11, {R4-R7,R11,SP,PC} .text:00017630 .text:00017630 ; =============== S U B R O U T I N E ======================================= .text:00017630 .text:00017630 ; Attributes: bp-based frame .text:00017630 .text:00017630 set_progname .text:00017630 MOV R12, SP .text:00017634 STMFD SP!, {R4,R11,R12,LR,PC} .text:00017638 SUB R11, R12, #4 .text:0001763C SUBS R4, R1, #0 .text:00017640 LDMEQDB R11, {R4,R11,SP,PC} .text:00017644 LDR R0, [R4] .text:00017648 CMP R0, #0 .text:0001764C LDMEQDB R11, {R4,R11,SP,PC} .text:00017650 MOV R1, #0x2F .text:00017654 BL strrchr .text:00017658 CMP R0, #0 .text:0001765C LDREQ R2, =__assert_program_name .text:00017660 LDREQ R3, [R4] .text:00017664 STREQ R3, [R2] .text:00017668 LDRNE R2, =__assert_program_name .text:0001766C ADDNE R3, R0, #1 .text:00017670 STRNE R3, [R2] .text:00017674 LDMDB R11, {R4,R11,SP,PC} .text:00017674 ; End of function set_progname .text:00017674 .text:00017674 ; --------------------------------------------------------------------------- .text:00017678 off_17678 DCD __assert_program_name ; DATA XREF: set_progname+2Cr .text:00017678 ; set_progname+38r .text:0001767C .text:0001767C ; =============== S U B R O U T I N E ======================================= .text:0001767C .text:0001767C ; Attributes: bp-based frame .text:0001767C .text:0001767C WEAK dcgettext .text:0001767C dcgettext ; CODE XREF: strerror_r+50p .text:0001767C ; strerror_r+104p ... .text:0001767C .text:0001767C var_14 = -0x14 .text:0001767C var_10 = -0x10 .text:0001767C .text:0001767C MOV R12, SP .text:00017680 STMFD SP!, {R11,R12,LR,PC} .text:00017684 MOV R3, #0 .text:00017688 SUB SP, SP, #8 .text:0001768C STR R3, [SP,#0x14+var_14] .text:00017690 STR R2, [SP,#0x14+var_10] .text:00017694 SUB R11, R12, #4 .text:00017698 MOV R2, R3 .text:0001769C BL __dcigettext .text:000176A0 LDMDB R11, {R11,SP,PC} .text:000176A0 ; End of function dcgettext .text:000176A0 .text:000176A4 .text:000176A4 ; =============== S U B R O U T I N E ======================================= .text:000176A4 .text:000176A4 ; Attributes: bp-based frame .text:000176A4 .text:000176A4 transcmp ; DATA XREF: __dcigettext+9Co .text:000176A4 ; __dcigettext:off_17AECo ... .text:000176A4 MOV R12, SP .text:000176A8 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:000176AC SUB R11, R12, #4 .text:000176B0 MOV R5, R0 .text:000176B4 ADD R0, R5, #0x18 .text:000176B8 MOV R4, R1 .text:000176BC ADD R1, R4, #0x18 .text:000176C0 BL strcmp .text:000176C4 CMP R0, #0 .text:000176C8 LDMNEDB R11, {R4,R5,R11,SP,PC} .text:000176CC LDR R0, [R5] .text:000176D0 LDR R1, [R4] .text:000176D4 BL strcmp .text:000176D8 CMP R0, #0 .text:000176DC LDMNEDB R11, {R4,R5,R11,SP,PC} .text:000176E0 LDR R2, [R5,#4] .text:000176E4 LDR R3, [R4,#4] .text:000176E8 RSB R0, R3, R2 .text:000176EC LDMDB R11, {R4,R5,R11,SP,PC} .text:000176EC ; End of function transcmp .text:000176EC .text:000176F0 .text:000176F0 ; =============== S U B R O U T I N E ======================================= .text:000176F0 .text:000176F0 ; Attributes: bp-based frame .text:000176F0 .text:000176F0 EXPORT __dcigettext .text:000176F0 __dcigettext ; CODE XREF: dcgettext+20p .text:000176F0 .text:000176F0 var_5C = -0x5C .text:000176F0 var_58 = -0x58 .text:000176F0 var_54 = -0x54 .text:000176F0 var_50 = -0x50 .text:000176F0 var_4C = -0x4C .text:000176F0 var_48 = -0x48 .text:000176F0 var_44 = -0x44 .text:000176F0 var_40 = -0x40 .text:000176F0 var_3C = -0x3C .text:000176F0 var_38 = -0x38 .text:000176F0 var_34 = -0x34 .text:000176F0 var_30 = -0x30 .text:000176F0 var_2C = -0x2C .text:000176F0 arg_0 = 4 .text:000176F0 arg_4 = 8 .text:000176F0 .text:000176F0 MOV R12, SP .text:000176F4 STMFD SP!, {R4-R12,LR,PC} .text:000176F8 SUB R11, R12, #4 .text:000176FC SUB SP, SP, #0x34 .text:00017700 STR R0, [R11,#var_30] .text:00017704 MOV R0, #0 .text:00017708 STR R0, [R11,#var_50] .text:0001770C STR R2, [R11,#var_38] .text:00017710 STR R3, [R11,#var_3C] .text:00017714 CMP R1, #0 .text:00017718 STR R1, [R11,#var_34] .text:0001771C BEQ loc_17CCC .text:00017720 LDR R3, =0 .text:00017724 CMP R3, #0 .text:00017728 BEQ loc_17738 .text:0001772C LDR R0, =_nl_state_lock .text:00017730 MOV LR, PC .text:00017734 MOV PC, R3 .text:00017738 .text:00017738 loc_17738 ; CODE XREF: __dcigettext+38j .text:00017738 LDR R2, [R11,#var_30] .text:0001773C CMP R2, #0 .text:00017740 LDREQ R3, =_nl_current_default_domain .text:00017744 LDREQ R3, [R3] .text:00017748 STREQ R3, [R11,#var_30] .text:0001774C LDR R0, [R11,#var_34] .text:00017750 BL strlen .text:00017754 MOV R2, R0 .text:00017758 ADD R3, R2, #0x1C .text:0001775C ADD R2, R2, #1 .text:00017760 STR R2, [R11,#var_54] .text:00017764 BIC R3, R3, #3 .text:00017768 RSB SP, R3, SP .text:0001776C LDR R1, [R11,#var_34] .text:00017770 ADD R0, SP, #0x5C+var_44 .text:00017774 BL memcpy .text:00017778 LDR R3, [R11,#var_30] .text:0001777C STR R3, [SP,#0x5C+var_5C] .text:00017780 LDR R0, [R11,#arg_4] .text:00017784 STR R0, [SP,#0x5C+var_58] .text:00017788 LDR R5, =root .text:0001778C LDR R4, =transcmp .text:00017790 MOV R0, SP .text:00017794 MOV R1, R5 .text:00017798 MOV R2, R4 .text:0001779C BL tfind .text:000177A0 CMP R0, #0 .text:000177A4 STR R0, [R11,#var_50] .text:000177A8 BEQ loc_177F4 .text:000177AC LDR R12, [R0] .text:000177B0 LDR R3, =_nl_msg_cat_cntr .text:000177B4 LDR R1, [R12,#8] .text:000177B8 LDR R2, [R3] .text:000177BC CMP R1, R2 .text:000177C0 BNE loc_177F4 .text:000177C4 LDR R2, [R11,#var_3C] .text:000177C8 CMP R2, #0 .text:000177CC BEQ loc_177E0 .text:000177D0 ADD R0, R12, #0xC .text:000177D4 LDMIA R0, {R0,R2,R3} .text:000177D8 LDR R1, [R11,#arg_0] .text:000177DC B loc_17CA8 .text:000177E0 ; --------------------------------------------------------------------------- .text:000177E0 .text:000177E0 loc_177E0 ; CODE XREF: __dcigettext+DCj .text:000177E0 LDR R7, [R12,#0x10] .text:000177E4 B loc_17CB0 .text:000177E8 ; --------------------------------------------------------------------------- .text:000177E8 .text:000177E8 loc_177E8 ; CODE XREF: __dcigettext+13Cj .text:000177E8 MOV R3, #0 .text:000177EC STR R3, [R11,#var_40] .text:000177F0 B loc_17844 .text:000177F4 ; --------------------------------------------------------------------------- .text:000177F4 .text:000177F4 loc_177F4 ; CODE XREF: __dcigettext+B8j .text:000177F4 ; __dcigettext+D0j .text:000177F4 BL __errno_location .text:000177F8 LDR R3, =_nl_domain_bindings .text:000177FC LDR R3, [R3] .text:00017800 STR R3, [R11,#var_40] .text:00017804 LDR R0, [R0] .text:00017808 CMP R3, #0 .text:0001780C STR R0, [R11,#var_4C] .text:00017810 BEQ loc_17844 .text:00017814 .text:00017814 loc_17814 ; CODE XREF: __dcigettext+150j .text:00017814 LDR R2, [R11,#var_40] .text:00017818 LDR R0, [R11,#var_30] .text:0001781C ADD R1, R2, #0x10 .text:00017820 BL strcmp .text:00017824 CMP R0, #0 .text:00017828 BEQ loc_17844 .text:0001782C BLT loc_177E8 .text:00017830 LDR R3, [R11,#var_40] .text:00017834 LDR R3, [R3] .text:00017838 CMP R3, #0 .text:0001783C STR R3, [R11,#var_40] .text:00017840 BNE loc_17814 .text:00017844 .text:00017844 loc_17844 ; CODE XREF: __dcigettext+100j .text:00017844 ; __dcigettext+120j ... .text:00017844 LDR R0, [R11,#var_40] .text:00017848 CMP R0, #0 .text:0001784C LDREQ R2, =_nl_default_dirname ; "/usr/local/arm/2.95.3/arm-linux/share/l"... .text:00017850 LDREQ R6, =asc_564C0 ; "/" .text:00017854 STREQ R2, [R11,#var_44] .text:00017858 BEQ loc_17954 .text:0001785C LDR R3, [R11,#var_40] .text:00017860 LDR R0, [R3,#4] .text:00017864 LDRB R3, [R0] .text:00017868 CMP R3, #0x2F .text:0001786C STREQ R0, [R11,#var_44] .text:00017870 LDREQ R6, =asc_564C0 ; "/" .text:00017874 BEQ loc_17954 .text:00017878 BL strlen .text:0001787C ADD R0, R0, #1 .text:00017880 ADD R3, R0, #0x1000 .text:00017884 ADD R3, R3, #4 .text:00017888 BIC R3, R3, #3 .text:0001788C RSB SP, R3, SP .text:00017890 STR SP, [R11,#var_44] .text:00017894 MOV R6, 0x1001 .text:0001789C ADD R4, R0, #0x1000 .text:000178A0 ADD R4, R4, #4 .text:000178A4 BL __errno_location .text:000178A8 MOV R3, #0 .text:000178AC STR R3, [R0] .text:000178B0 B loc_178D0 .text:000178B4 ; --------------------------------------------------------------------------- .text:000178B4 .text:000178B4 loc_178B4 ; CODE XREF: __dcigettext+200j .text:000178B4 ADD R4, R4, #0x20 .text:000178B8 BIC R3, R4, #3 .text:000178BC RSB SP, R3, SP .text:000178C0 STR SP, [R11,#var_44] .text:000178C4 ADD R6, R6, #0x20 .text:000178C8 BL __errno_location .text:000178CC STR R7, [R0] .text:000178D0 .text:000178D0 loc_178D0 ; CODE XREF: __dcigettext+1C0j .text:000178D0 LDR R0, [R11,#var_44] .text:000178D4 MOV R1, R6 .text:000178D8 BL getcwd .text:000178DC SUBS R7, R0, #0 .text:000178E0 BNE loc_178F4 .text:000178E4 BL __errno_location .text:000178E8 LDR R3, [R0] .text:000178EC CMP R3, #0x22 .text:000178F0 BEQ loc_178B4 .text:000178F4 .text:000178F4 loc_178F4 ; CODE XREF: __dcigettext+1F0j .text:000178F4 CMP R7, #0 .text:000178F8 BNE loc_1792C .text:000178FC BL __errno_location .text:00017900 LDR R2, [R11,#var_3C] .text:00017904 LDR R3, [R11,#var_4C] .text:00017908 CMP R2, #0 .text:0001790C STR R3, [R0] .text:00017910 BEQ loc_17AD4 .text:00017914 LDR R0, [R11,#var_34] .text:00017918 LDR R3, [R11,#arg_0] .text:0001791C LDR R2, [R11,#var_38] .text:00017920 CMP R3, #1 .text:00017924 MOVNE R0, R2 .text:00017928 B loc_17CCC .text:0001792C ; --------------------------------------------------------------------------- .text:0001792C .text:0001792C loc_1792C ; CODE XREF: __dcigettext+208j .text:0001792C LDR R0, [R11,#var_44] .text:00017930 MOV R1, #0 .text:00017934 BL rawmemchr .text:00017938 LDR R4, =asc_564C0 ; "/" .text:0001793C MOV R1, R4 .text:00017940 BL stpcpy .text:00017944 LDR R2, [R11,#var_40] .text:00017948 LDR R1, [R2,#4] .text:0001794C MOV R6, R4 .text:00017950 BL stpcpy .text:00017954 .text:00017954 loc_17954 ; CODE XREF: __dcigettext+168j .text:00017954 ; __dcigettext+184j .text:00017954 LDR R0, [R11,#arg_4] .text:00017958 BL category_to_name .text:0001795C MOV R4, R0 .text:00017960 LDR R0, [R11,#arg_4] .text:00017964 MOV R1, R4 .text:00017968 BL guess_category_value .text:0001796C MOV R9, R0 .text:00017970 LDR R0, [R11,#var_30] .text:00017974 BL strlen .text:00017978 STR R0, [R11,#var_58] .text:0001797C MOV R0, R4 .text:00017980 BL strlen .text:00017984 LDR R3, [R11,#var_58] .text:00017988 ADD R0, R0, R3 .text:0001798C ADD R0, R0, #8 .text:00017990 BIC R0, R0, #3 .text:00017994 RSB SP, R0, SP .text:00017998 STR SP, [R11,#var_48] .text:0001799C MOV R1, R4 .text:000179A0 MOV R0, SP .text:000179A4 BL stpcpy .text:000179A8 MOV R1, R6 .text:000179AC BL stpcpy .text:000179B0 LDR R1, [R11,#var_30] .text:000179B4 LDR R2, [R11,#var_58] .text:000179B8 BL mempcpy .text:000179BC LDR R1, =a_mo ; ".mo" .text:000179C0 BL stpcpy .text:000179C4 MOV R0, R9 .text:000179C8 BL strlen .text:000179CC ADD R0, R0, #4 .text:000179D0 BIC R0, R0, #3 .text:000179D4 RSB SP, R0, SP .text:000179D8 MOV R8, SP .text:000179DC .text:000179DC loc_179DC ; CODE XREF: __dcigettext+368j .text:000179DC ; __dcigettext+438j ... .text:000179DC LDRB R3, [R9] .text:000179E0 CMP R3, #0x3A .text:000179E4 BNE loc_179F4 .text:000179E8 .text:000179E8 loc_179E8 ; CODE XREF: __dcigettext+300j .text:000179E8 LDRB R3, [R9,#1]! .text:000179EC CMP R3, #0x3A .text:000179F0 BEQ loc_179E8 .text:000179F4 .text:000179F4 loc_179F4 ; CODE XREF: __dcigettext+2F4j .text:000179F4 LDRB R2, [R9] .text:000179F8 CMP R2, #0 .text:000179FC MOVEQ R3, #0x43 .text:00017A00 STREQB R3, [R8] .text:00017A04 STREQB R2, [R8,#1] .text:00017A08 BEQ loc_17A5C .text:00017A0C MOV R1, R8 .text:00017A10 CMP R2, #0x3A .text:00017A14 LDR R0, =__libc_enable_secure .text:00017A18 BEQ loc_17A34 .text:00017A1C .text:00017A1C loc_17A1C ; CODE XREF: __dcigettext+340j .text:00017A1C LDRB R2, [R9] .text:00017A20 STRB R2, [R1],#1 .text:00017A24 LDRB R3, [R9,#1]! .text:00017A28 CMP R3, #0 .text:00017A2C CMPNE R3, #0x3A .text:00017A30 BNE loc_17A1C .text:00017A34 .text:00017A34 loc_17A34 ; CODE XREF: __dcigettext+328j .text:00017A34 LDR R2, [R0] .text:00017A38 MOV R3, #0 .text:00017A3C STRB R3, [R1] .text:00017A40 CMP R2, R3 .text:00017A44 BEQ loc_17A5C .text:00017A48 MOV R0, R8 .text:00017A4C MOV R1, #0x2F .text:00017A50 BL strchr .text:00017A54 CMP R0, #0 .text:00017A58 BNE loc_179DC .text:00017A5C .text:00017A5C loc_17A5C ; CODE XREF: __dcigettext+318j .text:00017A5C ; __dcigettext+354j .text:00017A5C LDRB R3, [R8] .text:00017A60 SUB R2, R3, #0x43 .text:00017A64 CMP R3, #0x43 .text:00017A68 LDREQB R2, [R8,#1] .text:00017A6C CMP R2, #0 .text:00017A70 BEQ loc_17A88 .text:00017A74 LDR R1, =aPosix ; "POSIX" .text:00017A78 MOV R0, R8 .text:00017A7C BL strcmp .text:00017A80 CMP R0, #0 .text:00017A84 BNE loc_17B10 .text:00017A88 .text:00017A88 loc_17A88 ; CODE XREF: __dcigettext+380j .text:00017A88 LDR R0, =0 .text:00017A8C CMP R0, #0 .text:00017A90 BEQ loc_17AA4 .text:00017A94 LDR R0, =_nl_state_lock .text:00017A98 LDR R2, =0 .text:00017A9C MOV LR, PC .text:00017AA0 MOV PC, R2 .text:00017AA4 .text:00017AA4 loc_17AA4 ; CODE XREF: __dcigettext+3A0j .text:00017AA4 BL __errno_location .text:00017AA8 LDR R3, [R11,#var_3C] .text:00017AAC LDR R2, [R11,#var_4C] .text:00017AB0 CMP R3, #0 .text:00017AB4 STR R2, [R0] .text:00017AB8 BEQ loc_17AD4 .text:00017ABC LDR R0, [R11,#var_34] .text:00017AC0 LDR R2, [R11,#arg_0] .text:00017AC4 LDR R3, [R11,#var_38] .text:00017AC8 CMP R2, #1 .text:00017ACC MOVNE R0, R3 .text:00017AD0 B loc_17CCC .text:00017AD4 ; --------------------------------------------------------------------------- .text:00017AD4 .text:00017AD4 loc_17AD4 ; CODE XREF: __dcigettext+220j .text:00017AD4 ; __dcigettext+3C8j .text:00017AD4 LDR R0, [R11,#var_34] .text:00017AD8 B loc_17CCC .text:00017AD8 ; --------------------------------------------------------------------------- .text:00017ADC off_17ADC DCD 0 ; DATA XREF: __dcigettext+30r .text:00017AE0 off_17AE0 DCD _nl_state_lock ; DATA XREF: __dcigettext+3Cr .text:00017AE0 ; __dcigettext+3A4r .text:00017AE4 off_17AE4 DCD _nl_current_default_domain ; DATA XREF: __dcigettext+50r .text:00017AE8 off_17AE8 DCD root ; DATA XREF: __dcigettext+98r .text:00017AEC off_17AEC DCD transcmp ; DATA XREF: __dcigettext+9Cr .text:00017AF0 off_17AF0 DCD _nl_msg_cat_cntr ; DATA XREF: __dcigettext+C0r .text:00017AF4 off_17AF4 DCD _nl_domain_bindings ; DATA XREF: __dcigettext+108r .text:00017AF8 off_17AF8 DCD _nl_default_dirname ; DATA XREF: __dcigettext+15Cr .text:00017AF8 ; "/usr/local/arm/2.95.3/arm-linux/share/l"... .text:00017AFC off_17AFC DCD asc_564C0 ; DATA XREF: __dcigettext+160r .text:00017AFC ; __dcigettext+180r ... .text:00017AFC ; "/" .text:00017B00 off_17B00 DCD a_mo ; DATA XREF: __dcigettext+2CCr .text:00017B00 ; ".mo" .text:00017B04 off_17B04 DCD __libc_enable_secure ; DATA XREF: __dcigettext+324r .text:00017B08 off_17B08 DCD aPosix ; DATA XREF: __dcigettext+384r .text:00017B08 ; "POSIX" .text:00017B0C off_17B0C DCD 0 ; DATA XREF: __dcigettext:loc_17A88r .text:00017B0C ; __dcigettext+3A8r .text:00017B10 ; --------------------------------------------------------------------------- .text:00017B10 .text:00017B10 loc_17B10 ; CODE XREF: __dcigettext+394j .text:00017B10 LDR R0, [R11,#var_44] .text:00017B14 LDR R2, [R11,#var_48] .text:00017B18 LDR R3, [R11,#var_40] .text:00017B1C MOV R1, R8 .text:00017B20 BL _nl_find_domain .text:00017B24 SUBS R10, R0, #0 .text:00017B28 BEQ loc_179DC .text:00017B2C MOV R0, R10 .text:00017B30 LDR R1, [R11,#var_40] .text:00017B34 SUB R4, R11, #-var_2C .text:00017B38 LDR R2, [R11,#var_34] .text:00017B3C MOV R3, R4 .text:00017B40 BL _nl_find_msg .text:00017B44 SUBS R7, R0, #0 .text:00017B48 MOV R12, R4 .text:00017B4C BNE loc_17B94 .text:00017B50 MOV R6, R7 .text:00017B54 ADD R5, R10, #0x10 .text:00017B58 B loc_17B60 .text:00017B5C ; --------------------------------------------------------------------------- .text:00017B5C .text:00017B5C loc_17B5C ; CODE XREF: __dcigettext+49Cj .text:00017B5C ADD R6, R6, #1 .text:00017B60 .text:00017B60 loc_17B60 ; CODE XREF: __dcigettext+468j .text:00017B60 MOV R4, R6,LSL#2 .text:00017B64 LDR R0, [R5,R4] .text:00017B68 CMP R0, #0 .text:00017B6C BEQ loc_17B94 .text:00017B70 STR R12, [R11,#var_5C] .text:00017B74 LDR R1, [R11,#var_40] .text:00017B78 LDR R2, [R11,#var_34] .text:00017B7C MOV R3, R12 .text:00017B80 BL _nl_find_msg .text:00017B84 SUBS R7, R0, #0 .text:00017B88 LDR R12, [R11,#var_5C] .text:00017B8C BEQ loc_17B5C .text:00017B90 LDR R10, [R5,R4] .text:00017B94 .text:00017B94 loc_17B94 ; CODE XREF: __dcigettext+45Cj .text:00017B94 ; __dcigettext+47Cj .text:00017B94 CMP R7, #0 .text:00017B98 BEQ loc_179DC .text:00017B9C BL __errno_location .text:00017BA0 LDR R3, [R11,#var_50] .text:00017BA4 LDR R2, [R11,#var_4C] .text:00017BA8 CMP R3, #0 .text:00017BAC STR R2, [R0] .text:00017BB0 BNE loc_17C58 .text:00017BB4 LDR R3, [R11,#var_58] .text:00017BB8 LDR R2, [R11,#var_54] .text:00017BBC ADD R0, R3, R2 .text:00017BC0 ADD R0, R0, #0x19 .text:00017BC4 BL malloc .text:00017BC8 SUBS R4, R0, #0 .text:00017BCC BEQ loc_17C8C .text:00017BD0 LDR R1, [R11,#var_34] .text:00017BD4 LDR R2, [R11,#var_54] .text:00017BD8 ADD R0, R4, #0x18 .text:00017BDC BL mempcpy .text:00017BE0 STR R0, [R4] .text:00017BE4 LDR R3, [R11,#var_58] .text:00017BE8 LDR R1, [R11,#var_30] .text:00017BEC ADD R2, R3, #1 .text:00017BF0 BL memcpy .text:00017BF4 LDR R0, [R11,#arg_4] .text:00017BF8 STR R0, [R4,#4] .text:00017BFC LDR R3, =_nl_msg_cat_cntr .text:00017C00 LDR R2, [R3] .text:00017C04 STR R10, [R4,#0xC] .text:00017C08 STR R7, [R4,#0x10] .text:00017C0C STR R2, [R4,#8] .text:00017C10 LDR R3, [R11,#var_2C] .text:00017C14 STR R3, [R4,#0x14] .text:00017C18 LDR R1, =root .text:00017C1C LDR R2, =transcmp .text:00017C20 MOV R0, R4 .text:00017C24 BL tsearch .text:00017C28 CMP R0, #0 .text:00017C2C STR R0, [R11,#var_50] .text:00017C30 BEQ loc_17C40 .text:00017C34 LDR R3, [R0] .text:00017C38 CMP R3, R4 .text:00017C3C BEQ loc_17C8C .text:00017C40 .text:00017C40 loc_17C40 ; CODE XREF: __dcigettext+540j .text:00017C40 MOV R0, R4 .text:00017C44 BL free .text:00017C48 B loc_17C8C .text:00017C48 ; --------------------------------------------------------------------------- .text:00017C4C off_17C4C DCD _nl_msg_cat_cntr ; DATA XREF: __dcigettext+50Cr .text:00017C50 off_17C50 DCD root ; DATA XREF: __dcigettext+528r .text:00017C54 off_17C54 DCD transcmp ; DATA XREF: __dcigettext+52Cr .text:00017C58 ; --------------------------------------------------------------------------- .text:00017C58 .text:00017C58 loc_17C58 ; CODE XREF: __dcigettext+4C0j .text:00017C58 LDR R3, [R11,#var_50] .text:00017C5C LDR R2, =_nl_msg_cat_cntr .text:00017C60 LDR R1, [R3] .text:00017C64 LDR R3, [R2] .text:00017C68 STR R3, [R1,#8] .text:00017C6C LDR R0, [R11,#var_50] .text:00017C70 LDR R2, [R0] .text:00017C74 STR R10, [R2,#0xC] .text:00017C78 LDR R3, [R0] .text:00017C7C STR R7, [R3,#0x10] .text:00017C80 LDR R3, [R11,#var_2C] .text:00017C84 LDR R2, [R0] .text:00017C88 STR R3, [R2,#0x14] .text:00017C8C .text:00017C8C loc_17C8C ; CODE XREF: __dcigettext+4DCj .text:00017C8C ; __dcigettext+54Cj ... .text:00017C8C LDR R2, [R11,#var_3C] .text:00017C90 CMP R2, #0 .text:00017C94 BEQ loc_17CB0 .text:00017C98 LDR R1, [R11,#arg_0] .text:00017C9C MOV R0, R10 .text:00017CA0 LDR R3, [R11,#var_2C] .text:00017CA4 MOV R2, R7 .text:00017CA8 .text:00017CA8 loc_17CA8 ; CODE XREF: __dcigettext+ECj .text:00017CA8 BL plural_lookup .text:00017CAC MOV R7, R0 .text:00017CB0 .text:00017CB0 loc_17CB0 ; CODE XREF: __dcigettext+F4j .text:00017CB0 ; __dcigettext+5A4j .text:00017CB0 LDR R3, =0 .text:00017CB4 CMP R3, #0 .text:00017CB8 BEQ loc_17CC8 .text:00017CBC LDR R0, =_nl_state_lock .text:00017CC0 MOV LR, PC .text:00017CC4 MOV PC, R3 .text:00017CC8 .text:00017CC8 loc_17CC8 ; CODE XREF: __dcigettext+5C8j .text:00017CC8 MOV R0, R7 .text:00017CCC .text:00017CCC loc_17CCC ; CODE XREF: __dcigettext+2Cj .text:00017CCC ; __dcigettext+238j ... .text:00017CCC B locret_17CDC .text:00017CCC ; --------------------------------------------------------------------------- .text:00017CD0 off_17CD0 DCD _nl_msg_cat_cntr ; DATA XREF: __dcigettext+56Cr .text:00017CD4 off_17CD4 DCD 0 ; DATA XREF: __dcigettext:loc_17CB0r .text:00017CD8 off_17CD8 DCD _nl_state_lock ; DATA XREF: __dcigettext+5CCr .text:00017CDC ; --------------------------------------------------------------------------- .text:00017CDC .text:00017CDC locret_17CDC ; CODE XREF: __dcigettext:loc_17CCCj .text:00017CDC LDMDB R11, {R4-R11,SP,PC} .text:00017CDC ; End of function __dcigettext .text:00017CDC .text:00017CE0 .text:00017CE0 ; =============== S U B R O U T I N E ======================================= .text:00017CE0 .text:00017CE0 ; Attributes: bp-based frame .text:00017CE0 .text:00017CE0 EXPORT _nl_find_msg .text:00017CE0 _nl_find_msg ; CODE XREF: __dcigettext+450p .text:00017CE0 ; __dcigettext+490p ... .text:00017CE0 .text:00017CE0 var_50 = -0x50 .text:00017CE0 var_4C = -0x4C .text:00017CE0 var_48 = -0x48 .text:00017CE0 var_44 = -0x44 .text:00017CE0 var_40 = -0x40 .text:00017CE0 var_3C = -0x3C .text:00017CE0 var_38 = -0x38 .text:00017CE0 var_34 = -0x34 .text:00017CE0 var_30 = -0x30 .text:00017CE0 var_2C = -0x2C .text:00017CE0 .text:00017CE0 MOV R12, SP .text:00017CE4 STMFD SP!, {R4-R12,LR,PC} .text:00017CE8 SUB R11, R12, #4 .text:00017CEC SUB SP, SP, #0x28 .text:00017CF0 STR R0, [R11,#var_38] .text:00017CF4 LDR R0, [R0,#4] .text:00017CF8 STR R1, [R11,#var_3C] .text:00017CFC MOV R10, R2 .text:00017D00 STR R3, [R11,#var_40] .text:00017D04 CMP R0, #0 .text:00017D08 BNE loc_17D14 .text:00017D0C LDR R0, [R11,#var_38] .text:00017D10 BL _nl_load_domain .text:00017D14 .text:00017D14 loc_17D14 ; CODE XREF: _nl_find_msg+28j .text:00017D14 LDR R1, [R11,#var_38] .text:00017D18 LDR R6, [R1,#8] .text:00017D1C CMP R6, #0 .text:00017D20 BEQ loc_1800C .text:00017D24 LDR R3, [R6,#0x1C] .text:00017D28 CMP R3, #2 .text:00017D2C BLS loc_17EB8 .text:00017D30 LDR R3, [R6,#0x20] .text:00017D34 CMP R3, #0 .text:00017D38 BEQ loc_17EB8 .text:00017D3C MOV R0, R10 .text:00017D40 BL strlen .text:00017D44 MOV R2, R10 .text:00017D48 MOV R5, #0 .text:00017D4C LDRB R3, [R10] .text:00017D50 MOV R9, R0 .text:00017D54 CMP R3, R5 .text:00017D58 BEQ loc_17D7C .text:00017D5C .text:00017D5C loc_17D5C ; CODE XREF: _nl_find_msg+98j .text:00017D5C LDRB R3, [R2],#1 .text:00017D60 ADD R5, R3, R5,LSL#4 .text:00017D64 ANDS R3, R5, #0xF0000000 .text:00017D68 EORNE R5, R5, R3,LSR#24 .text:00017D6C EORNE R5, R5, R3 .text:00017D70 LDRB R3, [R2] .text:00017D74 CMP R3, #0 .text:00017D78 BNE loc_17D5C .text:00017D7C .text:00017D7C loc_17D7C ; CODE XREF: _nl_find_msg+78j .text:00017D7C LDR R4, [R6,#0x1C] .text:00017D80 MOV R0, R5 .text:00017D84 MOV R1, R4 .text:00017D88 BL __umodsi3 .text:00017D8C MOV R7, R0 .text:00017D90 MOV R0, R5 .text:00017D94 SUB R1, R4, #2 .text:00017D98 BL __umodsi3 .text:00017D9C ADD R8, R0, #1 .text:00017DA0 .text:00017DA0 loc_17DA0 ; CODE XREF: _nl_find_msg+1CCj .text:00017DA0 ; _nl_find_msg+1D4j .text:00017DA0 LDR R3, [R6,#0xC] .text:00017DA4 CMP R3, #0 .text:00017DA8 MOV R5, R3 .text:00017DAC BEQ loc_17DD4 .text:00017DB0 LDR R2, [R6,#0x20] .text:00017DB4 LDR R1, [R2,R7,LSL#2] .text:00017DB8 AND R3, R1, #0xFF0000 .text:00017DBC MOV R3, R3,LSR#8 .text:00017DC0 ORR R3, R3, R1,LSR#24 .text:00017DC4 AND R2, R1, #0xFF00 .text:00017DC8 ORR R3, R3, R2,LSL#8 .text:00017DCC ORR R4, R3, R1,LSL#24 .text:00017DD0 B loc_17DDC .text:00017DD4 ; --------------------------------------------------------------------------- .text:00017DD4 .text:00017DD4 loc_17DD4 ; CODE XREF: _nl_find_msg+CCj .text:00017DD4 LDR R3, [R6,#0x20] .text:00017DD8 LDR R4, [R3,R7,LSL#2] .text:00017DDC .text:00017DDC loc_17DDC ; CODE XREF: _nl_find_msg+F0j .text:00017DDC CMP R4, #0 .text:00017DE0 BEQ loc_1800C .text:00017DE4 CMP R5, #0 .text:00017DE8 BEQ loc_17E28 .text:00017DEC MOV R3, R4,LSL#3 .text:00017DF0 LDR R2, [R6,#0x14] .text:00017DF4 MOV R12, R3 .text:00017DF8 ADD R3, R3, R2 .text:00017DFC LDR R1, [R3,#-8] .text:00017E00 MOV R0, R2 .text:00017E04 AND R3, R1, #0xFF0000 .text:00017E08 MOV R3, R3,LSR#8 .text:00017E0C ORR R3, R3, R1,LSR#24 .text:00017E10 AND R2, R1, #0xFF00 .text:00017E14 ORR R3, R3, R2,LSL#8 .text:00017E18 ORR R3, R3, R1,LSL#24 .text:00017E1C CMP R3, R9 .text:00017E20 BCS loc_17E48 .text:00017E24 B loc_17E9C .text:00017E28 ; --------------------------------------------------------------------------- .text:00017E28 .text:00017E28 loc_17E28 ; CODE XREF: _nl_find_msg+108j .text:00017E28 MOV R3, R4,LSL#3 .text:00017E2C LDR R1, [R6,#0x14] .text:00017E30 MOV R12, R3 .text:00017E34 ADD R3, R3, R1 .text:00017E38 LDR R2, [R3,#-8] .text:00017E3C MOV R0, R1 .text:00017E40 CMP R2, R9 .text:00017E44 BCC loc_17E9C .text:00017E48 .text:00017E48 loc_17E48 ; CODE XREF: _nl_find_msg+140j .text:00017E48 LDR R3, [R6,#0xC] .text:00017E4C LDR LR, [R6] .text:00017E50 CMP R3, #0 .text:00017E54 BEQ loc_17E80 .text:00017E58 ADD R2, R12, R0 .text:00017E5C LDR R1, [R2,#-4] .text:00017E60 AND R3, R1, #0xFF0000 .text:00017E64 MOV R3, R3,LSR#8 .text:00017E68 ORR R3, R3, R1,LSR#24 .text:00017E6C AND R2, R1, #0xFF00 .text:00017E70 ORR R3, R3, R2,LSL#8 .text:00017E74 ORR R3, R3, R1,LSL#24 .text:00017E78 ADD R1, LR, R3 .text:00017E7C B loc_17E8C .text:00017E80 ; --------------------------------------------------------------------------- .text:00017E80 .text:00017E80 loc_17E80 ; CODE XREF: _nl_find_msg+174j .text:00017E80 ADD R3, R12, R0 .text:00017E84 LDR R2, [R3,#-4] .text:00017E88 ADD R1, LR, R2 .text:00017E8C .text:00017E8C loc_17E8C ; CODE XREF: _nl_find_msg+19Cj .text:00017E8C MOV R0, R10 .text:00017E90 BL strcmp .text:00017E94 CMP R0, #0 .text:00017E98 BEQ loc_17F3C .text:00017E9C .text:00017E9C loc_17E9C ; CODE XREF: _nl_find_msg+144j .text:00017E9C ; _nl_find_msg+164j .text:00017E9C LDR R3, [R6,#0x1C] .text:00017EA0 RSB R3, R8, R3 .text:00017EA4 CMP R7, R3 .text:00017EA8 RSBCS R7, R3, R7 .text:00017EAC BCS loc_17DA0 .text:00017EB0 ADD R7, R7, R8 .text:00017EB4 B loc_17DA0 .text:00017EB8 ; --------------------------------------------------------------------------- .text:00017EB8 .text:00017EB8 loc_17EB8 ; CODE XREF: _nl_find_msg+4Cj .text:00017EB8 ; _nl_find_msg+58j .text:00017EB8 LDR R4, [R6,#0x10] .text:00017EBC MOV R5, #0 .text:00017EC0 .text:00017EC0 loc_17EC0 ; CODE XREF: _nl_find_msg+24Cj .text:00017EC0 ; _nl_find_msg+258j .text:00017EC0 CMP R5, R4 .text:00017EC4 BCS loc_1800C .text:00017EC8 ADD R3, R5, R4 .text:00017ECC LDR R2, [R6,#0xC] .text:00017ED0 MOV R8, R3,LSR#1 .text:00017ED4 LDR R0, [R6] .text:00017ED8 CMP R2, #0 .text:00017EDC BEQ loc_17F0C .text:00017EE0 LDR R2, [R6,#0x14] .text:00017EE4 ADD R2, R2, R8,LSL#3 .text:00017EE8 LDR R1, [R2,#4] .text:00017EEC AND R3, R1, #0xFF0000 .text:00017EF0 MOV R3, R3,LSR#8 .text:00017EF4 ORR R3, R3, R1,LSR#24 .text:00017EF8 AND R2, R1, #0xFF00 .text:00017EFC ORR R3, R3, R2,LSL#8 .text:00017F00 ORR R3, R3, R1,LSL#24 .text:00017F04 ADD R1, R0, R3 .text:00017F08 B loc_17F1C .text:00017F0C ; --------------------------------------------------------------------------- .text:00017F0C .text:00017F0C loc_17F0C ; CODE XREF: _nl_find_msg+1FCj .text:00017F0C LDR R3, [R6,#0x14] .text:00017F10 ADD R3, R3, R8,LSL#3 .text:00017F14 LDR R2, [R3,#4] .text:00017F18 ADD R1, R0, R2 .text:00017F1C .text:00017F1C loc_17F1C ; CODE XREF: _nl_find_msg+228j .text:00017F1C MOV R0, R10 .text:00017F20 BL strcmp .text:00017F24 CMP R0, #0 .text:00017F28 MOVLT R4, R8 .text:00017F2C BLT loc_17EC0 .text:00017F30 BLE loc_17F40 .text:00017F34 ADD R5, R8, #1 .text:00017F38 B loc_17EC0 .text:00017F3C ; --------------------------------------------------------------------------- .text:00017F3C .text:00017F3C loc_17F3C ; CODE XREF: _nl_find_msg+1B8j .text:00017F3C SUB R8, R4, #1 .text:00017F40 .text:00017F40 loc_17F40 ; CODE XREF: _nl_find_msg+250j .text:00017F40 LDR R3, [R6,#0xC] .text:00017F44 LDR R0, [R6] .text:00017F48 CMP R3, #0 .text:00017F4C MOV R5, R3 .text:00017F50 BEQ loc_17F8C .text:00017F54 MOV R3, R8,LSL#3 .text:00017F58 LDR R2, [R6,#0x18] .text:00017F5C MOV LR, R3 .text:00017F60 ADD R3, R3, R2 .text:00017F64 LDR R1, [R3,#4] .text:00017F68 MOV R12, R2 .text:00017F6C AND R3, R1, #0xFF0000 .text:00017F70 MOV R3, R3,LSR#8 .text:00017F74 ORR R3, R3, R1,LSR#24 .text:00017F78 AND R2, R1, #0xFF00 .text:00017F7C ORR R3, R3, R2,LSL#8 .text:00017F80 ORR R3, R3, R1,LSL#24 .text:00017F84 ADD R0, R0, R3 .text:00017F88 B loc_17FA8 .text:00017F8C ; --------------------------------------------------------------------------- .text:00017F8C .text:00017F8C loc_17F8C ; CODE XREF: _nl_find_msg+270j .text:00017F8C MOV R3, R8,LSL#3 .text:00017F90 LDR R1, [R6,#0x18] .text:00017F94 MOV LR, R3 .text:00017F98 ADD R3, R3, R1 .text:00017F9C LDR R2, [R3,#4] .text:00017FA0 MOV R12, R1 .text:00017FA4 ADD R0, R0, R2 .text:00017FA8 .text:00017FA8 loc_17FA8 ; CODE XREF: _nl_find_msg+2A8j .text:00017FA8 STR R0, [R11,#var_44] .text:00017FAC CMP R5, #0 .text:00017FB0 BEQ loc_17FDC .text:00017FB4 LDR R3, [LR,R12] .text:00017FB8 AND R2, R3, #0xFF0000 .text:00017FBC MOV R2, R2,LSR#8 .text:00017FC0 ORR R2, R2, R3,LSR#24 .text:00017FC4 AND R1, R3, #0xFF00 .text:00017FC8 ORR R2, R2, R1,LSL#8 .text:00017FCC ORR R2, R2, R3,LSL#24 .text:00017FD0 ADD R2, R2, #1 .text:00017FD4 STR R2, [R11,#var_48] .text:00017FD8 B loc_17FE8 .text:00017FDC ; --------------------------------------------------------------------------- .text:00017FDC .text:00017FDC loc_17FDC ; CODE XREF: _nl_find_msg+2D0j .text:00017FDC LDR R3, [LR,R12] .text:00017FE0 ADD R3, R3, #1 .text:00017FE4 STR R3, [R11,#var_48] .text:00017FE8 .text:00017FE8 loc_17FE8 ; CODE XREF: _nl_find_msg+2F8j .text:00017FE8 LDR R2, [R11,#var_3C] .text:00017FEC CMP R2, #0 .text:00017FF0 LDR R2, [R6,#0x24] .text:00017FF4 BEQ loc_18014 .text:00017FF8 LDR R12, [R11,#var_3C] .text:00017FFC LDR R3, [R12,#8] .text:00018000 CMP R2, R3 .text:00018004 BNE loc_1801C .text:00018008 B loc_18034 .text:0001800C ; --------------------------------------------------------------------------- .text:0001800C .text:0001800C loc_1800C ; CODE XREF: _nl_find_msg+40j .text:0001800C ; _nl_find_msg+100j ... .text:0001800C MOV R0, #0 .text:00018010 B loc_182A8 .text:00018014 ; --------------------------------------------------------------------------- .text:00018014 .text:00018014 loc_18014 ; CODE XREF: _nl_find_msg+314j .text:00018014 CMP R2, #0 .text:00018018 BEQ loc_18034 .text:0001801C .text:0001801C loc_1801C ; CODE XREF: _nl_find_msg+324j .text:0001801C MOV R0, R6 .text:00018020 BL _nl_free_domain_conv .text:00018024 LDR R0, [R11,#var_38] .text:00018028 LDR R2, [R11,#var_3C] .text:0001802C MOV R1, R6 .text:00018030 BL _nl_init_domain_conv .text:00018034 .text:00018034 loc_18034 ; CODE XREF: _nl_find_msg+328j .text:00018034 ; _nl_find_msg+338j .text:00018034 LDR R3, [R6,#0x28] .text:00018038 CMN R3, #1 .text:0001803C BEQ loc_18298 .text:00018040 LDR R3, [R6,#0x2C] .text:00018044 CMP R3, #0 .text:00018048 BNE loc_18068 .text:0001804C LDR R0, [R6,#0x10] .text:00018050 MOV R1, #4 .text:00018054 BL calloc .text:00018058 CMP R0, #0 .text:0001805C STR R0, [R6,#0x2C] .text:00018060 MOVEQ R3, 0xFFFFFFFF .text:00018064 STREQ R3, [R6,#0x2C] .text:00018068 .text:00018068 loc_18068 ; CODE XREF: _nl_find_msg+368j .text:00018068 LDR R3, [R6,#0x2C] .text:0001806C CMN R3, #1 .text:00018070 BEQ loc_18298 .text:00018074 LDR R4, [R3,R8,LSL#2] .text:00018078 CMP R4, #0 .text:0001807C BNE loc_18280 .text:00018080 LDR R3, =0 .text:00018084 CMP R3, #0 .text:00018088 BEQ loc_18098 .text:0001808C LDR R0, =lock.93 .text:00018090 MOV LR, PC .text:00018094 MOV PC, R3 .text:00018098 .text:00018098 loc_18098 ; CODE XREF: _nl_find_msg+3A8j .text:00018098 LDR R1, [R11,#var_44] .text:0001809C STR R1, [R11,#var_2C] .text:000180A0 LDR R2, =freemem.94 .text:000180A4 MOV R9, R4 .text:000180A8 LDR R3, [R2] .text:000180AC MOV R7, R9 .text:000180B0 LDR R10, =freemem_size.95 .text:000180B4 ADD R3, R3, #4 .text:000180B8 STR R3, [R11,#var_30] .text:000180BC .text:000180BC loc_180BC ; CODE XREF: _nl_find_msg+51Cj .text:000180BC LDR R1, [R10] .text:000180C0 CMP R1, #3 .text:000180C4 BLS loc_18138 .text:000180C8 LDR R0, [R6,#0x28] .text:000180CC LDR R2, [R11,#var_30] .text:000180D0 SUB R3, R11, #-var_34 .text:000180D4 STR R3, [SP,#0x50+var_4C] .text:000180D8 ADD R2, R2, R1 .text:000180DC SUB R2, R2, #4 .text:000180E0 STR R2, [SP,#0x50+var_50] .text:000180E4 LDR R2, [R11,#var_2C] .text:000180E8 LDR R3, [R11,#var_48] .text:000180EC SUB R1, R11, #-var_2C .text:000180F0 ADD R2, R2, R3 .text:000180F4 SUB R3, R11, #-var_30 .text:000180F8 BL __gconv .text:000180FC MOV R3, R0 .text:00018100 CMP R3, #4 .text:00018104 CMPNE R0, #0 .text:00018108 BEQ loc_18218 .text:0001810C CMP R3, #5 .text:00018110 BEQ loc_18130 .text:00018114 LDR R12, =0 .text:00018118 CMP R12, #0 .text:0001811C BEQ loc_18298 .text:00018120 LDR R0, =lock.93 .text:00018124 MOV LR, PC .text:00018128 MOV PC, R12 .text:0001812C B loc_18298 .text:00018130 ; --------------------------------------------------------------------------- .text:00018130 .text:00018130 loc_18130 ; CODE XREF: _nl_find_msg+430j .text:00018130 LDR R1, [R11,#var_44] .text:00018134 STR R1, [R11,#var_2C] .text:00018138 .text:00018138 loc_18138 ; CODE XREF: _nl_find_msg+3E4j .text:00018138 CMP R9, #0 .text:0001813C BLE loc_18184 .text:00018140 ADD R7, R7, #0xFF0 .text:00018144 STR R7, [R10] .text:00018148 LDR R5, =transmem_list .text:0001814C ADD R9, R9, #1 .text:00018150 LDR R0, [R5] .text:00018154 MOV R1, R7 .text:00018158 BL realloc .text:0001815C SUBS R4, R0, #0 .text:00018160 LDRNE R3, [R5] .text:00018164 LDRNE R2, [R3] .text:00018168 STRNE R2, [R5] .text:0001816C BNE loc_1819C .text:00018170 LDR R0, [R5] .text:00018174 LDR R3, [R0] .text:00018178 STR R3, [R5] .text:0001817C BL free .text:00018180 B loc_1819C .text:00018184 ; --------------------------------------------------------------------------- .text:00018184 .text:00018184 loc_18184 ; CODE XREF: _nl_find_msg+45Cj .text:00018184 MOV R7, #0xFF0 .text:00018188 STR R7, [R10] .text:0001818C MOV R9, #1 .text:00018190 MOV R0, R7 .text:00018194 BL malloc .text:00018198 MOV R4, R0 .text:0001819C .text:0001819C loc_1819C ; CODE XREF: _nl_find_msg+48Cj .text:0001819C ; _nl_find_msg+4A0j .text:0001819C CMP R4, #0 .text:000181A0 BNE loc_181CC .text:000181A4 LDR R2, =freemem.94 .text:000181A8 LDR R3, =0 .text:000181AC STR R4, [R2] .text:000181B0 CMP R3, #0 .text:000181B4 STR R4, [R10] .text:000181B8 BEQ loc_18298 .text:000181BC LDR R0, =lock.93 .text:000181C0 MOV LR, PC .text:000181C4 MOV PC, R3 .text:000181C8 B loc_18298 .text:000181CC ; --------------------------------------------------------------------------- .text:000181CC .text:000181CC loc_181CC ; CODE XREF: _nl_find_msg+4C0j .text:000181CC LDR R1, =transmem_list .text:000181D0 LDR R3, [R1] .text:000181D4 STR R3, [R4] .text:000181D8 STR R4, [R1] .text:000181DC LDR R12, =freemem.94 .text:000181E0 ADD R2, R4, #4 .text:000181E4 STR R2, [R12] .text:000181E8 ADD R2, R2, #4 .text:000181EC STR R2, [R11,#var_30] .text:000181F0 LDR R3, [R10] .text:000181F4 SUB R3, R3, #4 .text:000181F8 STR R3, [R10] .text:000181FC B loc_180BC .text:000181FC ; --------------------------------------------------------------------------- .text:00018200 off_18200 DCD 0 ; DATA XREF: _nl_find_msg+3A0r .text:00018204 off_18204 DCD lock.93 ; DATA XREF: _nl_find_msg+3ACr .text:00018204 ; _nl_find_msg+440r ... .text:00018208 off_18208 DCD freemem.94 ; DATA XREF: _nl_find_msg+3C0r .text:00018208 ; _nl_find_msg+4C4r ... .text:0001820C off_1820C DCD freemem_size.95 ; DATA XREF: _nl_find_msg+3D0r .text:00018210 off_18210 DCD 0 ; DATA XREF: _nl_find_msg+434r .text:00018210 ; _nl_find_msg+4C8r .text:00018214 off_18214 DCD transmem_list ; DATA XREF: _nl_find_msg+468r .text:00018214 ; _nl_find_msg:loc_181CCr .text:00018218 ; --------------------------------------------------------------------------- .text:00018218 .text:00018218 loc_18218 ; CODE XREF: _nl_find_msg+428j .text:00018218 LDR R2, =freemem.94 .text:0001821C LDR R3, [R11,#var_30] .text:00018220 LDR R1, [R2] .text:00018224 RSB R3, R1, R3 .text:00018228 SUB R3, R3, #4 .text:0001822C STR R3, [R1] .text:00018230 LDR R12, =freemem.94 .text:00018234 LDR R2, [R6,#0x2C] .text:00018238 LDR R3, [R12] .text:0001823C STR R3, [R2,R8,LSL#2] .text:00018240 LDR R0, [R11,#var_30] .text:00018244 LDR R3, [R12] .text:00018248 LDR R1, [R10] .text:0001824C RSB R3, R3, R0 .text:00018250 RSB R1, R3, R1 .text:00018254 AND R2, R1, #3 .text:00018258 ADD R0, R0, R2 .text:0001825C STR R0, [R12] .text:00018260 LDR R2, =0 .text:00018264 BIC R1, R1, #3 .text:00018268 STR R1, [R10] .text:0001826C CMP R2, #0 .text:00018270 BEQ loc_18280 .text:00018274 LDR R0, =lock.93 .text:00018278 MOV LR, PC .text:0001827C MOV PC, R2 .text:00018280 .text:00018280 loc_18280 ; CODE XREF: _nl_find_msg+39Cj .text:00018280 ; _nl_find_msg+590j .text:00018280 LDR R3, [R6,#0x2C] .text:00018284 LDR R2, [R3,R8,LSL#2] .text:00018288 ADD R3, R2, #4 .text:0001828C STR R3, [R11,#var_44] .text:00018290 LDR R2, [R2] .text:00018294 STR R2, [R11,#var_48] .text:00018298 .text:00018298 loc_18298 ; CODE XREF: _nl_find_msg+35Cj .text:00018298 ; _nl_find_msg+390j ... .text:00018298 LDR R1, [R11,#var_48] .text:0001829C SUB R0, R11, #-var_44 .text:000182A0 LDMIA R0, {R0,R12} .text:000182A4 STR R1, [R12] .text:000182A8 .text:000182A8 loc_182A8 ; CODE XREF: _nl_find_msg+330j .text:000182A8 B locret_182B8 .text:000182A8 ; --------------------------------------------------------------------------- .text:000182AC off_182AC DCD freemem.94 ; DATA XREF: _nl_find_msg:loc_18218r .text:000182AC ; _nl_find_msg+550r .text:000182B0 off_182B0 DCD 0 ; DATA XREF: _nl_find_msg+580r .text:000182B4 off_182B4 DCD lock.93 ; DATA XREF: _nl_find_msg+594r .text:000182B8 ; --------------------------------------------------------------------------- .text:000182B8 .text:000182B8 locret_182B8 ; CODE XREF: _nl_find_msg:loc_182A8j .text:000182B8 LDMDB R11, {R4-R11,SP,PC} .text:000182B8 ; End of function _nl_find_msg .text:000182B8 .text:000182BC .text:000182BC ; =============== S U B R O U T I N E ======================================= .text:000182BC .text:000182BC ; Attributes: bp-based frame .text:000182BC .text:000182BC plural_lookup ; CODE XREF: __dcigettext:loc_17CA8p .text:000182BC MOV R12, SP .text:000182C0 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:000182C4 SUB R11, R12, #4 .text:000182C8 LDR R4, [R0,#8] .text:000182CC MOV R5, R2 .text:000182D0 LDR R0, [R4,#0x30] .text:000182D4 MOV R6, R3 .text:000182D8 BL plural_eval .text:000182DC LDR R3, [R4,#0x34] .text:000182E0 MOV R1, R5 .text:000182E4 CMP R0, R3 .text:000182E8 MOVCC R4, R0 .text:000182EC MOVCS R4, #0 .text:000182F0 MOV R2, R4 .text:000182F4 SUB R4, R4, #1 .text:000182F8 CMP R2, #0 .text:000182FC BEQ loc_18330 .text:00018300 ADD R6, R1, R6 .text:00018304 .text:00018304 loc_18304 ; CODE XREF: plural_lookup+70j .text:00018304 MOV R0, R1 .text:00018308 MOV R1, #0 .text:0001830C BL rawmemchr .text:00018310 ADD R1, R0, #1 .text:00018314 CMP R1, R6 .text:00018318 MOVCS R0, R5 .text:0001831C LDMCSDB R11, {R4-R6,R11,SP,PC} .text:00018320 MOV R3, R4 .text:00018324 SUB R4, R4, #1 .text:00018328 CMP R3, #0 .text:0001832C BNE loc_18304 .text:00018330 .text:00018330 loc_18330 ; CODE XREF: plural_lookup+40j .text:00018330 MOV R0, R1 .text:00018334 LDMDB R11, {R4-R6,R11,SP,PC} .text:00018334 ; End of function plural_lookup .text:00018334 .text:00018338 .text:00018338 ; =============== S U B R O U T I N E ======================================= .text:00018338 .text:00018338 ; Attributes: bp-based frame .text:00018338 .text:00018338 plural_eval ; CODE XREF: plural_lookup+1Cp .text:00018338 ; plural_eval+64p ... .text:00018338 MOV R12, SP .text:0001833C STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:00018340 SUB R11, R12, #4 .text:00018344 MOV R5, R0 .text:00018348 MOV R6, R1 .text:0001834C .text:0001834C loc_1834C ; CODE XREF: plural_eval+1ECj .text:0001834C LDR R3, [R5] .text:00018350 CMP R3, #3 ; switch 4 cases .text:00018354 LDRLS PC, [PC,R3,LSL#2] ; switch jump .text:00018358 B loc_18528 ; jumptable 00018354 default case .text:00018358 ; --------------------------------------------------------------------------- .text:0001835C DCD loc_1836C ; jump table for switch statement .text:0001835C DCD loc_18394 .text:0001835C DCD loc_183B0 .text:0001835C DCD loc_18504 .text:0001836C ; --------------------------------------------------------------------------- .text:0001836C .text:0001836C loc_1836C ; CODE XREF: plural_eval+1Cj .text:0001836C ; DATA XREF: plural_eval+24o .text:0001836C LDR R3, [R5,#4] ; jumptable 00018354 case 0 .text:00018370 CMP R3, #0 .text:00018374 BEQ loc_18384 .text:00018378 CMP R3, #1 .text:0001837C BEQ loc_1838C .text:00018380 B loc_18528 ; jumptable 00018354 default case .text:00018384 ; --------------------------------------------------------------------------- .text:00018384 .text:00018384 loc_18384 ; CODE XREF: plural_eval+3Cj .text:00018384 MOV R0, R6 .text:00018388 LDMDB R11, {R4-R7,R11,SP,PC} .text:0001838C ; --------------------------------------------------------------------------- .text:0001838C .text:0001838C loc_1838C ; CODE XREF: plural_eval+44j .text:0001838C LDR R0, [R5,#8] .text:00018390 LDMDB R11, {R4-R7,R11,SP,PC} .text:00018394 ; --------------------------------------------------------------------------- .text:00018394 .text:00018394 loc_18394 ; CODE XREF: plural_eval+1Cj .text:00018394 ; DATA XREF: plural_eval+24o .text:00018394 LDR R0, [R5,#8] ; jumptable 00018354 case 1 .text:00018398 MOV R1, R6 .text:0001839C BL plural_eval .text:000183A0 CMP R0, #0 .text:000183A4 MOVNE R0, #0 .text:000183A8 MOVEQ R0, #1 .text:000183AC LDMDB R11, {R4-R7,R11,SP,PC} .text:000183B0 ; --------------------------------------------------------------------------- .text:000183B0 .text:000183B0 loc_183B0 ; CODE XREF: plural_eval+1Cj .text:000183B0 ; DATA XREF: plural_eval+24o .text:000183B0 LDR R0, [R5,#8] ; jumptable 00018354 case 2 .text:000183B4 MOV R1, R6 .text:000183B8 BL plural_eval .text:000183BC LDR R3, [R5,#4] .text:000183C0 MOV R4, R0 .text:000183C4 CMP R3, #0xF .text:000183C8 BNE loc_183F8 .text:000183CC MOV R7, #0 .text:000183D0 CMP R4, R7 .text:000183D4 BNE loc_183EC .text:000183D8 LDR R0, [R5,#0xC] .text:000183DC MOV R1, R6 .text:000183E0 BL plural_eval .text:000183E4 CMP R0, R7 .text:000183E8 BEQ loc_183F0 .text:000183EC .text:000183EC loc_183EC ; CODE XREF: plural_eval+9Cj .text:000183EC MOV R7, #1 .text:000183F0 .text:000183F0 loc_183F0 ; CODE XREF: plural_eval+B0j .text:000183F0 MOV R0, R7 .text:000183F4 LDMDB R11, {R4-R7,R11,SP,PC} .text:000183F8 ; --------------------------------------------------------------------------- .text:000183F8 .text:000183F8 loc_183F8 ; CODE XREF: plural_eval+90j .text:000183F8 CMP R3, #0xE .text:000183FC BNE loc_18424 .text:00018400 MOV R0, #0 .text:00018404 CMP R4, R0 .text:00018408 LDMEQDB R11, {R4-R7,R11,SP,PC} .text:0001840C LDR R0, [R5,#0xC] .text:00018410 MOV R1, R6 .text:00018414 BL plural_eval .text:00018418 SUBS R0, R0, #0 .text:0001841C MOVNE R0, #1 .text:00018420 LDMDB R11, {R4-R7,R11,SP,PC} .text:00018424 ; --------------------------------------------------------------------------- .text:00018424 .text:00018424 loc_18424 ; CODE XREF: plural_eval+C4j .text:00018424 LDR R0, [R5,#0xC] .text:00018428 MOV R1, R6 .text:0001842C BL plural_eval .text:00018430 LDR R3, [R5,#4] .text:00018434 MOV R1, R0 .text:00018438 SUB R3, R3, #3 .text:0001843C CMP R3, #0xA ; switch 11 cases .text:00018440 LDRLS PC, [PC,R3,LSL#2] ; switch jump .text:00018444 B loc_18500 ; jumptable 00018440 default case .text:00018444 ; --------------------------------------------------------------------------- .text:00018448 DCD loc_18474 ; jump table for switch statement .text:00018448 DCD loc_1847C .text:00018448 DCD loc_18488 .text:00018448 DCD loc_18494 .text:00018448 DCD loc_1849C .text:00018448 DCD loc_184A4 .text:00018448 DCD loc_184B4 .text:00018448 DCD loc_184C4 .text:00018448 DCD loc_184D4 .text:00018448 DCD loc_184E4 .text:00018448 DCD loc_184F4 .text:00018474 ; --------------------------------------------------------------------------- .text:00018474 .text:00018474 loc_18474 ; CODE XREF: plural_eval+108j .text:00018474 ; DATA XREF: plural_eval+110o .text:00018474 MUL R0, R1, R4 ; jumptable 00018440 case 0 .text:00018478 LDMDB R11, {R4-R7,R11,SP,PC} .text:0001847C ; --------------------------------------------------------------------------- .text:0001847C .text:0001847C loc_1847C ; CODE XREF: plural_eval+108j .text:0001847C ; DATA XREF: plural_eval+110o .text:0001847C MOV R0, R4 ; jumptable 00018440 case 1 .text:00018480 BL __udivsi3 .text:00018484 LDMDB R11, {R4-R7,R11,SP,PC} .text:00018488 ; --------------------------------------------------------------------------- .text:00018488 .text:00018488 loc_18488 ; CODE XREF: plural_eval+108j .text:00018488 ; DATA XREF: plural_eval+110o .text:00018488 MOV R0, R4 ; jumptable 00018440 case 2 .text:0001848C BL __umodsi3 .text:00018490 LDMDB R11, {R4-R7,R11,SP,PC} .text:00018494 ; --------------------------------------------------------------------------- .text:00018494 .text:00018494 loc_18494 ; CODE XREF: plural_eval+108j .text:00018494 ; DATA XREF: plural_eval+110o .text:00018494 ADD R0, R4, R1 ; jumptable 00018440 case 3 .text:00018498 LDMDB R11, {R4-R7,R11,SP,PC} .text:0001849C ; --------------------------------------------------------------------------- .text:0001849C .text:0001849C loc_1849C ; CODE XREF: plural_eval+108j .text:0001849C ; DATA XREF: plural_eval+110o .text:0001849C RSB R0, R1, R4 ; jumptable 00018440 case 4 .text:000184A0 LDMDB R11, {R4-R7,R11,SP,PC} .text:000184A4 ; --------------------------------------------------------------------------- .text:000184A4 .text:000184A4 loc_184A4 ; CODE XREF: plural_eval+108j .text:000184A4 ; DATA XREF: plural_eval+110o .text:000184A4 CMP R4, R1 ; jumptable 00018440 case 5 .text:000184A8 MOVCS R0, #0 .text:000184AC MOVCC R0, #1 .text:000184B0 LDMDB R11, {R4-R7,R11,SP,PC} .text:000184B4 ; --------------------------------------------------------------------------- .text:000184B4 .text:000184B4 loc_184B4 ; CODE XREF: plural_eval+108j .text:000184B4 ; DATA XREF: plural_eval+110o .text:000184B4 CMP R4, R1 ; jumptable 00018440 case 6 .text:000184B8 MOVLS R0, #0 .text:000184BC MOVHI R0, #1 .text:000184C0 LDMDB R11, {R4-R7,R11,SP,PC} .text:000184C4 ; --------------------------------------------------------------------------- .text:000184C4 .text:000184C4 loc_184C4 ; CODE XREF: plural_eval+108j .text:000184C4 ; DATA XREF: plural_eval+110o .text:000184C4 CMP R4, R1 ; jumptable 00018440 case 7 .text:000184C8 MOVHI R0, #0 .text:000184CC MOVLS R0, #1 .text:000184D0 LDMDB R11, {R4-R7,R11,SP,PC} .text:000184D4 ; --------------------------------------------------------------------------- .text:000184D4 .text:000184D4 loc_184D4 ; CODE XREF: plural_eval+108j .text:000184D4 ; DATA XREF: plural_eval+110o .text:000184D4 CMP R4, R1 ; jumptable 00018440 case 8 .text:000184D8 MOVCC R0, #0 .text:000184DC MOVCS R0, #1 .text:000184E0 LDMDB R11, {R4-R7,R11,SP,PC} .text:000184E4 ; --------------------------------------------------------------------------- .text:000184E4 .text:000184E4 loc_184E4 ; CODE XREF: plural_eval+108j .text:000184E4 ; DATA XREF: plural_eval+110o .text:000184E4 CMP R4, R1 ; jumptable 00018440 case 9 .text:000184E8 MOVNE R0, #0 .text:000184EC MOVEQ R0, #1 .text:000184F0 LDMDB R11, {R4-R7,R11,SP,PC} .text:000184F4 ; --------------------------------------------------------------------------- .text:000184F4 .text:000184F4 loc_184F4 ; CODE XREF: plural_eval+108j .text:000184F4 ; DATA XREF: plural_eval+110o .text:000184F4 SUBS R0, R4, R1 ; jumptable 00018440 case 10 .text:000184F8 MOVNE R0, #1 .text:000184FC LDMDB R11, {R4-R7,R11,SP,PC} .text:00018500 ; --------------------------------------------------------------------------- .text:00018500 .text:00018500 loc_18500 ; CODE XREF: plural_eval+10Cj .text:00018500 B loc_18528 ; jumptable 00018440 default case .text:00018504 ; --------------------------------------------------------------------------- .text:00018504 .text:00018504 loc_18504 ; CODE XREF: plural_eval+1Cj .text:00018504 ; DATA XREF: plural_eval+24o .text:00018504 LDR R0, [R5,#8] ; jumptable 00018354 case 3 .text:00018508 MOV R1, R6 .text:0001850C BL plural_eval .text:00018510 CMP R0, #0 .text:00018514 MOVEQ R0, #8 .text:00018518 MOVNE R0, #4 .text:0001851C ADD R3, R5, #8 .text:00018520 LDR R5, [R3,R0] .text:00018524 B loc_1834C .text:00018528 ; --------------------------------------------------------------------------- .text:00018528 .text:00018528 loc_18528 ; CODE XREF: plural_eval+20j .text:00018528 ; plural_eval+48j ... .text:00018528 MOV R0, #0 ; jumptable 00018354 default case .text:0001852C LDMDB R11, {R4-R7,R11,SP,PC} .text:0001852C ; End of function plural_eval .text:0001852C .text:00018530 .text:00018530 ; =============== S U B R O U T I N E ======================================= .text:00018530 .text:00018530 ; Attributes: bp-based frame .text:00018530 .text:00018530 category_to_name ; CODE XREF: __dcigettext+268p .text:00018530 MOV R12, SP .text:00018534 STMFD SP!, {R11,R12,LR,PC} .text:00018538 SUB R11, R12, #4 .text:0001853C CMP R0, #6 ; switch 7 cases .text:00018540 LDRLS PC, [PC,R0,LSL#2] ; switch jump .text:00018544 B loc_1859C ; jumptable 00018540 default case .text:00018544 ; --------------------------------------------------------------------------- .text:00018548 DCD loc_1856C ; jump table for switch statement .text:00018548 DCD loc_1857C .text:00018548 DCD loc_18584 .text:00018548 DCD loc_18564 .text:00018548 DCD loc_18574 .text:00018548 DCD loc_1858C .text:00018548 DCD loc_18594 .text:00018564 ; --------------------------------------------------------------------------- .text:00018564 .text:00018564 loc_18564 ; CODE XREF: category_to_name+10j .text:00018564 ; DATA XREF: category_to_name+18o .text:00018564 LDR R0, =aLc_collate ; jumptable 00018540 case 3 .text:00018568 LDMDB R11, {R11,SP,PC} .text:0001856C ; --------------------------------------------------------------------------- .text:0001856C .text:0001856C loc_1856C ; CODE XREF: category_to_name+10j .text:0001856C ; DATA XREF: category_to_name+18o .text:0001856C LDR R0, =aLc_ctype ; jumptable 00018540 case 0 .text:00018570 LDMDB R11, {R11,SP,PC} .text:00018574 ; --------------------------------------------------------------------------- .text:00018574 .text:00018574 loc_18574 ; CODE XREF: category_to_name+10j .text:00018574 ; DATA XREF: category_to_name+18o .text:00018574 LDR R0, =aLc_monetary ; jumptable 00018540 case 4 .text:00018578 LDMDB R11, {R11,SP,PC} .text:0001857C ; --------------------------------------------------------------------------- .text:0001857C .text:0001857C loc_1857C ; CODE XREF: category_to_name+10j .text:0001857C ; DATA XREF: category_to_name+18o .text:0001857C LDR R0, =aLc_numeric ; jumptable 00018540 case 1 .text:00018580 LDMDB R11, {R11,SP,PC} .text:00018584 ; --------------------------------------------------------------------------- .text:00018584 .text:00018584 loc_18584 ; CODE XREF: category_to_name+10j .text:00018584 ; DATA XREF: category_to_name+18o .text:00018584 LDR R0, =aLc_time ; jumptable 00018540 case 2 .text:00018588 LDMDB R11, {R11,SP,PC} .text:0001858C ; --------------------------------------------------------------------------- .text:0001858C .text:0001858C loc_1858C ; CODE XREF: category_to_name+10j .text:0001858C ; DATA XREF: category_to_name+18o .text:0001858C LDR R0, =aLc_messages ; jumptable 00018540 case 5 .text:00018590 LDMDB R11, {R11,SP,PC} .text:00018594 ; --------------------------------------------------------------------------- .text:00018594 .text:00018594 loc_18594 ; CODE XREF: category_to_name+10j .text:00018594 ; DATA XREF: category_to_name+18o .text:00018594 LDR R0, =aLc_all ; jumptable 00018540 case 6 .text:00018598 LDMDB R11, {R11,SP,PC} .text:0001859C ; --------------------------------------------------------------------------- .text:0001859C .text:0001859C loc_1859C ; CODE XREF: category_to_name+14j .text:0001859C LDR R0, =aLc_xxx ; jumptable 00018540 default case .text:000185A0 LDMDB R11, {R11,SP,PC} .text:000185A0 ; End of function category_to_name .text:000185A0 .text:000185A0 ; --------------------------------------------------------------------------- .text:000185A4 off_185A4 DCD aLc_collate ; DATA XREF: category_to_name:loc_18564r .text:000185A4 ; "LC_COLLATE" .text:000185A8 off_185A8 DCD aLc_ctype ; DATA XREF: category_to_name:loc_1856Cr .text:000185A8 ; "LC_CTYPE" .text:000185AC off_185AC DCD aLc_monetary ; DATA XREF: category_to_name:loc_18574r .text:000185AC ; "LC_MONETARY" .text:000185B0 off_185B0 DCD aLc_numeric ; DATA XREF: category_to_name:loc_1857Cr .text:000185B0 ; "LC_NUMERIC" .text:000185B4 off_185B4 DCD aLc_time ; DATA XREF: category_to_name:loc_18584r .text:000185B4 ; "LC_TIME" .text:000185B8 off_185B8 DCD aLc_messages ; DATA XREF: category_to_name:loc_1858Cr .text:000185B8 ; "LC_MESSAGES" .text:000185BC off_185BC DCD aLc_all ; DATA XREF: category_to_name:loc_18594r .text:000185BC ; "LC_ALL" .text:000185C0 off_185C0 DCD aLc_xxx ; DATA XREF: category_to_name:loc_1859Cr .text:000185C0 ; "LC_XXX" .text:000185C4 .text:000185C4 ; =============== S U B R O U T I N E ======================================= .text:000185C4 .text:000185C4 ; Attributes: bp-based frame .text:000185C4 .text:000185C4 guess_category_value ; CODE XREF: __dcigettext+278p .text:000185C4 MOV R12, SP .text:000185C8 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:000185CC MOV R5, R0 .text:000185D0 LDR R0, =aLanguage ; "LANGUAGE" .text:000185D4 SUB R11, R12, #4 .text:000185D8 BL getenv .text:000185DC SUBS R4, R0, #0 .text:000185E0 BEQ loc_185F4 .text:000185E4 LDRB R3, [R4] .text:000185E8 CMP R3, #0 .text:000185EC MOVNE R4, R0 .text:000185F0 MOVEQ R4, #0 .text:000185F4 .text:000185F4 loc_185F4 ; CODE XREF: guess_category_value+1Cj .text:000185F4 MOV R0, R5 .text:000185F8 MOV R1, #0 .text:000185FC BL setlocale .text:00018600 CMP R4, #0 .text:00018604 MOV R2, R0 .text:00018608 BEQ loc_18628 .text:0001860C LDRB R3, [R2] .text:00018610 SUB R1, R3, #0x43 .text:00018614 CMP R3, #0x43 .text:00018618 LDREQB R1, [R2,#1] .text:0001861C CMP R1, #0 .text:00018620 MOV R0, R4 .text:00018624 LDMNEDB R11, {R4,R5,R11,SP,PC} .text:00018628 .text:00018628 loc_18628 ; CODE XREF: guess_category_value+44j .text:00018628 MOV R0, R2 .text:0001862C LDMDB R11, {R4,R5,R11,SP,PC} .text:0001862C ; End of function guess_category_value .text:0001862C .text:0001862C ; --------------------------------------------------------------------------- .text:00018630 off_18630 DCD aLanguage ; DATA XREF: guess_category_value+Cr .text:00018630 ; "LANGUAGE" .text:00018634 .text:00018634 ; =============== S U B R O U T I N E ======================================= .text:00018634 .text:00018634 ; Attributes: bp-based frame .text:00018634 .text:00018634 free_mem .text:00018634 MOV R12, SP .text:00018638 STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:0001863C LDR R2, =_nl_domain_bindings .text:00018640 LDR R7, =root .text:00018644 LDR R3, [R2] .text:00018648 SUB R11, R12, #4 .text:0001864C LDR R8, =transmem_list .text:00018650 CMP R3, #0 .text:00018654 BEQ loc_18698 .text:00018658 MOV R5, R2 .text:0001865C LDR R6, =_nl_default_dirname ; "/usr/local/arm/2.95.3/arm-linux/share/l"... .text:00018660 .text:00018660 loc_18660 ; CODE XREF: free_mem+60j .text:00018660 LDR R4, [R5] .text:00018664 LDR R3, [R4] .text:00018668 STR R3, [R5] .text:0001866C LDR R0, [R4,#4] .text:00018670 CMP R0, R6 .text:00018674 BEQ loc_1867C .text:00018678 BL free .text:0001867C .text:0001867C loc_1867C ; CODE XREF: free_mem+40j .text:0001867C LDR R0, [R4,#0xC] .text:00018680 BL free .text:00018684 MOV R0, R4 .text:00018688 BL free .text:0001868C LDR R3, [R5] .text:00018690 CMP R3, #0 .text:00018694 BNE loc_18660 .text:00018698 .text:00018698 loc_18698 ; CODE XREF: free_mem+20j .text:00018698 LDR R3, =_nl_current_default_domain .text:0001869C LDR R2, =_nl_default_default_domain ; "messages" .text:000186A0 LDR R0, [R3] .text:000186A4 CMP R0, R2 .text:000186A8 BEQ loc_186B0 .text:000186AC BL free .text:000186B0 .text:000186B0 loc_186B0 ; CODE XREF: free_mem+74j .text:000186B0 LDR R0, [R7] .text:000186B4 LDR R1, =free .text:000186B8 BL tdestroy .text:000186BC LDR R2, [R8] .text:000186C0 MOV R3, #0 .text:000186C4 STR R3, [R7] .text:000186C8 CMP R2, R3 .text:000186CC LDMEQDB R11, {R4-R8,R11,SP,PC} .text:000186D0 MOV R4, R8 .text:000186D4 .text:000186D4 loc_186D4 ; CODE XREF: free_mem+B8j .text:000186D4 LDR R0, [R4] .text:000186D8 LDR R3, [R0] .text:000186DC STR R3, [R4] .text:000186E0 BL free .text:000186E4 LDR R3, [R4] .text:000186E8 CMP R3, #0 .text:000186EC BNE loc_186D4 .text:000186F0 LDMDB R11, {R4-R8,R11,SP,PC} .text:000186F0 ; End of function free_mem .text:000186F0 .text:000186F0 ; --------------------------------------------------------------------------- .text:000186F4 off_186F4 DCD _nl_domain_bindings ; DATA XREF: free_mem+8r .text:000186F8 off_186F8 DCD root ; DATA XREF: free_mem+Cr .text:000186FC off_186FC DCD transmem_list ; DATA XREF: free_mem+18r .text:00018700 off_18700 DCD _nl_default_dirname ; DATA XREF: free_mem+28r .text:00018700 ; "/usr/local/arm/2.95.3/arm-linux/share/l"... .text:00018704 off_18704 DCD _nl_current_default_domain .text:00018704 ; DATA XREF: free_mem:loc_18698r .text:00018708 off_18708 DCD _nl_default_default_domain ; DATA XREF: free_mem+68r .text:00018708 ; "messages" .text:0001870C off_1870C DCD free ; DATA XREF: free_mem+80r .text:00018710 .text:00018710 ; =============== S U B R O U T I N E ======================================= .text:00018710 .text:00018710 ; Attributes: bp-based frame .text:00018710 .text:00018710 EXPORT _nl_find_domain .text:00018710 _nl_find_domain ; CODE XREF: __dcigettext+430p .text:00018710 .text:00018710 var_74 = -0x74 .text:00018710 var_70 = -0x70 .text:00018710 var_6C = -0x6C .text:00018710 var_68 = -0x68 .text:00018710 var_64 = -0x64 .text:00018710 var_60 = -0x60 .text:00018710 var_5C = -0x5C .text:00018710 var_58 = -0x58 .text:00018710 var_54 = -0x54 .text:00018710 var_50 = -0x50 .text:00018710 var_4C = -0x4C .text:00018710 var_48 = -0x48 .text:00018710 var_44 = -0x44 .text:00018710 var_40 = -0x40 .text:00018710 var_3C = -0x3C .text:00018710 var_38 = -0x38 .text:00018710 var_34 = -0x34 .text:00018710 var_30 = -0x30 .text:00018710 var_2C = -0x2C .text:00018710 .text:00018710 MOV R12, SP .text:00018714 STMFD SP!, {R4-R12,LR,PC} .text:00018718 SUB R11, R12, #4 .text:0001871C MOV R8, R1 .text:00018720 MOV R5, R0 .text:00018724 MOV R9, R2 .text:00018728 MOV R10, R3 .text:0001872C SUB SP, SP, #0x4C .text:00018730 BL strlen .text:00018734 STR R8, [SP,#0x74+var_74] .text:00018738 MOV R3, #0 .text:0001873C STR R3, [SP,#0x74+var_70] .text:00018740 STR R3, [SP,#0x74+var_6C] .text:00018744 STR R3, [SP,#0x74+var_68] .text:00018748 STR R3, [SP,#0x74+var_64] .text:0001874C STR R3, [SP,#0x74+var_60] .text:00018750 STR R3, [SP,#0x74+var_5C] .text:00018754 STR R3, [SP,#0x74+var_58] .text:00018758 STR R9, [SP,#0x74+var_54] .text:0001875C STR R3, [SP,#0x74+var_50] .text:00018760 MOV R1, R5 .text:00018764 LDR R4, =_nl_loaded_domains .text:00018768 ADD R2, R0, #1 .text:0001876C MOV R0, R4 .text:00018770 BL _nl_make_l10nflist .text:00018774 SUBS R6, R0, #0 .text:00018778 BEQ loc_187F4 .text:0001877C LDR R3, [R6,#4] .text:00018780 CMP R3, #0 .text:00018784 BNE loc_18794 .text:00018788 MOV R0, R6 .text:0001878C MOV R1, R10 .text:00018790 BL _nl_load_domain .text:00018794 .text:00018794 loc_18794 ; CODE XREF: _nl_find_domain+74j .text:00018794 LDR R3, [R6,#8] .text:00018798 CMP R3, #0 .text:0001879C BNE loc_18960 .text:000187A0 MOV R7, R3 .text:000187A4 ADD R5, R6, #0x10 .text:000187A8 B loc_187B0 .text:000187AC ; --------------------------------------------------------------------------- .text:000187AC .text:000187AC loc_187AC ; CODE XREF: _nl_find_domain+D0j .text:000187AC ADD R7, R7, #1 .text:000187B0 .text:000187B0 loc_187B0 ; CODE XREF: _nl_find_domain+98j .text:000187B0 MOV R4, R7,LSL#2 .text:000187B4 LDR R0, [R5,R4] .text:000187B8 CMP R0, #0 .text:000187BC BEQ loc_187E4 .text:000187C0 LDR R3, [R0,#4] .text:000187C4 CMP R3, #0 .text:000187C8 BNE loc_187D4 .text:000187CC MOV R1, R10 .text:000187D0 BL _nl_load_domain .text:000187D4 .text:000187D4 loc_187D4 ; CODE XREF: _nl_find_domain+B8j .text:000187D4 LDR R3, [R5,R4] .text:000187D8 LDR R2, [R3,#8] .text:000187DC CMP R2, #0 .text:000187E0 BEQ loc_187AC .text:000187E4 .text:000187E4 loc_187E4 ; CODE XREF: _nl_find_domain+ACj .text:000187E4 CMP R7, #0 .text:000187E8 MOVGE R0, R6 .text:000187EC MOVLT R0, #0 .text:000187F0 B locret_18964 .text:000187F4 ; --------------------------------------------------------------------------- .text:000187F4 .text:000187F4 loc_187F4 ; CODE XREF: _nl_find_domain+68j .text:000187F4 MOV R0, R8 .text:000187F8 BL _nl_expand_alias .text:000187FC CMP R0, #0 .text:00018800 STR R0, [R11,#var_4C] .text:00018804 BEQ loc_18814 .text:00018808 BL strdup .text:0001880C SUBS R8, R0, #0 .text:00018810 BEQ loc_188C4 .text:00018814 .text:00018814 loc_18814 ; CODE XREF: _nl_find_domain+F4j .text:00018814 SUB R3, R11, #-var_38 .text:00018818 STR R3, [SP,#0x74+var_74] .text:0001881C SUB R2, R11, #-var_3C .text:00018820 STR R2, [SP,#0x74+var_70] .text:00018824 SUB R3, R11, #-var_40 .text:00018828 STR R3, [SP,#0x74+var_6C] .text:0001882C SUB R2, R11, #-var_44 .text:00018830 STR R2, [SP,#0x74+var_68] .text:00018834 SUB R3, R11, #-var_48 .text:00018838 STR R3, [SP,#0x74+var_64] .text:0001883C MOV R0, R8 .text:00018840 SUB R1, R11, #-var_2C .text:00018844 SUB R2, R11, #-var_30 .text:00018848 SUB R3, R11, #-var_34 .text:0001884C BL _nl_explode_name .text:00018850 MOV R7, R0 .text:00018854 MOV R0, R5 .text:00018858 BL strlen .text:0001885C STR R9, [SP,#0x74+var_54] .text:00018860 MOV R3, #1 .text:00018864 STR R3, [SP,#0x74+var_50] .text:00018868 LDR R2, [R11,#var_2C] .text:0001886C STR R2, [SP,#0x74+var_74] .text:00018870 LDR R3, [R11,#var_34] .text:00018874 STR R3, [SP,#0x74+var_70] .text:00018878 LDR R2, [R11,#var_38] .text:0001887C STR R2, [SP,#0x74+var_6C] .text:00018880 LDR R3, [R11,#var_3C] .text:00018884 STR R3, [SP,#0x74+var_68] .text:00018888 LDR R2, [R11,#var_30] .text:0001888C STR R2, [SP,#0x74+var_64] .text:00018890 LDR R3, [R11,#var_40] .text:00018894 STR R3, [SP,#0x74+var_60] .text:00018898 LDR R2, [R11,#var_44] .text:0001889C STR R2, [SP,#0x74+var_5C] .text:000188A0 LDR R3, [R11,#var_48] .text:000188A4 STR R3, [SP,#0x74+var_58] .text:000188A8 MOV R1, R5 .text:000188AC ADD R2, R0, #1 .text:000188B0 MOV R0, R4 .text:000188B4 MOV R3, R7 .text:000188B8 BL _nl_make_l10nflist .text:000188BC SUBS R6, R0, #0 .text:000188C0 BNE loc_188CC .text:000188C4 .text:000188C4 loc_188C4 ; CODE XREF: _nl_find_domain+100j .text:000188C4 MOV R0, #0 .text:000188C8 B locret_18964 .text:000188CC ; --------------------------------------------------------------------------- .text:000188CC .text:000188CC loc_188CC ; CODE XREF: _nl_find_domain+1B0j .text:000188CC LDR R3, [R6,#4] .text:000188D0 CMP R3, #0 .text:000188D4 BNE loc_188E4 .text:000188D8 MOV R0, R6 .text:000188DC MOV R1, R10 .text:000188E0 BL _nl_load_domain .text:000188E4 .text:000188E4 loc_188E4 ; CODE XREF: _nl_find_domain+1C4j .text:000188E4 LDR R3, [R6,#8] .text:000188E8 AND R9, R7, #8 .text:000188EC CMP R3, #0 .text:000188F0 BNE loc_1893C .text:000188F4 MOV R7, R3 .text:000188F8 ADD R5, R6, #0x10 .text:000188FC B loc_18908 .text:000188FC ; --------------------------------------------------------------------------- .text:00018900 off_18900 DCD _nl_loaded_domains ; DATA XREF: _nl_find_domain+54r .text:00018904 ; --------------------------------------------------------------------------- .text:00018904 .text:00018904 loc_18904 ; CODE XREF: _nl_find_domain+228j .text:00018904 ADD R7, R7, #1 .text:00018908 .text:00018908 loc_18908 ; CODE XREF: _nl_find_domain+1ECj .text:00018908 MOV R4, R7,LSL#2 .text:0001890C LDR R0, [R5,R4] .text:00018910 CMP R0, #0 .text:00018914 BEQ loc_1893C .text:00018918 LDR R3, [R0,#4] .text:0001891C CMP R3, #0 .text:00018920 BNE loc_1892C .text:00018924 MOV R1, R10 .text:00018928 BL _nl_load_domain .text:0001892C .text:0001892C loc_1892C ; CODE XREF: _nl_find_domain+210j .text:0001892C LDR R3, [R5,R4] .text:00018930 LDR R2, [R3,#8] .text:00018934 CMP R2, #0 .text:00018938 BEQ loc_18904 .text:0001893C .text:0001893C loc_1893C ; CODE XREF: _nl_find_domain+1E0j .text:0001893C ; _nl_find_domain+204j .text:0001893C LDR R3, [R11,#var_4C] .text:00018940 CMP R3, #0 .text:00018944 BEQ loc_18950 .text:00018948 MOV R0, R8 .text:0001894C BL free .text:00018950 .text:00018950 loc_18950 ; CODE XREF: _nl_find_domain+234j .text:00018950 CMP R9, #0 .text:00018954 BEQ loc_18960 .text:00018958 LDR R0, [R11,#var_3C] .text:0001895C BL free .text:00018960 .text:00018960 loc_18960 ; CODE XREF: _nl_find_domain+8Cj .text:00018960 ; _nl_find_domain+244j .text:00018960 MOV R0, R6 .text:00018964 .text:00018964 locret_18964 ; CODE XREF: _nl_find_domain+E0j .text:00018964 ; _nl_find_domain+1B8j .text:00018964 LDMDB R11, {R4-R11,SP,PC} .text:00018964 ; End of function _nl_find_domain .text:00018964 .text:00018968 .text:00018968 ; =============== S U B R O U T I N E ======================================= .text:00018968 .text:00018968 ; Attributes: bp-based frame .text:00018968 .text:00018968 free_mem_0 .text:00018968 MOV R12, SP .text:0001896C STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:00018970 LDR R3, =_nl_loaded_domains .text:00018974 LDR R4, [R3] .text:00018978 SUB R11, R12, #4 .text:0001897C CMP R4, #0 .text:00018980 LDMEQDB R11, {R4,R5,R11,SP,PC} .text:00018984 .text:00018984 loc_18984 ; CODE XREF: free_mem_0+48j .text:00018984 LDR R0, [R4,#8] .text:00018988 MOV R5, R4 .text:0001898C CMP R0, #0 .text:00018990 BEQ loc_18998 .text:00018994 BL _nl_unload_domain .text:00018998 .text:00018998 loc_18998 ; CODE XREF: free_mem_0+28j .text:00018998 LDR R0, [R5] .text:0001899C LDR R4, [R4,#0xC] .text:000189A0 BL free .text:000189A4 MOV R0, R5 .text:000189A8 BL free .text:000189AC CMP R4, #0 .text:000189B0 BNE loc_18984 .text:000189B4 LDMDB R11, {R4,R5,R11,SP,PC} .text:000189B4 ; End of function free_mem_0 .text:000189B4 .text:000189B4 ; --------------------------------------------------------------------------- .text:000189B8 off_189B8 DCD _nl_loaded_domains ; DATA XREF: free_mem_0+8r .text:000189BC .text:000189BC ; =============== S U B R O U T I N E ======================================= .text:000189BC .text:000189BC ; Attributes: bp-based frame .text:000189BC .text:000189BC EXPORT _nl_init_domain_conv .text:000189BC _nl_init_domain_conv ; CODE XREF: _nl_find_msg+350p .text:000189BC ; _nl_load_domain+340p .text:000189BC .text:000189BC var_30 = -0x30 .text:000189BC var_2C = -0x2C .text:000189BC .text:000189BC MOV R12, SP .text:000189C0 STMFD SP!, {R4-R12,LR,PC} .text:000189C4 SUB R11, R12, #4 .text:000189C8 MOV R3, #0 .text:000189CC MOV R7, R1 .text:000189D0 SUBS R4, R2, #0 .text:000189D4 SUB SP, SP, #8 .text:000189D8 LDRNE R3, [R4,#8] .text:000189DC STR R3, [R7,#0x24] .text:000189E0 MOV R3, 0xFFFFFFFF .text:000189E4 STR R3, [R7,#0x28] .text:000189E8 MOV R5, #0 .text:000189EC STR R5, [R7,#0x2C] .text:000189F0 MOV R1, R4 .text:000189F4 LDR R2, =dword_5655C .text:000189F8 SUB R3, R11, #-var_2C .text:000189FC BL _nl_find_msg .text:00018A00 SUBS R9, R0, #0 .text:00018A04 BEQ loc_18C54 .text:00018A08 LDR R1, =aCharset ; "charset=" .text:00018A0C MOV R0, R9 .text:00018A10 BL strstr .text:00018A14 SUBS R1, R0, #0 .text:00018A18 BEQ loc_18C54 .text:00018A1C ADD R1, R1, #8 .text:00018A20 MOV R2, R5 .text:00018A24 LDRB R3, [R1,R2] .text:00018A28 LDR R10, =aTranslit ; "TRANSLIT" .text:00018A2C ADD R0, R7, #0x28 .text:00018A30 STR R0, [R11,#var_30] .text:00018A34 AND R3, R3, #0xFF .text:00018A38 CMP R3, R5 .text:00018A3C B loc_18A4C .text:00018A40 ; --------------------------------------------------------------------------- .text:00018A40 .text:00018A40 loc_18A40 ; CODE XREF: _nl_init_domain_conv+A8j .text:00018A40 ADD R2, R2, #1 .text:00018A44 LDRB R3, [R1,R2] .text:00018A48 CMP R3, #0 .text:00018A4C .text:00018A4C loc_18A4C ; CODE XREF: _nl_init_domain_conv+80j .text:00018A4C BEQ loc_18A68 .text:00018A50 CMP R3, #0x20 .text:00018A54 BEQ loc_18A68 .text:00018A58 CMP R3, #9 .text:00018A5C BEQ loc_18A68 .text:00018A60 CMP R3, #0xA .text:00018A64 BNE loc_18A40 .text:00018A68 .text:00018A68 loc_18A68 ; CODE XREF: _nl_init_domain_conv:loc_18A4Cj .text:00018A68 ; _nl_init_domain_conv+98j ... .text:00018A68 ADD R3, R2, #4 .text:00018A6C BIC R3, R3, #3 .text:00018A70 RSB SP, R3, SP .text:00018A74 MOV R0, SP .text:00018A78 MOV R5, SP .text:00018A7C BL mempcpy .text:00018A80 CMP R4, #0 .text:00018A84 MOV R3, #0 .text:00018A88 STRB R3, [R0] .text:00018A8C BEQ loc_18AB0 .text:00018A90 LDR R0, [R4,#0xC] .text:00018A94 CMP R0, R3 .text:00018A98 BEQ loc_18AB0 .text:00018A9C MOV R1, R0 .text:00018AA0 B loc_18ADC .text:00018AA0 ; --------------------------------------------------------------------------- .text:00018AA4 off_18AA4 DCD dword_5655C ; DATA XREF: _nl_init_domain_conv+38r .text:00018AA8 off_18AA8 DCD aCharset ; DATA XREF: _nl_init_domain_conv+4Cr .text:00018AA8 ; "charset=" .text:00018AAC off_18AAC DCD aTranslit ; DATA XREF: _nl_init_domain_conv+6Cr .text:00018AAC ; "TRANSLIT" .text:00018AB0 ; --------------------------------------------------------------------------- .text:00018AB0 .text:00018AB0 loc_18AB0 ; CODE XREF: _nl_init_domain_conv+D0j .text:00018AB0 ; _nl_init_domain_conv+DCj .text:00018AB0 LDR R0, =aOutput_charset ; "OUTPUT_CHARSET" .text:00018AB4 BL getenv .text:00018AB8 SUBS R1, R0, #0 .text:00018ABC BEQ loc_18ACC .text:00018AC0 LDRB R3, [R1] .text:00018AC4 CMP R3, #0 .text:00018AC8 BNE loc_18ADC .text:00018ACC .text:00018ACC loc_18ACC ; CODE XREF: _nl_init_domain_conv+100j .text:00018ACC LDR R3, =_nl_current .text:00018AD0 LDR R2, [R3] .text:00018AD4 LDR R1, [R2] .text:00018AD8 LDR R1, [R1,#0x58] .text:00018ADC .text:00018ADC loc_18ADC ; CODE XREF: _nl_init_domain_conv+E4j .text:00018ADC ; _nl_init_domain_conv+10Cj .text:00018ADC MOV R12, R1 .text:00018AE0 MOV LR, #0 .text:00018AE4 CMP R10, LR .text:00018AE8 LDRB R3, [R1] .text:00018AEC MOVNE R6, #8 .text:00018AF0 MOVEQ R6, LR .text:00018AF4 CMP R3, LR .text:00018AF8 MOV R4, R3 .text:00018AFC BEQ loc_18B18 .text:00018B00 .text:00018B00 loc_18B00 ; CODE XREF: _nl_init_domain_conv+158j .text:00018B00 LDRB R2, [R12] .text:00018B04 LDRB R3, [R12,#1]! .text:00018B08 CMP R2, #0x2F .text:00018B0C ADDEQ LR, LR, #1 .text:00018B10 CMP R3, #0 .text:00018B14 BNE loc_18B00 .text:00018B18 .text:00018B18 loc_18B18 ; CODE XREF: _nl_init_domain_conv+140j .text:00018B18 RSB R3, R1, R12 .text:00018B1C CMP R6, #0 .text:00018B20 ADDNE R3, R3, #0xE .text:00018B24 ADDEQ R3, R3, #6 .text:00018B28 BIC R3, R3, #3 .text:00018B2C RSB SP, R3, SP .text:00018B30 MOV R0, SP .text:00018B34 MOV R12, R1 .text:00018B38 CMP R4, #0 .text:00018B3C MOV R8, SP .text:00018B40 BEQ loc_18B64 .text:00018B44 LDR R4, =__ctype_toupper .text:00018B48 .text:00018B48 loc_18B48 ; CODE XREF: _nl_init_domain_conv+1A4j .text:00018B48 LDRB R1, [R12] .text:00018B4C LDR R3, [R4] .text:00018B50 LDRB R2, [R3,R1,LSL#2] .text:00018B54 STRB R2, [R0],#1 .text:00018B58 LDRB R3, [R12,#1]! .text:00018B5C CMP R3, #0 .text:00018B60 BNE loc_18B48 .text:00018B64 .text:00018B64 loc_18B64 ; CODE XREF: _nl_init_domain_conv+184j .text:00018B64 CMP LR, #1 .text:00018B68 BHI loc_18B94 .text:00018B6C CMP LR, #0 .text:00018B70 MOV R3, #0x2F .text:00018B74 STRB R3, [R0],#1 .text:00018B78 BNE loc_18B94 .text:00018B7C CMP R10, #0 .text:00018B80 STRB R3, [R0],#1 .text:00018B84 BEQ loc_18B94 .text:00018B88 MOV R1, R10 .text:00018B8C MOV R2, R6 .text:00018B90 BL mempcpy .text:00018B94 .text:00018B94 loc_18B94 ; CODE XREF: _nl_init_domain_conv+1ACj .text:00018B94 ; _nl_init_domain_conv+1BCj ... .text:00018B94 MOV R2, #0 .text:00018B98 STRB R2, [R0] .text:00018B9C MOV R0, R5 .text:00018BA0 MOV R1, R2 .text:00018BA4 LDRB R3, [R5] .text:00018BA8 MOV R12, R1 .text:00018BAC CMP R3, R2 .text:00018BB0 BEQ loc_18BCC .text:00018BB4 .text:00018BB4 loc_18BB4 ; CODE XREF: _nl_init_domain_conv+20Cj .text:00018BB4 LDRB R2, [R0] .text:00018BB8 LDRB R3, [R0,#1]! .text:00018BBC CMP R2, #0x2F .text:00018BC0 ADDEQ R1, R1, #1 .text:00018BC4 CMP R3, #0 .text:00018BC8 BNE loc_18BB4 .text:00018BCC .text:00018BCC loc_18BCC ; CODE XREF: _nl_init_domain_conv+1F4j .text:00018BCC RSB R3, R5, R0 .text:00018BD0 ADD R3, R3, #6 .text:00018BD4 BIC R3, R3, #3 .text:00018BD8 RSB SP, R3, SP .text:00018BDC MOV R0, R5 .text:00018BE0 MOV R12, SP .text:00018BE4 LDRB R3, [R0] .text:00018BE8 MOV R4, SP .text:00018BEC CMP R3, #0 .text:00018BF0 BEQ loc_18C14 .text:00018BF4 LDR R3, =__ctype_toupper .text:00018BF8 LDR LR, [R3] .text:00018BFC .text:00018BFC loc_18BFC ; CODE XREF: _nl_init_domain_conv+254j .text:00018BFC LDRB R3, [R0] .text:00018C00 LDRB R2, [LR,R3,LSL#2] .text:00018C04 STRB R2, [R12],#1 .text:00018C08 LDRB R3, [R0,#1]! .text:00018C0C CMP R3, #0 .text:00018C10 BNE loc_18BFC .text:00018C14 .text:00018C14 loc_18C14 ; CODE XREF: _nl_init_domain_conv+234j .text:00018C14 CMP R1, #1 .text:00018C18 BHI loc_18C2C .text:00018C1C CMP R1, #0 .text:00018C20 MOV R3, #0x2F .text:00018C24 STRB R3, [R12],#1 .text:00018C28 STREQB R3, [R12],#1 .text:00018C2C .text:00018C2C loc_18C2C ; CODE XREF: _nl_init_domain_conv+25Cj .text:00018C2C MOV R3, #0 .text:00018C30 STRB R3, [R12] .text:00018C34 MOV R0, R8 .text:00018C38 MOV R1, R4 .text:00018C3C LDR R2, [R11,#var_30] .text:00018C40 ADD R3, R3, #1 .text:00018C44 BL __gconv_open .text:00018C48 CMP R0, #0 .text:00018C4C MOVNE R3, 0xFFFFFFFF .text:00018C50 STRNE R3, [R7,#0x28] .text:00018C54 .text:00018C54 loc_18C54 ; CODE XREF: _nl_init_domain_conv+48j .text:00018C54 ; _nl_init_domain_conv+5Cj .text:00018C54 MOV R0, R9 .text:00018C58 B locret_18C68 .text:00018C58 ; --------------------------------------------------------------------------- .text:00018C5C off_18C5C DCD aOutput_charset ; DATA XREF: _nl_init_domain_conv:loc_18AB0r .text:00018C5C ; "OUTPUT_CHARSET" .text:00018C60 off_18C60 DCD _nl_current ; DATA XREF: _nl_init_domain_conv:loc_18ACCr .text:00018C64 off_18C64 DCD __ctype_toupper ; DATA XREF: _nl_init_domain_conv+188r .text:00018C64 ; _nl_init_domain_conv+238r .text:00018C68 ; --------------------------------------------------------------------------- .text:00018C68 .text:00018C68 locret_18C68 ; CODE XREF: _nl_init_domain_conv+29Cj .text:00018C68 LDMDB R11, {R4-R11,SP,PC} .text:00018C68 ; End of function _nl_init_domain_conv .text:00018C68 .text:00018C6C .text:00018C6C ; =============== S U B R O U T I N E ======================================= .text:00018C6C .text:00018C6C ; Attributes: bp-based frame .text:00018C6C .text:00018C6C EXPORT _nl_free_domain_conv .text:00018C6C _nl_free_domain_conv ; CODE XREF: _nl_find_msg+340p .text:00018C6C ; _nl_unload_domain+28p .text:00018C6C MOV R12, SP .text:00018C70 STMFD SP!, {R4,R11,R12,LR,PC} .text:00018C74 MOV R4, R0 .text:00018C78 LDR R0, [R4,#0x2C] .text:00018C7C SUB R11, R12, #4 .text:00018C80 CMP R0, #0 .text:00018C84 CMNNE R0, #1 .text:00018C88 BEQ loc_18C90 .text:00018C8C BL free .text:00018C90 .text:00018C90 loc_18C90 ; CODE XREF: _nl_free_domain_conv+1Cj .text:00018C90 LDR R0, [R4,#0x28] .text:00018C94 CMN R0, #1 .text:00018C98 LDMEQDB R11, {R4,R11,SP,PC} .text:00018C9C BL __gconv_close .text:00018CA0 LDMDB R11, {R4,R11,SP,PC} .text:00018CA0 ; End of function _nl_free_domain_conv .text:00018CA0 .text:00018CA4 .text:00018CA4 ; =============== S U B R O U T I N E ======================================= .text:00018CA4 .text:00018CA4 ; Attributes: bp-based frame .text:00018CA4 .text:00018CA4 EXPORT _nl_load_domain .text:00018CA4 _nl_load_domain ; CODE XREF: _nl_find_msg+30p .text:00018CA4 ; _nl_find_domain+80p ... .text:00018CA4 .text:00018CA4 var_9C = -0x9C .text:00018CA4 var_98 = -0x98 .text:00018CA4 var_94 = -0x94 .text:00018CA4 var_90 = -0x90 .text:00018CA4 var_8C = -0x8C .text:00018CA4 var_88 = -0x88 .text:00018CA4 var_28 = -0x28 .text:00018CA4 .text:00018CA4 MOV R12, SP .text:00018CA8 STMFD SP!, {R4-R12,LR,PC} .text:00018CAC SUB R11, R12, #4 .text:00018CB0 SUB SP, SP, #0x7C .text:00018CB4 STR R0, [R11,#var_98] .text:00018CB8 MOV R4, #1 .text:00018CBC STR R4, [R0,#4] .text:00018CC0 LDR R2, [R11,#var_98] .text:00018CC4 MOV R9, #0 .text:00018CC8 STR R9, [R2,#8] .text:00018CCC LDR R0, [R2] .text:00018CD0 STR R1, [R11,#var_9C] .text:00018CD4 CMP R0, R9 .text:00018CD8 BEQ locret_190E8 .text:00018CDC MOV R1, R9 .text:00018CE0 BL open .text:00018CE4 MOV R8, R0 .text:00018CE8 CMN R8, #1 .text:00018CEC BEQ locret_190E8 .text:00018CF0 MOV R0, #3 .text:00018CF4 MOV R1, R8 .text:00018CF8 SUB R2, R11, #-var_88 .text:00018CFC BL __fxstat64 .text:00018D00 CMP R0, R9 .text:00018D04 BNE loc_18DC0 .text:00018D08 MOV R3, 0xFFFFFFCC .text:00018D0C SUB R2, R11, #-var_28 .text:00018D10 LDR R10, [R2,R3] .text:00018D14 ADD R3, R3, R11 .text:00018D18 SUB R3, R3, #0x28 .text:00018D1C MOV R6, R10 .text:00018D20 MOV R7, #0 .text:00018D24 CMP R6, R10 .text:00018D28 BNE loc_18DC0 .text:00018D2C LDR R3, [R3,#4] .text:00018D30 CMP R7, R3 .text:00018D34 BNE loc_18DC0 .text:00018D38 CMP R10, #0x1B .text:00018D3C BLS loc_18DC0 .text:00018D40 STMEA SP, {R8,R9} .text:00018D44 MOV R0, R9 .text:00018D48 MOV R1, R6 .text:00018D4C MOV R2, R4 .text:00018D50 MOV R3, #2 .text:00018D54 BL mmap .text:00018D58 MOV R5, R0 .text:00018D5C CMN R5, #1 .text:00018D60 BEQ loc_18D70 .text:00018D64 MOV R0, R8 .text:00018D68 MOV R9, R4 .text:00018D6C BL close .text:00018D70 .text:00018D70 loc_18D70 ; CODE XREF: _nl_load_domain+BCj .text:00018D70 CMN R5, #1 .text:00018D74 BNE loc_18DE4 .text:00018D78 MOV R0, R6 .text:00018D7C BL malloc .text:00018D80 SUBS R5, R0, #0 .text:00018D84 BEQ locret_190E8 .text:00018D88 MOV R4, R6 .text:00018D8C MOV R6, R5 .text:00018D90 .text:00018D90 loc_18D90 ; CODE XREF: _nl_load_domain+134j .text:00018D90 MOV R0, R8 .text:00018D94 MOV R1, R6 .text:00018D98 MOV R2, R4 .text:00018D9C BL read .text:00018DA0 CMP R0, #0 .text:00018DA4 BGT loc_18DCC .text:00018DA8 CMN R0, #1 .text:00018DAC BNE loc_18DC0 .text:00018DB0 BL __errno_location .text:00018DB4 LDR R3, [R0] .text:00018DB8 CMP R3, #4 .text:00018DBC BEQ loc_18DD4 .text:00018DC0 .text:00018DC0 loc_18DC0 ; CODE XREF: _nl_load_domain+60j .text:00018DC0 ; _nl_load_domain+84j ... .text:00018DC0 MOV R0, R8 .text:00018DC4 BL close .text:00018DC8 B locret_190E8 .text:00018DCC ; --------------------------------------------------------------------------- .text:00018DCC .text:00018DCC loc_18DCC ; CODE XREF: _nl_load_domain+100j .text:00018DCC ADD R6, R6, R0 .text:00018DD0 RSB R4, R0, R4 .text:00018DD4 .text:00018DD4 loc_18DD4 ; CODE XREF: _nl_load_domain+118j .text:00018DD4 CMP R4, #0 .text:00018DD8 BNE loc_18D90 .text:00018DDC MOV R0, R8 .text:00018DE0 BL close .text:00018DE4 .text:00018DE4 loc_18DE4 ; CODE XREF: _nl_load_domain+D0j .text:00018DE4 LDR R2, [R5] .text:00018DE8 LDR R4, =0x950412DE .text:00018DEC LDR R3, =0xDE120495 .text:00018DF0 CMP R2, R4 .text:00018DF4 CMPNE R2, R3 .text:00018DF8 BEQ loc_18E20 .text:00018DFC CMP R9, #0 .text:00018E00 BEQ loc_18E14 .text:00018E04 MOV R0, R5 .text:00018E08 MOV R1, R10 .text:00018E0C BL munmap .text:00018E10 B locret_190E8 .text:00018E14 ; --------------------------------------------------------------------------- .text:00018E14 .text:00018E14 loc_18E14 ; CODE XREF: _nl_load_domain+15Cj .text:00018E14 MOV R0, R5 .text:00018E18 BL free .text:00018E1C B locret_190E8 .text:00018E20 ; --------------------------------------------------------------------------- .text:00018E20 .text:00018E20 loc_18E20 ; CODE XREF: _nl_load_domain+154j .text:00018E20 MOV R0, #0x38 .text:00018E24 BL malloc .text:00018E28 SUBS R6, R0, #0 .text:00018E2C BEQ locret_190E8 .text:00018E30 LDR R3, [R11,#var_98] .text:00018E34 STR R6, [R3,#8] .text:00018E38 STMIA R6, {R5,R9,R10} .text:00018E3C LDR R3, [R5] .text:00018E40 SUBS R3, R3, R4 .text:00018E44 MOVNE R3, #1 .text:00018E48 CMP R3, #0 .text:00018E4C STR R3, [R6,#0xC] .text:00018E50 BEQ loc_18E74 .text:00018E54 LDR R3, [R5,#4] .text:00018E58 AND R2, R3, #0xFF0000 .text:00018E5C MOV R2, R2,LSR#8 .text:00018E60 ORR R2, R2, R3,LSR#24 .text:00018E64 AND R1, R3, #0xFF00 .text:00018E68 ORR R2, R2, R1,LSL#8 .text:00018E6C ORR R3, R2, R3,LSL#24 .text:00018E70 B loc_18E78 .text:00018E74 ; --------------------------------------------------------------------------- .text:00018E74 .text:00018E74 loc_18E74 ; CODE XREF: _nl_load_domain+1ACj .text:00018E74 LDR R3, [R5,#4] .text:00018E78 .text:00018E78 loc_18E78 ; CODE XREF: _nl_load_domain+1CCj .text:00018E78 CMP R3, #0 .text:00018E7C BNE loc_18FA0 .text:00018E80 LDR R3, [R6,#0xC] .text:00018E84 CMP R3, #0 .text:00018E88 BEQ loc_18EAC .text:00018E8C LDR R3, [R5,#8] .text:00018E90 AND R2, R3, #0xFF0000 .text:00018E94 MOV R2, R2,LSR#8 .text:00018E98 ORR R2, R2, R3,LSR#24 .text:00018E9C AND R1, R3, #0xFF00 .text:00018EA0 ORR R2, R2, R1,LSL#8 .text:00018EA4 ORR R2, R2, R3,LSL#24 .text:00018EA8 B loc_18EB0 .text:00018EAC ; --------------------------------------------------------------------------- .text:00018EAC .text:00018EAC loc_18EAC ; CODE XREF: _nl_load_domain+1E4j .text:00018EAC LDR R2, [R5,#8] .text:00018EB0 .text:00018EB0 loc_18EB0 ; CODE XREF: _nl_load_domain+204j .text:00018EB0 LDR R3, [R6,#0xC] .text:00018EB4 STR R2, [R6,#0x10] .text:00018EB8 CMP R3, #0 .text:00018EBC BEQ loc_18EE4 .text:00018EC0 LDR R3, [R5,#0xC] .text:00018EC4 AND R2, R3, #0xFF0000 .text:00018EC8 MOV R2, R2,LSR#8 .text:00018ECC ORR R2, R2, R3,LSR#24 .text:00018ED0 AND R1, R3, #0xFF00 .text:00018ED4 ORR R2, R2, R1,LSL#8 .text:00018ED8 ORR R2, R2, R3,LSL#24 .text:00018EDC ADD R2, R5, R2 .text:00018EE0 B loc_18EEC .text:00018EE4 ; --------------------------------------------------------------------------- .text:00018EE4 .text:00018EE4 loc_18EE4 ; CODE XREF: _nl_load_domain+218j .text:00018EE4 LDR R3, [R5,#0xC] .text:00018EE8 ADD R2, R5, R3 .text:00018EEC .text:00018EEC loc_18EEC ; CODE XREF: _nl_load_domain+23Cj .text:00018EEC LDR R3, [R6,#0xC] .text:00018EF0 STR R2, [R6,#0x14] .text:00018EF4 CMP R3, #0 .text:00018EF8 BEQ loc_18F20 .text:00018EFC LDR R3, [R5,#0x10] .text:00018F00 AND R2, R3, #0xFF0000 .text:00018F04 MOV R2, R2,LSR#8 .text:00018F08 ORR R2, R2, R3,LSR#24 .text:00018F0C AND R1, R3, #0xFF00 .text:00018F10 ORR R2, R2, R1,LSL#8 .text:00018F14 ORR R2, R2, R3,LSL#24 .text:00018F18 ADD R2, R5, R2 .text:00018F1C B loc_18F28 .text:00018F20 ; --------------------------------------------------------------------------- .text:00018F20 .text:00018F20 loc_18F20 ; CODE XREF: _nl_load_domain+254j .text:00018F20 LDR R3, [R5,#0x10] .text:00018F24 ADD R2, R5, R3 .text:00018F28 .text:00018F28 loc_18F28 ; CODE XREF: _nl_load_domain+278j .text:00018F28 LDR R3, [R6,#0xC] .text:00018F2C STR R2, [R6,#0x18] .text:00018F30 CMP R3, #0 .text:00018F34 BEQ loc_18F58 .text:00018F38 LDR R3, [R5,#0x14] .text:00018F3C AND R2, R3, #0xFF0000 .text:00018F40 MOV R2, R2,LSR#8 .text:00018F44 ORR R2, R2, R3,LSR#24 .text:00018F48 AND R1, R3, #0xFF00 .text:00018F4C ORR R2, R2, R1,LSL#8 .text:00018F50 ORR R2, R2, R3,LSL#24 .text:00018F54 B loc_18F5C .text:00018F58 ; --------------------------------------------------------------------------- .text:00018F58 .text:00018F58 loc_18F58 ; CODE XREF: _nl_load_domain+290j .text:00018F58 LDR R2, [R5,#0x14] .text:00018F5C .text:00018F5C loc_18F5C ; CODE XREF: _nl_load_domain+2B0j .text:00018F5C LDR R3, [R6,#0xC] .text:00018F60 STR R2, [R6,#0x1C] .text:00018F64 CMP R3, #0 .text:00018F68 BEQ loc_18F90 .text:00018F6C LDR R3, [R5,#0x18] .text:00018F70 AND R2, R3, #0xFF0000 .text:00018F74 MOV R2, R2,LSR#8 .text:00018F78 ORR R2, R2, R3,LSR#24 .text:00018F7C AND R1, R3, #0xFF00 .text:00018F80 ORR R2, R2, R1,LSL#8 .text:00018F84 ORR R2, R2, R3,LSL#24 .text:00018F88 ADD R0, R5, R2 .text:00018F8C B loc_18F98 .text:00018F90 ; --------------------------------------------------------------------------- .text:00018F90 .text:00018F90 loc_18F90 ; CODE XREF: _nl_load_domain+2C4j .text:00018F90 LDR R3, [R5,#0x18] .text:00018F94 ADD R0, R5, R3 .text:00018F98 .text:00018F98 loc_18F98 ; CODE XREF: _nl_load_domain+2E8j .text:00018F98 STR R0, [R6,#0x20] .text:00018F9C B loc_18FD8 .text:00018FA0 ; --------------------------------------------------------------------------- .text:00018FA0 .text:00018FA0 loc_18FA0 ; CODE XREF: _nl_load_domain+1D8j .text:00018FA0 CMP R9, #0 .text:00018FA4 BEQ loc_18FB8 .text:00018FA8 MOV R0, R5 .text:00018FAC MOV R1, R10 .text:00018FB0 BL munmap .text:00018FB4 B loc_18FC0 .text:00018FB8 ; --------------------------------------------------------------------------- .text:00018FB8 .text:00018FB8 loc_18FB8 ; CODE XREF: _nl_load_domain+300j .text:00018FB8 MOV R0, R5 .text:00018FBC BL free .text:00018FC0 .text:00018FC0 loc_18FC0 ; CODE XREF: _nl_load_domain+310j .text:00018FC0 MOV R0, R6 .text:00018FC4 BL free .text:00018FC8 LDR R2, [R11,#var_98] .text:00018FCC MOV R3, #0 .text:00018FD0 STR R3, [R2,#8] .text:00018FD4 B locret_190E8 .text:00018FD8 ; --------------------------------------------------------------------------- .text:00018FD8 .text:00018FD8 loc_18FD8 ; CODE XREF: _nl_load_domain+2F8j .text:00018FD8 LDR R0, [R11,#var_98] .text:00018FDC LDR R2, [R11,#var_9C] .text:00018FE0 MOV R1, R6 .text:00018FE4 BL _nl_init_domain_conv .text:00018FE8 SUBS R4, R0, #0 .text:00018FEC BEQ loc_190D0 .text:00018FF0 LDR R1, =aPlural ; "plural=" .text:00018FF4 MOV R0, R4 .text:00018FF8 BL strstr .text:00018FFC MOV R5, R0 .text:00019000 LDR R1, =aNplurals ; "nplurals=" .text:00019004 MOV R0, R4 .text:00019008 BL strstr .text:0001900C MOV R4, R0 .text:00019010 CMP R4, #0 .text:00019014 CMPNE R5, #0 .text:00019018 BEQ loc_190D0 .text:0001901C LDRB R3, [R4,#9]! .text:00019020 SUB R12, R11, #-var_8C .text:00019024 CMP R3, #0 .text:00019028 BEQ loc_19074 .text:0001902C LDR R0, =__ctype_b .text:00019030 LDRB R3, [R4] .text:00019034 LDR R2, [R0] .text:00019038 MOV R3, R3,LSL#1 .text:0001903C ADD R3, R3, R2 .text:00019040 LDRB R1, [R3,#1] .text:00019044 TST R1, #0x20 .text:00019048 BEQ loc_19074 .text:0001904C .text:0001904C loc_1904C ; CODE XREF: _nl_load_domain+3CCj .text:0001904C LDRB R3, [R4,#1]! .text:00019050 CMP R3, #0 .text:00019054 BEQ loc_19074 .text:00019058 LDRB R3, [R4] .text:0001905C LDR R1, [R0] .text:00019060 MOV R3, R3,LSL#1 .text:00019064 ADD R3, R3, R1 .text:00019068 LDRB R2, [R3,#1] .text:0001906C TST R2, #0x20 .text:00019070 BNE loc_1904C .text:00019074 .text:00019074 loc_19074 ; CODE XREF: _nl_load_domain+384j .text:00019074 ; _nl_load_domain+3A4j ... .text:00019074 MOV R0, R4 .text:00019078 MOV R1, R12 .text:0001907C MOV R2, #0xA .text:00019080 MOV R3, #0 .text:00019084 BL __strtoul_internal .text:00019088 STR R0, [R6,#0x34] .text:0001908C LDR R3, [R11,#var_8C] .text:00019090 CMP R4, R3 .text:00019094 BEQ loc_190D0 .text:00019098 ADD R5, R5, #7 .text:0001909C STR R5, [R11,#var_94] .text:000190A0 SUB R0, R11, #-var_94 .text:000190A4 BL __gettextparse .text:000190A8 CMP R0, #0 .text:000190AC BNE loc_190D0 .text:000190B0 LDR R3, [R11,#var_90] .text:000190B4 STR R3, [R6,#0x30] .text:000190B8 B locret_190E8 .text:000190B8 ; --------------------------------------------------------------------------- .text:000190BC dword_190BC DCD 0x950412DE ; DATA XREF: _nl_load_domain+144r .text:000190C0 dword_190C0 DCD 0xDE120495 ; DATA XREF: _nl_load_domain+148r .text:000190C4 off_190C4 DCD aPlural ; DATA XREF: _nl_load_domain+34Cr .text:000190C4 ; "plural=" .text:000190C8 off_190C8 DCD aNplurals ; DATA XREF: _nl_load_domain+35Cr .text:000190C8 ; "nplurals=" .text:000190CC off_190CC DCD __ctype_b ; DATA XREF: _nl_load_domain+388r .text:000190D0 ; --------------------------------------------------------------------------- .text:000190D0 .text:000190D0 loc_190D0 ; CODE XREF: _nl_load_domain+348j .text:000190D0 ; _nl_load_domain+374j ... .text:000190D0 MOV R3, #2 .text:000190D4 STR R3, [R6,#0x34] .text:000190D8 LDR R2, =germanic_plural .text:000190DC STR R2, [R6,#0x30] .text:000190E0 B locret_190E8 .text:000190E0 ; --------------------------------------------------------------------------- .text:000190E4 off_190E4 DCD germanic_plural ; DATA XREF: _nl_load_domain+434r .text:000190E8 ; --------------------------------------------------------------------------- .text:000190E8 .text:000190E8 locret_190E8 ; CODE XREF: _nl_load_domain+34j .text:000190E8 ; _nl_load_domain+48j ... .text:000190E8 LDMDB R11, {R4-R11,SP,PC} .text:000190E8 ; End of function _nl_load_domain .text:000190E8 .text:000190EC .text:000190EC ; =============== S U B R O U T I N E ======================================= .text:000190EC .text:000190EC ; Attributes: bp-based frame .text:000190EC .text:000190EC EXPORT _nl_unload_domain .text:000190EC _nl_unload_domain ; CODE XREF: free_mem_0+2Cp .text:000190EC MOV R12, SP .text:000190F0 STMFD SP!, {R4,R11,R12,LR,PC} .text:000190F4 LDR R3, =germanic_plural .text:000190F8 MOV R4, R0 .text:000190FC LDR R0, [R4,#0x30] .text:00019100 SUB R11, R12, #4 .text:00019104 CMP R0, R3 .text:00019108 BEQ loc_19110 .text:0001910C BL __gettext_free_exp .text:00019110 .text:00019110 loc_19110 ; CODE XREF: _nl_unload_domain+1Cj .text:00019110 MOV R0, R4 .text:00019114 BL _nl_free_domain_conv .text:00019118 LDR R3, [R4,#4] .text:0001911C CMP R3, #0 .text:00019120 BEQ loc_19134 .text:00019124 LDR R0, [R4] .text:00019128 LDR R1, [R4,#8] .text:0001912C BL munmap .text:00019130 B loc_1913C .text:00019134 ; --------------------------------------------------------------------------- .text:00019134 .text:00019134 loc_19134 ; CODE XREF: _nl_unload_domain+34j .text:00019134 LDR R0, [R4] .text:00019138 BL free .text:0001913C .text:0001913C loc_1913C ; CODE XREF: _nl_unload_domain+44j .text:0001913C MOV R0, R4 .text:00019140 BL free .text:00019144 LDMDB R11, {R4,R11,SP,PC} .text:00019144 ; End of function _nl_unload_domain .text:00019144 .text:00019144 ; --------------------------------------------------------------------------- .text:00019148 off_19148 DCD germanic_plural ; DATA XREF: _nl_unload_domain+8r .text:0001914C .text:0001914C ; =============== S U B R O U T I N E ======================================= .text:0001914C .text:0001914C ; Attributes: bp-based frame .text:0001914C .text:0001914C EXPORT _nl_expand_alias .text:0001914C _nl_expand_alias ; CODE XREF: _nl_find_domain+E8p .text:0001914C ; _nl_find_locale+108p .text:0001914C .text:0001914C var_30 = -0x30 .text:0001914C var_2C = -0x2C .text:0001914C .text:0001914C MOV R12, SP .text:00019150 STMFD SP!, {R4-R8,R10-R12,LR,PC} .text:00019154 SUB R11, R12, #4 .text:00019158 MOV R6, #0 .text:0001915C LDR R3, =0 .text:00019160 MOV R7, R0 .text:00019164 CMP R3, R6 .text:00019168 SUB SP, SP, #0xC .text:0001916C BEQ loc_1917C .text:00019170 LDR R0, =lock_1 .text:00019174 MOV LR, PC .text:00019178 MOV PC, R3 .text:0001917C .text:0001917C loc_1917C ; CODE XREF: _nl_expand_alias+20j .text:0001917C LDR R8, =nmap .text:00019180 LDR R10, =0 .text:00019184 .text:00019184 loc_19184 ; CODE XREF: _nl_expand_alias+14Cj .text:00019184 LDR R12, [R8] .text:00019188 STR R7, [R11,#var_2C] .text:0001918C CMP R12, #0 .text:00019190 BEQ loc_191B8 .text:00019194 LDR R3, =alias_compare .text:00019198 STR R3, [SP,#0x30+var_30] .text:0001919C SUB R0, R11, #-var_2C .text:000191A0 LDR R2, =map_0 .text:000191A4 MOV R3, #8 .text:000191A8 LDR R1, [R2] .text:000191AC MOV R2, R12 .text:000191B0 BL bsearch .text:000191B4 B loc_191BC .text:000191B8 ; --------------------------------------------------------------------------- .text:000191B8 .text:000191B8 loc_191B8 ; CODE XREF: _nl_expand_alias+44j .text:000191B8 MOV R0, R12 .text:000191BC .text:000191BC loc_191BC ; CODE XREF: _nl_expand_alias+68j .text:000191BC CMP R0, #0 .text:000191C0 BEQ loc_191E4 .text:000191C4 LDR R6, [R0,#4] .text:000191C8 B loc_1929C .text:000191C8 ; --------------------------------------------------------------------------- .text:000191CC off_191CC DCD 0 ; DATA XREF: _nl_expand_alias+10r .text:000191D0 off_191D0 DCD lock_1 ; DATA XREF: _nl_expand_alias+24r .text:000191D4 off_191D4 DCD nmap ; DATA XREF: _nl_expand_alias:loc_1917Cr .text:000191D8 dword_191D8 DCD 0 ; DATA XREF: _nl_expand_alias+34r .text:000191DC off_191DC DCD alias_compare ; DATA XREF: _nl_expand_alias+48r .text:000191E0 off_191E0 DCD map_0 ; DATA XREF: _nl_expand_alias+54r .text:000191E4 ; --------------------------------------------------------------------------- .text:000191E4 .text:000191E4 loc_191E4 ; CODE XREF: _nl_expand_alias+74j .text:000191E4 LDR R3, =locale_alias_path.123 .text:000191E8 LDR R2, [R3] .text:000191EC MOV LR, R0 .text:000191F0 LDRB R1, [R2] .text:000191F4 MOV R4, R3 .text:000191F8 CMP R1, #0 .text:000191FC BEQ loc_19294 .text:00019200 MOV R5, R4 .text:00019204 .text:00019204 loc_19204 ; CODE XREF: _nl_expand_alias+144j .text:00019204 LDR R3, [R5] .text:00019208 LDRB R2, [R3] .text:0001920C CMP R2, #0x3A .text:00019210 BNE loc_19230 .text:00019214 LDR R12, =locale_alias_path.123 .text:00019218 .text:00019218 loc_19218 ; CODE XREF: _nl_expand_alias+E0j .text:00019218 LDR R3, [R12] .text:0001921C ADD R2, R3, #1 .text:00019220 STR R2, [R12] .text:00019224 LDRB R1, [R3,#1] .text:00019228 CMP R1, #0x3A .text:0001922C BEQ loc_19218 .text:00019230 .text:00019230 loc_19230 ; CODE XREF: _nl_expand_alias+C4j .text:00019230 LDR R0, [R5] .text:00019234 LDRB R3, [R0] .text:00019238 CMP R3, #0 .text:0001923C CMPNE R3, #0x3A .text:00019240 BEQ loc_19264 .text:00019244 LDR R12, =locale_alias_path.123 .text:00019248 .text:00019248 loc_19248 ; CODE XREF: _nl_expand_alias+114j .text:00019248 LDR R1, [R12] .text:0001924C ADD R2, R1, #1 .text:00019250 STR R2, [R12] .text:00019254 LDRB R3, [R1,#1] .text:00019258 CMP R3, #0 .text:0001925C CMPNE R3, #0x3A .text:00019260 BNE loc_19248 .text:00019264 .text:00019264 loc_19264 ; CODE XREF: _nl_expand_alias+F4j .text:00019264 LDR R1, [R4] .text:00019268 CMP R0, R1 .text:0001926C BCS loc_1927C .text:00019270 RSB R1, R0, R1 .text:00019274 BL read_alias_file .text:00019278 MOV LR, R0 .text:0001927C .text:0001927C loc_1927C ; CODE XREF: _nl_expand_alias+120j .text:0001927C CMP LR, #0 .text:00019280 BNE loc_19294 .text:00019284 LDR R3, [R4] .text:00019288 LDRB R2, [R3] .text:0001928C CMP R2, #0 .text:00019290 BNE loc_19204 .text:00019294 .text:00019294 loc_19294 ; CODE XREF: _nl_expand_alias+B0j .text:00019294 ; _nl_expand_alias+134j .text:00019294 CMP LR, #0 .text:00019298 BNE loc_19184 .text:0001929C .text:0001929C loc_1929C ; CODE XREF: _nl_expand_alias+7Cj .text:0001929C CMP R10, #0 .text:000192A0 BEQ loc_192B0 .text:000192A4 LDR R0, =lock_1 .text:000192A8 MOV LR, PC .text:000192AC MOV PC, R10 .text:000192B0 .text:000192B0 loc_192B0 ; CODE XREF: _nl_expand_alias+154j .text:000192B0 MOV R0, R6 .text:000192B4 B locret_192C0 .text:000192B4 ; --------------------------------------------------------------------------- .text:000192B8 off_192B8 DCD locale_alias_path.123 .text:000192B8 ; DATA XREF: _nl_expand_alias:loc_191E4r .text:000192B8 ; _nl_expand_alias+C8r ... .text:000192BC off_192BC DCD lock_1 ; DATA XREF: _nl_expand_alias+158r .text:000192C0 ; --------------------------------------------------------------------------- .text:000192C0 .text:000192C0 locret_192C0 ; CODE XREF: _nl_expand_alias+168j .text:000192C0 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:000192C0 ; End of function _nl_expand_alias .text:000192C0 .text:000192C4 .text:000192C4 ; =============== S U B R O U T I N E ======================================= .text:000192C4 .text:000192C4 ; Attributes: bp-based frame .text:000192C4 .text:000192C4 read_alias_file ; CODE XREF: _nl_expand_alias+128p .text:000192C4 .text:000192C4 var_4000 = -0x4000 .text:000192C4 var_2000 = -0x2000 .text:000192C4 .text:000192C4 MOV R12, SP .text:000192C8 STMFD SP!, {R4-R12,LR,PC} .text:000192CC SUB R11, R12, #4 .text:000192D0 MOV R2, R1 .text:000192D4 ADD R3, R2, #0x11 .text:000192D8 BIC R3, R3, #3 .text:000192DC MOV R1, R0 .text:000192E0 SUB SP, SP, #0x4000 .text:000192E4 SUB SP, SP, #0xC .text:000192E8 RSB SP, R3, SP .text:000192EC MOV R0, SP .text:000192F0 BL mempcpy .text:000192F4 LDR R1, =aliasfile.127 ; "/locale.alias" .text:000192F8 MOV R2, #0xE .text:000192FC BL mempcpy .text:00019300 LDR R1, =aR ; "r" .text:00019304 MOV R0, SP .text:00019308 BL fopen .text:0001930C CMP R0, #0 .text:00019310 SUB R1, R11, #-var_4000 .text:00019314 STR R0, [R1,#-0x2C] .text:00019318 BNE loc_19334 .text:0001931C MOV R2, R1 .text:00019320 LDR R0, [R2,#-0x2C] .text:00019324 B loc_19758 .text:00019328 ; --------------------------------------------------------------------------- .text:00019328 .text:00019328 loc_19328 ; CODE XREF: read_alias_file+2E8j .text:00019328 SUB R3, R11, #-var_4000 .text:0001932C LDR R0, [R3,#-0x30] .text:00019330 B loc_19758 .text:00019334 ; --------------------------------------------------------------------------- .text:00019334 .text:00019334 loc_19334 ; CODE XREF: read_alias_file+54j .text:00019334 MOV LR, #0 .text:00019338 SUB R12, R11, #-var_4000 .text:0001933C STR LR, [R12,#-0x30] .text:00019340 B loc_196D8 .text:00019344 ; --------------------------------------------------------------------------- .text:00019344 .text:00019344 loc_19344 ; CODE XREF: read_alias_file+450j .text:00019344 MOV R0, R4 .text:00019348 MOV R1, #0xA .text:0001934C BL strchr .text:00019350 CMP R0, #0 .text:00019354 LDR R6, =__ctype_b .text:00019358 BNE loc_19394 .text:0001935C SUB R4, R11, #-var_4000 .text:00019360 SUB R4, R4, #0x28 .text:00019364 .text:00019364 loc_19364 ; CODE XREF: read_alias_file+CCj .text:00019364 MOV R0, R4 .text:00019368 MOV R1, #0x2000 .text:0001936C SUB R3, R11, #-var_4000 .text:00019370 LDR R2, [R3,#-0x2C] .text:00019374 BL fgets_unlocked .text:00019378 CMP R0, #0 .text:0001937C BEQ loc_19394 .text:00019380 MOV R0, R4 .text:00019384 MOV R1, #0xA .text:00019388 BL strchr .text:0001938C CMP R0, #0 .text:00019390 BEQ loc_19364 .text:00019394 .text:00019394 loc_19394 ; CODE XREF: read_alias_file+94j .text:00019394 ; read_alias_file+B8j .text:00019394 LDR R12, =__ctype_b .text:00019398 MOV R0, R5 .text:0001939C LDRB R3, [R0] .text:000193A0 LDR R1, [R12] .text:000193A4 MOV R3, R3,LSL#1 .text:000193A8 ADD R3, R3, R1 .text:000193AC LDRB R2, [R3,#1] .text:000193B0 TST R2, #0x20 .text:000193B4 BEQ loc_193D4 .text:000193B8 LDR R1, [R6] .text:000193BC .text:000193BC loc_193BC ; CODE XREF: read_alias_file+10Cj .text:000193BC LDRB R3, [R0,#1]! .text:000193C0 MOV R3, R3,LSL#1 .text:000193C4 ADD R3, R3, R1 .text:000193C8 LDRB R2, [R3,#1] .text:000193CC TST R2, #0x20 .text:000193D0 BNE loc_193BC .text:000193D4 .text:000193D4 loc_193D4 ; CODE XREF: read_alias_file+F0j .text:000193D4 LDRB R3, [R0] .text:000193D8 CMP R3, #0 .text:000193DC CMPNE R3, #0x23 .text:000193E0 BEQ loc_196D8 .text:000193E4 SUB LR, R11, #-var_4000 .text:000193E8 STR R0, [LR,#-0x34] .text:000193EC MOV R1, LR .text:000193F0 LDR R1, [R1,#-0x34] .text:000193F4 LDRB R3, [R1,#1]! .text:000193F8 MOV R0, R1 .text:000193FC CMP R3, #0 .text:00019400 BEQ loc_19438 .text:00019404 LDR LR, =__ctype_b .text:00019408 LDR R1, [LR] .text:0001940C B loc_19424 .text:00019410 ; --------------------------------------------------------------------------- .text:00019410 .text:00019410 loc_19410 ; CODE XREF: read_alias_file+170j .text:00019410 LDRB R3, [R0,#1]! .text:00019414 CMP R3, #0 .text:00019418 BEQ loc_19438 .text:0001941C LDRB R3, [R0] .text:00019420 LDR R1, [R6] .text:00019424 .text:00019424 loc_19424 ; CODE XREF: read_alias_file+148j .text:00019424 MOV R3, R3,LSL#1 .text:00019428 ADD R3, R3, R1 .text:0001942C LDRB R2, [R3,#1] .text:00019430 TST R2, #0x20 .text:00019434 BEQ loc_19410 .text:00019438 .text:00019438 loc_19438 ; CODE XREF: read_alias_file+13Cj .text:00019438 ; read_alias_file+154j .text:00019438 LDRB R3, [R0] .text:0001943C CMP R3, #0 .text:00019440 MOVNE R3, #0 .text:00019444 STRNEB R3, [R0],#1 .text:00019448 LDR R2, =__ctype_b .text:0001944C LDRB R3, [R0] .text:00019450 LDR R1, [R2] .text:00019454 MOV R3, R3,LSL#1 .text:00019458 ADD R3, R3, R1 .text:0001945C LDRB R2, [R3,#1] .text:00019460 TST R2, #0x20 .text:00019464 BEQ loc_19484 .text:00019468 LDR R1, [R6] .text:0001946C .text:0001946C loc_1946C ; CODE XREF: read_alias_file+1BCj .text:0001946C LDRB R3, [R0,#1]! .text:00019470 MOV R3, R3,LSL#1 .text:00019474 ADD R3, R3, R1 .text:00019478 LDRB R2, [R3,#1] .text:0001947C TST R2, #0x20 .text:00019480 BNE loc_1946C .text:00019484 .text:00019484 loc_19484 ; CODE XREF: read_alias_file+1A0j .text:00019484 LDRB R3, [R0] .text:00019488 CMP R3, #0 .text:0001948C BEQ loc_196D8 .text:00019490 MOV R8, R0 .text:00019494 LDR R5, =nmap .text:00019498 LDRB R3, [R0,#1]! .text:0001949C LDR R12, =maxmap .text:000194A0 CMP R3, #0 .text:000194A4 BEQ loc_194EC .text:000194A8 LDR LR, =__ctype_b .text:000194AC LDR R2, [LR] .text:000194B0 MOV R3, R3,LSL#1 .text:000194B4 ADD R3, R3, R2 .text:000194B8 LDRB R1, [R3,#1] .text:000194BC TST R1, #0x20 .text:000194C0 BNE loc_194EC .text:000194C4 .text:000194C4 loc_194C4 ; CODE XREF: read_alias_file+224j .text:000194C4 LDRB R3, [R0,#1]! .text:000194C8 CMP R3, #0 .text:000194CC BEQ loc_194EC .text:000194D0 LDRB R3, [R0] .text:000194D4 LDR R1, [R6] .text:000194D8 MOV R3, R3,LSL#1 .text:000194DC ADD R3, R3, R1 .text:000194E0 LDRB R2, [R3,#1] .text:000194E4 TST R2, #0x20 .text:000194E8 BEQ loc_194C4 .text:000194EC .text:000194EC loc_194EC ; CODE XREF: read_alias_file+1E0j .text:000194EC ; read_alias_file+1FCj ... .text:000194EC LDRB R2, [R0] .text:000194F0 CMP R2, #0xA .text:000194F4 BNE loc_1951C .text:000194F8 MOV R3, #0 .text:000194FC STRB R3, [R0],#1 .text:00019500 STRB R2, [R0] .text:00019504 B loc_19528 .text:00019504 ; --------------------------------------------------------------------------- .text:00019508 off_19508 DCD aliasfile.127 ; DATA XREF: read_alias_file+30r .text:00019508 ; "/locale.alias" .text:0001950C off_1950C DCD aR ; DATA XREF: read_alias_file+3Cr .text:0001950C ; "r" .text:00019510 off_19510 DCD __ctype_b ; DATA XREF: read_alias_file+90r .text:00019510 ; read_alias_file:loc_19394r ... .text:00019514 off_19514 DCD nmap ; DATA XREF: read_alias_file+1D0r .text:00019518 off_19518 DCD maxmap ; DATA XREF: read_alias_file+1D8r .text:0001951C ; --------------------------------------------------------------------------- .text:0001951C .text:0001951C loc_1951C ; CODE XREF: read_alias_file+230j .text:0001951C CMP R2, #0 .text:00019520 MOVNE R3, #0 .text:00019524 STRNEB R3, [R0] .text:00019528 .text:00019528 loc_19528 ; CODE XREF: read_alias_file+240j .text:00019528 LDR R2, [R5] .text:0001952C LDR R3, [R12] .text:00019530 CMP R2, R3 .text:00019534 BCC loc_1954C .text:00019538 BL extend_alias_table .text:0001953C CMP R0, #0 .text:00019540 SUB R1, R11, #-var_4000 .text:00019544 LDR R0, [R1,#-0x30] .text:00019548 BNE loc_19758 .text:0001954C .text:0001954C loc_1954C ; CODE XREF: read_alias_file+270j .text:0001954C SUB R2, R11, #-var_4000 .text:00019550 LDR R0, [R2,#-0x34] .text:00019554 BL strlen .text:00019558 ADD R6, R0, #1 .text:0001955C MOV R0, R8 .text:00019560 BL strlen .text:00019564 LDR R12, =string_space_act .text:00019568 LDR R2, =string_space_max .text:0001956C LDR R3, [R12] .text:00019570 ADD R7, R0, #1 .text:00019574 LDR R1, [R2] .text:00019578 ADD R3, R3, R6 .text:0001957C ADD R3, R3, R7 .text:00019580 CMP R3, R1 .text:00019584 BLS loc_19628 .text:00019588 ADD R3, R6, R7 .text:0001958C LDR LR, =string_space .text:00019590 CMP R3, #0x400 .text:00019594 ADDCS R4, R1, R3 .text:00019598 ADDCC R4, R1, #0x400 .text:0001959C LDR R0, [LR] .text:000195A0 MOV R1, R4 .text:000195A4 BL realloc .text:000195A8 SUBS LR, R0, #0 .text:000195AC BEQ loc_19328 .text:000195B0 LDR R1, =string_space .text:000195B4 LDR R3, [R1] .text:000195B8 CMP R3, LR .text:000195BC BEQ loc_19618 .text:000195C0 LDR R3, [R5] .text:000195C4 MOV R12, #0 .text:000195C8 CMP R12, R3 .text:000195CC BCS loc_19618 .text:000195D0 LDR R9, =map_0 .text:000195D4 MOV R10, R1 .text:000195D8 LDR R5, =nmap .text:000195DC .text:000195DC loc_195DC ; CODE XREF: read_alias_file+350j .text:000195DC LDR R0, [R9] .text:000195E0 LDR R1, [R10] .text:000195E4 MOV R2, R12,LSL#3 .text:000195E8 LDR R3, [R2,R0] .text:000195EC RSB R1, R1, LR .text:000195F0 ADD R3, R3, R1 .text:000195F4 STR R3, [R2,R0] .text:000195F8 ADD R2, R2, R0 .text:000195FC LDR R3, [R2,#4] .text:00019600 ADD R3, R3, R1 .text:00019604 STR R3, [R2,#4] .text:00019608 LDR R1, [R5] .text:0001960C ADD R12, R12, #1 .text:00019610 CMP R12, R1 .text:00019614 BCC loc_195DC .text:00019618 .text:00019618 loc_19618 ; CODE XREF: read_alias_file+2F8j .text:00019618 ; read_alias_file+308j .text:00019618 LDR R2, =string_space .text:0001961C STR LR, [R2] .text:00019620 LDR R3, =string_space_max .text:00019624 STR R4, [R3] .text:00019628 .text:00019628 loc_19628 ; CODE XREF: read_alias_file+2C0j .text:00019628 LDR R12, =string_space .text:0001962C SUB LR, R11, #-var_4000 .text:00019630 LDR R1, [LR,#-0x34] .text:00019634 LDR R2, =string_space_act .text:00019638 LDR LR, =map_0 .text:0001963C LDR R3, [R12] .text:00019640 LDR R0, [R2] .text:00019644 LDR R12, =nmap .text:00019648 LDR R5, [LR] .text:0001964C MOV R2, R6 .text:00019650 LDR R4, [R12] .text:00019654 ADD R0, R3, R0 .text:00019658 MOV R4, R4,LSL#3 .text:0001965C BL memcpy .text:00019660 STR R0, [R4,R5] .text:00019664 LDR R1, =string_space_act .text:00019668 LDR R0, [R1] .text:0001966C ADD R0, R0, R6 .text:00019670 STR R0, [R1] .text:00019674 LDR R2, =nmap .text:00019678 LDR LR, =string_space .text:0001967C LDR R12, [R2] .text:00019680 LDR R3, [LR] .text:00019684 MOV R1, R8 .text:00019688 LDR LR, =map_0 .text:0001968C MOV R2, R7 .text:00019690 LDR R4, [LR] .text:00019694 ADD R0, R3, R0 .text:00019698 ADD R4, R4, R12,LSL#3 .text:0001969C BL memcpy .text:000196A0 STR R0, [R4,#4] .text:000196A4 LDR R1, =string_space_act .text:000196A8 LDR R3, [R1] .text:000196AC ADD R3, R3, R7 .text:000196B0 STR R3, [R1] .text:000196B4 LDR R3, =nmap .text:000196B8 SUB R12, R11, #-var_4000 .text:000196BC LDR R12, [R12,#-0x30] .text:000196C0 LDR R2, [R3] .text:000196C4 ADD LR, R12, #1 .text:000196C8 SUB R12, R11, #-var_4000 .text:000196CC STR LR, [R12,#-0x30] .text:000196D0 ADD R2, R2, #1 .text:000196D4 STR R2, [R3] .text:000196D8 .text:000196D8 loc_196D8 ; CODE XREF: read_alias_file+7Cj .text:000196D8 ; read_alias_file+11Cj ... .text:000196D8 SUB LR, R11, #-var_4000 .text:000196DC SUB LR, LR, #0x2C .text:000196E0 LDR LR, [LR] .text:000196E4 LDR R3, [LR] .text:000196E8 TST R3, #0x10 .text:000196EC BNE loc_19718 .text:000196F0 SUB R4, R11, #-var_2000 .text:000196F4 SUB R4, R4, #0x28 .text:000196F8 MOV R0, R4 .text:000196FC MOV R1, #0x2000 .text:00019700 SUB R3, R11, #-var_4000 .text:00019704 LDR R2, [R3,#-0x2C] .text:00019708 BL fgets_unlocked .text:0001970C CMP R0, #0 .text:00019710 MOV R5, R4 .text:00019714 BNE loc_19344 .text:00019718 .text:00019718 loc_19718 ; CODE XREF: read_alias_file+428j .text:00019718 SUB R12, R11, #-var_4000 .text:0001971C LDR R0, [R12,#-0x2C] .text:00019720 BL fclose .text:00019724 SUB LR, R11, #-var_4000 .text:00019728 LDR LR, [LR,#-0x30] .text:0001972C CMP LR, #0 .text:00019730 BEQ loc_19750 .text:00019734 LDR R3, =map_0 .text:00019738 LDR R2, =nmap .text:0001973C LDR R0, [R3] .text:00019740 LDR R1, [R2] .text:00019744 LDR R3, =alias_compare .text:00019748 MOV R2, #8 .text:0001974C BL qsort .text:00019750 .text:00019750 loc_19750 ; CODE XREF: read_alias_file+46Cj .text:00019750 SUB R1, R11, #-var_4000 .text:00019754 LDR R0, [R1,#-0x30] .text:00019758 .text:00019758 loc_19758 ; CODE XREF: read_alias_file+60j .text:00019758 ; read_alias_file+6Cj ... .text:00019758 B locret_19774 .text:00019758 ; --------------------------------------------------------------------------- .text:0001975C off_1975C DCD string_space_act ; DATA XREF: read_alias_file+2A0r .text:0001975C ; read_alias_file+370r ... .text:00019760 off_19760 DCD string_space_max ; DATA XREF: read_alias_file+2A4r .text:00019760 ; read_alias_file+35Cr .text:00019764 off_19764 DCD string_space ; DATA XREF: read_alias_file+2C8r .text:00019764 ; read_alias_file+2ECr ... .text:00019768 off_19768 DCD map_0 ; DATA XREF: read_alias_file+30Cr .text:00019768 ; read_alias_file+374r ... .text:0001976C off_1976C DCD nmap ; DATA XREF: read_alias_file+314r .text:0001976C ; read_alias_file+380r ... .text:00019770 off_19770 DCD alias_compare ; DATA XREF: read_alias_file+480r .text:00019774 ; --------------------------------------------------------------------------- .text:00019774 .text:00019774 locret_19774 ; CODE XREF: read_alias_file:loc_19758j .text:00019774 LDMDB R11, {R4-R11,SP,PC} .text:00019774 ; End of function read_alias_file .text:00019774 .text:00019778 .text:00019778 ; =============== S U B R O U T I N E ======================================= .text:00019778 .text:00019778 ; Attributes: bp-based frame .text:00019778 .text:00019778 extend_alias_table ; CODE XREF: read_alias_file+274p .text:00019778 MOV R12, SP .text:0001977C STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:00019780 LDR R6, =maxmap .text:00019784 LDR R5, =map_0 .text:00019788 LDR R3, [R6] .text:0001978C SUB R11, R12, #4 .text:00019790 LDR R0, [R5] .text:00019794 CMP R3, #0 .text:00019798 MOVEQ R4, #0x64 .text:0001979C MOVNE R4, R3,LSL#1 .text:000197A0 MOV R1, R4,LSL#3 .text:000197A4 BL realloc .text:000197A8 CMP R0, #0 .text:000197AC STRNE R0, [R5] .text:000197B0 MOVNE R0, #0 .text:000197B4 STRNE R4, [R6] .text:000197B8 LDMNEDB R11, {R4-R6,R11,SP,PC} .text:000197BC MOV R0, 0xFFFFFFFF .text:000197C0 LDMDB R11, {R4-R6,R11,SP,PC} .text:000197C0 ; End of function extend_alias_table .text:000197C0 .text:000197C0 ; --------------------------------------------------------------------------- .text:000197C4 off_197C4 DCD maxmap ; DATA XREF: extend_alias_table+8r .text:000197C8 off_197C8 DCD map_0 ; DATA XREF: extend_alias_table+Cr .text:000197CC .text:000197CC ; =============== S U B R O U T I N E ======================================= .text:000197CC .text:000197CC ; Attributes: bp-based frame .text:000197CC .text:000197CC free_mem_1 .text:000197CC MOV R12, SP .text:000197D0 STMFD SP!, {R11,R12,LR,PC} .text:000197D4 LDR R3, =string_space .text:000197D8 LDR R0, [R3] .text:000197DC SUB R11, R12, #4 .text:000197E0 CMP R0, #0 .text:000197E4 BEQ loc_197EC .text:000197E8 BL free .text:000197EC .text:000197EC loc_197EC ; CODE XREF: free_mem_1+18j .text:000197EC LDR R3, =map_0 .text:000197F0 LDR R0, [R3] .text:000197F4 CMP R0, #0 .text:000197F8 LDMEQDB R11, {R11,SP,PC} .text:000197FC BL free .text:00019800 LDMDB R11, {R11,SP,PC} .text:00019800 ; End of function free_mem_1 .text:00019800 .text:00019800 ; --------------------------------------------------------------------------- .text:00019804 off_19804 DCD string_space ; DATA XREF: free_mem_1+8r .text:00019808 off_19808 DCD map_0 ; DATA XREF: free_mem_1:loc_197ECr .text:0001980C .text:0001980C ; =============== S U B R O U T I N E ======================================= .text:0001980C .text:0001980C ; Attributes: bp-based frame .text:0001980C .text:0001980C alias_compare ; DATA XREF: _nl_expand_alias+48o .text:0001980C ; _nl_expand_alias:off_191DCo ... .text:0001980C MOV R12, SP .text:00019810 STMFD SP!, {R11,R12,LR,PC} .text:00019814 LDR R0, [R0] .text:00019818 LDR R1, [R1] .text:0001981C SUB R11, R12, #4 .text:00019820 BL strcasecmp .text:00019824 LDMDB R11, {R11,SP,PC} .text:00019824 ; End of function alias_compare .text:00019824 .text:00019828 .text:00019828 ; =============== S U B R O U T I N E ======================================= .text:00019828 .text:00019828 ; Attributes: bp-based frame .text:00019828 .text:00019828 EXPORT _nl_make_l10nflist .text:00019828 _nl_make_l10nflist ; CODE XREF: _nl_find_domain+60p .text:00019828 ; _nl_find_domain+1A8p ... .text:00019828 .text:00019828 var_68 = -0x68 .text:00019828 var_64 = -0x64 .text:00019828 var_60 = -0x60 .text:00019828 var_5C = -0x5C .text:00019828 var_58 = -0x58 .text:00019828 var_54 = -0x54 .text:00019828 var_50 = -0x50 .text:00019828 var_4C = -0x4C .text:00019828 var_48 = -0x48 .text:00019828 var_44 = -0x44 .text:00019828 var_40 = -0x40 .text:00019828 var_3C = -0x3C .text:00019828 var_38 = -0x38 .text:00019828 var_34 = -0x34 .text:00019828 var_30 = -0x30 .text:00019828 var_2C = -0x2C .text:00019828 arg_0 = 4 .text:00019828 arg_4 = 8 .text:00019828 arg_8 = 0xC .text:00019828 arg_C = 0x10 .text:00019828 arg_10 = 0x14 .text:00019828 arg_14 = 0x18 .text:00019828 arg_18 = 0x1C .text:00019828 arg_1C = 0x20 .text:00019828 arg_20 = 0x24 .text:00019828 arg_24 = 0x28 .text:00019828 .text:00019828 MOV R12, SP .text:0001982C STMFD SP!, {R4-R12,LR,PC} .text:00019830 SUB R11, R12, #4 .text:00019834 SUB SP, SP, #0x40 .text:00019838 STR R0, [R11,#var_2C] .text:0001983C STR R1, [R11,#var_30] .text:00019840 STR R2, [R11,#var_34] .text:00019844 LDR R0, [R11,#arg_0] .text:00019848 MOV R10, R3 .text:0001984C BL strlen .text:00019850 LDR R1, [R11,#var_34] .text:00019854 TST R10, #0x20 .text:00019858 ADD R4, R1, R0 .text:0001985C BEQ loc_19870 .text:00019860 LDR R0, [R11,#arg_4] .text:00019864 ADD R4, R4, #1 .text:00019868 BL strlen .text:0001986C ADD R4, R4, R0 .text:00019870 .text:00019870 loc_19870 ; CODE XREF: _nl_make_l10nflist+34j .text:00019870 ANDS R3, R10, #0x10 .text:00019874 STR R3, [R11,#var_3C] .text:00019878 BEQ loc_1988C .text:0001987C LDR R0, [R11,#arg_8] .text:00019880 ADD R4, R4, #1 .text:00019884 BL strlen .text:00019888 ADD R4, R4, R0 .text:0001988C .text:0001988C loc_1988C ; CODE XREF: _nl_make_l10nflist+50j .text:0001988C ANDS R3, R10, #8 .text:00019890 MOV R9, R3 .text:00019894 BEQ loc_198A8 .text:00019898 LDR R0, [R11,#arg_C] .text:0001989C ADD R4, R4, #1 .text:000198A0 BL strlen .text:000198A4 ADD R4, R4, R0 .text:000198A8 .text:000198A8 loc_198A8 ; CODE XREF: _nl_make_l10nflist+6Cj .text:000198A8 ANDS R3, R10, #0xC0 .text:000198AC MOV R7, R3 .text:000198B0 BEQ loc_198C4 .text:000198B4 LDR R0, [R11,#arg_10] .text:000198B8 ADD R4, R4, #1 .text:000198BC BL strlen .text:000198C0 ADD R4, R4, R0 .text:000198C4 .text:000198C4 loc_198C4 ; CODE XREF: _nl_make_l10nflist+88j .text:000198C4 ANDS R3, R10, #4 .text:000198C8 STR R3, [R11,#var_38] .text:000198CC BEQ loc_198E4 .text:000198D0 LDR R0, [R11,#arg_14] .text:000198D4 ADD R4, R4, #1 .text:000198D8 BL strlen .text:000198DC ADD R5, R4, R0 .text:000198E0 B loc_198E8 .text:000198E4 ; --------------------------------------------------------------------------- .text:000198E4 .text:000198E4 loc_198E4 ; CODE XREF: _nl_make_l10nflist+A4j .text:000198E4 MOV R5, R4 .text:000198E8 .text:000198E8 loc_198E8 ; CODE XREF: _nl_make_l10nflist+B8j .text:000198E8 LDR R0, [R11,#arg_20] .text:000198EC BL strlen .text:000198F0 MOV R6, R0 .text:000198F4 ANDS R3, R10, #3 .text:000198F8 MOV R8, R3 .text:000198FC BEQ loc_19950 .text:00019900 TST R10, #2 .text:00019904 BEQ loc_19918 .text:00019908 LDR R0, [R11,#arg_18] .text:0001990C BL strlen .text:00019910 ADD R3, R0, #2 .text:00019914 B loc_1991C .text:00019918 ; --------------------------------------------------------------------------- .text:00019918 .text:00019918 loc_19918 ; CODE XREF: _nl_make_l10nflist+DCj .text:00019918 MOV R3, #1 .text:0001991C .text:0001991C loc_1991C ; CODE XREF: _nl_make_l10nflist+ECj .text:0001991C TST R10, #1 .text:00019920 BEQ loc_19944 .text:00019924 LDR R0, [R11,#arg_1C] .text:00019928 ADD R4, R3, #1 .text:0001992C BL strlen .text:00019930 ADD R4, R4, R0 .text:00019934 ADD R4, R5, R4 .text:00019938 ADD R4, R6, R4 .text:0001993C ADD R0, R4, #2 .text:00019940 B loc_19958 .text:00019944 ; --------------------------------------------------------------------------- .text:00019944 .text:00019944 loc_19944 ; CODE XREF: _nl_make_l10nflist+F8j .text:00019944 ADD R3, R5, R3 .text:00019948 ADD R3, R6, R3 .text:0001994C B loc_19954 .text:00019950 ; --------------------------------------------------------------------------- .text:00019950 .text:00019950 loc_19950 ; CODE XREF: _nl_make_l10nflist+D4j .text:00019950 ADD R3, R6, R5 .text:00019954 .text:00019954 loc_19954 ; CODE XREF: _nl_make_l10nflist+124j .text:00019954 ADD R0, R3, #2 .text:00019958 .text:00019958 loc_19958 ; CODE XREF: _nl_make_l10nflist+118j .text:00019958 BL malloc .text:0001995C SUBS R4, R0, #0 .text:00019960 BEQ loc_19B78 .text:00019964 LDR R1, [R11,#var_30] .text:00019968 LDR R2, [R11,#var_34] .text:0001996C MOV R0, R4 .text:00019970 BL memcpy .text:00019974 MOV R0, R4 .text:00019978 LDR R1, [R11,#var_34] .text:0001997C MOV R2, #0x3A .text:00019980 BL argz_stringify .text:00019984 LDR R3, [R11,#var_34] .text:00019988 SUB R2, R3, #1 .text:0001998C MOV R3, #0x2F .text:00019990 STRB R3, [R4,R2] .text:00019994 ADD R0, R4, R2 .text:00019998 LDR R1, [R11,#arg_0] .text:0001999C ADD R0, R0, #1 .text:000199A0 BL stpcpy .text:000199A4 TST R10, #0x20 .text:000199A8 BEQ loc_199BC .text:000199AC MOV R3, #0x5F .text:000199B0 STRB R3, [R0],#1 .text:000199B4 LDR R1, [R11,#arg_4] .text:000199B8 BL stpcpy .text:000199BC .text:000199BC loc_199BC ; CODE XREF: _nl_make_l10nflist+180j .text:000199BC LDR R12, [R11,#var_3C] .text:000199C0 CMP R12, #0 .text:000199C4 BEQ loc_199D8 .text:000199C8 MOV R3, #0x2E .text:000199CC STRB R3, [R0],#1 .text:000199D0 LDR R1, [R11,#arg_8] .text:000199D4 BL stpcpy .text:000199D8 .text:000199D8 loc_199D8 ; CODE XREF: _nl_make_l10nflist+19Cj .text:000199D8 CMP R9, #0 .text:000199DC BEQ loc_199F0 .text:000199E0 MOV R3, #0x2E .text:000199E4 STRB R3, [R0],#1 .text:000199E8 LDR R1, [R11,#arg_C] .text:000199EC BL stpcpy .text:000199F0 .text:000199F0 loc_199F0 ; CODE XREF: _nl_make_l10nflist+1B4j .text:000199F0 CMP R7, #0 .text:000199F4 BEQ loc_19A28 .text:000199F8 MOV R2, R0 .text:000199FC ADD R0, R0, #1 .text:00019A00 TST R10, #0x40 .text:00019A04 BEQ loc_19A18 .text:00019A08 MOV R3, #0x2B .text:00019A0C B loc_19A1C .text:00019A10 ; --------------------------------------------------------------------------- .text:00019A10 .text:00019A10 loc_19A10 ; CODE XREF: _nl_make_l10nflist+294j .text:00019A10 MOV R8, #0 .text:00019A14 B loc_19AD0 .text:00019A18 ; --------------------------------------------------------------------------- .text:00019A18 .text:00019A18 loc_19A18 ; CODE XREF: _nl_make_l10nflist+1DCj .text:00019A18 MOV R3, #0x40 .text:00019A1C .text:00019A1C loc_19A1C ; CODE XREF: _nl_make_l10nflist+1E4j .text:00019A1C STRB R3, [R2] .text:00019A20 LDR R1, [R11,#arg_10] .text:00019A24 BL stpcpy .text:00019A28 .text:00019A28 loc_19A28 ; CODE XREF: _nl_make_l10nflist+1CCj .text:00019A28 LDR R1, [R11,#var_38] .text:00019A2C CMP R1, #0 .text:00019A30 BEQ loc_19A44 .text:00019A34 MOV R3, #0x2B .text:00019A38 STRB R3, [R0],#1 .text:00019A3C LDR R1, [R11,#arg_14] .text:00019A40 BL stpcpy .text:00019A44 .text:00019A44 loc_19A44 ; CODE XREF: _nl_make_l10nflist+208j .text:00019A44 CMP R8, #0 .text:00019A48 BEQ loc_19A7C .text:00019A4C TST R10, #2 .text:00019A50 MOV R3, #0x2C .text:00019A54 STRB R3, [R0],#1 .text:00019A58 BEQ loc_19A64 .text:00019A5C LDR R1, [R11,#arg_18] .text:00019A60 BL stpcpy .text:00019A64 .text:00019A64 loc_19A64 ; CODE XREF: _nl_make_l10nflist+230j .text:00019A64 TST R10, #1 .text:00019A68 BEQ loc_19A7C .text:00019A6C MOV R3, #0x5F .text:00019A70 STRB R3, [R0],#1 .text:00019A74 LDR R1, [R11,#arg_1C] .text:00019A78 BL stpcpy .text:00019A7C .text:00019A7C loc_19A7C ; CODE XREF: _nl_make_l10nflist+220j .text:00019A7C ; _nl_make_l10nflist+240j .text:00019A7C MOV R3, #0x2F .text:00019A80 STRB R3, [R0],#1 .text:00019A84 LDR R1, [R11,#arg_20] .text:00019A88 BL stpcpy .text:00019A8C LDR R2, [R11,#var_2C] .text:00019A90 LDR R8, [R2] .text:00019A94 MOV R6, #0 .text:00019A98 CMP R8, R6 .text:00019A9C BEQ loc_19AD0 .text:00019AA0 .text:00019AA0 loc_19AA0 ; CODE XREF: _nl_make_l10nflist+2A4j .text:00019AA0 LDR R0, [R8] .text:00019AA4 CMP R0, #0 .text:00019AA8 BEQ loc_19AC4 .text:00019AAC MOV R1, R4 .text:00019AB0 BL strcmp .text:00019AB4 CMP R0, #0 .text:00019AB8 BEQ loc_19AD0 .text:00019ABC BLT loc_19A10 .text:00019AC0 MOV R6, R8 .text:00019AC4 .text:00019AC4 loc_19AC4 ; CODE XREF: _nl_make_l10nflist+280j .text:00019AC4 LDR R8, [R8,#0xC] .text:00019AC8 CMP R8, #0 .text:00019ACC BNE loc_19AA0 .text:00019AD0 .text:00019AD0 loc_19AD0 ; CODE XREF: _nl_make_l10nflist+1ECj .text:00019AD0 ; _nl_make_l10nflist+274j ... .text:00019AD0 LDR R3, [R11,#arg_24] .text:00019AD4 CMP R3, #0 .text:00019AD8 MOVNE R3, #0 .text:00019ADC MOVEQ R3, #1 .text:00019AE0 CMP R8, #0 .text:00019AE4 MOVEQ R5, R3 .text:00019AE8 MOVNE R5, #1 .text:00019AEC CMP R5, #0 .text:00019AF0 BEQ loc_19B04 .text:00019AF4 MOV R0, R4 .text:00019AF8 BL free .text:00019AFC MOV R0, R8 .text:00019B00 B locret_19D20 .text:00019B04 ; --------------------------------------------------------------------------- .text:00019B04 .text:00019B04 loc_19B04 ; CODE XREF: _nl_make_l10nflist+2C8j .text:00019B04 LDR R0, [R11,#var_30] .text:00019B08 LDR R1, [R11,#var_34] .text:00019B0C BL argz_count .text:00019B10 BIC R2, R10, #0x5500 .text:00019B14 BIC R2, R2, #0x55 .text:00019B18 BIC R3, R10, #0x2A80 .text:00019B1C BIC R3, R3, #0x2A .text:00019B20 MOV R3, R3,LSL#17 .text:00019B24 MOV R3, R3,LSR#17 .text:00019B28 ADD R2, R3, R2,ASR#1 .text:00019B2C BIC R1, R2, #0x3300 .text:00019B30 BIC R1, R1, #0x33 .text:00019B34 BIC R3, R2, #0xCC0 .text:00019B38 BIC R3, R3, #0xC .text:00019B3C MOV R3, R3,LSL#18 .text:00019B40 MOV R3, R3,LSR#18 .text:00019B44 ADD R2, R3, R1,ASR#2 .text:00019B48 ADD R2, R2, R2,ASR#4 .text:00019B4C BIC R2, R2, #0xF0 .text:00019B50 MOV R2, R2,LSL#20 .text:00019B54 MOV R2, R2,LSR#20 .text:00019B58 ADD R3, R2, R2,LSR#8 .text:00019B5C AND R2, R3, #0xFF .text:00019B60 MOV R0, R0,LSL R2 .text:00019B64 MOV R0, R0,LSL#2 .text:00019B68 ADD R0, R0, #0x14 .text:00019B6C BL malloc .text:00019B70 SUBS R8, R0, #0 .text:00019B74 BNE loc_19B80 .text:00019B78 .text:00019B78 loc_19B78 ; CODE XREF: _nl_make_l10nflist+138j .text:00019B78 MOV R0, #0 .text:00019B7C B locret_19D20 .text:00019B80 ; --------------------------------------------------------------------------- .text:00019B80 .text:00019B80 loc_19B80 ; CODE XREF: _nl_make_l10nflist+34Cj .text:00019B80 STR R4, [R8] .text:00019B84 LDR R0, [R11,#var_30] .text:00019B88 LDR R1, [R11,#var_34] .text:00019B8C MOV R4, R5 .text:00019B90 BL argz_count .text:00019B94 CMP R0, #1 .text:00019B98 BNE loc_19BA8 .text:00019B9C AND R3, R10, #0x18 .text:00019BA0 CMP R3, #0x18 .text:00019BA4 BNE loc_19BAC .text:00019BA8 .text:00019BA8 loc_19BA8 ; CODE XREF: _nl_make_l10nflist+370j .text:00019BA8 MOV R4, #1 .text:00019BAC .text:00019BAC loc_19BAC ; CODE XREF: _nl_make_l10nflist+37Cj .text:00019BAC STR R4, [R8,#4] .text:00019BB0 CMP R6, #0 .text:00019BB4 MOV R3, #0 .text:00019BB8 STR R3, [R8,#8] .text:00019BBC BNE loc_19BD4 .text:00019BC0 LDR R12, [R11,#var_2C] .text:00019BC4 LDR R3, [R12] .text:00019BC8 STR R3, [R8,#0xC] .text:00019BCC STR R8, [R12] .text:00019BD0 B loc_19BE0 .text:00019BD4 ; --------------------------------------------------------------------------- .text:00019BD4 .text:00019BD4 loc_19BD4 ; CODE XREF: _nl_make_l10nflist+394j .text:00019BD4 LDR R3, [R6,#0xC] .text:00019BD8 STR R3, [R8,#0xC] .text:00019BDC STR R8, [R6,#0xC] .text:00019BE0 .text:00019BE0 loc_19BE0 ; CODE XREF: _nl_make_l10nflist+3A8j .text:00019BE0 LDR R0, [R11,#var_30] .text:00019BE4 LDR R1, [R11,#var_34] .text:00019BE8 MOV R9, #0 .text:00019BEC BL argz_count .text:00019BF0 CMP R0, #1 .text:00019BF4 MOVNE R6, R10 .text:00019BF8 SUBEQ R6, R10, #1 .text:00019BFC CMP R6, R9 .text:00019C00 ADD R0, R8, #0x10 .text:00019C04 STR R0, [R11,#var_40] .text:00019C08 BLT loc_19D10 .text:00019C0C .text:00019C0C loc_19C0C ; CODE XREF: _nl_make_l10nflist+4E4j .text:00019C0C SUB R7, R6, #1 .text:00019C10 BICS R0, R6, R10 .text:00019C14 BNE loc_19D08 .text:00019C18 TST R6, #0x47 .text:00019C1C BEQ loc_19C28 .text:00019C20 TST R6, #0x98 .text:00019C24 BNE loc_19D08 .text:00019C28 .text:00019C28 loc_19C28 ; CODE XREF: _nl_make_l10nflist+3F4j .text:00019C28 AND R3, R6, #0x18 .text:00019C2C CMP R3, #0x18 .text:00019C30 SUB R7, R6, #1 .text:00019C34 BEQ loc_19D08 .text:00019C38 MOV R5, R0 .text:00019C3C B loc_19CB8 .text:00019C40 ; --------------------------------------------------------------------------- .text:00019C40 .text:00019C40 loc_19C40 ; CODE XREF: _nl_make_l10nflist+4DCj .text:00019C40 MOV R0, R5 .text:00019C44 BL strlen .text:00019C48 LDR R1, [R11,#arg_0] .text:00019C4C STR R1, [SP,#0x68+var_68] .text:00019C50 LDR R2, [R11,#arg_4] .text:00019C54 STR R2, [SP,#0x68+var_64] .text:00019C58 LDR R3, [R11,#arg_8] .text:00019C5C STR R3, [SP,#0x68+var_60] .text:00019C60 LDR R12, [R11,#arg_C] .text:00019C64 STR R12, [SP,#0x68+var_5C] .text:00019C68 LDR R1, [R11,#arg_10] .text:00019C6C STR R1, [SP,#0x68+var_58] .text:00019C70 LDR R2, [R11,#arg_14] .text:00019C74 STR R2, [SP,#0x68+var_54] .text:00019C78 LDR R3, [R11,#arg_18] .text:00019C7C STR R3, [SP,#0x68+var_50] .text:00019C80 LDR R12, [R11,#arg_1C] .text:00019C84 STR R12, [SP,#0x68+var_4C] .text:00019C88 LDR R1, [R11,#arg_20] .text:00019C8C MOV R3, #1 .text:00019C90 STR R3, [SP,#0x68+var_44] .text:00019C94 STR R1, [SP,#0x68+var_48] .text:00019C98 ADD R2, R0, R3 .text:00019C9C MOV R3, R6 .text:00019CA0 LDR R0, [R11,#var_2C] .text:00019CA4 MOV R1, R5 .text:00019CA8 BL _nl_make_l10nflist .text:00019CAC LDR R2, [R11,#var_40] .text:00019CB0 STR R0, [R2,R9,LSL#2] .text:00019CB4 ADD R9, R9, #1 .text:00019CB8 .text:00019CB8 loc_19CB8 ; CODE XREF: _nl_make_l10nflist+414j .text:00019CB8 SUBS R0, R5, #0 .text:00019CBC BEQ loc_19CF0 .text:00019CC0 LDR R3, [R11,#var_30] .text:00019CC4 LDR R12, [R11,#var_34] .text:00019CC8 ADD R4, R3, R12 .text:00019CCC CMP R5, R4 .text:00019CD0 BCS loc_19CE0 .text:00019CD4 MOV R1, #0 .text:00019CD8 BL rawmemchr .text:00019CDC ADD R0, R0, #1 .text:00019CE0 .text:00019CE0 loc_19CE0 ; CODE XREF: _nl_make_l10nflist+4A8j .text:00019CE0 CMP R0, R4 .text:00019CE4 MOVCC R5, R0 .text:00019CE8 MOVCS R5, #0 .text:00019CEC B loc_19D00 .text:00019CF0 ; --------------------------------------------------------------------------- .text:00019CF0 .text:00019CF0 loc_19CF0 ; CODE XREF: _nl_make_l10nflist+494j .text:00019CF0 SUB R0, R11, #-var_34 .text:00019CF4 LDMIA R0, {R0,R5} .text:00019CF8 CMP R0, #0 .text:00019CFC MOVEQ R5, #0 .text:00019D00 .text:00019D00 loc_19D00 ; CODE XREF: _nl_make_l10nflist+4C4j .text:00019D00 CMP R5, #0 .text:00019D04 BNE loc_19C40 .text:00019D08 .text:00019D08 loc_19D08 ; CODE XREF: _nl_make_l10nflist+3ECj .text:00019D08 ; _nl_make_l10nflist+3FCj ... .text:00019D08 SUBS R6, R7, #0 .text:00019D0C BGE loc_19C0C .text:00019D10 .text:00019D10 loc_19D10 ; CODE XREF: _nl_make_l10nflist+3E0j .text:00019D10 MOV R0, R8 .text:00019D14 LDR R1, [R11,#var_40] .text:00019D18 MOV R3, #0 .text:00019D1C STR R3, [R1,R9,LSL#2] .text:00019D20 .text:00019D20 locret_19D20 ; CODE XREF: _nl_make_l10nflist+2D8j .text:00019D20 ; _nl_make_l10nflist+354j .text:00019D20 LDMDB R11, {R4-R11,SP,PC} .text:00019D20 ; End of function _nl_make_l10nflist .text:00019D20 .text:00019D24 .text:00019D24 ; =============== S U B R O U T I N E ======================================= .text:00019D24 .text:00019D24 ; Attributes: bp-based frame .text:00019D24 .text:00019D24 EXPORT _nl_normalize_codeset .text:00019D24 _nl_normalize_codeset ; CODE XREF: _nl_explode_name+140p .text:00019D24 MOV R12, SP .text:00019D28 STMFD SP!, {R4-R8,R10-R12,LR,PC} .text:00019D2C SUB R11, R12, #4 .text:00019D30 MOV R12, #0 .text:00019D34 MOV R4, #1 .text:00019D38 MOV LR, R12 .text:00019D3C MOV R5, R1 .text:00019D40 CMP LR, R5 .text:00019D44 MOV R7, R0 .text:00019D48 BCS loc_19D8C .text:00019D4C LDR R3, =__ctype_b .text:00019D50 LDR R0, [R3] .text:00019D54 .text:00019D54 loc_19D54 ; CODE XREF: _nl_normalize_codeset+64j .text:00019D54 LDRB R3, [R7,LR] .text:00019D58 MOV R3, R3,LSL#1 .text:00019D5C LDRB R1, [R3,R0] .text:00019D60 ADD R3, R3, R0 .text:00019D64 LDRB R2, [R3,#1] .text:00019D68 ORR R3, R1, R2,LSL#8 .text:00019D6C TST R3, #8 .text:00019D70 BEQ loc_19D80 .text:00019D74 ADD R12, R12, #1 .text:00019D78 TST R3, #0x400 .text:00019D7C MOVNE R4, #0 .text:00019D80 .text:00019D80 loc_19D80 ; CODE XREF: _nl_normalize_codeset+4Cj .text:00019D80 ADD LR, LR, #1 .text:00019D84 CMP LR, R5 .text:00019D88 BCC loc_19D54 .text:00019D8C .text:00019D8C loc_19D8C ; CODE XREF: _nl_normalize_codeset+24j .text:00019D8C CMP R4, #0 .text:00019D90 ADDNE R0, R12, #4 .text:00019D94 ADDEQ R0, R12, #1 .text:00019D98 BL malloc .text:00019D9C SUBS R6, R0, #0 .text:00019DA0 BEQ loc_19E24 .text:00019DA4 CMP R4, #0 .text:00019DA8 BEQ loc_19DC0 .text:00019DAC LDR R1, =aIso ; "iso" .text:00019DB0 MOV R0, R6 .text:00019DB4 BL stpcpy .text:00019DB8 MOV R4, R0 .text:00019DBC B loc_19DC4 .text:00019DC0 ; --------------------------------------------------------------------------- .text:00019DC0 .text:00019DC0 loc_19DC0 ; CODE XREF: _nl_normalize_codeset+84j .text:00019DC0 MOV R4, R6 .text:00019DC4 .text:00019DC4 loc_19DC4 ; CODE XREF: _nl_normalize_codeset+98j .text:00019DC4 MOV LR, #0 .text:00019DC8 CMP LR, R5 .text:00019DCC BCS loc_19E1C .text:00019DD0 LDR R10, =__ctype_b .text:00019DD4 LDR R8, =__ctype_tolower .text:00019DD8 .text:00019DD8 loc_19DD8 ; CODE XREF: _nl_normalize_codeset+F4j .text:00019DD8 LDRB R12, [R7,LR] .text:00019DDC LDR R1, [R10] .text:00019DE0 MOV R3, R12,LSL#1 .text:00019DE4 LDRB R0, [R3,R1] .text:00019DE8 ADD R3, R3, R1 .text:00019DEC LDRB R2, [R3,#1] .text:00019DF0 ORR R3, R0, R2,LSL#8 .text:00019DF4 TST R3, #0x400 .text:00019DF8 LDRNE R3, [R8] .text:00019DFC LDRNE R2, [R3,R12,LSL#2] .text:00019E00 STRNEB R2, [R4],#1 .text:00019E04 BNE loc_19E10 .text:00019E08 TST R3, #0x800 .text:00019E0C STRNEB R12, [R4],#1 .text:00019E10 .text:00019E10 loc_19E10 ; CODE XREF: _nl_normalize_codeset+E0j .text:00019E10 ADD LR, LR, #1 .text:00019E14 CMP LR, R5 .text:00019E18 BCC loc_19DD8 .text:00019E1C .text:00019E1C loc_19E1C ; CODE XREF: _nl_normalize_codeset+A8j .text:00019E1C MOV R3, #0 .text:00019E20 STRB R3, [R4] .text:00019E24 .text:00019E24 loc_19E24 ; CODE XREF: _nl_normalize_codeset+7Cj .text:00019E24 MOV R0, R6 .text:00019E28 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:00019E28 ; End of function _nl_normalize_codeset .text:00019E28 .text:00019E28 ; --------------------------------------------------------------------------- .text:00019E2C off_19E2C DCD __ctype_b ; DATA XREF: _nl_normalize_codeset+28r .text:00019E2C ; _nl_normalize_codeset+ACr .text:00019E30 off_19E30 DCD aIso ; DATA XREF: _nl_normalize_codeset+88r .text:00019E30 ; "iso" .text:00019E34 off_19E34 DCD __ctype_tolower ; DATA XREF: _nl_normalize_codeset+B0r .text:00019E38 .text:00019E38 ; =============== S U B R O U T I N E ======================================= .text:00019E38 .text:00019E38 ; Attributes: bp-based frame .text:00019E38 .text:00019E38 EXPORT _nl_find_language .text:00019E38 _nl_find_language ; CODE XREF: _nl_explode_name+5Cp .text:00019E38 MOV R12, SP .text:00019E3C STMFD SP!, {R11,R12,LR,PC} .text:00019E40 LDRB R3, [R0] .text:00019E44 SUB R11, R12, #4 .text:00019E48 CMP R3, #0 .text:00019E4C CMPNE R3, #0x5F .text:00019E50 LDMEQDB R11, {R11,SP,PC} .text:00019E54 CMP R3, #0x40 .text:00019E58 LDMEQDB R11, {R11,SP,PC} .text:00019E5C CMP R3, #0x2B .text:00019E60 LDMEQDB R11, {R11,SP,PC} .text:00019E64 CMP R3, #0x2C .text:00019E68 LDMEQDB R11, {R11,SP,PC} .text:00019E6C .text:00019E6C loc_19E6C ; CODE XREF: _nl_find_language+5Cj .text:00019E6C LDRB R3, [R0,#1]! .text:00019E70 AND R3, R3, #0xFF .text:00019E74 CMP R3, #0 .text:00019E78 CMPNE R3, #0x5F .text:00019E7C LDMEQDB R11, {R11,SP,PC} .text:00019E80 CMP R3, #0x40 .text:00019E84 LDMEQDB R11, {R11,SP,PC} .text:00019E88 CMP R3, #0x2B .text:00019E8C LDMEQDB R11, {R11,SP,PC} .text:00019E90 CMP R3, #0x2C .text:00019E94 BNE loc_19E6C .text:00019E98 LDMDB R11, {R11,SP,PC} .text:00019E98 ; End of function _nl_find_language .text:00019E98 .text:00019E9C .text:00019E9C ; =============== S U B R O U T I N E ======================================= .text:00019E9C .text:00019E9C ; Attributes: bp-based frame .text:00019E9C .text:00019E9C EXPORT _nl_explode_name .text:00019E9C _nl_explode_name ; CODE XREF: _nl_find_domain+13Cp .text:00019E9C ; _nl_find_locale+170p .text:00019E9C .text:00019E9C arg_0 = 4 .text:00019E9C arg_4 = 8 .text:00019E9C arg_8 = 0xC .text:00019E9C arg_C = 0x10 .text:00019E9C arg_10 = 0x14 .text:00019E9C .text:00019E9C MOV R12, SP .text:00019EA0 STMFD SP!, {R4-R12,LR,PC} .text:00019EA4 MOV R9, R2 .text:00019EA8 MOV R2, #0 .text:00019EAC STR R2, [R9] .text:00019EB0 MOV R10, R3 .text:00019EB4 STR R2, [R10] .text:00019EB8 SUB R11, R12, #4 .text:00019EBC LDR R3, [R11,#arg_0] .text:00019EC0 STR R2, [R3] .text:00019EC4 LDR R8, [R11,#arg_4] .text:00019EC8 STR R2, [R8] .text:00019ECC LDR R3, [R11,#arg_8] .text:00019ED0 STR R2, [R3] .text:00019ED4 LDR R3, [R11,#arg_C] .text:00019ED8 STR R2, [R3] .text:00019EDC LDR R3, [R11,#arg_10] .text:00019EE0 STR R2, [R3] .text:00019EE4 MOV R5, R0 .text:00019EE8 MOV R4, R1 .text:00019EEC STR R5, [R4] .text:00019EF0 MOV R6, R2 .text:00019EF4 MOV R7, R6 .text:00019EF8 BL _nl_find_language .text:00019EFC LDR R3, [R4] .text:00019F00 MOV R5, R0 .text:00019F04 CMP R3, R5 .text:00019F08 BNE loc_19F1C .text:00019F0C MOV R1, R6 .text:00019F10 BL rawmemchr .text:00019F14 MOV R5, R0 .text:00019F18 B loc_1A00C .text:00019F1C ; --------------------------------------------------------------------------- .text:00019F1C .text:00019F1C loc_19F1C ; CODE XREF: _nl_explode_name+6Cj .text:00019F1C LDRB R3, [R5] .text:00019F20 CMP R3, #0x5F .text:00019F24 BNE loc_1A00C .text:00019F28 STRB R6, [R5],#1 .text:00019F2C STR R5, [R10] .text:00019F30 ORR R0, R6, #0x20 .text:00019F34 B loc_19F3C .text:00019F38 ; --------------------------------------------------------------------------- .text:00019F38 .text:00019F38 loc_19F38 ; CODE XREF: _nl_explode_name+D0j .text:00019F38 ADD R5, R5, #1 .text:00019F3C .text:00019F3C loc_19F3C ; CODE XREF: _nl_explode_name+98j .text:00019F3C LDRB R3, [R5] .text:00019F40 CMP R3, #0 .text:00019F44 CMPNE R3, #0x2E .text:00019F48 BEQ loc_19F70 .text:00019F4C AND R3, R3, #0xFF .text:00019F50 CMP R3, #0x40 .text:00019F54 BEQ loc_19F70 .text:00019F58 CMP R3, #0x2B .text:00019F5C BEQ loc_19F70 .text:00019F60 CMP R3, #0x2C .text:00019F64 BEQ loc_19F70 .text:00019F68 CMP R3, #0x5F .text:00019F6C BNE loc_19F38 .text:00019F70 .text:00019F70 loc_19F70 ; CODE XREF: _nl_explode_name+ACj .text:00019F70 ; _nl_explode_name+B8j ... .text:00019F70 LDRB R3, [R5] .text:00019F74 MOV R6, R0 .text:00019F78 CMP R3, #0x2E .text:00019F7C BNE loc_1A00C .text:00019F80 MOV R3, #0 .text:00019F84 STRB R3, [R5],#1 .text:00019F88 LDR R3, [R11,#arg_0] .text:00019F8C STR R5, [R3] .text:00019F90 MOV R7, #1 .text:00019F94 LDRB R3, [R5] .text:00019F98 ORR R1, R6, #0x10 .text:00019F9C CMP R3, #0 .text:00019FA0 CMPNE R3, #0x40 .text:00019FA4 BEQ loc_19FB8 .text:00019FA8 .text:00019FA8 loc_19FA8 ; CODE XREF: _nl_explode_name+118j .text:00019FA8 LDRB R3, [R5,#1]! .text:00019FAC CMP R3, #0 .text:00019FB0 CMPNE R3, #0x40 .text:00019FB4 BNE loc_19FA8 .text:00019FB8 .text:00019FB8 loc_19FB8 ; CODE XREF: _nl_explode_name+108j .text:00019FB8 LDR R3, [R11,#arg_0] .text:00019FBC LDR R0, [R3] .text:00019FC0 MOV R6, R1 .text:00019FC4 CMP R0, R5 .text:00019FC8 BEQ loc_1A00C .text:00019FCC LDRB R3, [R0] .text:00019FD0 CMP R3, #0 .text:00019FD4 BEQ loc_1A00C .text:00019FD8 RSB R1, R0, R5 .text:00019FDC BL _nl_normalize_codeset .text:00019FE0 MOV R1, R0 .text:00019FE4 STR R1, [R8] .text:00019FE8 LDR R3, [R11,#arg_0] .text:00019FEC LDR R0, [R3] .text:00019FF0 BL strcmp .text:00019FF4 CMP R0, #0 .text:00019FF8 BNE loc_1A008 .text:00019FFC LDR R0, [R8] .text:0001A000 BL free .text:0001A004 B loc_1A00C .text:0001A008 ; --------------------------------------------------------------------------- .text:0001A008 .text:0001A008 loc_1A008 ; CODE XREF: _nl_explode_name+15Cj .text:0001A008 ORR R6, R6, #8 .text:0001A00C .text:0001A00C loc_1A00C ; CODE XREF: _nl_explode_name+7Cj .text:0001A00C ; _nl_explode_name+88j ... .text:0001A00C LDRB R2, [R5] .text:0001A010 CMP R2, #0x40 .text:0001A014 BEQ loc_1A028 .text:0001A018 CMP R7, #1 .text:0001A01C BEQ loc_1A08C .text:0001A020 CMP R2, #0x2B .text:0001A024 BNE loc_1A08C .text:0001A028 .text:0001A028 loc_1A028 ; CODE XREF: _nl_explode_name+178j .text:0001A028 MOV R3, #0 .text:0001A02C STRB R3, [R5],#1 .text:0001A030 CMP R2, #0x40 .text:0001A034 MOVNE R7, #2 .text:0001A038 MOVEQ R7, #1 .text:0001A03C CMP R7, #2 .text:0001A040 ORR R0, R6, #0xC0 .text:0001A044 STR R5, [R9] .text:0001A048 BNE loc_1A088 .text:0001A04C LDRB R12, [R5] .text:0001A050 CMP R12, R3 .text:0001A054 B loc_1A06C .text:0001A058 ; --------------------------------------------------------------------------- .text:0001A058 .text:0001A058 loc_1A058 ; CODE XREF: _nl_explode_name+1E8j .text:0001A058 ADD R5, R5, #1 .text:0001A05C CMP R7, #2 .text:0001A060 BNE loc_1A088 .text:0001A064 LDRB R12, [R5] .text:0001A068 CMP R12, #0 .text:0001A06C .text:0001A06C loc_1A06C ; CODE XREF: _nl_explode_name+1B8j .text:0001A06C BEQ loc_1A088 .text:0001A070 CMP R12, #0x2B .text:0001A074 BEQ loc_1A088 .text:0001A078 CMP R12, #0x2C .text:0001A07C BEQ loc_1A088 .text:0001A080 CMP R12, #0x5F .text:0001A084 BNE loc_1A058 .text:0001A088 .text:0001A088 loc_1A088 ; CODE XREF: _nl_explode_name+1ACj .text:0001A088 ; _nl_explode_name+1C4j ... .text:0001A088 MOV R6, R0 .text:0001A08C .text:0001A08C loc_1A08C ; CODE XREF: _nl_explode_name+180j .text:0001A08C ; _nl_explode_name+188j .text:0001A08C CMP R7, #1 .text:0001A090 BEQ loc_1A150 .text:0001A094 LDRB R2, [R5] .text:0001A098 SUB R3, R2, #0x2B .text:0001A09C CMP R2, #0x5F .text:0001A0A0 CMPNE R3, #1 .text:0001A0A4 BHI loc_1A150 .text:0001A0A8 MOV R7, #2 .text:0001A0AC CMP R2, #0x2B .text:0001A0B0 BNE loc_1A0EC .text:0001A0B4 MOV R3, #0 .text:0001A0B8 STRB R3, [R5],#1 .text:0001A0BC LDR R3, [R11,#arg_8] .text:0001A0C0 STR R5, [R3] .text:0001A0C4 LDRB R12, [R5] .text:0001A0C8 ORR R0, R6, #4 .text:0001A0CC B loc_1A0D4 .text:0001A0D0 ; --------------------------------------------------------------------------- .text:0001A0D0 .text:0001A0D0 loc_1A0D0 ; CODE XREF: _nl_explode_name+248j .text:0001A0D0 LDRB R12, [R5,#1]! .text:0001A0D4 .text:0001A0D4 loc_1A0D4 ; CODE XREF: _nl_explode_name+230j .text:0001A0D4 CMP R12, #0 .text:0001A0D8 CMPNE R12, #0x2C .text:0001A0DC BEQ loc_1A0E8 .text:0001A0E0 CMP R12, #0x5F .text:0001A0E4 BNE loc_1A0D0 .text:0001A0E8 .text:0001A0E8 loc_1A0E8 ; CODE XREF: _nl_explode_name+240j .text:0001A0E8 MOV R6, R0 .text:0001A0EC .text:0001A0EC loc_1A0EC ; CODE XREF: _nl_explode_name+214j .text:0001A0EC LDRB R3, [R5] .text:0001A0F0 CMP R3, #0x2C .text:0001A0F4 BNE loc_1A134 .text:0001A0F8 MOV R3, #0 .text:0001A0FC STRB R3, [R5],#1 .text:0001A100 LDR R3, [R11,#arg_C] .text:0001A104 STR R5, [R3] .text:0001A108 LDRB R3, [R5] .text:0001A10C ORR R0, R6, #2 .text:0001A110 CMP R3, #0 .text:0001A114 CMPNE R3, #0x5F .text:0001A118 BEQ loc_1A12C .text:0001A11C .text:0001A11C loc_1A11C ; CODE XREF: _nl_explode_name+28Cj .text:0001A11C LDRB R3, [R5,#1]! .text:0001A120 CMP R3, #0 .text:0001A124 CMPNE R3, #0x5F .text:0001A128 BNE loc_1A11C .text:0001A12C .text:0001A12C loc_1A12C ; CODE XREF: _nl_explode_name+27Cj .text:0001A12C MOV R6, R0 .text:0001A130 LDRB R3, [R5] .text:0001A134 .text:0001A134 loc_1A134 ; CODE XREF: _nl_explode_name+258j .text:0001A134 CMP R3, #0x5F .text:0001A138 BNE loc_1A150 .text:0001A13C MOV R3, #0 .text:0001A140 STRB R3, [R5],#1 .text:0001A144 LDR R3, [R11,#arg_10] .text:0001A148 ORR R6, R6, #1 .text:0001A14C STR R5, [R3] .text:0001A150 .text:0001A150 loc_1A150 ; CODE XREF: _nl_explode_name+1F4j .text:0001A150 ; _nl_explode_name+208j ... .text:0001A150 CMP R7, #1 .text:0001A154 BNE loc_1A1B0 .text:0001A158 LDR R3, [R10] .text:0001A15C CMP R3, #0 .text:0001A160 BEQ loc_1A174 .text:0001A164 LDRB R2, [R3] .text:0001A168 BIC R3, R6, #0x20 .text:0001A16C CMP R2, #0 .text:0001A170 MOVEQ R6, R3 .text:0001A174 .text:0001A174 loc_1A174 ; CODE XREF: _nl_explode_name+2C4j .text:0001A174 LDR R3, [R11,#arg_0] .text:0001A178 LDR R0, [R3] .text:0001A17C CMP R0, #0 .text:0001A180 BEQ loc_1A194 .text:0001A184 LDRB R2, [R0] .text:0001A188 BIC R3, R6, #0x10 .text:0001A18C CMP R2, #0 .text:0001A190 MOVEQ R6, R3 .text:0001A194 .text:0001A194 loc_1A194 ; CODE XREF: _nl_explode_name+2E4j .text:0001A194 LDR R2, [R9] .text:0001A198 CMP R2, #0 .text:0001A19C BEQ loc_1A1B0 .text:0001A1A0 LDRB R2, [R2] .text:0001A1A4 BIC R3, R6, #0x80 .text:0001A1A8 CMP R2, #0 .text:0001A1AC MOVEQ R6, R3 .text:0001A1B0 .text:0001A1B0 loc_1A1B0 ; CODE XREF: _nl_explode_name+2B8j .text:0001A1B0 ; _nl_explode_name+300j .text:0001A1B0 MOV R0, R6 .text:0001A1B4 LDMDB R11, {R4-R11,SP,PC} .text:0001A1B4 ; End of function _nl_explode_name .text:0001A1B4 .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 new_exp ; CODE XREF: new_exp_2+24p .text:0001A1B8 ; __gettextparse:loc_1A5ECp ... .text:0001A1B8 MOV R12, SP .text:0001A1BC STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0001A1C0 SUB R11, R12, #4 .text:0001A1C4 MOV R5, R0 .text:0001A1C8 SUBS R4, R5, #1 .text:0001A1CC MOV R7, R1 .text:0001A1D0 MOV R6, R2 .text:0001A1D4 BMI loc_1A1EC .text:0001A1D8 .text:0001A1D8 loc_1A1D8 ; CODE XREF: new_exp+30j .text:0001A1D8 LDR R3, [R6,R4,LSL#2] .text:0001A1DC CMP R3, #0 .text:0001A1E0 BEQ loc_1A224 .text:0001A1E4 SUBS R4, R4, #1 .text:0001A1E8 BPL loc_1A1D8 .text:0001A1EC .text:0001A1EC loc_1A1EC ; CODE XREF: new_exp+1Cj .text:0001A1EC MOV R0, #0x14 .text:0001A1F0 BL malloc .text:0001A1F4 CMP R0, #0 .text:0001A1F8 BEQ loc_1A224 .text:0001A1FC STR R5, [R0] .text:0001A200 SUBS R4, R5, #1 .text:0001A204 STR R7, [R0,#4] .text:0001A208 LDMMIDB R11, {R4-R7,R11,SP,PC} .text:0001A20C ADD R2, R0, #8 .text:0001A210 .text:0001A210 loc_1A210 ; CODE XREF: new_exp+64j .text:0001A210 LDR R3, [R6,R4,LSL#2] .text:0001A214 STR R3, [R2,R4,LSL#2] .text:0001A218 SUBS R4, R4, #1 .text:0001A21C BPL loc_1A210 .text:0001A220 LDMDB R11, {R4-R7,R11,SP,PC} .text:0001A224 ; --------------------------------------------------------------------------- .text:0001A224 .text:0001A224 loc_1A224 ; CODE XREF: new_exp+28j .text:0001A224 ; new_exp+40j .text:0001A224 SUBS R4, R5, #1 .text:0001A228 BMI loc_1A23C .text:0001A22C .text:0001A22C loc_1A22C ; CODE XREF: new_exp+80j .text:0001A22C LDR R0, [R6,R4,LSL#2] .text:0001A230 BL __gettext_free_exp .text:0001A234 SUBS R4, R4, #1 .text:0001A238 BPL loc_1A22C .text:0001A23C .text:0001A23C loc_1A23C ; CODE XREF: new_exp+70j .text:0001A23C MOV R0, #0 .text:0001A240 LDMDB R11, {R4-R7,R11,SP,PC} .text:0001A240 ; End of function new_exp .text:0001A240 .text:0001A244 .text:0001A244 ; =============== S U B R O U T I N E ======================================= .text:0001A244 .text:0001A244 ; Attributes: bp-based frame .text:0001A244 .text:0001A244 new_exp_2 ; CODE XREF: __gettextparse:loc_1A5B4p .text:0001A244 .text:0001A244 var_14 = -0x14 .text:0001A244 var_10 = -0x10 .text:0001A244 .text:0001A244 MOV R12, SP .text:0001A248 STMFD SP!, {R11,R12,LR,PC} .text:0001A24C SUB R11, R12, #4 .text:0001A250 SUB SP, SP, #8 .text:0001A254 STR R1, [R11,#var_14] .text:0001A258 STR R2, [R11,#var_10] .text:0001A25C MOV R1, R0 .text:0001A260 MOV R0, #2 .text:0001A264 SUB R2, R11, #-var_14 .text:0001A268 BL new_exp .text:0001A26C LDMDB R11, {R11,SP,PC} .text:0001A26C ; End of function new_exp_2 .text:0001A26C .text:0001A270 .text:0001A270 ; =============== S U B R O U T I N E ======================================= .text:0001A270 .text:0001A270 ; Attributes: bp-based frame .text:0001A270 .text:0001A270 EXPORT __gettextparse .text:0001A270 __gettextparse ; CODE XREF: _nl_load_domain+400p .text:0001A270 .text:0001A270 var_500 = -0x500 .text:0001A270 var_4FC = -0x4FC .text:0001A270 var_4F8 = -0x4F8 .text:0001A270 var_4F4 = -0x4F4 .text:0001A270 var_4F0 = -0x4F0 .text:0001A270 var_4EC = -0x4EC .text:0001A270 var_4E8 = -0x4E8 .text:0001A270 var_4E4 = -0x4E4 .text:0001A270 var_4E0 = -0x4E0 .text:0001A270 var_4DC = -0x4DC .text:0001A270 var_4D0 = -0x4D0 .text:0001A270 var_1B8 = -0x1B8 .text:0001A270 .text:0001A270 MOV R12, SP .text:0001A274 STMFD SP!, {R4-R12,LR,PC} .text:0001A278 SUB R11, R12, #4 .text:0001A27C SUB SP, SP, #0x4D0 .text:0001A280 SUB SP, SP, #8 .text:0001A284 STR R0, [R11,#var_4F0] .text:0001A288 SUB R2, R11, #-var_4D0 .text:0001A28C SUB R2, R2, #8 .text:0001A290 STR R2, [R11,#var_4F8] .text:0001A294 MOV R3, #0xC8 .text:0001A298 STR R3, [R11,#var_4FC] .text:0001A29C MOV R8, #0 .text:0001A2A0 STR R8, [R11,#var_4F4] .text:0001A2A4 SUB R10, R11, #-var_1B8 .text:0001A2A8 MOV R2, 0xFFFFFFFE .text:0001A2AC LDR R5, [R11,#var_4F8] .text:0001A2B0 ADD R6, R10, R2 .text:0001A2B4 STR R2, [R11,#var_500] .text:0001A2B8 .text:0001A2B8 loc_1A2B8 ; CODE XREF: __gettextparse+488j .text:0001A2B8 ; __gettextparse+584j .text:0001A2B8 STRB R8, [R6,#2]! .text:0001A2BC LDR R3, [R11,#var_4FC] .text:0001A2C0 MOV R2, R8,ASR#8 .text:0001A2C4 STRB R2, [R6,#1] .text:0001A2C8 MOV R0, R3,LSL#1 .text:0001A2CC ADD R3, R10, R0 .text:0001A2D0 SUB R3, R3, #2 .text:0001A2D4 CMP R6, R3 .text:0001A2D8 BCC loc_1A3A4 .text:0001A2DC MOV R3, 0x270F .text:0001A2E4 LDR R2, [R11,#var_4FC] .text:0001A2E8 MOV R1, R10 .text:0001A2EC LDR R9, [R11,#var_4F8] .text:0001A2F0 CMP R2, R3 .text:0001A2F4 RSB R3, R10, R6 .text:0001A2F8 MOV R3, R3,ASR#1 .text:0001A2FC ADD R5, R3, #1 .text:0001A300 BLE loc_1A330 .text:0001A304 LDR R0, =aParserStackOve ; "parser stack overflow" .text:0001A308 BL __gettexterror .text:0001A30C MOV R3, #0 .text:0001A310 CMP R3, R3 .text:0001A314 BEQ loc_1A328 .text:0001A318 MOV R0, R10 .text:0001A31C BL free .text:0001A320 LDR R0, [R11,#var_4F8] .text:0001A324 BL free .text:0001A328 .text:0001A328 loc_1A328 ; CODE XREF: __gettextparse+A4j .text:0001A328 MOV R0, #2 .text:0001A32C B locret_1A850 .text:0001A330 ; --------------------------------------------------------------------------- .text:0001A330 .text:0001A330 loc_1A330 ; CODE XREF: __gettextparse+90j .text:0001A330 MOV R3, 0x2710 .text:0001A338 CMP R0, R3 .text:0001A33C MOVGE R0, R3 .text:0001A340 SUB SP, SP, R0,LSL#1 .text:0001A344 STR R0, [R11,#var_4FC] .text:0001A348 MOV R10, SP .text:0001A34C MOV R0, SP .text:0001A350 MOV R4, R5,LSL#1 .text:0001A354 MOV R2, R4 .text:0001A358 BL memcpy .text:0001A35C LDR R2, [R11,#var_4FC] .text:0001A360 SUB SP, SP, R2,LSL#2 .text:0001A364 STR SP, [R11,#var_4F8] .text:0001A368 MOV R1, R9 .text:0001A36C MOV R5, R5,LSL#2 .text:0001A370 MOV R0, SP .text:0001A374 MOV R2, R5 .text:0001A378 BL memcpy .text:0001A37C ADD R4, R10, R4 .text:0001A380 ADD R2, SP, R5 .text:0001A384 SUB R5, R2, #4 .text:0001A388 LDR R2, [R11,#var_4FC] .text:0001A38C SUB R6, R4, #2 .text:0001A390 MOV R3, R2,LSL#1 .text:0001A394 ADD R3, R10, R3 .text:0001A398 SUB R3, R3, #2 .text:0001A39C CMP R6, R3 .text:0001A3A0 BCS loc_1A830 .text:0001A3A4 .text:0001A3A4 loc_1A3A4 ; CODE XREF: __gettextparse+68j .text:0001A3A4 LDR R1, =yypact .text:0001A3A8 MOV R0, R8,LSL#1 .text:0001A3AC ADD R2, R0, R1 .text:0001A3B0 LDRB R3, [R2,#1] .text:0001A3B4 MOV R9, R0 .text:0001A3B8 LDRB R12, [R0,R1] .text:0001A3BC MOV R3, R3,LSL#24 .text:0001A3C0 ORR R4, R12, R3,ASR#16 .text:0001A3C4 CMN R4, #0x8000 .text:0001A3C8 BEQ loc_1A4B8 .text:0001A3CC LDR R3, [R11,#var_500] .text:0001A3D0 CMN R3, #2 .text:0001A3D4 BNE loc_1A3EC .text:0001A3D8 SUB R0, R11, #-var_4E0 .text:0001A3DC LDR R1, [R11,#var_4F0] .text:0001A3E0 SUB R0, R0, #8 .text:0001A3E4 BL __gettextlex .text:0001A3E8 STR R0, [R11,#var_500] .text:0001A3EC .text:0001A3EC loc_1A3EC ; CODE XREF: __gettextparse+164j .text:0001A3EC LDR R2, [R11,#var_500] .text:0001A3F0 CMP R2, #0 .text:0001A3F4 MOVLE R3, #0 .text:0001A3F8 MOVLE LR, R3 .text:0001A3FC STRLE R3, [R11,#var_500] .text:0001A400 BLE loc_1A420 .text:0001A404 MOV R3, #0x104 .text:0001A408 LDR R2, [R11,#var_500] .text:0001A40C ADD R3, R3, #1 .text:0001A410 CMP R2, R3 .text:0001A414 LDRLS R3, =yytranslate .text:0001A418 LDRLSB LR, [R3,R2] .text:0001A41C MOVHI LR, #0x12 .text:0001A420 .text:0001A420 loc_1A420 ; CODE XREF: __gettextparse+190j .text:0001A420 ADD R4, R4, LR .text:0001A424 CMP R4, #0x35 .text:0001A428 BHI loc_1A4B8 .text:0001A42C LDR R0, =yycheck .text:0001A430 MOV R12, R4,LSL#1 .text:0001A434 ADD R1, R12, R0 .text:0001A438 LDRB R3, [R1,#1] .text:0001A43C LDRB R2, [R12,R0] .text:0001A440 MOV R3, R3,LSL#24 .text:0001A444 ORR R2, R2, R3,ASR#16 .text:0001A448 CMP R2, LR .text:0001A44C BNE loc_1A4B8 .text:0001A450 LDR R1, =yytable .text:0001A454 ADD R2, R12, R1 .text:0001A458 LDRB R3, [R2,#1] .text:0001A45C LDRB R0, [R12,R1] .text:0001A460 MOV R3, R3,LSL#24 .text:0001A464 ORR R4, R0, R3,ASR#16 .text:0001A468 CMP R4, #0 .text:0001A46C BGE loc_1A480 .text:0001A470 CMN R4, #0x8000 .text:0001A474 BEQ loc_1A6FC .text:0001A478 RSB R4, R4, #0 .text:0001A47C B loc_1A4D4 .text:0001A480 ; --------------------------------------------------------------------------- .text:0001A480 .text:0001A480 loc_1A480 ; CODE XREF: __gettextparse+1FCj .text:0001A480 BEQ loc_1A6FC .text:0001A484 CMP R4, #0x1B .text:0001A488 BEQ loc_1A7F8 .text:0001A48C LDR R3, [R11,#var_500] .text:0001A490 LDR R2, [R11,#var_4F4] .text:0001A494 CMP R3, #0 .text:0001A498 MOVNE R3, 0xFFFFFFFE .text:0001A49C STR R3, [R11,#var_500] .text:0001A4A0 MOV R3, R2 .text:0001A4A4 CMP R3, #0 .text:0001A4A8 SUBNE R2, R2, #1 .text:0001A4AC MOVEQ R2, #0 .text:0001A4B0 STR R2, [R11,#var_4F4] .text:0001A4B4 B loc_1A7E8 .text:0001A4B8 ; --------------------------------------------------------------------------- .text:0001A4B8 .text:0001A4B8 loc_1A4B8 ; CODE XREF: __gettextparse+158j .text:0001A4B8 ; __gettextparse+1B8j ... .text:0001A4B8 LDR R0, =yydefact .text:0001A4BC ADD R2, R9, R0 .text:0001A4C0 LDRB R3, [R2,#1] .text:0001A4C4 LDRB R1, [R9,R0] .text:0001A4C8 MOV R3, R3,LSL#24 .text:0001A4CC ORRS R4, R1, R3,ASR#16 .text:0001A4D0 BEQ loc_1A6FC .text:0001A4D4 .text:0001A4D4 loc_1A4D4 ; CODE XREF: __gettextparse+20Cj .text:0001A4D4 ; __gettextparse+568j .text:0001A4D4 LDR R12, =yyr2 .text:0001A4D8 MOV R1, R4,LSL#1 .text:0001A4DC ADD R2, R1, R12 .text:0001A4E0 LDRB R3, [R2,#1] .text:0001A4E4 MOV R9, R1 .text:0001A4E8 LDRB R0, [R1,R12] .text:0001A4EC MOV R3, R3,LSL#24 .text:0001A4F0 ORR R8, R0, R3,ASR#16 .text:0001A4F4 CMP R8, #0 .text:0001A4F8 RSBGT R3, R8, #1 .text:0001A4FC LDRGT R7, [R5,R3,LSL#2] .text:0001A500 SUB R3, R4, #1 .text:0001A504 CMP R3, #0xB ; switch 12 cases .text:0001A508 LDRLS PC, [PC,R3,LSL#2] ; switch jump .text:0001A50C B loc_1A61C ; jumptable 0001A508 default case .text:0001A50C ; --------------------------------------------------------------------------- .text:0001A510 DCD loc_1A540 ; jump table for switch statement .text:0001A510 DCD loc_1A558 .text:0001A510 DCD loc_1A588 .text:0001A510 DCD loc_1A598 .text:0001A510 DCD loc_1A5A8 .text:0001A510 DCD loc_1A5A8 .text:0001A510 DCD loc_1A5A8 .text:0001A510 DCD loc_1A5A8 .text:0001A510 DCD loc_1A5C0 .text:0001A510 DCD loc_1A5E0 .text:0001A510 DCD loc_1A5F8 .text:0001A510 DCD loc_1A618 .text:0001A540 ; --------------------------------------------------------------------------- .text:0001A540 .text:0001A540 loc_1A540 ; CODE XREF: __gettextparse+298j .text:0001A540 ; DATA XREF: __gettextparse+2A0o .text:0001A540 LDR R3, [R5] ; jumptable 0001A508 case 0 .text:0001A544 CMP R3, #0 .text:0001A548 BEQ loc_1A830 .text:0001A54C LDR R2, [R11,#var_4F0] .text:0001A550 STR R3, [R2,#4] .text:0001A554 B loc_1A61C ; jumptable 0001A508 default case .text:0001A558 ; --------------------------------------------------------------------------- .text:0001A558 .text:0001A558 loc_1A558 ; CODE XREF: __gettextparse+298j .text:0001A558 ; DATA XREF: __gettextparse+2A0o .text:0001A558 LDR R3, [R5,#-0x10] ; jumptable 0001A508 case 1 .text:0001A55C LDR R2, [R5,#-8] .text:0001A560 LDR R1, [R5] .text:0001A564 STR R3, [R11,#var_4E4] .text:0001A568 STR R2, [R11,#var_4E0] .text:0001A56C MOV R0, #3 .text:0001A570 STR R1, [R11,#var_4DC] .text:0001A574 MOV R1, #0x10 .text:0001A578 SUB R2, R11, #-var_4D0 .text:0001A57C SUB R2, R2, #8 .text:0001A580 SUB R2, R2, #0xC .text:0001A584 B loc_1A5EC .text:0001A588 ; --------------------------------------------------------------------------- .text:0001A588 .text:0001A588 loc_1A588 ; CODE XREF: __gettextparse+298j .text:0001A588 ; DATA XREF: __gettextparse+2A0o .text:0001A588 LDR R1, [R5,#-8] ; jumptable 0001A508 case 2 .text:0001A58C LDR R2, [R5] .text:0001A590 MOV R0, #0xF .text:0001A594 B loc_1A5B4 .text:0001A598 ; --------------------------------------------------------------------------- .text:0001A598 .text:0001A598 loc_1A598 ; CODE XREF: __gettextparse+298j .text:0001A598 ; DATA XREF: __gettextparse+2A0o .text:0001A598 LDR R1, [R5,#-8] ; jumptable 0001A508 case 3 .text:0001A59C LDR R2, [R5] .text:0001A5A0 MOV R0, #0xE .text:0001A5A4 B loc_1A5B4 .text:0001A5A8 ; --------------------------------------------------------------------------- .text:0001A5A8 .text:0001A5A8 loc_1A5A8 ; CODE XREF: __gettextparse+298j .text:0001A5A8 ; DATA XREF: __gettextparse+2A0o .text:0001A5A8 LDR R0, [R5,#-4] ; jumptable 0001A508 cases 4-7 .text:0001A5AC LDR R1, [R5,#-8] .text:0001A5B0 LDR R2, [R5] .text:0001A5B4 .text:0001A5B4 loc_1A5B4 ; CODE XREF: __gettextparse+324j .text:0001A5B4 ; __gettextparse+334j .text:0001A5B4 BL new_exp_2 .text:0001A5B8 MOV R7, R0 .text:0001A5BC B loc_1A61C ; jumptable 0001A508 default case .text:0001A5C0 ; --------------------------------------------------------------------------- .text:0001A5C0 .text:0001A5C0 loc_1A5C0 ; CODE XREF: __gettextparse+298j .text:0001A5C0 ; DATA XREF: __gettextparse+2A0o .text:0001A5C0 LDR R3, [R5] ; jumptable 0001A508 case 8 .text:0001A5C4 MOV R0, #1 .text:0001A5C8 STR R3, [R11,#var_4EC] .text:0001A5CC MOV R1, #2 .text:0001A5D0 SUB R2, R11, #-var_4E0 .text:0001A5D4 SUB R2, R2, #8 .text:0001A5D8 SUB R2, R2, #4 .text:0001A5DC B loc_1A5EC .text:0001A5E0 ; --------------------------------------------------------------------------- .text:0001A5E0 .text:0001A5E0 loc_1A5E0 ; CODE XREF: __gettextparse+298j .text:0001A5E0 ; DATA XREF: __gettextparse+2A0o .text:0001A5E0 MOV R0, #0 ; jumptable 0001A508 case 9 .text:0001A5E4 MOV R1, R0 .text:0001A5E8 MOV R2, R0 .text:0001A5EC .text:0001A5EC loc_1A5EC ; CODE XREF: __gettextparse+314j .text:0001A5EC ; __gettextparse+36Cj .text:0001A5EC BL new_exp .text:0001A5F0 MOV R7, R0 .text:0001A5F4 B loc_1A61C ; jumptable 0001A508 default case .text:0001A5F8 ; --------------------------------------------------------------------------- .text:0001A5F8 .text:0001A5F8 loc_1A5F8 ; CODE XREF: __gettextparse+298j .text:0001A5F8 ; DATA XREF: __gettextparse+2A0o .text:0001A5F8 MOV R0, #0 ; jumptable 0001A508 case 10 .text:0001A5FC MOV R1, #1 .text:0001A600 MOV R2, R0 .text:0001A604 BL new_exp .text:0001A608 SUBS R7, R0, #0 .text:0001A60C LDRNE R3, [R5] .text:0001A610 STRNE R3, [R7,#8] .text:0001A614 B loc_1A61C ; jumptable 0001A508 default case .text:0001A618 ; --------------------------------------------------------------------------- .text:0001A618 .text:0001A618 loc_1A618 ; CODE XREF: __gettextparse+298j .text:0001A618 ; DATA XREF: __gettextparse+2A0o .text:0001A618 LDR R7, [R5,#-4] ; jumptable 0001A508 case 11 .text:0001A61C .text:0001A61C loc_1A61C ; CODE XREF: __gettextparse+29Cj .text:0001A61C ; __gettextparse+2E4j ... .text:0001A61C SUB R5, R5, R8,LSL#2 ; jumptable 0001A508 default case .text:0001A620 STR R7, [R5,#4]! .text:0001A624 LDR R1, =yyr1 .text:0001A628 LDR R12, =yypgoto .text:0001A62C ADD R2, R9, R1 .text:0001A630 LDRB R3, [R2,#1] .text:0001A634 LDRB R0, [R9,R1] .text:0001A638 MOV R3, R3,LSL#24 .text:0001A63C ORR R4, R0, R3,ASR#16 .text:0001A640 SUB R2, R4, #0x10 .text:0001A644 MOV R2, R2,LSL#1 .text:0001A648 ADD R3, R2, R12 .text:0001A64C LDRB R1, [R3,#1] .text:0001A650 SUB R6, R6, R8,LSL#1 .text:0001A654 LDRB R0, [R2,R12] .text:0001A658 MOV R1, R1,LSL#24 .text:0001A65C LDRB LR, [R6,#1] .text:0001A660 ORR R0, R0, R1,ASR#16 .text:0001A664 LDRB R12, [R6] .text:0001A668 MOV R3, LR,LSL#24 .text:0001A66C ORR R3, R12, R3,ASR#16 .text:0001A670 ADD R8, R0, R3 .text:0001A674 CMP R8, #0x35 .text:0001A678 BHI loc_1A6D8 .text:0001A67C LDR R3, =yycheck .text:0001A680 MOV R0, R8,LSL#1 .text:0001A684 LDRB R1, [R0,R3] .text:0001A688 ADD R3, R0, R3 .text:0001A68C LDRB R2, [R3,#1] .text:0001A690 ORR R3, R12, LR,LSL#8 .text:0001A694 ORR R1, R1, R2,LSL#8 .text:0001A698 CMP R1, R3 .text:0001A69C BNE loc_1A6D8 .text:0001A6A0 LDR R1, =yytable .text:0001A6A4 ADD R2, R0, R1 .text:0001A6A8 LDRB R3, [R2,#1] .text:0001A6AC LDRB R0, [R0,R1] .text:0001A6B0 B loc_1A6F0 .text:0001A6B0 ; --------------------------------------------------------------------------- .text:0001A6B4 off_1A6B4 DCD aParserStackOve ; DATA XREF: __gettextparse+94r .text:0001A6B4 ; "parser stack overflow" .text:0001A6B8 off_1A6B8 DCD yypact ; DATA XREF: __gettextparse:loc_1A3A4r .text:0001A6BC off_1A6BC DCD yytranslate ; DATA XREF: __gettextparse+1A4r .text:0001A6C0 off_1A6C0 DCD yycheck ; DATA XREF: __gettextparse+1BCr .text:0001A6C0 ; __gettextparse+40Cr .text:0001A6C4 off_1A6C4 DCD yytable ; DATA XREF: __gettextparse+1E0r .text:0001A6C4 ; __gettextparse+430r .text:0001A6C8 off_1A6C8 DCD yydefact ; DATA XREF: __gettextparse:loc_1A4B8r .text:0001A6CC off_1A6CC DCD yyr2 ; DATA XREF: __gettextparse:loc_1A4D4r .text:0001A6D0 off_1A6D0 DCD yyr1 ; DATA XREF: __gettextparse+3B4r .text:0001A6D4 off_1A6D4 DCD yypgoto ; DATA XREF: __gettextparse+3B8r .text:0001A6D8 ; --------------------------------------------------------------------------- .text:0001A6D8 .text:0001A6D8 loc_1A6D8 ; CODE XREF: __gettextparse+408j .text:0001A6D8 ; __gettextparse+42Cj .text:0001A6D8 SUB R2, R4, #0x10 .text:0001A6DC LDR R12, =yydefgoto .text:0001A6E0 MOV R2, R2,LSL#1 .text:0001A6E4 ADD R1, R2, R12 .text:0001A6E8 LDRB R3, [R1,#1] .text:0001A6EC LDRB R0, [R2,R12] .text:0001A6F0 .text:0001A6F0 loc_1A6F0 ; CODE XREF: __gettextparse+440j .text:0001A6F0 MOV R3, R3,LSL#24 .text:0001A6F4 ORR R8, R0, R3,ASR#16 .text:0001A6F8 B loc_1A2B8 .text:0001A6FC ; --------------------------------------------------------------------------- .text:0001A6FC .text:0001A6FC loc_1A6FC ; CODE XREF: __gettextparse+204j .text:0001A6FC ; __gettextparse:loc_1A480j ... .text:0001A6FC LDR R3, [R11,#var_4F4] .text:0001A700 CMP R3, #0 .text:0001A704 BNE loc_1A710 .text:0001A708 LDR R0, =aParseError ; "parse error" .text:0001A70C BL __gettexterror .text:0001A710 .text:0001A710 loc_1A710 ; CODE XREF: __gettextparse+494j .text:0001A710 LDR R2, [R11,#var_4F4] .text:0001A714 CMP R2, #3 .text:0001A718 BNE loc_1A730 .text:0001A71C LDR R3, [R11,#var_500] .text:0001A720 CMP R3, #0 .text:0001A724 BEQ loc_1A830 .text:0001A728 MOV R2, 0xFFFFFFFE .text:0001A72C STR R2, [R11,#var_500] .text:0001A730 .text:0001A730 loc_1A730 ; CODE XREF: __gettextparse+4A8j .text:0001A730 MOV R3, #3 .text:0001A734 STR R3, [R11,#var_4F4] .text:0001A738 B loc_1A758 .text:0001A73C ; --------------------------------------------------------------------------- .text:0001A73C .text:0001A73C loc_1A73C ; CODE XREF: __gettextparse+50Cj .text:0001A73C ; __gettextparse+518j ... .text:0001A73C CMP R6, R10 .text:0001A740 BEQ loc_1A830 .text:0001A744 LDRB R2, [R6,#-2]! .text:0001A748 LDRB R3, [R6,#1] .text:0001A74C SUB R5, R5, #4 .text:0001A750 MOV R3, R3,LSL#24 .text:0001A754 ORR R8, R2, R3,ASR#16 .text:0001A758 .text:0001A758 loc_1A758 ; CODE XREF: __gettextparse+4C8j .text:0001A758 LDR R3, =yypact .text:0001A75C MOV R1, R8,LSL#1 .text:0001A760 ADD R2, R1, R3 .text:0001A764 LDRB R3, [R2,#1] .text:0001A768 LDR R2, =yypact .text:0001A76C LDRB R0, [R1,R2] .text:0001A770 MOV R3, R3,LSL#24 .text:0001A774 ORR R4, R0, R3,ASR#16 .text:0001A778 CMN R4, #0x8000 .text:0001A77C BEQ loc_1A73C .text:0001A780 ADD R4, R4, #1 .text:0001A784 CMP R4, #0x35 .text:0001A788 BHI loc_1A73C .text:0001A78C LDR R3, =yycheck .text:0001A790 MOV R0, R4,LSL#1 .text:0001A794 LDRB R2, [R0,R3] .text:0001A798 ADD R3, R0, R3 .text:0001A79C LDRB R1, [R3,#1] .text:0001A7A0 ORR R2, R2, R1,LSL#8 .text:0001A7A4 CMP R2, #1 .text:0001A7A8 BNE loc_1A73C .text:0001A7AC LDR R1, =yytable .text:0001A7B0 ADD R2, R0, R1 .text:0001A7B4 LDRB R3, [R2,#1] .text:0001A7B8 LDRB R0, [R0,R1] .text:0001A7BC MOV R3, R3,LSL#24 .text:0001A7C0 ORR R4, R0, R3,ASR#16 .text:0001A7C4 CMP R4, #0 .text:0001A7C8 BGE loc_1A7DC .text:0001A7CC CMN R4, #0x8000 .text:0001A7D0 BEQ loc_1A73C .text:0001A7D4 RSB R4, R4, #0 .text:0001A7D8 B loc_1A4D4 .text:0001A7DC ; --------------------------------------------------------------------------- .text:0001A7DC .text:0001A7DC loc_1A7DC ; CODE XREF: __gettextparse+558j .text:0001A7DC BEQ loc_1A73C .text:0001A7E0 CMP R4, #0x1B .text:0001A7E4 BEQ loc_1A7F8 .text:0001A7E8 .text:0001A7E8 loc_1A7E8 ; CODE XREF: __gettextparse+244j .text:0001A7E8 LDR R3, [R11,#var_4E8] .text:0001A7EC MOV R8, R4 .text:0001A7F0 STR R3, [R5,#4]! .text:0001A7F4 B loc_1A2B8 .text:0001A7F8 ; --------------------------------------------------------------------------- .text:0001A7F8 .text:0001A7F8 loc_1A7F8 ; CODE XREF: __gettextparse+218j .text:0001A7F8 ; __gettextparse+574j .text:0001A7F8 MOV R3, #0 .text:0001A7FC CMP R3, R3 .text:0001A800 BEQ loc_1A814 .text:0001A804 MOV R0, R10 .text:0001A808 BL free .text:0001A80C LDR R0, [R11,#var_4F8] .text:0001A810 BL free .text:0001A814 .text:0001A814 loc_1A814 ; CODE XREF: __gettextparse+590j .text:0001A814 MOV R0, #0 .text:0001A818 B locret_1A850 .text:0001A818 ; --------------------------------------------------------------------------- .text:0001A81C off_1A81C DCD yydefgoto ; DATA XREF: __gettextparse+46Cr .text:0001A820 off_1A820 DCD aParseError ; DATA XREF: __gettextparse+498r .text:0001A820 ; "parse error" .text:0001A824 off_1A824 DCD yypact ; DATA XREF: __gettextparse:loc_1A758r .text:0001A824 ; __gettextparse+4F8r .text:0001A828 off_1A828 DCD yycheck ; DATA XREF: __gettextparse+51Cr .text:0001A82C off_1A82C DCD yytable ; DATA XREF: __gettextparse+53Cr .text:0001A830 ; --------------------------------------------------------------------------- .text:0001A830 .text:0001A830 loc_1A830 ; CODE XREF: __gettextparse+130j .text:0001A830 ; __gettextparse+2D8j ... .text:0001A830 MOV R2, #0 .text:0001A834 CMP R2, R2 .text:0001A838 BEQ loc_1A84C .text:0001A83C MOV R0, R10 .text:0001A840 BL free .text:0001A844 LDR R0, [R11,#var_4F8] .text:0001A848 BL free .text:0001A84C .text:0001A84C loc_1A84C ; CODE XREF: __gettextparse+5C8j .text:0001A84C MOV R0, #1 .text:0001A850 .text:0001A850 locret_1A850 ; CODE XREF: __gettextparse+BCj .text:0001A850 ; __gettextparse+5A8j .text:0001A850 LDMDB R11, {R4-R11,SP,PC} .text:0001A850 ; End of function __gettextparse .text:0001A850 .text:0001A854 .text:0001A854 ; =============== S U B R O U T I N E ======================================= .text:0001A854 .text:0001A854 ; Attributes: bp-based frame .text:0001A854 .text:0001A854 EXPORT __gettext_free_exp .text:0001A854 __gettext_free_exp ; CODE XREF: _nl_unload_domain+20p .text:0001A854 ; new_exp+78p ... .text:0001A854 MOV R12, SP .text:0001A858 STMFD SP!, {R4,R11,R12,LR,PC} .text:0001A85C SUB R11, R12, #4 .text:0001A860 SUBS R4, R0, #0 .text:0001A864 LDMEQDB R11, {R4,R11,SP,PC} .text:0001A868 LDR R3, [R4] .text:0001A86C CMP R3, #2 .text:0001A870 BEQ loc_1A894 .text:0001A874 BGT loc_1A884 .text:0001A878 CMP R3, #1 .text:0001A87C BEQ loc_1A89C .text:0001A880 B loc_1A8A4 .text:0001A884 ; --------------------------------------------------------------------------- .text:0001A884 .text:0001A884 loc_1A884 ; CODE XREF: __gettext_free_exp+20j .text:0001A884 CMP R3, #3 .text:0001A888 BNE loc_1A8A4 .text:0001A88C LDR R0, [R4,#0x10] .text:0001A890 BL __gettext_free_exp .text:0001A894 .text:0001A894 loc_1A894 ; CODE XREF: __gettext_free_exp+1Cj .text:0001A894 LDR R0, [R4,#0xC] .text:0001A898 BL __gettext_free_exp .text:0001A89C .text:0001A89C loc_1A89C ; CODE XREF: __gettext_free_exp+28j .text:0001A89C LDR R0, [R4,#8] .text:0001A8A0 BL __gettext_free_exp .text:0001A8A4 .text:0001A8A4 loc_1A8A4 ; CODE XREF: __gettext_free_exp+2Cj .text:0001A8A4 ; __gettext_free_exp+34j .text:0001A8A4 MOV R0, R4 .text:0001A8A8 BL free .text:0001A8AC LDMDB R11, {R4,R11,SP,PC} .text:0001A8AC ; End of function __gettext_free_exp .text:0001A8AC .text:0001A8B0 .text:0001A8B0 ; =============== S U B R O U T I N E ======================================= .text:0001A8B0 .text:0001A8B0 ; Attributes: bp-based frame .text:0001A8B0 .text:0001A8B0 __gettextlex ; CODE XREF: __gettextparse+174p .text:0001A8B0 MOV R12, SP .text:0001A8B4 STMFD SP!, {R4,R11,R12,LR,PC} .text:0001A8B8 SUB R11, R12, #4 .text:0001A8BC MOV R4, R1 .text:0001A8C0 LDR R12, [R4] .text:0001A8C4 LDRB R3, [R12] .text:0001A8C8 MOV LR, R0 .text:0001A8CC B loc_1A8D8 .text:0001A8D0 ; --------------------------------------------------------------------------- .text:0001A8D0 .text:0001A8D0 loc_1A8D0 ; CODE XREF: __gettextlex+38j .text:0001A8D0 LDRB R3, [R12,#1]! .text:0001A8D4 AND R3, R3, #0xFF .text:0001A8D8 .text:0001A8D8 loc_1A8D8 ; CODE XREF: __gettextlex+1Cj .text:0001A8D8 CMP R3, #0 .text:0001A8DC BEQ loc_1AC30 .text:0001A8E0 CMP R3, #0x20 .text:0001A8E4 CMPNE R3, #9 .text:0001A8E8 BEQ loc_1A8D0 .text:0001A8EC LDRB R0, [R12],#1 .text:0001A8F0 CMP R0, #0x7C ; switch 125 cases .text:0001A8F4 LDRLS PC, [PC,R0,LSL#2] ; switch jump .text:0001A8F8 B loc_1AC3C ; jumptable 0001A8F4 default case .text:0001A8F8 ; --------------------------------------------------------------------------- .text:0001A8FC DCD loc_1AC24, loc_1AC3C, loc_1AC3C, loc_1AC3C, loc_1AC3C ; jump table for switch statement .text:0001A8FC DCD loc_1AC3C, loc_1AC3C, loc_1AC3C, loc_1AC3C, loc_1AC3C .text:0001A8FC DCD loc_1AC24, loc_1AC3C, loc_1AC3C, loc_1AC3C, loc_1AC3C .text:0001A8FC DCD loc_1AC3C, loc_1AC3C, loc_1AC3C, loc_1AC3C, loc_1AC3C .text:0001A8FC DCD loc_1AC3C, loc_1AC3C, loc_1AC3C, loc_1AC3C, loc_1AC3C .text:0001A8FC DCD loc_1AC3C, loc_1AC3C, loc_1AC3C, loc_1AC3C, loc_1AC3C .text:0001A8FC DCD loc_1AC3C, loc_1AC3C, loc_1AC3C, loc_1AB54, loc_1AC3C .text:0001A8FC DCD loc_1AC3C, loc_1AC3C, loc_1ABEC, loc_1AB78, loc_1AC3C .text:0001A8FC DCD loc_1AC40, loc_1AC40, loc_1ABCC, loc_1ABFC, loc_1AC3C .text:0001A8FC DCD loc_1AC10, loc_1AC3C, loc_1ABDC, loc_1AAF0, loc_1AAF0 .text:0001A8FC DCD loc_1AAF0, loc_1AAF0, loc_1AAF0, loc_1AAF0, loc_1AAF0 .text:0001A8FC DCD loc_1AAF0, loc_1AAF0, loc_1AAF0, loc_1AC40, loc_1AC24 .text:0001A8FC DCD loc_1AB8C, loc_1AB30, loc_1ABA8, loc_1AC40, loc_1AC3C .text:0001A8FC DCD loc_1AC3C, loc_1AC3C, loc_1AC3C, loc_1AC3C, loc_1AC3C .text:0001A8FC DCD loc_1AC3C, loc_1AC3C, loc_1AC3C, loc_1AC3C, loc_1AC3C .text:0001A8FC DCD loc_1AC3C, loc_1AC3C, loc_1AC3C, loc_1AC3C, loc_1AC3C .text:0001A8FC DCD loc_1AC3C, loc_1AC3C, loc_1AC3C, loc_1AC3C, loc_1AC3C .text:0001A8FC DCD loc_1AC3C, loc_1AC3C, loc_1AC3C, loc_1AC3C, loc_1AC3C .text:0001A8FC DCD loc_1AC3C, loc_1AC3C, loc_1AC3C, loc_1AC3C, loc_1AC3C .text:0001A8FC DCD loc_1AC3C, loc_1AC3C, loc_1AC3C, loc_1AC3C, loc_1AC3C .text:0001A8FC DCD loc_1AC3C, loc_1AC3C, loc_1AC3C, loc_1AC3C, loc_1AC3C .text:0001A8FC DCD loc_1AC3C, loc_1AC3C, loc_1AC3C, loc_1AC3C, loc_1AC3C .text:0001A8FC DCD loc_1AC40, loc_1AC3C, loc_1AC3C, loc_1AC3C, loc_1AC3C .text:0001A8FC DCD loc_1AC3C, loc_1AC3C, loc_1AC3C, loc_1AC3C, loc_1AC3C .text:0001A8FC DCD loc_1AC3C, loc_1AC3C, loc_1AC3C, loc_1AC3C, loc_1AB78 .text:0001AAF0 ; --------------------------------------------------------------------------- .text:0001AAF0 .text:0001AAF0 loc_1AAF0 ; CODE XREF: __gettextlex+44j .text:0001AAF0 ; DATA XREF: __gettextlex+4Co .text:0001AAF0 LDRB R3, [R12] ; jumptable 0001A8F4 cases 48-57 .text:0001AAF4 SUB R2, R0, #0x30 .text:0001AAF8 B loc_1AB14 .text:0001AAFC ; --------------------------------------------------------------------------- .text:0001AAFC .text:0001AAFC loc_1AAFC ; CODE XREF: __gettextlex+26Cj .text:0001AAFC ADD R3, R2, R2,LSL#2 .text:0001AB00 MOV R2, R3,LSL#1 .text:0001AB04 LDRB R1, [R12] .text:0001AB08 SUB R2, R2, #0x30 .text:0001AB0C LDRB R3, [R12,#1]! .text:0001AB10 ADD R2, R2, R1 .text:0001AB14 .text:0001AB14 loc_1AB14 ; CODE XREF: __gettextlex+248j .text:0001AB14 SUB R3, R3, #0x30 .text:0001AB18 CMP R3, #9 .text:0001AB1C BLS loc_1AAFC .text:0001AB20 MOV R0, 0x105 .text:0001AB28 STR R2, [LR] .text:0001AB2C B loc_1AC40 ; jumptable 0001A8F4 cases 40,41,58,63,110 .text:0001AB30 ; --------------------------------------------------------------------------- .text:0001AB30 .text:0001AB30 loc_1AB30 ; CODE XREF: __gettextlex+44j .text:0001AB30 ; DATA XREF: __gettextlex+4Co .text:0001AB30 LDRB R3, [R12] ; jumptable 0001A8F4 case 61 .text:0001AB34 CMP R3, #0x3D .text:0001AB38 BNE loc_1AC3C ; jumptable 0001A8F4 default case .text:0001AB3C ADD R12, R12, #1 .text:0001AB40 MOV R0, 0x101 .text:0001AB48 MOV R3, #0xC .text:0001AB4C STR R3, [LR] .text:0001AB50 B loc_1AC40 ; jumptable 0001A8F4 cases 40,41,58,63,110 .text:0001AB54 ; --------------------------------------------------------------------------- .text:0001AB54 .text:0001AB54 loc_1AB54 ; CODE XREF: __gettextlex+44j .text:0001AB54 ; DATA XREF: __gettextlex+4Co .text:0001AB54 LDRB R3, [R12] ; jumptable 0001A8F4 case 33 .text:0001AB58 CMP R3, #0x3D .text:0001AB5C BNE loc_1AC40 ; jumptable 0001A8F4 cases 40,41,58,63,110 .text:0001AB60 ADD R12, R12, #1 .text:0001AB64 MOV R0, 0x101 .text:0001AB6C MOV R3, #0xD .text:0001AB70 STR R3, [LR] .text:0001AB74 B loc_1AC40 ; jumptable 0001A8F4 cases 40,41,58,63,110 .text:0001AB78 ; --------------------------------------------------------------------------- .text:0001AB78 .text:0001AB78 loc_1AB78 ; CODE XREF: __gettextlex+44j .text:0001AB78 ; DATA XREF: __gettextlex+4Co .text:0001AB78 LDRB R3, [R12] ; jumptable 0001A8F4 cases 38,124 .text:0001AB7C CMP R3, R0 .text:0001AB80 BNE loc_1AC3C ; jumptable 0001A8F4 default case .text:0001AB84 ADD R12, R12, #1 .text:0001AB88 B loc_1AC40 ; jumptable 0001A8F4 cases 40,41,58,63,110 .text:0001AB8C ; --------------------------------------------------------------------------- .text:0001AB8C .text:0001AB8C loc_1AB8C ; CODE XREF: __gettextlex+44j .text:0001AB8C ; DATA XREF: __gettextlex+4Co .text:0001AB8C LDRB R3, [R12] ; jumptable 0001A8F4 case 60 .text:0001AB90 CMP R3, #0x3D .text:0001AB94 ADDEQ R12, R12, #1 .text:0001AB98 MOVEQ R3, #0xA .text:0001AB9C BEQ loc_1ABBC .text:0001ABA0 MOV R3, #8 .text:0001ABA4 B loc_1ABBC .text:0001ABA8 ; --------------------------------------------------------------------------- .text:0001ABA8 .text:0001ABA8 loc_1ABA8 ; CODE XREF: __gettextlex+44j .text:0001ABA8 ; DATA XREF: __gettextlex+4Co .text:0001ABA8 LDRB R3, [R12] ; jumptable 0001A8F4 case 62 .text:0001ABAC CMP R3, #0x3D .text:0001ABB0 ADDEQ R12, R12, #1 .text:0001ABB4 MOVEQ R3, #0xB .text:0001ABB8 MOVNE R3, #9 .text:0001ABBC .text:0001ABBC loc_1ABBC ; CODE XREF: __gettextlex+2ECj .text:0001ABBC ; __gettextlex+2F4j .text:0001ABBC STR R3, [LR] .text:0001ABC0 MOV R0, 0x102 .text:0001ABC8 B loc_1AC40 ; jumptable 0001A8F4 cases 40,41,58,63,110 .text:0001ABCC ; --------------------------------------------------------------------------- .text:0001ABCC .text:0001ABCC loc_1ABCC ; CODE XREF: __gettextlex+44j .text:0001ABCC ; DATA XREF: __gettextlex+4Co .text:0001ABCC MOV R0, #0x104 ; jumptable 0001A8F4 case 42 .text:0001ABD0 MOV R3, #3 .text:0001ABD4 STR R3, [LR] .text:0001ABD8 B loc_1AC40 ; jumptable 0001A8F4 cases 40,41,58,63,110 .text:0001ABDC ; --------------------------------------------------------------------------- .text:0001ABDC .text:0001ABDC loc_1ABDC ; CODE XREF: __gettextlex+44j .text:0001ABDC ; DATA XREF: __gettextlex+4Co .text:0001ABDC MOV R0, #0x104 ; jumptable 0001A8F4 case 47 .text:0001ABE0 MOV R3, #4 .text:0001ABE4 STR R3, [LR] .text:0001ABE8 B loc_1AC40 ; jumptable 0001A8F4 cases 40,41,58,63,110 .text:0001ABEC ; --------------------------------------------------------------------------- .text:0001ABEC .text:0001ABEC loc_1ABEC ; CODE XREF: __gettextlex+44j .text:0001ABEC ; DATA XREF: __gettextlex+4Co .text:0001ABEC MOV R0, #0x104 ; jumptable 0001A8F4 case 37 .text:0001ABF0 MOV R3, #5 .text:0001ABF4 STR R3, [LR] .text:0001ABF8 B loc_1AC40 ; jumptable 0001A8F4 cases 40,41,58,63,110 .text:0001ABFC ; --------------------------------------------------------------------------- .text:0001ABFC .text:0001ABFC loc_1ABFC ; CODE XREF: __gettextlex+44j .text:0001ABFC ; DATA XREF: __gettextlex+4Co .text:0001ABFC MOV R0, 0x103 ; jumptable 0001A8F4 case 43 .text:0001AC04 MOV R3, #6 .text:0001AC08 STR R3, [LR] .text:0001AC0C B loc_1AC40 ; jumptable 0001A8F4 cases 40,41,58,63,110 .text:0001AC10 ; --------------------------------------------------------------------------- .text:0001AC10 .text:0001AC10 loc_1AC10 ; CODE XREF: __gettextlex+44j .text:0001AC10 ; DATA XREF: __gettextlex+4Co .text:0001AC10 MOV R0, 0x103 ; jumptable 0001A8F4 case 45 .text:0001AC18 MOV R3, #7 .text:0001AC1C STR R3, [LR] .text:0001AC20 B loc_1AC40 ; jumptable 0001A8F4 cases 40,41,58,63,110 .text:0001AC24 ; --------------------------------------------------------------------------- .text:0001AC24 .text:0001AC24 loc_1AC24 ; CODE XREF: __gettextlex+44j .text:0001AC24 ; DATA XREF: __gettextlex+4Co .text:0001AC24 SUB R12, R12, #1 ; jumptable 0001A8F4 cases 0,10,59 .text:0001AC28 MOV R0, #0 .text:0001AC2C B loc_1AC40 ; jumptable 0001A8F4 cases 40,41,58,63,110 .text:0001AC30 ; --------------------------------------------------------------------------- .text:0001AC30 .text:0001AC30 loc_1AC30 ; CODE XREF: __gettextlex+2Cj .text:0001AC30 MOV R0, R3 .text:0001AC34 STR R12, [R4] .text:0001AC38 LDMDB R11, {R4,R11,SP,PC} .text:0001AC3C ; --------------------------------------------------------------------------- .text:0001AC3C .text:0001AC3C loc_1AC3C ; CODE XREF: __gettextlex+44j .text:0001AC3C ; __gettextlex+48j ... .text:0001AC3C MOV R0, #0x100 ; jumptable 0001A8F4 default case .text:0001AC40 .text:0001AC40 loc_1AC40 ; CODE XREF: __gettextlex+44j .text:0001AC40 ; __gettextlex+27Cj ... .text:0001AC40 STR R12, [R4] ; jumptable 0001A8F4 cases 40,41,58,63,110 .text:0001AC44 LDMDB R11, {R4,R11,SP,PC} .text:0001AC44 ; End of function __gettextlex .text:0001AC44 .text:0001AC48 .text:0001AC48 ; =============== S U B R O U T I N E ======================================= .text:0001AC48 .text:0001AC48 ; Attributes: bp-based frame .text:0001AC48 .text:0001AC48 __gettexterror ; CODE XREF: __gettextparse+98p .text:0001AC48 ; __gettextparse+49Cp .text:0001AC48 MOV R12, SP .text:0001AC4C STMFD SP!, {R11,R12,LR,PC} .text:0001AC50 SUB R11, R12, #4 .text:0001AC54 LDMDB R11, {R11,SP,PC} .text:0001AC54 ; End of function __gettexterror .text:0001AC54 .text:0001AC58 .text:0001AC58 ; =============== S U B R O U T I N E ======================================= .text:0001AC58 .text:0001AC58 ; Attributes: bp-based frame .text:0001AC58 .text:0001AC58 EXPORT __setfpucw .text:0001AC58 __setfpucw ; CODE XREF: init+54p .text:0001AC58 MOV R12, SP .text:0001AC5C STMFD SP!, {R11,R12,LR,PC} .text:0001AC60 SUB R11, R12, #4 .text:0001AC64 MRC p1, 1, R3,c0,c0, 0 .text:0001AC68 BIC R3, R3, #0x1F0000 .text:0001AC6C BIC R3, R3, #0x1F00 .text:0001AC70 BIC R3, R3, #0x1F .text:0001AC74 BIC R0, R0, #0xFF000000 .text:0001AC78 BIC R0, R0, #0xE00000 .text:0001AC7C BIC R0, R0, #0xE000 .text:0001AC80 BIC R0, R0, #0xE0 .text:0001AC84 ORR R3, R3, R0 .text:0001AC88 MCR p1, 1, R3,c0,c0, 0 .text:0001AC8C LDMDB R11, {R11,SP,PC} .text:0001AC8C ; End of function __setfpucw .text:0001AC8C .text:0001AC90 .text:0001AC90 ; =============== S U B R O U T I N E ======================================= .text:0001AC90 .text:0001AC90 .text:0001AC90 ; int setjmp(jmp_buf env) .text:0001AC90 EXPORT _setjmp .text:0001AC90 _setjmp ; CODE XREF: _dl_catch_error+58p .text:0001AC90 MOV R1, #0 .text:0001AC94 B __sigsetjmp .text:0001AC94 ; End of function _setjmp .text:0001AC94 .text:0001AC94 ; --------------------------------------------------------------------------- .text:0001AC98 ALIGN 0x10 .text:0001ACA0 .text:0001ACA0 ; =============== S U B R O U T I N E ======================================= .text:0001ACA0 .text:0001ACA0 ; Attributes: noreturn bp-based frame .text:0001ACA0 .text:0001ACA0 WEAK siglongjmp .text:0001ACA0 siglongjmp ; CODE XREF: _dl_signal_error+C8p .text:0001ACA0 MOV R12, SP ; Alternative name is '_longjmp' .text:0001ACA4 STMFD SP!, {R11,R12,LR,PC} .text:0001ACA8 SUB R11, R12, #4 .text:0001ACAC MOV R4, R0 .text:0001ACB0 MOV R5, R1 .text:0001ACB4 BL _longjmp_unwind .text:0001ACB8 LDR R3, [R4,#0x58] .text:0001ACBC CMP R3, #0 .text:0001ACC0 BEQ loc_1ACD4 .text:0001ACC4 MOV R0, #2 .text:0001ACC8 ADD R1, R4, #0x5C .text:0001ACCC MOV R2, #0 .text:0001ACD0 BL sigprocmask .text:0001ACD4 .text:0001ACD4 loc_1ACD4 ; CODE XREF: siglongjmp+20j .text:0001ACD4 MOV R0, R4 ; env .text:0001ACD8 CMP R5, #0 .text:0001ACDC MOVNE R1, R5 .text:0001ACE0 MOVEQ R1, #1 ; val .text:0001ACE4 BL __longjmp .text:0001ACE4 ; End of function siglongjmp .text:0001ACE4 .text:0001ACE8 ; --------------------------------------------------------------------------- .text:0001ACE8 LDMDB R11, {R4,R5,R11,SP,PC} .text:0001ACE8 ; --------------------------------------------------------------------------- .text:0001ACEC ALIGN 0x10 .text:0001ACF0 .text:0001ACF0 ; =============== S U B R O U T I N E ======================================= .text:0001ACF0 .text:0001ACF0 ; Attributes: noreturn .text:0001ACF0 .text:0001ACF0 ; void _longjmp(struct __jmp_buf_tag *env, int val) .text:0001ACF0 EXPORT __longjmp .text:0001ACF0 __longjmp ; CODE XREF: siglongjmp+44p .text:0001ACF0 MOV R12, R0 .text:0001ACF4 MOVS R0, R1 .text:0001ACF8 MOVEQ R0, #1 .text:0001ACFC LDC p2, c4, [R12],#0x30 .text:0001AD00 LDMIA R12, {R4-R11,SP,PC} .text:0001AD00 ; End of function __longjmp .text:0001AD00 .text:0001AD00 ; --------------------------------------------------------------------------- .text:0001AD04 ALIGN 0x10 .text:0001AD10 .text:0001AD10 ; =============== S U B R O U T I N E ======================================= .text:0001AD10 .text:0001AD10 ; Attributes: bp-based frame .text:0001AD10 .text:0001AD10 EXPORT _longjmp_unwind .text:0001AD10 _longjmp_unwind ; CODE XREF: siglongjmp+14p .text:0001AD10 MOV R12, SP .text:0001AD14 STMFD SP!, {R11,R12,LR,PC} .text:0001AD18 SUB R11, R12, #4 .text:0001AD1C LDMDB R11, {R11,SP,PC} .text:0001AD1C ; End of function _longjmp_unwind .text:0001AD1C .text:0001AD20 .text:0001AD20 ; =============== S U B R O U T I N E ======================================= .text:0001AD20 .text:0001AD20 ; Attributes: bp-based frame .text:0001AD20 .text:0001AD20 WEAK raise .text:0001AD20 raise ; CODE XREF: abort+C8p .text:0001AD20 ; abort+170p .text:0001AD20 MOV R12, SP .text:0001AD24 STMFD SP!, {R4,R11,R12,LR,PC} .text:0001AD28 SUB R11, R12, #4 .text:0001AD2C MOV R4, R0 .text:0001AD30 BL getpid .text:0001AD34 MOV R1, R4 .text:0001AD38 BL kill .text:0001AD3C LDMDB R11, {R4,R11,SP,PC} .text:0001AD3C ; End of function raise .text:0001AD3C .text:0001AD40 .text:0001AD40 ; =============== S U B R O U T I N E ======================================= .text:0001AD40 .text:0001AD40 ; Attributes: bp-based frame .text:0001AD40 .text:0001AD40 WEAK sigaction .text:0001AD40 sigaction ; CODE XREF: abort+140p .text:0001AD40 ; sleep+B8p ... .text:0001AD40 .text:0001AD40 var_15C = -0x15C .text:0001AD40 var_158 = -0x158 .text:0001AD40 var_154 = -0x154 .text:0001AD40 var_150 = -0x150 .text:0001AD40 var_D0 = -0xD0 .text:0001AD40 var_CC = -0xCC .text:0001AD40 var_C8 = -0xC8 .text:0001AD40 var_C4 = -0xC4 .text:0001AD40 var_44 = -0x44 .text:0001AD40 var_40 = -0x40 .text:0001AD40 var_3C = -0x3C .text:0001AD40 var_38 = -0x38 .text:0001AD40 var_34 = -0x34 .text:0001AD40 var_30 = -0x30 .text:0001AD40 var_2C = -0x2C .text:0001AD40 var_28 = -0x28 .text:0001AD40 .text:0001AD40 MOV R12, SP ; Alternative name is '__sigaction' .text:0001AD44 STMFD SP!, {R4-R8,R10-R12,LR,PC} .text:0001AD48 SUB R11, R12, #4 .text:0001AD4C MOV R8, R0 .text:0001AD50 MOV R5, R1 .text:0001AD54 MOV R6, R2 .text:0001AD58 LDR R12, =__libc_missing_rt_sigs .text:0001AD5C SUB SP, SP, #0x138 .text:0001AD60 LDR R3, [R12] .text:0001AD64 MOV R10, R12 .text:0001AD68 CMP R3, #0 .text:0001AD6C BNE loc_1AE74 .text:0001AD70 BL __errno_location .text:0001AD74 CMP R5, #0 .text:0001AD78 LDR R7, [R0] .text:0001AD7C BEQ loc_1ADCC .text:0001AD80 MOV R1, R5 .text:0001AD84 LDR R3, [R1],#4 .text:0001AD88 STR R3, [R11,#var_D0] .text:0001AD8C SUB R0, R11, #-var_C4 .text:0001AD90 MOV R2, #0x80 .text:0001AD94 BL memcpy .text:0001AD98 LDR R1, [R5,#0x84] .text:0001AD9C TST R1, #0xC000000 .text:0001ADA0 STR R1, [R11,#var_CC] .text:0001ADA4 LDRNE R3, [R5,#0x88] .text:0001ADA8 STRNE R3, [R11,#var_C8] .text:0001ADAC BNE loc_1ADCC .text:0001ADB0 ORR R3, R1, #0x4000000 .text:0001ADB4 STR R3, [R11,#var_CC] .text:0001ADB8 LDR R2, =__default_sa_restorer .text:0001ADBC LDR R3, =__default_rt_sa_restorer .text:0001ADC0 TST R1, #4 .text:0001ADC4 MOVNE R2, R3 .text:0001ADC8 STR R2, [R11,#var_C8] .text:0001ADCC .text:0001ADCC loc_1ADCC ; CODE XREF: sigaction+3Cj .text:0001ADCC ; sigaction+6Cj .text:0001ADCC CMP R6, #0 .text:0001ADD0 MOV R3, #8 .text:0001ADD4 SUB R2, R11, #-var_15C .text:0001ADD8 MOVEQ R2, R6 .text:0001ADDC CMP R5, #0 .text:0001ADE0 SUB R1, R11, #-var_D0 .text:0001ADE4 MOVEQ R1, R5 .text:0001ADE8 MOV R0, R8 .text:0001ADEC SVC 0x9000AE .text:0001ADF0 MOV R4, R0 .text:0001ADF4 CMN R4, #0x1000 .text:0001ADF8 BLS loc_1AE0C .text:0001ADFC BL __errno_location .text:0001AE00 RSB R3, R4, #0 .text:0001AE04 MOV R4, 0xFFFFFFFF .text:0001AE08 STR R3, [R0] .text:0001AE0C .text:0001AE0C loc_1AE0C ; CODE XREF: sigaction+B8j .text:0001AE0C CMP R4, #0 .text:0001AE10 BGE loc_1AE24 .text:0001AE14 BL __errno_location .text:0001AE18 LDR R3, [R0] .text:0001AE1C CMP R3, #0x26 .text:0001AE20 BEQ loc_1AE64 .text:0001AE24 .text:0001AE24 loc_1AE24 ; CODE XREF: sigaction+D0j .text:0001AE24 MVN R3, R4 .text:0001AE28 MOV R3, R3,LSR#31 .text:0001AE2C CMP R6, #0 .text:0001AE30 MOVEQ R3, #0 .text:0001AE34 CMP R3, #0 .text:0001AE38 BEQ loc_1AF44 .text:0001AE3C LDR R3, [R11,#var_15C] .text:0001AE40 MOV R0, R6 .text:0001AE44 STR R3, [R0],#4 .text:0001AE48 SUB R1, R11, #-var_150 .text:0001AE4C MOV R2, #0x80 .text:0001AE50 BL memcpy .text:0001AE54 LDR R3, [R11,#var_158] .text:0001AE58 STR R3, [R6,#0x84] .text:0001AE5C LDR R2, [R11,#var_154] .text:0001AE60 B loc_1AF40 .text:0001AE64 ; --------------------------------------------------------------------------- .text:0001AE64 .text:0001AE64 loc_1AE64 ; CODE XREF: sigaction+E0j .text:0001AE64 BL __errno_location .text:0001AE68 STR R7, [R0] .text:0001AE6C MOV R3, #1 .text:0001AE70 STR R3, [R10] .text:0001AE74 .text:0001AE74 loc_1AE74 ; CODE XREF: sigaction+2Cj .text:0001AE74 CMP R5, #0 .text:0001AE78 BEQ loc_1AED0 .text:0001AE7C LDR R3, [R5] .text:0001AE80 STR R3, [R11,#var_34] .text:0001AE84 LDR R2, [R5,#4] .text:0001AE88 STR R2, [R11,#var_30] .text:0001AE8C LDR R1, [R5,#0x84] .text:0001AE90 TST R1, #0xC000000 .text:0001AE94 STR R1, [R11,#var_2C] .text:0001AE98 BEQ loc_1AEB4 .text:0001AE9C LDR R3, [R5,#0x88] .text:0001AEA0 STR R3, [R11,#var_28] .text:0001AEA4 B loc_1AED0 .text:0001AEA4 ; --------------------------------------------------------------------------- .text:0001AEA8 off_1AEA8 DCD __libc_missing_rt_sigs ; DATA XREF: sigaction+18r .text:0001AEAC off_1AEAC DCD __default_sa_restorer ; DATA XREF: sigaction+78r .text:0001AEB0 off_1AEB0 DCD __default_rt_sa_restorer ; DATA XREF: sigaction+7Cr .text:0001AEB4 ; --------------------------------------------------------------------------- .text:0001AEB4 .text:0001AEB4 loc_1AEB4 ; CODE XREF: sigaction+158j .text:0001AEB4 ORR R3, R1, #0x4000000 .text:0001AEB8 STR R3, [R11,#var_2C] .text:0001AEBC LDR R2, =__default_sa_restorer .text:0001AEC0 LDR R3, =__default_rt_sa_restorer .text:0001AEC4 TST R1, #4 .text:0001AEC8 MOVNE R2, R3 .text:0001AECC STR R2, [R11,#var_28] .text:0001AED0 .text:0001AED0 loc_1AED0 ; CODE XREF: sigaction+138j .text:0001AED0 ; sigaction+164j .text:0001AED0 CMP R6, #0 .text:0001AED4 SUB R2, R11, #-var_44 .text:0001AED8 MOVEQ R2, R6 .text:0001AEDC CMP R5, #0 .text:0001AEE0 SUB R1, R11, #-var_34 .text:0001AEE4 MOVEQ R1, R5 .text:0001AEE8 MOV R0, R8 .text:0001AEEC SVC 0x900043 .text:0001AEF0 MOV R4, R0 .text:0001AEF4 CMN R4, #0x1000 .text:0001AEF8 BLS loc_1AF0C .text:0001AEFC BL __errno_location .text:0001AF00 RSB R3, R4, #0 .text:0001AF04 MOV R4, 0xFFFFFFFF .text:0001AF08 STR R3, [R0] .text:0001AF0C .text:0001AF0C loc_1AF0C ; CODE XREF: sigaction+1B8j .text:0001AF0C MVN R3, R4 .text:0001AF10 MOV R3, R3,LSR#31 .text:0001AF14 CMP R6, #0 .text:0001AF18 MOVEQ R3, #0 .text:0001AF1C CMP R3, #0 .text:0001AF20 BEQ loc_1AF44 .text:0001AF24 LDR R3, [R11,#var_44] .text:0001AF28 STR R3, [R6] .text:0001AF2C LDR R2, [R11,#var_40] .text:0001AF30 STR R2, [R6,#4] .text:0001AF34 LDR R3, [R11,#var_3C] .text:0001AF38 STR R3, [R6,#0x84] .text:0001AF3C LDR R2, [R11,#var_38] .text:0001AF40 .text:0001AF40 loc_1AF40 ; CODE XREF: sigaction+120j .text:0001AF40 STR R2, [R6,#0x88] .text:0001AF44 .text:0001AF44 loc_1AF44 ; CODE XREF: sigaction+F8j .text:0001AF44 ; sigaction+1E0j .text:0001AF44 MOV R0, R4 .text:0001AF48 B locret_1AF54 .text:0001AF48 ; --------------------------------------------------------------------------- .text:0001AF4C off_1AF4C DCD __default_sa_restorer ; DATA XREF: sigaction+17Cr .text:0001AF50 off_1AF50 DCD __default_rt_sa_restorer ; DATA XREF: sigaction+180r .text:0001AF54 ; --------------------------------------------------------------------------- .text:0001AF54 .text:0001AF54 locret_1AF54 ; CODE XREF: sigaction+208j .text:0001AF54 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0001AF54 ; End of function sigaction .text:0001AF54 .text:0001AF58 .text:0001AF58 ; =============== S U B R O U T I N E ======================================= .text:0001AF58 .text:0001AF58 ; Attributes: bp-based frame .text:0001AF58 .text:0001AF58 WEAK sigprocmask .text:0001AF58 sigprocmask ; CODE XREF: abort+78p .text:0001AF58 ; sleep+64p ... .text:0001AF58 MOV R12, SP .text:0001AF5C STMFD SP!, {R4-R8,R10-R12,LR,PC} .text:0001AF60 SUB R11, R12, #4 .text:0001AF64 MOV R8, R0 .text:0001AF68 LDR R10, =__libc_missing_rt_sigs .text:0001AF6C MOV R7, R1 .text:0001AF70 LDR R3, [R10] .text:0001AF74 MOV R5, R2 .text:0001AF78 CMP R3, #0 .text:0001AF7C BNE loc_1AFE8 .text:0001AF80 BL __errno_location .text:0001AF84 MOV R2, R5 .text:0001AF88 MOV R1, R7 .text:0001AF8C LDR R6, [R0] .text:0001AF90 MOV R0, R8 .text:0001AF94 MOV R3, #8 .text:0001AF98 SVC 0x9000AF .text:0001AF9C MOV R4, R0 .text:0001AFA0 CMN R4, #0x1000 .text:0001AFA4 BLS loc_1AFB8 .text:0001AFA8 BL __errno_location .text:0001AFAC RSB R3, R4, #0 .text:0001AFB0 MOV R4, 0xFFFFFFFF .text:0001AFB4 STR R3, [R0] .text:0001AFB8 .text:0001AFB8 loc_1AFB8 ; CODE XREF: sigprocmask+4Cj .text:0001AFB8 CMP R4, #0 .text:0001AFBC BGE loc_1AFD0 .text:0001AFC0 BL __errno_location .text:0001AFC4 LDR R3, [R0] .text:0001AFC8 CMP R3, #0x26 .text:0001AFCC BEQ loc_1AFD8 .text:0001AFD0 .text:0001AFD0 loc_1AFD0 ; CODE XREF: sigprocmask+64j .text:0001AFD0 MOV R0, R4 .text:0001AFD4 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0001AFD8 ; --------------------------------------------------------------------------- .text:0001AFD8 .text:0001AFD8 loc_1AFD8 ; CODE XREF: sigprocmask+74j .text:0001AFD8 BL __errno_location .text:0001AFDC STR R6, [R0] .text:0001AFE0 MOV R3, #1 .text:0001AFE4 STR R3, [R10] .text:0001AFE8 .text:0001AFE8 loc_1AFE8 ; CODE XREF: sigprocmask+24j .text:0001AFE8 MOV R2, R5 .text:0001AFEC MOV R1, R7 .text:0001AFF0 MOV R0, R8 .text:0001AFF4 SVC 0x90007E .text:0001AFF8 MOV R4, R0 .text:0001AFFC CMN R4, #0x1000 .text:0001B000 BLS loc_1B014 .text:0001B004 BL __errno_location .text:0001B008 RSB R3, R4, #0 .text:0001B00C MOV R4, 0xFFFFFFFF .text:0001B010 STR R3, [R0] .text:0001B014 .text:0001B014 loc_1B014 ; CODE XREF: sigprocmask+A8j .text:0001B014 MOV R0, R4 .text:0001B018 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0001B018 ; End of function sigprocmask .text:0001B018 .text:0001B018 ; --------------------------------------------------------------------------- .text:0001B01C off_1B01C DCD __libc_missing_rt_sigs ; DATA XREF: sigprocmask+10r .text:0001B020 .text:0001B020 ; =============== S U B R O U T I N E ======================================= .text:0001B020 .text:0001B020 .text:0001B020 WEAK kill .text:0001B020 kill ; CODE XREF: raise+18p .text:0001B020 SVC 0x900025 .text:0001B024 CMN R0, #0x1000 .text:0001B028 MOVCC PC, LR .text:0001B02C B __syscall_error .text:0001B02C ; End of function kill .text:0001B02C .text:0001B030 .text:0001B030 ; =============== S U B R O U T I N E ======================================= .text:0001B030 .text:0001B030 .text:0001B030 EXPORT __default_sa_restorer .text:0001B030 __default_sa_restorer ; DATA XREF: sigaction+78o .text:0001B030 ; sigaction:off_1AEACo ... .text:0001B030 SVC 0x900077 .text:0001B034 ANDEQ R0, R0, R0 .text:0001B038 ANDEQ R0, R0, R0 .text:0001B03C ANDEQ R0, R0, R0 .text:0001B03C ; End of function __default_sa_restorer .text:0001B03C .text:0001B040 .text:0001B040 ; =============== S U B R O U T I N E ======================================= .text:0001B040 .text:0001B040 .text:0001B040 EXPORT __default_rt_sa_restorer .text:0001B040 __default_rt_sa_restorer ; DATA XREF: sigaction+7Co .text:0001B040 ; sigaction:off_1AEB0o ... .text:0001B040 SVC 0x9000AD .text:0001B044 NOP .text:0001B048 NOP .text:0001B04C NOP .text:0001B04C ; End of function __default_rt_sa_restorer .text:0001B04C .text:0001B050 .text:0001B050 ; =============== S U B R O U T I N E ======================================= .text:0001B050 .text:0001B050 ; Attributes: bp-based frame .text:0001B050 .text:0001B050 EXPORT bsearch .text:0001B050 bsearch ; CODE XREF: _nl_expand_alias+64p .text:0001B050 .text:0001B050 arg_0 = 4 .text:0001B050 .text:0001B050 MOV R12, SP .text:0001B054 STMFD SP!, {R4-R12,LR,PC} .text:0001B058 SUB R11, R12, #4 .text:0001B05C MOV R7, #0 .text:0001B060 MOV R6, R2 .text:0001B064 CMP R7, R6 .text:0001B068 MOV R9, R0 .text:0001B06C MOV R10, R1 .text:0001B070 MOV R8, R3 .text:0001B074 BCS loc_1B0B8 .text:0001B078 .text:0001B078 loc_1B078 ; CODE XREF: bsearch+64j .text:0001B078 ADD R3, R7, R6 .text:0001B07C MOV R4, R3,LSR#1 .text:0001B080 MLA R5, R8, R4, R10 .text:0001B084 MOV R0, R9 .text:0001B088 LDR R3, [R11,#arg_0] .text:0001B08C MOV R1, R5 .text:0001B090 MOV LR, PC .text:0001B094 MOV PC, R3 .text:0001B098 CMP R0, #0 .text:0001B09C MOVLT R6, R4 .text:0001B0A0 BLT loc_1B0B0 .text:0001B0A4 MOVLE R0, R5 .text:0001B0A8 LDMLEDB R11, {R4-R11,SP,PC} .text:0001B0AC ADD R7, R4, #1 .text:0001B0B0 .text:0001B0B0 loc_1B0B0 ; CODE XREF: bsearch+50j .text:0001B0B0 CMP R7, R6 .text:0001B0B4 BCC loc_1B078 .text:0001B0B8 .text:0001B0B8 loc_1B0B8 ; CODE XREF: bsearch+24j .text:0001B0B8 MOV R0, #0 .text:0001B0BC LDMDB R11, {R4-R11,SP,PC} .text:0001B0BC ; End of function bsearch .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 msort_with_tmp ; CODE XREF: msort_with_tmp+48p .text:0001B0C0 ; msort_with_tmp+64p ... .text:0001B0C0 .text:0001B0C0 var_34 = -0x34 .text:0001B0C0 var_30 = -0x30 .text:0001B0C0 var_2C = -0x2C .text:0001B0C0 arg_0 = 4 .text:0001B0C0 .text:0001B0C0 MOV R12, SP .text:0001B0C4 STMFD SP!, {R4-R12,LR,PC} .text:0001B0C8 SUB R11, R12, #4 .text:0001B0CC SUB SP, SP, #0xC .text:0001B0D0 STR R1, [R11,#var_30] .text:0001B0D4 MOV R10, R2 .text:0001B0D8 MOV R9, R3 .text:0001B0DC STR R0, [R11,#var_2C] .text:0001B0E0 CMP R1, #1 .text:0001B0E4 BLS locret_1B214 .text:0001B0E8 MOV R4, R1,LSR#1 .text:0001B0EC MOV R7, R0 .text:0001B0F0 MLA R7, R10, R4, R7 .text:0001B0F4 RSB R5, R4, R1 .text:0001B0F8 LDR R1, [R11,#arg_0] .text:0001B0FC STR R1, [SP,#0x34+var_34] .text:0001B100 MOV R8, R0 .text:0001B104 MOV R1, R4 .text:0001B108 BL msort_with_tmp .text:0001B10C LDR R2, [R11,#arg_0] .text:0001B110 STR R2, [SP,#0x34+var_34] .text:0001B114 MOV R1, R5 .text:0001B118 MOV R3, R9 .text:0001B11C MOV R2, R10 .text:0001B120 MOV R0, R7 .text:0001B124 BL msort_with_tmp .text:0001B128 CMP R10, #4 .text:0001B12C LDR R6, [R11,#arg_0] .text:0001B130 BNE loc_1B1D8 .text:0001B134 LDR R3, [R11,#var_2C] .text:0001B138 TST R3, #3 .text:0001B13C BNE loc_1B1D8 .text:0001B140 CMP R4, #0 .text:0001B144 CMPNE R5, #0 .text:0001B148 BEQ loc_1B1E4 .text:0001B14C .text:0001B14C loc_1B14C ; CODE XREF: msort_with_tmp+BCj .text:0001B14C MOV R0, R8 .text:0001B150 MOV R1, R7 .text:0001B154 MOV LR, PC .text:0001B158 MOV PC, R9 .text:0001B15C CMP R0, #0 .text:0001B160 LDRLE R3, [R8],#4 .text:0001B164 SUBLE R4, R4, #1 .text:0001B168 LDRGT R3, [R7],#4 .text:0001B16C SUBGT R5, R5, #1 .text:0001B170 STR R3, [R6],#4 .text:0001B174 CMP R4, #0 .text:0001B178 CMPNE R5, #0 .text:0001B17C BNE loc_1B14C .text:0001B180 B loc_1B1E4 .text:0001B184 ; --------------------------------------------------------------------------- .text:0001B184 .text:0001B184 loc_1B184 ; CODE XREF: msort_with_tmp+120j .text:0001B184 MOV R0, R8 .text:0001B188 MOV R1, R7 .text:0001B18C MOV LR, PC .text:0001B190 MOV PC, R9 .text:0001B194 CMP R0, #0 .text:0001B198 BGT loc_1B1BC .text:0001B19C MOV R0, R6 .text:0001B1A0 MOV R1, R8 .text:0001B1A4 MOV R2, R10 .text:0001B1A8 BL mempcpy .text:0001B1AC MOV R6, R0 .text:0001B1B0 ADD R8, R8, R10 .text:0001B1B4 SUB R4, R4, #1 .text:0001B1B8 B loc_1B1D8 .text:0001B1BC ; --------------------------------------------------------------------------- .text:0001B1BC .text:0001B1BC loc_1B1BC ; CODE XREF: msort_with_tmp+D8j .text:0001B1BC MOV R0, R6 .text:0001B1C0 MOV R1, R7 .text:0001B1C4 MOV R2, R10 .text:0001B1C8 BL mempcpy .text:0001B1CC MOV R6, R0 .text:0001B1D0 ADD R7, R7, R10 .text:0001B1D4 SUB R5, R5, #1 .text:0001B1D8 .text:0001B1D8 loc_1B1D8 ; CODE XREF: msort_with_tmp+70j .text:0001B1D8 ; msort_with_tmp+7Cj ... .text:0001B1D8 CMP R4, #0 .text:0001B1DC CMPNE R5, #0 .text:0001B1E0 BNE loc_1B184 .text:0001B1E4 .text:0001B1E4 loc_1B1E4 ; CODE XREF: msort_with_tmp+88j .text:0001B1E4 ; msort_with_tmp+C0j .text:0001B1E4 CMP R4, #0 .text:0001B1E8 BEQ loc_1B1FC .text:0001B1EC MUL R2, R10, R4 .text:0001B1F0 MOV R0, R6 .text:0001B1F4 MOV R1, R8 .text:0001B1F8 BL memcpy .text:0001B1FC .text:0001B1FC loc_1B1FC ; CODE XREF: msort_with_tmp+128j .text:0001B1FC LDR R1, [R11,#var_30] .text:0001B200 RSB R3, R5, R1 .text:0001B204 MUL R2, R10, R3 .text:0001B208 LDR R0, [R11,#var_2C] .text:0001B20C LDR R1, [R11,#arg_0] .text:0001B210 BL memcpy .text:0001B214 .text:0001B214 locret_1B214 ; CODE XREF: msort_with_tmp+24j .text:0001B214 LDMDB R11, {R4-R11,SP,PC} .text:0001B214 ; End of function msort_with_tmp .text:0001B214 .text:0001B218 .text:0001B218 ; =============== S U B R O U T I N E ======================================= .text:0001B218 .text:0001B218 ; Attributes: bp-based frame .text:0001B218 .text:0001B218 EXPORT qsort .text:0001B218 qsort ; CODE XREF: read_alias_file+488p .text:0001B218 .text:0001B218 var_2C = -0x2C .text:0001B218 var_28 = -0x28 .text:0001B218 .text:0001B218 MOV R12, SP .text:0001B21C STMFD SP!, {R4-R12,LR,PC} .text:0001B220 MOV R6, R1 .text:0001B224 MOV R8, R2 .text:0001B228 MUL R5, R8, R6 .text:0001B22C SUB R11, R12, #4 .text:0001B230 MOV R7, R0 .text:0001B234 MOV R10, R3 .text:0001B238 SUB SP, SP, #4 .text:0001B23C CMP R5, #0x400 .text:0001B240 BCS loc_1B268 .text:0001B244 ADD R3, R5, #3 .text:0001B248 BIC R3, R3, #3 .text:0001B24C RSB SP, R3, SP .text:0001B250 ADD R2, SP, #0x2C+var_28 .text:0001B254 STR R2, [SP,#0x2C+var_2C] .text:0001B258 MOV R2, R8 .text:0001B25C MOV R3, R10 .text:0001B260 BL msort_with_tmp .text:0001B264 B locret_1B338 .text:0001B268 ; --------------------------------------------------------------------------- .text:0001B268 .text:0001B268 loc_1B268 ; CODE XREF: qsort+28j .text:0001B268 LDR R2, =phys_pages.87 .text:0001B26C LDR R9, =pagesize.88 .text:0001B270 LDR R3, [R2] .text:0001B274 MOV R4, R2 .text:0001B278 CMP R3, #0 .text:0001B27C BNE loc_1B2B8 .text:0001B280 MOV R0, #0x55 .text:0001B284 BL sysconf .text:0001B288 CMN R0, #1 .text:0001B28C STR R0, [R4] .text:0001B290 MOVEQ R3, 0x7FFFFFFF .text:0001B294 STREQ R3, [R4] .text:0001B298 LDR R3, [R4] .text:0001B29C CMP R3, #0 .text:0001B2A0 ADDLT R3, R3, #3 .text:0001B2A4 MOV R3, R3,ASR#2 .text:0001B2A8 STR R3, [R4] .text:0001B2AC MOV R0, #0x1E .text:0001B2B0 BL sysconf .text:0001B2B4 STR R0, [R9] .text:0001B2B8 .text:0001B2B8 loc_1B2B8 ; CODE XREF: qsort+64j .text:0001B2B8 LDR R1, [R9] .text:0001B2BC MOV R0, R5 .text:0001B2C0 BL __udivsi3 .text:0001B2C4 LDR R3, [R4] .text:0001B2C8 CMP R0, R3 .text:0001B2CC BHI loc_1B2F0 .text:0001B2D0 BL __errno_location .text:0001B2D4 LDR R4, [R0] .text:0001B2D8 MOV R0, R5 .text:0001B2DC BL malloc .text:0001B2E0 SUBS R5, R0, #0 .text:0001B2E4 BNE loc_1B310 .text:0001B2E8 BL __errno_location .text:0001B2EC STR R4, [R0] .text:0001B2F0 .text:0001B2F0 loc_1B2F0 ; CODE XREF: qsort+B4j .text:0001B2F0 MOV R0, R7 .text:0001B2F4 MOV R1, R6 .text:0001B2F8 MOV R2, R8 .text:0001B2FC MOV R3, R10 .text:0001B300 BL _quicksort .text:0001B304 B locret_1B338 .text:0001B304 ; --------------------------------------------------------------------------- .text:0001B308 off_1B308 DCD phys_pages.87 ; DATA XREF: qsort:loc_1B268r .text:0001B30C off_1B30C DCD pagesize.88 ; DATA XREF: qsort+54r .text:0001B310 ; --------------------------------------------------------------------------- .text:0001B310 .text:0001B310 loc_1B310 ; CODE XREF: qsort+CCj .text:0001B310 BL __errno_location .text:0001B314 STR R4, [R0] .text:0001B318 STR R5, [SP,#0x2C+var_2C] .text:0001B31C MOV R0, R7 .text:0001B320 MOV R1, R6 .text:0001B324 MOV R2, R8 .text:0001B328 MOV R3, R10 .text:0001B32C BL msort_with_tmp .text:0001B330 MOV R0, R5 .text:0001B334 BL free .text:0001B338 .text:0001B338 locret_1B338 ; CODE XREF: qsort+4Cj .text:0001B338 ; qsort+ECj .text:0001B338 LDMDB R11, {R4-R11,SP,PC} .text:0001B338 ; End of function qsort .text:0001B338 .text:0001B33C .text:0001B33C ; =============== S U B R O U T I N E ======================================= .text:0001B33C .text:0001B33C ; Attributes: bp-based frame .text:0001B33C .text:0001B33C EXPORT getenv .text:0001B33C getenv ; CODE XREF: ptmalloc_init+14Cp .text:0001B33C ; ptmalloc_init+178p ... .text:0001B33C MOV R12, SP .text:0001B340 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0001B344 SUB R11, R12, #4 .text:0001B348 MOV R5, R0 .text:0001B34C BL strlen .text:0001B350 LDR R3, =environ .text:0001B354 LDR R12, [R3] .text:0001B358 MOV R6, R0 .text:0001B35C CMP R12, #0 .text:0001B360 BEQ loc_1B370 .text:0001B364 LDRB R3, [R5] .text:0001B368 CMP R3, #0 .text:0001B36C BNE loc_1B378 .text:0001B370 .text:0001B370 loc_1B370 ; CODE XREF: getenv+24j .text:0001B370 MOV R0, #0 .text:0001B374 LDMDB R11, {R4-R7,R11,SP,PC} .text:0001B378 ; --------------------------------------------------------------------------- .text:0001B378 .text:0001B378 loc_1B378 ; CODE XREF: getenv+30j .text:0001B378 LDRB R3, [R5,#1] .text:0001B37C CMP R3, #0 .text:0001B380 BNE loc_1B3D8 .text:0001B384 LDRB R2, [R5] .text:0001B388 MOV R4, R12 .text:0001B38C LDR R3, [R4] .text:0001B390 ORR R7, R2, #0x3D00 .text:0001B394 CMP R3, #0 .text:0001B398 BEQ loc_1B44C .text:0001B39C .text:0001B39C loc_1B39C ; CODE XREF: getenv+80j .text:0001B39C LDR R0, [R4] .text:0001B3A0 LDRB R3, [R0] .text:0001B3A4 LDRB R2, [R0,#1] .text:0001B3A8 ORR R3, R3, R2,LSL#8 .text:0001B3AC CMP R7, R3 .text:0001B3B0 BEQ loc_1B3C4 .text:0001B3B4 LDR R3, [R4,#4]! .text:0001B3B8 CMP R3, #0 .text:0001B3BC BNE loc_1B39C .text:0001B3C0 B loc_1B44C .text:0001B3C4 ; --------------------------------------------------------------------------- .text:0001B3C4 .text:0001B3C4 loc_1B3C4 ; CODE XREF: getenv+74j .text:0001B3C4 ADD R0, R0, #2 .text:0001B3C8 LDMDB R11, {R4-R7,R11,SP,PC} .text:0001B3CC ; --------------------------------------------------------------------------- .text:0001B3CC .text:0001B3CC loc_1B3CC ; CODE XREF: getenv+100j .text:0001B3CC ADD R0, R6, #3 .text:0001B3D0 ADD R0, R1, R0 .text:0001B3D4 LDMDB R11, {R4-R7,R11,SP,PC} .text:0001B3D8 ; --------------------------------------------------------------------------- .text:0001B3D8 .text:0001B3D8 loc_1B3D8 ; CODE XREF: getenv+44j .text:0001B3D8 LDRB R1, [R5] .text:0001B3DC SUB R6, R6, #2 .text:0001B3E0 LDRB R2, [R5,#1] .text:0001B3E4 ADD R5, R5, #2 .text:0001B3E8 MOV R4, R12 .text:0001B3EC LDR R3, [R4] .text:0001B3F0 ORR R7, R1, R2,LSL#8 .text:0001B3F4 CMP R3, #0 .text:0001B3F8 BEQ loc_1B44C .text:0001B3FC .text:0001B3FC loc_1B3FC ; CODE XREF: getenv+10Cj .text:0001B3FC LDR R0, [R4] .text:0001B400 LDRB R3, [R0] .text:0001B404 LDRB R2, [R0,#1] .text:0001B408 ORR R3, R3, R2,LSL#8 .text:0001B40C CMP R7, R3 .text:0001B410 BNE loc_1B440 .text:0001B414 ADD R0, R0, #2 .text:0001B418 MOV R1, R5 .text:0001B41C MOV R2, R6 .text:0001B420 BL strncmp .text:0001B424 CMP R0, #0 .text:0001B428 BNE loc_1B440 .text:0001B42C LDR R1, [R4] .text:0001B430 ADD R3, R6, R1 .text:0001B434 LDRB R2, [R3,#2] .text:0001B438 CMP R2, #0x3D .text:0001B43C BEQ loc_1B3CC .text:0001B440 .text:0001B440 loc_1B440 ; CODE XREF: getenv+D4j .text:0001B440 ; getenv+ECj .text:0001B440 LDR R3, [R4,#4]! .text:0001B444 CMP R3, #0 .text:0001B448 BNE loc_1B3FC .text:0001B44C .text:0001B44C loc_1B44C ; CODE XREF: getenv+5Cj .text:0001B44C ; getenv+84j ... .text:0001B44C MOV R0, #0 .text:0001B450 LDMDB R11, {R4-R7,R11,SP,PC} .text:0001B450 ; End of function getenv .text:0001B450 .text:0001B450 ; --------------------------------------------------------------------------- .text:0001B454 off_1B454 DCD environ ; DATA XREF: getenv+14r .text:0001B458 .text:0001B458 ; =============== S U B R O U T I N E ======================================= .text:0001B458 .text:0001B458 ; Attributes: bp-based frame .text:0001B458 .text:0001B458 EXPORT __add_to_environ .text:0001B458 __add_to_environ ; CODE XREF: setenv+14p .text:0001B458 .text:0001B458 var_30 = -0x30 .text:0001B458 var_2C = -0x2C .text:0001B458 .text:0001B458 MOV R12, SP .text:0001B45C STMFD SP!, {R4-R12,LR,PC} .text:0001B460 SUB R11, R12, #4 .text:0001B464 SUB SP, SP, #8 .text:0001B468 STR R1, [R11,#var_2C] .text:0001B46C STR R2, [R11,#var_30] .text:0001B470 MOV R10, R0 .text:0001B474 MOV R4, R3 .text:0001B478 BL strlen .text:0001B47C LDR R2, [R11,#var_2C] .text:0001B480 MOV R6, R0 .text:0001B484 CMP R2, #0 .text:0001B488 BEQ loc_1B49C .text:0001B48C MOV R0, R2 .text:0001B490 BL strlen .text:0001B494 ADD R9, R0, #1 .text:0001B498 B loc_1B4A0 .text:0001B49C ; --------------------------------------------------------------------------- .text:0001B49C .text:0001B49C loc_1B49C ; CODE XREF: __add_to_environ+30j .text:0001B49C LDR R9, [R11,#var_2C] .text:0001B4A0 .text:0001B4A0 loc_1B4A0 ; CODE XREF: __add_to_environ+40j .text:0001B4A0 LDR R3, =0 .text:0001B4A4 CMP R3, #0 .text:0001B4A8 BEQ loc_1B4B8 .text:0001B4AC LDR R0, =envlock .text:0001B4B0 MOV LR, PC .text:0001B4B4 MOV PC, R3 .text:0001B4B8 .text:0001B4B8 loc_1B4B8 ; CODE XREF: __add_to_environ+50j .text:0001B4B8 LDR R3, =environ .text:0001B4BC LDR R5, [R3] .text:0001B4C0 MOV R8, #0 .text:0001B4C4 CMP R5, R8 .text:0001B4C8 BEQ loc_1B510 .text:0001B4CC LDR R3, [R5] .text:0001B4D0 CMP R3, R8 .text:0001B4D4 BEQ loc_1B510 .text:0001B4D8 .text:0001B4D8 loc_1B4D8 ; CODE XREF: __add_to_environ+B4j .text:0001B4D8 MOV R1, R10 .text:0001B4DC LDR R0, [R5] .text:0001B4E0 MOV R2, R6 .text:0001B4E4 BL strncmp .text:0001B4E8 CMP R0, #0 .text:0001B4EC BNE loc_1B500 .text:0001B4F0 LDR R3, [R5] .text:0001B4F4 LDRB R2, [R3,R6] .text:0001B4F8 CMP R2, #0x3D .text:0001B4FC BEQ loc_1B510 .text:0001B500 .text:0001B500 loc_1B500 ; CODE XREF: __add_to_environ+94j .text:0001B500 LDR R3, [R5,#4]! .text:0001B504 ADD R8, R8, #1 .text:0001B508 CMP R3, #0 .text:0001B50C BNE loc_1B4D8 .text:0001B510 .text:0001B510 loc_1B510 ; CODE XREF: __add_to_environ+70j .text:0001B510 ; __add_to_environ+7Cj ... .text:0001B510 CMP R5, #0 .text:0001B514 BEQ loc_1B524 .text:0001B518 LDR R3, [R5] .text:0001B51C CMP R3, #0 .text:0001B520 BNE loc_1B674 .text:0001B524 .text:0001B524 loc_1B524 ; CODE XREF: __add_to_environ+BCj .text:0001B524 LDR R4, =last_environ .text:0001B528 ADD R1, R8, #2 .text:0001B52C LDR R0, [R4] .text:0001B530 MOV R1, R1,LSL#2 .text:0001B534 BL realloc .text:0001B538 SUBS R5, R0, #0 .text:0001B53C BNE loc_1B55C .text:0001B540 LDR R3, =0 .text:0001B544 CMP R3, #0 .text:0001B548 BEQ loc_1B71C .text:0001B54C LDR R0, =envlock .text:0001B550 MOV LR, PC .text:0001B554 MOV PC, R3 .text:0001B558 B loc_1B71C .text:0001B55C ; --------------------------------------------------------------------------- .text:0001B55C .text:0001B55C loc_1B55C ; CODE XREF: __add_to_environ+E4j .text:0001B55C LDR R2, [R11,#var_30] .text:0001B560 CMP R2, #0 .text:0001B564 STRNE R2, [R5,R8,LSL#2] .text:0001B568 BNE loc_1B62C .text:0001B56C ADD R2, R9, #1 .text:0001B570 ADD R7, R6, R2 .text:0001B574 ADD R3, R7, #3 .text:0001B578 BIC R3, R3, #3 .text:0001B57C RSB SP, R3, SP .text:0001B580 MOV R0, SP .text:0001B584 MOV R1, R10 .text:0001B588 MOV R2, R6 .text:0001B58C BL mempcpy .text:0001B590 LDR R1, =asc_56898 ; "=" .text:0001B594 MOV R2, #1 .text:0001B598 BL mempcpy .text:0001B59C LDR R1, [R11,#var_2C] .text:0001B5A0 MOV R2, R9 .text:0001B5A4 BL mempcpy .text:0001B5A8 LDR R6, =known_values .text:0001B5AC MOV R0, SP .text:0001B5B0 LDR R10, =strcmp .text:0001B5B4 MOV R1, R6 .text:0001B5B8 MOV R2, R10 .text:0001B5BC BL tfind .text:0001B5C0 CMP R0, #0 .text:0001B5C4 LDR R2, [R11,#var_30] .text:0001B5C8 LDRNE R2, [R0] .text:0001B5CC CMP R2, #0 .text:0001B5D0 STR R2, [R5,R8,LSL#2] .text:0001B5D4 BNE loc_1B62C .text:0001B5D8 MOV R0, R7 .text:0001B5DC BL malloc .text:0001B5E0 CMP R0, #0 .text:0001B5E4 STR R0, [R5,R8,LSL#2] .text:0001B5E8 BNE loc_1B610 .text:0001B5EC BL __errno_location .text:0001B5F0 LDR R3, =0 .text:0001B5F4 CMP R3, #0 .text:0001B5F8 MOV R3, #0xC .text:0001B5FC STR R3, [R0] .text:0001B600 BEQ loc_1B71C .text:0001B604 LDR R0, =envlock .text:0001B608 LDR R2, =0 .text:0001B60C B loc_1B714 .text:0001B610 ; --------------------------------------------------------------------------- .text:0001B610 .text:0001B610 loc_1B610 ; CODE XREF: __add_to_environ+190j .text:0001B610 MOV R1, SP .text:0001B614 MOV R2, R7 .text:0001B618 BL memcpy .text:0001B61C MOV R1, R6 .text:0001B620 LDR R0, [R5,R8,LSL#2] .text:0001B624 MOV R2, R10 .text:0001B628 BL tsearch .text:0001B62C .text:0001B62C loc_1B62C ; CODE XREF: __add_to_environ+110j .text:0001B62C ; __add_to_environ+17Cj .text:0001B62C LDR R3, =environ .text:0001B630 LDR R2, =last_environ .text:0001B634 LDR R1, [R3] .text:0001B638 LDR R3, [R2] .text:0001B63C MOV R4, R8,LSL#2 .text:0001B640 CMP R1, R3 .text:0001B644 BEQ loc_1B654 .text:0001B648 MOV R0, R5 .text:0001B64C MOV R2, R4 .text:0001B650 BL memcpy .text:0001B654 .text:0001B654 loc_1B654 ; CODE XREF: __add_to_environ+1ECj .text:0001B654 ADD R2, R4, R5 .text:0001B658 MOV R3, #0 .text:0001B65C STR R3, [R2,#4] .text:0001B660 LDR R3, =environ .text:0001B664 STR R5, [R3] .text:0001B668 LDR R2, =last_environ .text:0001B66C STR R5, [R2] .text:0001B670 B loc_1B768 .text:0001B674 ; --------------------------------------------------------------------------- .text:0001B674 .text:0001B674 loc_1B674 ; CODE XREF: __add_to_environ+C8j .text:0001B674 CMP R4, #0 .text:0001B678 BEQ loc_1B768 .text:0001B67C LDR R3, [R11,#var_30] .text:0001B680 CMP R3, #0 .text:0001B684 MOVNE R4, R3 .text:0001B688 BNE loc_1B764 .text:0001B68C ADD R2, R9, #1 .text:0001B690 ADD R7, R6, R2 .text:0001B694 ADD R3, R7, #3 .text:0001B698 BIC R3, R3, #3 .text:0001B69C RSB SP, R3, SP .text:0001B6A0 MOV R0, SP .text:0001B6A4 MOV R1, R10 .text:0001B6A8 MOV R2, R6 .text:0001B6AC BL mempcpy .text:0001B6B0 LDR R1, =asc_56898 ; "=" .text:0001B6B4 MOV R2, #1 .text:0001B6B8 BL mempcpy .text:0001B6BC LDR R1, [R11,#var_2C] .text:0001B6C0 MOV R2, R9 .text:0001B6C4 BL mempcpy .text:0001B6C8 LDR R8, =known_values .text:0001B6CC MOV R0, SP .text:0001B6D0 LDR R6, =strcmp .text:0001B6D4 MOV R1, R8 .text:0001B6D8 MOV R2, R6 .text:0001B6DC BL tfind .text:0001B6E0 CMP R0, #0 .text:0001B6E4 LDR R2, [R11,#var_30] .text:0001B6E8 LDRNE R2, [R0] .text:0001B6EC SUBS R4, R2, #0 .text:0001B6F0 BNE loc_1B764 .text:0001B6F4 MOV R0, R7 .text:0001B6F8 BL malloc .text:0001B6FC SUBS R4, R0, #0 .text:0001B700 BNE loc_1B744 .text:0001B704 LDR R2, =0 .text:0001B708 CMP R2, #0 .text:0001B70C BEQ loc_1B71C .text:0001B710 LDR R0, =envlock .text:0001B714 .text:0001B714 loc_1B714 ; CODE XREF: __add_to_environ+1B4j .text:0001B714 MOV LR, PC .text:0001B718 MOV PC, R2 .text:0001B71C .text:0001B71C loc_1B71C ; CODE XREF: __add_to_environ+F0j .text:0001B71C ; __add_to_environ+100j ... .text:0001B71C MOV R0, 0xFFFFFFFF .text:0001B720 B loc_1B784 .text:0001B720 ; --------------------------------------------------------------------------- .text:0001B724 off_1B724 DCD 0 ; DATA XREF: __add_to_environ:loc_1B4A0r .text:0001B728 off_1B728 DCD envlock ; DATA XREF: __add_to_environ+54r .text:0001B728 ; __add_to_environ+F4r ... .text:0001B72C off_1B72C DCD environ ; DATA XREF: __add_to_environ:loc_1B4B8r .text:0001B72C ; __add_to_environ:loc_1B62Cr ... .text:0001B730 off_1B730 DCD last_environ ; DATA XREF: __add_to_environ:loc_1B524r .text:0001B730 ; __add_to_environ+1D8r ... .text:0001B734 off_1B734 DCD 0 ; DATA XREF: __add_to_environ+E8r .text:0001B734 ; __add_to_environ+198r ... .text:0001B738 off_1B738 DCD asc_56898 ; DATA XREF: __add_to_environ+138r .text:0001B738 ; __add_to_environ+258r .text:0001B738 ; "=" .text:0001B73C off_1B73C DCD known_values ; DATA XREF: __add_to_environ+150r .text:0001B73C ; __add_to_environ+270r .text:0001B740 off_1B740 DCD strcmp ; DATA XREF: __add_to_environ+158r .text:0001B740 ; __add_to_environ+278r .text:0001B744 ; --------------------------------------------------------------------------- .text:0001B744 .text:0001B744 loc_1B744 ; CODE XREF: __add_to_environ+2A8j .text:0001B744 MOV R0, R4 .text:0001B748 MOV R1, SP .text:0001B74C MOV R2, R7 .text:0001B750 BL memcpy .text:0001B754 MOV R0, R4 .text:0001B758 MOV R1, R8 .text:0001B75C MOV R2, R6 .text:0001B760 BL tsearch .text:0001B764 .text:0001B764 loc_1B764 ; CODE XREF: __add_to_environ+230j .text:0001B764 ; __add_to_environ+298j .text:0001B764 STR R4, [R5] .text:0001B768 .text:0001B768 loc_1B768 ; CODE XREF: __add_to_environ+218j .text:0001B768 ; __add_to_environ+220j .text:0001B768 LDR R3, =0 .text:0001B76C CMP R3, #0 .text:0001B770 BEQ loc_1B780 .text:0001B774 LDR R0, =envlock .text:0001B778 MOV LR, PC .text:0001B77C MOV PC, R3 .text:0001B780 .text:0001B780 loc_1B780 ; CODE XREF: __add_to_environ+318j .text:0001B780 MOV R0, #0 .text:0001B784 .text:0001B784 loc_1B784 ; CODE XREF: __add_to_environ+2C8j .text:0001B784 B locret_1B790 .text:0001B784 ; --------------------------------------------------------------------------- .text:0001B788 off_1B788 DCD 0 ; DATA XREF: __add_to_environ:loc_1B768r .text:0001B78C off_1B78C DCD envlock ; DATA XREF: __add_to_environ+31Cr .text:0001B790 ; --------------------------------------------------------------------------- .text:0001B790 .text:0001B790 locret_1B790 ; CODE XREF: __add_to_environ:loc_1B784j .text:0001B790 LDMDB R11, {R4-R11,SP,PC} .text:0001B790 ; End of function __add_to_environ .text:0001B790 .text:0001B794 .text:0001B794 ; =============== S U B R O U T I N E ======================================= .text:0001B794 .text:0001B794 ; Attributes: bp-based frame .text:0001B794 .text:0001B794 WEAK setenv .text:0001B794 setenv .text:0001B794 MOV R12, SP ; Alternative name is '__setenv' .text:0001B798 STMFD SP!, {R11,R12,LR,PC} .text:0001B79C SUB R11, R12, #4 .text:0001B7A0 MOV R3, R2 .text:0001B7A4 MOV R2, #0 .text:0001B7A8 BL __add_to_environ .text:0001B7AC LDMDB R11, {R11,SP,PC} .text:0001B7AC ; End of function setenv .text:0001B7AC .text:0001B7B0 .text:0001B7B0 ; =============== S U B R O U T I N E ======================================= .text:0001B7B0 .text:0001B7B0 ; Attributes: bp-based frame .text:0001B7B0 .text:0001B7B0 WEAK unsetenv .text:0001B7B0 unsetenv ; CODE XREF: non_dynamic_init+F4p .text:0001B7B0 ; non_dynamic_init+118p .text:0001B7B0 MOV R12, SP ; Alternative name is '__unsetenv' .text:0001B7B4 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0001B7B8 SUB R11, R12, #4 .text:0001B7BC SUBS R6, R0, #0 .text:0001B7C0 BEQ loc_1B7E4 .text:0001B7C4 LDRB R3, [R6] .text:0001B7C8 CMP R3, #0 .text:0001B7CC BEQ loc_1B7E4 .text:0001B7D0 MOV R0, R6 .text:0001B7D4 MOV R1, #0x3D .text:0001B7D8 BL strchr .text:0001B7DC CMP R0, #0 .text:0001B7E0 BEQ loc_1B7F8 .text:0001B7E4 .text:0001B7E4 loc_1B7E4 ; CODE XREF: unsetenv+10j .text:0001B7E4 ; unsetenv+1Cj .text:0001B7E4 BL __errno_location .text:0001B7E8 MOV R3, #0x16 .text:0001B7EC STR R3, [R0] .text:0001B7F0 MOV R0, 0xFFFFFFFF .text:0001B7F4 LDMDB R11, {R4-R7,R11,SP,PC} .text:0001B7F8 ; --------------------------------------------------------------------------- .text:0001B7F8 .text:0001B7F8 loc_1B7F8 ; CODE XREF: unsetenv+30j .text:0001B7F8 MOV R0, R6 .text:0001B7FC BL strlen .text:0001B800 LDR R3, =0 .text:0001B804 MOV R5, R0 .text:0001B808 CMP R3, #0 .text:0001B80C BEQ loc_1B81C .text:0001B810 LDR R0, =envlock .text:0001B814 MOV LR, PC .text:0001B818 MOV PC, R3 .text:0001B81C .text:0001B81C loc_1B81C ; CODE XREF: unsetenv+5Cj .text:0001B81C LDR R3, =environ .text:0001B820 LDR R4, [R3] .text:0001B824 LDR R2, [R4] .text:0001B828 LDR R7, =0 .text:0001B82C CMP R2, #0 .text:0001B830 BEQ loc_1B884 .text:0001B834 .text:0001B834 loc_1B834 ; CODE XREF: unsetenv+D0j .text:0001B834 MOV R1, R6 .text:0001B838 LDR R0, [R4] .text:0001B83C MOV R2, R5 .text:0001B840 BL strncmp .text:0001B844 CMP R0, #0 .text:0001B848 BNE loc_1B874 .text:0001B84C LDR R3, [R4] .text:0001B850 LDRB R2, [R3,R5] .text:0001B854 CMP R2, #0x3D .text:0001B858 BNE loc_1B874 .text:0001B85C MOV R2, R4 .text:0001B860 .text:0001B860 loc_1B860 ; CODE XREF: unsetenv+BCj .text:0001B860 LDR R3, [R2,#4] .text:0001B864 CMP R3, #0 .text:0001B868 STR R3, [R2],#4 .text:0001B86C BNE loc_1B860 .text:0001B870 B loc_1B878 .text:0001B874 ; --------------------------------------------------------------------------- .text:0001B874 .text:0001B874 loc_1B874 ; CODE XREF: unsetenv+98j .text:0001B874 ; unsetenv+A8j .text:0001B874 ADD R4, R4, #4 .text:0001B878 .text:0001B878 loc_1B878 ; CODE XREF: unsetenv+C0j .text:0001B878 LDR R3, [R4] .text:0001B87C CMP R3, #0 .text:0001B880 BNE loc_1B834 .text:0001B884 .text:0001B884 loc_1B884 ; CODE XREF: unsetenv+80j .text:0001B884 CMP R7, #0 .text:0001B888 BEQ loc_1B898 .text:0001B88C LDR R0, =envlock .text:0001B890 MOV LR, PC .text:0001B894 MOV PC, R7 .text:0001B898 .text:0001B898 loc_1B898 ; CODE XREF: unsetenv+D8j .text:0001B898 MOV R0, #0 .text:0001B89C LDMDB R11, {R4-R7,R11,SP,PC} .text:0001B89C ; End of function unsetenv .text:0001B89C .text:0001B89C ; --------------------------------------------------------------------------- .text:0001B8A0 off_1B8A0 DCD 0 ; DATA XREF: unsetenv+50r .text:0001B8A4 off_1B8A4 DCD envlock ; DATA XREF: unsetenv+60r .text:0001B8A4 ; unsetenv+DCr .text:0001B8A8 off_1B8A8 DCD environ ; DATA XREF: unsetenv:loc_1B81Cr .text:0001B8AC dword_1B8AC DCD 0 ; DATA XREF: unsetenv+78r .text:0001B8B0 .text:0001B8B0 ; =============== S U B R O U T I N E ======================================= .text:0001B8B0 .text:0001B8B0 ; Attributes: bp-based frame .text:0001B8B0 .text:0001B8B0 WEAK clearenv .text:0001B8B0 clearenv ; CODE XREF: free_mem_2+10p .text:0001B8B0 MOV R12, SP ; Alternative name is '__clearenv' .text:0001B8B4 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0001B8B8 LDR R3, =0 .text:0001B8BC SUB R11, R12, #4 .text:0001B8C0 CMP R3, #0 .text:0001B8C4 BEQ loc_1B8D4 .text:0001B8C8 LDR R0, =envlock .text:0001B8CC MOV LR, PC .text:0001B8D0 MOV PC, R3 .text:0001B8D4 .text:0001B8D4 loc_1B8D4 ; CODE XREF: clearenv+14j .text:0001B8D4 LDR R2, =environ .text:0001B8D8 LDR R4, =last_environ .text:0001B8DC LDR R0, [R2] .text:0001B8E0 LDR R3, [R4] .text:0001B8E4 MOV R5, R2 .text:0001B8E8 CMP R0, R3 .text:0001B8EC BNE loc_1B904 .text:0001B8F0 CMP R0, #0 .text:0001B8F4 BEQ loc_1B904 .text:0001B8F8 BL free .text:0001B8FC MOV R3, #0 .text:0001B900 STR R3, [R4] .text:0001B904 .text:0001B904 loc_1B904 ; CODE XREF: clearenv+3Cj .text:0001B904 ; clearenv+44j .text:0001B904 LDR R3, =0 .text:0001B908 MOV R4, #0 .text:0001B90C STR R4, [R5] .text:0001B910 CMP R3, R4 .text:0001B914 BEQ loc_1B924 .text:0001B918 LDR R0, =envlock .text:0001B91C MOV LR, PC .text:0001B920 MOV PC, R3 .text:0001B924 .text:0001B924 loc_1B924 ; CODE XREF: clearenv+64j .text:0001B924 MOV R0, R4 .text:0001B928 LDMDB R11, {R4,R5,R11,SP,PC} .text:0001B928 ; End of function clearenv .text:0001B928 .text:0001B928 ; --------------------------------------------------------------------------- .text:0001B92C off_1B92C DCD 0 ; DATA XREF: clearenv+8r .text:0001B930 off_1B930 DCD envlock ; DATA XREF: clearenv+18r .text:0001B930 ; clearenv+68r .text:0001B934 off_1B934 DCD environ ; DATA XREF: clearenv:loc_1B8D4r .text:0001B938 off_1B938 DCD last_environ ; DATA XREF: clearenv+28r .text:0001B93C off_1B93C DCD 0 ; DATA XREF: clearenv:loc_1B904r .text:0001B940 .text:0001B940 ; =============== S U B R O U T I N E ======================================= .text:0001B940 .text:0001B940 ; Attributes: bp-based frame .text:0001B940 .text:0001B940 free_mem_2 .text:0001B940 MOV R12, SP .text:0001B944 STMFD SP!, {R4,R11,R12,LR,PC} .text:0001B948 SUB R11, R12, #4 .text:0001B94C LDR R4, =known_values .text:0001B950 BL clearenv .text:0001B954 LDR R1, =free .text:0001B958 LDR R0, [R4] .text:0001B95C BL tdestroy .text:0001B960 MOV R3, #0 .text:0001B964 STR R3, [R4] .text:0001B968 LDMDB R11, {R4,R11,SP,PC} .text:0001B968 ; End of function free_mem_2 .text:0001B968 .text:0001B968 ; --------------------------------------------------------------------------- .text:0001B96C off_1B96C DCD known_values ; DATA XREF: free_mem_2+Cr .text:0001B970 off_1B970 DCD free ; DATA XREF: free_mem_2+14r .text:0001B974 .text:0001B974 ; =============== S U B R O U T I N E ======================================= .text:0001B974 .text:0001B974 ; Attributes: bp-based frame .text:0001B974 .text:0001B974 EXPORT __strtol_internal .text:0001B974 __strtol_internal ; CODE XREF: ptmalloc_init+164p .text:0001B974 ; ptmalloc_init+190p ... .text:0001B974 .text:0001B974 var_44 = -0x44 .text:0001B974 var_40 = -0x40 .text:0001B974 var_3C = -0x3C .text:0001B974 var_38 = -0x38 .text:0001B974 var_34 = -0x34 .text:0001B974 var_30 = -0x30 .text:0001B974 var_2C = -0x2C .text:0001B974 .text:0001B974 MOV R12, SP .text:0001B978 STMFD SP!, {R4-R12,LR,PC} .text:0001B97C SUB R11, R12, #4 .text:0001B980 MOV R9, R2 .text:0001B984 MOV R2, #0 .text:0001B988 SUB SP, SP, #0x1C .text:0001B98C STR R2, [R11,#var_40] .text:0001B990 STR R0, [R11,#var_2C] .text:0001B994 MOV R8, R2 .text:0001B998 CMP R3, R2 .text:0001B99C STR R1, [R11,#var_30] .text:0001B9A0 BEQ loc_1B9E0 .text:0001B9A4 LDR R3, =_nl_current_LC_NUMERIC .text:0001B9A8 LDR R2, [R3] .text:0001B9AC LDR R3, [R2,#0x28] .text:0001B9B0 STR R3, [R11,#var_44] .text:0001B9B4 LDRB R3, [R3] .text:0001B9B8 CMP R3, #0xFF .text:0001B9BC CMPNE R3, #0 .text:0001B9C0 STREQ R8, [R11,#var_44] .text:0001B9C4 BEQ loc_1B9E8 .text:0001B9C8 LDR R8, [R2,#0x24] .text:0001B9CC LDRB R3, [R8] .text:0001B9D0 CMP R3, #0 .text:0001B9D4 LDREQ R8, [R11,#var_40] .text:0001B9D8 STREQ R8, [R11,#var_44] .text:0001B9DC B loc_1B9E8 .text:0001B9E0 ; --------------------------------------------------------------------------- .text:0001B9E0 .text:0001B9E0 loc_1B9E0 ; CODE XREF: __strtol_internal+2Cj .text:0001B9E0 LDR R0, [R11,#var_40] .text:0001B9E4 STR R0, [R11,#var_44] .text:0001B9E8 .text:0001B9E8 loc_1B9E8 ; CODE XREF: __strtol_internal+50j .text:0001B9E8 ; __strtol_internal+68j .text:0001B9E8 CMP R9, #1 .text:0001B9EC MOVEQ R3, #1 .text:0001B9F0 MOVNE R3, R9,LSR#31 .text:0001B9F4 CMP R3, #0 .text:0001B9F8 BNE loc_1BA04 .text:0001B9FC CMP R9, #0x24 .text:0001BA00 BLE loc_1BA14 .text:0001BA04 .text:0001BA04 loc_1BA04 ; CODE XREF: __strtol_internal+84j .text:0001BA04 BL __errno_location .text:0001BA08 MOV R3, #0x16 .text:0001BA0C STR R3, [R0] .text:0001BA10 B loc_1C01C .text:0001BA14 ; --------------------------------------------------------------------------- .text:0001BA14 .text:0001BA14 loc_1BA14 ; CODE XREF: __strtol_internal+8Cj .text:0001BA14 LDR R1, [R11,#var_2C] .text:0001BA18 LDR R5, [R11,#var_2C] .text:0001BA1C LDRB R3, [R1] .text:0001BA20 LDR R1, =__ctype_b .text:0001BA24 LDR R0, [R1] .text:0001BA28 MOV R3, R3,LSL#1 .text:0001BA2C ADD R3, R3, R0 .text:0001BA30 LDRB R2, [R3,#1] .text:0001BA34 MOV R4, R1 .text:0001BA38 STR R5, [R11,#var_3C] .text:0001BA3C TST R2, #0x20 .text:0001BA40 BEQ loc_1BA60 .text:0001BA44 MOV R1, R0 .text:0001BA48 .text:0001BA48 loc_1BA48 ; CODE XREF: __strtol_internal+E8j .text:0001BA48 LDRB R3, [R5,#1]! .text:0001BA4C MOV R3, R3,LSL#1 .text:0001BA50 ADD R3, R3, R1 .text:0001BA54 LDRB R2, [R3,#1] .text:0001BA58 TST R2, #0x20 .text:0001BA5C BNE loc_1BA48 .text:0001BA60 .text:0001BA60 loc_1BA60 ; CODE XREF: __strtol_internal+CCj .text:0001BA60 LDRB R3, [R5] .text:0001BA64 CMP R3, #0 .text:0001BA68 BEQ loc_1BFB0 .text:0001BA6C CMP R3, #0x2D .text:0001BA70 MOVEQ R2, #1 .text:0001BA74 ADDEQ R5, R5, R2 .text:0001BA78 STREQ R2, [R11,#var_34] .text:0001BA7C BEQ loc_1BA98 .text:0001BA80 CMP R3, #0x2B .text:0001BA84 MOVEQ R3, #0 .text:0001BA88 ADDEQ R5, R5, #1 .text:0001BA8C STREQ R3, [R11,#var_34] .text:0001BA90 MOVNE R0, #0 .text:0001BA94 STRNE R0, [R11,#var_34] .text:0001BA98 .text:0001BA98 loc_1BA98 ; CODE XREF: __strtol_internal+108j .text:0001BA98 LDRB R3, [R5] .text:0001BA9C CMP R3, #0x30 .text:0001BAA0 BNE loc_1BADC .text:0001BAA4 CMP R9, #0x10 .text:0001BAA8 CMPNE R9, #0 .text:0001BAAC BNE loc_1BAD0 .text:0001BAB0 LDR R1, =__ctype_toupper .text:0001BAB4 LDRB R0, [R5,#1] .text:0001BAB8 LDR R3, [R1] .text:0001BABC LDR R2, [R3,R0,LSL#2] .text:0001BAC0 CMP R2, #0x58 .text:0001BAC4 ADDEQ R5, R5, #2 .text:0001BAC8 MOVEQ R9, #0x10 .text:0001BACC BEQ loc_1BAE4 .text:0001BAD0 .text:0001BAD0 loc_1BAD0 ; CODE XREF: __strtol_internal+138j .text:0001BAD0 CMP R9, #0 .text:0001BAD4 MOVEQ R9, #8 .text:0001BAD8 B loc_1BAE4 .text:0001BADC ; --------------------------------------------------------------------------- .text:0001BADC .text:0001BADC loc_1BADC ; CODE XREF: __strtol_internal+12Cj .text:0001BADC CMP R9, #0 .text:0001BAE0 MOVEQ R9, #0xA .text:0001BAE4 .text:0001BAE4 loc_1BAE4 ; CODE XREF: __strtol_internal+158j .text:0001BAE4 ; __strtol_internal+164j .text:0001BAE4 LDR R1, [R11,#var_44] .text:0001BAE8 CMP R9, #0xA .text:0001BAEC STR R5, [R11,#var_3C] .text:0001BAF0 MOVNE R1, #0 .text:0001BAF4 CMP R1, #0 .text:0001BAF8 STR R1, [R11,#var_44] .text:0001BAFC BEQ loc_1BE10 .text:0001BB00 MOV R0, R8 .text:0001BB04 BL strlen .text:0001BB08 STR R0, [R11,#var_40] .text:0001BB0C MOV R1, #0 .text:0001BB10 LDR R7, [R11,#var_3C] .text:0001BB14 CMP R1, R0 .text:0001BB18 BCS loc_1BB4C .text:0001BB1C LDRB R2, [R8] .text:0001BB20 LDRB R3, [R7] .text:0001BB24 CMP R2, R3 .text:0001BB28 BNE loc_1BB4C .text:0001BB2C .text:0001BB2C loc_1BB2C ; CODE XREF: __strtol_internal+1D4j .text:0001BB2C LDR R2, [R11,#var_40] .text:0001BB30 ADD R1, R1, #1 .text:0001BB34 CMP R1, R2 .text:0001BB38 BCS loc_1BB4C .text:0001BB3C LDRB R2, [R8,R1] .text:0001BB40 LDRB R3, [R5,R1] .text:0001BB44 CMP R2, R3 .text:0001BB48 BEQ loc_1BB2C .text:0001BB4C .text:0001BB4C loc_1BB4C ; CODE XREF: __strtol_internal+1A4j .text:0001BB4C ; __strtol_internal+1B4j ... .text:0001BB4C LDR R3, [R11,#var_40] .text:0001BB50 CMP R1, R3 .text:0001BB54 BCS loc_1BE14 .text:0001BB58 LDRB R12, [R5] .text:0001BB5C CMP R12, #0 .text:0001BB60 BEQ loc_1BBF8 .text:0001BB64 .text:0001BB64 loc_1BB64 ; CODE XREF: __strtol_internal+280j .text:0001BB64 SUB R3, R12, #0x30 .text:0001BB68 CMP R3, #9 .text:0001BB6C BLS loc_1BBEC .text:0001BB70 LDR R0, [R11,#var_40] .text:0001BB74 MOV R1, #0 .text:0001BB78 CMP R1, R0 .text:0001BB7C BCS loc_1BBB0 .text:0001BB80 LDRB R2, [R8] .text:0001BB84 LDRB R3, [R7] .text:0001BB88 CMP R2, R3 .text:0001BB8C BNE loc_1BBB0 .text:0001BB90 .text:0001BB90 loc_1BB90 ; CODE XREF: __strtol_internal+238j .text:0001BB90 LDR R2, [R11,#var_40] .text:0001BB94 ADD R1, R1, #1 .text:0001BB98 CMP R1, R2 .text:0001BB9C BCS loc_1BBB0 .text:0001BBA0 LDRB R2, [R8,R1] .text:0001BBA4 LDRB R3, [R7,R1] .text:0001BBA8 CMP R2, R3 .text:0001BBAC BEQ loc_1BB90 .text:0001BBB0 .text:0001BBB0 loc_1BBB0 ; CODE XREF: __strtol_internal+208j .text:0001BBB0 ; __strtol_internal+218j ... .text:0001BBB0 LDR R3, [R11,#var_40] .text:0001BBB4 CMP R1, R3 .text:0001BBB8 BCS loc_1BBEC .text:0001BBBC LDR R3, [R4] .text:0001BBC0 MOV R2, R12,LSL#1 .text:0001BBC4 ADD R2, R2, R3 .text:0001BBC8 LDRB R1, [R2,#1] .text:0001BBCC TST R1, #4 .text:0001BBD0 BEQ loc_1BBF8 .text:0001BBD4 LDR R3, =__ctype_toupper .text:0001BBD8 LDR R1, [R3] .text:0001BBDC LDR R2, [R1,R12,LSL#2] .text:0001BBE0 SUB R2, R2, #0x37 .text:0001BBE4 CMP R2, R9 .text:0001BBE8 BGE loc_1BBF8 .text:0001BBEC .text:0001BBEC loc_1BBEC ; CODE XREF: __strtol_internal+1F8j .text:0001BBEC ; __strtol_internal+244j .text:0001BBEC LDRB R12, [R7,#1]! .text:0001BBF0 CMP R12, #0 .text:0001BBF4 BNE loc_1BB64 .text:0001BBF8 .text:0001BBF8 loc_1BBF8 ; CODE XREF: __strtol_internal+1ECj .text:0001BBF8 ; __strtol_internal+25Cj ... .text:0001BBF8 LDR R0, [R11,#var_44] .text:0001BBFC MOV R6, R7 .text:0001BC00 CMP R0, #0 .text:0001BC04 BEQ loc_1BE14 .text:0001BC08 MOV R0, R8 .text:0001BC0C BL strlen .text:0001BC10 CMP R7, R5 .text:0001BC14 MOV R7, R0 .text:0001BC18 BLS loc_1BE00 .text:0001BC1C .text:0001BC1C loc_1BC1C ; CODE XREF: __strtol_internal+488j .text:0001BC1C SUB R12, R6, #1 .text:0001BC20 CMP R12, R5 .text:0001BC24 LDR R4, [R11,#var_44] .text:0001BC28 BCC loc_1BC9C .text:0001BC2C SUB R10, R7, #2 .text:0001BC30 LDRB R0, [R8] .text:0001BC34 .text:0001BC34 loc_1BC34 ; CODE XREF: __strtol_internal+324j .text:0001BC34 ADD R3, R7, R12 .text:0001BC38 LDRB R2, [R3,#-1] .text:0001BC3C CMP R2, R0 .text:0001BC40 BNE loc_1BC90 .text:0001BC44 MOV LR, #1 .text:0001BC48 LDRB R2, [R8,LR] .text:0001BC4C CMP R2, #0 .text:0001BC50 BEQ loc_1BC84 .text:0001BC54 LDRB R3, [R12,R10] .text:0001BC58 CMP R2, R3 .text:0001BC5C BNE loc_1BC84 .text:0001BC60 SUB R1, R7, #2 .text:0001BC64 .text:0001BC64 loc_1BC64 ; CODE XREF: __strtol_internal+30Cj .text:0001BC64 ADD LR, LR, #1 .text:0001BC68 LDRB R2, [R8,LR] .text:0001BC6C SUB R1, R1, #1 .text:0001BC70 CMP R2, #0 .text:0001BC74 BEQ loc_1BC84 .text:0001BC78 LDRB R3, [R12,R1] .text:0001BC7C CMP R2, R3 .text:0001BC80 BEQ loc_1BC64 .text:0001BC84 .text:0001BC84 loc_1BC84 ; CODE XREF: __strtol_internal+2DCj .text:0001BC84 ; __strtol_internal+2E8j ... .text:0001BC84 LDRB R3, [R8,LR] .text:0001BC88 CMP R3, #0 .text:0001BC8C BEQ loc_1BC9C .text:0001BC90 .text:0001BC90 loc_1BC90 ; CODE XREF: __strtol_internal+2CCj .text:0001BC90 SUB R12, R12, #1 .text:0001BC94 CMP R12, R5 .text:0001BC98 BCS loc_1BC34 .text:0001BC9C .text:0001BC9C loc_1BC9C ; CODE XREF: __strtol_internal+2B4j .text:0001BC9C ; __strtol_internal+318j .text:0001BC9C CMP R12, R5 .text:0001BCA0 BCC loc_1BD44 .text:0001BCA4 LDR R2, [R11,#var_44] .text:0001BCA8 LDRB R1, [R2] .text:0001BCAC RSB R2, R12, R6 .text:0001BCB0 ADD R3, R1, #1 .text:0001BCB4 CMP R2, R3 .text:0001BCB8 BNE loc_1BDEC .text:0001BCBC SUB R10, R12, #1 .text:0001BCC0 .text:0001BCC0 loc_1BCC0 ; CODE XREF: __strtol_internal+3CCj .text:0001BCC0 ; __strtol_internal+46Cj .text:0001BCC0 ADD R4, R4, #1 .text:0001BCC4 MOV R3, R4 .text:0001BCC8 LDRB R2, [R3],#-1 .text:0001BCCC CMP R2, #0 .text:0001BCD0 MOVEQ R4, R3 .text:0001BCD4 LDRB R1, [R4] .text:0001BCD8 SUB R12, R12, #1 .text:0001BCDC CMP R1, #0xFF .text:0001BCE0 BNE loc_1BD4C .text:0001BCE4 CMP R12, R5 .text:0001BCE8 BCC loc_1BD3C .text:0001BCEC .text:0001BCEC loc_1BCEC ; CODE XREF: __strtol_internal+3C4j .text:0001BCEC LDRB R1, [R8] .text:0001BCF0 MOV LR, #0 .text:0001BCF4 CMP R1, LR .text:0001BCF8 BEQ loc_1BD24 .text:0001BCFC ADD R2, R7, R12 .text:0001BD00 B loc_1BD18 .text:0001BD04 ; --------------------------------------------------------------------------- .text:0001BD04 .text:0001BD04 loc_1BD04 ; CODE XREF: __strtol_internal+3ACj .text:0001BD04 ADD LR, LR, #1 .text:0001BD08 LDRB R1, [R8,LR] .text:0001BD0C SUB R2, R2, #1 .text:0001BD10 CMP R1, #0 .text:0001BD14 BEQ loc_1BD24 .text:0001BD18 .text:0001BD18 loc_1BD18 ; CODE XREF: __strtol_internal+38Cj .text:0001BD18 LDRB R3, [R2,#-1] .text:0001BD1C CMP R1, R3 .text:0001BD20 BEQ loc_1BD04 .text:0001BD24 .text:0001BD24 loc_1BD24 ; CODE XREF: __strtol_internal+384j .text:0001BD24 ; __strtol_internal+3A0j .text:0001BD24 LDRB R3, [R8,LR] .text:0001BD28 CMP R3, #0 .text:0001BD2C BEQ loc_1BD3C .text:0001BD30 SUB R12, R12, #1 .text:0001BD34 CMP R12, R5 .text:0001BD38 BCS loc_1BCEC .text:0001BD3C .text:0001BD3C loc_1BD3C ; CODE XREF: __strtol_internal+374j .text:0001BD3C ; __strtol_internal+3B8j .text:0001BD3C CMP R12, R5 .text:0001BD40 BCS loc_1BCC0 .text:0001BD44 .text:0001BD44 loc_1BD44 ; CODE XREF: __strtol_internal+32Cj .text:0001BD44 ; __strtol_internal+454j .text:0001BD44 MOV R7, R6 .text:0001BD48 B loc_1BE14 .text:0001BD4C ; --------------------------------------------------------------------------- .text:0001BD4C .text:0001BD4C loc_1BD4C ; CODE XREF: __strtol_internal+36Cj .text:0001BD4C CMP R12, R5 .text:0001BD50 MOV R0, R12 .text:0001BD54 BCC loc_1BDB4 .text:0001BD58 .text:0001BD58 loc_1BD58 ; CODE XREF: __strtol_internal+43Cj .text:0001BD58 LDRB R1, [R8] .text:0001BD5C MOV LR, #0 .text:0001BD60 CMP R1, LR .text:0001BD64 BEQ loc_1BD9C .text:0001BD68 ADD R2, R7, R12 .text:0001BD6C B loc_1BD90 .text:0001BD6C ; --------------------------------------------------------------------------- .text:0001BD70 off_1BD70 DCD _nl_current_LC_NUMERIC ; DATA XREF: __strtol_internal+30r .text:0001BD74 off_1BD74 DCD __ctype_b ; DATA XREF: __strtol_internal+ACr .text:0001BD78 off_1BD78 DCD __ctype_toupper ; DATA XREF: __strtol_internal+13Cr .text:0001BD78 ; __strtol_internal+260r .text:0001BD7C ; --------------------------------------------------------------------------- .text:0001BD7C .text:0001BD7C loc_1BD7C ; CODE XREF: __strtol_internal+424j .text:0001BD7C ADD LR, LR, #1 .text:0001BD80 LDRB R1, [R8,LR] .text:0001BD84 SUB R2, R2, #1 .text:0001BD88 CMP R1, #0 .text:0001BD8C BEQ loc_1BD9C .text:0001BD90 .text:0001BD90 loc_1BD90 ; CODE XREF: __strtol_internal+3F8j .text:0001BD90 LDRB R3, [R2,#-1] .text:0001BD94 CMP R1, R3 .text:0001BD98 BEQ loc_1BD7C .text:0001BD9C .text:0001BD9C loc_1BD9C ; CODE XREF: __strtol_internal+3F0j .text:0001BD9C ; __strtol_internal+418j .text:0001BD9C LDRB R3, [R8,LR] .text:0001BDA0 CMP R3, #0 .text:0001BDA4 BEQ loc_1BDB4 .text:0001BDA8 SUB R12, R12, #1 .text:0001BDAC CMP R12, R5 .text:0001BDB0 BCS loc_1BD58 .text:0001BDB4 .text:0001BDB4 loc_1BDB4 ; CODE XREF: __strtol_internal+3E0j .text:0001BDB4 ; __strtol_internal+430j .text:0001BDB4 CMP R12, R5 .text:0001BDB8 BCS loc_1BDCC .text:0001BDBC LDRB R2, [R4] .text:0001BDC0 RSB R3, R12, R0 .text:0001BDC4 CMP R3, R2 .text:0001BDC8 BLE loc_1BD44 .text:0001BDCC .text:0001BDCC loc_1BDCC ; CODE XREF: __strtol_internal+444j .text:0001BDCC CMP R12, R5 .text:0001BDD0 BCC loc_1BDE4 .text:0001BDD4 LDRB R2, [R4] .text:0001BDD8 RSB R3, R12, R0 .text:0001BDDC CMP R3, R2 .text:0001BDE0 BEQ loc_1BCC0 .text:0001BDE4 .text:0001BDE4 loc_1BDE4 ; CODE XREF: __strtol_internal+45Cj .text:0001BDE4 MOV R6, R10 .text:0001BDE8 B loc_1BDF8 .text:0001BDEC ; --------------------------------------------------------------------------- .text:0001BDEC .text:0001BDEC loc_1BDEC ; CODE XREF: __strtol_internal+344j .text:0001BDEC ADDGT R3, R12, R1 .text:0001BDF0 ADDGT R6, R3, #1 .text:0001BDF4 MOVLE R6, R12 .text:0001BDF8 .text:0001BDF8 loc_1BDF8 ; CODE XREF: __strtol_internal+474j .text:0001BDF8 CMP R6, R5 .text:0001BDFC BHI loc_1BC1C .text:0001BE00 .text:0001BE00 loc_1BE00 ; CODE XREF: __strtol_internal+2A4j .text:0001BE00 CMP R6, R5 .text:0001BE04 MOVCS R7, R6 .text:0001BE08 MOVCC R7, R5 .text:0001BE0C B loc_1BE14 .text:0001BE10 ; --------------------------------------------------------------------------- .text:0001BE10 .text:0001BE10 loc_1BE10 ; CODE XREF: __strtol_internal+188j .text:0001BE10 LDR R7, [R11,#var_44] .text:0001BE14 .text:0001BE14 loc_1BE14 ; CODE XREF: __strtol_internal+1E0j .text:0001BE14 ; __strtol_internal+290j ... .text:0001BE14 MOV R4, 0xFFFFFFFF .text:0001BE18 MOV R0, R4 .text:0001BE1C MOV R1, R9 .text:0001BE20 BL __udivsi3 .text:0001BE24 STR R0, [R11,#var_38] .text:0001BE28 MOV R0, R4 .text:0001BE2C MOV R1, R9 .text:0001BE30 BL __umodsi3 .text:0001BE34 MOV LR, #0 .text:0001BE38 LDRB R12, [R5] .text:0001BE3C MOV R10, LR .text:0001BE40 CMP R12, LR .text:0001BE44 BEQ loc_1BF30 .text:0001BE48 CMP R5, R7 .text:0001BE4C BEQ loc_1BF30 .text:0001BE50 LDR R6, =__ctype_b .text:0001BE54 LDR R4, =__ctype_toupper .text:0001BE58 .text:0001BE58 loc_1BE58 ; CODE XREF: __strtol_internal+5B8j .text:0001BE58 SUB R3, R12, #0x30 .text:0001BE5C AND R3, R3, #0xFF .text:0001BE60 CMP R3, #9 .text:0001BE64 MOVLS R12, R3 .text:0001BE68 BLS loc_1BEF0 .text:0001BE6C LDR R3, [R11,#var_40] .text:0001BE70 CMP R3, #0 .text:0001BE74 BEQ loc_1BEC8 .text:0001BE78 MOV R1, #0 .text:0001BE7C CMP R1, R3 .text:0001BE80 BCS loc_1BEB4 .text:0001BE84 LDRB R2, [R8] .text:0001BE88 LDRB R3, [R5] .text:0001BE8C CMP R2, R3 .text:0001BE90 BNE loc_1BEB4 .text:0001BE94 .text:0001BE94 loc_1BE94 ; CODE XREF: __strtol_internal+53Cj .text:0001BE94 LDR R2, [R11,#var_40] .text:0001BE98 ADD R1, R1, #1 .text:0001BE9C CMP R1, R2 .text:0001BEA0 BCS loc_1BEB4 .text:0001BEA4 LDRB R2, [R8,R1] .text:0001BEA8 LDRB R3, [R5,R1] .text:0001BEAC CMP R2, R3 .text:0001BEB0 BEQ loc_1BE94 .text:0001BEB4 .text:0001BEB4 loc_1BEB4 ; CODE XREF: __strtol_internal+50Cj .text:0001BEB4 ; __strtol_internal+51Cj ... .text:0001BEB4 LDR R3, [R11,#var_40] .text:0001BEB8 CMP R1, R3 .text:0001BEBC SUBEQ R3, R3, #1 .text:0001BEC0 ADDEQ R5, R5, R3 .text:0001BEC4 BEQ loc_1BF1C .text:0001BEC8 .text:0001BEC8 loc_1BEC8 ; CODE XREF: __strtol_internal+500j .text:0001BEC8 LDR R3, [R6] .text:0001BECC MOV R2, R12,LSL#1 .text:0001BED0 ADD R2, R2, R3 .text:0001BED4 LDRB R1, [R2,#1] .text:0001BED8 TST R1, #4 .text:0001BEDC BEQ loc_1BF30 .text:0001BEE0 LDR R2, [R4] .text:0001BEE4 LDR R3, [R2,R12,LSL#2] .text:0001BEE8 SUB R3, R3, #0x37 .text:0001BEEC AND R12, R3, #0xFF .text:0001BEF0 .text:0001BEF0 loc_1BEF0 ; CODE XREF: __strtol_internal+4F4j .text:0001BEF0 CMP R12, R9 .text:0001BEF4 BGE loc_1BF30 .text:0001BEF8 LDR R1, [R11,#var_38] .text:0001BEFC CMP LR, R1 .text:0001BF00 BHI loc_1BF10 .text:0001BF04 BNE loc_1BF18 .text:0001BF08 CMP R12, R0 .text:0001BF0C BLS loc_1BF18 .text:0001BF10 .text:0001BF10 loc_1BF10 ; CODE XREF: __strtol_internal+58Cj .text:0001BF10 MOV R10, #1 .text:0001BF14 B loc_1BF1C .text:0001BF18 ; --------------------------------------------------------------------------- .text:0001BF18 .text:0001BF18 loc_1BF18 ; CODE XREF: __strtol_internal+590j .text:0001BF18 ; __strtol_internal+598j .text:0001BF18 MLA LR, R9, LR, R12 .text:0001BF1C .text:0001BF1C loc_1BF1C ; CODE XREF: __strtol_internal+550j .text:0001BF1C ; __strtol_internal+5A0j .text:0001BF1C LDRB R12, [R5,#1]! .text:0001BF20 CMP R12, #0 .text:0001BF24 BEQ loc_1BF30 .text:0001BF28 CMP R5, R7 .text:0001BF2C BNE loc_1BE58 .text:0001BF30 .text:0001BF30 loc_1BF30 ; CODE XREF: __strtol_internal+4D0j .text:0001BF30 ; __strtol_internal+4D8j ... .text:0001BF30 LDR R2, [R11,#var_3C] .text:0001BF34 CMP R5, R2 .text:0001BF38 BEQ loc_1BFB0 .text:0001BF3C LDR R3, [R11,#var_30] .text:0001BF40 CMP R3, #0 .text:0001BF44 STRNE R5, [R3] .text:0001BF48 CMP R10, #0 .text:0001BF4C BNE loc_1BF74 .text:0001BF50 LDR R0, [R11,#var_34] .text:0001BF54 CMP R0, #0 .text:0001BF58 BEQ loc_1BF68 .text:0001BF5C CMP LR, #0x80000000 .text:0001BF60 BHI loc_1BF70 .text:0001BF64 B loc_1BF74 .text:0001BF68 ; --------------------------------------------------------------------------- .text:0001BF68 .text:0001BF68 loc_1BF68 ; CODE XREF: __strtol_internal+5E4j .text:0001BF68 CMP LR, #0 .text:0001BF6C BGE loc_1BF74 .text:0001BF70 .text:0001BF70 loc_1BF70 ; CODE XREF: __strtol_internal+5ECj .text:0001BF70 MOV R10, #1 .text:0001BF74 .text:0001BF74 loc_1BF74 ; CODE XREF: __strtol_internal+5D8j .text:0001BF74 ; __strtol_internal+5F0j ... .text:0001BF74 CMP R10, #0 .text:0001BF78 BEQ loc_1BF9C .text:0001BF7C BL __errno_location .text:0001BF80 LDR R1, [R11,#var_34] .text:0001BF84 MOV R3, #0x22 .text:0001BF88 STR R3, [R0] .text:0001BF8C CMP R1, #0 .text:0001BF90 MOVEQ R0, 0x7FFFFFFF .text:0001BF94 MOVNE R0, #0x80000000 .text:0001BF98 B locret_1C020 .text:0001BF9C ; --------------------------------------------------------------------------- .text:0001BF9C .text:0001BF9C loc_1BF9C ; CODE XREF: __strtol_internal+604j .text:0001BF9C LDR R2, [R11,#var_34] .text:0001BFA0 CMP R2, #0 .text:0001BFA4 MOVEQ R0, LR .text:0001BFA8 RSBNE R0, LR, #0 .text:0001BFAC B locret_1C020 .text:0001BFB0 ; --------------------------------------------------------------------------- .text:0001BFB0 .text:0001BFB0 loc_1BFB0 ; CODE XREF: __strtol_internal+F4j .text:0001BFB0 ; __strtol_internal+5C4j .text:0001BFB0 LDR R3, [R11,#var_30] .text:0001BFB4 CMP R3, #0 .text:0001BFB8 BEQ loc_1C01C .text:0001BFBC LDR R0, [R11,#var_3C] .text:0001BFC0 LDR R1, [R11,#var_2C] .text:0001BFC4 RSB R3, R1, R0 .text:0001BFC8 CMP R3, #1 .text:0001BFCC BLE loc_1C010 .text:0001BFD0 LDR R1, =__ctype_toupper .text:0001BFD4 LDRB R0, [R0,#-1] .text:0001BFD8 LDR R3, [R1] .text:0001BFDC LDR R2, [R3,R0,LSL#2] .text:0001BFE0 CMP R2, #0x58 .text:0001BFE4 BNE loc_1C010 .text:0001BFE8 LDR R2, [R11,#var_3C] .text:0001BFEC LDRB R3, [R2,#-2] .text:0001BFF0 CMP R3, #0x30 .text:0001BFF4 BNE loc_1C010 .text:0001BFF8 LDR R0, [R11,#var_30] .text:0001BFFC SUB R3, R2, #1 .text:0001C000 STR R3, [R0] .text:0001C004 B loc_1C01C .text:0001C004 ; --------------------------------------------------------------------------- .text:0001C008 off_1C008 DCD __ctype_b ; DATA XREF: __strtol_internal+4DCr .text:0001C00C off_1C00C DCD __ctype_toupper ; DATA XREF: __strtol_internal+4E0r .text:0001C00C ; __strtol_internal+65Cr .text:0001C010 ; --------------------------------------------------------------------------- .text:0001C010 .text:0001C010 loc_1C010 ; CODE XREF: __strtol_internal+658j .text:0001C010 ; __strtol_internal+670j ... .text:0001C010 SUB R1, R11, #-var_30 .text:0001C014 LDMIA R1, {R1,R2} .text:0001C018 STR R2, [R1] .text:0001C01C .text:0001C01C loc_1C01C ; CODE XREF: __strtol_internal+9Cj .text:0001C01C ; __strtol_internal+644j ... .text:0001C01C MOV R0, #0 .text:0001C020 .text:0001C020 locret_1C020 ; CODE XREF: __strtol_internal+624j .text:0001C020 ; __strtol_internal+638j .text:0001C020 LDMDB R11, {R4-R11,SP,PC} .text:0001C020 ; End of function __strtol_internal .text:0001C020 .text:0001C024 .text:0001C024 ; =============== S U B R O U T I N E ======================================= .text:0001C024 .text:0001C024 ; Attributes: bp-based frame .text:0001C024 .text:0001C024 WEAK strtol .text:0001C024 strtol .text:0001C024 MOV R12, SP .text:0001C028 STMFD SP!, {R11,R12,LR,PC} .text:0001C02C SUB R11, R12, #4 .text:0001C030 MOV R3, #0 .text:0001C034 BL __strtol_internal .text:0001C038 LDMDB R11, {R11,SP,PC} .text:0001C038 ; End of function strtol .text:0001C038 .text:0001C03C .text:0001C03C ; =============== S U B R O U T I N E ======================================= .text:0001C03C .text:0001C03C ; Attributes: bp-based frame .text:0001C03C .text:0001C03C EXPORT __strtoul_internal .text:0001C03C __strtoul_internal ; CODE XREF: _nl_load_domain+3E0p .text:0001C03C ; strtoul+10p ... .text:0001C03C .text:0001C03C var_44 = -0x44 .text:0001C03C var_40 = -0x40 .text:0001C03C var_3C = -0x3C .text:0001C03C var_38 = -0x38 .text:0001C03C var_34 = -0x34 .text:0001C03C var_30 = -0x30 .text:0001C03C var_2C = -0x2C .text:0001C03C .text:0001C03C MOV R12, SP .text:0001C040 STMFD SP!, {R4-R12,LR,PC} .text:0001C044 SUB R11, R12, #4 .text:0001C048 MOV R9, R2 .text:0001C04C MOV R2, #0 .text:0001C050 SUB SP, SP, #0x1C .text:0001C054 STR R2, [R11,#var_40] .text:0001C058 STR R0, [R11,#var_2C] .text:0001C05C MOV R8, R2 .text:0001C060 CMP R3, R2 .text:0001C064 STR R1, [R11,#var_30] .text:0001C068 BEQ loc_1C0A8 .text:0001C06C LDR R3, =_nl_current_LC_NUMERIC .text:0001C070 LDR R2, [R3] .text:0001C074 LDR R3, [R2,#0x28] .text:0001C078 STR R3, [R11,#var_44] .text:0001C07C LDRB R3, [R3] .text:0001C080 CMP R3, #0xFF .text:0001C084 CMPNE R3, #0 .text:0001C088 STREQ R8, [R11,#var_44] .text:0001C08C BEQ loc_1C0B0 .text:0001C090 LDR R8, [R2,#0x24] .text:0001C094 LDRB R3, [R8] .text:0001C098 CMP R3, #0 .text:0001C09C LDREQ R8, [R11,#var_40] .text:0001C0A0 STREQ R8, [R11,#var_44] .text:0001C0A4 B loc_1C0B0 .text:0001C0A8 ; --------------------------------------------------------------------------- .text:0001C0A8 .text:0001C0A8 loc_1C0A8 ; CODE XREF: __strtoul_internal+2Cj .text:0001C0A8 LDR R0, [R11,#var_40] .text:0001C0AC STR R0, [R11,#var_44] .text:0001C0B0 .text:0001C0B0 loc_1C0B0 ; CODE XREF: __strtoul_internal+50j .text:0001C0B0 ; __strtoul_internal+68j .text:0001C0B0 CMP R9, #1 .text:0001C0B4 MOVEQ R3, #1 .text:0001C0B8 MOVNE R3, R9,LSR#31 .text:0001C0BC CMP R3, #0 .text:0001C0C0 BNE loc_1C0CC .text:0001C0C4 CMP R9, #0x24 .text:0001C0C8 BLE loc_1C0DC .text:0001C0CC .text:0001C0CC loc_1C0CC ; CODE XREF: __strtoul_internal+84j .text:0001C0CC BL __errno_location .text:0001C0D0 MOV R3, #0x16 .text:0001C0D4 STR R3, [R0] .text:0001C0D8 B loc_1C6AC .text:0001C0DC ; --------------------------------------------------------------------------- .text:0001C0DC .text:0001C0DC loc_1C0DC ; CODE XREF: __strtoul_internal+8Cj .text:0001C0DC LDR R1, [R11,#var_2C] .text:0001C0E0 LDR R5, [R11,#var_2C] .text:0001C0E4 LDRB R3, [R1] .text:0001C0E8 LDR R1, =__ctype_b .text:0001C0EC LDR R0, [R1] .text:0001C0F0 MOV R3, R3,LSL#1 .text:0001C0F4 ADD R3, R3, R0 .text:0001C0F8 LDRB R2, [R3,#1] .text:0001C0FC MOV R4, R1 .text:0001C100 STR R5, [R11,#var_3C] .text:0001C104 TST R2, #0x20 .text:0001C108 BEQ loc_1C128 .text:0001C10C MOV R1, R0 .text:0001C110 .text:0001C110 loc_1C110 ; CODE XREF: __strtoul_internal+E8j .text:0001C110 LDRB R3, [R5,#1]! .text:0001C114 MOV R3, R3,LSL#1 .text:0001C118 ADD R3, R3, R1 .text:0001C11C LDRB R2, [R3,#1] .text:0001C120 TST R2, #0x20 .text:0001C124 BNE loc_1C110 .text:0001C128 .text:0001C128 loc_1C128 ; CODE XREF: __strtoul_internal+CCj .text:0001C128 LDRB R3, [R5] .text:0001C12C CMP R3, #0 .text:0001C130 BEQ loc_1C640 .text:0001C134 CMP R3, #0x2D .text:0001C138 MOVEQ R2, #1 .text:0001C13C ADDEQ R5, R5, R2 .text:0001C140 STREQ R2, [R11,#var_34] .text:0001C144 BEQ loc_1C160 .text:0001C148 CMP R3, #0x2B .text:0001C14C MOVEQ R3, #0 .text:0001C150 ADDEQ R5, R5, #1 .text:0001C154 STREQ R3, [R11,#var_34] .text:0001C158 MOVNE R0, #0 .text:0001C15C STRNE R0, [R11,#var_34] .text:0001C160 .text:0001C160 loc_1C160 ; CODE XREF: __strtoul_internal+108j .text:0001C160 LDRB R3, [R5] .text:0001C164 CMP R3, #0x30 .text:0001C168 BNE loc_1C1A4 .text:0001C16C CMP R9, #0x10 .text:0001C170 CMPNE R9, #0 .text:0001C174 BNE loc_1C198 .text:0001C178 LDR R1, =__ctype_toupper .text:0001C17C LDRB R0, [R5,#1] .text:0001C180 LDR R3, [R1] .text:0001C184 LDR R2, [R3,R0,LSL#2] .text:0001C188 CMP R2, #0x58 .text:0001C18C ADDEQ R5, R5, #2 .text:0001C190 MOVEQ R9, #0x10 .text:0001C194 BEQ loc_1C1AC .text:0001C198 .text:0001C198 loc_1C198 ; CODE XREF: __strtoul_internal+138j .text:0001C198 CMP R9, #0 .text:0001C19C MOVEQ R9, #8 .text:0001C1A0 B loc_1C1AC .text:0001C1A4 ; --------------------------------------------------------------------------- .text:0001C1A4 .text:0001C1A4 loc_1C1A4 ; CODE XREF: __strtoul_internal+12Cj .text:0001C1A4 CMP R9, #0 .text:0001C1A8 MOVEQ R9, #0xA .text:0001C1AC .text:0001C1AC loc_1C1AC ; CODE XREF: __strtoul_internal+158j .text:0001C1AC ; __strtoul_internal+164j .text:0001C1AC LDR R1, [R11,#var_44] .text:0001C1B0 CMP R9, #0xA .text:0001C1B4 STR R5, [R11,#var_3C] .text:0001C1B8 MOVNE R1, #0 .text:0001C1BC CMP R1, #0 .text:0001C1C0 STR R1, [R11,#var_44] .text:0001C1C4 BEQ loc_1C4D8 .text:0001C1C8 MOV R0, R8 .text:0001C1CC BL strlen .text:0001C1D0 STR R0, [R11,#var_40] .text:0001C1D4 MOV R1, #0 .text:0001C1D8 LDR R7, [R11,#var_3C] .text:0001C1DC CMP R1, R0 .text:0001C1E0 BCS loc_1C214 .text:0001C1E4 LDRB R2, [R8] .text:0001C1E8 LDRB R3, [R7] .text:0001C1EC CMP R2, R3 .text:0001C1F0 BNE loc_1C214 .text:0001C1F4 .text:0001C1F4 loc_1C1F4 ; CODE XREF: __strtoul_internal+1D4j .text:0001C1F4 LDR R2, [R11,#var_40] .text:0001C1F8 ADD R1, R1, #1 .text:0001C1FC CMP R1, R2 .text:0001C200 BCS loc_1C214 .text:0001C204 LDRB R2, [R8,R1] .text:0001C208 LDRB R3, [R5,R1] .text:0001C20C CMP R2, R3 .text:0001C210 BEQ loc_1C1F4 .text:0001C214 .text:0001C214 loc_1C214 ; CODE XREF: __strtoul_internal+1A4j .text:0001C214 ; __strtoul_internal+1B4j ... .text:0001C214 LDR R3, [R11,#var_40] .text:0001C218 CMP R1, R3 .text:0001C21C BCS loc_1C4DC .text:0001C220 LDRB R12, [R5] .text:0001C224 CMP R12, #0 .text:0001C228 BEQ loc_1C2C0 .text:0001C22C .text:0001C22C loc_1C22C ; CODE XREF: __strtoul_internal+280j .text:0001C22C SUB R3, R12, #0x30 .text:0001C230 CMP R3, #9 .text:0001C234 BLS loc_1C2B4 .text:0001C238 LDR R0, [R11,#var_40] .text:0001C23C MOV R1, #0 .text:0001C240 CMP R1, R0 .text:0001C244 BCS loc_1C278 .text:0001C248 LDRB R2, [R8] .text:0001C24C LDRB R3, [R7] .text:0001C250 CMP R2, R3 .text:0001C254 BNE loc_1C278 .text:0001C258 .text:0001C258 loc_1C258 ; CODE XREF: __strtoul_internal+238j .text:0001C258 LDR R2, [R11,#var_40] .text:0001C25C ADD R1, R1, #1 .text:0001C260 CMP R1, R2 .text:0001C264 BCS loc_1C278 .text:0001C268 LDRB R2, [R8,R1] .text:0001C26C LDRB R3, [R7,R1] .text:0001C270 CMP R2, R3 .text:0001C274 BEQ loc_1C258 .text:0001C278 .text:0001C278 loc_1C278 ; CODE XREF: __strtoul_internal+208j .text:0001C278 ; __strtoul_internal+218j ... .text:0001C278 LDR R3, [R11,#var_40] .text:0001C27C CMP R1, R3 .text:0001C280 BCS loc_1C2B4 .text:0001C284 LDR R3, [R4] .text:0001C288 MOV R2, R12,LSL#1 .text:0001C28C ADD R2, R2, R3 .text:0001C290 LDRB R1, [R2,#1] .text:0001C294 TST R1, #4 .text:0001C298 BEQ loc_1C2C0 .text:0001C29C LDR R3, =__ctype_toupper .text:0001C2A0 LDR R1, [R3] .text:0001C2A4 LDR R2, [R1,R12,LSL#2] .text:0001C2A8 SUB R2, R2, #0x37 .text:0001C2AC CMP R2, R9 .text:0001C2B0 BGE loc_1C2C0 .text:0001C2B4 .text:0001C2B4 loc_1C2B4 ; CODE XREF: __strtoul_internal+1F8j .text:0001C2B4 ; __strtoul_internal+244j .text:0001C2B4 LDRB R12, [R7,#1]! .text:0001C2B8 CMP R12, #0 .text:0001C2BC BNE loc_1C22C .text:0001C2C0 .text:0001C2C0 loc_1C2C0 ; CODE XREF: __strtoul_internal+1ECj .text:0001C2C0 ; __strtoul_internal+25Cj ... .text:0001C2C0 LDR R0, [R11,#var_44] .text:0001C2C4 MOV R6, R7 .text:0001C2C8 CMP R0, #0 .text:0001C2CC BEQ loc_1C4DC .text:0001C2D0 MOV R0, R8 .text:0001C2D4 BL strlen .text:0001C2D8 CMP R7, R5 .text:0001C2DC MOV R7, R0 .text:0001C2E0 BLS loc_1C4C8 .text:0001C2E4 .text:0001C2E4 loc_1C2E4 ; CODE XREF: __strtoul_internal+488j .text:0001C2E4 SUB R12, R6, #1 .text:0001C2E8 CMP R12, R5 .text:0001C2EC LDR R4, [R11,#var_44] .text:0001C2F0 BCC loc_1C364 .text:0001C2F4 SUB R10, R7, #2 .text:0001C2F8 LDRB R0, [R8] .text:0001C2FC .text:0001C2FC loc_1C2FC ; CODE XREF: __strtoul_internal+324j .text:0001C2FC ADD R3, R7, R12 .text:0001C300 LDRB R2, [R3,#-1] .text:0001C304 CMP R2, R0 .text:0001C308 BNE loc_1C358 .text:0001C30C MOV LR, #1 .text:0001C310 LDRB R2, [R8,LR] .text:0001C314 CMP R2, #0 .text:0001C318 BEQ loc_1C34C .text:0001C31C LDRB R3, [R12,R10] .text:0001C320 CMP R2, R3 .text:0001C324 BNE loc_1C34C .text:0001C328 SUB R1, R7, #2 .text:0001C32C .text:0001C32C loc_1C32C ; CODE XREF: __strtoul_internal+30Cj .text:0001C32C ADD LR, LR, #1 .text:0001C330 LDRB R2, [R8,LR] .text:0001C334 SUB R1, R1, #1 .text:0001C338 CMP R2, #0 .text:0001C33C BEQ loc_1C34C .text:0001C340 LDRB R3, [R12,R1] .text:0001C344 CMP R2, R3 .text:0001C348 BEQ loc_1C32C .text:0001C34C .text:0001C34C loc_1C34C ; CODE XREF: __strtoul_internal+2DCj .text:0001C34C ; __strtoul_internal+2E8j ... .text:0001C34C LDRB R3, [R8,LR] .text:0001C350 CMP R3, #0 .text:0001C354 BEQ loc_1C364 .text:0001C358 .text:0001C358 loc_1C358 ; CODE XREF: __strtoul_internal+2CCj .text:0001C358 SUB R12, R12, #1 .text:0001C35C CMP R12, R5 .text:0001C360 BCS loc_1C2FC .text:0001C364 .text:0001C364 loc_1C364 ; CODE XREF: __strtoul_internal+2B4j .text:0001C364 ; __strtoul_internal+318j .text:0001C364 CMP R12, R5 .text:0001C368 BCC loc_1C40C .text:0001C36C LDR R2, [R11,#var_44] .text:0001C370 LDRB R1, [R2] .text:0001C374 RSB R2, R12, R6 .text:0001C378 ADD R3, R1, #1 .text:0001C37C CMP R2, R3 .text:0001C380 BNE loc_1C4B4 .text:0001C384 SUB R10, R12, #1 .text:0001C388 .text:0001C388 loc_1C388 ; CODE XREF: __strtoul_internal+3CCj .text:0001C388 ; __strtoul_internal+46Cj .text:0001C388 ADD R4, R4, #1 .text:0001C38C MOV R3, R4 .text:0001C390 LDRB R2, [R3],#-1 .text:0001C394 CMP R2, #0 .text:0001C398 MOVEQ R4, R3 .text:0001C39C LDRB R1, [R4] .text:0001C3A0 SUB R12, R12, #1 .text:0001C3A4 CMP R1, #0xFF .text:0001C3A8 BNE loc_1C414 .text:0001C3AC CMP R12, R5 .text:0001C3B0 BCC loc_1C404 .text:0001C3B4 .text:0001C3B4 loc_1C3B4 ; CODE XREF: __strtoul_internal+3C4j .text:0001C3B4 LDRB R1, [R8] .text:0001C3B8 MOV LR, #0 .text:0001C3BC CMP R1, LR .text:0001C3C0 BEQ loc_1C3EC .text:0001C3C4 ADD R2, R7, R12 .text:0001C3C8 B loc_1C3E0 .text:0001C3CC ; --------------------------------------------------------------------------- .text:0001C3CC .text:0001C3CC loc_1C3CC ; CODE XREF: __strtoul_internal+3ACj .text:0001C3CC ADD LR, LR, #1 .text:0001C3D0 LDRB R1, [R8,LR] .text:0001C3D4 SUB R2, R2, #1 .text:0001C3D8 CMP R1, #0 .text:0001C3DC BEQ loc_1C3EC .text:0001C3E0 .text:0001C3E0 loc_1C3E0 ; CODE XREF: __strtoul_internal+38Cj .text:0001C3E0 LDRB R3, [R2,#-1] .text:0001C3E4 CMP R1, R3 .text:0001C3E8 BEQ loc_1C3CC .text:0001C3EC .text:0001C3EC loc_1C3EC ; CODE XREF: __strtoul_internal+384j .text:0001C3EC ; __strtoul_internal+3A0j .text:0001C3EC LDRB R3, [R8,LR] .text:0001C3F0 CMP R3, #0 .text:0001C3F4 BEQ loc_1C404 .text:0001C3F8 SUB R12, R12, #1 .text:0001C3FC CMP R12, R5 .text:0001C400 BCS loc_1C3B4 .text:0001C404 .text:0001C404 loc_1C404 ; CODE XREF: __strtoul_internal+374j .text:0001C404 ; __strtoul_internal+3B8j .text:0001C404 CMP R12, R5 .text:0001C408 BCS loc_1C388 .text:0001C40C .text:0001C40C loc_1C40C ; CODE XREF: __strtoul_internal+32Cj .text:0001C40C ; __strtoul_internal+454j .text:0001C40C MOV R7, R6 .text:0001C410 B loc_1C4DC .text:0001C414 ; --------------------------------------------------------------------------- .text:0001C414 .text:0001C414 loc_1C414 ; CODE XREF: __strtoul_internal+36Cj .text:0001C414 CMP R12, R5 .text:0001C418 MOV R0, R12 .text:0001C41C BCC loc_1C47C .text:0001C420 .text:0001C420 loc_1C420 ; CODE XREF: __strtoul_internal+43Cj .text:0001C420 LDRB R1, [R8] .text:0001C424 MOV LR, #0 .text:0001C428 CMP R1, LR .text:0001C42C BEQ loc_1C464 .text:0001C430 ADD R2, R7, R12 .text:0001C434 B loc_1C458 .text:0001C434 ; --------------------------------------------------------------------------- .text:0001C438 off_1C438 DCD _nl_current_LC_NUMERIC .text:0001C438 ; DATA XREF: __strtoul_internal+30r .text:0001C43C off_1C43C DCD __ctype_b ; DATA XREF: __strtoul_internal+ACr .text:0001C440 off_1C440 DCD __ctype_toupper ; DATA XREF: __strtoul_internal+13Cr .text:0001C440 ; __strtoul_internal+260r .text:0001C444 ; --------------------------------------------------------------------------- .text:0001C444 .text:0001C444 loc_1C444 ; CODE XREF: __strtoul_internal+424j .text:0001C444 ADD LR, LR, #1 .text:0001C448 LDRB R1, [R8,LR] .text:0001C44C SUB R2, R2, #1 .text:0001C450 CMP R1, #0 .text:0001C454 BEQ loc_1C464 .text:0001C458 .text:0001C458 loc_1C458 ; CODE XREF: __strtoul_internal+3F8j .text:0001C458 LDRB R3, [R2,#-1] .text:0001C45C CMP R1, R3 .text:0001C460 BEQ loc_1C444 .text:0001C464 .text:0001C464 loc_1C464 ; CODE XREF: __strtoul_internal+3F0j .text:0001C464 ; __strtoul_internal+418j .text:0001C464 LDRB R3, [R8,LR] .text:0001C468 CMP R3, #0 .text:0001C46C BEQ loc_1C47C .text:0001C470 SUB R12, R12, #1 .text:0001C474 CMP R12, R5 .text:0001C478 BCS loc_1C420 .text:0001C47C .text:0001C47C loc_1C47C ; CODE XREF: __strtoul_internal+3E0j .text:0001C47C ; __strtoul_internal+430j .text:0001C47C CMP R12, R5 .text:0001C480 BCS loc_1C494 .text:0001C484 LDRB R2, [R4] .text:0001C488 RSB R3, R12, R0 .text:0001C48C CMP R3, R2 .text:0001C490 BLE loc_1C40C .text:0001C494 .text:0001C494 loc_1C494 ; CODE XREF: __strtoul_internal+444j .text:0001C494 CMP R12, R5 .text:0001C498 BCC loc_1C4AC .text:0001C49C LDRB R2, [R4] .text:0001C4A0 RSB R3, R12, R0 .text:0001C4A4 CMP R3, R2 .text:0001C4A8 BEQ loc_1C388 .text:0001C4AC .text:0001C4AC loc_1C4AC ; CODE XREF: __strtoul_internal+45Cj .text:0001C4AC MOV R6, R10 .text:0001C4B0 B loc_1C4C0 .text:0001C4B4 ; --------------------------------------------------------------------------- .text:0001C4B4 .text:0001C4B4 loc_1C4B4 ; CODE XREF: __strtoul_internal+344j .text:0001C4B4 ADDGT R3, R12, R1 .text:0001C4B8 ADDGT R6, R3, #1 .text:0001C4BC MOVLE R6, R12 .text:0001C4C0 .text:0001C4C0 loc_1C4C0 ; CODE XREF: __strtoul_internal+474j .text:0001C4C0 CMP R6, R5 .text:0001C4C4 BHI loc_1C2E4 .text:0001C4C8 .text:0001C4C8 loc_1C4C8 ; CODE XREF: __strtoul_internal+2A4j .text:0001C4C8 CMP R6, R5 .text:0001C4CC MOVCS R7, R6 .text:0001C4D0 MOVCC R7, R5 .text:0001C4D4 B loc_1C4DC .text:0001C4D8 ; --------------------------------------------------------------------------- .text:0001C4D8 .text:0001C4D8 loc_1C4D8 ; CODE XREF: __strtoul_internal+188j .text:0001C4D8 LDR R7, [R11,#var_44] .text:0001C4DC .text:0001C4DC loc_1C4DC ; CODE XREF: __strtoul_internal+1E0j .text:0001C4DC ; __strtoul_internal+290j ... .text:0001C4DC MOV R4, 0xFFFFFFFF .text:0001C4E0 MOV R0, R4 .text:0001C4E4 MOV R1, R9 .text:0001C4E8 BL __udivsi3 .text:0001C4EC STR R0, [R11,#var_38] .text:0001C4F0 MOV R0, R4 .text:0001C4F4 MOV R1, R9 .text:0001C4F8 BL __umodsi3 .text:0001C4FC MOV LR, #0 .text:0001C500 LDRB R12, [R5] .text:0001C504 MOV R10, LR .text:0001C508 CMP R12, LR .text:0001C50C BEQ loc_1C5F8 .text:0001C510 CMP R5, R7 .text:0001C514 BEQ loc_1C5F8 .text:0001C518 LDR R6, =__ctype_b .text:0001C51C LDR R4, =__ctype_toupper .text:0001C520 .text:0001C520 loc_1C520 ; CODE XREF: __strtoul_internal+5B8j .text:0001C520 SUB R3, R12, #0x30 .text:0001C524 AND R3, R3, #0xFF .text:0001C528 CMP R3, #9 .text:0001C52C MOVLS R12, R3 .text:0001C530 BLS loc_1C5B8 .text:0001C534 LDR R3, [R11,#var_40] .text:0001C538 CMP R3, #0 .text:0001C53C BEQ loc_1C590 .text:0001C540 MOV R1, #0 .text:0001C544 CMP R1, R3 .text:0001C548 BCS loc_1C57C .text:0001C54C LDRB R2, [R8] .text:0001C550 LDRB R3, [R5] .text:0001C554 CMP R2, R3 .text:0001C558 BNE loc_1C57C .text:0001C55C .text:0001C55C loc_1C55C ; CODE XREF: __strtoul_internal+53Cj .text:0001C55C LDR R2, [R11,#var_40] .text:0001C560 ADD R1, R1, #1 .text:0001C564 CMP R1, R2 .text:0001C568 BCS loc_1C57C .text:0001C56C LDRB R2, [R8,R1] .text:0001C570 LDRB R3, [R5,R1] .text:0001C574 CMP R2, R3 .text:0001C578 BEQ loc_1C55C .text:0001C57C .text:0001C57C loc_1C57C ; CODE XREF: __strtoul_internal+50Cj .text:0001C57C ; __strtoul_internal+51Cj ... .text:0001C57C LDR R3, [R11,#var_40] .text:0001C580 CMP R1, R3 .text:0001C584 SUBEQ R3, R3, #1 .text:0001C588 ADDEQ R5, R5, R3 .text:0001C58C BEQ loc_1C5E4 .text:0001C590 .text:0001C590 loc_1C590 ; CODE XREF: __strtoul_internal+500j .text:0001C590 LDR R3, [R6] .text:0001C594 MOV R2, R12,LSL#1 .text:0001C598 ADD R2, R2, R3 .text:0001C59C LDRB R1, [R2,#1] .text:0001C5A0 TST R1, #4 .text:0001C5A4 BEQ loc_1C5F8 .text:0001C5A8 LDR R2, [R4] .text:0001C5AC LDR R3, [R2,R12,LSL#2] .text:0001C5B0 SUB R3, R3, #0x37 .text:0001C5B4 AND R12, R3, #0xFF .text:0001C5B8 .text:0001C5B8 loc_1C5B8 ; CODE XREF: __strtoul_internal+4F4j .text:0001C5B8 CMP R12, R9 .text:0001C5BC BGE loc_1C5F8 .text:0001C5C0 LDR R1, [R11,#var_38] .text:0001C5C4 CMP LR, R1 .text:0001C5C8 BHI loc_1C5D8 .text:0001C5CC BNE loc_1C5E0 .text:0001C5D0 CMP R12, R0 .text:0001C5D4 BLS loc_1C5E0 .text:0001C5D8 .text:0001C5D8 loc_1C5D8 ; CODE XREF: __strtoul_internal+58Cj .text:0001C5D8 MOV R10, #1 .text:0001C5DC B loc_1C5E4 .text:0001C5E0 ; --------------------------------------------------------------------------- .text:0001C5E0 .text:0001C5E0 loc_1C5E0 ; CODE XREF: __strtoul_internal+590j .text:0001C5E0 ; __strtoul_internal+598j .text:0001C5E0 MLA LR, R9, LR, R12 .text:0001C5E4 .text:0001C5E4 loc_1C5E4 ; CODE XREF: __strtoul_internal+550j .text:0001C5E4 ; __strtoul_internal+5A0j .text:0001C5E4 LDRB R12, [R5,#1]! .text:0001C5E8 CMP R12, #0 .text:0001C5EC BEQ loc_1C5F8 .text:0001C5F0 CMP R5, R7 .text:0001C5F4 BNE loc_1C520 .text:0001C5F8 .text:0001C5F8 loc_1C5F8 ; CODE XREF: __strtoul_internal+4D0j .text:0001C5F8 ; __strtoul_internal+4D8j ... .text:0001C5F8 LDR R2, [R11,#var_3C] .text:0001C5FC CMP R5, R2 .text:0001C600 BEQ loc_1C640 .text:0001C604 LDR R3, [R11,#var_30] .text:0001C608 CMP R3, #0 .text:0001C60C STRNE R5, [R3] .text:0001C610 CMP R10, #0 .text:0001C614 BEQ loc_1C62C .text:0001C618 BL __errno_location .text:0001C61C MOV R3, #0x22 .text:0001C620 STR R3, [R0] .text:0001C624 MOV R0, 0xFFFFFFFF .text:0001C628 B locret_1C6B0 .text:0001C62C ; --------------------------------------------------------------------------- .text:0001C62C .text:0001C62C loc_1C62C ; CODE XREF: __strtoul_internal+5D8j .text:0001C62C LDR R1, [R11,#var_34] .text:0001C630 CMP R1, #0 .text:0001C634 MOVEQ R0, LR .text:0001C638 RSBNE R0, LR, #0 .text:0001C63C B locret_1C6B0 .text:0001C640 ; --------------------------------------------------------------------------- .text:0001C640 .text:0001C640 loc_1C640 ; CODE XREF: __strtoul_internal+F4j .text:0001C640 ; __strtoul_internal+5C4j .text:0001C640 LDR R2, [R11,#var_30] .text:0001C644 CMP R2, #0 .text:0001C648 BEQ loc_1C6AC .text:0001C64C LDR R0, [R11,#var_3C] .text:0001C650 LDR R1, [R11,#var_2C] .text:0001C654 RSB R3, R1, R0 .text:0001C658 CMP R3, #1 .text:0001C65C BLE loc_1C6A0 .text:0001C660 LDR R1, =__ctype_toupper .text:0001C664 LDRB R0, [R0,#-1] .text:0001C668 LDR R3, [R1] .text:0001C66C LDR R2, [R3,R0,LSL#2] .text:0001C670 CMP R2, #0x58 .text:0001C674 BNE loc_1C6A0 .text:0001C678 LDR R2, [R11,#var_3C] .text:0001C67C LDRB R3, [R2,#-2] .text:0001C680 CMP R3, #0x30 .text:0001C684 BNE loc_1C6A0 .text:0001C688 LDR R0, [R11,#var_30] .text:0001C68C SUB R3, R2, #1 .text:0001C690 STR R3, [R0] .text:0001C694 B loc_1C6AC .text:0001C694 ; --------------------------------------------------------------------------- .text:0001C698 off_1C698 DCD __ctype_b ; DATA XREF: __strtoul_internal+4DCr .text:0001C69C off_1C69C DCD __ctype_toupper ; DATA XREF: __strtoul_internal+4E0r .text:0001C69C ; __strtoul_internal+624r .text:0001C6A0 ; --------------------------------------------------------------------------- .text:0001C6A0 .text:0001C6A0 loc_1C6A0 ; CODE XREF: __strtoul_internal+620j .text:0001C6A0 ; __strtoul_internal+638j ... .text:0001C6A0 SUB R1, R11, #-var_30 .text:0001C6A4 LDMIA R1, {R1,R2} .text:0001C6A8 STR R2, [R1] .text:0001C6AC .text:0001C6AC loc_1C6AC ; CODE XREF: __strtoul_internal+9Cj .text:0001C6AC ; __strtoul_internal+60Cj ... .text:0001C6AC MOV R0, #0 .text:0001C6B0 .text:0001C6B0 locret_1C6B0 ; CODE XREF: __strtoul_internal+5ECj .text:0001C6B0 ; __strtoul_internal+600j .text:0001C6B0 LDMDB R11, {R4-R11,SP,PC} .text:0001C6B0 ; End of function __strtoul_internal .text:0001C6B0 .text:0001C6B4 .text:0001C6B4 ; =============== S U B R O U T I N E ======================================= .text:0001C6B4 .text:0001C6B4 ; Attributes: bp-based frame .text:0001C6B4 .text:0001C6B4 WEAK strtoul .text:0001C6B4 strtoul .text:0001C6B4 MOV R12, SP .text:0001C6B8 STMFD SP!, {R11,R12,LR,PC} .text:0001C6BC SUB R11, R12, #4 .text:0001C6C0 MOV R3, #0 .text:0001C6C4 BL __strtoul_internal .text:0001C6C8 LDMDB R11, {R11,SP,PC} .text:0001C6C8 ; End of function strtoul .text:0001C6C8 .text:0001C6CC .text:0001C6CC ; =============== S U B R O U T I N E ======================================= .text:0001C6CC .text:0001C6CC ; Attributes: bp-based frame .text:0001C6CC .text:0001C6CC _i18n_number_rewrite ; CODE XREF: vfprintf+CDCp .text:0001C6CC ; vfprintf+EE0p ... .text:0001C6CC MOV R12, SP .text:0001C6D0 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0001C6D4 SUB R11, R12, #4 .text:0001C6D8 MOV R6, R0 .text:0001C6DC MOV R12, R1 .text:0001C6E0 RSB R2, R6, R12 .text:0001C6E4 ADD R3, R2, #3 .text:0001C6E8 BIC R3, R3, #3 .text:0001C6EC MOV R1, R6 .text:0001C6F0 MOV R6, R12 .text:0001C6F4 RSB SP, R3, SP .text:0001C6F8 MOV R0, SP .text:0001C6FC MOV R7, SP .text:0001C700 BL mempcpy .text:0001C704 SUB R4, R0, #1 .text:0001C708 CMP R4, SP .text:0001C70C BCC loc_1C7B4 .text:0001C710 .text:0001C710 loc_1C710 ; CODE XREF: _i18n_number_rewrite+E4j .text:0001C710 LDRB R2, [R4] .text:0001C714 SUB R3, R2, #0x30 .text:0001C718 CMP R3, #9 .text:0001C71C BHI loc_1C7A0 .text:0001C720 LDRB R2, [R4] .text:0001C724 SUB R3, R2, #0x30 .text:0001C728 CMP R3, #9 .text:0001C72C BLS loc_1C744 .text:0001C730 LDR R0, =a0NN9 ; "0 <= n && n <= 9" .text:0001C734 LDR R1, =a__LocaleOutdig ; "../locale/outdigits.h" .text:0001C738 LDR R3, =aOutdigit_value ; "outdigit_value" .text:0001C73C MOV R2, #0x24 .text:0001C740 BL __assert_fail .text:0001C744 ; --------------------------------------------------------------------------- .text:0001C744 .text:0001C744 loc_1C744 ; CODE XREF: _i18n_number_rewrite+60j .text:0001C744 SUB R2, R2, #7 .text:0001C748 LDR R1, =_nl_current_LC_CTYPE .text:0001C74C MOV R2, R2,LSL#16 .text:0001C750 LDR R3, [R1] .text:0001C754 MOV R2, R2,LSR#16 .text:0001C758 ADD R3, R3, #0x20 .text:0001C75C LDR R5, [R3,R2,LSL#2] .text:0001C760 MOV R0, R5 .text:0001C764 BL strlen .text:0001C768 RSB R1, R0, R6 .text:0001C76C MOV R3, R0 .text:0001C770 SUB R0, R0, #1 .text:0001C774 CMP R3, #0 .text:0001C778 SUB R12, R4, #1 .text:0001C77C BEQ loc_1C798 .text:0001C780 .text:0001C780 loc_1C780 ; CODE XREF: _i18n_number_rewrite+C8j .text:0001C780 MOV R3, R0 .text:0001C784 LDRB R2, [R5,R0] .text:0001C788 CMP R3, #0 .text:0001C78C STRB R2, [R1,R0] .text:0001C790 SUB R0, R0, #1 .text:0001C794 BNE loc_1C780 .text:0001C798 .text:0001C798 loc_1C798 ; CODE XREF: _i18n_number_rewrite+B0j .text:0001C798 MOV R6, R1 .text:0001C79C B loc_1C7A8 .text:0001C7A0 ; --------------------------------------------------------------------------- .text:0001C7A0 .text:0001C7A0 loc_1C7A0 ; CODE XREF: _i18n_number_rewrite+50j .text:0001C7A0 SUB R12, R4, #1 .text:0001C7A4 STRB R2, [R6,#-1]! .text:0001C7A8 .text:0001C7A8 loc_1C7A8 ; CODE XREF: _i18n_number_rewrite+D0j .text:0001C7A8 MOV R4, R12 .text:0001C7AC CMP R4, R7 .text:0001C7B0 BCS loc_1C710 .text:0001C7B4 .text:0001C7B4 loc_1C7B4 ; CODE XREF: _i18n_number_rewrite+40j .text:0001C7B4 MOV R0, R6 .text:0001C7B8 LDMDB R11, {R4-R7,R11,SP,PC} .text:0001C7B8 ; End of function _i18n_number_rewrite .text:0001C7B8 .text:0001C7B8 ; --------------------------------------------------------------------------- .text:0001C7BC off_1C7BC DCD a0NN9 ; DATA XREF: _i18n_number_rewrite+64r .text:0001C7BC ; "0 <= n && n <= 9" .text:0001C7C0 off_1C7C0 DCD a__LocaleOutdig ; DATA XREF: _i18n_number_rewrite+68r .text:0001C7C0 ; "../locale/outdigits.h" .text:0001C7C4 off_1C7C4 DCD aOutdigit_value ; DATA XREF: _i18n_number_rewrite+6Cr .text:0001C7C4 ; "outdigit_value" .text:0001C7C8 off_1C7C8 DCD _nl_current_LC_CTYPE .text:0001C7C8 ; DATA XREF: _i18n_number_rewrite+7Cr .text:0001C7CC .text:0001C7CC ; =============== S U B R O U T I N E ======================================= .text:0001C7CC .text:0001C7CC ; Attributes: bp-based frame .text:0001C7CC .text:0001C7CC EXPORT vfprintf .text:0001C7CC vfprintf ; CODE XREF: printf+20p .text:0001C7CC ; buffered_vfprintf+D4p ... .text:0001C7CC .text:0001C7CC var_BCC = -0xBCC .text:0001C7CC var_BC8 = -0xBC8 .text:0001C7CC var_5CC = -0x5CC .text:0001C7CC var_5C8 = -0x5C8 .text:0001C7CC var_5C4 = -0x5C4 .text:0001C7CC var_5C0 = -0x5C0 .text:0001C7CC var_5BC = -0x5BC .text:0001C7CC var_5B8 = -0x5B8 .text:0001C7CC var_5B4 = -0x5B4 .text:0001C7CC var_5B0 = -0x5B0 .text:0001C7CC var_5AC = -0x5AC .text:0001C7CC var_5A8 = -0x5A8 .text:0001C7CC var_5A4 = -0x5A4 .text:0001C7CC var_5A0 = -0x5A0 .text:0001C7CC var_59C = -0x59C .text:0001C7CC var_598 = -0x598 .text:0001C7CC var_594 = -0x594 .text:0001C7CC var_590 = -0x590 .text:0001C7CC var_58C = -0x58C .text:0001C7CC var_588 = -0x588 .text:0001C7CC var_584 = -0x584 .text:0001C7CC var_580 = -0x580 .text:0001C7CC var_57C = -0x57C .text:0001C7CC var_578 = -0x578 .text:0001C7CC var_574 = -0x574 .text:0001C7CC var_570 = -0x570 .text:0001C7CC var_56C = -0x56C .text:0001C7CC var_568 = -0x568 .text:0001C7CC var_564 = -0x564 .text:0001C7CC var_560 = -0x560 .text:0001C7CC var_55C = -0x55C .text:0001C7CC var_558 = -0x558 .text:0001C7CC var_554 = -0x554 .text:0001C7CC var_550 = -0x550 .text:0001C7CC var_54C = -0x54C .text:0001C7CC var_548 = -0x548 .text:0001C7CC var_544 = -0x544 .text:0001C7CC var_540 = -0x540 .text:0001C7CC var_53C = -0x53C .text:0001C7CC var_538 = -0x538 .text:0001C7CC var_534 = -0x534 .text:0001C7CC var_530 = -0x530 .text:0001C7CC var_52C = -0x52C .text:0001C7CC var_528 = -0x528 .text:0001C7CC var_524 = -0x524 .text:0001C7CC var_520 = -0x520 .text:0001C7CC var_51C = -0x51C .text:0001C7CC var_518 = -0x518 .text:0001C7CC var_514 = -0x514 .text:0001C7CC var_510 = -0x510 .text:0001C7CC var_50C = -0x50C .text:0001C7CC var_508 = -0x508 .text:0001C7CC var_504 = -0x504 .text:0001C7CC var_500 = -0x500 .text:0001C7CC var_4FC = -0x4FC .text:0001C7CC var_4F8 = -0x4F8 .text:0001C7CC var_4F4 = -0x4F4 .text:0001C7CC var_4F0 = -0x4F0 .text:0001C7CC var_4EC = -0x4EC .text:0001C7CC var_4E0 = -0x4E0 .text:0001C7CC var_4DC = -0x4DC .text:0001C7CC var_4D0 = -0x4D0 .text:0001C7CC var_4CC = -0x4CC .text:0001C7CC var_4C8 = -0x4C8 .text:0001C7CC var_4C0 = -0x4C0 .text:0001C7CC var_4BC = -0x4BC .text:0001C7CC var_4B8 = -0x4B8 .text:0001C7CC var_4B4 = -0x4B4 .text:0001C7CC var_4B0 = -0x4B0 .text:0001C7CC var_4A8 = -0x4A8 .text:0001C7CC var_4A4 = -0x4A4 .text:0001C7CC var_4A0 = -0x4A0 .text:0001C7CC var_494 = -0x494 .text:0001C7CC var_490 = -0x490 .text:0001C7CC var_484 = -0x484 .text:0001C7CC var_480 = -0x480 .text:0001C7CC var_47C = -0x47C .text:0001C7CC var_478 = -0x478 .text:0001C7CC var_470 = -0x470 .text:0001C7CC var_46C = -0x46C .text:0001C7CC var_468 = -0x468 .text:0001C7CC var_464 = -0x464 .text:0001C7CC var_460 = -0x460 .text:0001C7CC var_45C = -0x45C .text:0001C7CC var_458 = -0x458 .text:0001C7CC var_454 = -0x454 .text:0001C7CC var_450 = -0x450 .text:0001C7CC var_44C = -0x44C .text:0001C7CC var_448 = -0x448 .text:0001C7CC var_444 = -0x444 .text:0001C7CC var_440 = -0x440 .text:0001C7CC var_43C = -0x43C .text:0001C7CC var_438 = -0x438 .text:0001C7CC var_434 = -0x434 .text:0001C7CC var_430 = -0x430 .text:0001C7CC var_42C = -0x42C .text:0001C7CC var_428 = -0x428 .text:0001C7CC var_424 = -0x424 .text:0001C7CC var_420 = -0x420 .text:0001C7CC var_410 = -0x410 .text:0001C7CC var_28 = -0x28 .text:0001C7CC .text:0001C7CC MOV R12, SP .text:0001C7D0 STMFD SP!, {R4-R12,LR,PC} .text:0001C7D4 SUB R11, R12, #4 .text:0001C7D8 SUB SP, SP, #0x5A0 .text:0001C7DC SUB SP, SP, #4 .text:0001C7E0 STR R2, [R11,#var_4F0] .text:0001C7E4 MOV R10, R0 .text:0001C7E8 MOV R5, R1 .text:0001C7EC BL __errno_location .text:0001C7F0 LDRB R3, [R10,#0x46] .text:0001C7F4 MOV R1, #0 .text:0001C7F8 STR R1, [R11,#var_4F4] .text:0001C7FC LDR R0, [R0] .text:0001C800 CMP R3, R1 .text:0001C804 STR R0, [R11,#var_508] .text:0001C808 BNE loc_1C828 .text:0001C80C LDR R3, [R10,#0x5C] .text:0001C810 MOV R2, 0xFFFFFFFF .text:0001C814 CMP R3, R1 .text:0001C818 STREQ R2, [R10,#0x5C] .text:0001C81C LDR R2, [R10,#0x5C] .text:0001C820 CMN R2, #1 .text:0001C824 BNE loc_1E40C .text:0001C828 .text:0001C828 loc_1C828 ; CODE XREF: vfprintf+3Cj .text:0001C828 LDR R3, [R10] .text:0001C82C TST R3, #8 .text:0001C830 BNE loc_1E400 .text:0001C834 CMP R5, #0 .text:0001C838 BNE loc_1C848 .text:0001C83C BL __errno_location .text:0001C840 MOV R3, #0x16 .text:0001C844 B loc_1E408 .text:0001C848 ; --------------------------------------------------------------------------- .text:0001C848 .text:0001C848 loc_1C848 ; CODE XREF: vfprintf+6Cj .text:0001C848 LDRB R3, [R10,#0x46] .text:0001C84C CMP R3, #0 .text:0001C850 BNE loc_1C870 .text:0001C854 LDR R3, [R10,#0x5C] .text:0001C858 MOV R2, 0xFFFFFFFF .text:0001C85C CMP R3, #0 .text:0001C860 STREQ R2, [R10,#0x5C] .text:0001C864 LDR R2, [R10,#0x5C] .text:0001C868 CMN R2, #1 .text:0001C86C BNE loc_1E40C .text:0001C870 .text:0001C870 loc_1C870 ; CODE XREF: vfprintf+84j .text:0001C870 LDR R3, [R10] .text:0001C874 ANDS R6, R3, #2 .text:0001C878 BEQ loc_1C890 .text:0001C87C MOV R0, R10 .text:0001C880 LDR R2, [R11,#var_4F0] .text:0001C884 MOV R1, R5 .text:0001C888 BL buffered_vfprintf .text:0001C88C B loc_20844 .text:0001C890 ; --------------------------------------------------------------------------- .text:0001C890 .text:0001C890 loc_1C890 ; CODE XREF: vfprintf+ACj .text:0001C890 MOV R2, 0xFFFFFFFF .text:0001C894 STR R2, [R11,#var_4F8] .text:0001C898 MOV R9, R6 .text:0001C89C STR R9, [R11,#var_504] .text:0001C8A0 SUB R4, R11, #-var_470 .text:0001C8A4 STR R5, [R11,#var_50C] .text:0001C8A8 SUB R4, R4, #8 .text:0001C8AC MOV R0, R4 .text:0001C8B0 ADD R2, R2, #9 .text:0001C8B4 MOV R1, R9 .text:0001C8B8 BL memset .text:0001C8BC LDR R5, [R11,#var_50C] .text:0001C8C0 LDR R12, [R11,#var_4F0] .text:0001C8C4 LDR R7, =0 .text:0001C8C8 LDRB R3, [R5] .text:0001C8CC STR R12, [R11,#var_500] .text:0001C8D0 CMP R3, #0 .text:0001C8D4 CMPNE R3, #0x25 .text:0001C8D8 BEQ loc_1C93C .text:0001C8DC .text:0001C8DC loc_1C8DC ; CODE XREF: vfprintf+16Cj .text:0001C8DC LDR R0, [R11,#var_50C] .text:0001C8E0 LDRB R2, [R0] .text:0001C8E4 MOV R3, #0 .text:0001C8E8 STR R3, [R4] .text:0001C8EC TST R2, #0x80 .text:0001C8F0 BEQ loc_1C91C .text:0001C8F4 BL __ctype_get_mb_cur_max .text:0001C8F8 MOV R1, R0 .text:0001C8FC LDR R0, [R11,#var_50C] .text:0001C900 MOV R2, R4 .text:0001C904 BL mbrlen .text:0001C908 CMP R0, #0 .text:0001C90C LDRGT R1, [R11,#var_50C] .text:0001C910 ADDGT R1, R1, R0 .text:0001C914 STRGT R1, [R11,#var_50C] .text:0001C918 BGT loc_1C928 .text:0001C91C .text:0001C91C loc_1C91C ; CODE XREF: vfprintf+124j .text:0001C91C LDR R2, [R11,#var_50C] .text:0001C920 ADD R2, R2, #1 .text:0001C924 STR R2, [R11,#var_50C] .text:0001C928 .text:0001C928 loc_1C928 ; CODE XREF: vfprintf+14Cj .text:0001C928 LDR R12, [R11,#var_50C] .text:0001C92C LDRB R3, [R12] .text:0001C930 CMP R3, #0 .text:0001C934 CMPNE R3, #0x25 .text:0001C938 BNE loc_1C8DC .text:0001C93C .text:0001C93C loc_1C93C ; CODE XREF: vfprintf+10Cj .text:0001C93C SUBS R0, R7, #0 .text:0001C940 MOVNE R0, #1 .text:0001C944 STR R0, [R11,#var_510] .text:0001C948 LDR R1, [R11,#var_50C] .text:0001C94C CMP R0, #0 .text:0001C950 STR R1, [R11,#var_480] .text:0001C954 BEQ loc_1C96C .text:0001C958 SUB R0, R11, #-var_420 .text:0001C95C LDR R1, =funlockfile .text:0001C960 MOV R2, R10 .text:0001C964 MOV LR, PC .text:0001C968 MOV PC, R7 .text:0001C96C .text:0001C96C loc_1C96C ; CODE XREF: vfprintf+188j .text:0001C96C LDR R3, [R10] .text:0001C970 TST R3, #0x8000 .text:0001C974 BNE loc_1C980 .text:0001C978 MOV R0, R10 .text:0001C97C BL flockfile .text:0001C980 .text:0001C980 loc_1C980 ; CODE XREF: vfprintf+1A8j .text:0001C980 MOV R0, R10 .text:0001C984 LDRB R3, [R10,#0x46] .text:0001C988 MOV R1, R5 .text:0001C98C LDR R2, [R11,#var_50C] .text:0001C990 MOV R3, R3,LSL#24 .text:0001C994 ADD R3, R10, R3,ASR#24 .text:0001C998 RSB R4, R5, R2 .text:0001C99C LDR R12, [R3,#0x94] .text:0001C9A0 MOV R2, R4 .text:0001C9A4 MOV LR, PC .text:0001C9A8 LDR PC, [R12,#0x1C] .text:0001C9AC CMP R0, R4 .text:0001C9B0 BNE loc_1E334 .text:0001C9B4 ADD R9, R6, R0 .text:0001C9B8 LDR R3, [R11,#var_480] .text:0001C9BC LDRB R2, [R3] .text:0001C9C0 MOV R1, R3 .text:0001C9C4 CMP R2, #0 .text:0001C9C8 BEQ loc_20814 .text:0001C9CC .text:0001C9CC loc_1C9CC ; CODE XREF: vfprintf+1C2Cj .text:0001C9CC MOV R3, #0 .text:0001C9D0 STR R3, [R11,#var_524] .text:0001C9D4 STR R3, [R11,#var_528] .text:0001C9D8 STR R3, [R11,#var_52C] .text:0001C9DC MOV R4, 0xFFFFFFFF .text:0001C9E0 STR R4, [R11,#var_54C] .text:0001C9E4 MOV R12, #0x20 .text:0001C9E8 STR R12, [R11,#var_554] .text:0001C9EC STR R3, [R11,#var_530] .text:0001C9F0 STR R3, [R11,#var_534] .text:0001C9F4 STR R3, [R11,#var_538] .text:0001C9F8 STR R3, [R11,#var_53C] .text:0001C9FC STR R3, [R11,#var_540] .text:0001CA00 STR R3, [R11,#var_548] .text:0001CA04 STR R3, [R11,#var_544] .text:0001CA08 STR R3, [R11,#var_550] .text:0001CA0C SUB R0, R11, #-var_28 .text:0001CA10 STR R0, [R11,#var_4FC] .text:0001CA14 ADD R3, R1, #1 .text:0001CA18 STR R3, [R11,#var_480] .text:0001CA1C LDRB R1, [R1,#1] .text:0001CA20 SUB R2, R1, #0x20 .text:0001CA24 AND R3, R2, #0xFF .text:0001CA28 CMP R3, #0x5A .text:0001CA2C STR R1, [R11,#var_558] .text:0001CA30 BHI loc_1CA48 .text:0001CA34 LDR R3, =jump_table.174 .text:0001CA38 LDR R1, =step0_jumps.175 .text:0001CA3C LDR R2, [R3,R2,LSL#2] .text:0001CA40 LDR R3, [R1,R2,LSL#2] .text:0001CA44 B loc_1CA4C .text:0001CA48 ; --------------------------------------------------------------------------- .text:0001CA48 .text:0001CA48 loc_1CA48 ; CODE XREF: vfprintf+264j .text:0001CA48 LDR R3, =loc_1E328 .text:0001CA4C .text:0001CA4C loc_1CA4C ; CODE XREF: vfprintf+278j .text:0001CA4C MOV PC, R3 .text:0001CA50 ; --------------------------------------------------------------------------- .text:0001CA50 MOV R1, #1 .text:0001CA54 STR R1, [R11,#var_528] .text:0001CA58 LDR R3, [R11,#var_480] .text:0001CA5C ADD R2, R3, R1 .text:0001CA60 STR R2, [R11,#var_480] .text:0001CA64 LDRB R3, [R3,#1] .text:0001CA68 SUB R2, R3, #0x20 .text:0001CA6C STR R3, [R11,#var_558] .text:0001CA70 AND R3, R2, #0xFF .text:0001CA74 CMP R3, #0x5A .text:0001CA78 BHI loc_1CA90 .text:0001CA7C LDR R3, =jump_table.174 .text:0001CA80 LDR R1, =step0_jumps.175 .text:0001CA84 LDR R2, [R3,R2,LSL#2] .text:0001CA88 LDR R3, [R1,R2,LSL#2] .text:0001CA8C B loc_1CA94 .text:0001CA90 ; --------------------------------------------------------------------------- .text:0001CA90 .text:0001CA90 loc_1CA90 ; CODE XREF: vfprintf+2ACj .text:0001CA90 LDR R3, =loc_1E328 .text:0001CA94 .text:0001CA94 loc_1CA94 ; CODE XREF: vfprintf+2C0j .text:0001CA94 MOV PC, R3 .text:0001CA98 ; --------------------------------------------------------------------------- .text:0001CA98 MOV R2, #1 .text:0001CA9C STR R2, [R11,#var_530] .text:0001CAA0 LDR R3, [R11,#var_480] .text:0001CAA4 ADD R2, R3, R2 .text:0001CAA8 STR R2, [R11,#var_480] .text:0001CAAC LDRB R3, [R3,#1] .text:0001CAB0 SUB R2, R3, #0x20 .text:0001CAB4 STR R3, [R11,#var_558] .text:0001CAB8 AND R3, R2, #0xFF .text:0001CABC CMP R3, #0x5A .text:0001CAC0 BHI loc_1CAD8 .text:0001CAC4 LDR R3, =jump_table.174 .text:0001CAC8 LDR R1, =step0_jumps.175 .text:0001CACC LDR R2, [R3,R2,LSL#2] .text:0001CAD0 LDR R3, [R1,R2,LSL#2] .text:0001CAD4 B loc_1CADC .text:0001CAD8 ; --------------------------------------------------------------------------- .text:0001CAD8 .text:0001CAD8 loc_1CAD8 ; CODE XREF: vfprintf+2F4j .text:0001CAD8 LDR R3, =loc_1E328 .text:0001CADC .text:0001CADC loc_1CADC ; CODE XREF: vfprintf+308j .text:0001CADC MOV PC, R3 .text:0001CAE0 ; --------------------------------------------------------------------------- .text:0001CAE0 MOV R3, #1 .text:0001CAE4 STR R3, [R11,#var_52C] .text:0001CAE8 MOV R4, #0x20 .text:0001CAEC STR R4, [R11,#var_554] .text:0001CAF0 LDR R3, [R11,#var_480] .text:0001CAF4 ADD R2, R3, #1 .text:0001CAF8 STR R2, [R11,#var_480] .text:0001CAFC LDRB R3, [R3,#1] .text:0001CB00 SUB R2, R3, #0x20 .text:0001CB04 STR R3, [R11,#var_558] .text:0001CB08 AND R3, R2, #0xFF .text:0001CB0C CMP R3, #0x5A .text:0001CB10 BHI loc_1CB28 .text:0001CB14 LDR R3, =jump_table.174 .text:0001CB18 LDR R1, =step0_jumps.175 .text:0001CB1C LDR R2, [R3,R2,LSL#2] .text:0001CB20 LDR R3, [R1,R2,LSL#2] .text:0001CB24 B loc_1CB2C .text:0001CB28 ; --------------------------------------------------------------------------- .text:0001CB28 .text:0001CB28 loc_1CB28 ; CODE XREF: vfprintf+344j .text:0001CB28 LDR R3, =loc_1E328 .text:0001CB2C .text:0001CB2C loc_1CB2C ; CODE XREF: vfprintf+358j .text:0001CB2C MOV PC, R3 .text:0001CB30 ; --------------------------------------------------------------------------- .text:0001CB30 MOV R12, #1 .text:0001CB34 STR R12, [R11,#var_524] .text:0001CB38 LDR R3, [R11,#var_480] .text:0001CB3C ADD R2, R3, R12 .text:0001CB40 STR R2, [R11,#var_480] .text:0001CB44 LDRB R3, [R3,#1] .text:0001CB48 SUB R2, R3, #0x20 .text:0001CB4C STR R3, [R11,#var_558] .text:0001CB50 AND R3, R2, #0xFF .text:0001CB54 CMP R3, #0x5A .text:0001CB58 BHI loc_1CB70 .text:0001CB5C LDR R3, =jump_table.174 .text:0001CB60 LDR R1, =step0_jumps.175 .text:0001CB64 LDR R2, [R3,R2,LSL#2] .text:0001CB68 LDR R3, [R1,R2,LSL#2] .text:0001CB6C B loc_1CB74 .text:0001CB70 ; --------------------------------------------------------------------------- .text:0001CB70 .text:0001CB70 loc_1CB70 ; CODE XREF: vfprintf+38Cj .text:0001CB70 LDR R3, =loc_1E328 .text:0001CB74 .text:0001CB74 loc_1CB74 ; CODE XREF: vfprintf+3A0j .text:0001CB74 MOV PC, R3 .text:0001CB78 ; --------------------------------------------------------------------------- .text:0001CB78 LDR R1, [R11,#var_52C] .text:0001CB7C LDR R0, [R11,#var_554] .text:0001CB80 CMP R1, #0 .text:0001CB84 MOVEQ R0, #0x30 .text:0001CB88 STR R0, [R11,#var_554] .text:0001CB8C LDR R3, [R11,#var_480] .text:0001CB90 ADD R2, R3, #1 .text:0001CB94 STR R2, [R11,#var_480] .text:0001CB98 LDRB R3, [R3,#1] .text:0001CB9C SUB R2, R3, #0x20 .text:0001CBA0 STR R3, [R11,#var_558] .text:0001CBA4 AND R3, R2, #0xFF .text:0001CBA8 CMP R3, #0x5A .text:0001CBAC BHI loc_1CBC4 .text:0001CBB0 LDR R3, =jump_table.174 .text:0001CBB4 LDR R1, =step0_jumps.175 .text:0001CBB8 LDR R2, [R3,R2,LSL#2] .text:0001CBBC LDR R3, [R1,R2,LSL#2] .text:0001CBC0 B loc_1CBC8 .text:0001CBC4 ; --------------------------------------------------------------------------- .text:0001CBC4 .text:0001CBC4 loc_1CBC4 ; CODE XREF: vfprintf+3E0j .text:0001CBC4 LDR R3, =loc_1E328 .text:0001CBC8 .text:0001CBC8 loc_1CBC8 ; CODE XREF: vfprintf+3F4j .text:0001CBC8 MOV PC, R3 .text:0001CBCC ; --------------------------------------------------------------------------- .text:0001CBCC LDR R3, [R11,#var_4F8] .text:0001CBD0 MOV R2, #1 .text:0001CBD4 STR R2, [R11,#var_534] .text:0001CBD8 CMN R3, #1 .text:0001CBDC BNE loc_1CC1C .text:0001CBE0 LDR R3, =_nl_current_LC_NUMERIC .text:0001CBE4 LDR R2, [R3] .text:0001CBE8 LDR R4, [R2,#0x28] .text:0001CBEC STR R4, [R11,#var_4F8] .text:0001CBF0 LDRB R3, [R4] .text:0001CBF4 LDR R2, [R2,#0x24] .text:0001CBF8 CMP R3, #0xFF .text:0001CBFC CMPNE R3, #0 .text:0001CC00 STR R2, [R11,#var_4F4] .text:0001CC04 BEQ loc_1CC14 .text:0001CC08 LDRB R3, [R2] .text:0001CC0C CMP R3, #0 .text:0001CC10 BNE loc_1CC1C .text:0001CC14 .text:0001CC14 loc_1CC14 ; CODE XREF: vfprintf+438j .text:0001CC14 MOV R12, #0 .text:0001CC18 STR R12, [R11,#var_4F8] .text:0001CC1C .text:0001CC1C loc_1CC1C ; CODE XREF: vfprintf+410j .text:0001CC1C ; vfprintf+444j .text:0001CC1C LDR R3, [R11,#var_480] .text:0001CC20 ADD R2, R3, #1 .text:0001CC24 STR R2, [R11,#var_480] .text:0001CC28 LDRB R3, [R3,#1] .text:0001CC2C SUB R2, R3, #0x20 .text:0001CC30 STR R3, [R11,#var_558] .text:0001CC34 AND R3, R2, #0xFF .text:0001CC38 CMP R3, #0x5A .text:0001CC3C BHI loc_1CC54 .text:0001CC40 LDR R3, =jump_table.174 .text:0001CC44 LDR R1, =step0_jumps.175 .text:0001CC48 LDR R2, [R3,R2,LSL#2] .text:0001CC4C LDR R3, [R1,R2,LSL#2] .text:0001CC50 B loc_1CC58 .text:0001CC54 ; --------------------------------------------------------------------------- .text:0001CC54 .text:0001CC54 loc_1CC54 ; CODE XREF: vfprintf+470j .text:0001CC54 LDR R3, =loc_1E328 .text:0001CC58 .text:0001CC58 loc_1CC58 ; CODE XREF: vfprintf+484j .text:0001CC58 MOV PC, R3 .text:0001CC58 ; --------------------------------------------------------------------------- .text:0001CC5C dword_1CC5C DCD 0 ; DATA XREF: vfprintf+F8r .text:0001CC60 off_1CC60 DCD funlockfile ; DATA XREF: vfprintf+190r .text:0001CC64 off_1CC64 DCD jump_table.174 ; DATA XREF: vfprintf+268r .text:0001CC64 ; vfprintf+2B0r ... .text:0001CC68 off_1CC68 DCD step0_jumps.175 ; DATA XREF: vfprintf+26Cr .text:0001CC68 ; vfprintf+2B4r ... .text:0001CC6C off_1CC6C DCD loc_1E328 ; DATA XREF: vfprintf:loc_1CA48r .text:0001CC6C ; vfprintf:loc_1CA90r ... .text:0001CC70 off_1CC70 DCD _nl_current_LC_NUMERIC ; DATA XREF: vfprintf+414r .text:0001CC74 ; --------------------------------------------------------------------------- .text:0001CC74 MOV R0, #1 .text:0001CC78 STR R0, [R11,#var_550] .text:0001CC7C LDR R3, [R11,#var_480] .text:0001CC80 ADD R2, R3, R0 .text:0001CC84 STR R2, [R11,#var_480] .text:0001CC88 LDRB R3, [R3,#1] .text:0001CC8C SUB R2, R3, #0x20 .text:0001CC90 STR R3, [R11,#var_558] .text:0001CC94 AND R3, R2, #0xFF .text:0001CC98 CMP R3, #0x5A .text:0001CC9C BHI loc_1CCB4 .text:0001CCA0 LDR R3, =jump_table.174 .text:0001CCA4 LDR R1, =step0_jumps.175 .text:0001CCA8 LDR R2, [R3,R2,LSL#2] .text:0001CCAC LDR R3, [R1,R2,LSL#2] .text:0001CCB0 B loc_1CCB8 .text:0001CCB4 ; --------------------------------------------------------------------------- .text:0001CCB4 .text:0001CCB4 loc_1CCB4 ; CODE XREF: vfprintf+4D0j .text:0001CCB4 LDR R3, =loc_1E328 .text:0001CCB8 .text:0001CCB8 loc_1CCB8 ; CODE XREF: vfprintf+4E4j .text:0001CCB8 MOV PC, R3 .text:0001CCBC ; --------------------------------------------------------------------------- .text:0001CCBC LDR R2, [R11,#var_480] .text:0001CCC0 ADD R0, R2, #1 .text:0001CCC4 STR R0, [R11,#var_480] .text:0001CCC8 STR R0, [R11,#var_47C] .text:0001CCCC LDRB R3, [R2,#1] .text:0001CCD0 SUB R1, R3, #0x30 .text:0001CCD4 CMP R1, #9 .text:0001CCD8 BHI loc_1CD40 .text:0001CCDC ADD R3, R0, #1 .text:0001CCE0 STR R3, [R11,#var_47C] .text:0001CCE4 SUB LR, R11, #-var_470 .text:0001CCE8 SUB LR, LR, #8 .text:0001CCEC LDRB R3, [R0,#1] .text:0001CCF0 SUB LR, LR, #4 .text:0001CCF4 B loc_1CD1C .text:0001CCF8 ; --------------------------------------------------------------------------- .text:0001CCF8 .text:0001CCF8 loc_1CCF8 ; CODE XREF: vfprintf+558j .text:0001CCF8 LDR R0, [LR] .text:0001CCFC MOV R3, R0 .text:0001CD00 LDRB R12, [R3],#1 .text:0001CD04 STR R3, [LR] .text:0001CD08 ADD R2, R1, R1,LSL#2 .text:0001CD0C MOV R1, R2,LSL#1 .text:0001CD10 SUB R1, R1, #0x30 .text:0001CD14 LDRB R3, [R0,#1] .text:0001CD18 ADD R1, R1, R12 .text:0001CD1C .text:0001CD1C loc_1CD1C ; CODE XREF: vfprintf+528j .text:0001CD1C SUB R3, R3, #0x30 .text:0001CD20 CMP R3, #9 .text:0001CD24 BLS loc_1CCF8 .text:0001CD28 CMP R1, #0 .text:0001CD2C BEQ loc_1CD40 .text:0001CD30 LDR R3, [R11,#var_47C] .text:0001CD34 LDRB R2, [R3] .text:0001CD38 CMP R2, #0x24 .text:0001CD3C BEQ loc_1E438 .text:0001CD40 .text:0001CD40 loc_1CD40 ; CODE XREF: vfprintf+50Cj .text:0001CD40 ; vfprintf+560j .text:0001CD40 LDR R1, [R11,#var_4F0] .text:0001CD44 LDR R2, [R1],#4 .text:0001CD48 STR R2, [R11,#var_548] .text:0001CD4C CMP R2, #0 .text:0001CD50 STR R1, [R11,#var_4F0] .text:0001CD54 BGE loc_1CD70 .text:0001CD58 RSB R2, R2, #0 .text:0001CD5C STR R2, [R11,#var_548] .text:0001CD60 MOV R3, #0x20 .text:0001CD64 STR R3, [R11,#var_554] .text:0001CD68 MOV R4, #1 .text:0001CD6C STR R4, [R11,#var_52C] .text:0001CD70 .text:0001CD70 loc_1CD70 ; CODE XREF: vfprintf+588j .text:0001CD70 LDR R12, [R11,#var_548] .text:0001CD74 ADD R1, R12, #0x20 .text:0001CD78 CMP R1, #0x3E8 .text:0001CD7C BLT loc_1CD98 .text:0001CD80 ADD R3, R12, #0x23 .text:0001CD84 BIC R3, R3, #3 .text:0001CD88 RSB SP, R3, SP .text:0001CD8C ADD R2, SP, #0x5CC+var_5C8 .text:0001CD90 ADD R2, R2, R1 .text:0001CD94 STR R2, [R11,#var_4FC] .text:0001CD98 .text:0001CD98 loc_1CD98 ; CODE XREF: vfprintf+5B0j .text:0001CD98 LDR R3, [R11,#var_480] .text:0001CD9C LDRB R3, [R3] .text:0001CDA0 SUB R2, R3, #0x20 .text:0001CDA4 STR R3, [R11,#var_558] .text:0001CDA8 AND R3, R2, #0xFF .text:0001CDAC CMP R3, #0x5A .text:0001CDB0 BHI loc_1CDC8 .text:0001CDB4 LDR R3, =jump_table.174 .text:0001CDB8 LDR R1, =step1_jumps.176 .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+5E4j .text:0001CDC8 LDR R3, =loc_1E328 .text:0001CDCC .text:0001CDCC loc_1CDCC ; CODE XREF: vfprintf+5F8j .text:0001CDCC MOV PC, R3 .text:0001CDD0 ; --------------------------------------------------------------------------- .text:0001CDD0 LDR R2, [R11,#var_480] .text:0001CDD4 MOV R3, R2 .text:0001CDD8 LDRB R1, [R3],#1 .text:0001CDDC STR R3, [R11,#var_480] .text:0001CDE0 SUB LR, R11, #-var_470 .text:0001CDE4 SUB LR, LR, #8 .text:0001CDE8 SUB LR, LR, #8 .text:0001CDEC LDRB R3, [R2,#1] .text:0001CDF0 SUB R2, R1, #0x30 .text:0001CDF4 B loc_1CE1C .text:0001CDF8 ; --------------------------------------------------------------------------- .text:0001CDF8 .text:0001CDF8 loc_1CDF8 ; CODE XREF: vfprintf+658j .text:0001CDF8 LDR R0, [LR] .text:0001CDFC MOV R3, R0 .text:0001CE00 LDRB R12, [R3],#1 .text:0001CE04 STR R3, [LR] .text:0001CE08 ADD R2, R2, R2,LSL#2 .text:0001CE0C MOV R2, R2,LSL#1 .text:0001CE10 SUB R1, R2, #0x30 .text:0001CE14 LDRB R3, [R0,#1] .text:0001CE18 ADD R2, R1, R12 .text:0001CE1C .text:0001CE1C loc_1CE1C ; CODE XREF: vfprintf+628j .text:0001CE1C SUB R3, R3, #0x30 .text:0001CE20 CMP R3, #9 .text:0001CE24 BLS loc_1CDF8 .text:0001CE28 STR R2, [R11,#var_548] .text:0001CE2C ADD R1, R2, #0x20 .text:0001CE30 CMP R1, #0x3E8 .text:0001CE34 BLT loc_1CE50 .text:0001CE38 ADD R3, R2, #0x23 .text:0001CE3C BIC R3, R3, #3 .text:0001CE40 RSB SP, R3, SP .text:0001CE44 ADD R2, SP, #0x5CC+var_5C8 .text:0001CE48 ADD R2, R2, R1 .text:0001CE4C STR R2, [R11,#var_4FC] .text:0001CE50 .text:0001CE50 loc_1CE50 ; CODE XREF: vfprintf+668j .text:0001CE50 LDR R2, [R11,#var_480] .text:0001CE54 LDRB R3, [R2] .text:0001CE58 CMP R3, #0x24 .text:0001CE5C BEQ loc_1E438 .text:0001CE60 MOV R2, R3 .text:0001CE64 STR R2, [R11,#var_558] .text:0001CE68 SUB R2, R2, #0x20 .text:0001CE6C AND R3, R2, #0xFF .text:0001CE70 CMP R3, #0x5A .text:0001CE74 BHI loc_1CE8C .text:0001CE78 LDR R3, =jump_table.174 .text:0001CE7C LDR R1, =step1_jumps.176 .text:0001CE80 LDR R2, [R3,R2,LSL#2] .text:0001CE84 LDR R3, [R1,R2,LSL#2] .text:0001CE88 B loc_1CE90 .text:0001CE8C ; --------------------------------------------------------------------------- .text:0001CE8C .text:0001CE8C loc_1CE8C ; CODE XREF: vfprintf+6A8j .text:0001CE8C LDR R3, =loc_1E328 .text:0001CE90 .text:0001CE90 loc_1CE90 ; CODE XREF: vfprintf+6BCj .text:0001CE90 MOV PC, R3 .text:0001CE94 ; --------------------------------------------------------------------------- .text:0001CE94 LDR R2, [R11,#var_480] .text:0001CE98 ADD R0, R2, #1 .text:0001CE9C STR R0, [R11,#var_480] .text:0001CEA0 LDRB R3, [R2,#1] .text:0001CEA4 CMP R3, #0x2A .text:0001CEA8 MOV R3, R0 .text:0001CEAC BNE loc_1CF4C .text:0001CEB0 ADD R0, R3, #1 .text:0001CEB4 STR R0, [R11,#var_480] .text:0001CEB8 STR R0, [R11,#var_484] .text:0001CEBC LDRB R3, [R3,#1] .text:0001CEC0 SUB R1, R3, #0x30 .text:0001CEC4 CMP R1, #9 .text:0001CEC8 BHI loc_1CF30 .text:0001CECC ADD R3, R0, #1 .text:0001CED0 STR R3, [R11,#var_484] .text:0001CED4 SUB LR, R11, #-var_470 .text:0001CED8 SUB LR, LR, #8 .text:0001CEDC LDRB R3, [R0,#1] .text:0001CEE0 SUB LR, LR, #0xC .text:0001CEE4 B loc_1CF0C .text:0001CEE8 ; --------------------------------------------------------------------------- .text:0001CEE8 .text:0001CEE8 loc_1CEE8 ; CODE XREF: vfprintf+748j .text:0001CEE8 LDR R0, [LR] .text:0001CEEC MOV R3, R0 .text:0001CEF0 LDRB R12, [R3],#1 .text:0001CEF4 STR R3, [LR] .text:0001CEF8 ADD R2, R1, R1,LSL#2 .text:0001CEFC MOV R1, R2,LSL#1 .text:0001CF00 SUB R1, R1, #0x30 .text:0001CF04 LDRB R3, [R0,#1] .text:0001CF08 ADD R1, R1, R12 .text:0001CF0C .text:0001CF0C loc_1CF0C ; CODE XREF: vfprintf+718j .text:0001CF0C SUB R3, R3, #0x30 .text:0001CF10 CMP R3, #9 .text:0001CF14 BLS loc_1CEE8 .text:0001CF18 CMP R1, #0 .text:0001CF1C BEQ loc_1CF30 .text:0001CF20 LDR R3, [R11,#var_484] .text:0001CF24 LDRB R2, [R3] .text:0001CF28 CMP R2, #0x24 .text:0001CF2C BEQ loc_1E438 .text:0001CF30 .text:0001CF30 loc_1CF30 ; CODE XREF: vfprintf+6FCj .text:0001CF30 ; vfprintf+750j .text:0001CF30 LDR R0, [R11,#var_4F0] .text:0001CF34 LDR R1, [R0],#4 .text:0001CF38 STR R0, [R11,#var_4F0] .text:0001CF3C CMN R1, #1 .text:0001CF40 MOVLE R1, 0xFFFFFFFF .text:0001CF44 STR R1, [R11,#var_54C] .text:0001CF48 B loc_1CFFC .text:0001CF4C ; --------------------------------------------------------------------------- .text:0001CF4C .text:0001CF4C loc_1CF4C ; CODE XREF: vfprintf+6E0j .text:0001CF4C LDRB R3, [R2,#1] .text:0001CF50 SUB R1, R3, #0x30 .text:0001CF54 CMP R1, #9 .text:0001CF58 BHI loc_1CFF4 .text:0001CF5C ADD R3, R0, #1 .text:0001CF60 STR R3, [R11,#var_480] .text:0001CF64 SUB LR, R11, #-var_470 .text:0001CF68 SUB LR, LR, #8 .text:0001CF6C LDRB R3, [R0,#1] .text:0001CF70 SUB LR, LR, #8 .text:0001CF74 B loc_1CF9C .text:0001CF78 ; --------------------------------------------------------------------------- .text:0001CF78 .text:0001CF78 loc_1CF78 ; CODE XREF: vfprintf+7D8j .text:0001CF78 LDR R0, [LR] .text:0001CF7C MOV R3, R0 .text:0001CF80 LDRB R12, [R3],#1 .text:0001CF84 STR R3, [LR] .text:0001CF88 ADD R2, R1, R1,LSL#2 .text:0001CF8C MOV R1, R2,LSL#1 .text:0001CF90 SUB R1, R1, #0x30 .text:0001CF94 LDRB R3, [R0,#1] .text:0001CF98 ADD R1, R1, R12 .text:0001CF9C .text:0001CF9C loc_1CF9C ; CODE XREF: vfprintf+7A8j .text:0001CF9C SUB R3, R3, #0x30 .text:0001CFA0 CMP R3, #9 .text:0001CFA4 BLS loc_1CF78 .text:0001CFA8 STR R1, [R11,#var_54C] .text:0001CFAC B loc_1CFFC .text:0001CFB0 ; --------------------------------------------------------------------------- .text:0001CFB0 .text:0001CFB0 loc_1CFB0 ; CODE XREF: vfprintf+1614j .text:0001CFB0 LDR R3, [R11,#var_4F0] .text:0001CFB4 LDR R2, [R3],#4 .text:0001CFB8 STR R3, [R11,#var_4F0] .text:0001CFBC MOV R3, R9 .text:0001CFC0 MOV R4, R3,ASR#31 .text:0001CFC4 STMIA R2, {R3,R4} .text:0001CFC8 B loc_1E33C .text:0001CFCC ; --------------------------------------------------------------------------- .text:0001CFCC .text:0001CFCC loc_1CFCC ; CODE XREF: vfprintf+1620j .text:0001CFCC LDR R4, [R11,#var_4F0] .text:0001CFD0 LDR R3, [R4],#4 .text:0001CFD4 STR R4, [R11,#var_4F0] .text:0001CFD8 STRB R9, [R3] .text:0001CFDC B loc_1E33C .text:0001CFE0 ; --------------------------------------------------------------------------- .text:0001CFE0 .text:0001CFE0 loc_1CFE0 ; CODE XREF: vfprintf+162Cj .text:0001CFE0 LDR R12, [R11,#var_4F0] .text:0001CFE4 LDR R3, [R12],#4 .text:0001CFE8 STR R12, [R11,#var_4F0] .text:0001CFEC STR R9, [R3] .text:0001CFF0 B loc_1E33C .text:0001CFF4 ; --------------------------------------------------------------------------- .text:0001CFF4 .text:0001CFF4 loc_1CFF4 ; CODE XREF: vfprintf+78Cj .text:0001CFF4 MOV R0, #0 .text:0001CFF8 STR R0, [R11,#var_54C] .text:0001CFFC .text:0001CFFC loc_1CFFC ; CODE XREF: vfprintf+77Cj .text:0001CFFC ; vfprintf+7E0j .text:0001CFFC LDR R1, [R11,#var_54C] .text:0001D000 LDR R2, [R11,#var_548] .text:0001D004 CMP R1, R2 .text:0001D008 BLE loc_1D034 .text:0001D00C ADD R3, R1, #0x20 .text:0001D010 CMP R3, #0x3E8 .text:0001D014 BLE loc_1D034 .text:0001D018 LDR R4, [R11,#var_558] .text:0001D01C ADD R3, R4, #0x23 .text:0001D020 AND R3, R3, #0x1FC .text:0001D024 RSB SP, R3, SP .text:0001D028 ADD R2, SP, R4 .text:0001D02C ADD R2, R2, #0x24 .text:0001D030 STR R2, [R11,#var_4FC] .text:0001D034 .text:0001D034 loc_1D034 ; CODE XREF: vfprintf+83Cj .text:0001D034 ; vfprintf+848j .text:0001D034 LDR R3, [R11,#var_480] .text:0001D038 LDRB R3, [R3] .text:0001D03C SUB R2, R3, #0x20 .text:0001D040 STR R3, [R11,#var_558] .text:0001D044 AND R3, R2, #0xFF .text:0001D048 CMP R3, #0x5A .text:0001D04C BHI loc_1D064 .text:0001D050 LDR R3, =jump_table.174 .text:0001D054 LDR R1, =step2_jumps.177 .text:0001D058 LDR R2, [R3,R2,LSL#2] .text:0001D05C LDR R3, [R1,R2,LSL#2] .text:0001D060 B loc_1D068 .text:0001D064 ; --------------------------------------------------------------------------- .text:0001D064 .text:0001D064 loc_1D064 ; CODE XREF: vfprintf+880j .text:0001D064 LDR R3, =loc_1E328 .text:0001D068 .text:0001D068 loc_1D068 ; CODE XREF: vfprintf+894j .text:0001D068 MOV PC, R3 .text:0001D068 ; --------------------------------------------------------------------------- .text:0001D06C off_1D06C DCD jump_table.174 ; DATA XREF: vfprintf+4D4r .text:0001D06C ; vfprintf+5E8r ... .text:0001D070 off_1D070 DCD step0_jumps.175 ; DATA XREF: vfprintf+4D8r .text:0001D074 off_1D074 DCD loc_1E328 ; DATA XREF: vfprintf:loc_1CCB4r .text:0001D074 ; vfprintf:loc_1CDC8r ... .text:0001D078 off_1D078 DCD step1_jumps.176 ; DATA XREF: vfprintf+5ECr .text:0001D078 ; vfprintf+6B0r .text:0001D07C off_1D07C DCD step2_jumps.177 ; DATA XREF: vfprintf+888r .text:0001D080 ; --------------------------------------------------------------------------- .text:0001D080 MOV R12, #1 .text:0001D084 STR R12, [R11,#var_53C] .text:0001D088 LDR R3, [R11,#var_480] .text:0001D08C ADD R2, R3, R12 .text:0001D090 STR R2, [R11,#var_480] .text:0001D094 LDRB R3, [R3,#1] .text:0001D098 SUB R2, R3, #0x20 .text:0001D09C STR R3, [R11,#var_558] .text:0001D0A0 AND R3, R2, #0xFF .text:0001D0A4 CMP R3, #0x5A .text:0001D0A8 BHI loc_1D0C0 .text:0001D0AC LDR R3, =jump_table.174 .text:0001D0B0 LDR R1, =step3a_jumps.178 .text:0001D0B4 LDR R2, [R3,R2,LSL#2] .text:0001D0B8 LDR R3, [R1,R2,LSL#2] .text:0001D0BC B loc_1D0C4 .text:0001D0C0 ; --------------------------------------------------------------------------- .text:0001D0C0 .text:0001D0C0 loc_1D0C0 ; CODE XREF: vfprintf+8DCj .text:0001D0C0 LDR R3, =loc_1E328 .text:0001D0C4 .text:0001D0C4 loc_1D0C4 ; CODE XREF: vfprintf+8F0j .text:0001D0C4 MOV PC, R3 .text:0001D0C8 ; --------------------------------------------------------------------------- .text:0001D0C8 MOV R0, #0 .text:0001D0CC STR R0, [R11,#var_53C] .text:0001D0D0 MOV R1, #1 .text:0001D0D4 STR R1, [R11,#var_544] .text:0001D0D8 LDR R3, [R11,#var_480] .text:0001D0DC ADD R2, R3, R1 .text:0001D0E0 STR R2, [R11,#var_480] .text:0001D0E4 LDRB R3, [R3,#1] .text:0001D0E8 SUB R2, R3, #0x20 .text:0001D0EC STR R3, [R11,#var_558] .text:0001D0F0 AND R3, R2, #0xFF .text:0001D0F4 CMP R3, #0x5A .text:0001D0F8 BHI loc_1D110 .text:0001D0FC LDR R3, =jump_table.174 .text:0001D100 LDR R1, =step4_jumps.180 .text:0001D104 LDR R2, [R3,R2,LSL#2] .text:0001D108 LDR R3, [R1,R2,LSL#2] .text:0001D10C B loc_1D114 .text:0001D110 ; --------------------------------------------------------------------------- .text:0001D110 .text:0001D110 loc_1D110 ; CODE XREF: vfprintf+92Cj .text:0001D110 LDR R3, =loc_1E328 .text:0001D114 .text:0001D114 loc_1D114 ; CODE XREF: vfprintf+940j .text:0001D114 MOV PC, R3 .text:0001D118 ; --------------------------------------------------------------------------- .text:0001D118 MOV R2, #1 .text:0001D11C STR R2, [R11,#var_540] .text:0001D120 LDR R3, [R11,#var_480] .text:0001D124 ADD R2, R3, R2 .text:0001D128 STR R2, [R11,#var_480] .text:0001D12C LDRB R3, [R3,#1] .text:0001D130 SUB R2, R3, #0x20 .text:0001D134 STR R3, [R11,#var_558] .text:0001D138 AND R3, R2, #0xFF .text:0001D13C CMP R3, #0x5A .text:0001D140 BHI loc_1D158 .text:0001D144 LDR R3, =jump_table.174 .text:0001D148 LDR R1, =step3b_jumps.179 .text:0001D14C LDR R2, [R3,R2,LSL#2] .text:0001D150 LDR R3, [R1,R2,LSL#2] .text:0001D154 B loc_1D15C .text:0001D158 ; --------------------------------------------------------------------------- .text:0001D158 .text:0001D158 loc_1D158 ; CODE XREF: vfprintf+974j .text:0001D158 LDR R3, =loc_1E328 .text:0001D15C .text:0001D15C loc_1D15C ; CODE XREF: vfprintf+988j .text:0001D15C MOV PC, R3 .text:0001D160 ; --------------------------------------------------------------------------- .text:0001D160 MOV R3, #1 .text:0001D164 STR R3, [R11,#var_540] .text:0001D168 STR R3, [R11,#var_538] .text:0001D16C LDR R3, [R11,#var_480] .text:0001D170 ADD R2, R3, #1 .text:0001D174 STR R2, [R11,#var_480] .text:0001D178 LDRB R3, [R3,#1] .text:0001D17C SUB R2, R3, #0x20 .text:0001D180 STR R3, [R11,#var_558] .text:0001D184 AND R3, R2, #0xFF .text:0001D188 CMP R3, #0x5A .text:0001D18C BHI loc_1D1A4 .text:0001D190 LDR R3, =jump_table.174 .text:0001D194 LDR R1, =step4_jumps.180 .text:0001D198 LDR R2, [R3,R2,LSL#2] .text:0001D19C LDR R3, [R1,R2,LSL#2] .text:0001D1A0 B loc_1D1A8 .text:0001D1A4 ; --------------------------------------------------------------------------- .text:0001D1A4 .text:0001D1A4 loc_1D1A4 ; CODE XREF: vfprintf+9C0j .text:0001D1A4 LDR R3, =loc_1E328 .text:0001D1A8 .text:0001D1A8 loc_1D1A8 ; CODE XREF: vfprintf+9D4j .text:0001D1A8 MOV PC, R3 .text:0001D1AC ; --------------------------------------------------------------------------- .text:0001D1AC MOV R4, #0 .text:0001D1B0 STR R4, [R11,#var_540] .text:0001D1B4 STR R4, [R11,#var_538] .text:0001D1B8 LDR R3, [R11,#var_480] .text:0001D1BC ADD R2, R3, #1 .text:0001D1C0 STR R2, [R11,#var_480] .text:0001D1C4 LDRB R3, [R3,#1] .text:0001D1C8 SUB R2, R3, #0x20 .text:0001D1CC STR R3, [R11,#var_558] .text:0001D1D0 AND R3, R2, #0xFF .text:0001D1D4 CMP R3, #0x5A .text:0001D1D8 BHI loc_1D1F0 .text:0001D1DC LDR R3, =jump_table.174 .text:0001D1E0 LDR R1, =step4_jumps.180 .text:0001D1E4 LDR R2, [R3,R2,LSL#2] .text:0001D1E8 LDR R3, [R1,R2,LSL#2] .text:0001D1EC B loc_1D1F4 .text:0001D1F0 ; --------------------------------------------------------------------------- .text:0001D1F0 .text:0001D1F0 loc_1D1F0 ; CODE XREF: vfprintf+A0Cj .text:0001D1F0 LDR R3, =loc_1E328 .text:0001D1F4 .text:0001D1F4 loc_1D1F4 ; CODE XREF: vfprintf+A20j .text:0001D1F4 MOV PC, R3 .text:0001D1F8 ; --------------------------------------------------------------------------- .text:0001D1F8 MOV R12, #0 .text:0001D1FC STR R12, [R11,#var_540] .text:0001D200 STR R12, [R11,#var_538] .text:0001D204 LDR R3, [R11,#var_480] .text:0001D208 ADD R2, R3, #1 .text:0001D20C STR R2, [R11,#var_480] .text:0001D210 LDRB R3, [R3,#1] .text:0001D214 SUB R2, R3, #0x20 .text:0001D218 STR R3, [R11,#var_558] .text:0001D21C AND R3, R2, #0xFF .text:0001D220 CMP R3, #0x5A .text:0001D224 BHI loc_1D23C .text:0001D228 LDR R3, =jump_table.174 .text:0001D22C LDR R1, =step4_jumps.180 .text:0001D230 LDR R2, [R3,R2,LSL#2] .text:0001D234 LDR R3, [R1,R2,LSL#2] .text:0001D238 B loc_1D240 .text:0001D23C ; --------------------------------------------------------------------------- .text:0001D23C .text:0001D23C loc_1D23C ; CODE XREF: vfprintf+A58j .text:0001D23C LDR R3, =loc_1E328 .text:0001D240 .text:0001D240 loc_1D240 ; CODE XREF: vfprintf+A6Cj .text:0001D240 MOV PC, R3 .text:0001D244 ; --------------------------------------------------------------------------- .text:0001D244 MOV R0, #1 .text:0001D248 STR R0, [R11,#var_540] .text:0001D24C STR R0, [R11,#var_538] .text:0001D250 LDR R3, [R11,#var_480] .text:0001D254 ADD R2, R3, R0 .text:0001D258 STR R2, [R11,#var_480] .text:0001D25C LDRB R3, [R3,#1] .text:0001D260 SUB R2, R3, #0x20 .text:0001D264 STR R3, [R11,#var_558] .text:0001D268 AND R3, R2, #0xFF .text:0001D26C CMP R3, #0x5A .text:0001D270 BHI loc_1D288 .text:0001D274 LDR R3, =jump_table.174 .text:0001D278 LDR R1, =step4_jumps.180 .text:0001D27C LDR R2, [R3,R2,LSL#2] .text:0001D280 LDR R3, [R1,R2,LSL#2] .text:0001D284 B loc_1D28C .text:0001D288 ; --------------------------------------------------------------------------- .text:0001D288 .text:0001D288 loc_1D288 ; CODE XREF: vfprintf+AA4j .text:0001D288 LDR R3, =loc_1E328 .text:0001D28C .text:0001D28C loc_1D28C ; CODE XREF: vfprintf+AB8j .text:0001D28C MOV PC, R3 .text:0001D290 ; --------------------------------------------------------------------------- .text:0001D290 ADD R2, R10, #0x14 .text:0001D294 LDMIA R2, {R2,R3} .text:0001D298 MOV R1, #0x25 .text:0001D29C CMP R2, R3 .text:0001D2A0 BCC loc_1D2B8 .text:0001D2A4 MOV R0, R10 .text:0001D2A8 BL __overflow .text:0001D2AC CMN R0, #1 .text:0001D2B0 BEQ loc_1E334 .text:0001D2B4 B loc_1D2C0 .text:0001D2B8 ; --------------------------------------------------------------------------- .text:0001D2B8 .text:0001D2B8 loc_1D2B8 ; CODE XREF: vfprintf+AD4j .text:0001D2B8 STRB R1, [R2],#1 .text:0001D2BC STR R2, [R10,#0x14] .text:0001D2C0 .text:0001D2C0 loc_1D2C0 ; CODE XREF: vfprintf+AE8j .text:0001D2C0 ADD R9, R9, #1 .text:0001D2C4 B loc_1E33C .text:0001D2C8 ; --------------------------------------------------------------------------- .text:0001D2C8 LDR R2, [R11,#var_538] .text:0001D2CC MOV R1, #0xA .text:0001D2D0 STR R1, [R11,#var_520] .text:0001D2D4 CMP R2, #0 .text:0001D2D8 BEQ loc_1D344 .text:0001D2DC LDR R3, [R11,#var_4F0] .text:0001D2E0 LDMIA R3!, {R7,R8} .text:0001D2E4 MOV R4, #0 .text:0001D2E8 STR R4, [R11,#var_514] .text:0001D2EC CMP R8, R4 .text:0001D2F0 STR R3, [R11,#var_4F0] .text:0001D2F4 MOVLT R12, #1 .text:0001D2F8 STRLT R12, [R11,#var_514] .text:0001D2FC RSBS R3, R7, #0 .text:0001D300 RSC R4, R8, #0 .text:0001D304 LDR R0, [R11,#var_514] .text:0001D308 SUB R12, R11, #-var_520 .text:0001D30C EOR R1, R0, #1 .text:0001D310 MOV R2, #0 .text:0001D314 RSBS R5, R1, #0 .text:0001D318 RSC R6, R2, #0 .text:0001D31C MOV R2, R6 .text:0001D320 MOV R1, R5 .text:0001D324 AND R1, R1, R7 .text:0001D328 AND R2, R2, R8 .text:0001D32C BIC R3, R3, R5 .text:0001D330 BIC R4, R4, R6 .text:0001D334 ORR R1, R1, R3 .text:0001D338 ORR R2, R2, R4 .text:0001D33C STMIB R12, {R1,R2} .text:0001D340 B loc_1D3B4 .text:0001D344 ; --------------------------------------------------------------------------- .text:0001D344 .text:0001D344 loc_1D344 ; CODE XREF: vfprintf+B0Cj .text:0001D344 LDR R0, [R11,#var_4F0] .text:0001D348 LDR R3, [R0],#4 .text:0001D34C STR R0, [R11,#var_4F0] .text:0001D350 MOV R1, R3,LSR#31 .text:0001D354 STR R1, [R11,#var_514] .text:0001D358 CMP R3, #0 .text:0001D35C RSBLT R3, R3, #0 .text:0001D360 B loc_1D524 .text:0001D364 ; --------------------------------------------------------------------------- .text:0001D364 MOV R2, #0xA .text:0001D368 STR R2, [R11,#var_520] .text:0001D36C B loc_1D384 .text:0001D370 ; --------------------------------------------------------------------------- .text:0001D370 MOV R3, #8 .text:0001D374 STR R3, [R11,#var_520] .text:0001D378 B loc_1D384 .text:0001D37C ; --------------------------------------------------------------------------- .text:0001D37C MOV R4, #0x10 .text:0001D380 STR R4, [R11,#var_520] .text:0001D384 .text:0001D384 loc_1D384 ; CODE XREF: vfprintf+BA0j .text:0001D384 ; vfprintf+BACj .text:0001D384 MOV R12, #0 .text:0001D388 STR R12, [R11,#var_514] .text:0001D38C STR R12, [R11,#var_530] .text:0001D390 LDR R0, [R11,#var_538] .text:0001D394 STR R12, [R11,#var_528] .text:0001D398 CMP R0, R12 .text:0001D39C BEQ loc_1D4CC .text:0001D3A0 LDR R12, [R11,#var_4F0] .text:0001D3A4 LDMIA R12!, {R2,R3} .text:0001D3A8 SUB R4, R11, #-var_520 .text:0001D3AC STMIB R4, {R2,R3} .text:0001D3B0 STR R12, [R11,#var_4F0] .text:0001D3B4 .text:0001D3B4 loc_1D3B4 ; CODE XREF: vfprintf+B74j .text:0001D3B4 LDR R0, [R11,#var_54C] .text:0001D3B8 CMP R0, #0 .text:0001D3BC MOVLT R1, #1 .text:0001D3C0 STRLT R1, [R11,#var_54C] .text:0001D3C4 MOVGE R2, #0x20 .text:0001D3C8 STRGE R2, [R11,#var_554] .text:0001D3CC LDR R3, [R11,#var_54C] .text:0001D3D0 CMP R3, #0 .text:0001D3D4 BNE loc_1D42C .text:0001D3D8 LDR R4, [R11,#var_51C] .text:0001D3DC LDR R12, [R11,#var_518] .text:0001D3E0 ORRS R4, R4, R12 .text:0001D3E4 BNE loc_1D42C .text:0001D3E8 LDR R8, [R11,#var_4FC] .text:0001D3EC LDR R0, [R11,#var_520] .text:0001D3F0 LDR R1, [R11,#var_524] .text:0001D3F4 CMP R0, #8 .text:0001D3F8 MOVNE R3, #0 .text:0001D3FC MOVEQ R3, #1 .text:0001D400 TST R3, R1 .text:0001D404 SUBNE R8, R8, #1 .text:0001D408 LDRNE R2, [R11,#var_4FC] .text:0001D40C MOVNE R3, #0x30 .text:0001D410 STRNEB R3, [R2,#-1] .text:0001D414 B loc_1D4B0 .text:0001D414 ; --------------------------------------------------------------------------- .text:0001D418 off_1D418 DCD jump_table.174 ; DATA XREF: vfprintf+8E0r .text:0001D418 ; vfprintf+930r ... .text:0001D41C off_1D41C DCD step3a_jumps.178 ; DATA XREF: vfprintf+8E4r .text:0001D420 off_1D420 DCD loc_1E328 ; DATA XREF: vfprintf:loc_1D0C0r .text:0001D420 ; vfprintf:loc_1D110r ... .text:0001D424 off_1D424 DCD step4_jumps.180 ; DATA XREF: vfprintf+934r .text:0001D424 ; vfprintf+9C8r ... .text:0001D428 off_1D428 DCD step3b_jumps.179 ; DATA XREF: vfprintf+97Cr .text:0001D42C ; --------------------------------------------------------------------------- .text:0001D42C .text:0001D42C loc_1D42C ; CODE XREF: vfprintf+C08j .text:0001D42C ; vfprintf+C18j .text:0001D42C LDR R4, [R11,#var_558] .text:0001D430 CMP R4, #0x58 .text:0001D434 MOVNE R3, #0 .text:0001D438 MOVEQ R3, #1 .text:0001D43C STR R3, [SP,#0x5CC+var_5CC] .text:0001D440 LDR R2, [R11,#var_4FC] .text:0001D444 LDR R3, [R11,#var_520] .text:0001D448 SUB R12, R11, #-var_520 .text:0001D44C LDMIB R12, {R0,R1} .text:0001D450 BL _itoa .text:0001D454 MOV R8, R0 .text:0001D458 LDR R0, [R11,#var_534] .text:0001D45C LDR R1, [R11,#var_4F8] .text:0001D460 CMP R0, #0 .text:0001D464 CMPNE R1, #0 .text:0001D468 BEQ loc_1D484 .text:0001D46C LDR R1, [R11,#var_4FC] .text:0001D470 LDR R2, [R11,#var_4F8] .text:0001D474 LDR R3, [R11,#var_4F4] .text:0001D478 MOV R0, R8 .text:0001D47C BL group_number .text:0001D480 MOV R8, R0 .text:0001D484 .text:0001D484 loc_1D484 ; CODE XREF: vfprintf+C9Cj .text:0001D484 LDR R2, [R11,#var_520] .text:0001D488 LDR R4, [R11,#var_550] .text:0001D48C CMP R2, #0xA .text:0001D490 MOVNE R3, #0 .text:0001D494 MOVEQ R3, #1 .text:0001D498 TST R4, R3 .text:0001D49C BEQ loc_1D4B0 .text:0001D4A0 LDR R1, [R11,#var_4FC] .text:0001D4A4 MOV R0, R8 .text:0001D4A8 BL _i18n_number_rewrite .text:0001D4AC MOV R8, R0 .text:0001D4B0 .text:0001D4B0 loc_1D4B0 ; CODE XREF: vfprintf+C48j .text:0001D4B0 ; vfprintf+CD0j .text:0001D4B0 LDR R12, [R11,#var_51C] .text:0001D4B4 LDR R0, [R11,#var_518] .text:0001D4B8 ORRS R12, R12, R0 .text:0001D4BC MOVEQ R1, #0 .text:0001D4C0 MOVNE R1, #1 .text:0001D4C4 STR R1, [R11,#var_51C] .text:0001D4C8 B loc_1D6B4 .text:0001D4CC ; --------------------------------------------------------------------------- .text:0001D4CC .text:0001D4CC loc_1D4CC ; CODE XREF: vfprintf+BD0j .text:0001D4CC LDR R2, [R11,#var_544] .text:0001D4D0 CMP R2, #0 .text:0001D4D4 BEQ loc_1D4F0 .text:0001D4D8 LDR R3, [R11,#var_4F0] .text:0001D4DC ADD R3, R3, #4 .text:0001D4E0 STR R3, [R11,#var_4F0] .text:0001D4E4 LDRB R4, [R3,#-4] .text:0001D4E8 STR R4, [R11,#var_51C] .text:0001D4EC B loc_1D528 .text:0001D4F0 ; --------------------------------------------------------------------------- .text:0001D4F0 .text:0001D4F0 loc_1D4F0 ; CODE XREF: vfprintf+D08j .text:0001D4F0 LDR R12, [R11,#var_53C] .text:0001D4F4 CMP R12, #0 .text:0001D4F8 BNE loc_1D510 .text:0001D4FC LDR R0, [R11,#var_4F0] .text:0001D500 LDR R1, [R0],#4 .text:0001D504 STR R1, [R11,#var_51C] .text:0001D508 STR R0, [R11,#var_4F0] .text:0001D50C B loc_1D528 .text:0001D510 ; --------------------------------------------------------------------------- .text:0001D510 .text:0001D510 loc_1D510 ; CODE XREF: vfprintf+D2Cj .text:0001D510 LDR R2, [R11,#var_4F0] .text:0001D514 LDR R3, [R2],#4 .text:0001D518 STR R2, [R11,#var_4F0] .text:0001D51C MOV R3, R3,LSL#16 .text:0001D520 MOV R3, R3,LSR#16 .text:0001D524 .text:0001D524 loc_1D524 ; CODE XREF: vfprintf+B94j .text:0001D524 STR R3, [R11,#var_51C] .text:0001D528 .text:0001D528 loc_1D528 ; CODE XREF: vfprintf+D20j .text:0001D528 ; vfprintf+D40j ... .text:0001D528 LDR R3, [R11,#var_54C] .text:0001D52C CMP R3, #0 .text:0001D530 MOVLT R4, #1 .text:0001D534 STRLT R4, [R11,#var_54C] .text:0001D538 MOVGE R12, #0x20 .text:0001D53C STRGE R12, [R11,#var_554] .text:0001D540 LDR R0, [R11,#var_54C] .text:0001D544 CMP R0, #0 .text:0001D548 BNE loc_1D588 .text:0001D54C LDR R1, [R11,#var_51C] .text:0001D550 CMP R1, #0 .text:0001D554 BNE loc_1D588 .text:0001D558 LDR R8, [R11,#var_4FC] .text:0001D55C LDR R2, [R11,#var_520] .text:0001D560 LDR R4, [R11,#var_524] .text:0001D564 CMP R2, #8 .text:0001D568 MOVNE R3, #0 .text:0001D56C MOVEQ R3, #1 .text:0001D570 TST R3, R4 .text:0001D574 SUBNE R8, R8, #1 .text:0001D578 LDRNE R12, [R11,#var_4FC] .text:0001D57C MOVNE R3, #0x30 .text:0001D580 STRNEB R3, [R12,#-1] .text:0001D584 B loc_1D6B4 .text:0001D588 ; --------------------------------------------------------------------------- .text:0001D588 .text:0001D588 loc_1D588 ; CODE XREF: vfprintf+D7Cj .text:0001D588 ; vfprintf+D88j .text:0001D588 LDR R7, =_itoa_lower_digits .text:0001D58C LDR R4, [R11,#var_51C] .text:0001D590 LDR R3, =_itoa_upper_digits ; "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" .text:0001D594 LDR R5, [R11,#var_4FC] .text:0001D598 LDR R0, [R11,#var_558] .text:0001D59C LDR R1, [R11,#var_520] .text:0001D5A0 CMP R0, #0x58 .text:0001D5A4 MOVEQ R7, R3 .text:0001D5A8 CMP R1, #0xA .text:0001D5AC BEQ loc_1D5D0 .text:0001D5B0 BHI loc_1D5C0 .text:0001D5B4 CMP R1, #8 .text:0001D5B8 BEQ loc_1D614 .text:0001D5BC B loc_1D62C .text:0001D5C0 ; --------------------------------------------------------------------------- .text:0001D5C0 .text:0001D5C0 loc_1D5C0 ; CODE XREF: vfprintf+DE4j .text:0001D5C0 LDR R2, [R11,#var_520] .text:0001D5C4 CMP R2, #0x10 .text:0001D5C8 BEQ loc_1D5FC .text:0001D5CC B loc_1D62C .text:0001D5D0 ; --------------------------------------------------------------------------- .text:0001D5D0 .text:0001D5D0 loc_1D5D0 ; CODE XREF: vfprintf+DE0j .text:0001D5D0 ; vfprintf+E28j .text:0001D5D0 MOV R0, R4 .text:0001D5D4 MOV R1, #0xA .text:0001D5D8 BL __umodsi3 .text:0001D5DC LDRB R3, [R7,R0] .text:0001D5E0 STRB R3, [R5,#-1]! .text:0001D5E4 MOV R0, R4 .text:0001D5E8 MOV R1, #0xA .text:0001D5EC BL __udivsi3 .text:0001D5F0 SUBS R4, R0, #0 .text:0001D5F4 BNE loc_1D5D0 .text:0001D5F8 B loc_1D658 .text:0001D5FC ; --------------------------------------------------------------------------- .text:0001D5FC .text:0001D5FC loc_1D5FC ; CODE XREF: vfprintf+DFCj .text:0001D5FC ; vfprintf+E40j .text:0001D5FC AND R3, R4, #0xF .text:0001D600 LDRB R2, [R7,R3] .text:0001D604 MOVS R4, R4,LSR#4 .text:0001D608 STRB R2, [R5,#-1]! .text:0001D60C BNE loc_1D5FC .text:0001D610 B loc_1D658 .text:0001D614 ; --------------------------------------------------------------------------- .text:0001D614 .text:0001D614 loc_1D614 ; CODE XREF: vfprintf+DECj .text:0001D614 ; vfprintf+E58j .text:0001D614 AND R3, R4, #7 .text:0001D618 LDRB R2, [R7,R3] .text:0001D61C MOVS R4, R4,LSR#3 .text:0001D620 STRB R2, [R5,#-1]! .text:0001D624 BNE loc_1D614 .text:0001D628 B loc_1D658 .text:0001D62C ; --------------------------------------------------------------------------- .text:0001D62C .text:0001D62C loc_1D62C ; CODE XREF: vfprintf+DF0j .text:0001D62C ; vfprintf+E00j ... .text:0001D62C LDR R1, [R11,#var_520] .text:0001D630 MOV R0, R4 .text:0001D634 BL __umodsi3 .text:0001D638 LDRB R3, [R7,R0] .text:0001D63C STRB R3, [R5,#-1]! .text:0001D640 LDR R1, [R11,#var_520] .text:0001D644 MOV R0, R4 .text:0001D648 BL __udivsi3 .text:0001D64C MOV R4, R0 .text:0001D650 CMP R4, #0 .text:0001D654 BNE loc_1D62C .text:0001D658 .text:0001D658 loc_1D658 ; CODE XREF: vfprintf+E2Cj .text:0001D658 ; vfprintf+E44j ... .text:0001D658 LDR R3, [R11,#var_534] .text:0001D65C LDR R4, [R11,#var_4F8] .text:0001D660 MOV R8, R5 .text:0001D664 CMP R3, #0 .text:0001D668 CMPNE R4, #0 .text:0001D66C BEQ loc_1D688 .text:0001D670 LDR R1, [R11,#var_4FC] .text:0001D674 MOV R0, R8 .text:0001D678 LDR R3, [R11,#var_4F4] .text:0001D67C MOV R2, R4 .text:0001D680 BL group_number .text:0001D684 MOV R8, R0 .text:0001D688 .text:0001D688 loc_1D688 ; CODE XREF: vfprintf+EA0j .text:0001D688 LDR R12, [R11,#var_520] .text:0001D68C LDR R0, [R11,#var_550] .text:0001D690 CMP R12, #0xA .text:0001D694 MOVNE R3, #0 .text:0001D698 MOVEQ R3, #1 .text:0001D69C TST R0, R3 .text:0001D6A0 BEQ loc_1D6B4 .text:0001D6A4 LDR R1, [R11,#var_4FC] .text:0001D6A8 MOV R0, R8 .text:0001D6AC BL _i18n_number_rewrite .text:0001D6B0 MOV R8, R0 .text:0001D6B4 .text:0001D6B4 loc_1D6B4 ; CODE XREF: vfprintf+CFCj .text:0001D6B4 ; vfprintf+DB8j ... .text:0001D6B4 LDR R1, [R11,#var_4FC] .text:0001D6B8 LDR R2, [R11,#var_54C] .text:0001D6BC RSB R3, R8, R1 .text:0001D6C0 CMP R2, R3 .text:0001D6C4 BGT loc_1D6EC .text:0001D6C8 LDR R3, [R11,#var_524] .text:0001D6CC LDR R4, [R11,#var_51C] .text:0001D6D0 CMP R3, #0 .text:0001D6D4 CMPNE R4, #0 .text:0001D6D8 BEQ loc_1D6EC .text:0001D6DC LDR R12, [R11,#var_520] .text:0001D6E0 CMP R12, #8 .text:0001D6E4 MOVEQ R3, #0x30 .text:0001D6E8 STREQB R3, [R8,#-1]! .text:0001D6EC .text:0001D6EC loc_1D6EC ; CODE XREF: vfprintf+EF8j .text:0001D6EC ; vfprintf+F0Cj .text:0001D6EC LDR R0, [R11,#var_4FC] .text:0001D6F0 LDR R1, [R11,#var_54C] .text:0001D6F4 LDR R2, [R11,#var_52C] .text:0001D6F8 RSB R3, R8, R0 .text:0001D6FC RSB R1, R3, R1 .text:0001D700 CMP R1, #0 .text:0001D704 MOVLT R1, #0 .text:0001D708 CMP R2, #0 .text:0001D70C MOV R4, R3 .text:0001D710 STR R1, [R11,#var_54C] .text:0001D714 BNE loc_1D90C .text:0001D718 LDR R12, [R11,#var_548] .text:0001D71C LDR R0, [R11,#var_524] .text:0001D720 ADD R3, R4, R1 .text:0001D724 LDR R1, [R11,#var_51C] .text:0001D728 RSB R12, R3, R12 .text:0001D72C CMP R0, #0 .text:0001D730 CMPNE R1, #0 .text:0001D734 STR R12, [R11,#var_548] .text:0001D738 BEQ loc_1D750 .text:0001D73C LDR R2, [R11,#var_520] .text:0001D740 SUB R3, R12, #2 .text:0001D744 CMP R2, #0x10 .text:0001D748 MOVEQ R12, R3 .text:0001D74C STR R12, [R11,#var_548] .text:0001D750 .text:0001D750 loc_1D750 ; CODE XREF: vfprintf+F6Cj .text:0001D750 LDR R3, [R11,#var_514] .text:0001D754 LDR R12, [R11,#var_530] .text:0001D758 ORRS R3, R3, R12 .text:0001D75C BNE loc_1D76C .text:0001D760 LDR R0, [R11,#var_528] .text:0001D764 CMP R0, #0 .text:0001D768 BEQ loc_1D778 .text:0001D76C .text:0001D76C loc_1D76C ; CODE XREF: vfprintf+F90j .text:0001D76C LDR R1, [R11,#var_548] .text:0001D770 SUB R1, R1, #1 .text:0001D774 STR R1, [R11,#var_548] .text:0001D778 .text:0001D778 loc_1D778 ; CODE XREF: vfprintf+F9Cj .text:0001D778 LDR R2, [R11,#var_554] .text:0001D77C CMP R2, #0x20 .text:0001D780 BNE loc_1D7AC .text:0001D784 LDR R3, [R11,#var_548] .text:0001D788 CMP R3, #0 .text:0001D78C BLE loc_1D7A4 .text:0001D790 MOV R0, R10 .text:0001D794 MOV R1, R2 .text:0001D798 MOV R2, R3 .text:0001D79C BL _IO_padn .text:0001D7A0 ADD R9, R9, R0 .text:0001D7A4 .text:0001D7A4 loc_1D7A4 ; CODE XREF: vfprintf+FC0j .text:0001D7A4 MOV R12, #0 .text:0001D7A8 STR R12, [R11,#var_548] .text:0001D7AC .text:0001D7AC loc_1D7AC ; CODE XREF: vfprintf+FB4j .text:0001D7AC LDR R0, [R11,#var_514] .text:0001D7B0 CMP R0, #0 .text:0001D7B4 BEQ loc_1D7E0 .text:0001D7B8 ADD R2, R10, #0x14 .text:0001D7BC LDMIA R2, {R2,R3} .text:0001D7C0 MOV R1, #0x2D .text:0001D7C4 .text:0001D7C4 loc_1D7C4 ; CODE XREF: vfprintf+1028j .text:0001D7C4 ; vfprintf+1044j .text:0001D7C4 CMP R2, R3 .text:0001D7C8 BCC loc_1D814 .text:0001D7CC MOV R0, R10 .text:0001D7D0 BL __overflow .text:0001D7D4 CMN R0, #1 .text:0001D7D8 BEQ loc_1E334 .text:0001D7DC B loc_1D81C .text:0001D7E0 ; --------------------------------------------------------------------------- .text:0001D7E0 .text:0001D7E0 loc_1D7E0 ; CODE XREF: vfprintf+FE8j .text:0001D7E0 LDR R1, [R11,#var_530] .text:0001D7E4 CMP R1, #0 .text:0001D7E8 ADDNE R2, R10, #0x14 .text:0001D7EC LDMNEIA R2, {R2,R3} .text:0001D7F0 MOVNE R1, #0x2B .text:0001D7F4 BNE loc_1D7C4 .text:0001D7F8 LDR R2, [R11,#var_528] .text:0001D7FC CMP R2, #0 .text:0001D800 BEQ loc_1D820 .text:0001D804 ADD R2, R10, #0x14 .text:0001D808 LDMIA R2, {R2,R3} .text:0001D80C MOV R1, #0x20 .text:0001D810 B loc_1D7C4 .text:0001D814 ; --------------------------------------------------------------------------- .text:0001D814 .text:0001D814 loc_1D814 ; CODE XREF: vfprintf+FFCj .text:0001D814 STRB R1, [R2],#1 .text:0001D818 STR R2, [R10,#0x14] .text:0001D81C .text:0001D81C loc_1D81C ; CODE XREF: vfprintf+1010j .text:0001D81C ADD R9, R9, #1 .text:0001D820 .text:0001D820 loc_1D820 ; CODE XREF: vfprintf+1034j .text:0001D820 LDR R3, [R11,#var_524] .text:0001D824 LDR R12, [R11,#var_51C] .text:0001D828 CMP R3, #0 .text:0001D82C CMPNE R12, #0 .text:0001D830 BEQ loc_1D8B0 .text:0001D834 LDR R0, [R11,#var_520] .text:0001D838 CMP R0, #0x10 .text:0001D83C BNE loc_1D8B0 .text:0001D840 ADD R2, R10, #0x14 .text:0001D844 LDMIA R2, {R2,R3} .text:0001D848 MOV R1, #0x30 .text:0001D84C CMP R2, R3 .text:0001D850 BCC loc_1D868 .text:0001D854 MOV R0, R10 .text:0001D858 BL __overflow .text:0001D85C CMN R0, #1 .text:0001D860 BEQ loc_1E334 .text:0001D864 B loc_1D870 .text:0001D868 ; --------------------------------------------------------------------------- .text:0001D868 .text:0001D868 loc_1D868 ; CODE XREF: vfprintf+1084j .text:0001D868 STRB R1, [R2],#1 .text:0001D86C STR R2, [R10,#0x14] .text:0001D870 .text:0001D870 loc_1D870 ; CODE XREF: vfprintf+1098j .text:0001D870 ADD R9, R9, #1 .text:0001D874 ADD R2, R10, #0x14 .text:0001D878 LDMIA R2, {R2,R3} .text:0001D87C CMP R2, R3 .text:0001D880 BCC loc_1D898 .text:0001D884 LDR R1, [R11,#var_558] .text:0001D888 MOV R0, R10 .text:0001D88C BL __overflow .text:0001D890 CMN R0, #1 .text:0001D894 B loc_1D8A8 .text:0001D898 ; --------------------------------------------------------------------------- .text:0001D898 .text:0001D898 loc_1D898 ; CODE XREF: vfprintf+10B4j .text:0001D898 LDR R1, [R11,#var_558] .text:0001D89C STRB R1, [R2],#1 .text:0001D8A0 CMN R1, #1 .text:0001D8A4 STR R2, [R10,#0x14] .text:0001D8A8 .text:0001D8A8 loc_1D8A8 ; CODE XREF: vfprintf+10C8j .text:0001D8A8 BEQ loc_1E334 .text:0001D8AC ADD R9, R9, #1 .text:0001D8B0 .text:0001D8B0 loc_1D8B0 ; CODE XREF: vfprintf+1064j .text:0001D8B0 ; vfprintf+1070j .text:0001D8B0 LDR R2, [R11,#var_548] .text:0001D8B4 LDR R3, [R11,#var_54C] .text:0001D8B8 ADD R2, R2, R3 .text:0001D8BC CMP R2, #0 .text:0001D8C0 STR R2, [R11,#var_548] .text:0001D8C4 BLE loc_1D8D8 .text:0001D8C8 MOV R0, R10 .text:0001D8CC MOV R1, #0x30 .text:0001D8D0 BL _IO_padn .text:0001D8D4 ADD R9, R9, R0 .text:0001D8D8 .text:0001D8D8 loc_1D8D8 ; CODE XREF: vfprintf+10F8j .text:0001D8D8 MOV R0, R10 .text:0001D8DC LDRB R3, [R10,#0x46] .text:0001D8E0 MOV R1, R8 .text:0001D8E4 MOV R3, R3,LSL#24 .text:0001D8E8 ADD R3, R10, R3,ASR#24 .text:0001D8EC LDR R12, [R3,#0x94] .text:0001D8F0 MOV R2, R4 .text:0001D8F4 MOV LR, PC .text:0001D8F8 LDR PC, [R12,#0x1C] .text:0001D8FC CMP R0, R4 .text:0001D900 BNE loc_1E334 .text:0001D904 ADD R9, R9, R4 .text:0001D908 B loc_1E33C .text:0001D90C ; --------------------------------------------------------------------------- .text:0001D90C .text:0001D90C loc_1D90C ; CODE XREF: vfprintf+F48j .text:0001D90C LDR R12, [R11,#var_514] .text:0001D910 CMP R12, #0 .text:0001D914 BEQ loc_1D964 .text:0001D918 ADD R2, R10, #0x14 .text:0001D91C LDMIA R2, {R2,R3} .text:0001D920 MOV R1, #0x2D .text:0001D924 CMP R2, R3 .text:0001D928 BCC loc_1D940 .text:0001D92C MOV R0, R10 .text:0001D930 BL __overflow .text:0001D934 CMN R0, #1 .text:0001D938 BEQ loc_1E334 .text:0001D93C B loc_1D948 .text:0001D940 ; --------------------------------------------------------------------------- .text:0001D940 .text:0001D940 loc_1D940 ; CODE XREF: vfprintf+115Cj .text:0001D940 STRB R1, [R2],#1 .text:0001D944 STR R2, [R10,#0x14] .text:0001D948 .text:0001D948 loc_1D948 ; CODE XREF: vfprintf+1170j .text:0001D948 ADD R9, R9, #1 .text:0001D94C LDR R0, [R11,#var_548] .text:0001D950 SUB R0, R0, #1 .text:0001D954 STR R0, [R11,#var_548] .text:0001D958 B loc_1DA00 .text:0001D958 ; --------------------------------------------------------------------------- .text:0001D95C off_1D95C DCD _itoa_lower_digits ; DATA XREF: vfprintf:loc_1D588r .text:0001D960 off_1D960 DCD _itoa_upper_digits ; DATA XREF: vfprintf+DC4r .text:0001D960 ; "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" .text:0001D964 ; --------------------------------------------------------------------------- .text:0001D964 .text:0001D964 loc_1D964 ; CODE XREF: vfprintf+1148j .text:0001D964 LDR R1, [R11,#var_530] .text:0001D968 CMP R1, #0 .text:0001D96C BEQ loc_1D9B4 .text:0001D970 ADD R2, R10, #0x14 .text:0001D974 LDMIA R2, {R2,R3} .text:0001D978 MOV R1, #0x2B .text:0001D97C CMP R2, R3 .text:0001D980 BCC loc_1D998 .text:0001D984 MOV R0, R10 .text:0001D988 BL __overflow .text:0001D98C CMN R0, #1 .text:0001D990 BEQ loc_1E334 .text:0001D994 B loc_1D9A0 .text:0001D998 ; --------------------------------------------------------------------------- .text:0001D998 .text:0001D998 loc_1D998 ; CODE XREF: vfprintf+11B4j .text:0001D998 STRB R1, [R2],#1 .text:0001D99C STR R2, [R10,#0x14] .text:0001D9A0 .text:0001D9A0 loc_1D9A0 ; CODE XREF: vfprintf+11C8j .text:0001D9A0 ADD R9, R9, #1 .text:0001D9A4 LDR R2, [R11,#var_548] .text:0001D9A8 SUB R2, R2, #1 .text:0001D9AC STR R2, [R11,#var_548] .text:0001D9B0 B loc_1DA00 .text:0001D9B4 ; --------------------------------------------------------------------------- .text:0001D9B4 .text:0001D9B4 loc_1D9B4 ; CODE XREF: vfprintf+11A0j .text:0001D9B4 LDR R3, [R11,#var_528] .text:0001D9B8 CMP R3, #0 .text:0001D9BC BEQ loc_1DA00 .text:0001D9C0 ADD R2, R10, #0x14 .text:0001D9C4 LDMIA R2, {R2,R3} .text:0001D9C8 MOV R1, #0x20 .text:0001D9CC CMP R2, R3 .text:0001D9D0 BCC loc_1D9E8 .text:0001D9D4 MOV R0, R10 .text:0001D9D8 BL __overflow .text:0001D9DC CMN R0, #1 .text:0001D9E0 BEQ loc_1E334 .text:0001D9E4 B loc_1D9F0 .text:0001D9E8 ; --------------------------------------------------------------------------- .text:0001D9E8 .text:0001D9E8 loc_1D9E8 ; CODE XREF: vfprintf+1204j .text:0001D9E8 STRB R1, [R2],#1 .text:0001D9EC STR R2, [R10,#0x14] .text:0001D9F0 .text:0001D9F0 loc_1D9F0 ; CODE XREF: vfprintf+1218j .text:0001D9F0 ADD R9, R9, #1 .text:0001D9F4 LDR R12, [R11,#var_548] .text:0001D9F8 SUB R12, R12, #1 .text:0001D9FC STR R12, [R11,#var_548] .text:0001DA00 .text:0001DA00 loc_1DA00 ; CODE XREF: vfprintf+118Cj .text:0001DA00 ; vfprintf+11E4j ... .text:0001DA00 LDR R0, [R11,#var_524] .text:0001DA04 LDR R1, [R11,#var_51C] .text:0001DA08 CMP R0, #0 .text:0001DA0C CMPNE R1, #0 .text:0001DA10 BEQ loc_1DA9C .text:0001DA14 LDR R2, [R11,#var_520] .text:0001DA18 CMP R2, #0x10 .text:0001DA1C BNE loc_1DA9C .text:0001DA20 ADD R2, R10, #0x14 .text:0001DA24 LDMIA R2, {R2,R3} .text:0001DA28 MOV R1, #0x30 .text:0001DA2C CMP R2, R3 .text:0001DA30 BCC loc_1DA48 .text:0001DA34 MOV R0, R10 .text:0001DA38 BL __overflow .text:0001DA3C CMN R0, #1 .text:0001DA40 BEQ loc_1E334 .text:0001DA44 B loc_1DA50 .text:0001DA48 ; --------------------------------------------------------------------------- .text:0001DA48 .text:0001DA48 loc_1DA48 ; CODE XREF: vfprintf+1264j .text:0001DA48 STRB R1, [R2],#1 .text:0001DA4C STR R2, [R10,#0x14] .text:0001DA50 .text:0001DA50 loc_1DA50 ; CODE XREF: vfprintf+1278j .text:0001DA50 ADD R9, R9, #1 .text:0001DA54 ADD R2, R10, #0x14 .text:0001DA58 LDMIA R2, {R2,R3} .text:0001DA5C CMP R2, R3 .text:0001DA60 BCC loc_1DA78 .text:0001DA64 LDR R1, [R11,#var_558] .text:0001DA68 MOV R0, R10 .text:0001DA6C BL __overflow .text:0001DA70 CMN R0, #1 .text:0001DA74 B loc_1DA88 .text:0001DA78 ; --------------------------------------------------------------------------- .text:0001DA78 .text:0001DA78 loc_1DA78 ; CODE XREF: vfprintf+1294j .text:0001DA78 LDR R3, [R11,#var_558] .text:0001DA7C STRB R3, [R2],#1 .text:0001DA80 CMN R3, #1 .text:0001DA84 STR R2, [R10,#0x14] .text:0001DA88 .text:0001DA88 loc_1DA88 ; CODE XREF: vfprintf+12A8j .text:0001DA88 BEQ loc_1E334 .text:0001DA8C ADD R9, R9, #1 .text:0001DA90 LDR R12, [R11,#var_548] .text:0001DA94 SUB R12, R12, #2 .text:0001DA98 STR R12, [R11,#var_548] .text:0001DA9C .text:0001DA9C loc_1DA9C ; CODE XREF: vfprintf+1244j .text:0001DA9C ; vfprintf+1250j .text:0001DA9C LDR R0, [R11,#var_54C] .text:0001DAA0 LDR R1, [R11,#var_548] .text:0001DAA4 ADD R3, R4, R0 .text:0001DAA8 RSB R1, R3, R1 .text:0001DAAC CMP R0, #0 .text:0001DAB0 STR R1, [R11,#var_548] .text:0001DAB4 BLE loc_1DACC .text:0001DAB8 MOV R0, R10 .text:0001DABC LDR R2, [R11,#var_54C] .text:0001DAC0 MOV R1, #0x30 .text:0001DAC4 BL _IO_padn .text:0001DAC8 ADD R9, R9, R0 .text:0001DACC .text:0001DACC loc_1DACC ; CODE XREF: vfprintf+12E8j .text:0001DACC MOV R0, R10 .text:0001DAD0 LDRB R3, [R10,#0x46] .text:0001DAD4 MOV R1, R8 .text:0001DAD8 MOV R3, R3,LSL#24 .text:0001DADC ADD R3, R10, R3,ASR#24 .text:0001DAE0 LDR R12, [R3,#0x94] .text:0001DAE4 MOV R2, R4 .text:0001DAE8 MOV LR, PC .text:0001DAEC LDR PC, [R12,#0x1C] .text:0001DAF0 CMP R0, R4 .text:0001DAF4 BNE loc_1E334 .text:0001DAF8 ADD R9, R9, R0 .text:0001DAFC LDR R2, [R11,#var_548] .text:0001DB00 CMP R2, #0 .text:0001DB04 BLE loc_1E33C .text:0001DB08 MOV R0, R10 .text:0001DB0C B loc_1DEDC .text:0001DB10 ; --------------------------------------------------------------------------- .text:0001DB10 SUB R0, R11, #-var_420 .text:0001DB14 SUB R0, R0, #8 .text:0001DB18 SUB R0, R0, #0xC .text:0001DB1C MOV R1, #0 .text:0001DB20 MOV R2, #0x14 .text:0001DB24 BL memset .text:0001DB28 LDR R3, [R11,#var_54C] .text:0001DB2C STR R3, [R11,#var_434] .text:0001DB30 LDR R4, [R11,#var_548] .text:0001DB34 STR R4, [R11,#var_430] .text:0001DB38 LDR R12, [R11,#var_558] .text:0001DB3C STR R12, [R11,#var_42C] .text:0001DB40 LDR R0, [R11,#var_554] .text:0001DB44 STR R0, [R11,#var_424] .text:0001DB48 LDR R1, [R11,#var_538] .text:0001DB4C LDR R2, [R11,#var_53C] .text:0001DB50 LDRB R3, [R11,#var_428] .text:0001DB54 LDR R4, [R11,#var_540] .text:0001DB58 LDR R12, [R11,#var_524] .text:0001DB5C LDR R0, [R11,#var_528] .text:0001DB60 CMP R1, #0 .text:0001DB64 LDR R1, [R11,#var_52C] .text:0001DB68 ORRNE R3, R3, #1 .text:0001DB6C ANDEQ R3, R3, #0xFE .text:0001DB70 CMP R2, #0 .text:0001DB74 ORRNE R3, R3, #2 .text:0001DB78 ANDEQ R3, R3, #0xFD .text:0001DB7C AND R2, R4, #1 .text:0001DB80 CMP R2, #0 .text:0001DB84 ORRNE R3, R3, #4 .text:0001DB88 ANDEQ R3, R3, #0xFB .text:0001DB8C CMP R12, #0 .text:0001DB90 ORRNE R3, R3, #8 .text:0001DB94 ANDEQ R3, R3, #0xF7 .text:0001DB98 CMP R0, #0 .text:0001DB9C ORRNE R3, R3, #0x10 .text:0001DBA0 ANDEQ R3, R3, #0xEF .text:0001DBA4 LDR R2, [R11,#var_530] .text:0001DBA8 CMP R1, #0 .text:0001DBAC LDR R4, [R11,#var_534] .text:0001DBB0 ORRNE R3, R3, #0x20 .text:0001DBB4 ANDEQ R3, R3, #0xDF .text:0001DBB8 LDR R12, [R11,#var_538] .text:0001DBBC CMP R2, #0 .text:0001DBC0 ORRNE R3, R3, #0x40 .text:0001DBC4 ANDEQ R3, R3, #0xBF .text:0001DBC8 CMP R4, #0 .text:0001DBCC ORRNE R3, R3, #0x80 .text:0001DBD0 ANDEQ R3, R3, #0x7F .text:0001DBD4 CMP R12, #0 .text:0001DBD8 STRB R3, [R11,#var_428] .text:0001DBDC BEQ loc_1DBF4 .text:0001DBE0 LDR R0, [R11,#var_4F0] .text:0001DBE4 LDMIA R0!, {R1,R2} .text:0001DBE8 SUB R3, R11, #-var_480 .text:0001DBEC STR R0, [R11,#var_4F0] .text:0001DBF0 B loc_1DC04 .text:0001DBF4 ; --------------------------------------------------------------------------- .text:0001DBF4 .text:0001DBF4 loc_1DBF4 ; CODE XREF: vfprintf+1410j .text:0001DBF4 LDR R4, [R11,#var_4F0] .text:0001DBF8 LDMIA R4!, {R1,R2} .text:0001DBFC SUB R3, R11, #-var_480 .text:0001DC00 STR R4, [R11,#var_4F0] .text:0001DC04 .text:0001DC04 loc_1DC04 ; CODE XREF: vfprintf+1424j .text:0001DC04 SUB R3, R3, #8 .text:0001DC08 SUB R3, R3, #4 .text:0001DC0C STMIA R3, {R1,R2} .text:0001DC10 SUB R3, R11, #-var_480 .text:0001DC14 SUB R3, R3, #8 .text:0001DC18 SUB R3, R3, #4 .text:0001DC1C MOV R0, R10 .text:0001DC20 SUB R1, R11, #-var_420 .text:0001DC24 SUB R1, R1, #8 .text:0001DC28 STR R3, [R11,#var_490] .text:0001DC2C SUB R1, R1, #0xC .text:0001DC30 SUB R2, R11, #-var_480 .text:0001DC34 SUB R2, R2, #8 .text:0001DC38 SUB R2, R2, #8 .text:0001DC3C BL __printf_fp .text:0001DC40 .text:0001DC40 loc_1DC40 ; CODE XREF: vfprintf+15A8j .text:0001DC40 CMP R0, #0 .text:0001DC44 BLT loc_1E334 .text:0001DC48 ADD R9, R9, R0 .text:0001DC4C B loc_1E33C .text:0001DC50 ; --------------------------------------------------------------------------- .text:0001DC50 SUB R4, R11, #-var_440 .text:0001DC54 SUB R4, R4, #8 .text:0001DC58 MOV R0, R4 .text:0001DC5C MOV R1, #0 .text:0001DC60 MOV R2, #0x14 .text:0001DC64 BL memset .text:0001DC68 LDR R12, [R11,#var_54C] .text:0001DC6C STR R12, [R11,#var_448] .text:0001DC70 LDR R0, [R11,#var_548] .text:0001DC74 STR R0, [R11,#var_444] .text:0001DC78 LDR R1, [R11,#var_558] .text:0001DC7C STR R1, [R11,#var_440] .text:0001DC80 LDR R2, [R11,#var_554] .text:0001DC84 STR R2, [R11,#var_438] .text:0001DC88 LDRB R3, [R11,#var_43C] .text:0001DC8C LDR R12, [R11,#var_538] .text:0001DC90 LDR R0, [R11,#var_53C] .text:0001DC94 LDR R1, [R11,#var_540] .text:0001DC98 CMP R12, #0 .text:0001DC9C ORRNE R3, R3, #1 .text:0001DCA0 ANDEQ R3, R3, #0xFE .text:0001DCA4 CMP R0, #0 .text:0001DCA8 ORRNE R3, R3, #2 .text:0001DCAC ANDEQ R3, R3, #0xFD .text:0001DCB0 AND R2, R1, #1 .text:0001DCB4 CMP R2, #0 .text:0001DCB8 LDR R2, [R11,#var_524] .text:0001DCBC LDR R12, [R11,#var_528] .text:0001DCC0 LDR R0, [R11,#var_52C] .text:0001DCC4 ORRNE R3, R3, #4 .text:0001DCC8 ANDEQ R3, R3, #0xFB .text:0001DCCC LDR R1, [R11,#var_530] .text:0001DCD0 CMP R2, #0 .text:0001DCD4 ORRNE R3, R3, #8 .text:0001DCD8 ANDEQ R3, R3, #0xF7 .text:0001DCDC CMP R12, #0 .text:0001DCE0 ORRNE R3, R3, #0x10 .text:0001DCE4 ANDEQ R3, R3, #0xEF .text:0001DCE8 CMP R0, #0 .text:0001DCEC ORRNE R3, R3, #0x20 .text:0001DCF0 ANDEQ R3, R3, #0xDF .text:0001DCF4 CMP R1, #0 .text:0001DCF8 ORRNE R3, R3, #0x40 .text:0001DCFC ANDEQ R3, R3, #0xBF .text:0001DD00 LDR R2, [R11,#var_534] .text:0001DD04 MOV R1, R4 .text:0001DD08 LDR R12, [R11,#var_538] .text:0001DD0C CMP R2, #0 .text:0001DD10 ORRNE R3, R3, #0x80 .text:0001DD14 ANDEQ R3, R3, #0x7F .text:0001DD18 CMP R12, #0 .text:0001DD1C STRB R3, [R11,#var_43C] .text:0001DD20 BEQ loc_1DD3C .text:0001DD24 LDR R0, [R11,#var_4F0] .text:0001DD28 SUB R2, R11, #-var_480 .text:0001DD2C LDMIA R0!, {R3,R4} .text:0001DD30 SUB R2, R2, #8 .text:0001DD34 STR R0, [R11,#var_4F0] .text:0001DD38 B loc_1DD50 .text:0001DD3C ; --------------------------------------------------------------------------- .text:0001DD3C .text:0001DD3C loc_1DD3C ; CODE XREF: vfprintf+1554j .text:0001DD3C LDR R12, [R11,#var_4F0] .text:0001DD40 SUB R2, R11, #-var_480 .text:0001DD44 LDMIA R12!, {R3,R4} .text:0001DD48 SUB R2, R2, #8 .text:0001DD4C STR R12, [R11,#var_4F0] .text:0001DD50 .text:0001DD50 loc_1DD50 ; CODE XREF: vfprintf+156Cj .text:0001DD50 SUB R2, R2, #4 .text:0001DD54 MOV R0, R2 .text:0001DD58 STMIA R2, {R3,R4} .text:0001DD5C STR R0, [R11,#var_494] .text:0001DD60 MOV R0, R10 .text:0001DD64 SUB R2, R11, #-var_480 .text:0001DD68 SUB R2, R2, #8 .text:0001DD6C SUB R2, R2, #0xC .text:0001DD70 BL __printf_fphex .text:0001DD74 B loc_1DC40 .text:0001DD78 ; --------------------------------------------------------------------------- .text:0001DD78 LDR R0, [R11,#var_4F0] .text:0001DD7C LDR R2, [R0],#4 .text:0001DD80 CMP R2, #0 .text:0001DD84 STR R0, [R11,#var_4F0] .text:0001DD88 BEQ loc_1DDB8 .text:0001DD8C MOV R1, #0x10 .text:0001DD90 STR R1, [R11,#var_520] .text:0001DD94 STR R2, [R11,#var_51C] .text:0001DD98 MOV R2, #0 .text:0001DD9C STR R2, [R11,#var_514] .text:0001DDA0 MOV R3, #1 .text:0001DDA4 STR R3, [R11,#var_524] .text:0001DDA8 STR R2, [R11,#var_534] .text:0001DDAC MOV R4, #0x78 .text:0001DDB0 STR R4, [R11,#var_558] .text:0001DDB4 B loc_1D528 .text:0001DDB8 ; --------------------------------------------------------------------------- .text:0001DDB8 .text:0001DDB8 loc_1DDB8 ; CODE XREF: vfprintf+15BCj .text:0001DDB8 STR R2, [R11,#var_540] .text:0001DDBC LDR R12, [R11,#var_54C] .text:0001DDC0 LDR R8, =aNil ; "(nil)" .text:0001DDC4 MOV R0, R12 .text:0001DDC8 CMP R0, #4 .text:0001DDCC MOVLE R12, #5 .text:0001DDD0 STR R12, [R11,#var_54C] .text:0001DDD4 B loc_1DFEC .text:0001DDD8 ; --------------------------------------------------------------------------- .text:0001DDD8 LDR R1, [R11,#var_538] .text:0001DDDC CMP R1, #0 .text:0001DDE0 BNE loc_1CFB0 .text:0001DDE4 LDR R2, [R11,#var_544] .text:0001DDE8 CMP R2, #0 .text:0001DDEC BNE loc_1CFCC .text:0001DDF0 LDR R3, [R11,#var_53C] .text:0001DDF4 CMP R3, #0 .text:0001DDF8 BEQ loc_1CFE0 .text:0001DDFC LDR R4, [R11,#var_4F0] .text:0001DE00 LDR R2, [R4],#4 .text:0001DE04 STR R4, [R11,#var_4F0] .text:0001DE08 STRB R9, [R2] .text:0001DE0C MOV R3, R9,ASR#8 .text:0001DE10 STRB R3, [R2,#1] .text:0001DE14 B loc_1E33C .text:0001DE18 ; --------------------------------------------------------------------------- .text:0001DE18 SUB R1, R11, #-var_410 .text:0001DE1C LDR R0, [R11,#var_508] .text:0001DE20 MOV R2, #0x3E8 .text:0001DE24 BL strerror_r .text:0001DE28 MOV R8, R0 .text:0001DE2C MOV R12, #0 .text:0001DE30 STR R12, [R11,#var_540] .text:0001DE34 B loc_1DFEC .text:0001DE38 ; --------------------------------------------------------------------------- .text:0001DE38 LDR R0, [R11,#var_540] .text:0001DE3C CMP R0, #0 .text:0001DE40 BNE loc_1DEEC .text:0001DE44 LDR R1, [R11,#var_548] .text:0001DE48 LDR R2, [R11,#var_52C] .text:0001DE4C SUB R1, R1, #1 .text:0001DE50 CMP R2, #0 .text:0001DE54 STR R1, [R11,#var_548] .text:0001DE58 BNE loc_1DE78 .text:0001DE5C CMP R1, #0 .text:0001DE60 BLE loc_1DE78 .text:0001DE64 MOV R0, R10 .text:0001DE68 LDR R2, [R11,#var_548] .text:0001DE6C MOV R1, #0x20 .text:0001DE70 BL _IO_padn .text:0001DE74 ADD R9, R9, R0 .text:0001DE78 .text:0001DE78 loc_1DE78 ; CODE XREF: vfprintf+168Cj .text:0001DE78 ; vfprintf+1694j .text:0001DE78 LDR R2, [R10,#0x14] .text:0001DE7C LDR R4, [R11,#var_4F0] .text:0001DE80 LDR R3, [R10,#0x18] .text:0001DE84 ADD R4, R4, #4 .text:0001DE88 STR R4, [R11,#var_4F0] .text:0001DE8C CMP R2, R3 .text:0001DE90 LDRB R1, [R4,#-4] .text:0001DE94 BCC loc_1DEA8 .text:0001DE98 MOV R0, R10 .text:0001DE9C BL __overflow .text:0001DEA0 CMN R0, #1 .text:0001DEA4 B loc_1DEB4 .text:0001DEA8 ; --------------------------------------------------------------------------- .text:0001DEA8 .text:0001DEA8 loc_1DEA8 ; CODE XREF: vfprintf+16C8j .text:0001DEA8 STRB R1, [R2],#1 .text:0001DEAC CMN R1, #1 .text:0001DEB0 STR R2, [R10,#0x14] .text:0001DEB4 .text:0001DEB4 loc_1DEB4 ; CODE XREF: vfprintf+16D8j .text:0001DEB4 BEQ loc_1E334 .text:0001DEB8 ADD R9, R9, #1 .text:0001DEBC LDR R12, [R11,#var_52C] .text:0001DEC0 CMP R12, #0 .text:0001DEC4 BEQ loc_1E33C .text:0001DEC8 LDR R0, [R11,#var_548] .text:0001DECC CMP R0, #0 .text:0001DED0 BLE loc_1E33C .text:0001DED4 MOV R0, R10 .text:0001DED8 LDR R2, [R11,#var_548] .text:0001DEDC .text:0001DEDC loc_1DEDC ; CODE XREF: vfprintf+1340j .text:0001DEDC MOV R1, #0x20 .text:0001DEE0 BL _IO_padn .text:0001DEE4 ADD R9, R9, R0 .text:0001DEE8 B loc_1E33C .text:0001DEEC ; --------------------------------------------------------------------------- .text:0001DEEC .text:0001DEEC loc_1DEEC ; CODE XREF: vfprintf+1674j .text:0001DEEC MOV R7, SP .text:0001DEF0 BL __ctype_get_mb_cur_max .text:0001DEF4 BIC R0, R0, #0xE0000000 .text:0001DEF8 ADD R0, R0, #3 .text:0001DEFC BIC R0, R0, #0xC0000003 .text:0001DF00 RSB SP, R0, SP .text:0001DF04 SUB R4, R11, #-var_490 .text:0001DF08 SUB R4, R4, #8 .text:0001DF0C SUB R4, R4, #4 .text:0001DF10 MOV R0, R4 .text:0001DF14 MOV R1, #0 .text:0001DF18 MOV R2, #8 .text:0001DF1C ADD R5, SP, #0x5CC+var_5C8 .text:0001DF20 BL memset .text:0001DF24 LDR R2, [R11,#var_4F0] .text:0001DF28 LDR R1, [R2],#4 .text:0001DF2C STR R2, [R11,#var_4F0] .text:0001DF30 MOV R0, R5 .text:0001DF34 MOV R2, R4 .text:0001DF38 BL wcrtomb .text:0001DF3C MOV R4, R0 .text:0001DF40 CMN R4, #1 .text:0001DF44 BEQ loc_1E414 .text:0001DF48 LDR R3, [R11,#var_548] .text:0001DF4C LDR R12, [R11,#var_52C] .text:0001DF50 RSB R3, R4, R3 .text:0001DF54 CMP R12, #0 .text:0001DF58 STR R3, [R11,#var_548] .text:0001DF5C BNE loc_1DF7C .text:0001DF60 CMP R3, #0 .text:0001DF64 BLE loc_1DF7C .text:0001DF68 MOV R0, R10 .text:0001DF6C MOV R1, #0x20 .text:0001DF70 MOV R2, R3 .text:0001DF74 BL _IO_padn .text:0001DF78 ADD R9, R9, R0 .text:0001DF7C .text:0001DF7C loc_1DF7C ; CODE XREF: vfprintf+1790j .text:0001DF7C ; vfprintf+1798j .text:0001DF7C MOV R0, R10 .text:0001DF80 LDRB R3, [R10,#0x46] .text:0001DF84 MOV R1, R5 .text:0001DF88 MOV R3, R3,LSL#24 .text:0001DF8C ADD R3, R10, R3,ASR#24 .text:0001DF90 LDR R12, [R3,#0x94] .text:0001DF94 MOV R2, R4 .text:0001DF98 MOV LR, PC .text:0001DF9C LDR PC, [R12,#0x1C] .text:0001DFA0 CMP R0, R4 .text:0001DFA4 BNE loc_1E414 .text:0001DFA8 ADD R9, R9, R4 .text:0001DFAC LDR R0, [R11,#var_52C] .text:0001DFB0 CMP R0, #0 .text:0001DFB4 BEQ loc_1DFD8 .text:0001DFB8 LDR R1, [R11,#var_548] .text:0001DFBC CMP R1, #0 .text:0001DFC0 BLE loc_1DFD8 .text:0001DFC4 MOV R0, R10 .text:0001DFC8 LDR R2, [R11,#var_548] .text:0001DFCC MOV R1, #0x20 .text:0001DFD0 BL _IO_padn .text:0001DFD4 ADD R9, R9, R0 .text:0001DFD8 .text:0001DFD8 loc_1DFD8 ; CODE XREF: vfprintf+17E8j .text:0001DFD8 ; vfprintf+17F4j .text:0001DFD8 MOV SP, R7 .text:0001DFDC B loc_1E33C .text:0001DFE0 ; --------------------------------------------------------------------------- .text:0001DFE0 LDR R2, [R11,#var_4F0] .text:0001DFE4 LDR R8, [R2],#4 .text:0001DFE8 STR R2, [R11,#var_4F0] .text:0001DFEC .text:0001DFEC loc_1DFEC ; CODE XREF: vfprintf+1608j .text:0001DFEC ; vfprintf+1668j .text:0001DFEC MOV R3, #0 .text:0001DFF0 CMP R8, R3 .text:0001DFF4 STR R3, [R11,#var_55C] .text:0001DFF8 BNE loc_1E034 .text:0001DFFC LDR R4, [R11,#var_54C] .text:0001E000 CMP R4, #5 .text:0001E004 MOVLE R3, #0 .text:0001E008 MOVGT R3, #1 .text:0001E00C CMN R4, #1 .text:0001E010 MOVNE R0, R3 .text:0001E014 MOVEQ R0, #1 .text:0001E018 CMP R0, #0 .text:0001E01C MOVNE R5, #6 .text:0001E020 LDRNE R8, =null ; "(null)" .text:0001E024 BNE loc_1E244 .text:0001E028 MOV R5, R0 .text:0001E02C LDR R8, =dword_56D74 .text:0001E030 B loc_1E244 .text:0001E034 ; --------------------------------------------------------------------------- .text:0001E034 .text:0001E034 loc_1E034 ; CODE XREF: vfprintf+182Cj .text:0001E034 LDR R12, [R11,#var_558] .text:0001E038 LDR R0, [R11,#var_540] .text:0001E03C SUBS R3, R12, #0x53 .text:0001E040 MOVNE R3, #1 .text:0001E044 CMP R0, #0 .text:0001E048 MOVNE R3, #0 .text:0001E04C CMP R3, #0 .text:0001E050 BEQ loc_1E120 .text:0001E054 LDR R1, [R11,#var_54C] .text:0001E058 CMN R1, #1 .text:0001E05C BEQ loc_1E110 .text:0001E060 LDR R3, =_nl_current_LC_CTYPE .text:0001E064 LDR R2, [R3] .text:0001E068 LDR R1, [R2,#0x54] .text:0001E06C CMP R1, #1 .text:0001E070 BNE loc_1E088 .text:0001E074 LDR R1, [R11,#var_54C] .text:0001E078 MOV R0, R8 .text:0001E07C BL strnlen .text:0001E080 MOV R5, R0 .text:0001E084 B loc_1E244 .text:0001E088 ; --------------------------------------------------------------------------- .text:0001E088 .text:0001E088 loc_1E088 ; CODE XREF: vfprintf+18A4j .text:0001E088 STR R8, [R11,#var_4A8] .text:0001E08C MOV R7, SP .text:0001E090 SUB R4, R11, #-var_490 .text:0001E094 SUB R4, R4, #8 .text:0001E098 SUB R4, R4, #0xC .text:0001E09C LDR R2, [R11,#var_54C] .text:0001E0A0 MOV R0, R4 .text:0001E0A4 LDR R1, [R11,#var_55C] .text:0001E0A8 MOV R3, R2,LSL#5 .text:0001E0AC SUB SP, SP, R3,LSR#3 .text:0001E0B0 MOV R2, #8 .text:0001E0B4 ADD R5, SP, #0x5CC+var_5C8 .text:0001E0B8 BL memset .text:0001E0BC STR R4, [SP,#0x5CC+var_5CC] .text:0001E0C0 MOV R0, R5 .text:0001E0C4 SUB R1, R11, #-var_4A0 .text:0001E0C8 LDR R2, [R11,#var_54C] .text:0001E0CC SUB R1, R1, #8 .text:0001E0D0 MOV R3, R2 .text:0001E0D4 BL mbsnrtowcs .text:0001E0D8 CMN R0, #1 .text:0001E0DC BEQ loc_1E414 .text:0001E0E0 LDR R3, [R11,#var_4A8] .text:0001E0E4 CMP R3, #0 .text:0001E0E8 BNE loc_1E0FC .text:0001E0EC MOV R0, R8 .text:0001E0F0 BL strlen .text:0001E0F4 MOV R5, R0 .text:0001E0F8 B loc_1E108 .text:0001E0FC ; --------------------------------------------------------------------------- .text:0001E0FC .text:0001E0FC loc_1E0FC ; CODE XREF: vfprintf+191Cj .text:0001E0FC LDR R2, [R11,#var_4A4] .text:0001E100 RSB R3, R8, R3 .text:0001E104 RSB R5, R2, R3 .text:0001E108 .text:0001E108 loc_1E108 ; CODE XREF: vfprintf+192Cj .text:0001E108 MOV SP, R7 .text:0001E10C B loc_1E244 .text:0001E110 ; --------------------------------------------------------------------------- .text:0001E110 .text:0001E110 loc_1E110 ; CODE XREF: vfprintf+1890j .text:0001E110 MOV R0, R8 .text:0001E114 BL strlen .text:0001E118 MOV R5, R0 .text:0001E11C B loc_1E244 .text:0001E120 ; --------------------------------------------------------------------------- .text:0001E120 .text:0001E120 loc_1E120 ; CODE XREF: vfprintf+1884j .text:0001E120 STR R8, [R11,#var_4B4] .text:0001E124 SUB R4, R11, #-var_4A0 .text:0001E128 SUB R4, R4, #8 .text:0001E12C SUB R4, R4, #8 .text:0001E130 MOV R0, R4 .text:0001E134 LDR R1, [R11,#var_55C] .text:0001E138 MOV R2, #8 .text:0001E13C BL memset .text:0001E140 LDR R3, [R11,#var_54C] .text:0001E144 MOV R6, R4 .text:0001E148 CMP R3, #0 .text:0001E14C BLE loc_1E1BC .text:0001E150 CMP R3, #0x8000 .text:0001E154 BLT loc_1E168 .text:0001E158 MOV R0, R3 .text:0001E15C BL malloc .text:0001E160 SUBS R8, R0, #0 .text:0001E164 BNE loc_1E190 .text:0001E168 .text:0001E168 loc_1E168 ; CODE XREF: vfprintf+1988j .text:0001E168 LDR R4, [R11,#var_54C] .text:0001E16C ADD R3, R4, #3 .text:0001E170 BIC R3, R3, #3 .text:0001E174 RSB SP, R3, SP .text:0001E178 ADD R8, SP, #0x5CC+var_5C8 .text:0001E17C B loc_1E198 .text:0001E17C ; --------------------------------------------------------------------------- .text:0001E180 off_1E180 DCD aNil ; DATA XREF: vfprintf+15F4r .text:0001E180 ; "(nil)" .text:0001E184 off_1E184 DCD null ; DATA XREF: vfprintf+1854r .text:0001E184 ; "(null)" .text:0001E188 off_1E188 DCD dword_56D74 ; DATA XREF: vfprintf+1860r .text:0001E18C off_1E18C DCD _nl_current_LC_CTYPE ; DATA XREF: vfprintf+1894r .text:0001E190 ; --------------------------------------------------------------------------- .text:0001E190 .text:0001E190 loc_1E190 ; CODE XREF: vfprintf+1998j .text:0001E190 MOV R12, #1 .text:0001E194 STR R12, [R11,#var_55C] .text:0001E198 .text:0001E198 loc_1E198 ; CODE XREF: vfprintf+19B0j .text:0001E198 MOV R0, R8 .text:0001E19C SUB R1, R11, #-var_4A0 .text:0001E1A0 SUB R1, R1, #8 .text:0001E1A4 SUB R1, R1, #0xC .text:0001E1A8 LDR R2, [R11,#var_54C] .text:0001E1AC MOV R3, R6 .text:0001E1B0 BL wcsrtombs .text:0001E1B4 MOV R5, R0 .text:0001E1B8 B loc_1E23C .text:0001E1BC ; --------------------------------------------------------------------------- .text:0001E1BC .text:0001E1BC loc_1E1BC ; CODE XREF: vfprintf+1980j .text:0001E1BC SUB R4, R11, #-var_4A0 .text:0001E1C0 SUB R4, R4, #8 .text:0001E1C4 SUB R4, R4, #0xC .text:0001E1C8 MOV R1, R4 .text:0001E1CC LDR R0, [R11,#var_55C] .text:0001E1D0 MOV R3, R6 .text:0001E1D4 MOV R2, R0 .text:0001E1D8 BL wcsrtombs .text:0001E1DC MOV R5, R0 .text:0001E1E0 CMN R5, #1 .text:0001E1E4 BEQ loc_1E23C .text:0001E1E8 ADD R3, R5, #1 .text:0001E1EC CMP R3, #0x8000 .text:0001E1F0 MOV R7, R3 .text:0001E1F4 STR R8, [R11,#var_4B4] .text:0001E1F8 BCC loc_1E20C .text:0001E1FC MOV R0, R7 .text:0001E200 BL malloc .text:0001E204 SUBS R8, R0, #0 .text:0001E208 BNE loc_1E220 .text:0001E20C .text:0001E20C loc_1E20C ; CODE XREF: vfprintf+1A2Cj .text:0001E20C ADD R3, R5, #4 .text:0001E210 BIC R3, R3, #3 .text:0001E214 RSB SP, R3, SP .text:0001E218 ADD R8, SP, #0x5CC+var_5C8 .text:0001E21C B loc_1E228 .text:0001E220 ; --------------------------------------------------------------------------- .text:0001E220 .text:0001E220 loc_1E220 ; CODE XREF: vfprintf+1A3Cj .text:0001E220 MOV R0, #1 .text:0001E224 STR R0, [R11,#var_55C] .text:0001E228 .text:0001E228 loc_1E228 ; CODE XREF: vfprintf+1A50j .text:0001E228 MOV R0, R8 .text:0001E22C MOV R1, R4 .text:0001E230 MOV R2, R7 .text:0001E234 MOV R3, R6 .text:0001E238 BL wcsrtombs .text:0001E23C .text:0001E23C loc_1E23C ; CODE XREF: vfprintf+19ECj .text:0001E23C ; vfprintf+1A18j .text:0001E23C CMN R5, #1 .text:0001E240 BEQ loc_1E334 .text:0001E244 .text:0001E244 loc_1E244 ; CODE XREF: vfprintf+1858j .text:0001E244 ; vfprintf+1864j ... .text:0001E244 LDR R1, [R11,#var_548] .text:0001E248 SUBS R1, R1, R5 .text:0001E24C STR R1, [R11,#var_548] .text:0001E250 BPL loc_1E288 .text:0001E254 MOV R0, R10 .text:0001E258 LDRB R3, [R10,#0x46] .text:0001E25C MOV R1, R8 .text:0001E260 MOV R3, R3,LSL#24 .text:0001E264 ADD R3, R10, R3,ASR#24 .text:0001E268 LDR R12, [R3,#0x94] .text:0001E26C MOV R2, R5 .text:0001E270 MOV LR, PC .text:0001E274 LDR PC, [R12,#0x1C] .text:0001E278 CMP R0, R5 .text:0001E27C BNE loc_1E334 .text:0001E280 ADD R9, R9, R5 .text:0001E284 B loc_1E33C .text:0001E288 ; --------------------------------------------------------------------------- .text:0001E288 .text:0001E288 loc_1E288 ; CODE XREF: vfprintf+1A84j .text:0001E288 LDR R2, [R11,#var_52C] .text:0001E28C CMP R2, #0 .text:0001E290 BNE loc_1E2B4 .text:0001E294 LDR R3, [R11,#var_548] .text:0001E298 CMP R3, #0 .text:0001E29C BLE loc_1E2B4 .text:0001E2A0 MOV R0, R10 .text:0001E2A4 MOV R1, #0x20 .text:0001E2A8 MOV R2, R3 .text:0001E2AC BL _IO_padn .text:0001E2B0 ADD R9, R9, R0 .text:0001E2B4 .text:0001E2B4 loc_1E2B4 ; CODE XREF: vfprintf+1AC4j .text:0001E2B4 ; vfprintf+1AD0j .text:0001E2B4 MOV R0, R10 .text:0001E2B8 LDRB R3, [R10,#0x46] .text:0001E2BC MOV R1, R8 .text:0001E2C0 MOV R3, R3,LSL#24 .text:0001E2C4 ADD R3, R10, R3,ASR#24 .text:0001E2C8 LDR R12, [R3,#0x94] .text:0001E2CC MOV R2, R5 .text:0001E2D0 MOV LR, PC .text:0001E2D4 LDR PC, [R12,#0x1C] .text:0001E2D8 CMP R0, R5 .text:0001E2DC BNE loc_1E334 .text:0001E2E0 ADD R9, R9, R5 .text:0001E2E4 LDR R4, [R11,#var_52C] .text:0001E2E8 CMP R4, #0 .text:0001E2EC BEQ loc_1E310 .text:0001E2F0 LDR R12, [R11,#var_548] .text:0001E2F4 CMP R12, #0 .text:0001E2F8 BLE loc_1E310 .text:0001E2FC MOV R0, R10 .text:0001E300 MOV R1, #0x20 .text:0001E304 MOV R2, R12 .text:0001E308 BL _IO_padn .text:0001E30C ADD R9, R9, R0 .text:0001E310 .text:0001E310 loc_1E310 ; CODE XREF: vfprintf+1B20j .text:0001E310 ; vfprintf+1B2Cj .text:0001E310 LDR R0, [R11,#var_55C] .text:0001E314 CMP R0, #0 .text:0001E318 BEQ loc_1E33C .text:0001E31C MOV R0, R8 .text:0001E320 BL free .text:0001E324 B loc_1E33C .text:0001E328 ; --------------------------------------------------------------------------- .text:0001E328 .text:0001E328 loc_1E328 ; DATA XREF: vfprintf:loc_1CA48o .text:0001E328 ; vfprintf:loc_1CA90o ... .text:0001E328 LDR R1, [R11,#var_558] .text:0001E32C CMP R1, #0 .text:0001E330 BNE loc_1E438 .text:0001E334 .text:0001E334 loc_1E334 ; CODE XREF: vfprintf+1E4j .text:0001E334 ; vfprintf+AE4j ... .text:0001E334 MOV R9, 0xFFFFFFFF .text:0001E338 B loc_20814 .text:0001E33C ; --------------------------------------------------------------------------- .text:0001E33C .text:0001E33C loc_1E33C ; CODE XREF: vfprintf+7FCj .text:0001E33C ; vfprintf+810j ... .text:0001E33C LDR R2, [R11,#var_480] .text:0001E340 LDR R3, [R11,#var_504] .text:0001E344 ADD R5, R2, #1 .text:0001E348 STR R5, [R11,#var_480] .text:0001E34C ADD R3, R3, #1 .text:0001E350 STR R3, [R11,#var_504] .text:0001E354 LDRB R3, [R2,#1] .text:0001E358 MOV R4, R5 .text:0001E35C CMP R3, #0 .text:0001E360 CMPNE R3, #0x25 .text:0001E364 BEQ loc_1E3B4 .text:0001E368 .text:0001E368 loc_1E368 ; CODE XREF: vfprintf+1BE4j .text:0001E368 MOV R3, #0 .text:0001E36C STR R3, [R11,#var_478] .text:0001E370 LDRB R2, [R4] .text:0001E374 TST R2, #0x80 .text:0001E378 BEQ loc_1E3A0 .text:0001E37C BL __ctype_get_mb_cur_max .text:0001E380 MOV R1, R0 .text:0001E384 MOV R0, R4 .text:0001E388 SUB R2, R11, #-var_470 .text:0001E38C SUB R2, R2, #8 .text:0001E390 BL mbrlen .text:0001E394 CMP R0, #0 .text:0001E398 ADDGT R4, R4, R0 .text:0001E39C BGT loc_1E3A4 .text:0001E3A0 .text:0001E3A0 loc_1E3A0 ; CODE XREF: vfprintf+1BACj .text:0001E3A0 ADD R4, R4, #1 .text:0001E3A4 .text:0001E3A4 loc_1E3A4 ; CODE XREF: vfprintf+1BD0j .text:0001E3A4 LDRB R3, [R4] .text:0001E3A8 CMP R3, #0 .text:0001E3AC CMPNE R3, #0x25 .text:0001E3B0 BNE loc_1E368 .text:0001E3B4 .text:0001E3B4 loc_1E3B4 ; CODE XREF: vfprintf+1B98j .text:0001E3B4 STR R4, [R11,#var_480] .text:0001E3B8 LDRB R3, [R10,#0x46] .text:0001E3BC MOV R0, R10 .text:0001E3C0 MOV R1, R5 .text:0001E3C4 MOV R3, R3,LSL#24 .text:0001E3C8 ADD R3, R10, R3,ASR#24 .text:0001E3CC LDR R12, [R3,#0x94] .text:0001E3D0 RSB R2, R5, R4 .text:0001E3D4 MOV LR, PC .text:0001E3D8 LDR PC, [R12,#0x1C] .text:0001E3DC LDR R1, [R11,#var_480] .text:0001E3E0 RSB R3, R5, R1 .text:0001E3E4 CMP R0, R3 .text:0001E3E8 BNE loc_1E334 .text:0001E3EC ADD R9, R9, R0 .text:0001E3F0 LDRB R3, [R1] .text:0001E3F4 CMP R3, #0 .text:0001E3F8 BNE loc_1C9CC .text:0001E3FC B loc_20814 .text:0001E400 ; --------------------------------------------------------------------------- .text:0001E400 .text:0001E400 loc_1E400 ; CODE XREF: vfprintf+64j .text:0001E400 BL __errno_location .text:0001E404 MOV R3, #9 .text:0001E408 .text:0001E408 loc_1E408 ; CODE XREF: vfprintf+78j .text:0001E408 STR R3, [R0] .text:0001E40C .text:0001E40C loc_1E40C ; CODE XREF: vfprintf+58j .text:0001E40C ; vfprintf+A0j .text:0001E40C MOV R0, 0xFFFFFFFF .text:0001E410 B loc_20844 .text:0001E414 ; --------------------------------------------------------------------------- .text:0001E414 .text:0001E414 loc_1E414 ; CODE XREF: vfprintf+1778j .text:0001E414 ; vfprintf+17D8j ... .text:0001E414 MOV R9, 0xFFFFFFFF .text:0001E418 MOV SP, R7 .text:0001E41C B loc_20814 .text:0001E420 ; --------------------------------------------------------------------------- .text:0001E420 .text:0001E420 loc_1E420 ; CODE XREF: vfprintf+3AD0j .text:0001E420 ; vfprintf+3B30j .text:0001E420 MOV R9, 0xFFFFFFFF .text:0001E424 MOV SP, R6 .text:0001E428 B loc_20814 .text:0001E42C ; --------------------------------------------------------------------------- .text:0001E42C .text:0001E42C loc_1E42C ; CODE XREF: vfprintf+3C94j .text:0001E42C MOV R9, R0 .text:0001E430 MOV SP, R8 .text:0001E434 B loc_20814 .text:0001E438 ; --------------------------------------------------------------------------- .text:0001E438 .text:0001E438 loc_1E438 ; CODE XREF: vfprintf+570j .text:0001E438 ; vfprintf+690j ... .text:0001E438 MOV R4, #0 .text:0001E43C STR R4, [R11,#var_560] .text:0001E440 SUB SP, SP, #0x600 .text:0001E444 ADD R12, SP, #0xBCC+var_BC8 .text:0001E448 STR R12, [R11,#var_564] .text:0001E44C STR R4, [R11,#var_568] .text:0001E450 LDR R0, [R11,#var_4F8] .text:0001E454 MOV R8, #0x20 .text:0001E458 STR R4, [R11,#var_4B8] .text:0001E45C CMN R0, #1 .text:0001E460 BNE loc_1E48C .text:0001E464 LDR R3, =_nl_current_LC_NUMERIC .text:0001E468 LDR R2, [R3] .text:0001E46C LDR R1, [R2,#0x28] .text:0001E470 LDR R2, [R2,#0x24] .text:0001E474 LDRB R3, [R1] .text:0001E478 STR R2, [R11,#var_4F4] .text:0001E47C CMP R3, #0xFF .text:0001E480 CMPNE R3, R4 .text:0001E484 MOVEQ R1, R4 .text:0001E488 STR R1, [R11,#var_4F8] .text:0001E48C .text:0001E48C loc_1E48C ; CODE XREF: vfprintf+1C94j .text:0001E48C LDR R2, [R11,#var_50C] .text:0001E490 LDRB R3, [R2] .text:0001E494 STR R2, [R11,#var_480] .text:0001E498 CMP R3, #0 .text:0001E49C BEQ loc_1EE88 .text:0001E4A0 .text:0001E4A0 loc_1E4A0 ; CODE XREF: vfprintf+26B8j .text:0001E4A0 LDR R3, [R11,#var_560] .text:0001E4A4 CMP R3, R8 .text:0001E4A8 MOV R4, R3,LSL#1 .text:0001E4AC STR R4, [R11,#var_5C8] .text:0001E4B0 BCC loc_1E508 .text:0001E4B4 MOV R8, R8,LSL#1 .text:0001E4B8 ADD R3, R8, R8,LSL#1 .text:0001E4BC LDR R5, [R11,#var_564] .text:0001E4C0 SUB SP, SP, R3,LSL#4 .text:0001E4C4 LDR R0, [R11,#var_560] .text:0001E4C8 ADD R12, SP, #0xBCC+var_BC8 .text:0001E4CC STR R12, [R11,#var_564] .text:0001E4D0 ADD R3, R4, R0 .text:0001E4D4 MOV R4, R3,LSL#4 .text:0001E4D8 ADD R2, R5, R4 .text:0001E4DC CMP R12, R2 .text:0001E4E0 BEQ loc_1E504 .text:0001E4E4 MOV R1, R5 .text:0001E4E8 LDR R0, [R11,#var_564] .text:0001E4EC MOV R2, R4 .text:0001E4F0 BL memcpy .text:0001E4F4 LDR R1, [R11,#var_564] .text:0001E4F8 ADD R3, R1, R4 .text:0001E4FC CMP R5, R3 .text:0001E500 BNE loc_1E508 .text:0001E504 .text:0001E504 loc_1E504 ; CODE XREF: vfprintf+1D14j .text:0001E504 ADD R8, R8, R8,LSR#1 .text:0001E508 .text:0001E508 loc_1E508 ; CODE XREF: vfprintf+1CE4j .text:0001E508 ; vfprintf+1D34j .text:0001E508 LDR R3, [R11,#var_480] .text:0001E50C ADD R3, R3, #1 .text:0001E510 STR R3, [R11,#var_4BC] .text:0001E514 LDR R4, [R11,#var_560] .text:0001E518 LDR R3, [R11,#var_5C8] .text:0001E51C LDR R12, [R11,#var_564] .text:0001E520 ADD R2, R3, R4 .text:0001E524 ADD R5, R12, R2,LSL#4 .text:0001E528 MOV R3, 0xFFFFFFFF .text:0001E52C STR R3, [R5,#0x24] .text:0001E530 MOV R2, #0x20 .text:0001E534 STR R2, [R5,#0x10] .text:0001E538 LDRB R3, [R5,#0xC] .text:0001E53C LDRB R2, [R5,#0xD] .text:0001E540 AND R3, R3, #7 .text:0001E544 STRB R3, [R5,#0xC] .text:0001E548 AND R2, R2, #0xF3 .text:0001E54C STRB R2, [R5,#0xD] .text:0001E550 LDR R4, [R11,#var_4BC] .text:0001E554 LDRB R3, [R4] .text:0001E558 MOV R0, #0 .text:0001E55C STR R0, [R11,#var_570] .text:0001E560 SUB R6, R11, #-var_4B0 .text:0001E564 LDR R2, [R11,#var_560] .text:0001E568 SUB R6, R6, #8 .text:0001E56C LDR R7, [R11,#var_568] .text:0001E570 ADD R2, R2, #1 .text:0001E574 STR R2, [R11,#var_5C4] .text:0001E578 SUB R1, R3, #0x30 .text:0001E57C CMP R1, #9 .text:0001E580 BHI loc_1E60C .text:0001E584 ADD R3, R4, #1 .text:0001E588 STR R3, [R11,#var_4BC] .text:0001E58C MOV LR, R6 .text:0001E590 LDRB R3, [R4,#1] .text:0001E594 SUB LR, LR, #4 .text:0001E598 B loc_1E5C0 .text:0001E59C ; --------------------------------------------------------------------------- .text:0001E59C .text:0001E59C loc_1E59C ; CODE XREF: vfprintf+1DFCj .text:0001E59C LDR R0, [LR] .text:0001E5A0 MOV R3, R0 .text:0001E5A4 LDRB R12, [R3],#1 .text:0001E5A8 STR R3, [LR] .text:0001E5AC ADD R2, R1, R1,LSL#2 .text:0001E5B0 MOV R1, R2,LSL#1 .text:0001E5B4 SUB R1, R1, #0x30 .text:0001E5B8 LDRB R3, [R0,#1] .text:0001E5BC ADD R1, R1, R12 .text:0001E5C0 .text:0001E5C0 loc_1E5C0 ; CODE XREF: vfprintf+1DCCj .text:0001E5C0 SUB R3, R3, #0x30 .text:0001E5C4 CMP R3, #9 .text:0001E5C8 BLS loc_1E59C .text:0001E5CC CMP R1, #0 .text:0001E5D0 BEQ loc_1E608 .text:0001E5D4 LDR R2, [R11,#var_4BC] .text:0001E5D8 LDRB R3, [R2] .text:0001E5DC CMP R3, #0x24 .text:0001E5E0 BNE loc_1E608 .text:0001E5E4 ADD R3, R2, #1 .text:0001E5E8 STR R3, [R11,#var_4BC] .text:0001E5EC SUB R2, R1, #1 .text:0001E5F0 STR R2, [R5,#0x24] .text:0001E5F4 LDR R3, [R6] .text:0001E5F8 CMP R1, R3 .text:0001E5FC STRCS R1, [R6] .text:0001E600 STRCC R3, [R6] .text:0001E604 B loc_1E60C .text:0001E608 ; --------------------------------------------------------------------------- .text:0001E608 .text:0001E608 loc_1E608 ; CODE XREF: vfprintf+1E04j .text:0001E608 ; vfprintf+1E14j .text:0001E608 STR R4, [R11,#var_4BC] .text:0001E60C .text:0001E60C loc_1E60C ; CODE XREF: vfprintf+1DB4j .text:0001E60C ; vfprintf+1E38j .text:0001E60C MOV R0, #0x30 .text:0001E610 .text:0001E610 loc_1E610 ; CODE XREF: vfprintf+1F84j .text:0001E610 LDR R2, [R11,#var_4BC] .text:0001E614 LDRB R3, [R2] .text:0001E618 SUB R3, R3, #0x20 .text:0001E61C CMP R3, #0x29 ; switch 42 cases .text:0001E620 LDRLS PC, [PC,R3,LSL#2] ; switch jump .text:0001E624 B loc_1E738 ; jumptable 0001E620 default case .text:0001E624 ; --------------------------------------------------------------------------- .text:0001E628 DCD loc_1E6D0 ; jump table for switch statement .text:0001E628 DCD loc_1E754 .text:0001E628 DCD loc_1E754 .text:0001E628 DCD loc_1E700 .text:0001E628 DCD loc_1E754 .text:0001E628 DCD loc_1E754 .text:0001E628 DCD loc_1E754 .text:0001E628 DCD loc_1E718 .text:0001E628 DCD loc_1E754 .text:0001E628 DCD loc_1E754 .text:0001E628 DCD loc_1E754 .text:0001E628 DCD loc_1E6E0 .text:0001E628 DCD loc_1E754 .text:0001E628 DCD loc_1E6F0 .text:0001E628 DCD loc_1E754 .text:0001E628 DCD loc_1E754 .text:0001E628 DCD loc_1E710 .text:0001E628 DCD loc_1E754 .text:0001E628 DCD loc_1E754 .text:0001E628 DCD loc_1E754 .text:0001E628 DCD loc_1E754 .text:0001E628 DCD loc_1E754 .text:0001E628 DCD loc_1E754 .text:0001E628 DCD loc_1E754 .text:0001E628 DCD loc_1E754 .text:0001E628 DCD loc_1E754 .text:0001E628 DCD loc_1E754 .text:0001E628 DCD loc_1E754 .text:0001E628 DCD loc_1E754 .text:0001E628 DCD loc_1E754 .text:0001E628 DCD loc_1E754 .text:0001E628 DCD loc_1E754 .text:0001E628 DCD loc_1E754 .text:0001E628 DCD loc_1E754 .text:0001E628 DCD loc_1E754 .text:0001E628 DCD loc_1E754 .text:0001E628 DCD loc_1E754 .text:0001E628 DCD loc_1E754 .text:0001E628 DCD loc_1E754 .text:0001E628 DCD loc_1E754 .text:0001E628 DCD loc_1E754 .text:0001E628 DCD loc_1E728 .text:0001E6D0 ; --------------------------------------------------------------------------- .text:0001E6D0 .text:0001E6D0 loc_1E6D0 ; CODE XREF: vfprintf+1E54j .text:0001E6D0 ; DATA XREF: vfprintf+1E5Co .text:0001E6D0 LDRB R3, [R5,#0xC] ; jumptable 0001E620 case 0 .text:0001E6D4 ORR R3, R3, #0x10 .text:0001E6D8 STRB R3, [R5,#0xC] .text:0001E6DC B loc_1E73C .text:0001E6E0 ; --------------------------------------------------------------------------- .text:0001E6E0 .text:0001E6E0 loc_1E6E0 ; CODE XREF: vfprintf+1E54j .text:0001E6E0 ; DATA XREF: vfprintf+1E5Co .text:0001E6E0 LDRB R3, [R5,#0xC] ; jumptable 0001E620 case 11 .text:0001E6E4 ORR R3, R3, #0x40 .text:0001E6E8 STRB R3, [R5,#0xC] .text:0001E6EC B loc_1E73C .text:0001E6F0 ; --------------------------------------------------------------------------- .text:0001E6F0 .text:0001E6F0 loc_1E6F0 ; CODE XREF: vfprintf+1E54j .text:0001E6F0 ; DATA XREF: vfprintf+1E5Co .text:0001E6F0 LDRB R3, [R5,#0xC] ; jumptable 0001E620 case 13 .text:0001E6F4 ORR R3, R3, #0x20 .text:0001E6F8 STRB R3, [R5,#0xC] .text:0001E6FC B loc_1E73C .text:0001E700 ; --------------------------------------------------------------------------- .text:0001E700 .text:0001E700 loc_1E700 ; CODE XREF: vfprintf+1E54j .text:0001E700 ; DATA XREF: vfprintf+1E5Co .text:0001E700 LDRB R3, [R5,#0xC] ; jumptable 0001E620 case 3 .text:0001E704 ORR R3, R3, #8 .text:0001E708 STRB R3, [R5,#0xC] .text:0001E70C B loc_1E73C .text:0001E710 ; --------------------------------------------------------------------------- .text:0001E710 .text:0001E710 loc_1E710 ; CODE XREF: vfprintf+1E54j .text:0001E710 ; DATA XREF: vfprintf+1E5Co .text:0001E710 STR R0, [R5,#0x10] ; jumptable 0001E620 case 16 .text:0001E714 B loc_1E73C .text:0001E718 ; --------------------------------------------------------------------------- .text:0001E718 .text:0001E718 loc_1E718 ; CODE XREF: vfprintf+1E54j .text:0001E718 ; DATA XREF: vfprintf+1E5Co .text:0001E718 LDRB R3, [R5,#0xC] ; jumptable 0001E620 case 7 .text:0001E71C ORR R3, R3, #0x80 .text:0001E720 STRB R3, [R5,#0xC] .text:0001E724 B loc_1E73C .text:0001E728 ; --------------------------------------------------------------------------- .text:0001E728 .text:0001E728 loc_1E728 ; CODE XREF: vfprintf+1E54j .text:0001E728 ; DATA XREF: vfprintf+1E5Co .text:0001E728 LDRB R3, [R5,#0xD] ; jumptable 0001E620 case 41 .text:0001E72C ORR R3, R3, #8 .text:0001E730 STRB R3, [R5,#0xD] .text:0001E734 B loc_1E73C .text:0001E738 ; --------------------------------------------------------------------------- .text:0001E738 .text:0001E738 loc_1E738 ; CODE XREF: vfprintf+1E58j .text:0001E738 B loc_1E754 ; jumptable 0001E620 default case .text:0001E73C ; --------------------------------------------------------------------------- .text:0001E73C .text:0001E73C loc_1E73C ; CODE XREF: vfprintf+1F10j .text:0001E73C ; vfprintf+1F20j ... .text:0001E73C LDR R3, [R11,#var_4BC] .text:0001E740 ADD R2, R3, #1 .text:0001E744 STR R2, [R11,#var_4BC] .text:0001E748 LDRB R1, [R3,#1] .text:0001E74C CMP R1, #0 .text:0001E750 BNE loc_1E610 .text:0001E754 .text:0001E754 loc_1E754 ; CODE XREF: vfprintf+1E54j .text:0001E754 ; vfprintf:loc_1E738j .text:0001E754 ; DATA XREF: ... .text:0001E754 LDRB R3, [R5,#0xC] ; jumptable 0001E620 cases 1,2,4-6,8-10,12,14,15,17-40 .text:0001E758 TST R3, #0x20 .text:0001E75C MOVNE R3, #0x20 .text:0001E760 STRNE R3, [R5,#0x10] .text:0001E764 MOV R3, 0xFFFFFFFF .text:0001E768 STR R3, [R5,#0x20] .text:0001E76C MOV R2, #0 .text:0001E770 STR R2, [R5,#4] .text:0001E774 LDR R0, [R11,#var_4BC] .text:0001E778 LDRB R3, [R0] .text:0001E77C CMP R3, #0x2A .text:0001E780 BNE loc_1E850 .text:0001E784 ADD R4, R0, #1 .text:0001E788 STR R4, [R11,#var_4BC] .text:0001E78C LDRB R3, [R0,#1] .text:0001E790 SUB R1, R3, #0x30 .text:0001E794 CMP R1, #9 .text:0001E798 BHI loc_1E828 .text:0001E79C ADD R3, R4, #1 .text:0001E7A0 STR R3, [R11,#var_4BC] .text:0001E7A4 SUB LR, R11, #-var_4B0 .text:0001E7A8 SUB LR, LR, #8 .text:0001E7AC LDRB R3, [R4,#1] .text:0001E7B0 SUB LR, LR, #4 .text:0001E7B4 B loc_1E7E0 .text:0001E7B4 ; --------------------------------------------------------------------------- .text:0001E7B8 off_1E7B8 DCD _nl_current_LC_NUMERIC ; DATA XREF: vfprintf+1C98r .text:0001E7BC ; --------------------------------------------------------------------------- .text:0001E7BC .text:0001E7BC loc_1E7BC ; CODE XREF: vfprintf+201Cj .text:0001E7BC LDR R0, [LR] .text:0001E7C0 MOV R3, R0 .text:0001E7C4 LDRB R12, [R3],#1 .text:0001E7C8 STR R3, [LR] .text:0001E7CC ADD R2, R1, R1,LSL#2 .text:0001E7D0 MOV R1, R2,LSL#1 .text:0001E7D4 SUB R1, R1, #0x30 .text:0001E7D8 LDRB R3, [R0,#1] .text:0001E7DC ADD R1, R1, R12 .text:0001E7E0 .text:0001E7E0 loc_1E7E0 ; CODE XREF: vfprintf+1FE8j .text:0001E7E0 SUB R3, R3, #0x30 .text:0001E7E4 CMP R3, #9 .text:0001E7E8 BLS loc_1E7BC .text:0001E7EC CMP R1, #0 .text:0001E7F0 BEQ loc_1E828 .text:0001E7F4 LDR R3, [R11,#var_4BC] .text:0001E7F8 LDRB R2, [R3] .text:0001E7FC CMP R2, #0x24 .text:0001E800 BNE loc_1E828 .text:0001E804 SUB R3, R1, #1 .text:0001E808 STR R3, [R5,#0x20] .text:0001E80C LDR R2, [R6] .text:0001E810 CMP R1, R2 .text:0001E814 STRCS R1, [R6] .text:0001E818 STRCC R2, [R6] .text:0001E81C LDR R3, [R11,#var_4BC] .text:0001E820 ADD R3, R3, #1 .text:0001E824 STR R3, [R11,#var_4BC] .text:0001E828 .text:0001E828 loc_1E828 ; CODE XREF: vfprintf+1FCCj .text:0001E828 ; vfprintf+2024j ... .text:0001E828 LDR R3, [R5,#0x20] .text:0001E82C CMP R3, #0 .text:0001E830 BGE loc_1E8B0 .text:0001E834 LDR R3, [R11,#var_568] .text:0001E838 STR R3, [R5,#0x20] .text:0001E83C MOV R12, #1 .text:0001E840 STR R12, [R11,#var_570] .text:0001E844 ADD R7, R3, #1 .text:0001E848 STR R4, [R11,#var_4BC] .text:0001E84C B loc_1E8B0 .text:0001E850 ; --------------------------------------------------------------------------- .text:0001E850 .text:0001E850 loc_1E850 ; CODE XREF: vfprintf+1FB4j .text:0001E850 LDRB R3, [R0] .text:0001E854 SUB R1, R3, #0x30 .text:0001E858 CMP R1, #9 .text:0001E85C BHI loc_1E8B0 .text:0001E860 ADD R3, R0, #1 .text:0001E864 STR R3, [R11,#var_4BC] .text:0001E868 SUB LR, R11, #-var_4B0 .text:0001E86C SUB LR, LR, #8 .text:0001E870 LDRB R3, [R0,#1] .text:0001E874 SUB LR, LR, #4 .text:0001E878 B loc_1E8A0 .text:0001E87C ; --------------------------------------------------------------------------- .text:0001E87C .text:0001E87C loc_1E87C ; CODE XREF: vfprintf+20DCj .text:0001E87C LDR R0, [LR] .text:0001E880 MOV R3, R0 .text:0001E884 LDRB R12, [R3],#1 .text:0001E888 STR R3, [LR] .text:0001E88C ADD R2, R1, R1,LSL#2 .text:0001E890 MOV R1, R2,LSL#1 .text:0001E894 SUB R1, R1, #0x30 .text:0001E898 LDRB R3, [R0,#1] .text:0001E89C ADD R1, R1, R12 .text:0001E8A0 .text:0001E8A0 loc_1E8A0 ; CODE XREF: vfprintf+20ACj .text:0001E8A0 SUB R3, R3, #0x30 .text:0001E8A4 CMP R3, #9 .text:0001E8A8 BLS loc_1E87C .text:0001E8AC STR R1, [R5,#4] .text:0001E8B0 .text:0001E8B0 loc_1E8B0 ; CODE XREF: vfprintf+2064j .text:0001E8B0 ; vfprintf+2080j ... .text:0001E8B0 MOV R3, 0xFFFFFFFF .text:0001E8B4 STR R3, [R5,#0x1C] .text:0001E8B8 STR R3, [R5] .text:0001E8BC LDR R2, [R11,#var_4BC] .text:0001E8C0 LDRB R3, [R2] .text:0001E8C4 CMP R3, #0x2E .text:0001E8C8 BNE loc_1EA18 .text:0001E8CC ADD R0, R2, #1 .text:0001E8D0 STR R0, [R11,#var_4BC] .text:0001E8D4 LDRB R3, [R2,#1] .text:0001E8D8 CMP R3, #0x2A .text:0001E8DC MOV R3, R0 .text:0001E8E0 BNE loc_1E9AC .text:0001E8E4 ADD R4, R3, #1 .text:0001E8E8 STR R4, [R11,#var_4BC] .text:0001E8EC LDRB R3, [R3,#1] .text:0001E8F0 SUB R1, R3, #0x30 .text:0001E8F4 CMP R1, #9 .text:0001E8F8 BHI loc_1E984 .text:0001E8FC ADD R3, R4, #1 .text:0001E900 STR R3, [R11,#var_4BC] .text:0001E904 SUB LR, R11, #-var_4B0 .text:0001E908 SUB LR, LR, #8 .text:0001E90C LDRB R3, [R4,#1] .text:0001E910 SUB LR, LR, #4 .text:0001E914 B loc_1E93C .text:0001E918 ; --------------------------------------------------------------------------- .text:0001E918 .text:0001E918 loc_1E918 ; CODE XREF: vfprintf+2178j .text:0001E918 LDR R0, [LR] .text:0001E91C MOV R3, R0 .text:0001E920 LDRB R12, [R3],#1 .text:0001E924 STR R3, [LR] .text:0001E928 ADD R2, R1, R1,LSL#2 .text:0001E92C MOV R1, R2,LSL#1 .text:0001E930 SUB R1, R1, #0x30 .text:0001E934 LDRB R3, [R0,#1] .text:0001E938 ADD R1, R1, R12 .text:0001E93C .text:0001E93C loc_1E93C ; CODE XREF: vfprintf+2148j .text:0001E93C SUB R3, R3, #0x30 .text:0001E940 CMP R3, #9 .text:0001E944 BLS loc_1E918 .text:0001E948 CMP R1, #0 .text:0001E94C BEQ loc_1E984 .text:0001E950 LDR R3, [R11,#var_4BC] .text:0001E954 LDRB R2, [R3] .text:0001E958 CMP R2, #0x24 .text:0001E95C BNE loc_1E984 .text:0001E960 SUB R3, R1, #1 .text:0001E964 STR R3, [R5,#0x1C] .text:0001E968 LDR R2, [R6] .text:0001E96C CMP R1, R2 .text:0001E970 STRCS R1, [R6] .text:0001E974 STRCC R2, [R6] .text:0001E978 LDR R3, [R11,#var_4BC] .text:0001E97C ADD R3, R3, #1 .text:0001E980 STR R3, [R11,#var_4BC] .text:0001E984 .text:0001E984 loc_1E984 ; CODE XREF: vfprintf+212Cj .text:0001E984 ; vfprintf+2180j ... .text:0001E984 LDR R3, [R5,#0x1C] .text:0001E988 CMP R3, #0 .text:0001E98C BGE loc_1EA18 .text:0001E990 STR R7, [R5,#0x1C] .text:0001E994 LDR R0, [R11,#var_570] .text:0001E998 STR R4, [R11,#var_4BC] .text:0001E99C ADD R7, R7, #1 .text:0001E9A0 ADD R0, R0, #1 .text:0001E9A4 STR R0, [R11,#var_570] .text:0001E9A8 B loc_1EA18 .text:0001E9AC ; --------------------------------------------------------------------------- .text:0001E9AC .text:0001E9AC loc_1E9AC ; CODE XREF: vfprintf+2114j .text:0001E9AC LDRB R3, [R2,#1] .text:0001E9B0 SUB R1, R3, #0x30 .text:0001E9B4 CMP R1, #9 .text:0001E9B8 BHI loc_1EA10 .text:0001E9BC ADD R3, R0, #1 .text:0001E9C0 STR R3, [R11,#var_4BC] .text:0001E9C4 SUB LR, R11, #-var_4B0 .text:0001E9C8 SUB LR, LR, #8 .text:0001E9CC LDRB R3, [R0,#1] .text:0001E9D0 SUB LR, LR, #4 .text:0001E9D4 B loc_1E9FC .text:0001E9D8 ; --------------------------------------------------------------------------- .text:0001E9D8 .text:0001E9D8 loc_1E9D8 ; CODE XREF: vfprintf+2238j .text:0001E9D8 LDR R0, [LR] .text:0001E9DC MOV R3, R0 .text:0001E9E0 LDRB R12, [R3],#1 .text:0001E9E4 STR R3, [LR] .text:0001E9E8 ADD R2, R1, R1,LSL#2 .text:0001E9EC MOV R1, R2,LSL#1 .text:0001E9F0 SUB R1, R1, #0x30 .text:0001E9F4 LDRB R3, [R0,#1] .text:0001E9F8 ADD R1, R1, R12 .text:0001E9FC .text:0001E9FC loc_1E9FC ; CODE XREF: vfprintf+2208j .text:0001E9FC SUB R3, R3, #0x30 .text:0001EA00 CMP R3, #9 .text:0001EA04 BLS loc_1E9D8 .text:0001EA08 STR R1, [R5] .text:0001EA0C B loc_1EA18 .text:0001EA10 ; --------------------------------------------------------------------------- .text:0001EA10 .text:0001EA10 loc_1EA10 ; CODE XREF: vfprintf+21ECj .text:0001EA10 MOV R3, #0 .text:0001EA14 STR R3, [R5] .text:0001EA18 .text:0001EA18 loc_1EA18 ; CODE XREF: vfprintf+20FCj .text:0001EA18 ; vfprintf+21C0j ... .text:0001EA18 LDRB R3, [R5,#0xC] .text:0001EA1C LDRB R2, [R5,#0xD] .text:0001EA20 AND R3, R3, #0xF8 .text:0001EA24 STRB R3, [R5,#0xC] .text:0001EA28 AND R2, R2, #0xFD .text:0001EA2C STRB R2, [R5,#0xD] .text:0001EA30 LDR R1, [R11,#var_4BC] .text:0001EA34 LDRB R3, [R1],#1 .text:0001EA38 SUB R3, R3, #0x4C .text:0001EA3C STR R1, [R11,#var_4BC] .text:0001EA40 CMP R3, #0x2E ; switch 47 cases .text:0001EA44 LDRLS PC, [PC,R3,LSL#2] ; switch jump .text:0001EA48 B loc_1EB90 ; jumptable 0001EA44 default case .text:0001EA48 ; --------------------------------------------------------------------------- .text:0001EA4C DCD loc_1EB60 ; jump table for switch statement .text:0001EA4C DCD loc_1EB90 .text:0001EA4C DCD loc_1EB90 .text:0001EA4C DCD loc_1EB90 .text:0001EA4C DCD loc_1EB90 .text:0001EA4C DCD loc_1EB90 .text:0001EA4C DCD loc_1EB90 .text:0001EA4C DCD loc_1EB90 .text:0001EA4C DCD loc_1EB90 .text:0001EA4C DCD loc_1EB90 .text:0001EA4C DCD loc_1EB90 .text:0001EA4C DCD loc_1EB90 .text:0001EA4C DCD loc_1EB90 .text:0001EA4C DCD loc_1EB90 .text:0001EA4C DCD loc_1EB70 .text:0001EA4C DCD loc_1EB90 .text:0001EA4C DCD loc_1EB90 .text:0001EA4C DCD loc_1EB90 .text:0001EA4C DCD loc_1EB90 .text:0001EA4C DCD loc_1EB90 .text:0001EA4C DCD loc_1EB90 .text:0001EA4C DCD loc_1EB90 .text:0001EA4C DCD loc_1EB90 .text:0001EA4C DCD loc_1EB90 .text:0001EA4C DCD loc_1EB90 .text:0001EA4C DCD loc_1EB90 .text:0001EA4C DCD loc_1EB90 .text:0001EA4C DCD loc_1EB90 .text:0001EA4C DCD loc_1EB08 .text:0001EA4C DCD loc_1EB90 .text:0001EA4C DCD loc_1EB80 .text:0001EA4C DCD loc_1EB90 .text:0001EA4C DCD loc_1EB3C .text:0001EA4C DCD loc_1EB90 .text:0001EA4C DCD loc_1EB90 .text:0001EA4C DCD loc_1EB90 .text:0001EA4C DCD loc_1EB90 .text:0001EA4C DCD loc_1EB60 .text:0001EA4C DCD loc_1EB90 .text:0001EA4C DCD loc_1EB90 .text:0001EA4C DCD loc_1EB70 .text:0001EA4C DCD loc_1EB90 .text:0001EA4C DCD loc_1EB90 .text:0001EA4C DCD loc_1EB90 .text:0001EA4C DCD loc_1EB90 .text:0001EA4C DCD loc_1EB90 .text:0001EA4C DCD loc_1EB70 .text:0001EB08 ; --------------------------------------------------------------------------- .text:0001EB08 .text:0001EB08 loc_1EB08 ; CODE XREF: vfprintf+2278j .text:0001EB08 ; DATA XREF: vfprintf+2280o .text:0001EB08 LDR R2, [R11,#var_4BC] ; jumptable 0001EA44 case 28 .text:0001EB0C LDRB R3, [R2] .text:0001EB10 CMP R3, #0x68 .text:0001EB14 LDRNEB R3, [R5,#0xC] .text:0001EB18 ORRNE R3, R3, #2 .text:0001EB1C STRNEB R3, [R5,#0xC] .text:0001EB20 BNE loc_1EB9C .text:0001EB24 ADD R2, R2, #1 .text:0001EB28 STR R2, [R11,#var_4BC] .text:0001EB2C LDRB R3, [R5,#0xD] .text:0001EB30 ORR R3, R3, #2 .text:0001EB34 STRB R3, [R5,#0xD] .text:0001EB38 B loc_1EB9C .text:0001EB3C ; --------------------------------------------------------------------------- .text:0001EB3C .text:0001EB3C loc_1EB3C ; CODE XREF: vfprintf+2278j .text:0001EB3C ; DATA XREF: vfprintf+2280o .text:0001EB3C LDRB R3, [R5,#0xC] ; jumptable 0001EA44 case 32 .text:0001EB40 ORR R3, R3, #4 .text:0001EB44 STRB R3, [R5,#0xC] .text:0001EB48 LDR R2, [R11,#var_4BC] .text:0001EB4C LDRB R3, [R2] .text:0001EB50 CMP R3, #0x6C .text:0001EB54 BNE loc_1EB9C .text:0001EB58 ADD R3, R2, #1 .text:0001EB5C STR R3, [R11,#var_4BC] .text:0001EB60 .text:0001EB60 loc_1EB60 ; CODE XREF: vfprintf+2278j .text:0001EB60 ; DATA XREF: vfprintf+2280o .text:0001EB60 LDRB R3, [R5,#0xC] ; jumptable 0001EA44 cases 0,37 .text:0001EB64 ORR R3, R3, #1 .text:0001EB68 STRB R3, [R5,#0xC] .text:0001EB6C B loc_1EB9C .text:0001EB70 ; --------------------------------------------------------------------------- .text:0001EB70 .text:0001EB70 loc_1EB70 ; CODE XREF: vfprintf+2278j .text:0001EB70 ; DATA XREF: vfprintf+2280o .text:0001EB70 LDRB R3, [R5,#0xC] ; jumptable 0001EA44 cases 14,40,46 .text:0001EB74 AND R3, R3, #0xFA .text:0001EB78 STRB R3, [R5,#0xC] .text:0001EB7C B loc_1EB9C .text:0001EB80 ; --------------------------------------------------------------------------- .text:0001EB80 .text:0001EB80 loc_1EB80 ; CODE XREF: vfprintf+2278j .text:0001EB80 ; DATA XREF: vfprintf+2280o .text:0001EB80 LDRB R3, [R5,#0xC] ; jumptable 0001EA44 case 30 .text:0001EB84 ORR R3, R3, #5 .text:0001EB88 STRB R3, [R5,#0xC] .text:0001EB8C B loc_1EB9C .text:0001EB90 ; --------------------------------------------------------------------------- .text:0001EB90 .text:0001EB90 loc_1EB90 ; CODE XREF: vfprintf+2278j .text:0001EB90 ; vfprintf+227Cj .text:0001EB90 ; DATA XREF: ... .text:0001EB90 LDR R3, [R11,#var_4BC] ; jumptable 0001EA44 default case .text:0001EB94 SUB R3, R3, #1 .text:0001EB98 STR R3, [R11,#var_4BC] .text:0001EB9C .text:0001EB9C loc_1EB9C ; CODE XREF: vfprintf+2354j .text:0001EB9C ; vfprintf+236Cj ... .text:0001EB9C LDR R3, [R11,#var_4BC] .text:0001EBA0 LDRB R2, [R3],#1 .text:0001EBA4 STR R2, [R5,#8] .text:0001EBA8 STR R3, [R11,#var_4BC] .text:0001EBAC LDR R1, =__printf_function_table .text:0001EBB0 LDR R2, [R1] .text:0001EBB4 CMP R2, #0 .text:0001EBB8 BEQ loc_1EBF4 .text:0001EBBC LDR R2, [R5,#8] .text:0001EBC0 CMP R2, #0xFF .text:0001EBC4 BGT loc_1EBF4 .text:0001EBC8 LDR R3, =__printf_arginfo_table .text:0001EBCC LDR R3, [R3,R2,LSL#2] .text:0001EBD0 CMP R3, #0 .text:0001EBD4 BEQ loc_1EBF4 .text:0001EBD8 MOV R0, R5 .text:0001EBDC MOV R1, #1 .text:0001EBE0 ADD R2, R5, #0x28 .text:0001EBE4 MOV LR, PC .text:0001EBE8 MOV PC, R3 .text:0001EBEC STR R0, [R5,#0x2C] .text:0001EBF0 B loc_1ED8C .text:0001EBF4 ; --------------------------------------------------------------------------- .text:0001EBF4 .text:0001EBF4 loc_1EBF4 ; CODE XREF: vfprintf+23ECj .text:0001EBF4 ; vfprintf+23F8j ... .text:0001EBF4 MOV R2, #1 .text:0001EBF8 STR R2, [R5,#0x2C] .text:0001EBFC LDR R3, [R5,#8] .text:0001EC00 SUB R3, R3, #0x41 .text:0001EC04 CMP R3, #0x37 ; switch 56 cases .text:0001EC08 LDRLS PC, [PC,R3,LSL#2] ; switch jump .text:0001EC0C B loc_1ED84 ; jumptable 0001EC08 default case .text:0001EC0C ; --------------------------------------------------------------------------- .text:0001EC10 DCD loc_1ED38, loc_1ED84, loc_1ED5C, loc_1ED84, loc_1ED38 ; jump table for switch statement .text:0001EC10 DCD loc_1ED38, loc_1ED38, loc_1ED84, loc_1ED84, loc_1ED84 .text:0001EC10 DCD loc_1ED84, loc_1ED84, loc_1ED84, loc_1ED84, loc_1ED84 .text:0001EC10 DCD loc_1ED84, loc_1ED84, loc_1ED84, loc_1ED6C, loc_1ED84 .text:0001EC10 DCD loc_1ED84, loc_1ED84, loc_1ED84, loc_1ECF0, loc_1ED84 .text:0001EC10 DCD loc_1ED84, loc_1ED84, loc_1ED84, loc_1ED84, loc_1ED84 .text:0001EC10 DCD loc_1ED84, loc_1ED84, loc_1ED38, loc_1ED84, loc_1ED54 .text:0001EC10 DCD loc_1ECF0, loc_1ED38, loc_1ED38, loc_1ED38, loc_1ED84 .text:0001EC10 DCD loc_1ECF0, loc_1ED84, loc_1ED84, loc_1ED84, loc_1ED84 .text:0001EC10 DCD loc_1ED7C, loc_1ECF0, loc_1ED74, loc_1ED84, loc_1ED84 .text:0001EC10 DCD loc_1ED64, loc_1ED84, loc_1ECF0, loc_1ED84, loc_1ED84 .text:0001EC10 DCD loc_1ECF0 .text:0001ECF0 ; --------------------------------------------------------------------------- .text:0001ECF0 .text:0001ECF0 loc_1ECF0 ; CODE XREF: vfprintf+243Cj .text:0001ECF0 ; DATA XREF: vfprintf+2444o .text:0001ECF0 LDRB R3, [R5,#0xC] ; jumptable 0001EC08 cases 23,35,40,46,52,55 .text:0001ECF4 TST R3, #1 .text:0001ECF8 BEQ loc_1ED08 .text:0001ECFC MOV R3, #0x100 .text:0001ED00 .text:0001ED00 loc_1ED00 ; CODE XREF: vfprintf+2548j .text:0001ED00 ; vfprintf+2554j ... .text:0001ED00 STR R3, [R5,#0x28] .text:0001ED04 B loc_1ED8C .text:0001ED08 ; --------------------------------------------------------------------------- .text:0001ED08 .text:0001ED08 loc_1ED08 ; CODE XREF: vfprintf+252Cj .text:0001ED08 AND R3, R3, #0xFF .text:0001ED0C TST R3, #4 .text:0001ED10 MOVNE R3, #0x200 .text:0001ED14 BNE loc_1ED00 .text:0001ED18 TST R3, #2 .text:0001ED1C MOV R3, #0x400 .text:0001ED20 BNE loc_1ED00 .text:0001ED24 LDRB R3, [R5,#0xD] .text:0001ED28 MOV R3, R3,LSR#1 .text:0001ED2C ANDS R3, R3, #1 .text:0001ED30 BNE loc_1ED54 ; jumptable 0001EC08 case 34 .text:0001ED34 B loc_1ED00 .text:0001ED38 ; --------------------------------------------------------------------------- .text:0001ED38 .text:0001ED38 loc_1ED38 ; CODE XREF: vfprintf+243Cj .text:0001ED38 ; DATA XREF: vfprintf+2444o .text:0001ED38 LDRB R3, [R5,#0xC] ; jumptable 0001EC08 cases 0,4-6,32,36-38 .text:0001ED3C TST R3, #1 .text:0001ED40 MOVNE R3, 0x107 .text:0001ED48 BNE loc_1ED00 .text:0001ED4C MOV R3, #7 .text:0001ED50 B loc_1ED00 .text:0001ED54 ; --------------------------------------------------------------------------- .text:0001ED54 .text:0001ED54 loc_1ED54 ; CODE XREF: vfprintf+243Cj .text:0001ED54 ; vfprintf+2564j .text:0001ED54 ; DATA XREF: ... .text:0001ED54 MOV R3, #1 ; jumptable 0001EC08 case 34 .text:0001ED58 B loc_1ED00 .text:0001ED5C ; --------------------------------------------------------------------------- .text:0001ED5C .text:0001ED5C loc_1ED5C ; CODE XREF: vfprintf+243Cj .text:0001ED5C ; DATA XREF: vfprintf+2444o .text:0001ED5C MOV R3, #2 ; jumptable 0001EC08 case 2 .text:0001ED60 B loc_1ED00 .text:0001ED64 ; --------------------------------------------------------------------------- .text:0001ED64 .text:0001ED64 loc_1ED64 ; CODE XREF: vfprintf+243Cj .text:0001ED64 ; DATA XREF: vfprintf+2444o .text:0001ED64 MOV R3, #3 ; jumptable 0001EC08 case 50 .text:0001ED68 B loc_1ED00 .text:0001ED6C ; --------------------------------------------------------------------------- .text:0001ED6C .text:0001ED6C loc_1ED6C ; CODE XREF: vfprintf+243Cj .text:0001ED6C ; DATA XREF: vfprintf+2444o .text:0001ED6C MOV R3, #4 ; jumptable 0001EC08 case 18 .text:0001ED70 B loc_1ED00 .text:0001ED74 ; --------------------------------------------------------------------------- .text:0001ED74 .text:0001ED74 loc_1ED74 ; CODE XREF: vfprintf+243Cj .text:0001ED74 ; DATA XREF: vfprintf+2444o .text:0001ED74 MOV R3, #5 ; jumptable 0001EC08 case 47 .text:0001ED78 B loc_1ED00 .text:0001ED7C ; --------------------------------------------------------------------------- .text:0001ED7C .text:0001ED7C loc_1ED7C ; CODE XREF: vfprintf+243Cj .text:0001ED7C ; DATA XREF: vfprintf+2444o .text:0001ED7C MOV R3, #0x800 ; jumptable 0001EC08 case 45 .text:0001ED80 B loc_1ED00 .text:0001ED84 ; --------------------------------------------------------------------------- .text:0001ED84 .text:0001ED84 loc_1ED84 ; CODE XREF: vfprintf+243Cj .text:0001ED84 ; vfprintf+2440j .text:0001ED84 ; DATA XREF: ... .text:0001ED84 MOV R3, #0 ; jumptable 0001EC08 default case .text:0001ED88 STR R3, [R5,#0x2C] .text:0001ED8C .text:0001ED8C loc_1ED8C ; CODE XREF: vfprintf+2424j .text:0001ED8C ; vfprintf+2538j .text:0001ED8C LDR R3, [R5,#0x24] .text:0001ED90 CMN R3, #1 .text:0001ED94 BNE loc_1EDB0 .text:0001ED98 LDR R3, [R5,#0x2C] .text:0001ED9C CMP R3, #0 .text:0001EDA0 LDRNE R2, [R11,#var_570] .text:0001EDA4 ADDNE R2, R2, R3 .text:0001EDA8 STRNE R2, [R11,#var_570] .text:0001EDAC STRNE R7, [R5,#0x24] .text:0001EDB0 .text:0001EDB0 loc_1EDB0 ; CODE XREF: vfprintf+25C8j .text:0001EDB0 LDR R3, [R5,#8] .text:0001EDB4 CMP R3, #0 .text:0001EDB8 BNE loc_1EDDC .text:0001EDBC LDR R3, [R11,#var_4BC] .text:0001EDC0 SUB R3, R3, #1 .text:0001EDC4 STR R3, [R5,#0x18] .text:0001EDC8 LDR R4, [R11,#var_568] .text:0001EDCC LDR R12, [R11,#var_570] .text:0001EDD0 STR R3, [R5,#0x14] .text:0001EDD4 ADD R7, R4, R12 .text:0001EDD8 B loc_1EE54 .text:0001EDDC ; --------------------------------------------------------------------------- .text:0001EDDC .text:0001EDDC loc_1EDDC ; CODE XREF: vfprintf+25ECj .text:0001EDDC LDR R3, [R11,#var_4BC] .text:0001EDE0 STR R3, [R5,#0x14] .text:0001EDE4 LDR R4, [R11,#var_4BC] .text:0001EDE8 LDR R0, [R11,#var_568] .text:0001EDEC LDR R1, [R11,#var_570] .text:0001EDF0 LDRB R3, [R4] .text:0001EDF4 ADD R7, R0, R1 .text:0001EDF8 CMP R3, #0 .text:0001EDFC CMPNE R3, #0x25 .text:0001EE00 BEQ loc_1EE50 .text:0001EE04 .text:0001EE04 loc_1EE04 ; CODE XREF: vfprintf+2680j .text:0001EE04 MOV R3, #0 .text:0001EE08 STR R3, [R11,#var_478] .text:0001EE0C LDRB R2, [R4] .text:0001EE10 TST R2, #0x80 .text:0001EE14 BEQ loc_1EE3C .text:0001EE18 BL __ctype_get_mb_cur_max .text:0001EE1C MOV R1, R0 .text:0001EE20 MOV R0, R4 .text:0001EE24 SUB R2, R11, #-var_470 .text:0001EE28 SUB R2, R2, #8 .text:0001EE2C BL mbrlen .text:0001EE30 CMP R0, #0 .text:0001EE34 ADDGT R4, R4, R0 .text:0001EE38 BGT loc_1EE40 .text:0001EE3C .text:0001EE3C loc_1EE3C ; CODE XREF: vfprintf+2648j .text:0001EE3C ADD R4, R4, #1 .text:0001EE40 .text:0001EE40 loc_1EE40 ; CODE XREF: vfprintf+266Cj .text:0001EE40 LDRB R3, [R4] .text:0001EE44 CMP R3, #0 .text:0001EE48 CMPNE R3, #0x25 .text:0001EE4C BNE loc_1EE04 .text:0001EE50 .text:0001EE50 loc_1EE50 ; CODE XREF: vfprintf+2634j .text:0001EE50 STR R4, [R5,#0x18] .text:0001EE54 .text:0001EE54 loc_1EE54 ; CODE XREF: vfprintf+260Cj .text:0001EE54 LDR R2, [R11,#var_5C8] .text:0001EE58 LDR R4, [R11,#var_560] .text:0001EE5C LDR R12, [R11,#var_564] .text:0001EE60 ADD R3, R2, R4 .text:0001EE64 ADD R3, R12, R3,LSL#4 .text:0001EE68 LDR R2, [R3,#0x18] .text:0001EE6C STR R7, [R11,#var_568] .text:0001EE70 STR R2, [R11,#var_480] .text:0001EE74 LDR R0, [R11,#var_5C4] .text:0001EE78 LDRB R3, [R2] .text:0001EE7C STR R0, [R11,#var_560] .text:0001EE80 CMP R3, #0 .text:0001EE84 BNE loc_1E4A0 .text:0001EE88 .text:0001EE88 loc_1EE88 ; CODE XREF: vfprintf+1CD0j .text:0001EE88 LDR R3, [R11,#var_4B8] .text:0001EE8C MOV R1, #0 .text:0001EE90 LDR R8, [R11,#var_568] .text:0001EE94 MOV R5, R1 .text:0001EE98 CMP R3, R8 .text:0001EE9C MOVCS R8, R3 .text:0001EEA0 MOV R2, R8,LSL#2 .text:0001EEA4 RSB SP, R2, SP .text:0001EEA8 ADD R6, SP, #0xBCC+var_BC8 .text:0001EEAC MOV R0, R6 .text:0001EEB0 BL memset .text:0001EEB4 SUB SP, SP, R8,LSL#3 .text:0001EEB8 LDR R1, [R11,#var_560] .text:0001EEBC ADD R2, SP, #0xBCC+var_BC8 .text:0001EEC0 STR R2, [R11,#var_56C] .text:0001EEC4 CMP R5, R1 .text:0001EEC8 BCS loc_1EF48 .text:0001EECC MOV R7, R5 .text:0001EED0 LDR R4, [R11,#var_564] .text:0001EED4 .text:0001EED4 loc_1EED4 ; CODE XREF: vfprintf+2778j .text:0001EED4 LDR R3, [R4,#0x20] .text:0001EED8 CMN R3, #1 .text:0001EEDC STRNE R7, [R6,R3,LSL#2] .text:0001EEE0 LDR R3, [R4,#0x1C] .text:0001EEE4 CMN R3, #1 .text:0001EEE8 STRNE R7, [R6,R3,LSL#2] .text:0001EEEC LDR R1, [R4,#0x2C] .text:0001EEF0 CMP R1, #0 .text:0001EEF4 BEQ loc_1EF34 .text:0001EEF8 CMP R1, #1 .text:0001EEFC BNE loc_1EF18 .text:0001EF00 ADD R2, R4, #0x24 .text:0001EF04 LDMIA R2, {R2,R3} .text:0001EF08 STR R3, [R6,R2,LSL#2] .text:0001EF0C B loc_1EF34 .text:0001EF0C ; --------------------------------------------------------------------------- .text:0001EF10 off_1EF10 DCD __printf_function_table ; DATA XREF: vfprintf+23E0r .text:0001EF14 off_1EF14 DCD __printf_arginfo_table ; DATA XREF: vfprintf+23FCr .text:0001EF18 ; --------------------------------------------------------------------------- .text:0001EF18 .text:0001EF18 loc_1EF18 ; CODE XREF: vfprintf+2730j .text:0001EF18 LDR R2, [R4,#0x24] .text:0001EF1C LDR R3, [R4,#8] .text:0001EF20 MOV R0, R4 .text:0001EF24 LDR R12, =__printf_arginfo_table .text:0001EF28 ADD R2, R6, R2,LSL#2 .text:0001EF2C MOV LR, PC .text:0001EF30 LDR PC, [R12,R3,LSL#2] .text:0001EF34 .text:0001EF34 loc_1EF34 ; CODE XREF: vfprintf+2728j .text:0001EF34 ; vfprintf+2740j .text:0001EF34 ADD R4, R4, #0x30 .text:0001EF38 LDR R0, [R11,#var_560] .text:0001EF3C ADD R5, R5, #1 .text:0001EF40 CMP R5, R0 .text:0001EF44 BCC loc_1EED4 .text:0001EF48 .text:0001EF48 loc_1EF48 ; CODE XREF: vfprintf+26FCj .text:0001EF48 MOV R5, #0 .text:0001EF4C CMP R5, R8 .text:0001EF50 BCS loc_1F0CC .text:0001EF54 MOV R0, 0x107 .text:0001EF5C MOV R1, R5 .text:0001EF60 LDR R2, [R11,#var_56C] .text:0001EF64 .text:0001EF64 loc_1EF64 ; CODE XREF: vfprintf+28FCj .text:0001EF64 LDR R3, [R6,R5,LSL#2] .text:0001EF68 CMP R3, #5 .text:0001EF6C BEQ loc_1F094 .text:0001EF70 BGT loc_1EFA8 .text:0001EF74 CMP R3, #2 .text:0001EF78 BEQ loc_1F028 .text:0001EF7C BGT loc_1EF94 .text:0001EF80 CMP R3, #0 .text:0001EF84 BEQ loc_1F028 .text:0001EF88 CMP R3, #1 .text:0001EF8C BEQ loc_1EFEC .text:0001EF90 B loc_1F08C .text:0001EF94 ; --------------------------------------------------------------------------- .text:0001EF94 .text:0001EF94 loc_1EF94 ; CODE XREF: vfprintf+27B0j .text:0001EF94 CMP R3, #3 .text:0001EF98 BEQ loc_1F094 .text:0001EF9C CMP R3, #4 .text:0001EFA0 BEQ loc_1F094 .text:0001EFA4 B loc_1F08C .text:0001EFA8 ; --------------------------------------------------------------------------- .text:0001EFA8 .text:0001EFA8 loc_1EFA8 ; CODE XREF: vfprintf+27A4j .text:0001EFA8 CMP R3, #0x100 .text:0001EFAC BEQ loc_1F040 .text:0001EFB0 BGT loc_1EFC8 .text:0001EFB4 CMP R3, #6 .text:0001EFB8 BEQ loc_1F054 .text:0001EFBC CMP R3, #7 .text:0001EFC0 BEQ loc_1F06C .text:0001EFC4 B loc_1F08C .text:0001EFC8 ; --------------------------------------------------------------------------- .text:0001EFC8 .text:0001EFC8 loc_1EFC8 ; CODE XREF: vfprintf+27E4j .text:0001EFC8 CMP R3, #0x200 .text:0001EFCC BEQ loc_1F028 .text:0001EFD0 BGT loc_1EFE0 .text:0001EFD4 CMP R3, R0 .text:0001EFD8 BEQ loc_1F07C .text:0001EFDC B loc_1F08C .text:0001EFE0 ; --------------------------------------------------------------------------- .text:0001EFE0 .text:0001EFE0 loc_1EFE0 ; CODE XREF: vfprintf+2804j .text:0001EFE0 CMP R3, #0x400 .text:0001EFE4 BEQ loc_1F008 .text:0001EFE8 B loc_1F08C .text:0001EFEC ; --------------------------------------------------------------------------- .text:0001EFEC .text:0001EFEC loc_1EFEC ; CODE XREF: vfprintf+27C0j .text:0001EFEC LDR R3, [R11,#var_500] .text:0001EFF0 ADD R3, R3, #4 .text:0001EFF4 STR R3, [R11,#var_500] .text:0001EFF8 LDR R4, [R11,#var_56C] .text:0001EFFC LDRB R3, [R3,#-4] .text:0001F000 STRB R3, [R1,R4] .text:0001F004 B loc_1F0B8 .text:0001F008 ; --------------------------------------------------------------------------- .text:0001F008 .text:0001F008 loc_1F008 ; CODE XREF: vfprintf+2818j .text:0001F008 LDR R12, [R11,#var_500] .text:0001F00C LDR R3, [R12],#4 .text:0001F010 STR R12, [R11,#var_500] .text:0001F014 LDR R4, [R11,#var_56C] .text:0001F018 STRB R3, [R1,R4] .text:0001F01C MOV R3, R3,ASR#8 .text:0001F020 STRB R3, [R2,#1] .text:0001F024 B loc_1F0B8 .text:0001F028 ; --------------------------------------------------------------------------- .text:0001F028 .text:0001F028 loc_1F028 ; CODE XREF: vfprintf+27ACj .text:0001F028 ; vfprintf+27B8j ... .text:0001F028 LDR R12, [R11,#var_500] .text:0001F02C LDR R3, [R12],#4 .text:0001F030 STR R12, [R11,#var_500] .text:0001F034 LDR R4, [R11,#var_56C] .text:0001F038 STR R3, [R1,R4] .text:0001F03C B loc_1F0B8 .text:0001F040 ; --------------------------------------------------------------------------- .text:0001F040 .text:0001F040 loc_1F040 ; CODE XREF: vfprintf+27E0j .text:0001F040 LDR R12, [R11,#var_500] .text:0001F044 LDMIA R12!, {R3,R4} .text:0001F048 STMIA R2, {R3,R4} .text:0001F04C STR R12, [R11,#var_500] .text:0001F050 B loc_1F0B8 .text:0001F054 ; --------------------------------------------------------------------------- .text:0001F054 .text:0001F054 loc_1F054 ; CODE XREF: vfprintf+27ECj .text:0001F054 LDR R3, [R11,#var_500] .text:0001F058 LDC p1, c8, [R3],#8 .text:0001F05C STR R3, [R11,#var_500] .text:0001F060 CDP p1, 0, c8,c0,c0, 0 .text:0001F064 STC p1, c0, [R2] .text:0001F068 B loc_1F0B8 .text:0001F06C ; --------------------------------------------------------------------------- .text:0001F06C .text:0001F06C loc_1F06C ; CODE XREF: vfprintf+27F4j .text:0001F06C LDR R12, [R11,#var_500] .text:0001F070 LDMIA R12!, {R3,R4} .text:0001F074 STR R12, [R11,#var_500] .text:0001F078 B loc_1F0B4 .text:0001F07C ; --------------------------------------------------------------------------- .text:0001F07C .text:0001F07C loc_1F07C ; CODE XREF: vfprintf+280Cj .text:0001F07C LDR R12, [R11,#var_500] .text:0001F080 LDMIA R12!, {R3,R4} .text:0001F084 STR R12, [R11,#var_500] .text:0001F088 B loc_1F0B4 .text:0001F08C ; --------------------------------------------------------------------------- .text:0001F08C .text:0001F08C loc_1F08C ; CODE XREF: vfprintf+27C4j .text:0001F08C ; vfprintf+27D8j ... .text:0001F08C TST R3, #0x800 .text:0001F090 BEQ loc_1F0AC .text:0001F094 .text:0001F094 loc_1F094 ; CODE XREF: vfprintf+27A0j .text:0001F094 ; vfprintf+27CCj ... .text:0001F094 LDR R4, [R11,#var_500] .text:0001F098 LDR R3, [R4],#4 .text:0001F09C STR R4, [R11,#var_500] .text:0001F0A0 LDR R12, [R11,#var_56C] .text:0001F0A4 STR R3, [R1,R12] .text:0001F0A8 B loc_1F0B8 .text:0001F0AC ; --------------------------------------------------------------------------- .text:0001F0AC .text:0001F0AC loc_1F0AC ; CODE XREF: vfprintf+28C4j .text:0001F0AC ADR R3, dword_1F2D0 .text:0001F0B0 LDMIA R3, {R3,R4} .text:0001F0B4 .text:0001F0B4 loc_1F0B4 ; CODE XREF: vfprintf+28ACj .text:0001F0B4 ; vfprintf+28BCj .text:0001F0B4 STMIA R2, {R3,R4} .text:0001F0B8 .text:0001F0B8 loc_1F0B8 ; CODE XREF: vfprintf+2838j .text:0001F0B8 ; vfprintf+2858j ... .text:0001F0B8 ADD R2, R2, #8 .text:0001F0BC ADD R1, R1, #8 .text:0001F0C0 ADD R5, R5, #1 .text:0001F0C4 CMP R5, R8 .text:0001F0C8 BCC loc_1EF64 .text:0001F0CC .text:0001F0CC loc_1F0CC ; CODE XREF: vfprintf+2784j .text:0001F0CC LDR R0, [R11,#var_504] .text:0001F0D0 LDR R1, [R11,#var_560] .text:0001F0D4 CMP R0, R1 .text:0001F0D8 BCS loc_20814 .text:0001F0DC .text:0001F0DC loc_1F0DC ; CODE XREF: vfprintf+4044j .text:0001F0DC LDR R3, [R11,#var_504] .text:0001F0E0 LDR R4, [R11,#var_564] .text:0001F0E4 MOV R2, R3,LSL#1 .text:0001F0E8 ADD R3, R2, R3 .text:0001F0EC MOV R3, R3,LSL#4 .text:0001F0F0 ADD LR, R3, R4 .text:0001F0F4 LDR R12, [LR,#4] .text:0001F0F8 STR R12, [R11,#var_5A8] .text:0001F0FC LDR R3, [R3,R4] .text:0001F100 STR R3, [R11,#var_5AC] .text:0001F104 LDRB R0, [LR,#0x10] .text:0001F108 STR R0, [R11,#var_5B4] .text:0001F10C LDRB R4, [LR,#0xC] .text:0001F110 STR R2, [R11,#var_5C0] .text:0001F114 AND R0, R4, #0xFF .text:0001F118 MOV R3, R0,LSR#3 .text:0001F11C LDRB R1, [LR,#8] .text:0001F120 AND R3, R3, #1 .text:0001F124 STR R3, [R11,#var_584] .text:0001F128 MOV R2, R0,LSR#4 .text:0001F12C AND R2, R2, #1 .text:0001F130 STR R2, [R11,#var_588] .text:0001F134 MOV R3, R0,LSR#5 .text:0001F138 AND R3, R3, #1 .text:0001F13C STR R3, [R11,#var_58C] .text:0001F140 MOV R2, R0,LSR#6 .text:0001F144 AND R2, R2, #1 .text:0001F148 STR R2, [R11,#var_590] .text:0001F14C STR R1, [R11,#var_5B8] .text:0001F150 LDRB R12, [LR,#0xC] .text:0001F154 MOV R0, R0,LSR#7 .text:0001F158 STR R0, [R11,#var_594] .text:0001F15C LDR R0, [LR,#0x20] .text:0001F160 AND R1, R12, #0xFF .text:0001F164 MOV R3, R1,LSR#2 .text:0001F168 AND R3, R3, #1 .text:0001F16C STR R3, [R11,#var_5A4] .text:0001F170 AND R12, R12, #1 .text:0001F174 STR R12, [R11,#var_598] .text:0001F178 CMN R0, #1 .text:0001F17C MOV R1, R1,LSR#1 .text:0001F180 LDRB R2, [LR,#0xD] .text:0001F184 AND R1, R1, #1 .text:0001F188 STR R1, [R11,#var_59C] .text:0001F18C MOV R3, R2,LSR#1 .text:0001F190 AND R3, R3, #1 .text:0001F194 STR R3, [R11,#var_5A0] .text:0001F198 MOV R2, R2,LSR#3 .text:0001F19C AND R2, R2, #1 .text:0001F1A0 STR R2, [R11,#var_5B0] .text:0001F1A4 BEQ loc_1F1DC .text:0001F1A8 LDR R2, [R11,#var_56C] .text:0001F1AC LDR R3, [R2,R0,LSL#3] .text:0001F1B0 CMP R3, #0 .text:0001F1B4 STR R3, [LR,#4] .text:0001F1B8 BGE loc_1F1D4 .text:0001F1BC RSB R3, R3, #0 .text:0001F1C0 STR R3, [LR,#4] .text:0001F1C4 MOV R3, #1 .text:0001F1C8 STR R3, [R11,#var_58C] .text:0001F1CC ORR R3, R4, #0x20 .text:0001F1D0 STRB R3, [LR,#0xC] .text:0001F1D4 .text:0001F1D4 loc_1F1D4 ; CODE XREF: vfprintf+29ECj .text:0001F1D4 LDR LR, [LR,#4] .text:0001F1D8 STR LR, [R11,#var_5A8] .text:0001F1DC .text:0001F1DC loc_1F1DC ; CODE XREF: vfprintf+29D8j .text:0001F1DC LDR R4, [R11,#var_5C0] .text:0001F1E0 LDR R12, [R11,#var_504] .text:0001F1E4 LDR R0, [R11,#var_564] .text:0001F1E8 ADD R3, R4, R12 .text:0001F1EC MOV R1, R3,LSL#4 .text:0001F1F0 ADD R2, R1, R0 .text:0001F1F4 LDR R3, [R2,#0x1C] .text:0001F1F8 CMN R3, #1 .text:0001F1FC BEQ loc_1F224 .text:0001F200 LDR R2, [R11,#var_56C] .text:0001F204 LDR R3, [R2,R3,LSL#3] .text:0001F208 CMP R3, #0 .text:0001F20C STR R3, [R1,R0] .text:0001F210 MOVLT R3, 0xFFFFFFFF .text:0001F214 STRLT R3, [R1,R0] .text:0001F218 LDR R3, [R11,#var_564] .text:0001F21C LDR R1, [R1,R3] .text:0001F220 STR R1, [R11,#var_5AC] .text:0001F224 .text:0001F224 loc_1F224 ; CODE XREF: vfprintf+2A30j .text:0001F224 LDR R3, [R11,#var_5A8] .text:0001F228 LDR R4, [R11,#var_5AC] .text:0001F22C CMP R3, R4 .text:0001F230 MOVLT R3, R4 .text:0001F234 ADD R1, R3, #0x20 .text:0001F238 CMP R1, #0x3E8 .text:0001F23C BLE loc_1F258 .text:0001F240 ADD R3, R3, #0x23 .text:0001F244 BIC R3, R3, #3 .text:0001F248 RSB SP, R3, SP .text:0001F24C ADD R2, SP, #0xBCC+var_BC8 .text:0001F250 ADD R2, R2, R1 .text:0001F254 STR R2, [R11,#var_4FC] .text:0001F258 .text:0001F258 loc_1F258 ; CODE XREF: vfprintf+2A70j .text:0001F258 LDR R12, [R11,#var_5B8] .text:0001F25C SUB R2, R12, #0x20 .text:0001F260 AND R3, R2, #0xFF .text:0001F264 CMP R3, #0x5A .text:0001F268 BHI loc_1F280 .text:0001F26C LDR R3, =jump_table.174 .text:0001F270 LDR R1, =step4_jumps.181 .text:0001F274 LDR R2, [R3,R2,LSL#2] .text:0001F278 LDR R3, [R1,R2,LSL#2] .text:0001F27C B loc_1F284 .text:0001F280 ; --------------------------------------------------------------------------- .text:0001F280 .text:0001F280 loc_1F280 ; CODE XREF: vfprintf+2A9Cj .text:0001F280 LDR R3, =loc_206B0 .text:0001F284 .text:0001F284 loc_1F284 ; CODE XREF: vfprintf+2AB0j .text:0001F284 MOV PC, R3 .text:0001F288 ; --------------------------------------------------------------------------- .text:0001F288 ADD R2, R10, #0x14 .text:0001F28C LDMIA R2, {R2,R3} .text:0001F290 MOV R1, #0x25 .text:0001F294 CMP R2, R3 .text:0001F298 BCC loc_1F2B0 .text:0001F29C MOV R0, R10 .text:0001F2A0 BL __overflow .text:0001F2A4 CMN R0, #1 .text:0001F2A8 BEQ loc_1E334 .text:0001F2AC B loc_1F2B8 .text:0001F2B0 ; --------------------------------------------------------------------------- .text:0001F2B0 .text:0001F2B0 loc_1F2B0 ; CODE XREF: vfprintf+2ACCj .text:0001F2B0 STRB R1, [R2],#1 .text:0001F2B4 STR R2, [R10,#0x14] .text:0001F2B8 .text:0001F2B8 loc_1F2B8 ; CODE XREF: vfprintf+2AE0j .text:0001F2B8 ADD R9, R9, #1 .text:0001F2BC LDR R0, [R11,#var_504] .text:0001F2C0 MOV R0, R0,LSL#1 .text:0001F2C4 STR R0, [R11,#var_5C0] .text:0001F2C8 B loc_207A4 .text:0001F2C8 ; --------------------------------------------------------------------------- .text:0001F2CC off_1F2CC DCD __printf_arginfo_table ; DATA XREF: vfprintf+2758r .text:0001F2D0 dword_1F2D0 DCD 0, 0 ; DATA XREF: vfprintf:loc_1F0ACo .text:0001F2D8 off_1F2D8 DCD jump_table.174 ; DATA XREF: vfprintf+2AA0r .text:0001F2DC off_1F2DC DCD step4_jumps.181 ; DATA XREF: vfprintf+2AA4r .text:0001F2E0 off_1F2E0 DCD loc_206B0 ; DATA XREF: vfprintf:loc_1F280r .text:0001F2E4 ; --------------------------------------------------------------------------- .text:0001F2E4 LDR R2, [R11,#var_598] .text:0001F2E8 MOV R1, #0xA .text:0001F2EC STR R1, [R11,#var_580] .text:0001F2F0 CMP R2, #0 .text:0001F2F4 BEQ loc_1F38C .text:0001F2F8 LDR R3, [R11,#var_504] .text:0001F2FC LDR R4, [R11,#var_564] .text:0001F300 MOV R2, R3,LSL#1 .text:0001F304 ADD R3, R2, R3 .text:0001F308 ADD R3, R4, R3,LSL#4 .text:0001F30C CMP R3, #0 .text:0001F310 STR R2, [R11,#var_5C0] .text:0001F314 LDREQ R12, [R11,#var_4F0] .text:0001F318 LDMEQIA R12!, {R7,R8} .text:0001F31C STREQ R12, [R11,#var_4F0] .text:0001F320 LDRNE R3, [R3,#0x24] .text:0001F324 LDRNE R0, [R11,#var_56C] .text:0001F328 ADDNE R3, R0, R3,LSL#3 .text:0001F32C LDMNEIA R3, {R7,R8} .text:0001F330 MOV R1, #0 .text:0001F334 CMP R8, R1 .text:0001F338 STR R1, [R11,#var_574] .text:0001F33C MOVLT R2, #1 .text:0001F340 STRLT R2, [R11,#var_574] .text:0001F344 LDR R12, [R11,#var_574] .text:0001F348 RSBS R3, R7, #0 .text:0001F34C RSC R4, R8, #0 .text:0001F350 EOR R1, R12, #1 .text:0001F354 MOV R2, #0 .text:0001F358 RSBS R5, R1, #0 .text:0001F35C RSC R6, R2, #0 .text:0001F360 MOV R2, R6 .text:0001F364 MOV R1, R5 .text:0001F368 AND R1, R1, R7 .text:0001F36C AND R2, R2, R8 .text:0001F370 BIC R3, R3, R5 .text:0001F374 BIC R4, R4, R6 .text:0001F378 ORR R1, R1, R3 .text:0001F37C ORR R2, R2, R4 .text:0001F380 SUB R12, R11, #-var_580 .text:0001F384 STMIB R12, {R1,R2} .text:0001F388 B loc_1F464 .text:0001F38C ; --------------------------------------------------------------------------- .text:0001F38C .text:0001F38C loc_1F38C ; CODE XREF: vfprintf+2B28j .text:0001F38C LDR R0, [R11,#var_504] .text:0001F390 LDR R1, [R11,#var_564] .text:0001F394 MOV R2, R0,LSL#1 .text:0001F398 ADD R3, R2, R0 .text:0001F39C ADD R3, R1, R3,LSL#4 .text:0001F3A0 CMP R3, #0 .text:0001F3A4 STR R2, [R11,#var_5C0] .text:0001F3A8 LDREQ R2, [R11,#var_4F0] .text:0001F3AC LDREQ R3, [R2],#4 .text:0001F3B0 STREQ R2, [R11,#var_4F0] .text:0001F3B4 LDRNE R3, [R3,#0x24] .text:0001F3B8 LDRNE R4, [R11,#var_56C] .text:0001F3BC LDRNE R3, [R4,R3,LSL#3] .text:0001F3C0 MOV R12, R3,LSR#31 .text:0001F3C4 STR R12, [R11,#var_574] .text:0001F3C8 CMP R3, #0 .text:0001F3CC RSBLT R3, R3, #0 .text:0001F3D0 STR R3, [R11,#var_57C] .text:0001F3D4 B loc_1F63C .text:0001F3D8 ; --------------------------------------------------------------------------- .text:0001F3D8 MOV R0, #0xA .text:0001F3DC STR R0, [R11,#var_580] .text:0001F3E0 B loc_1F3F8 .text:0001F3E4 ; --------------------------------------------------------------------------- .text:0001F3E4 MOV R1, #8 .text:0001F3E8 STR R1, [R11,#var_580] .text:0001F3EC B loc_1F3F8 .text:0001F3F0 ; --------------------------------------------------------------------------- .text:0001F3F0 MOV R2, #0x10 .text:0001F3F4 STR R2, [R11,#var_580] .text:0001F3F8 .text:0001F3F8 loc_1F3F8 ; CODE XREF: vfprintf+2C14j .text:0001F3F8 ; vfprintf+2C20j .text:0001F3F8 MOV R3, #0 .text:0001F3FC STR R3, [R11,#var_574] .text:0001F400 STR R3, [R11,#var_590] .text:0001F404 LDR R4, [R11,#var_598] .text:0001F408 STR R3, [R11,#var_588] .text:0001F40C CMP R4, R3 .text:0001F410 BEQ loc_1F560 .text:0001F414 LDR R12, [R11,#var_504] .text:0001F418 LDR R0, [R11,#var_564] .text:0001F41C MOV R2, R12,LSL#1 .text:0001F420 ADD R3, R2, R12 .text:0001F424 ADD R3, R0, R3,LSL#4 .text:0001F428 CMP R3, #0 .text:0001F42C STR R2, [R11,#var_5C0] .text:0001F430 BNE loc_1F44C .text:0001F434 LDR R12, [R11,#var_4F0] .text:0001F438 LDMIA R12!, {R2,R3} .text:0001F43C SUB R4, R11, #-var_580 .text:0001F440 STMIB R4, {R2,R3} .text:0001F444 STR R12, [R11,#var_4F0] .text:0001F448 B loc_1F464 .text:0001F44C ; --------------------------------------------------------------------------- .text:0001F44C .text:0001F44C loc_1F44C ; CODE XREF: vfprintf+2C64j .text:0001F44C LDR R3, [R3,#0x24] .text:0001F450 LDR R0, [R11,#var_56C] .text:0001F454 ADD R3, R0, R3,LSL#3 .text:0001F458 LDMIA R3, {R1,R2} .text:0001F45C SUB R4, R11, #-var_580 .text:0001F460 STMIB R4, {R1,R2} .text:0001F464 .text:0001F464 loc_1F464 ; CODE XREF: vfprintf+2BBCj .text:0001F464 ; vfprintf+2C7Cj .text:0001F464 LDR R12, [R11,#var_5AC] .text:0001F468 CMP R12, #0 .text:0001F46C MOVLT R0, #1 .text:0001F470 STRLT R0, [R11,#var_5AC] .text:0001F474 MOVGE R1, #0x20 .text:0001F478 STRGE R1, [R11,#var_5B4] .text:0001F47C LDR R2, [R11,#var_5AC] .text:0001F480 CMP R2, #0 .text:0001F484 BNE loc_1F4C4 .text:0001F488 LDR R3, [R11,#var_57C] .text:0001F48C LDR R4, [R11,#var_578] .text:0001F490 ORRS R3, R3, R4 .text:0001F494 BNE loc_1F4C4 .text:0001F498 LDR R7, [R11,#var_4FC] .text:0001F49C LDR R12, [R11,#var_584] .text:0001F4A0 LDR R0, [R11,#var_580] .text:0001F4A4 SUBS R3, R12, #0 .text:0001F4A8 MOVNE R3, #1 .text:0001F4AC CMP R0, #8 .text:0001F4B0 MOVNE R3, #0 .text:0001F4B4 CMP R3, #0 .text:0001F4B8 MOVNE R3, #0x30 .text:0001F4BC STRNEB R3, [R7,#-1]! .text:0001F4C0 B loc_1F544 .text:0001F4C4 ; --------------------------------------------------------------------------- .text:0001F4C4 .text:0001F4C4 loc_1F4C4 ; CODE XREF: vfprintf+2CB8j .text:0001F4C4 ; vfprintf+2CC8j .text:0001F4C4 LDR R1, [R11,#var_5B8] .text:0001F4C8 CMP R1, #0x58 .text:0001F4CC MOVNE R3, #0 .text:0001F4D0 MOVEQ R3, #1 .text:0001F4D4 STR R3, [SP,#0xBCC+var_BCC] .text:0001F4D8 LDR R3, [R11,#var_580] .text:0001F4DC SUB R2, R11, #-var_580 .text:0001F4E0 LDMIB R2, {R0,R1} .text:0001F4E4 LDR R2, [R11,#var_4FC] .text:0001F4E8 BL _itoa .text:0001F4EC LDR R3, [R11,#var_594] .text:0001F4F0 LDR R4, [R11,#var_4F8] .text:0001F4F4 MOV R7, R0 .text:0001F4F8 CMP R3, #0 .text:0001F4FC CMPNE R4, #0 .text:0001F500 BEQ loc_1F518 .text:0001F504 LDR R1, [R11,#var_4FC] .text:0001F508 LDR R3, [R11,#var_4F4] .text:0001F50C MOV R2, R4 .text:0001F510 BL group_number .text:0001F514 MOV R7, R0 .text:0001F518 .text:0001F518 loc_1F518 ; CODE XREF: vfprintf+2D34j .text:0001F518 LDR R12, [R11,#var_580] .text:0001F51C LDR R0, [R11,#var_5B0] .text:0001F520 CMP R12, #0xA .text:0001F524 MOVNE R3, #0 .text:0001F528 MOVEQ R3, #1 .text:0001F52C TST R0, R3 .text:0001F530 BEQ loc_1F544 .text:0001F534 LDR R1, [R11,#var_4FC] .text:0001F538 MOV R0, R7 .text:0001F53C BL _i18n_number_rewrite .text:0001F540 MOV R7, R0 .text:0001F544 .text:0001F544 loc_1F544 ; CODE XREF: vfprintf+2CF4j .text:0001F544 ; vfprintf+2D64j .text:0001F544 LDR R1, [R11,#var_57C] .text:0001F548 LDR R2, [R11,#var_578] .text:0001F54C ORRS R1, R1, R2 .text:0001F550 MOVEQ R3, #0 .text:0001F554 MOVNE R3, #1 .text:0001F558 STR R3, [R11,#var_57C] .text:0001F55C B loc_1F7C4 .text:0001F560 ; --------------------------------------------------------------------------- .text:0001F560 .text:0001F560 loc_1F560 ; CODE XREF: vfprintf+2C44j .text:0001F560 LDR R4, [R11,#var_504] .text:0001F564 LDR R12, [R11,#var_564] .text:0001F568 MOV R2, R4,LSL#1 .text:0001F56C ADD R3, R2, R4 .text:0001F570 ADD R3, R12, R3,LSL#4 .text:0001F574 CMP R3, #0 .text:0001F578 STR R2, [R11,#var_5C0] .text:0001F57C BNE loc_1F5DC .text:0001F580 LDR R0, [R11,#var_5A0] .text:0001F584 CMP R0, #0 .text:0001F588 BEQ loc_1F5A0 .text:0001F58C LDR R1, [R11,#var_4F0] .text:0001F590 ADD R1, R1, #4 .text:0001F594 STR R1, [R11,#var_4F0] .text:0001F598 LDRB R2, [R1,#-4] .text:0001F59C B loc_1F638 .text:0001F5A0 ; --------------------------------------------------------------------------- .text:0001F5A0 .text:0001F5A0 loc_1F5A0 ; CODE XREF: vfprintf+2DBCj .text:0001F5A0 LDR R3, [R11,#var_59C] .text:0001F5A4 CMP R3, #0 .text:0001F5A8 BNE loc_1F5C0 .text:0001F5AC LDR R4, [R11,#var_4F0] .text:0001F5B0 LDR R12, [R4],#4 .text:0001F5B4 STR R12, [R11,#var_57C] .text:0001F5B8 STR R4, [R11,#var_4F0] .text:0001F5BC B loc_1F63C .text:0001F5C0 ; --------------------------------------------------------------------------- .text:0001F5C0 .text:0001F5C0 loc_1F5C0 ; CODE XREF: vfprintf+2DDCj .text:0001F5C0 LDR R0, [R11,#var_4F0] .text:0001F5C4 LDR R3, [R0],#4 .text:0001F5C8 STR R0, [R11,#var_4F0] .text:0001F5CC MOV R3, R3,LSL#16 .text:0001F5D0 MOV R3, R3,LSR#16 .text:0001F5D4 STR R3, [R11,#var_57C] .text:0001F5D8 B loc_1F63C .text:0001F5DC ; --------------------------------------------------------------------------- .text:0001F5DC .text:0001F5DC loc_1F5DC ; CODE XREF: vfprintf+2DB0j .text:0001F5DC LDR R1, [R11,#var_5A0] .text:0001F5E0 CMP R1, #0 .text:0001F5E4 BEQ loc_1F5FC .text:0001F5E8 LDR R3, [R3,#0x24] .text:0001F5EC LDR R2, [R11,#var_56C] .text:0001F5F0 LDRB R3, [R2,R3,LSL#3] .text:0001F5F4 STR R3, [R11,#var_57C] .text:0001F5F8 B loc_1F63C .text:0001F5FC ; --------------------------------------------------------------------------- .text:0001F5FC .text:0001F5FC loc_1F5FC ; CODE XREF: vfprintf+2E18j .text:0001F5FC LDR R4, [R11,#var_59C] .text:0001F600 CMP R4, #0 .text:0001F604 BNE loc_1F61C .text:0001F608 LDR R3, [R3,#0x24] .text:0001F60C LDR R12, [R11,#var_56C] .text:0001F610 LDR R3, [R12,R3,LSL#3] .text:0001F614 STR R3, [R11,#var_57C] .text:0001F618 B loc_1F63C .text:0001F61C ; --------------------------------------------------------------------------- .text:0001F61C .text:0001F61C loc_1F61C ; CODE XREF: vfprintf+2E38j .text:0001F61C LDR R3, [R3,#0x24] .text:0001F620 LDR R0, [R11,#var_56C] .text:0001F624 MOV R3, R3,LSL#3 .text:0001F628 LDRB R1, [R3,R0] .text:0001F62C ADD R3, R3, R0 .text:0001F630 LDRB R2, [R3,#1] .text:0001F634 ORR R2, R1, R2,LSL#8 .text:0001F638 .text:0001F638 loc_1F638 ; CODE XREF: vfprintf+2DD0j .text:0001F638 STR R2, [R11,#var_57C] .text:0001F63C .text:0001F63C loc_1F63C ; CODE XREF: vfprintf+2C08j .text:0001F63C ; vfprintf+2DF0j ... .text:0001F63C LDR R1, [R11,#var_5AC] .text:0001F640 CMP R1, #0 .text:0001F644 MOVLT R2, #1 .text:0001F648 STRLT R2, [R11,#var_5AC] .text:0001F64C MOVGE R3, #0x20 .text:0001F650 STRGE R3, [R11,#var_5B4] .text:0001F654 LDR R4, [R11,#var_5AC] .text:0001F658 CMP R4, #0 .text:0001F65C BNE loc_1F698 .text:0001F660 LDR R12, [R11,#var_57C] .text:0001F664 CMP R12, #0 .text:0001F668 BNE loc_1F698 .text:0001F66C LDR R7, [R11,#var_4FC] .text:0001F670 LDR R0, [R11,#var_584] .text:0001F674 LDR R1, [R11,#var_580] .text:0001F678 SUBS R3, R0, #0 .text:0001F67C MOVNE R3, #1 .text:0001F680 CMP R1, #8 .text:0001F684 MOVNE R3, #0 .text:0001F688 CMP R3, #0 .text:0001F68C MOVNE R3, #0x30 .text:0001F690 STRNEB R3, [R7,#-1]! .text:0001F694 B loc_1F7C4 .text:0001F698 ; --------------------------------------------------------------------------- .text:0001F698 .text:0001F698 loc_1F698 ; CODE XREF: vfprintf+2E90j .text:0001F698 ; vfprintf+2E9Cj .text:0001F698 LDR R7, =_itoa_lower_digits .text:0001F69C LDR R4, [R11,#var_57C] .text:0001F6A0 LDR R2, [R11,#var_5B8] .text:0001F6A4 LDR R3, =_itoa_upper_digits ; "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" .text:0001F6A8 CMP R2, #0x58 .text:0001F6AC MOVEQ R7, R3 .text:0001F6B0 LDR R3, [R11,#var_580] .text:0001F6B4 LDR R5, [R11,#var_4FC] .text:0001F6B8 CMP R3, #0xA .text:0001F6BC BEQ loc_1F6E0 .text:0001F6C0 BHI loc_1F6D0 .text:0001F6C4 CMP R3, #8 .text:0001F6C8 BEQ loc_1F724 .text:0001F6CC B loc_1F73C .text:0001F6D0 ; --------------------------------------------------------------------------- .text:0001F6D0 .text:0001F6D0 loc_1F6D0 ; CODE XREF: vfprintf+2EF4j .text:0001F6D0 LDR R12, [R11,#var_580] .text:0001F6D4 CMP R12, #0x10 .text:0001F6D8 BEQ loc_1F70C .text:0001F6DC B loc_1F73C .text:0001F6E0 ; --------------------------------------------------------------------------- .text:0001F6E0 .text:0001F6E0 loc_1F6E0 ; CODE XREF: vfprintf+2EF0j .text:0001F6E0 ; vfprintf+2F38j .text:0001F6E0 MOV R0, R4 .text:0001F6E4 MOV R1, #0xA .text:0001F6E8 BL __umodsi3 .text:0001F6EC LDRB R3, [R7,R0] .text:0001F6F0 STRB R3, [R5,#-1]! .text:0001F6F4 MOV R0, R4 .text:0001F6F8 MOV R1, #0xA .text:0001F6FC BL __udivsi3 .text:0001F700 SUBS R4, R0, #0 .text:0001F704 BNE loc_1F6E0 .text:0001F708 B loc_1F768 .text:0001F70C ; --------------------------------------------------------------------------- .text:0001F70C .text:0001F70C loc_1F70C ; CODE XREF: vfprintf+2F0Cj .text:0001F70C ; vfprintf+2F50j .text:0001F70C AND R3, R4, #0xF .text:0001F710 LDRB R2, [R7,R3] .text:0001F714 MOVS R4, R4,LSR#4 .text:0001F718 STRB R2, [R5,#-1]! .text:0001F71C BNE loc_1F70C .text:0001F720 B loc_1F768 .text:0001F724 ; --------------------------------------------------------------------------- .text:0001F724 .text:0001F724 loc_1F724 ; CODE XREF: vfprintf+2EFCj .text:0001F724 ; vfprintf+2F68j .text:0001F724 AND R3, R4, #7 .text:0001F728 LDRB R2, [R7,R3] .text:0001F72C MOVS R4, R4,LSR#3 .text:0001F730 STRB R2, [R5,#-1]! .text:0001F734 BNE loc_1F724 .text:0001F738 B loc_1F768 .text:0001F73C ; --------------------------------------------------------------------------- .text:0001F73C .text:0001F73C loc_1F73C ; CODE XREF: vfprintf+2F00j .text:0001F73C ; vfprintf+2F10j ... .text:0001F73C LDR R1, [R11,#var_580] .text:0001F740 MOV R0, R4 .text:0001F744 BL __umodsi3 .text:0001F748 LDRB R3, [R7,R0] .text:0001F74C STRB R3, [R5,#-1]! .text:0001F750 LDR R1, [R11,#var_580] .text:0001F754 MOV R0, R4 .text:0001F758 BL __udivsi3 .text:0001F75C MOV R4, R0 .text:0001F760 CMP R4, #0 .text:0001F764 BNE loc_1F73C .text:0001F768 .text:0001F768 loc_1F768 ; CODE XREF: vfprintf+2F3Cj .text:0001F768 ; vfprintf+2F54j ... .text:0001F768 LDR R0, [R11,#var_594] .text:0001F76C LDR R1, [R11,#var_4F8] .text:0001F770 MOV R7, R5 .text:0001F774 CMP R0, #0 .text:0001F778 CMPNE R1, #0 .text:0001F77C BEQ loc_1F798 .text:0001F780 LDR R1, [R11,#var_4FC] .text:0001F784 LDR R2, [R11,#var_4F8] .text:0001F788 LDR R3, [R11,#var_4F4] .text:0001F78C MOV R0, R7 .text:0001F790 BL group_number .text:0001F794 MOV R7, R0 .text:0001F798 .text:0001F798 loc_1F798 ; CODE XREF: vfprintf+2FB0j .text:0001F798 LDR R2, [R11,#var_580] .text:0001F79C LDR R4, [R11,#var_5B0] .text:0001F7A0 CMP R2, #0xA .text:0001F7A4 MOVNE R3, #0 .text:0001F7A8 MOVEQ R3, #1 .text:0001F7AC TST R4, R3 .text:0001F7B0 BEQ loc_1F7C4 .text:0001F7B4 LDR R1, [R11,#var_4FC] .text:0001F7B8 MOV R0, R7 .text:0001F7BC BL _i18n_number_rewrite .text:0001F7C0 MOV R7, R0 .text:0001F7C4 .text:0001F7C4 loc_1F7C4 ; CODE XREF: vfprintf+2D90j .text:0001F7C4 ; vfprintf+2EC8j ... .text:0001F7C4 LDR R12, [R11,#var_4FC] .text:0001F7C8 LDR R0, [R11,#var_5AC] .text:0001F7CC RSB R3, R7, R12 .text:0001F7D0 CMP R0, R3 .text:0001F7D4 BGT loc_1F7FC .text:0001F7D8 LDR R1, [R11,#var_57C] .text:0001F7DC LDR R2, [R11,#var_584] .text:0001F7E0 CMP R1, #0 .text:0001F7E4 CMPNE R2, #0 .text:0001F7E8 BEQ loc_1F7FC .text:0001F7EC LDR R3, [R11,#var_580] .text:0001F7F0 CMP R3, #8 .text:0001F7F4 MOVEQ R3, #0x30 .text:0001F7F8 STREQB R3, [R7,#-1]! .text:0001F7FC .text:0001F7FC loc_1F7FC ; CODE XREF: vfprintf+3008j .text:0001F7FC ; vfprintf+301Cj .text:0001F7FC LDR R4, [R11,#var_4FC] .text:0001F800 LDR R12, [R11,#var_5AC] .text:0001F804 LDR R0, [R11,#var_58C] .text:0001F808 RSB R3, R7, R4 .text:0001F80C RSB R12, R3, R12 .text:0001F810 CMP R12, #0 .text:0001F814 MOVLT R12, #0 .text:0001F818 CMP R0, #0 .text:0001F81C MOV R4, R3 .text:0001F820 STR R12, [R11,#var_5AC] .text:0001F824 BNE loc_1FA2C .text:0001F828 LDR R1, [R11,#var_5A8] .text:0001F82C ADD R3, R4, R12 .text:0001F830 LDR R2, [R11,#var_57C] .text:0001F834 RSB R1, R3, R1 .text:0001F838 LDR R3, [R11,#var_584] .text:0001F83C STR R1, [R11,#var_5A8] .text:0001F840 CMP R2, #0 .text:0001F844 CMPNE R3, #0 .text:0001F848 BEQ loc_1F860 .text:0001F84C LDR R12, [R11,#var_580] .text:0001F850 SUB R3, R1, #2 .text:0001F854 CMP R12, #0x10 .text:0001F858 MOVEQ R1, R3 .text:0001F85C STR R1, [R11,#var_5A8] .text:0001F860 .text:0001F860 loc_1F860 ; CODE XREF: vfprintf+307Cj .text:0001F860 LDR R0, [R11,#var_574] .text:0001F864 LDR R1, [R11,#var_590] .text:0001F868 CMP R1, #0 .text:0001F86C CMPEQ R0, #0 .text:0001F870 BNE loc_1F880 .text:0001F874 LDR R2, [R11,#var_588] .text:0001F878 CMP R2, #0 .text:0001F87C BEQ loc_1F88C .text:0001F880 .text:0001F880 loc_1F880 ; CODE XREF: vfprintf+30A4j .text:0001F880 LDR R3, [R11,#var_5A8] .text:0001F884 SUB R3, R3, #1 .text:0001F888 STR R3, [R11,#var_5A8] .text:0001F88C .text:0001F88C loc_1F88C ; CODE XREF: vfprintf+30B0j .text:0001F88C LDR R12, [R11,#var_5B4] .text:0001F890 CMP R12, #0x20 .text:0001F894 BNE loc_1F8C0 .text:0001F898 LDR R0, [R11,#var_5A8] .text:0001F89C CMP R0, #0 .text:0001F8A0 BLE loc_1F8B8 .text:0001F8A4 MOV R0, R10 .text:0001F8A8 LDR R2, [R11,#var_5A8] .text:0001F8AC MOV R1, R12 .text:0001F8B0 BL _IO_padn .text:0001F8B4 ADD R9, R9, R0 .text:0001F8B8 .text:0001F8B8 loc_1F8B8 ; CODE XREF: vfprintf+30D4j .text:0001F8B8 MOV R1, #0 .text:0001F8BC STR R1, [R11,#var_5A8] .text:0001F8C0 .text:0001F8C0 loc_1F8C0 ; CODE XREF: vfprintf+30C8j .text:0001F8C0 LDR R2, [R11,#var_574] .text:0001F8C4 CMP R2, #0 .text:0001F8C8 BEQ loc_1F8F4 .text:0001F8CC ADD R2, R10, #0x14 .text:0001F8D0 LDMIA R2, {R2,R3} .text:0001F8D4 MOV R1, #0x2D .text:0001F8D8 .text:0001F8D8 loc_1F8D8 ; CODE XREF: vfprintf+313Cj .text:0001F8D8 ; vfprintf+3158j .text:0001F8D8 CMP R2, R3 .text:0001F8DC BCC loc_1F928 .text:0001F8E0 MOV R0, R10 .text:0001F8E4 BL __overflow .text:0001F8E8 CMN R0, #1 .text:0001F8EC BEQ loc_1E334 .text:0001F8F0 B loc_1F930 .text:0001F8F4 ; --------------------------------------------------------------------------- .text:0001F8F4 .text:0001F8F4 loc_1F8F4 ; CODE XREF: vfprintf+30FCj .text:0001F8F4 LDR R3, [R11,#var_590] .text:0001F8F8 CMP R3, #0 .text:0001F8FC ADDNE R2, R10, #0x14 .text:0001F900 LDMNEIA R2, {R2,R3} .text:0001F904 MOVNE R1, #0x2B .text:0001F908 BNE loc_1F8D8 .text:0001F90C LDR R12, [R11,#var_588] .text:0001F910 CMP R12, #0 .text:0001F914 BEQ loc_1F934 .text:0001F918 ADD R2, R10, #0x14 .text:0001F91C LDMIA R2, {R2,R3} .text:0001F920 MOV R1, #0x20 .text:0001F924 B loc_1F8D8 .text:0001F928 ; --------------------------------------------------------------------------- .text:0001F928 .text:0001F928 loc_1F928 ; CODE XREF: vfprintf+3110j .text:0001F928 STRB R1, [R2],#1 .text:0001F92C STR R2, [R10,#0x14] .text:0001F930 .text:0001F930 loc_1F930 ; CODE XREF: vfprintf+3124j .text:0001F930 ADD R9, R9, #1 .text:0001F934 .text:0001F934 loc_1F934 ; CODE XREF: vfprintf+3148j .text:0001F934 LDR R0, [R11,#var_57C] .text:0001F938 LDR R1, [R11,#var_584] .text:0001F93C CMP R0, #0 .text:0001F940 CMPNE R1, #0 .text:0001F944 BEQ loc_1F9CC .text:0001F948 LDR R2, [R11,#var_580] .text:0001F94C CMP R2, #0x10 .text:0001F950 BNE loc_1F9CC .text:0001F954 ADD R2, R10, #0x14 .text:0001F958 LDMIA R2, {R2,R3} .text:0001F95C MOV R1, #0x30 .text:0001F960 CMP R2, R3 .text:0001F964 BCC loc_1F97C .text:0001F968 MOV R0, R10 .text:0001F96C BL __overflow .text:0001F970 CMN R0, #1 .text:0001F974 BEQ loc_1E334 .text:0001F978 B loc_1F984 .text:0001F97C ; --------------------------------------------------------------------------- .text:0001F97C .text:0001F97C loc_1F97C ; CODE XREF: vfprintf+3198j .text:0001F97C STRB R1, [R2],#1 .text:0001F980 STR R2, [R10,#0x14] .text:0001F984 .text:0001F984 loc_1F984 ; CODE XREF: vfprintf+31ACj .text:0001F984 ADD R9, R9, #1 .text:0001F988 ADD R2, R10, #0x14 .text:0001F98C LDMIA R2, {R2,R3} .text:0001F990 CMP R2, R3 .text:0001F994 BCC loc_1F9B0 .text:0001F998 LDR R3, [R11,#var_5B8] .text:0001F99C MOV R0, R10 .text:0001F9A0 AND R1, R3, #0xFF .text:0001F9A4 BL __overflow .text:0001F9A8 CMN R0, #1 .text:0001F9AC B loc_1F9C4 .text:0001F9B0 ; --------------------------------------------------------------------------- .text:0001F9B0 .text:0001F9B0 loc_1F9B0 ; CODE XREF: vfprintf+31C8j .text:0001F9B0 LDR R12, [R11,#var_5B8] .text:0001F9B4 STRB R12, [R2],#1 .text:0001F9B8 AND R3, R12, #0xFF .text:0001F9BC CMN R3, #1 .text:0001F9C0 STR R2, [R10,#0x14] .text:0001F9C4 .text:0001F9C4 loc_1F9C4 ; CODE XREF: vfprintf+31E0j .text:0001F9C4 BEQ loc_1E334 .text:0001F9C8 ADD R9, R9, #1 .text:0001F9CC .text:0001F9CC loc_1F9CC ; CODE XREF: vfprintf+3178j .text:0001F9CC ; vfprintf+3184j .text:0001F9CC LDR R0, [R11,#var_5A8] .text:0001F9D0 LDR R1, [R11,#var_5AC] .text:0001F9D4 ADD R0, R0, R1 .text:0001F9D8 CMP R0, #0 .text:0001F9DC STR R0, [R11,#var_5A8] .text:0001F9E0 BLE loc_1F9F8 .text:0001F9E4 MOV R0, R10 .text:0001F9E8 LDR R2, [R11,#var_5A8] .text:0001F9EC MOV R1, #0x30 .text:0001F9F0 BL _IO_padn .text:0001F9F4 ADD R9, R9, R0 .text:0001F9F8 .text:0001F9F8 loc_1F9F8 ; CODE XREF: vfprintf+3214j .text:0001F9F8 MOV R0, R10 .text:0001F9FC LDRB R3, [R10,#0x46] .text:0001FA00 MOV R1, R7 .text:0001FA04 MOV R3, R3,LSL#24 .text:0001FA08 ADD R3, R10, R3,ASR#24 .text:0001FA0C LDR R12, [R3,#0x94] .text:0001FA10 MOV R2, R4 .text:0001FA14 MOV LR, PC .text:0001FA18 LDR PC, [R12,#0x1C] .text:0001FA1C CMP R0, R4 .text:0001FA20 BNE loc_1E334 .text:0001FA24 ADD R9, R9, R4 .text:0001FA28 B loc_207A4 .text:0001FA2C ; --------------------------------------------------------------------------- .text:0001FA2C .text:0001FA2C loc_1FA2C ; CODE XREF: vfprintf+3058j .text:0001FA2C LDR R2, [R11,#var_574] .text:0001FA30 CMP R2, #0 .text:0001FA34 BEQ loc_1FA84 .text:0001FA38 ADD R2, R10, #0x14 .text:0001FA3C LDMIA R2, {R2,R3} .text:0001FA40 MOV R1, #0x2D .text:0001FA44 CMP R2, R3 .text:0001FA48 BCC loc_1FA68 .text:0001FA4C MOV R0, R10 .text:0001FA50 BL __overflow .text:0001FA54 CMN R0, #1 .text:0001FA58 BEQ loc_1E334 .text:0001FA5C B loc_1FA70 .text:0001FA5C ; --------------------------------------------------------------------------- .text:0001FA60 off_1FA60 DCD _itoa_lower_digits ; DATA XREF: vfprintf:loc_1F698r .text:0001FA64 off_1FA64 DCD _itoa_upper_digits ; DATA XREF: vfprintf+2ED8r .text:0001FA64 ; "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" .text:0001FA68 ; --------------------------------------------------------------------------- .text:0001FA68 .text:0001FA68 loc_1FA68 ; CODE XREF: vfprintf+327Cj .text:0001FA68 STRB R1, [R2],#1 .text:0001FA6C STR R2, [R10,#0x14] .text:0001FA70 .text:0001FA70 loc_1FA70 ; CODE XREF: vfprintf+3290j .text:0001FA70 ADD R9, R9, #1 .text:0001FA74 LDR R3, [R11,#var_5A8] .text:0001FA78 SUB R3, R3, #1 .text:0001FA7C STR R3, [R11,#var_5A8] .text:0001FA80 B loc_1FB20 .text:0001FA84 ; --------------------------------------------------------------------------- .text:0001FA84 .text:0001FA84 loc_1FA84 ; CODE XREF: vfprintf+3268j .text:0001FA84 LDR R12, [R11,#var_590] .text:0001FA88 CMP R12, #0 .text:0001FA8C BEQ loc_1FAD4 .text:0001FA90 ADD R2, R10, #0x14 .text:0001FA94 LDMIA R2, {R2,R3} .text:0001FA98 MOV R1, #0x2B .text:0001FA9C CMP R2, R3 .text:0001FAA0 BCC loc_1FAB8 .text:0001FAA4 MOV R0, R10 .text:0001FAA8 BL __overflow .text:0001FAAC CMN R0, #1 .text:0001FAB0 BEQ loc_1E334 .text:0001FAB4 B loc_1FAC0 .text:0001FAB8 ; --------------------------------------------------------------------------- .text:0001FAB8 .text:0001FAB8 loc_1FAB8 ; CODE XREF: vfprintf+32D4j .text:0001FAB8 STRB R1, [R2],#1 .text:0001FABC STR R2, [R10,#0x14] .text:0001FAC0 .text:0001FAC0 loc_1FAC0 ; CODE XREF: vfprintf+32E8j .text:0001FAC0 ADD R9, R9, #1 .text:0001FAC4 LDR R0, [R11,#var_5A8] .text:0001FAC8 SUB R0, R0, #1 .text:0001FACC STR R0, [R11,#var_5A8] .text:0001FAD0 B loc_1FB20 .text:0001FAD4 ; --------------------------------------------------------------------------- .text:0001FAD4 .text:0001FAD4 loc_1FAD4 ; CODE XREF: vfprintf+32C0j .text:0001FAD4 LDR R1, [R11,#var_588] .text:0001FAD8 CMP R1, #0 .text:0001FADC BEQ loc_1FB20 .text:0001FAE0 ADD R2, R10, #0x14 .text:0001FAE4 LDMIA R2, {R2,R3} .text:0001FAE8 MOV R1, #0x20 .text:0001FAEC CMP R2, R3 .text:0001FAF0 BCC loc_1FB08 .text:0001FAF4 MOV R0, R10 .text:0001FAF8 BL __overflow .text:0001FAFC CMN R0, #1 .text:0001FB00 BEQ loc_1E334 .text:0001FB04 B loc_1FB10 .text:0001FB08 ; --------------------------------------------------------------------------- .text:0001FB08 .text:0001FB08 loc_1FB08 ; CODE XREF: vfprintf+3324j .text:0001FB08 STRB R1, [R2],#1 .text:0001FB0C STR R2, [R10,#0x14] .text:0001FB10 .text:0001FB10 loc_1FB10 ; CODE XREF: vfprintf+3338j .text:0001FB10 ADD R9, R9, #1 .text:0001FB14 LDR R2, [R11,#var_5A8] .text:0001FB18 SUB R2, R2, #1 .text:0001FB1C STR R2, [R11,#var_5A8] .text:0001FB20 .text:0001FB20 loc_1FB20 ; CODE XREF: vfprintf+32B4j .text:0001FB20 ; vfprintf+3304j ... .text:0001FB20 LDR R3, [R11,#var_57C] .text:0001FB24 LDR R12, [R11,#var_584] .text:0001FB28 CMP R3, #0 .text:0001FB2C CMPNE R12, #0 .text:0001FB30 BEQ loc_1FBC8 .text:0001FB34 LDR R0, [R11,#var_580] .text:0001FB38 CMP R0, #0x10 .text:0001FB3C BNE loc_1FBC8 .text:0001FB40 ADD R2, R10, #0x14 .text:0001FB44 LDMIA R2, {R2,R3} .text:0001FB48 MOV R1, #0x30 .text:0001FB4C CMP R2, R3 .text:0001FB50 BCC loc_1FB68 .text:0001FB54 MOV R0, R10 .text:0001FB58 BL __overflow .text:0001FB5C CMN R0, #1 .text:0001FB60 BEQ loc_1E334 .text:0001FB64 B loc_1FB70 .text:0001FB68 ; --------------------------------------------------------------------------- .text:0001FB68 .text:0001FB68 loc_1FB68 ; CODE XREF: vfprintf+3384j .text:0001FB68 STRB R1, [R2],#1 .text:0001FB6C STR R2, [R10,#0x14] .text:0001FB70 .text:0001FB70 loc_1FB70 ; CODE XREF: vfprintf+3398j .text:0001FB70 ADD R9, R9, #1 .text:0001FB74 ADD R2, R10, #0x14 .text:0001FB78 LDMIA R2, {R2,R3} .text:0001FB7C CMP R2, R3 .text:0001FB80 BCC loc_1FB9C .text:0001FB84 LDR R2, [R11,#var_5B8] .text:0001FB88 MOV R0, R10 .text:0001FB8C AND R1, R2, #0xFF .text:0001FB90 BL __overflow .text:0001FB94 CMN R0, #1 .text:0001FB98 B loc_1FBB4 .text:0001FB9C ; --------------------------------------------------------------------------- .text:0001FB9C .text:0001FB9C loc_1FB9C ; CODE XREF: vfprintf+33B4j .text:0001FB9C LDR R3, [R11,#var_5B8] .text:0001FBA0 STRB R3, [R2],#1 .text:0001FBA4 LDR R12, [R11,#var_5B8] .text:0001FBA8 AND R3, R12, #0xFF .text:0001FBAC CMN R3, #1 .text:0001FBB0 STR R2, [R10,#0x14] .text:0001FBB4 .text:0001FBB4 loc_1FBB4 ; CODE XREF: vfprintf+33CCj .text:0001FBB4 BEQ loc_1E334 .text:0001FBB8 ADD R9, R9, #1 .text:0001FBBC LDR R0, [R11,#var_5A8] .text:0001FBC0 SUB R0, R0, #2 .text:0001FBC4 STR R0, [R11,#var_5A8] .text:0001FBC8 .text:0001FBC8 loc_1FBC8 ; CODE XREF: vfprintf+3364j .text:0001FBC8 ; vfprintf+3370j .text:0001FBC8 LDR R1, [R11,#var_5AC] .text:0001FBCC LDR R2, [R11,#var_5A8] .text:0001FBD0 ADD R3, R4, R1 .text:0001FBD4 RSB R2, R3, R2 .text:0001FBD8 CMP R1, #0 .text:0001FBDC STR R2, [R11,#var_5A8] .text:0001FBE0 BLE loc_1FBF8 .text:0001FBE4 MOV R0, R10 .text:0001FBE8 LDR R2, [R11,#var_5AC] .text:0001FBEC MOV R1, #0x30 .text:0001FBF0 BL _IO_padn .text:0001FBF4 ADD R9, R9, R0 .text:0001FBF8 .text:0001FBF8 loc_1FBF8 ; CODE XREF: vfprintf+3414j .text:0001FBF8 MOV R0, R10 .text:0001FBFC LDRB R3, [R10,#0x46] .text:0001FC00 MOV R1, R7 .text:0001FC04 MOV R3, R3,LSL#24 .text:0001FC08 ADD R3, R10, R3,ASR#24 .text:0001FC0C LDR R12, [R3,#0x94] .text:0001FC10 MOV R2, R4 .text:0001FC14 MOV LR, PC .text:0001FC18 LDR PC, [R12,#0x1C] .text:0001FC1C CMP R0, R4 .text:0001FC20 BNE loc_1E334 .text:0001FC24 ADD R9, R9, R0 .text:0001FC28 LDR R3, [R11,#var_5A8] .text:0001FC2C CMP R3, #0 .text:0001FC30 BLE loc_207A4 .text:0001FC34 MOV R0, R10 .text:0001FC38 MOV R1, #0x20 .text:0001FC3C MOV R2, R3 .text:0001FC40 BL _IO_padn .text:0001FC44 B loc_207A0 .text:0001FC48 ; --------------------------------------------------------------------------- .text:0001FC48 LDR R4, [R11,#var_504] .text:0001FC4C LDR R12, [R11,#var_564] .text:0001FC50 MOV R2, R4,LSL#1 .text:0001FC54 ADD R3, R2, R4 .text:0001FC58 ADD R1, R12, R3,LSL#4 .text:0001FC5C CMP R1, #0 .text:0001FC60 STR R2, [R11,#var_5C0] .text:0001FC64 BNE loc_1FDA8 .text:0001FC68 SUB R0, R11, #-var_450 .text:0001FC6C SUB R0, R0, #8 .text:0001FC70 SUB R0, R0, #4 .text:0001FC74 MOV R2, #0x14 .text:0001FC78 BL memset .text:0001FC7C LDR R0, [R11,#var_5AC] .text:0001FC80 STR R0, [R11,#var_45C] .text:0001FC84 LDR R1, [R11,#var_5A8] .text:0001FC88 STR R1, [R11,#var_458] .text:0001FC8C LDR R2, [R11,#var_5B8] .text:0001FC90 STR R2, [R11,#var_454] .text:0001FC94 LDR R4, [R11,#var_5B4] .text:0001FC98 STR R4, [R11,#var_44C] .text:0001FC9C LDRB R3, [R11,#var_450] .text:0001FCA0 LDR R12, [R11,#var_598] .text:0001FCA4 LDR R0, [R11,#var_59C] .text:0001FCA8 LDR R1, [R11,#var_5A4] .text:0001FCAC CMP R12, #0 .text:0001FCB0 LDR R4, [R11,#var_588] .text:0001FCB4 ORRNE R3, R3, #1 .text:0001FCB8 ANDEQ R3, R3, #0xFE .text:0001FCBC LDR R12, [R11,#var_58C] .text:0001FCC0 CMP R0, #0 .text:0001FCC4 ORRNE R3, R3, #2 .text:0001FCC8 ANDEQ R3, R3, #0xFD .text:0001FCCC AND R2, R1, #1 .text:0001FCD0 CMP R2, #0 .text:0001FCD4 LDR R2, [R11,#var_584] .text:0001FCD8 ORRNE R3, R3, #4 .text:0001FCDC ANDEQ R3, R3, #0xFB .text:0001FCE0 LDR R0, [R11,#var_590] .text:0001FCE4 AND R1, R2, #1 .text:0001FCE8 CMP R1, #0 .text:0001FCEC ORRNE R3, R3, #8 .text:0001FCF0 ANDEQ R3, R3, #0xF7 .text:0001FCF4 AND R2, R4, #1 .text:0001FCF8 CMP R2, #0 .text:0001FCFC ORRNE R3, R3, #0x10 .text:0001FD00 ANDEQ R3, R3, #0xEF .text:0001FD04 AND R1, R12, #1 .text:0001FD08 CMP R1, #0 .text:0001FD0C ORRNE R3, R3, #0x20 .text:0001FD10 ANDEQ R3, R3, #0xDF .text:0001FD14 AND R2, R0, #1 .text:0001FD18 CMP R2, #0 .text:0001FD1C LDR R2, [R11,#var_594] .text:0001FD20 ORRNE R3, R3, #0x40 .text:0001FD24 ANDEQ R3, R3, #0xBF .text:0001FD28 LDR R4, [R11,#var_598] .text:0001FD2C AND R1, R2, #1 .text:0001FD30 CMP R1, #0 .text:0001FD34 ORRNE R3, R3, #0x80 .text:0001FD38 ANDEQ R3, R3, #0x7F .text:0001FD3C CMP R4, #0 .text:0001FD40 STRB R3, [R11,#var_450] .text:0001FD44 BEQ loc_1FD5C .text:0001FD48 LDR R12, [R11,#var_4F0] .text:0001FD4C LDMIA R12!, {R1,R2} .text:0001FD50 SUB R3, R11, #-var_4B0 .text:0001FD54 STR R12, [R11,#var_4F0] .text:0001FD58 B loc_1FD6C .text:0001FD5C ; --------------------------------------------------------------------------- .text:0001FD5C .text:0001FD5C loc_1FD5C ; CODE XREF: vfprintf+3578j .text:0001FD5C LDR R0, [R11,#var_4F0] .text:0001FD60 LDMIA R0!, {R1,R2} .text:0001FD64 SUB R3, R11, #-var_4B0 .text:0001FD68 STR R0, [R11,#var_4F0] .text:0001FD6C .text:0001FD6C loc_1FD6C ; CODE XREF: vfprintf+358Cj .text:0001FD6C SUB R3, R3, #8 .text:0001FD70 SUB R3, R3, #0xC .text:0001FD74 STMIA R3, {R1,R2} .text:0001FD78 SUB R3, R11, #-var_4B0 .text:0001FD7C SUB R3, R3, #8 .text:0001FD80 SUB R3, R3, #0xC .text:0001FD84 MOV R0, R10 .text:0001FD88 SUB R1, R11, #-var_450 .text:0001FD8C STR R3, [R11,#var_4C8] .text:0001FD90 SUB R1, R1, #8 .text:0001FD94 SUB R1, R1, #4 .text:0001FD98 SUB R2, R11, #-var_4C0 .text:0001FD9C SUB R2, R2, #8 .text:0001FDA0 BL __printf_fp .text:0001FDA4 B loc_1FDC8 .text:0001FDA8 ; --------------------------------------------------------------------------- .text:0001FDA8 .text:0001FDA8 loc_1FDA8 ; CODE XREF: vfprintf+3498j .text:0001FDA8 LDR R3, [R1,#0x24] .text:0001FDAC LDR R2, [R11,#var_56C] .text:0001FDB0 ADD R3, R2, R3,LSL#3 .text:0001FDB4 STR R3, [R11,#var_4C8] .text:0001FDB8 MOV R0, R10 .text:0001FDBC SUB R2, R11, #-var_4C0 .text:0001FDC0 SUB R2, R2, #8 .text:0001FDC4 BL __printf_fp .text:0001FDC8 .text:0001FDC8 loc_1FDC8 ; CODE XREF: vfprintf+35D8j .text:0001FDC8 CMP R0, #0 .text:0001FDCC B loc_2079C .text:0001FDD0 ; --------------------------------------------------------------------------- .text:0001FDD0 LDR R3, [R11,#var_504] .text:0001FDD4 LDR R4, [R11,#var_564] .text:0001FDD8 MOV R2, R3,LSL#1 .text:0001FDDC ADD R3, R2, R3 .text:0001FDE0 ADD R1, R4, R3,LSL#4 .text:0001FDE4 CMP R1, #0 .text:0001FDE8 STR R2, [R11,#var_5C0] .text:0001FDEC BNE loc_1FF30 .text:0001FDF0 SUB R0, R11, #-var_460 .text:0001FDF4 SUB R0, R0, #8 .text:0001FDF8 SUB R0, R0, #8 .text:0001FDFC MOV R2, #0x14 .text:0001FE00 BL memset .text:0001FE04 LDR R12, [R11,#var_5AC] .text:0001FE08 STR R12, [R11,#var_470] .text:0001FE0C LDR R0, [R11,#var_5A8] .text:0001FE10 STR R0, [R11,#var_46C] .text:0001FE14 LDR R1, [R11,#var_5B8] .text:0001FE18 STR R1, [R11,#var_468] .text:0001FE1C LDR R2, [R11,#var_5B4] .text:0001FE20 STR R2, [R11,#var_460] .text:0001FE24 LDRB R3, [R11,#var_464] .text:0001FE28 LDR R4, [R11,#var_598] .text:0001FE2C LDR R12, [R11,#var_59C] .text:0001FE30 CMP R4, #0 .text:0001FE34 LDR R0, [R11,#var_5A4] .text:0001FE38 ORRNE R3, R3, #1 .text:0001FE3C ANDEQ R3, R3, #0xFE .text:0001FE40 LDR R4, [R11,#var_588] .text:0001FE44 CMP R12, #0 .text:0001FE48 ORRNE R3, R3, #2 .text:0001FE4C ANDEQ R3, R3, #0xFD .text:0001FE50 AND R2, R0, #1 .text:0001FE54 CMP R2, #0 .text:0001FE58 LDR R2, [R11,#var_584] .text:0001FE5C LDR R12, [R11,#var_58C] .text:0001FE60 ORRNE R3, R3, #4 .text:0001FE64 ANDEQ R3, R3, #0xFB .text:0001FE68 LDR R0, [R11,#var_590] .text:0001FE6C AND R1, R2, #1 .text:0001FE70 CMP R1, #0 .text:0001FE74 ORRNE R3, R3, #8 .text:0001FE78 ANDEQ R3, R3, #0xF7 .text:0001FE7C AND R2, R4, #1 .text:0001FE80 CMP R2, #0 .text:0001FE84 ORRNE R3, R3, #0x10 .text:0001FE88 ANDEQ R3, R3, #0xEF .text:0001FE8C AND R1, R12, #1 .text:0001FE90 CMP R1, #0 .text:0001FE94 ORRNE R3, R3, #0x20 .text:0001FE98 ANDEQ R3, R3, #0xDF .text:0001FE9C AND R2, R0, #1 .text:0001FEA0 CMP R2, #0 .text:0001FEA4 LDR R2, [R11,#var_594] .text:0001FEA8 ORRNE R3, R3, #0x40 .text:0001FEAC ANDEQ R3, R3, #0xBF .text:0001FEB0 LDR R4, [R11,#var_598] .text:0001FEB4 AND R1, R2, #1 .text:0001FEB8 CMP R1, #0 .text:0001FEBC ORRNE R3, R3, #0x80 .text:0001FEC0 ANDEQ R3, R3, #0x7F .text:0001FEC4 CMP R4, #0 .text:0001FEC8 STRB R3, [R11,#var_464] .text:0001FECC BEQ loc_1FEE8 .text:0001FED0 LDR R12, [R11,#var_4F0] .text:0001FED4 SUB R2, R11, #-var_4B0 .text:0001FED8 LDMIA R12!, {R3,R4} .text:0001FEDC SUB R2, R2, #8 .text:0001FEE0 STR R12, [R11,#var_4F0] .text:0001FEE4 B loc_1FEFC .text:0001FEE8 ; --------------------------------------------------------------------------- .text:0001FEE8 .text:0001FEE8 loc_1FEE8 ; CODE XREF: vfprintf+3700j .text:0001FEE8 LDR R0, [R11,#var_4F0] .text:0001FEEC SUB R2, R11, #-var_4B0 .text:0001FEF0 LDMIA R0!, {R3,R4} .text:0001FEF4 SUB R2, R2, #8 .text:0001FEF8 STR R0, [R11,#var_4F0] .text:0001FEFC .text:0001FEFC loc_1FEFC ; CODE XREF: vfprintf+3718j .text:0001FEFC SUB R2, R2, #0xC .text:0001FF00 MOV R1, R2 .text:0001FF04 STMIA R2, {R3,R4} .text:0001FF08 MOV R0, R10 .text:0001FF0C STR R1, [R11,#var_4CC] .text:0001FF10 SUB R1, R11, #-var_460 .text:0001FF14 SUB R1, R1, #8 .text:0001FF18 SUB R1, R1, #8 .text:0001FF1C SUB R2, R11, #-var_4C0 .text:0001FF20 SUB R2, R2, #8 .text:0001FF24 SUB R2, R2, #4 .text:0001FF28 BL __printf_fphex .text:0001FF2C B loc_1FF54 .text:0001FF30 ; --------------------------------------------------------------------------- .text:0001FF30 .text:0001FF30 loc_1FF30 ; CODE XREF: vfprintf+3620j .text:0001FF30 LDR R3, [R1,#0x24] .text:0001FF34 LDR R2, [R11,#var_56C] .text:0001FF38 ADD R3, R2, R3,LSL#3 .text:0001FF3C STR R3, [R11,#var_4CC] .text:0001FF40 MOV R0, R10 .text:0001FF44 SUB R2, R11, #-var_4C0 .text:0001FF48 SUB R2, R2, #8 .text:0001FF4C SUB R2, R2, #4 .text:0001FF50 BL __printf_fphex .text:0001FF54 .text:0001FF54 loc_1FF54 ; CODE XREF: vfprintf+3760j .text:0001FF54 CMP R0, #0 .text:0001FF58 B loc_2079C .text:0001FF5C ; --------------------------------------------------------------------------- .text:0001FF5C LDR R3, [R11,#var_504] .text:0001FF60 LDR R4, [R11,#var_564] .text:0001FF64 MOV R2, R3,LSL#1 .text:0001FF68 ADD R3, R2, R3 .text:0001FF6C ADD R3, R4, R3,LSL#4 .text:0001FF70 CMP R3, #0 .text:0001FF74 STR R2, [R11,#var_5C0] .text:0001FF78 LDREQ R12, [R11,#var_4F0] .text:0001FF7C LDREQ R2, [R12],#4 .text:0001FF80 STREQ R12, [R11,#var_4F0] .text:0001FF84 LDRNE R3, [R3,#0x24] .text:0001FF88 LDRNE R0, [R11,#var_56C] .text:0001FF8C LDRNE R2, [R0,R3,LSL#3] .text:0001FF90 CMP R2, #0 .text:0001FF94 BEQ loc_1FFC4 .text:0001FF98 MOV R1, #0x10 .text:0001FF9C STR R1, [R11,#var_580] .text:0001FFA0 STR R2, [R11,#var_57C] .text:0001FFA4 MOV R2, #0 .text:0001FFA8 STR R2, [R11,#var_574] .text:0001FFAC MOV R3, #1 .text:0001FFB0 STR R3, [R11,#var_584] .text:0001FFB4 STR R2, [R11,#var_594] .text:0001FFB8 MOV R4, #0x78 .text:0001FFBC STR R4, [R11,#var_5B8] .text:0001FFC0 B loc_1F63C .text:0001FFC4 ; --------------------------------------------------------------------------- .text:0001FFC4 .text:0001FFC4 loc_1FFC4 ; CODE XREF: vfprintf+37C8j .text:0001FFC4 STR R2, [R11,#var_5A4] .text:0001FFC8 LDR R12, [R11,#var_5AC] .text:0001FFCC LDR R7, =aNil ; "(nil)" .text:0001FFD0 MOV R0, R12 .text:0001FFD4 CMP R0, #4 .text:0001FFD8 MOVLE R12, #5 .text:0001FFDC STR R12, [R11,#var_5AC] .text:0001FFE0 B loc_2036C .text:0001FFE4 ; --------------------------------------------------------------------------- .text:0001FFE4 LDR R1, [R11,#var_504] .text:0001FFE8 LDR R4, [R11,#var_564] .text:0001FFEC MOV R2, R1,LSL#1 .text:0001FFF0 ADD R3, R2, R1 .text:0001FFF4 ADD R3, R4, R3,LSL#4 .text:0001FFF8 CMP R3, #0 .text:0001FFFC STR R2, [R11,#var_5C0] .text:00020000 BNE loc_2007C .text:00020004 LDR R12, [R11,#var_598] .text:00020008 CMP R12, #0 .text:0002000C BEQ loc_2002C .text:00020010 LDR R0, [R11,#var_4F0] .text:00020014 LDR R2, [R0],#4 .text:00020018 STR R0, [R11,#var_4F0] .text:0002001C MOV R3, R9 .text:00020020 MOV R4, R3,ASR#31 .text:00020024 STMIA R2, {R3,R4} .text:00020028 B loc_207A4 .text:0002002C ; --------------------------------------------------------------------------- .text:0002002C .text:0002002C loc_2002C ; CODE XREF: vfprintf+3840j .text:0002002C LDR R1, [R11,#var_5A0] .text:00020030 CMP R1, #0 .text:00020034 BEQ loc_2004C .text:00020038 LDR R2, [R11,#var_4F0] .text:0002003C LDR R3, [R2],#4 .text:00020040 STR R2, [R11,#var_4F0] .text:00020044 STRB R9, [R3] .text:00020048 B loc_207A4 .text:0002004C ; --------------------------------------------------------------------------- .text:0002004C .text:0002004C loc_2004C ; CODE XREF: vfprintf+3868j .text:0002004C LDR R3, [R11,#var_59C] .text:00020050 CMP R3, #0 .text:00020054 BNE loc_2006C .text:00020058 LDR R4, [R11,#var_4F0] .text:0002005C LDR R3, [R4],#4 .text:00020060 STR R4, [R11,#var_4F0] .text:00020064 STR R9, [R3] .text:00020068 B loc_207A4 .text:0002006C ; --------------------------------------------------------------------------- .text:0002006C .text:0002006C loc_2006C ; CODE XREF: vfprintf+3888j .text:0002006C LDR R12, [R11,#var_4F0] .text:00020070 LDR R2, [R12],#4 .text:00020074 STR R12, [R11,#var_4F0] .text:00020078 B loc_200F0 .text:0002007C ; --------------------------------------------------------------------------- .text:0002007C .text:0002007C loc_2007C ; CODE XREF: vfprintf+3834j .text:0002007C LDR R0, [R11,#var_598] .text:00020080 CMP R0, #0 .text:00020084 BEQ loc_200A4 .text:00020088 LDR R3, [R3,#0x24] .text:0002008C LDR R1, [R11,#var_56C] .text:00020090 LDR R0, [R1,R3,LSL#3] .text:00020094 MOV R1, R9 .text:00020098 MOV R2, R1,ASR#31 .text:0002009C STMIA R0, {R1,R2} .text:000200A0 B loc_207A4 .text:000200A4 ; --------------------------------------------------------------------------- .text:000200A4 .text:000200A4 loc_200A4 ; CODE XREF: vfprintf+38B8j .text:000200A4 LDR R2, [R11,#var_5A0] .text:000200A8 CMP R2, #0 .text:000200AC BEQ loc_200C4 .text:000200B0 LDR R3, [R3,#0x24] .text:000200B4 LDR R4, [R11,#var_56C] .text:000200B8 LDR R2, [R4,R3,LSL#3] .text:000200BC STRB R9, [R2] .text:000200C0 B loc_207A4 .text:000200C4 ; --------------------------------------------------------------------------- .text:000200C4 .text:000200C4 loc_200C4 ; CODE XREF: vfprintf+38E0j .text:000200C4 LDR R12, [R11,#var_59C] .text:000200C8 CMP R12, #0 .text:000200CC BNE loc_200E4 .text:000200D0 LDR R3, [R3,#0x24] .text:000200D4 LDR R0, [R11,#var_56C] .text:000200D8 LDR R2, [R0,R3,LSL#3] .text:000200DC STR R9, [R2] .text:000200E0 B loc_207A4 .text:000200E4 ; --------------------------------------------------------------------------- .text:000200E4 .text:000200E4 loc_200E4 ; CODE XREF: vfprintf+3900j .text:000200E4 LDR R3, [R3,#0x24] .text:000200E8 LDR R1, [R11,#var_56C] .text:000200EC LDR R2, [R1,R3,LSL#3] .text:000200F0 .text:000200F0 loc_200F0 ; CODE XREF: vfprintf+38ACj .text:000200F0 STRB R9, [R2] .text:000200F4 MOV R3, R9,ASR#8 .text:000200F8 STRB R3, [R2,#1] .text:000200FC B loc_207A4 .text:00020100 ; --------------------------------------------------------------------------- .text:00020100 SUB R1, R11, #-var_410 .text:00020104 LDR R0, [R11,#var_508] .text:00020108 MOV R2, #0x3E8 .text:0002010C BL strerror_r .text:00020110 MOV R7, R0 .text:00020114 MOV R2, #0 .text:00020118 STR R2, [R11,#var_5A4] .text:0002011C B loc_2036C .text:00020120 ; --------------------------------------------------------------------------- .text:00020120 LDR R3, [R11,#var_5A4] .text:00020124 CMP R3, #0 .text:00020128 BNE loc_2021C .text:0002012C LDR R4, [R11,#var_5A8] .text:00020130 LDR R12, [R11,#var_58C] .text:00020134 SUB R4, R4, #1 .text:00020138 CMP R12, #0 .text:0002013C STR R4, [R11,#var_5A8] .text:00020140 BNE loc_20160 .text:00020144 CMP R4, #0 .text:00020148 BLE loc_20160 .text:0002014C MOV R0, R10 .text:00020150 MOV R1, #0x20 .text:00020154 MOV R2, R4 .text:00020158 BL _IO_padn .text:0002015C ADD R9, R9, R0 .text:00020160 .text:00020160 loc_20160 ; CODE XREF: vfprintf+3974j .text:00020160 ; vfprintf+397Cj .text:00020160 LDR R0, [R11,#var_504] .text:00020164 LDR R4, [R11,#var_564] .text:00020168 MOV R2, R0,LSL#1 .text:0002016C ADD R3, R2, R0 .text:00020170 ADD R1, R4, R3,LSL#4 .text:00020174 CMP R1, #0 .text:00020178 STR R2, [R11,#var_5C0] .text:0002017C BNE loc_201C0 .text:00020180 LDR R2, [R10,#0x14] .text:00020184 LDR R12, [R11,#var_4F0] .text:00020188 LDR R3, [R10,#0x18] .text:0002018C ADD R12, R12, #4 .text:00020190 STR R12, [R11,#var_4F0] .text:00020194 CMP R2, R3 .text:00020198 LDRB R1, [R12,#-4] .text:0002019C BCC loc_201B0 .text:000201A0 .text:000201A0 loc_201A0 ; CODE XREF: vfprintf+3A0Cj .text:000201A0 MOV R0, R10 .text:000201A4 BL __overflow .text:000201A8 CMN R0, #1 .text:000201AC B loc_201E8 .text:000201B0 ; --------------------------------------------------------------------------- .text:000201B0 .text:000201B0 loc_201B0 ; CODE XREF: vfprintf+39D0j .text:000201B0 STRB R1, [R2],#1 .text:000201B4 CMN R1, #1 .text:000201B8 STR R2, [R10,#0x14] .text:000201BC B loc_201E8 .text:000201C0 ; --------------------------------------------------------------------------- .text:000201C0 .text:000201C0 loc_201C0 ; CODE XREF: vfprintf+39B0j .text:000201C0 ADD R0, R10, #0x14 .text:000201C4 LDMIA R0, {R0,R3} .text:000201C8 LDR R2, [R1,#0x24] .text:000201CC CMP R0, R3 .text:000201D0 LDR R3, [R11,#var_56C] .text:000201D4 LDRB R1, [R3,R2,LSL#3] .text:000201D8 BCS loc_201A0 .text:000201DC STRB R1, [R0],#1 .text:000201E0 CMN R1, #1 .text:000201E4 STR R0, [R10,#0x14] .text:000201E8 .text:000201E8 loc_201E8 ; CODE XREF: vfprintf+39E0j .text:000201E8 ; vfprintf+39F0j .text:000201E8 BEQ loc_1E334 .text:000201EC ADD R9, R9, #1 .text:000201F0 LDR R4, [R11,#var_58C] .text:000201F4 CMP R4, #0 .text:000201F8 BEQ loc_207A4 .text:000201FC LDR R12, [R11,#var_5A8] .text:00020200 CMP R12, #0 .text:00020204 BLE loc_207A4 .text:00020208 MOV R0, R10 .text:0002020C MOV R1, #0x20 .text:00020210 MOV R2, R12 .text:00020214 BL _IO_padn .text:00020218 B loc_207A0 .text:0002021C ; --------------------------------------------------------------------------- .text:0002021C .text:0002021C loc_2021C ; CODE XREF: vfprintf+395Cj .text:0002021C MOV R6, SP .text:00020220 BL __ctype_get_mb_cur_max .text:00020224 BIC R0, R0, #0xE0000000 .text:00020228 ADD R0, R0, #3 .text:0002022C BIC R0, R0, #0xC0000003 .text:00020230 RSB SP, R0, SP .text:00020234 SUB R4, R11, #-var_4C0 .text:00020238 SUB R4, R4, #8 .text:0002023C SUB R4, R4, #0xC .text:00020240 MOV R0, R4 .text:00020244 MOV R1, #0 .text:00020248 MOV R2, #8 .text:0002024C ADD R5, SP, #0xBCC+var_BC8 .text:00020250 BL memset .text:00020254 LDR R0, [R11,#var_504] .text:00020258 LDR R1, [R11,#var_564] .text:0002025C MOV R2, R0,LSL#1 .text:00020260 ADD R3, R2, R0 .text:00020264 ADD R3, R1, R3,LSL#4 .text:00020268 CMP R3, #0 .text:0002026C STR R2, [R11,#var_5C0] .text:00020270 MOV R2, R4 .text:00020274 LDREQ R3, [R11,#var_4F0] .text:00020278 LDREQ R1, [R3],#4 .text:0002027C STREQ R3, [R11,#var_4F0] .text:00020280 LDRNE R3, [R3,#0x24] .text:00020284 LDRNE R4, [R11,#var_56C] .text:00020288 LDRNE R1, [R4,R3,LSL#3] .text:0002028C MOV R0, R5 .text:00020290 BL wcrtomb .text:00020294 MOV R4, R0 .text:00020298 CMN R4, #1 .text:0002029C BEQ loc_1E420 .text:000202A0 LDR R12, [R11,#var_5A8] .text:000202A4 LDR R0, [R11,#var_58C] .text:000202A8 RSB R12, R4, R12 .text:000202AC CMP R0, #0 .text:000202B0 STR R12, [R11,#var_5A8] .text:000202B4 BNE loc_202D4 .text:000202B8 CMP R12, #0 .text:000202BC BLE loc_202D4 .text:000202C0 MOV R0, R10 .text:000202C4 MOV R1, #0x20 .text:000202C8 MOV R2, R12 .text:000202CC BL _IO_padn .text:000202D0 ADD R9, R9, R0 .text:000202D4 .text:000202D4 loc_202D4 ; CODE XREF: vfprintf+3AE8j .text:000202D4 ; vfprintf+3AF0j .text:000202D4 MOV R0, R10 .text:000202D8 LDRB R3, [R10,#0x46] .text:000202DC MOV R1, R5 .text:000202E0 MOV R3, R3,LSL#24 .text:000202E4 ADD R3, R10, R3,ASR#24 .text:000202E8 LDR R12, [R3,#0x94] .text:000202EC MOV R2, R4 .text:000202F0 MOV LR, PC .text:000202F4 LDR PC, [R12,#0x1C] .text:000202F8 CMP R0, R4 .text:000202FC BNE loc_1E420 .text:00020300 ADD R9, R9, R4 .text:00020304 LDR R1, [R11,#var_58C] .text:00020308 CMP R1, #0 .text:0002030C BEQ loc_2032C .text:00020310 LDR R2, [R11,#var_5A8] .text:00020314 CMP R2, #0 .text:00020318 BLE loc_2032C .text:0002031C MOV R0, R10 .text:00020320 MOV R1, #0x20 .text:00020324 BL _IO_padn .text:00020328 ADD R9, R9, R0 .text:0002032C .text:0002032C loc_2032C ; CODE XREF: vfprintf+3B40j .text:0002032C ; vfprintf+3B4Cj .text:0002032C MOV SP, R6 .text:00020330 B loc_207A4 .text:00020334 ; --------------------------------------------------------------------------- .text:00020334 LDR R4, [R11,#var_504] .text:00020338 LDR R12, [R11,#var_564] .text:0002033C ADD R3, R4, R4,LSL#1 .text:00020340 ADD R3, R12, R3,LSL#4 .text:00020344 CMP R3, #0 .text:00020348 BNE loc_20360 .text:0002034C LDR R0, [R11,#var_4F0] .text:00020350 LDR R7, [R0],#4 .text:00020354 STR R0, [R11,#var_4F0] .text:00020358 B loc_2036C .text:00020358 ; --------------------------------------------------------------------------- .text:0002035C off_2035C DCD aNil ; DATA XREF: vfprintf+3800r .text:0002035C ; "(nil)" .text:00020360 ; --------------------------------------------------------------------------- .text:00020360 .text:00020360 loc_20360 ; CODE XREF: vfprintf+3B7Cj .text:00020360 LDR R3, [R3,#0x24] .text:00020364 LDR R1, [R11,#var_56C] .text:00020368 LDR R7, [R1,R3,LSL#3] .text:0002036C .text:0002036C loc_2036C ; CODE XREF: vfprintf+3814j .text:0002036C ; vfprintf+3950j ... .text:0002036C MOV R2, #0 .text:00020370 CMP R7, R2 .text:00020374 STR R2, [R11,#var_5BC] .text:00020378 BNE loc_203B4 .text:0002037C LDR R4, [R11,#var_5AC] .text:00020380 CMP R4, #5 .text:00020384 MOVLE R3, #0 .text:00020388 MOVGT R3, #1 .text:0002038C CMN R4, #1 .text:00020390 MOVNE R0, R3 .text:00020394 MOVEQ R0, #1 .text:00020398 CMP R0, R2 .text:0002039C MOVNE R5, #6 .text:000203A0 LDRNE R7, =null ; "(null)" .text:000203A4 BNE loc_205B4 .text:000203A8 MOV R5, R0 .text:000203AC LDR R7, =dword_56D74 .text:000203B0 B loc_205B4 .text:000203B4 ; --------------------------------------------------------------------------- .text:000203B4 .text:000203B4 loc_203B4 ; CODE XREF: vfprintf+3BACj .text:000203B4 LDR R12, [R11,#var_5B8] .text:000203B8 LDR R0, [R11,#var_5A4] .text:000203BC SUBS R3, R12, #0x53 .text:000203C0 MOVNE R3, #1 .text:000203C4 CMP R0, #0 .text:000203C8 MOVNE R3, #0 .text:000203CC CMP R3, #0 .text:000203D0 BEQ loc_204A4 .text:000203D4 LDR R1, [R11,#var_5AC] .text:000203D8 CMN R1, #1 .text:000203DC BEQ loc_20494 .text:000203E0 LDR R3, =_nl_current_LC_CTYPE .text:000203E4 LDR R2, [R3] .text:000203E8 LDR R1, [R2,#0x54] .text:000203EC CMP R1, #1 .text:000203F0 BNE loc_20408 .text:000203F4 LDR R1, [R11,#var_5AC] .text:000203F8 MOV R0, R7 .text:000203FC BL strnlen .text:00020400 MOV R5, R0 .text:00020404 B loc_205B4 .text:00020408 ; --------------------------------------------------------------------------- .text:00020408 .text:00020408 loc_20408 ; CODE XREF: vfprintf+3C24j .text:00020408 STR R7, [R11,#var_4E0] .text:0002040C MOV R8, SP .text:00020410 SUB R5, R11, #-var_4D0 .text:00020414 SUB R5, R5, #8 .text:00020418 SUB R5, R5, #4 .text:0002041C LDR R2, [R11,#var_5AC] .text:00020420 MOV R0, R5 .text:00020424 LDR R1, [R11,#var_5BC] .text:00020428 MOV R3, R2,LSL#5 .text:0002042C SUB SP, SP, R3,LSR#3 .text:00020430 MOV R2, #8 .text:00020434 ADD R4, SP, #0xBCC+var_BC8 .text:00020438 BL memset .text:0002043C STR R5, [SP,#0xBCC+var_BCC] .text:00020440 MOV R0, R4 .text:00020444 SUB R1, R11, #-var_4D0 .text:00020448 SUB R1, R1, #8 .text:0002044C LDR R2, [R11,#var_5AC] .text:00020450 SUB R1, R1, #8 .text:00020454 MOV R3, R2 .text:00020458 BL mbsnrtowcs .text:0002045C CMN R0, #1 .text:00020460 BEQ loc_1E42C .text:00020464 LDR R3, [R11,#var_4E0] .text:00020468 CMP R3, #0 .text:0002046C BNE loc_20480 .text:00020470 MOV R0, R7 .text:00020474 BL strlen .text:00020478 MOV R5, R0 .text:0002047C B loc_2048C .text:00020480 ; --------------------------------------------------------------------------- .text:00020480 .text:00020480 loc_20480 ; CODE XREF: vfprintf+3CA0j .text:00020480 LDR R2, [R11,#var_4DC] .text:00020484 RSB R3, R7, R3 .text:00020488 RSB R5, R2, R3 .text:0002048C .text:0002048C loc_2048C ; CODE XREF: vfprintf+3CB0j .text:0002048C MOV SP, R8 .text:00020490 B loc_205B4 .text:00020494 ; --------------------------------------------------------------------------- .text:00020494 .text:00020494 loc_20494 ; CODE XREF: vfprintf+3C10j .text:00020494 MOV R0, R7 .text:00020498 BL strlen .text:0002049C MOV R5, R0 .text:000204A0 B loc_205B4 .text:000204A4 ; --------------------------------------------------------------------------- .text:000204A4 .text:000204A4 loc_204A4 ; CODE XREF: vfprintf+3C04j .text:000204A4 STR R7, [R11,#var_4EC] .text:000204A8 SUB R4, R11, #-var_4E0 .text:000204AC SUB R4, R4, #8 .text:000204B0 MOV R0, R4 .text:000204B4 LDR R1, [R11,#var_5BC] .text:000204B8 MOV R2, #8 .text:000204BC BL memset .text:000204C0 LDR R3, [R11,#var_5AC] .text:000204C4 MOV R6, R4 .text:000204C8 CMP R3, #0 .text:000204CC BLE loc_2052C .text:000204D0 CMP R3, #0x8000 .text:000204D4 BLT loc_204E8 .text:000204D8 MOV R0, R3 .text:000204DC BL malloc .text:000204E0 SUBS R7, R0, #0 .text:000204E4 BNE loc_20500 .text:000204E8 .text:000204E8 loc_204E8 ; CODE XREF: vfprintf+3D08j .text:000204E8 LDR R4, [R11,#var_5AC] .text:000204EC ADD R3, R4, #3 .text:000204F0 BIC R3, R3, #3 .text:000204F4 RSB SP, R3, SP .text:000204F8 ADD R7, SP, #0xBCC+var_BC8 .text:000204FC B loc_20508 .text:00020500 ; --------------------------------------------------------------------------- .text:00020500 .text:00020500 loc_20500 ; CODE XREF: vfprintf+3D18j .text:00020500 MOV R12, #1 .text:00020504 STR R12, [R11,#var_5BC] .text:00020508 .text:00020508 loc_20508 ; CODE XREF: vfprintf+3D30j .text:00020508 MOV R0, R7 .text:0002050C SUB R1, R11, #-var_4E0 .text:00020510 SUB R1, R1, #8 .text:00020514 SUB R1, R1, #4 .text:00020518 LDR R2, [R11,#var_5AC] .text:0002051C MOV R3, R6 .text:00020520 BL wcsrtombs .text:00020524 MOV R5, R0 .text:00020528 B loc_205AC .text:0002052C ; --------------------------------------------------------------------------- .text:0002052C .text:0002052C loc_2052C ; CODE XREF: vfprintf+3D00j .text:0002052C SUB R4, R11, #-var_4E0 .text:00020530 SUB R4, R4, #8 .text:00020534 SUB R4, R4, #4 .text:00020538 MOV R1, R4 .text:0002053C LDR R0, [R11,#var_5BC] .text:00020540 MOV R3, R6 .text:00020544 MOV R2, R0 .text:00020548 BL wcsrtombs .text:0002054C MOV R5, R0 .text:00020550 CMN R5, #1 .text:00020554 BEQ loc_205AC .text:00020558 ADD R3, R5, #1 .text:0002055C CMP R3, #0x8000 .text:00020560 MOV R8, R3 .text:00020564 STR R7, [R11,#var_4EC] .text:00020568 BCC loc_2057C .text:0002056C MOV R0, R8 .text:00020570 BL malloc .text:00020574 SUBS R7, R0, #0 .text:00020578 BNE loc_20590 .text:0002057C .text:0002057C loc_2057C ; CODE XREF: vfprintf+3D9Cj .text:0002057C ADD R3, R5, #4 .text:00020580 BIC R3, R3, #3 .text:00020584 RSB SP, R3, SP .text:00020588 ADD R7, SP, #0xBCC+var_BC8 .text:0002058C B loc_20598 .text:00020590 ; --------------------------------------------------------------------------- .text:00020590 .text:00020590 loc_20590 ; CODE XREF: vfprintf+3DACj .text:00020590 MOV R0, #1 .text:00020594 STR R0, [R11,#var_5BC] .text:00020598 .text:00020598 loc_20598 ; CODE XREF: vfprintf+3DC0j .text:00020598 MOV R0, R7 .text:0002059C MOV R1, R4 .text:000205A0 MOV R2, R8 .text:000205A4 MOV R3, R6 .text:000205A8 BL wcsrtombs .text:000205AC .text:000205AC loc_205AC ; CODE XREF: vfprintf+3D5Cj .text:000205AC ; vfprintf+3D88j .text:000205AC CMN R5, #1 .text:000205B0 BEQ loc_1E334 .text:000205B4 .text:000205B4 loc_205B4 ; CODE XREF: vfprintf+3BD8j .text:000205B4 ; vfprintf+3BE4j ... .text:000205B4 LDR R1, [R11,#var_5A8] .text:000205B8 SUBS R1, R1, R5 .text:000205BC STR R1, [R11,#var_5A8] .text:000205C0 BPL loc_20604 .text:000205C4 MOV R0, R10 .text:000205C8 LDRB R3, [R10,#0x46] .text:000205CC MOV R1, R7 .text:000205D0 MOV R3, R3,LSL#24 .text:000205D4 ADD R3, R10, R3,ASR#24 .text:000205D8 LDR R12, [R3,#0x94] .text:000205DC MOV R2, R5 .text:000205E0 MOV LR, PC .text:000205E4 LDR PC, [R12,#0x1C] .text:000205E8 CMP R0, R5 .text:000205EC BNE loc_1E334 .text:000205F0 ADD R9, R9, R5 .text:000205F4 LDR R2, [R11,#var_504] .text:000205F8 MOV R2, R2,LSL#1 .text:000205FC STR R2, [R11,#var_5C0] .text:00020600 B loc_207A4 .text:00020604 ; --------------------------------------------------------------------------- .text:00020604 .text:00020604 loc_20604 ; CODE XREF: vfprintf+3DF4j .text:00020604 LDR R3, [R11,#var_58C] .text:00020608 CMP R3, #0 .text:0002060C BNE loc_20630 .text:00020610 LDR R4, [R11,#var_5A8] .text:00020614 CMP R4, #0 .text:00020618 BLE loc_20630 .text:0002061C MOV R0, R10 .text:00020620 MOV R1, #0x20 .text:00020624 MOV R2, R4 .text:00020628 BL _IO_padn .text:0002062C ADD R9, R9, R0 .text:00020630 .text:00020630 loc_20630 ; CODE XREF: vfprintf+3E40j .text:00020630 ; vfprintf+3E4Cj .text:00020630 MOV R0, R10 .text:00020634 LDRB R3, [R10,#0x46] .text:00020638 MOV R1, R7 .text:0002063C MOV R3, R3,LSL#24 .text:00020640 ADD R3, R10, R3,ASR#24 .text:00020644 LDR R12, [R3,#0x94] .text:00020648 MOV R2, R5 .text:0002064C MOV LR, PC .text:00020650 LDR PC, [R12,#0x1C] .text:00020654 CMP R0, R5 .text:00020658 BNE loc_1E334 .text:0002065C ADD R9, R9, R5 .text:00020660 LDR R12, [R11,#var_58C] .text:00020664 CMP R12, #0 .text:00020668 BEQ loc_2068C .text:0002066C LDR R0, [R11,#var_5A8] .text:00020670 CMP R0, #0 .text:00020674 BLE loc_2068C .text:00020678 MOV R0, R10 .text:0002067C LDR R2, [R11,#var_5A8] .text:00020680 MOV R1, #0x20 .text:00020684 BL _IO_padn .text:00020688 ADD R9, R9, R0 .text:0002068C .text:0002068C loc_2068C ; CODE XREF: vfprintf+3E9Cj .text:0002068C ; vfprintf+3EA8j .text:0002068C LDR R1, [R11,#var_5BC] .text:00020690 LDR R2, [R11,#var_504] .text:00020694 CMP R1, #0 .text:00020698 MOV R2, R2,LSL#1 .text:0002069C STR R2, [R11,#var_5C0] .text:000206A0 BEQ loc_207A4 .text:000206A4 MOV R0, R7 .text:000206A8 BL free .text:000206AC B loc_207A4 .text:000206B0 ; --------------------------------------------------------------------------- .text:000206B0 .text:000206B0 loc_206B0 ; DATA XREF: vfprintf:loc_1F280o .text:000206B0 ; vfprintf:off_1F2E0o .text:000206B0 LDR R3, =__printf_function_table .text:000206B4 LDR R0, [R3] .text:000206B8 CMP R0, #0 .text:000206BC BEQ loc_206F4 .text:000206C0 LDR R4, [R11,#var_504] .text:000206C4 LDR R12, [R11,#var_564] .text:000206C8 MOV R3, R4,LSL#1 .text:000206CC ADD R2, R3, R4 .text:000206D0 ADD R2, R12, R2,LSL#4 .text:000206D4 LDR R1, [R2,#8] .text:000206D8 STR R3, [R11,#var_5C0] .text:000206DC LDR R12, [R0,R1,LSL#2] .text:000206E0 B loc_20704 .text:000206E0 ; --------------------------------------------------------------------------- .text:000206E4 off_206E4 DCD null ; DATA XREF: vfprintf+3BD4r .text:000206E4 ; "(null)" .text:000206E8 off_206E8 DCD dword_56D74 ; DATA XREF: vfprintf+3BE0r .text:000206EC off_206EC DCD _nl_current_LC_CTYPE ; DATA XREF: vfprintf+3C14r .text:000206F0 off_206F0 DCD __printf_function_table ; DATA XREF: vfprintf:loc_206B0r .text:000206F4 ; --------------------------------------------------------------------------- .text:000206F4 .text:000206F4 loc_206F4 ; CODE XREF: vfprintf+3EF0j .text:000206F4 MOV R12, R0 .text:000206F8 LDR R0, [R11,#var_504] .text:000206FC MOV R0, R0,LSL#1 .text:00020700 STR R0, [R11,#var_5C0] .text:00020704 .text:00020704 loc_20704 ; CODE XREF: vfprintf+3F14j .text:00020704 LDR R1, [R11,#var_5C0] .text:00020708 LDR R2, [R11,#var_504] .text:0002070C MOV R0, #0 .text:00020710 LDR R4, [R11,#var_564] .text:00020714 ADD R3, R1, R2 .text:00020718 LDR R1, =printf_unknown .text:0002071C ADD R3, R4, R3,LSL#4 .text:00020720 LDR R2, [R3,#0x2C] .text:00020724 CMP R12, R0 .text:00020728 LDR R4, [R11,#var_5C0] .text:0002072C MOVEQ R12, R1 .text:00020730 SUB SP, SP, R2,LSL#2 .text:00020734 CMP R0, R2 .text:00020738 ADD LR, SP, #0xBCC+var_BC8 .text:0002073C BCS loc_20774 .text:00020740 .text:00020740 loc_20740 ; CODE XREF: vfprintf+3FA4j .text:00020740 LDR R1, [R11,#var_504] .text:00020744 LDR R2, [R11,#var_564] .text:00020748 ADD R3, R4, R1 .text:0002074C ADD R3, R2, R3,LSL#4 .text:00020750 LDR R2, [R3,#0x24] .text:00020754 LDR R1, [R11,#var_56C] .text:00020758 ADD R2, R2, R0 .text:0002075C ADD R2, R1, R2,LSL#3 .text:00020760 STR R2, [LR,R0,LSL#2] .text:00020764 LDR R1, [R3,#0x2C] .text:00020768 ADD R0, R0, #1 .text:0002076C CMP R0, R1 .text:00020770 BCC loc_20740 .text:00020774 .text:00020774 loc_20774 ; CODE XREF: vfprintf+3F70j .text:00020774 LDR R2, [R11,#var_5C0] .text:00020778 LDR R3, [R11,#var_504] .text:0002077C MOV R0, R10 .text:00020780 LDR R4, [R11,#var_564] .text:00020784 ADD R1, R2, R3 .text:00020788 ADD R1, R4, R1,LSL#4 .text:0002078C MOV R2, LR .text:00020790 MOV LR, PC .text:00020794 MOV PC, R12 .text:00020798 CMP R0, #0 .text:0002079C .text:0002079C loc_2079C ; CODE XREF: vfprintf+3600j .text:0002079C ; vfprintf+378Cj .text:0002079C BLT loc_1E334 .text:000207A0 .text:000207A0 loc_207A0 ; CODE XREF: vfprintf+3478j .text:000207A0 ; vfprintf+3A4Cj .text:000207A0 ADD R9, R9, R0 .text:000207A4 .text:000207A4 loc_207A4 ; CODE XREF: vfprintf+2AFCj .text:000207A4 ; vfprintf+325Cj ... .text:000207A4 LDR R12, [R11,#var_5C0] .text:000207A8 LDR R0, [R11,#var_504] .text:000207AC LDR R1, [R11,#var_564] .text:000207B0 LDRB R3, [R10,#0x46] .text:000207B4 ADD R4, R12, R0 .text:000207B8 ADD R4, R1, R4,LSL#4 .text:000207BC LDR R1, [R4,#0x14] .text:000207C0 MOV R3, R3,LSL#24 .text:000207C4 ADD R12, R4, #0x18 .text:000207C8 LDMDA R12, {R2,R12} .text:000207CC SUB R2, R12, R2 .text:000207D0 ADD R3, R10, R3,ASR#24 .text:000207D4 LDR R12, [R3,#0x94] .text:000207D8 MOV R0, R10 .text:000207DC MOV LR, PC .text:000207E0 LDR PC, [R12,#0x1C] .text:000207E4 ADD R1, R4, #0x18 .text:000207E8 LDMDA R1, {R1,R3} .text:000207EC SUB R3, R3, R1 .text:000207F0 CMP R0, R3 .text:000207F4 BNE loc_1E334 .text:000207F8 ADD R9, R9, R0 .text:000207FC LDR R2, [R11,#var_504] .text:00020800 LDR R3, [R11,#var_560] .text:00020804 ADD R2, R2, #1 .text:00020808 STR R2, [R11,#var_504] .text:0002080C CMP R2, R3 .text:00020810 BCC loc_1F0DC .text:00020814 .text:00020814 loc_20814 ; CODE XREF: vfprintf+1FCj .text:00020814 ; vfprintf+1B6Cj ... .text:00020814 LDR R3, [R10] .text:00020818 TST R3, #0x8000 .text:0002081C BNE loc_20828 .text:00020820 MOV R0, R10 .text:00020824 BL funlockfile .text:00020828 .text:00020828 loc_20828 ; CODE XREF: vfprintf+4050j .text:00020828 LDR R4, [R11,#var_510] .text:0002082C CMP R4, #0 .text:00020830 BEQ loc_20840 .text:00020834 SUB R0, R11, #-var_420 .text:00020838 MOV R1, #0 .text:0002083C BL 0 .text:00020840 .text:00020840 loc_20840 ; CODE XREF: vfprintf+4064j .text:00020840 MOV R0, R9 .text:00020844 .text:00020844 loc_20844 ; CODE XREF: vfprintf+C0j .text:00020844 ; vfprintf+1C44j .text:00020844 B locret_2084C .text:00020844 ; --------------------------------------------------------------------------- .text:00020848 off_20848 DCD printf_unknown ; DATA XREF: vfprintf+3F4Cr .text:0002084C ; --------------------------------------------------------------------------- .text:0002084C .text:0002084C locret_2084C ; CODE XREF: vfprintf:loc_20844j .text:0002084C LDMDB R11, {R4-R11,SP,PC} .text:0002084C ; End of function vfprintf .text:0002084C .text:00020850 .text:00020850 ; =============== S U B R O U T I N E ======================================= .text:00020850 .text:00020850 ; Attributes: bp-based frame .text:00020850 .text:00020850 printf_unknown ; DATA XREF: vfprintf+3F4Co .text:00020850 ; vfprintf:off_20848o .text:00020850 MOV R12, SP .text:00020854 STMFD SP!, {R4-R12,LR,PC} .text:00020858 MOV R8, R1 .text:0002085C LDR R2, [R8,#8] .text:00020860 SUB R11, R12, #4 .text:00020864 LDR R3, [R8,#4] .text:00020868 MOV R4, R0 .text:0002086C CMP R2, R3 .text:00020870 MOVLT R2, R3 .text:00020874 ADD R2, R2, #0x20 .text:00020878 BIC R2, R2, #0xE0000000 .text:0002087C ADD R3, R2, #3 .text:00020880 BIC R3, R3, #0xC0000003 .text:00020884 RSB SP, R3, SP .text:00020888 ADD R9, SP, R2 .text:0002088C MOV R1, #0x25 .text:00020890 ADD R2, R4, #0x14 .text:00020894 LDMIA R2, {R2,R3} .text:00020898 CMP R2, R3 .text:0002089C BCC loc_208B0 .text:000208A0 BL __overflow .text:000208A4 CMN R0, #1 .text:000208A8 BEQ loc_20B24 .text:000208AC B loc_208B8 .text:000208B0 ; --------------------------------------------------------------------------- .text:000208B0 .text:000208B0 loc_208B0 ; CODE XREF: printf_unknown+4Cj .text:000208B0 STRB R1, [R2],#1 .text:000208B4 STR R2, [R4,#0x14] .text:000208B8 .text:000208B8 loc_208B8 ; CODE XREF: printf_unknown+5Cj .text:000208B8 MOV R6, #1 .text:000208BC LDRB R3, [R8,#0xC] .text:000208C0 TST R3, #8 .text:000208C4 BEQ loc_20900 .text:000208C8 ADD R2, R4, #0x14 .text:000208CC LDMIA R2, {R2,R3} .text:000208D0 MOV R1, #0x23 .text:000208D4 CMP R2, R3 .text:000208D8 BCC loc_208F0 .text:000208DC MOV R0, R4 .text:000208E0 BL __overflow .text:000208E4 CMN R0, #1 .text:000208E8 BEQ loc_20BF8 .text:000208EC B loc_208F8 .text:000208F0 ; --------------------------------------------------------------------------- .text:000208F0 .text:000208F0 loc_208F0 ; CODE XREF: printf_unknown+88j .text:000208F0 STRB R1, [R2],#1 .text:000208F4 STR R2, [R4,#0x14] .text:000208F8 .text:000208F8 loc_208F8 ; CODE XREF: printf_unknown+9Cj .text:000208F8 MOV R6, #2 .text:000208FC LDRB R3, [R8,#0xC] .text:00020900 .text:00020900 loc_20900 ; CODE XREF: printf_unknown+74j .text:00020900 MOVS R2, R3,LSR#7 .text:00020904 BEQ loc_20940 .text:00020908 ADD R2, R4, #0x14 .text:0002090C LDMIA R2, {R2,R3} .text:00020910 MOV R1, #0x27 .text:00020914 CMP R2, R3 .text:00020918 BCC loc_20930 .text:0002091C MOV R0, R4 .text:00020920 BL __overflow .text:00020924 CMN R0, #1 .text:00020928 BEQ loc_20BF8 .text:0002092C B loc_20938 .text:00020930 ; --------------------------------------------------------------------------- .text:00020930 .text:00020930 loc_20930 ; CODE XREF: printf_unknown+C8j .text:00020930 STRB R1, [R2],#1 .text:00020934 STR R2, [R4,#0x14] .text:00020938 .text:00020938 loc_20938 ; CODE XREF: printf_unknown+DCj .text:00020938 ADD R6, R6, #1 .text:0002093C LDRB R3, [R8,#0xC] .text:00020940 .text:00020940 loc_20940 ; CODE XREF: printf_unknown+B4j .text:00020940 AND R2, R3, #0xFF .text:00020944 TST R2, #0x40 .text:00020948 BEQ loc_20974 .text:0002094C ADD R2, R4, #0x14 .text:00020950 LDMIA R2, {R2,R3} .text:00020954 MOV R1, #0x2B .text:00020958 CMP R2, R3 .text:0002095C BCC loc_20990 .text:00020960 .text:00020960 loc_20960 ; CODE XREF: printf_unknown+13Cj .text:00020960 MOV R0, R4 .text:00020964 BL __overflow .text:00020968 CMN R0, #1 .text:0002096C BEQ loc_20BF8 .text:00020970 B loc_20998 .text:00020974 ; --------------------------------------------------------------------------- .text:00020974 .text:00020974 loc_20974 ; CODE XREF: printf_unknown+F8j .text:00020974 TST R2, #0x10 .text:00020978 BEQ loc_209A0 .text:0002097C ADD R2, R4, #0x14 .text:00020980 LDMIA R2, {R2,R3} .text:00020984 MOV R1, #0x20 .text:00020988 CMP R2, R3 .text:0002098C BCS loc_20960 .text:00020990 .text:00020990 loc_20990 ; CODE XREF: printf_unknown+10Cj .text:00020990 STRB R1, [R2],#1 .text:00020994 STR R2, [R4,#0x14] .text:00020998 .text:00020998 loc_20998 ; CODE XREF: printf_unknown+120j .text:00020998 ADD R6, R6, #1 .text:0002099C LDRB R3, [R8,#0xC] .text:000209A0 .text:000209A0 loc_209A0 ; CODE XREF: printf_unknown+128j .text:000209A0 TST R3, #0x20 .text:000209A4 BEQ loc_209DC .text:000209A8 ADD R2, R4, #0x14 .text:000209AC LDMIA R2, {R2,R3} .text:000209B0 MOV R1, #0x2D .text:000209B4 CMP R2, R3 .text:000209B8 BCC loc_209D0 .text:000209BC MOV R0, R4 .text:000209C0 BL __overflow .text:000209C4 CMN R0, #1 .text:000209C8 BEQ loc_20BF8 .text:000209CC B loc_209D8 .text:000209D0 ; --------------------------------------------------------------------------- .text:000209D0 .text:000209D0 loc_209D0 ; CODE XREF: printf_unknown+168j .text:000209D0 STRB R1, [R2],#1 .text:000209D4 STR R2, [R4,#0x14] .text:000209D8 .text:000209D8 loc_209D8 ; CODE XREF: printf_unknown+17Cj .text:000209D8 ADD R6, R6, #1 .text:000209DC .text:000209DC loc_209DC ; CODE XREF: printf_unknown+154j .text:000209DC LDR R1, [R8,#0x10] .text:000209E0 CMP R1, #0x30 .text:000209E4 BNE loc_20A18 .text:000209E8 ADD R2, R4, #0x14 .text:000209EC LDMIA R2, {R2,R3} .text:000209F0 CMP R2, R3 .text:000209F4 BCC loc_20A0C .text:000209F8 MOV R0, R4 .text:000209FC BL __overflow .text:00020A00 CMN R0, #1 .text:00020A04 BEQ loc_20BF8 .text:00020A08 B loc_20A14 .text:00020A0C ; --------------------------------------------------------------------------- .text:00020A0C .text:00020A0C loc_20A0C ; CODE XREF: printf_unknown+1A4j .text:00020A0C STRB R1, [R2],#1 .text:00020A10 STR R2, [R4,#0x14] .text:00020A14 .text:00020A14 loc_20A14 ; CODE XREF: printf_unknown+1B8j .text:00020A14 ADD R6, R6, #1 .text:00020A18 .text:00020A18 loc_20A18 ; CODE XREF: printf_unknown+194j .text:00020A18 LDRB R3, [R8,#0xD] .text:00020A1C TST R3, #8 .text:00020A20 BEQ loc_20A58 .text:00020A24 ADD R2, R4, #0x14 .text:00020A28 LDMIA R2, {R2,R3} .text:00020A2C MOV R1, #0x49 .text:00020A30 CMP R2, R3 .text:00020A34 BCC loc_20A4C .text:00020A38 MOV R0, R4 .text:00020A3C BL __overflow .text:00020A40 CMN R0, #1 .text:00020A44 BEQ loc_20BF8 .text:00020A48 B loc_20A54 .text:00020A4C ; --------------------------------------------------------------------------- .text:00020A4C .text:00020A4C loc_20A4C ; CODE XREF: printf_unknown+1E4j .text:00020A4C STRB R1, [R2],#1 .text:00020A50 STR R2, [R4,#0x14] .text:00020A54 .text:00020A54 loc_20A54 ; CODE XREF: printf_unknown+1F8j .text:00020A54 ADD R6, R6, #1 .text:00020A58 .text:00020A58 loc_20A58 ; CODE XREF: printf_unknown+1D0j .text:00020A58 LDR R0, [R8,#4] .text:00020A5C CMP R0, #0 .text:00020A60 BEQ loc_20AE4 .text:00020A64 MOV R5, R0 .text:00020A68 MOV R7, R9 .text:00020A6C LDR R10, =_itoa_lower_digits .text:00020A70 .text:00020A70 loc_20A70 ; CODE XREF: printf_unknown+244j .text:00020A70 MOV R0, R5 .text:00020A74 MOV R1, #0xA .text:00020A78 BL __umodsi3 .text:00020A7C LDRB R3, [R10,R0] .text:00020A80 STRB R3, [R7,#-1]! .text:00020A84 MOV R0, R5 .text:00020A88 MOV R1, #0xA .text:00020A8C BL __udivsi3 .text:00020A90 SUBS R5, R0, #0 .text:00020A94 BNE loc_20A70 .text:00020A98 MOV R5, R7 .text:00020A9C CMP R5, R9 .text:00020AA0 BCS loc_20AE4 .text:00020AA4 .text:00020AA4 loc_20AA4 ; CODE XREF: printf_unknown+290j .text:00020AA4 ADD R2, R4, #0x14 .text:00020AA8 LDMIA R2, {R2,R3} .text:00020AAC LDRB R1, [R5],#1 .text:00020AB0 CMP R2, R3 .text:00020AB4 BCC loc_20AC8 .text:00020AB8 MOV R0, R4 .text:00020ABC BL __overflow .text:00020AC0 CMN R0, #1 .text:00020AC4 B loc_20AD4 .text:00020AC8 ; --------------------------------------------------------------------------- .text:00020AC8 .text:00020AC8 loc_20AC8 ; CODE XREF: printf_unknown+264j .text:00020AC8 STRB R1, [R2],#1 .text:00020ACC CMN R1, #1 .text:00020AD0 STR R2, [R4,#0x14] .text:00020AD4 .text:00020AD4 loc_20AD4 ; CODE XREF: printf_unknown+274j .text:00020AD4 BEQ loc_20BF8 .text:00020AD8 ADD R6, R6, #1 .text:00020ADC CMP R5, R9 .text:00020AE0 BCC loc_20AA4 .text:00020AE4 .text:00020AE4 loc_20AE4 ; CODE XREF: printf_unknown+210j .text:00020AE4 ; printf_unknown+250j .text:00020AE4 LDR R3, [R8] .text:00020AE8 CMN R3, #1 .text:00020AEC BEQ loc_20BB0 .text:00020AF0 ADD R2, R4, #0x14 .text:00020AF4 LDMIA R2, {R2,R3} .text:00020AF8 MOV R1, #0x2E .text:00020AFC CMP R2, R3 .text:00020B00 BCC loc_20B18 .text:00020B04 MOV R0, R4 .text:00020B08 BL __overflow .text:00020B0C CMN R0, #1 .text:00020B10 BEQ loc_20B24 .text:00020B14 B loc_20B2C .text:00020B18 ; --------------------------------------------------------------------------- .text:00020B18 .text:00020B18 loc_20B18 ; CODE XREF: printf_unknown+2B0j .text:00020B18 STRB R1, [R2],#1 .text:00020B1C STR R2, [R4,#0x14] .text:00020B20 B loc_20B2C .text:00020B24 ; --------------------------------------------------------------------------- .text:00020B24 .text:00020B24 loc_20B24 ; CODE XREF: printf_unknown+58j .text:00020B24 ; printf_unknown+2C0j .text:00020B24 MOV R6, R0 .text:00020B28 B loc_20C04 .text:00020B2C ; --------------------------------------------------------------------------- .text:00020B2C .text:00020B2C loc_20B2C ; CODE XREF: printf_unknown+2C4j .text:00020B2C ; printf_unknown+2D0j .text:00020B2C ADD R6, R6, #1 .text:00020B30 LDR R5, [R8] .text:00020B34 LDR R10, =_itoa_lower_digits .text:00020B38 MOV R7, R9 .text:00020B3C .text:00020B3C loc_20B3C ; CODE XREF: printf_unknown+310j .text:00020B3C MOV R0, R5 .text:00020B40 MOV R1, #0xA .text:00020B44 BL __umodsi3 .text:00020B48 LDRB R3, [R10,R0] .text:00020B4C STRB R3, [R7,#-1]! .text:00020B50 MOV R0, R5 .text:00020B54 MOV R1, #0xA .text:00020B58 BL __udivsi3 .text:00020B5C SUBS R5, R0, #0 .text:00020B60 BNE loc_20B3C .text:00020B64 MOV R5, R7 .text:00020B68 CMP R5, R9 .text:00020B6C BCS loc_20BB0 .text:00020B70 .text:00020B70 loc_20B70 ; CODE XREF: printf_unknown+35Cj .text:00020B70 ADD R2, R4, #0x14 .text:00020B74 LDMIA R2, {R2,R3} .text:00020B78 LDRB R1, [R5],#1 .text:00020B7C CMP R2, R3 .text:00020B80 BCC loc_20B94 .text:00020B84 MOV R0, R4 .text:00020B88 BL __overflow .text:00020B8C CMN R0, #1 .text:00020B90 B loc_20BA0 .text:00020B94 ; --------------------------------------------------------------------------- .text:00020B94 .text:00020B94 loc_20B94 ; CODE XREF: printf_unknown+330j .text:00020B94 STRB R1, [R2],#1 .text:00020B98 CMN R1, #1 .text:00020B9C STR R2, [R4,#0x14] .text:00020BA0 .text:00020BA0 loc_20BA0 ; CODE XREF: printf_unknown+340j .text:00020BA0 BEQ loc_20BF8 .text:00020BA4 ADD R6, R6, #1 .text:00020BA8 CMP R5, R9 .text:00020BAC BCC loc_20B70 .text:00020BB0 .text:00020BB0 loc_20BB0 ; CODE XREF: printf_unknown+29Cj .text:00020BB0 ; printf_unknown+31Cj .text:00020BB0 LDR R1, [R8,#8] .text:00020BB4 CMP R1, #0 .text:00020BB8 BEQ loc_20C04 .text:00020BBC ADD R2, R4, #0x14 .text:00020BC0 LDMIA R2, {R2,R3} .text:00020BC4 CMP R2, R3 .text:00020BC8 BCC loc_20BE4 .text:00020BCC MOV R0, R4 .text:00020BD0 AND R1, R1, #0xFF .text:00020BD4 BL __overflow .text:00020BD8 CMN R0, #1 .text:00020BDC BEQ loc_20BF8 .text:00020BE0 B loc_20C00 .text:00020BE4 ; --------------------------------------------------------------------------- .text:00020BE4 .text:00020BE4 loc_20BE4 ; CODE XREF: printf_unknown+378j .text:00020BE4 STRB R1, [R2],#1 .text:00020BE8 AND R3, R1, #0xFF .text:00020BEC CMN R3, #1 .text:00020BF0 STR R2, [R4,#0x14] .text:00020BF4 BNE loc_20C00 .text:00020BF8 .text:00020BF8 loc_20BF8 ; CODE XREF: printf_unknown+98j .text:00020BF8 ; printf_unknown+D8j ... .text:00020BF8 MOV R6, 0xFFFFFFFF .text:00020BFC B loc_20C04 .text:00020C00 ; --------------------------------------------------------------------------- .text:00020C00 .text:00020C00 loc_20C00 ; CODE XREF: printf_unknown+390j .text:00020C00 ; printf_unknown+3A4j .text:00020C00 ADD R6, R6, #1 .text:00020C04 .text:00020C04 loc_20C04 ; CODE XREF: printf_unknown+2D8j .text:00020C04 ; printf_unknown+368j ... .text:00020C04 MOV R0, R6 .text:00020C08 LDMDB R11, {R4-R11,SP,PC} .text:00020C08 ; End of function printf_unknown .text:00020C08 .text:00020C08 ; --------------------------------------------------------------------------- .text:00020C0C off_20C0C DCD _itoa_lower_digits ; DATA XREF: printf_unknown+21Cr .text:00020C0C ; printf_unknown+2E4r .text:00020C10 .text:00020C10 ; =============== S U B R O U T I N E ======================================= .text:00020C10 .text:00020C10 ; Attributes: bp-based frame .text:00020C10 .text:00020C10 group_number ; CODE XREF: vfprintf+CB0p .text:00020C10 ; vfprintf+EB4p ... .text:00020C10 MOV R12, SP .text:00020C14 STMFD SP!, {R4-R12,LR,PC} .text:00020C18 SUB R11, R12, #4 .text:00020C1C MOV R5, R0 .text:00020C20 MOV R6, R2 .text:00020C24 MOV R8, R3 .text:00020C28 MOV R0, R8 .text:00020C2C MOV R10, R1 .text:00020C30 BL strlen .text:00020C34 LDRB R3, [R6] .text:00020C38 MOV R9, R0 .text:00020C3C CMP R3, #0 .text:00020C40 CMPNE R3, #0xFF .text:00020C44 MOVEQ R0, R5 .text:00020C48 LDMEQDB R11, {R4-R11,SP,PC} .text:00020C4C RSB R2, R5, R10 .text:00020C50 ADD R3, R2, #3 .text:00020C54 BIC R3, R3, #3 .text:00020C58 RSB SP, R3, SP .text:00020C5C MOV R0, SP .text:00020C60 MOV R7, SP .text:00020C64 MOV R1, R5 .text:00020C68 LDRB R4, [R6] .text:00020C6C BL mempcpy .text:00020C70 MOV R5, R10 .text:00020C74 CMP R0, SP .text:00020C78 BLS loc_20CEC .text:00020C7C .text:00020C7C loc_20C7C ; CODE XREF: group_number+D8j .text:00020C7C LDRB R3, [R0,#-1]! .text:00020C80 SUBS R4, R4, #1 .text:00020C84 STRB R3, [R5,#-1]! .text:00020C88 BNE loc_20CE4 .text:00020C8C CMP R0, R7 .text:00020C90 BLS loc_20CE4 .text:00020C94 MOV R2, R9 .text:00020C98 ADD R1, R6, #1 .text:00020C9C .text:00020C9C loc_20C9C ; CODE XREF: group_number+9Cj .text:00020C9C SUB R2, R2, #1 .text:00020CA0 LDRB R3, [R8,R2] .text:00020CA4 CMP R2, #0 .text:00020CA8 STRB R3, [R5,#-1]! .text:00020CAC BGT loc_20C9C .text:00020CB0 LDRB R4, [R6] .text:00020CB4 LDRB R3, [R1] .text:00020CB8 MOV R6, R1 .text:00020CBC CMP R3, #0 .text:00020CC0 SUBEQ R6, R1, #1 .text:00020CC4 BEQ loc_20CE4 .text:00020CC8 CMP R3, #0xFF .text:00020CCC BNE loc_20CE4 .text:00020CD0 .text:00020CD0 loc_20CD0 ; CODE XREF: group_number+CCj .text:00020CD0 LDRB R3, [R0,#-1]! .text:00020CD4 CMP R0, R7 .text:00020CD8 STRB R3, [R5,#-1]! .text:00020CDC BHI loc_20CD0 .text:00020CE0 B loc_20CEC .text:00020CE4 ; --------------------------------------------------------------------------- .text:00020CE4 .text:00020CE4 loc_20CE4 ; CODE XREF: group_number+78j .text:00020CE4 ; group_number+80j ... .text:00020CE4 CMP R0, R7 .text:00020CE8 BHI loc_20C7C .text:00020CEC .text:00020CEC loc_20CEC ; CODE XREF: group_number+68j .text:00020CEC ; group_number+D0j .text:00020CEC MOV R0, R5 .text:00020CF0 LDMDB R11, {R4-R11,SP,PC} .text:00020CF0 ; End of function group_number .text:00020CF0 .text:00020CF4 .text:00020CF4 ; =============== S U B R O U T I N E ======================================= .text:00020CF4 .text:00020CF4 ; Attributes: bp-based frame .text:00020CF4 .text:00020CF4 _IO_helper_overflow .text:00020CF4 MOV R12, SP .text:00020CF8 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:00020CFC SUB R11, R12, #4 .text:00020D00 MOV R4, R0 .text:00020D04 LDR R12, [R4,#0x98] .text:00020D08 ADD R3, R4, #0x14 .text:00020D0C LDMDA R3, {R2,R3} .text:00020D10 SUB R2, R3, R2 .text:00020D14 MOV R5, R1 .text:00020D18 LDR R1, [R4,#0x10] .text:00020D1C CMP R2, #0 .text:00020D20 BEQ loc_20D4C .text:00020D24 LDRB R3, [R12,#0x46] .text:00020D28 MOV R0, R12 .text:00020D2C MOV R3, R3,LSL#24 .text:00020D30 ADD R3, R12, R3,ASR#24 .text:00020D34 LDR R12, [R3,#0x94] .text:00020D38 MOV LR, PC .text:00020D3C LDR PC, [R12,#0x1C] .text:00020D40 LDR R3, [R4,#0x14] .text:00020D44 RSB R3, R0, R3 .text:00020D48 STR R3, [R4,#0x14] .text:00020D4C .text:00020D4C loc_20D4C ; CODE XREF: _IO_helper_overflow+2Cj .text:00020D4C ADD R2, R4, #0x14 .text:00020D50 LDMIA R2, {R2,R3} .text:00020D54 CMP R2, R3 .text:00020D58 BCS loc_20D6C .text:00020D5C STRB R5, [R2],#1 .text:00020D60 AND R0, R5, #0xFF .text:00020D64 STR R2, [R4,#0x14] .text:00020D68 LDMDB R11, {R4,R5,R11,SP,PC} .text:00020D6C ; --------------------------------------------------------------------------- .text:00020D6C .text:00020D6C loc_20D6C ; CODE XREF: _IO_helper_overflow+64j .text:00020D6C MOV R0, R4 .text:00020D70 AND R1, R5, #0xFF .text:00020D74 BL __overflow .text:00020D78 LDMDB R11, {R4,R5,R11,SP,PC} .text:00020D78 ; End of function _IO_helper_overflow .text:00020D78 .text:00020D7C .text:00020D7C ; =============== S U B R O U T I N E ======================================= .text:00020D7C .text:00020D7C ; Attributes: bp-based frame .text:00020D7C .text:00020D7C buffered_vfprintf ; CODE XREF: vfprintf+BCp .text:00020D7C .text:00020D7C var_20C0 = -0x20C0 .text:00020D7C var_2080 = -0x2080 .text:00020D7C var_2000 = -0x2000 .text:00020D7C var_24 = -0x24 .text:00020D7C .text:00020D7C MOV R12, SP .text:00020D80 STMFD SP!, {R4-R8,R10-R12,LR,PC} .text:00020D84 SUB R11, R12, #4 .text:00020D88 SUB R4, R11, #-var_2080 .text:00020D8C SUB R4, R4, #0x24 .text:00020D90 MOV R6, R0 .text:00020D94 SUB R4, R4, #0x34 .text:00020D98 MOV R7, R1 .text:00020D9C SUB SP, SP, #0x20C0 .text:00020DA0 SUB SP, SP, #4 .text:00020DA4 LDRB R3, [R6,#0x46] .text:00020DA8 MOV R8, R2 .text:00020DAC CMP R3, #0 .text:00020DB0 BNE loc_20DD4 .text:00020DB4 LDR R3, [R6,#0x5C] .text:00020DB8 MOV R2, 0xFFFFFFFF .text:00020DBC CMP R3, #0 .text:00020DC0 STREQ R2, [R6,#0x5C] .text:00020DC4 LDR R2, [R6,#0x5C] .text:00020DC8 CMN R2, #1 .text:00020DCC MOVNE R0, 0xFFFFFFFF .text:00020DD0 BNE loc_20F10 .text:00020DD4 .text:00020DD4 loc_20DD4 ; CODE XREF: buffered_vfprintf+34j .text:00020DD4 SUB R5, R11, #-var_2080 .text:00020DD8 SUB R5, R5, #0x24 .text:00020DDC SUB R5, R5, #0x34 .text:00020DE0 STR R6, [R5,#0x98] .text:00020DE4 SUB R3, R11, #-var_2000 .text:00020DE8 SUB R3, R3, #0x24 .text:00020DEC STR R3, [R4,#0x14] .text:00020DF0 STR R3, [R4,#0x10] .text:00020DF4 SUB R3, R11, #-var_24 .text:00020DF8 STR R3, [R4,#0x18] .text:00020DFC MOV R3, #0xF0000004 .text:00020E00 MOV R2, 0xFFFFFFFF .text:00020E04 STR R2, [R4,#0x5C] .text:00020E08 ADD R3, R3, #0xBA00000 .text:00020E0C ADD R3, R3, #0xD0000 .text:00020E10 STR R3, [R4] .text:00020E14 MOV R10, #0 .text:00020E18 STRB R10, [R4,#0x46] .text:00020E1C LDR R3, =0 .text:00020E20 ADD R0, R5, #0x9C .text:00020E24 STR R0, [R4,#0x48] .text:00020E28 CMP R3, R10 .text:00020E2C BEQ loc_20E3C .text:00020E30 MOV R1, R10 .text:00020E34 MOV LR, PC .text:00020E38 MOV PC, R3 .text:00020E3C .text:00020E3C loc_20E3C ; CODE XREF: buffered_vfprintf+B0j .text:00020E3C LDR R3, =_IO_helper_jumps .text:00020E40 STR R3, [R5,#0x94] .text:00020E44 MOV R0, R4 .text:00020E48 MOV R1, R7 .text:00020E4C MOV R2, R8 .text:00020E50 BL vfprintf .text:00020E54 LDR R3, =0 .text:00020E58 MOV R7, R0 .text:00020E5C SUBS R8, R3, #0 .text:00020E60 MOVNE R8, #1 .text:00020E64 CMP R8, #0 .text:00020E68 BEQ loc_20E88 .text:00020E6C SUB R0, R11, #-var_20C0 .text:00020E70 SUB R0, R0, #0x24 .text:00020E74 SUB R0, R0, #4 .text:00020E78 LDR R1, =funlockfile .text:00020E7C MOV R2, R6 .text:00020E80 MOV LR, PC .text:00020E84 MOV PC, R3 .text:00020E88 .text:00020E88 loc_20E88 ; CODE XREF: buffered_vfprintf+ECj .text:00020E88 LDR R3, [R6] .text:00020E8C TST R3, #0x8000 .text:00020E90 BNE loc_20E9C .text:00020E94 MOV R0, R6 .text:00020E98 BL flockfile .text:00020E9C .text:00020E9C loc_20E9C ; CODE XREF: buffered_vfprintf+114j .text:00020E9C ADD R3, R4, #0x14 .text:00020EA0 LDMDA R3, {R3,R5} .text:00020EA4 SUB R5, R5, R3 .text:00020EA8 LDR R1, [R4,#0x10] .text:00020EAC CMP R5, #0 .text:00020EB0 BLE loc_20EDC .text:00020EB4 LDRB R3, [R6,#0x46] .text:00020EB8 MOV R0, R6 .text:00020EBC MOV R3, R3,LSL#24 .text:00020EC0 ADD R3, R6, R3,ASR#24 .text:00020EC4 LDR R12, [R3,#0x94] .text:00020EC8 MOV R2, R5 .text:00020ECC MOV LR, PC .text:00020ED0 LDR PC, [R12,#0x1C] .text:00020ED4 CMP R0, R5 .text:00020ED8 MOVNE R7, 0xFFFFFFFF .text:00020EDC .text:00020EDC loc_20EDC ; CODE XREF: buffered_vfprintf+134j .text:00020EDC LDR R3, [R6] .text:00020EE0 TST R3, #0x8000 .text:00020EE4 BNE loc_20EF0 .text:00020EE8 MOV R0, R6 .text:00020EEC BL funlockfile .text:00020EF0 .text:00020EF0 loc_20EF0 ; CODE XREF: buffered_vfprintf+168j .text:00020EF0 CMP R8, #0 .text:00020EF4 BEQ loc_20F0C .text:00020EF8 SUB R0, R11, #-var_20C0 .text:00020EFC SUB R0, R0, #0x24 .text:00020F00 SUB R0, R0, #4 .text:00020F04 MOV R1, R10 .text:00020F08 BL 0 .text:00020F0C .text:00020F0C loc_20F0C ; CODE XREF: buffered_vfprintf+178j .text:00020F0C MOV R0, R7 .text:00020F10 .text:00020F10 loc_20F10 ; CODE XREF: buffered_vfprintf+54j .text:00020F10 B locret_20F24 .text:00020F10 ; --------------------------------------------------------------------------- .text:00020F14 off_20F14 DCD 0 ; DATA XREF: buffered_vfprintf+A0r .text:00020F18 off_20F18 DCD _IO_helper_jumps ; DATA XREF: buffered_vfprintf:loc_20E3Cr .text:00020F1C off_20F1C DCD 0 ; DATA XREF: buffered_vfprintf+D8r .text:00020F20 off_20F20 DCD funlockfile ; DATA XREF: buffered_vfprintf+FCr .text:00020F24 ; --------------------------------------------------------------------------- .text:00020F24 .text:00020F24 locret_20F24 ; CODE XREF: buffered_vfprintf:loc_20F10j .text:00020F24 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:00020F24 ; End of function buffered_vfprintf .text:00020F24 .text:00020F28 .text:00020F28 ; =============== S U B R O U T I N E ======================================= .text:00020F28 .text:00020F28 .text:00020F28 hack_digit.159 ; CODE XREF: __printf_fp+1374p .text:00020F28 ; __printf_fp+1418p ... .text:00020F28 .text:00020F28 var_2C = -0x2C .text:00020F28 var_28 = -0x28 .text:00020F28 var_4 = -4 .text:00020F28 arg_0 = 0 .text:00020F28 .text:00020F28 STR R12, [SP,#var_4]! .text:00020F2C ADD R12, SP, #4+arg_0 .text:00020F30 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:00020F34 SUB R11, R12, #8 .text:00020F38 LDR R12, [R11,#4] .text:00020F3C SUB SP, SP, #0xC .text:00020F40 STR R12, [R11,#-0x1C] .text:00020F44 MOV R5, R12 .text:00020F48 LDR R3, [R5,#-8] .text:00020F4C LDR R2, [R5,#-4] .text:00020F50 CMP R3, #0x66 .text:00020F54 MOVNE R3, #0 .text:00020F58 MOVEQ R3, #1 .text:00020F5C CMP R2, #0 .text:00020F60 MOVEQ R3, #0 .text:00020F64 CMP R3, #0 .text:00020F68 BEQ loc_20F88 .text:00020F6C LDR R3, [R5,#-0xC] .text:00020F70 MOV R2, R3 .text:00020F74 SUB R3, R3, #1 .text:00020F78 CMP R2, #0 .text:00020F7C STR R3, [R5,#-0xC] .text:00020F80 MOVGT R6, #0 .text:00020F84 BGT loc_210B4 .text:00020F88 .text:00020F88 loc_20F88 ; CODE XREF: hack_digit.159+40j .text:00020F88 LDR R1, [R5,#-0x10] .text:00020F8C CMP R1, #0 .text:00020F90 BNE loc_20FD4 .text:00020F94 MOV R3, #0xA .text:00020F98 LDR R12, [R5,#-0x14] .text:00020F9C MOV R4, 0xFFFFFFFC .text:00020FA0 LDR LR, [R5,#-0x18] .text:00020FA4 MOV R0, R12 .text:00020FA8 MOV R1, R0 .text:00020FAC SUB R2, LR, #1 .text:00020FB0 ADD R12, R12, LR,LSL#2 .text:00020FB4 LDR R6, [R12,R4] .text:00020FB8 BL __mpn_mul_1 .text:00020FBC STR R0, [R5,#-0x1C] .text:00020FC0 SUB R2, R5, #0x18 .text:00020FC4 LDMIA R2, {R2,R3} .text:00020FC8 ADD R3, R3, R2,LSL#2 .text:00020FCC STR R0, [R3,R4] .text:00020FD0 B loc_210B4 .text:00020FD4 ; --------------------------------------------------------------------------- .text:00020FD4 .text:00020FD4 loc_20FD4 ; CODE XREF: hack_digit.159+68j .text:00020FD4 LDR R3, [R5,#-0x18] .text:00020FD8 CMP R3, R1 .text:00020FDC MOV R12, R3 .text:00020FE0 MOVLT R6, #0 .text:00020FE4 BLT loc_21080 .text:00020FE8 LDR R0, [R5,#-0x20] .text:00020FEC LDR R1, [R5,#-0x24] .text:00020FF0 LDR R2, [R5,#-0x14] .text:00020FF4 STR R1, [SP,#0x2C+var_2C] .text:00020FF8 LDR R3, [R5,#-0x10] .text:00020FFC STR R3, [SP,#0x2C+var_28] .text:00021000 MOV R1, #0 .text:00021004 MOV R3, R12 .text:00021008 BL __mpn_divrem .text:0002100C LDR R3, [R5,#-0x18] .text:00021010 LDR R2, [R5,#-0x10] .text:00021014 LDR R1, [R5,#-0x20] .text:00021018 RSB R3, R2, R3 .text:0002101C STR R0, [R1,R3,LSL#2] .text:00021020 LDR R2, [R5,#-0x20] .text:00021024 LDR R3, [R5,#-0x10] .text:00021028 LDR R6, [R2] .text:0002102C CMP R3, #0 .text:00021030 STR R3, [R5,#-0x18] .text:00021034 BEQ loc_21064 .text:00021038 LDR R1, [R5,#-0x14] .text:0002103C B loc_21054 .text:00021040 ; --------------------------------------------------------------------------- .text:00021040 .text:00021040 loc_21040 ; CODE XREF: hack_digit.159+138j .text:00021040 LDR R3, [R5,#-0x18] .text:00021044 SUB R3, R3, #1 .text:00021048 CMP R3, #0 .text:0002104C STR R3, [R5,#-0x18] .text:00021050 BEQ loc_21064 .text:00021054 .text:00021054 loc_21054 ; CODE XREF: hack_digit.159+114j .text:00021054 ADD R3, R1, R3,LSL#2 .text:00021058 LDR R2, [R3,#-4] .text:0002105C CMP R2, #0 .text:00021060 BEQ loc_21040 .text:00021064 .text:00021064 loc_21064 ; CODE XREF: hack_digit.159+10Cj .text:00021064 ; hack_digit.159+128j .text:00021064 LDR R3, [R5,#-0x18] .text:00021068 CMP R3, #0 .text:0002106C MOV R12, R3 .text:00021070 ADDEQ R0, R6, #0x30 .text:00021074 MOVEQ R3, #1 .text:00021078 STREQ R3, [R5,#-0x18] .text:0002107C BEQ locret_210B8 .text:00021080 .text:00021080 loc_21080 ; CODE XREF: hack_digit.159+BCj .text:00021080 MOV R2, R12 .text:00021084 LDR R0, [R5,#-0x14] .text:00021088 MOV R3, #0xA .text:0002108C MOV R1, R0 .text:00021090 BL __mpn_mul_1 .text:00021094 CMP R0, #0 .text:00021098 STR R0, [R5,#-0x1C] .text:0002109C BEQ loc_210B4 .text:000210A0 LDR R3, [R5,#-0x18] .text:000210A4 LDR R2, [R5,#-0x14] .text:000210A8 STR R0, [R2,R3,LSL#2] .text:000210AC ADD R3, R3, #1 .text:000210B0 STR R3, [R5,#-0x18] .text:000210B4 .text:000210B4 loc_210B4 ; CODE XREF: hack_digit.159+5Cj .text:000210B4 ; hack_digit.159+A8j ... .text:000210B4 ADD R0, R6, #0x30 .text:000210B8 .text:000210B8 locret_210B8 ; CODE XREF: hack_digit.159+154j .text:000210B8 LDMDB R11, {R4-R6,R11,SP,PC} .text:000210B8 ; End of function hack_digit.159 .text:000210B8 .text:000210BC .text:000210BC ; =============== S U B R O U T I N E ======================================= .text:000210BC .text:000210BC ; Attributes: bp-based frame .text:000210BC .text:000210BC EXPORT __printf_fp .text:000210BC __printf_fp ; CODE XREF: vfprintf+1470p .text:000210BC ; vfprintf+35D4p ... .text:000210BC .text:000210BC var_BC = -0xBC .text:000210BC var_B8 = -0xB8 .text:000210BC var_B4 = -0xB4 .text:000210BC var_B0 = -0xB0 .text:000210BC var_AC = -0xAC .text:000210BC var_A8 = -0xA8 .text:000210BC var_A4 = -0xA4 .text:000210BC var_A0 = -0xA0 .text:000210BC var_9C = -0x9C .text:000210BC var_98 = -0x98 .text:000210BC var_94 = -0x94 .text:000210BC var_90 = -0x90 .text:000210BC var_8C = -0x8C .text:000210BC var_88 = -0x88 .text:000210BC var_84 = -0x84 .text:000210BC var_80 = -0x80 .text:000210BC var_7C = -0x7C .text:000210BC var_78 = -0x78 .text:000210BC var_74 = -0x74 .text:000210BC var_70 = -0x70 .text:000210BC var_6C = -0x6C .text:000210BC var_68 = -0x68 .text:000210BC var_64 = -0x64 .text:000210BC var_60 = -0x60 .text:000210BC var_58 = -0x58 .text:000210BC var_54 = -0x54 .text:000210BC var_4C = -0x4C .text:000210BC var_48 = -0x48 .text:000210BC var_44 = -0x44 .text:000210BC var_40 = -0x40 .text:000210BC var_3C = -0x3C .text:000210BC var_38 = -0x38 .text:000210BC var_34 = -0x34 .text:000210BC var_30 = -0x30 .text:000210BC var_2C = -0x2C .text:000210BC var_28 = -0x28 .text:000210BC .text:000210BC MOV R12, SP .text:000210C0 STMFD SP!, {R4-R12,LR,PC} .text:000210C4 SUB R11, R12, #4 .text:000210C8 MOV R3, #0 .text:000210CC SUB SP, SP, #0x94 .text:000210D0 STR R3, [R11,#var_78] .text:000210D4 STR R3, [R11,#var_2C] .text:000210D8 STR R3, [R11,#var_7C] .text:000210DC MOV R7, R3 .text:000210E0 STR R7, [R11,#var_58] .text:000210E4 STR R1, [R11,#var_64] .text:000210E8 MOV R8, R3 .text:000210EC MOV R10, R3 .text:000210F0 LDRB R3, [R1,#0xD] .text:000210F4 STR R7, [R11,#var_84] .text:000210F8 MOV R6, R0 .text:000210FC TST R3, #1 .text:00021100 LDRB R3, [R1,#0xD] .text:00021104 MOV R0, R2 .text:00021108 MOV R3, R3,LSR#2 .text:0002110C AND R3, R3, #1 .text:00021110 STR R3, [R11,#var_88] .text:00021114 BNE loc_2112C .text:00021118 LDR R3, =_nl_current_LC_NUMERIC .text:0002111C LDR R2, [R3] .text:00021120 LDR R12, [R2,#0x20] .text:00021124 STR R12, [R11,#var_70] .text:00021128 B loc_2116C .text:0002112C ; --------------------------------------------------------------------------- .text:0002112C .text:0002112C loc_2112C ; CODE XREF: __printf_fp+58j .text:0002112C LDR R3, =_nl_current_LC_MONETARY .text:00021130 LDR R1, [R3] .text:00021134 LDR R2, [R1,#0x28] .text:00021138 STR R2, [R11,#var_70] .text:0002113C LDRB R3, [R2] .text:00021140 CMP R3, #0 .text:00021144 LDREQ R3, =_nl_current_LC_NUMERIC .text:00021148 LDREQ R2, [R3] .text:0002114C LDREQ R2, [R2,#0x20] .text:00021150 STREQ R2, [R11,#var_70] .text:00021154 LDR R1, [R1,#0xCC] .text:00021158 CMP R1, #0 .text:0002115C STR R1, [R11,#var_74] .text:00021160 BNE loc_21174 .text:00021164 LDR R3, =_nl_current_LC_NUMERIC .text:00021168 LDR R2, [R3] .text:0002116C .text:0002116C loc_2116C ; CODE XREF: __printf_fp+6Cj .text:0002116C LDR R2, [R2,#0x2C] .text:00021170 STR R2, [R11,#var_74] .text:00021174 .text:00021174 loc_21174 ; CODE XREF: __printf_fp+A4j .text:00021174 LDR R12, [R11,#var_64] .text:00021178 LDRB R3, [R12,#0xC] .text:0002117C MOVS R1, R3,LSR#7 .text:00021180 BEQ loc_21274 .text:00021184 LDRB R3, [R12,#0xD] .text:00021188 TST R3, #1 .text:0002118C MOV R1, R3 .text:00021190 LDREQ R3, =_nl_current_LC_NUMERIC .text:00021194 LDREQ R2, [R3] .text:00021198 LDREQ R2, [R2,#0x28] .text:0002119C LDRNE R3, =_nl_current_LC_MONETARY .text:000211A0 LDRNE R2, [R3] .text:000211A4 LDRNE R2, [R2,#0x30] .text:000211A8 STR R2, [R11,#var_80] .text:000211AC LDR R2, [R11,#var_80] .text:000211B0 LDRB R3, [R2] .text:000211B4 CMP R3, #0xFF .text:000211B8 CMPNE R3, #0 .text:000211BC MOVEQ R3, #0 .text:000211C0 STREQ R3, [R11,#var_80] .text:000211C4 BEQ loc_21278 .text:000211C8 LDR R12, [R11,#var_88] .text:000211CC CMP R12, #0 .text:000211D0 BEQ loc_21204 .text:000211D4 TST R1, #1 .text:000211D8 BNE loc_211F0 .text:000211DC LDR R3, =_nl_current_LC_NUMERIC .text:000211E0 LDR R2, [R3] .text:000211E4 LDR R2, [R2,#0x30] .text:000211E8 STR R2, [R11,#var_7C] .text:000211EC B loc_21224 .text:000211F0 ; --------------------------------------------------------------------------- .text:000211F0 .text:000211F0 loc_211F0 ; CODE XREF: __printf_fp+11Cj .text:000211F0 LDR R3, =_nl_current_LC_MONETARY .text:000211F4 LDR R2, [R3] .text:000211F8 LDR R2, [R2,#0xD0] .text:000211FC STR R2, [R11,#var_7C] .text:00021200 B loc_21224 .text:00021204 ; --------------------------------------------------------------------------- .text:00021204 .text:00021204 loc_21204 ; CODE XREF: __printf_fp+114j .text:00021204 TST R1, #1 .text:00021208 LDREQ R3, =_nl_current_LC_NUMERIC .text:0002120C LDREQ R2, [R3] .text:00021210 LDREQ R2, [R2,#0x24] .text:00021214 LDRNE R3, =_nl_current_LC_MONETARY .text:00021218 LDRNE R2, [R3] .text:0002121C LDRNE R2, [R2,#0x2C] .text:00021220 STR R2, [R11,#var_78] .text:00021224 .text:00021224 loc_21224 ; CODE XREF: __printf_fp+130j .text:00021224 ; __printf_fp+144j .text:00021224 LDR R1, [R11,#var_7C] .text:00021228 LDR R2, [R11,#var_88] .text:0002122C CMP R1, #0 .text:00021230 MOVNE R3, #0 .text:00021234 MOVEQ R3, #1 .text:00021238 TST R2, R3 .text:0002123C BNE loc_21258 .text:00021240 CMP R2, #0 .text:00021244 BNE loc_21260 .text:00021248 LDR R12, [R11,#var_78] .text:0002124C LDRB R3, [R12] .text:00021250 CMP R3, #0 .text:00021254 BNE loc_21260 .text:00021258 .text:00021258 loc_21258 ; CODE XREF: __printf_fp+180j .text:00021258 MOV R1, #0 .text:0002125C B loc_21274 .text:00021260 ; --------------------------------------------------------------------------- .text:00021260 .text:00021260 loc_21260 ; CODE XREF: __printf_fp+188j .text:00021260 ; __printf_fp+198j .text:00021260 LDR R2, [R11,#var_7C] .text:00021264 CMP R2, #0 .text:00021268 MOVEQ R2, 0xFFFFFFFE .text:0002126C STR R2, [R11,#var_7C] .text:00021270 B loc_21278 .text:00021274 ; --------------------------------------------------------------------------- .text:00021274 .text:00021274 loc_21274 ; CODE XREF: __printf_fp+C4j .text:00021274 ; __printf_fp+1A0j .text:00021274 STR R1, [R11,#var_80] .text:00021278 .text:00021278 loc_21278 ; CODE XREF: __printf_fp+108j .text:00021278 ; __printf_fp+1B4j .text:00021278 LDR R3, [R0] .text:0002127C LDMIA R3, {R4,R5} .text:00021280 STR R4, [R11,#var_6C] .text:00021284 STR R5, [R11,#var_68] .text:00021288 MOV R1, R5 .text:0002128C MOV R0, R4 .text:00021290 BL isnanl .text:00021294 CMP R0, #0 .text:00021298 BEQ loc_212D8 .text:0002129C LDR R12, [R11,#var_64] .text:000212A0 LDR R2, =__ctype_b .text:000212A4 LDR R3, [R12,#8] .text:000212A8 LDR R1, [R2] .text:000212AC MOV R3, R3,LSL#1 .text:000212B0 ADD R3, R3, R1 .text:000212B4 LDRB R2, [R3,#1] .text:000212B8 TST R2, #1 .text:000212BC LDRNE R8, =dword_56E44 .text:000212C0 LDRNE R10, =dword_56E48 .text:000212C4 LDREQ R8, =dword_56E58 .text:000212C8 LDREQ R10, =dword_56E5C .text:000212CC MOV R3, #0 .text:000212D0 STR R3, [R11,#var_58] .text:000212D4 B loc_21358 .text:000212D8 ; --------------------------------------------------------------------------- .text:000212D8 .text:000212D8 loc_212D8 ; CODE XREF: __printf_fp+1DCj .text:000212D8 MOV R1, R5 .text:000212DC MOV R0, R4 .text:000212E0 BL isinfl .text:000212E4 CMP R0, #0 .text:000212E8 BEQ loc_21334 .text:000212EC LDR R0, [R11,#var_64] .text:000212F0 LDR R2, =__ctype_b .text:000212F4 LDR R3, [R0,#8] .text:000212F8 LDR R1, [R2] .text:000212FC MOV R3, R3,LSL#1 .text:00021300 ADD R3, R3, R1 .text:00021304 LDRB R2, [R3,#1] .text:00021308 TST R2, #1 .text:0002130C LDRNE R8, =dword_56E6C .text:00021310 LDRNE R10, =dword_56E70 .text:00021314 LDREQ R8, =dword_56E80 .text:00021318 LDREQ R10, =dword_56E84 .text:0002131C LDC p1, c8, [R11,#var_6C] .text:00021320 MRC p1, 6, PC,c0,c8, 0 .text:00021324 MOVPL R3, #0 .text:00021328 MOVMI R3, #1 .text:0002132C STR R3, [R11,#var_58] .text:00021330 B loc_21358 .text:00021334 ; --------------------------------------------------------------------------- .text:00021334 .text:00021334 loc_21334 ; CODE XREF: __printf_fp+22Cj .text:00021334 STMEA SP, {R4,R5} .text:00021338 SUB R0, R11, #-var_54 .text:0002133C MOV R1, #2 .text:00021340 SUB R2, R11, #-var_34 .text:00021344 SUB R3, R11, #-var_58 .text:00021348 BL __mpn_extract_double .text:0002134C MOV R3, R0,LSL#5 .text:00021350 SUB R7, R3, #0x34 .text:00021354 STR R0, [R11,#var_40] .text:00021358 .text:00021358 loc_21358 ; CODE XREF: __printf_fp+218j .text:00021358 ; __printf_fp+274j .text:00021358 CMP R8, #0 .text:0002135C BEQ loc_21740 .text:00021360 LDR R0, [R11,#var_64] .text:00021364 LDR R3, [R11,#var_58] .text:00021368 LDR R5, [R0,#4] .text:0002136C CMP R3, #0 .text:00021370 LDRB R2, [R0,#0xC] .text:00021374 MOV R0, R3 .text:00021378 BNE loc_21388 .text:0002137C AND R3, R2, #0x50 .text:00021380 CMP R3, #0 .text:00021384 BEQ loc_2138C .text:00021388 .text:00021388 loc_21388 ; CODE XREF: __printf_fp+2BCj .text:00021388 SUB R5, R5, #1 .text:0002138C .text:0002138C loc_2138C ; CODE XREF: __printf_fp+2C8j .text:0002138C SUB R5, R5, #3 .text:00021390 TST R2, #0x20 .text:00021394 MOVNE R3, #0 .text:00021398 MOVEQ R3, #1 .text:0002139C CMP R3, #0 .text:000213A0 CMPNE R5, #0 .text:000213A4 BLE loc_213F0 .text:000213A8 LDR R1, [R11,#var_88] .text:000213AC CMP R1, #0 .text:000213B0 BEQ loc_213C8 .text:000213B4 MOV R0, R6 .text:000213B8 MOV R1, #0x20 .text:000213BC MOV R2, R5 .text:000213C0 BL _IO_wpadn .text:000213C4 B loc_213D8 .text:000213C8 ; --------------------------------------------------------------------------- .text:000213C8 .text:000213C8 loc_213C8 ; CODE XREF: __printf_fp+2F4j .text:000213C8 MOV R0, R6 .text:000213CC MOV R1, #0x20 .text:000213D0 MOV R2, R5 .text:000213D4 BL _IO_padn .text:000213D8 .text:000213D8 loc_213D8 ; CODE XREF: __printf_fp+308j .text:000213D8 CMP R0, R5 .text:000213DC BNE loc_223BC .text:000213E0 LDR R2, [R11,#var_84] .text:000213E4 LDR R0, [R11,#var_58] .text:000213E8 ADD R2, R2, R5 .text:000213EC STR R2, [R11,#var_84] .text:000213F0 .text:000213F0 loc_213F0 ; CODE XREF: __printf_fp+2E8j .text:000213F0 CMP R0, #0 .text:000213F4 BEQ loc_21470 .text:000213F8 LDR R3, [R11,#var_88] .text:000213FC MOV R1, #0x2D .text:00021400 CMP R3, #0 .text:00021404 BEQ loc_21434 .text:00021408 LDR R0, [R6,#0x58] .text:0002140C ADD R2, R0, #0x10 .text:00021410 LDMIA R2, {R2,R3} .text:00021414 CMP R2, R3 .text:00021418 BCC loc_21428 .text:0002141C MOV R0, R6 .text:00021420 BL __woverflow .text:00021424 B loc_2144C .text:00021428 ; --------------------------------------------------------------------------- .text:00021428 .text:00021428 loc_21428 ; CODE XREF: __printf_fp+35Cj .text:00021428 STR R1, [R2],#4 .text:0002142C STR R2, [R0,#0x10] .text:00021430 B loc_21460 .text:00021434 ; --------------------------------------------------------------------------- .text:00021434 .text:00021434 loc_21434 ; CODE XREF: __printf_fp+348j .text:00021434 ADD R2, R6, #0x14 .text:00021438 LDMIA R2, {R2,R3} .text:0002143C CMP R2, R3 .text:00021440 BCC loc_21458 .text:00021444 MOV R0, R6 .text:00021448 BL __overflow .text:0002144C .text:0002144C loc_2144C ; CODE XREF: __printf_fp+368j .text:0002144C CMN R0, #1 .text:00021450 BEQ loc_223BC .text:00021454 B loc_21460 .text:00021458 ; --------------------------------------------------------------------------- .text:00021458 .text:00021458 loc_21458 ; CODE XREF: __printf_fp+384j .text:00021458 STRB R1, [R2],#1 .text:0002145C STR R2, [R6,#0x14] .text:00021460 .text:00021460 loc_21460 ; CODE XREF: __printf_fp+374j .text:00021460 ; __printf_fp+398j .text:00021460 LDR R7, [R11,#var_84] .text:00021464 ADD R7, R7, #1 .text:00021468 STR R7, [R11,#var_84] .text:0002146C B loc_215A0 .text:00021470 ; --------------------------------------------------------------------------- .text:00021470 .text:00021470 loc_21470 ; CODE XREF: __printf_fp+338j .text:00021470 LDR R12, [R11,#var_64] .text:00021474 LDRB R3, [R12,#0xC] .text:00021478 TST R3, #0x40 .text:0002147C BEQ loc_21524 .text:00021480 LDR R0, [R11,#var_88] .text:00021484 MOV R1, #0x2B .text:00021488 CMP R0, #0 .text:0002148C BEQ loc_214E8 .text:00021490 LDR R0, [R6,#0x58] .text:00021494 ADD R2, R0, #0x10 .text:00021498 LDMIA R2, {R2,R3} .text:0002149C CMP R2, R3 .text:000214A0 BCC loc_214B0 .text:000214A4 MOV R0, R6 .text:000214A8 BL __woverflow .text:000214AC B loc_21500 .text:000214B0 ; --------------------------------------------------------------------------- .text:000214B0 .text:000214B0 loc_214B0 ; CODE XREF: __printf_fp+3E4j .text:000214B0 STR R1, [R2],#4 .text:000214B4 STR R2, [R0,#0x10] .text:000214B8 B loc_21514 .text:000214B8 ; --------------------------------------------------------------------------- .text:000214BC off_214BC DCD _nl_current_LC_NUMERIC ; DATA XREF: __printf_fp+5Cr .text:000214BC ; __printf_fp+88r ... .text:000214C0 off_214C0 DCD _nl_current_LC_MONETARY .text:000214C0 ; DATA XREF: __printf_fp:loc_2112Cr .text:000214C0 ; __printf_fp+E0r ... .text:000214C4 off_214C4 DCD __ctype_b ; DATA XREF: __printf_fp+1E4r .text:000214C4 ; __printf_fp+234r .text:000214C8 off_214C8 DCD dword_56E44 ; DATA XREF: __printf_fp+200r .text:000214CC off_214CC DCD dword_56E48 ; DATA XREF: __printf_fp+204r .text:000214D0 off_214D0 DCD dword_56E58 ; DATA XREF: __printf_fp+208r .text:000214D4 off_214D4 DCD dword_56E5C ; DATA XREF: __printf_fp+20Cr .text:000214D8 off_214D8 DCD dword_56E6C ; DATA XREF: __printf_fp+250r .text:000214DC off_214DC DCD dword_56E70 ; DATA XREF: __printf_fp+254r .text:000214E0 off_214E0 DCD dword_56E80 ; DATA XREF: __printf_fp+258r .text:000214E4 off_214E4 DCD dword_56E84 ; DATA XREF: __printf_fp+25Cr .text:000214E8 ; --------------------------------------------------------------------------- .text:000214E8 .text:000214E8 loc_214E8 ; CODE XREF: __printf_fp+3D0j .text:000214E8 ADD R2, R6, #0x14 .text:000214EC LDMIA R2, {R2,R3} .text:000214F0 CMP R2, R3 .text:000214F4 BCC loc_2150C .text:000214F8 MOV R0, R6 .text:000214FC BL __overflow .text:00021500 .text:00021500 loc_21500 ; CODE XREF: __printf_fp+3F0j .text:00021500 CMN R0, #1 .text:00021504 BEQ loc_223BC .text:00021508 B loc_21514 .text:0002150C ; --------------------------------------------------------------------------- .text:0002150C .text:0002150C loc_2150C ; CODE XREF: __printf_fp+438j .text:0002150C STRB R1, [R2],#1 .text:00021510 STR R2, [R6,#0x14] .text:00021514 .text:00021514 loc_21514 ; CODE XREF: __printf_fp+3FCj .text:00021514 ; __printf_fp+44Cj .text:00021514 LDR R1, [R11,#var_84] .text:00021518 ADD R1, R1, #1 .text:0002151C STR R1, [R11,#var_84] .text:00021520 B loc_215A0 .text:00021524 ; --------------------------------------------------------------------------- .text:00021524 .text:00021524 loc_21524 ; CODE XREF: __printf_fp+3C0j .text:00021524 TST R3, #0x10 .text:00021528 BEQ loc_215A0 .text:0002152C LDR R2, [R11,#var_88] .text:00021530 MOV R1, #0x20 .text:00021534 CMP R2, #0 .text:00021538 BEQ loc_21568 .text:0002153C LDR R0, [R6,#0x58] .text:00021540 ADD R2, R0, #0x10 .text:00021544 LDMIA R2, {R2,R3} .text:00021548 CMP R2, R3 .text:0002154C BCC loc_2155C .text:00021550 MOV R0, R6 .text:00021554 BL __woverflow .text:00021558 B loc_21580 .text:0002155C ; --------------------------------------------------------------------------- .text:0002155C .text:0002155C loc_2155C ; CODE XREF: __printf_fp+490j .text:0002155C STR R1, [R2],#4 .text:00021560 STR R2, [R0,#0x10] .text:00021564 B loc_21594 .text:00021568 ; --------------------------------------------------------------------------- .text:00021568 .text:00021568 loc_21568 ; CODE XREF: __printf_fp+47Cj .text:00021568 ADD R2, R6, #0x14 .text:0002156C LDMIA R2, {R2,R3} .text:00021570 CMP R2, R3 .text:00021574 BCC loc_2158C .text:00021578 MOV R0, R6 .text:0002157C BL __overflow .text:00021580 .text:00021580 loc_21580 ; CODE XREF: __printf_fp+49Cj .text:00021580 CMN R0, #1 .text:00021584 BEQ loc_223BC .text:00021588 B loc_21594 .text:0002158C ; --------------------------------------------------------------------------- .text:0002158C .text:0002158C loc_2158C ; CODE XREF: __printf_fp+4B8j .text:0002158C STRB R1, [R2],#1 .text:00021590 STR R2, [R6,#0x14] .text:00021594 .text:00021594 loc_21594 ; CODE XREF: __printf_fp+4A8j .text:00021594 ; __printf_fp+4CCj .text:00021594 LDR R3, [R11,#var_84] .text:00021598 ADD R3, R3, #1 .text:0002159C STR R3, [R11,#var_84] .text:000215A0 .text:000215A0 loc_215A0 ; CODE XREF: __printf_fp+3B0j .text:000215A0 ; __printf_fp+464j ... .text:000215A0 LDR R7, [R11,#var_88] .text:000215A4 CMP R7, #0 .text:000215A8 BEQ loc_21648 .text:000215AC MOV R4, #2 .text:000215B0 .text:000215B0 loc_215B0 ; CODE XREF: __printf_fp+584j .text:000215B0 LDR R12, [R11,#var_88] .text:000215B4 LDR R1, [R10],#4 .text:000215B8 CMP R12, #0 .text:000215BC BEQ loc_215F0 .text:000215C0 LDR R0, [R6,#0x58] .text:000215C4 ADD R2, R0, #0x10 .text:000215C8 LDMIA R2, {R2,R3} .text:000215CC CMP R2, R3 .text:000215D0 BCC loc_215E0 .text:000215D4 MOV R0, R6 .text:000215D8 BL __woverflow .text:000215DC B loc_2160C .text:000215E0 ; --------------------------------------------------------------------------- .text:000215E0 .text:000215E0 loc_215E0 ; CODE XREF: __printf_fp+514j .text:000215E0 STR R1, [R2],#4 .text:000215E4 CMN R1, #1 .text:000215E8 STR R2, [R0,#0x10] .text:000215EC B loc_21624 .text:000215F0 ; --------------------------------------------------------------------------- .text:000215F0 .text:000215F0 loc_215F0 ; CODE XREF: __printf_fp+500j .text:000215F0 ADD R2, R6, #0x14 .text:000215F4 LDMIA R2, {R2,R3} .text:000215F8 CMP R2, R3 .text:000215FC BCC loc_21614 .text:00021600 MOV R0, R6 .text:00021604 AND R1, R1, #0xFF .text:00021608 BL __overflow .text:0002160C .text:0002160C loc_2160C ; CODE XREF: __printf_fp+520j .text:0002160C CMN R0, #1 .text:00021610 B loc_21624 .text:00021614 ; --------------------------------------------------------------------------- .text:00021614 .text:00021614 loc_21614 ; CODE XREF: __printf_fp+540j .text:00021614 STRB R1, [R2],#1 .text:00021618 AND R3, R1, #0xFF .text:0002161C CMN R3, #1 .text:00021620 STR R2, [R6,#0x14] .text:00021624 .text:00021624 loc_21624 ; CODE XREF: __printf_fp+530j .text:00021624 ; __printf_fp+554j .text:00021624 BEQ loc_223BC .text:00021628 LDR R0, [R11,#var_84] .text:0002162C ADD R0, R0, #1 .text:00021630 STR R0, [R11,#var_84] .text:00021634 MOV R3, R4 .text:00021638 SUB R4, R4, #1 .text:0002163C CMP R3, #0 .text:00021640 BNE loc_215B0 .text:00021644 B loc_216D8 .text:00021648 ; --------------------------------------------------------------------------- .text:00021648 .text:00021648 loc_21648 ; CODE XREF: __printf_fp+4ECj .text:00021648 MOV R4, #2 .text:0002164C .text:0002164C loc_2164C ; CODE XREF: __printf_fp+618j .text:0002164C LDR R1, [R11,#var_88] .text:00021650 CMP R1, #0 .text:00021654 LDRB R1, [R8],#1 .text:00021658 BEQ loc_2168C .text:0002165C LDR R0, [R6,#0x58] .text:00021660 ADD R2, R0, #0x10 .text:00021664 LDMIA R2, {R2,R3} .text:00021668 CMP R2, R3 .text:0002166C BCC loc_2167C .text:00021670 MOV R0, R6 .text:00021674 BL __woverflow .text:00021678 B loc_216A4 .text:0002167C ; --------------------------------------------------------------------------- .text:0002167C .text:0002167C loc_2167C ; CODE XREF: __printf_fp+5B0j .text:0002167C STR R1, [R2],#4 .text:00021680 CMN R1, #1 .text:00021684 STR R2, [R0,#0x10] .text:00021688 B loc_216B8 .text:0002168C ; --------------------------------------------------------------------------- .text:0002168C .text:0002168C loc_2168C ; CODE XREF: __printf_fp+59Cj .text:0002168C ADD R2, R6, #0x14 .text:00021690 LDMIA R2, {R2,R3} .text:00021694 CMP R2, R3 .text:00021698 BCC loc_216AC .text:0002169C MOV R0, R6 .text:000216A0 BL __overflow .text:000216A4 .text:000216A4 loc_216A4 ; CODE XREF: __printf_fp+5BCj .text:000216A4 CMN R0, #1 .text:000216A8 B loc_216B8 .text:000216AC ; --------------------------------------------------------------------------- .text:000216AC .text:000216AC loc_216AC ; CODE XREF: __printf_fp+5DCj .text:000216AC STRB R1, [R2],#1 .text:000216B0 CMN R1, #1 .text:000216B4 STR R2, [R6,#0x14] .text:000216B8 .text:000216B8 loc_216B8 ; CODE XREF: __printf_fp+5CCj .text:000216B8 ; __printf_fp+5ECj .text:000216B8 BEQ loc_223BC .text:000216BC LDR R2, [R11,#var_84] .text:000216C0 ADD R2, R2, #1 .text:000216C4 STR R2, [R11,#var_84] .text:000216C8 MOV R3, R4 .text:000216CC SUB R4, R4, #1 .text:000216D0 CMP R3, #0 .text:000216D4 BNE loc_2164C .text:000216D8 .text:000216D8 loc_216D8 ; CODE XREF: __printf_fp+588j .text:000216D8 LDR R7, [R11,#var_64] .text:000216DC LDRB R3, [R7,#0xC] .text:000216E0 TST R3, #0x20 .text:000216E4 MOVEQ R2, #0 .text:000216E8 MOVNE R2, #1 .text:000216EC CMP R2, #0 .text:000216F0 CMPNE R5, #0 .text:000216F4 BLE loc_22EF0 .text:000216F8 LDR R12, [R11,#var_88] .text:000216FC CMP R12, #0 .text:00021700 BEQ loc_21718 .text:00021704 MOV R0, R6 .text:00021708 MOV R1, #0x20 .text:0002170C MOV R2, R5 .text:00021710 BL _IO_wpadn .text:00021714 B loc_21728 .text:00021718 ; --------------------------------------------------------------------------- .text:00021718 .text:00021718 loc_21718 ; CODE XREF: __printf_fp+644j .text:00021718 MOV R0, R6 .text:0002171C MOV R1, #0x20 .text:00021720 MOV R2, R5 .text:00021724 BL _IO_padn .text:00021728 .text:00021728 loc_21728 ; CODE XREF: __printf_fp+658j .text:00021728 CMP R0, R5 .text:0002172C BNE loc_223BC .text:00021730 LDR R0, [R11,#var_84] .text:00021734 ADD R0, R0, R5 .text:00021738 STR R0, [R11,#var_84] .text:0002173C B loc_22EF0 .text:00021740 ; --------------------------------------------------------------------------- .text:00021740 .text:00021740 loc_21740 ; CODE XREF: __printf_fp+2A0j .text:00021740 LDR R12, [R11,#var_34] .text:00021744 STR R8, [R11,#var_38] .text:00021748 EOR R3, R12, R12,ASR#31 .text:0002174C SUB R3, R3, R12,ASR#31 .text:00021750 ADD R3, R3, #0x1F .text:00021754 CMP R3, #0 .text:00021758 ADDLT R3, R3, #0x1F .text:0002175C MOV R3, R3,ASR#5 .text:00021760 ADD R3, R3, #4 .text:00021764 MOV R3, R3,LSL#2 .text:00021768 RSB SP, R3, SP .text:0002176C ADD R0, SP, #0xBC+var_B4 .text:00021770 RSB SP, R3, SP .text:00021774 STR R0, [R11,#var_3C] .text:00021778 ADD R2, SP, #0xBC+var_B4 .text:0002177C RSB SP, R3, SP .text:00021780 STR R2, [R11,#var_48] .text:00021784 CMP R12, #2 .text:00021788 ADD R3, SP, #0xBC+var_B4 .text:0002178C STR R3, [R11,#var_4C] .text:00021790 BLE loc_21D64 .text:00021794 MOV R10, R8 .text:00021798 MOV R8, #8 .text:0002179C MOV R9, R10 .text:000217A0 ADD R12, R12, R7 .text:000217A4 LDR R4, =(_fpioconst_pow10+0x10) .text:000217A8 TST R12, #0x1F .text:000217AC ADD R5, R4, R8,LSL#4 .text:000217B0 BNE loc_21814 .text:000217B4 LDR R3, [R11,#var_40] .text:000217B8 SUBS R12, R3, #1 .text:000217BC BMI loc_217F4 .text:000217C0 SUB LR, R11, #-var_54 .text:000217C4 .text:000217C4 loc_217C4 ; CODE XREF: __printf_fp+734j .text:000217C4 LDR R3, [R11,#var_34] .text:000217C8 LDR R2, [R11,#var_3C] .text:000217CC MOV R0, R12,LSL#2 .text:000217D0 LDR R1, [R0,LR] .text:000217D4 ADD R3, R3, R7 .text:000217D8 CMP R3, #0 .text:000217DC ADDLT R3, R3, #0x1F .text:000217E0 SUBS R12, R12, #1 .text:000217E4 MOV R3, R3,ASR#5 .text:000217E8 ADD R2, R2, R3,LSL#2 .text:000217EC STR R1, [R0,R2] .text:000217F0 BPL loc_217C4 .text:000217F4 .text:000217F4 loc_217F4 ; CODE XREF: __printf_fp+700j .text:000217F4 LDR R3, [R11,#var_34] .text:000217F8 LDR R2, [R11,#var_40] .text:000217FC ADD R3, R3, R7 .text:00021800 CMP R3, #0 .text:00021804 ADDLT R3, R3, #0x1F .text:00021808 ADD R2, R2, R3,ASR#5 .text:0002180C STR R2, [R11,#var_40] .text:00021810 B loc_2186C .text:00021814 ; --------------------------------------------------------------------------- .text:00021814 .text:00021814 loc_21814 ; CODE XREF: __printf_fp+6F4j .text:00021814 CMP R12, #0 .text:00021818 ADDLT R3, R12, #0x1F .text:0002181C MOVGE R3, R12 .text:00021820 MOV R3, R3,ASR#5 .text:00021824 ADD R0, R0, R3,LSL#2 .text:00021828 SUB R1, R11, #-var_54 .text:0002182C LDR R2, [R11,#var_40] .text:00021830 SUB R3, R12, R3,LSL#5 .text:00021834 BL __mpn_lshift .text:00021838 STR R0, [R11,#var_44] .text:0002183C LDR R3, [R11,#var_34] .text:00021840 LDR R2, [R11,#var_40] .text:00021844 ADD R3, R3, R7 .text:00021848 CMP R3, #0 .text:0002184C ADDLT R3, R3, #0x1F .text:00021850 CMP R0, #0 .text:00021854 ADD R2, R2, R3,ASR#5 .text:00021858 STR R2, [R11,#var_40] .text:0002185C LDRNE R3, [R11,#var_3C] .text:00021860 STRNE R0, [R3,R2,LSL#2] .text:00021864 ADDNE R3, R2, #1 .text:00021868 STRNE R3, [R11,#var_40] .text:0002186C .text:0002186C loc_2186C ; CODE XREF: __printf_fp+754j .text:0002186C LDR R3, [R11,#var_34] .text:00021870 MOV R0, #0 .text:00021874 ADD R3, R3, R7 .text:00021878 CMP R3, R0 .text:0002187C ADDLT R3, R3, #0x1F .text:00021880 CMP R0, R3,ASR#5 .text:00021884 BGE loc_218B4 .text:00021888 MOV R12, R0 .text:0002188C .text:0002188C loc_2188C ; CODE XREF: __printf_fp+7F4j .text:0002188C LDR R1, [R11,#var_3C] .text:00021890 MOV R2, R0,LSL#2 .text:00021894 STR R12, [R2,R1] .text:00021898 LDR R3, [R11,#var_34] .text:0002189C ADD R0, R0, #1 .text:000218A0 ADD R3, R3, R7 .text:000218A4 CMP R3, #0 .text:000218A8 ADDLT R3, R3, #0x1F .text:000218AC CMP R0, R3,ASR#5 .text:000218B0 BLT loc_2188C .text:000218B4 .text:000218B4 loc_218B4 ; CODE XREF: __printf_fp+7C8j .text:000218B4 ; __printf_fp+928j .text:000218B4 SUB R5, R5, #0x10 .text:000218B8 LDR R3, [R5,#8] .text:000218BC LDR R2, [R11,#var_34] .text:000218C0 ADD R3, R10, R3 .text:000218C4 SUB R3, R3, #1 .text:000218C8 CMP R2, R3 .text:000218CC BLT loc_219D8 .text:000218D0 LDR R2, [R11,#var_38] .text:000218D4 CMP R2, #0 .text:000218D8 BNE loc_218F8 .text:000218DC LDMIA R5, {R3,R4} .text:000218E0 LDR R1, =__tens .text:000218E4 LDR R0, [R11,#var_48] .text:000218E8 ADD R1, R1, R3,LSL#2 .text:000218EC MOV R2, R4,LSL#2 .text:000218F0 BL memcpy .text:000218F4 B loc_2193C .text:000218F8 ; --------------------------------------------------------------------------- .text:000218F8 .text:000218F8 loc_218F8 ; CODE XREF: __printf_fp+81Cj .text:000218F8 LDR R3, [R5,#4] .text:000218FC SUB R3, R3, #2 .text:00021900 STR R3, [SP,#0xBC+var_BC] .text:00021904 LDR R0, [R11,#var_48] .text:00021908 LDR R3, =(__tens+8) .text:0002190C LDR R12, [R5] .text:00021910 LDR R1, [R11,#var_4C] .text:00021914 ADD R3, R3, R12,LSL#2 .text:00021918 BL __mpn_mul .text:0002191C LDR R2, [R11,#var_38] .text:00021920 LDR R1, [R5,#4] .text:00021924 CMP R0, #0 .text:00021928 STR R0, [R11,#var_44] .text:0002192C ADD R2, R2, R1 .text:00021930 SUB R3, R2, #3 .text:00021934 SUBNE R4, R2, #2 .text:00021938 MOVEQ R4, R3 .text:0002193C .text:0002193C loc_2193C ; CODE XREF: __printf_fp+838j .text:0002193C LDR R3, [R11,#var_40] .text:00021940 CMP R3, R4 .text:00021944 BGT loc_21964 .text:00021948 BNE loc_219D8 .text:0002194C LDR R0, [R11,#var_3C] .text:00021950 LDR R1, [R11,#var_48] .text:00021954 MOV R2, R4 .text:00021958 BL __mpn_cmp .text:0002195C CMP R0, #0 .text:00021960 BLT loc_219D8 .text:00021964 .text:00021964 loc_21964 ; CODE XREF: __printf_fp+888j .text:00021964 STR R4, [R11,#var_38] .text:00021968 SUB R0, R11, #-var_4C .text:0002196C LDMIA R0, {R0,R1} .text:00021970 MOV R2, R4,LSL#2 .text:00021974 BL memcpy .text:00021978 LDR R2, [R11,#var_38] .text:0002197C LDR R3, [R11,#var_4C] .text:00021980 ADD R3, R3, R2,LSL#2 .text:00021984 LDR R2, [R3,#-4] .text:00021988 CMP R2, #0x10000 .text:0002198C BCS loc_219A0 .text:00021990 CMP R2, #0xFF .text:00021994 MOVHI R0, #8 .text:00021998 MOVLS R0, #0 .text:0002199C B loc_219AC .text:000219A0 ; --------------------------------------------------------------------------- .text:000219A0 .text:000219A0 loc_219A0 ; CODE XREF: __printf_fp+8D0j .text:000219A0 CMP R2, #0x1000000 .text:000219A4 MOVCS R0, #0x18 .text:000219A8 MOVCC R0, #0x10 .text:000219AC .text:000219AC loc_219AC ; CODE XREF: __printf_fp+8E0j .text:000219AC LDR R1, =__clz_tab_1 .text:000219B0 MOV R2, R2,LSR R0 .text:000219B4 LDRB R3, [R1,R2] .text:000219B8 ADD R3, R3, R0 .text:000219BC RSB R3, R3, #0x20 .text:000219C0 LDR R2, [R11,#var_38] .text:000219C4 SUB R2, R2, #2 .text:000219C8 RSB R3, R3, R2,LSL#5 .text:000219CC SUB R10, R3, #1 .text:000219D0 MOV R2, #1 .text:000219D4 ORR R9, R9, R2,LSL R8 .text:000219D8 .text:000219D8 loc_219D8 ; CODE XREF: __printf_fp+810j .text:000219D8 ; __printf_fp+88Cj ... .text:000219D8 LDR R1, =_fpioconst_pow10 .text:000219DC SUB R8, R8, #1 .text:000219E0 CMP R5, R1 .text:000219E4 BHI loc_218B4 .text:000219E8 LDR R1, [R11,#var_38] .text:000219EC STR R9, [R11,#var_34] .text:000219F0 CMP R1, #0 .text:000219F4 BLE loc_221CC .text:000219F8 MOV R5, #0 .text:000219FC LDR R2, [R11,#var_4C] .text:00021A00 MOV LR, R1 .text:00021A04 LDR R3, [R2] .text:00021A08 MOV R0, R2 .text:00021A0C CMP R3, R5 .text:00021A10 BNE loc_21A4C .text:00021A14 LDR R2, [R11,#var_3C] .text:00021A18 LDR R3, [R2] .text:00021A1C CMP R3, R5 .text:00021A20 BNE loc_21A4C .text:00021A24 MOV R12, R0 .text:00021A28 MOV R1, R2 .text:00021A2C .text:00021A2C loc_21A2C ; CODE XREF: __printf_fp+98Cj .text:00021A2C ADD R5, R5, #1 .text:00021A30 MOV R2, R5,LSL#2 .text:00021A34 LDR R3, [R2,R12] .text:00021A38 CMP R3, #0 .text:00021A3C BNE loc_21A4C .text:00021A40 LDR R3, [R2,R1] .text:00021A44 CMP R3, #0 .text:00021A48 BEQ loc_21A2C .text:00021A4C .text:00021A4C loc_21A4C ; CODE XREF: __printf_fp+954j .text:00021A4C ; __printf_fp+964j ... .text:00021A4C ADD R3, R0, LR,LSL#2 .text:00021A50 LDR R2, [R3,#-4] .text:00021A54 CMP R2, #0x10000 .text:00021A58 BCS loc_21A6C .text:00021A5C CMP R2, #0xFF .text:00021A60 MOVHI R1, #8 .text:00021A64 MOVLS R1, #0 .text:00021A68 B loc_21A78 .text:00021A6C ; --------------------------------------------------------------------------- .text:00021A6C .text:00021A6C loc_21A6C ; CODE XREF: __printf_fp+99Cj .text:00021A6C CMP R2, #0x1000000 .text:00021A70 MOVCS R1, #0x18 .text:00021A74 MOVCC R1, #0x10 .text:00021A78 .text:00021A78 loc_21A78 ; CODE XREF: __printf_fp+9ACj .text:00021A78 LDR R7, =__clz_tab_1 .text:00021A7C MOV R2, R2,LSR R1 .text:00021A80 LDRB R3, [R7,R2] .text:00021A84 ADD R3, R3, R1 .text:00021A88 RSBS R8, R3, #0x20 .text:00021A8C BNE loc_21B30 .text:00021A90 CMP R5, #0 .text:00021A94 BLE loc_221CC .text:00021A98 MOV R12, R8 .text:00021A9C RSB R3, R5, LR .text:00021AA0 CMP R12, R3 .text:00021AA4 BGE loc_21AD4 .text:00021AA8 MOV LR, R5,LSL#2 .text:00021AAC .text:00021AAC loc_21AAC ; CODE XREF: __printf_fp+A14j .text:00021AAC LDR R0, [R11,#var_4C] .text:00021AB0 MOV R1, R12,LSL#2 .text:00021AB4 ADD R3, LR, R0 .text:00021AB8 LDR R2, [R1,R3] .text:00021ABC STR R2, [R1,R0] .text:00021AC0 LDR R3, [R11,#var_38] .text:00021AC4 ADD R12, R12, #1 .text:00021AC8 RSB R3, R5, R3 .text:00021ACC CMP R12, R3 .text:00021AD0 BLT loc_21AAC .text:00021AD4 .text:00021AD4 loc_21AD4 ; CODE XREF: __printf_fp+9E8j .text:00021AD4 LDR R3, [R11,#var_38] .text:00021AD8 RSB R3, R5, R3 .text:00021ADC STR R3, [R11,#var_38] .text:00021AE0 MOV R12, #0 .text:00021AE4 LDR R3, [R11,#var_40] .text:00021AE8 RSB R3, R5, R3 .text:00021AEC CMP R12, R3 .text:00021AF0 BGE loc_21B20 .text:00021AF4 MOV LR, R5,LSL#2 .text:00021AF8 .text:00021AF8 loc_21AF8 ; CODE XREF: __printf_fp+A60j .text:00021AF8 LDR R0, [R11,#var_3C] .text:00021AFC MOV R1, R12,LSL#2 .text:00021B00 ADD R3, LR, R0 .text:00021B04 LDR R2, [R1,R3] .text:00021B08 STR R2, [R1,R0] .text:00021B0C LDR R3, [R11,#var_40] .text:00021B10 ADD R12, R12, #1 .text:00021B14 RSB R3, R5, R3 .text:00021B18 CMP R12, R3 .text:00021B1C BLT loc_21AF8 .text:00021B20 .text:00021B20 loc_21B20 ; CODE XREF: __printf_fp+A34j .text:00021B20 LDR R3, [R11,#var_40] .text:00021B24 .text:00021B24 loc_21B24 ; CODE XREF: __printf_fp+C34j .text:00021B24 RSB R3, R5, R3 .text:00021B28 .text:00021B28 loc_21B28 ; CODE XREF: __printf_fp+BD4j .text:00021B28 ; __printf_fp+C3Cj .text:00021B28 STR R3, [R11,#var_40] .text:00021B2C B loc_221CC .text:00021B30 ; --------------------------------------------------------------------------- .text:00021B30 .text:00021B30 loc_21B30 ; CODE XREF: __printf_fp+9D0j .text:00021B30 MOV R3, R5,LSL#2 .text:00021B34 LDR R2, [R3,R0] .text:00021B38 MOV R4, R3 .text:00021B3C CMP R2, #0 .text:00021B40 BEQ loc_21BF4 .text:00021B44 RSB R3, R2, #0 .text:00021B48 AND R3, R2, R3 .text:00021B4C CMP R3, #0x10000 .text:00021B50 BCS loc_21B78 .text:00021B54 CMP R3, #0xFF .text:00021B58 MOVHI R1, #8 .text:00021B5C MOVLS R1, #0 .text:00021B60 B loc_21B84 .text:00021B60 ; --------------------------------------------------------------------------- .text:00021B64 off_21B64 DCD _fpioconst_pow10+0x10 ; DATA XREF: __printf_fp+6E8r .text:00021B68 off_21B68 DCD __tens ; DATA XREF: __printf_fp+824r .text:00021B6C off_21B6C DCD __tens+8 ; DATA XREF: __printf_fp+84Cr .text:00021B70 off_21B70 DCD __clz_tab_1 ; DATA XREF: __printf_fp:loc_219ACr .text:00021B70 ; __printf_fp:loc_21A78r .text:00021B74 off_21B74 DCD _fpioconst_pow10 ; DATA XREF: __printf_fp:loc_219D8r .text:00021B78 ; --------------------------------------------------------------------------- .text:00021B78 .text:00021B78 loc_21B78 ; CODE XREF: __printf_fp+A94j .text:00021B78 CMP R3, #0x1000000 .text:00021B7C MOVCS R1, #0x18 .text:00021B80 MOVCC R1, #0x10 .text:00021B84 .text:00021B84 loc_21B84 ; CODE XREF: __printf_fp+AA4j .text:00021B84 LDR R12, =__clz_tab_1 .text:00021B88 MOV R3, R3,LSR R1 .text:00021B8C LDRB R2, [R12,R3] .text:00021B90 ADD R2, R2, R1 .text:00021B94 SUB R12, R2, #1 .text:00021B98 LDR R3, [R11,#var_3C] .text:00021B9C LDR R2, [R4,R3] .text:00021BA0 CMP R2, #0 .text:00021BA4 BEQ loc_21C3C .text:00021BA8 RSB R3, R2, #0 .text:00021BAC AND R3, R2, R3 .text:00021BB0 CMP R3, #0x10000 .text:00021BB4 BCS loc_21BC8 .text:00021BB8 CMP R3, #0xFF .text:00021BBC MOVHI R1, #8 .text:00021BC0 MOVLS R1, #0 .text:00021BC4 B loc_21BD4 .text:00021BC8 ; --------------------------------------------------------------------------- .text:00021BC8 .text:00021BC8 loc_21BC8 ; CODE XREF: __printf_fp+AF8j .text:00021BC8 CMP R3, #0x1000000 .text:00021BCC MOVCS R1, #0x18 .text:00021BD0 MOVCC R1, #0x10 .text:00021BD4 .text:00021BD4 loc_21BD4 ; CODE XREF: __printf_fp+B08j .text:00021BD4 LDR R7, =__clz_tab_1 .text:00021BD8 MOV R3, R3,LSR R1 .text:00021BDC LDRB R2, [R7,R3] .text:00021BE0 ADD R2, R2, R1 .text:00021BE4 SUB R2, R2, #1 .text:00021BE8 CMP R2, R12 .text:00021BEC MOVLT R12, R2 .text:00021BF0 B loc_21C3C .text:00021BF4 ; --------------------------------------------------------------------------- .text:00021BF4 .text:00021BF4 loc_21BF4 ; CODE XREF: __printf_fp+A84j .text:00021BF4 LDR R3, [R11,#var_3C] .text:00021BF8 LDR R2, [R4,R3] .text:00021BFC RSB R1, R2, #0 .text:00021C00 AND R2, R2, R1 .text:00021C04 CMP R2, #0x10000 .text:00021C08 BCS loc_21C1C .text:00021C0C CMP R2, #0xFF .text:00021C10 MOVHI R1, #8 .text:00021C14 MOVLS R1, #0 .text:00021C18 B loc_21C28 .text:00021C1C ; --------------------------------------------------------------------------- .text:00021C1C .text:00021C1C loc_21C1C ; CODE XREF: __printf_fp+B4Cj .text:00021C1C CMP R2, #0x1000000 .text:00021C20 MOVCS R1, #0x18 .text:00021C24 MOVCC R1, #0x10 .text:00021C28 .text:00021C28 loc_21C28 ; CODE XREF: __printf_fp+B5Cj .text:00021C28 LDR R12, =__clz_tab_1 .text:00021C2C MOV R2, R2,LSR R1 .text:00021C30 LDRB R3, [R12,R2] .text:00021C34 ADD R3, R3, R1 .text:00021C38 SUB R12, R3, #1 .text:00021C3C .text:00021C3C loc_21C3C ; CODE XREF: __printf_fp+AE8j .text:00021C3C ; __printf_fp+B34j .text:00021C3C CMP R5, #0 .text:00021C40 RSB R7, R8, #0x20 .text:00021C44 BNE loc_21C94 .text:00021C48 CMP R7, R12 .text:00021C4C BLE loc_21C94 .text:00021C50 MOV R1, R0 .text:00021C54 MOV R2, LR .text:00021C58 MOV R3, R8 .text:00021C5C BL __mpn_lshift .text:00021C60 LDR R0, [R11,#var_3C] .text:00021C64 MOV R3, R8 .text:00021C68 LDR R2, [R11,#var_40] .text:00021C6C MOV R1, R0 .text:00021C70 BL __mpn_lshift .text:00021C74 CMP R0, #0 .text:00021C78 STR R0, [R11,#var_44] .text:00021C7C BEQ loc_221CC .text:00021C80 LDR R3, [R11,#var_40] .text:00021C84 LDR R2, [R11,#var_3C] .text:00021C88 STR R0, [R2,R3,LSL#2] .text:00021C8C ADD R3, R3, #1 .text:00021C90 B loc_21B28 .text:00021C94 ; --------------------------------------------------------------------------- .text:00021C94 .text:00021C94 loc_21C94 ; CODE XREF: __printf_fp+B88j .text:00021C94 ; __printf_fp+B90j .text:00021C94 CMP R7, R12 .text:00021C98 BGT loc_21CFC .text:00021C9C ADD R1, R0, R4 .text:00021CA0 RSB R2, R5, LR .text:00021CA4 MOV R3, R7 .text:00021CA8 BL __mpn_rshift .text:00021CAC LDR R3, [R11,#var_38] .text:00021CB0 SUB R3, R3, #1 .text:00021CB4 RSB R3, R5, R3 .text:00021CB8 STR R3, [R11,#var_38] .text:00021CBC LDR R0, [R11,#var_3C] .text:00021CC0 LDR R2, [R11,#var_40] .text:00021CC4 MOV R3, R7 .text:00021CC8 ADD R1, R0, R4 .text:00021CCC RSB R2, R5, R2 .text:00021CD0 BL __mpn_rshift .text:00021CD4 SUB R0, R11, #-var_40 .text:00021CD8 LDMIA R0, {R0,R3} .text:00021CDC RSB R1, R5, R0 .text:00021CE0 ADD R3, R3, R1,LSL#2 .text:00021CE4 LDR R2, [R3,#-4] .text:00021CE8 CMP R2, #0 .text:00021CEC SUBEQ R3, R0, #1 .text:00021CF0 BEQ loc_21B24 .text:00021CF4 MOV R3, R1 .text:00021CF8 B loc_21B28 .text:00021CFC ; --------------------------------------------------------------------------- .text:00021CFC .text:00021CFC loc_21CFC ; CODE XREF: __printf_fp+BDCj .text:00021CFC SUB R4, R4, #4 .text:00021D00 ADD R1, R0, R4 .text:00021D04 ADD R2, LR, #1 .text:00021D08 RSB R2, R5, R2 .text:00021D0C MOV R3, R7 .text:00021D10 BL __mpn_rshift .text:00021D14 SUB R0, R11, #-var_3C .text:00021D18 LDMIA R0, {R0,R3} .text:00021D1C LDR R2, [R11,#var_40] .text:00021D20 RSB R3, R5, R3 .text:00021D24 STR R3, [R11,#var_38] .text:00021D28 MOV R3, R7 .text:00021D2C ADD R1, R0, R4 .text:00021D30 ADD R2, R2, #1 .text:00021D34 RSB R2, R5, R2 .text:00021D38 BL __mpn_rshift .text:00021D3C LDR R12, [R11,#var_40] .text:00021D40 LDR R3, [R11,#var_3C] .text:00021D44 ADD R2, R12, #1 .text:00021D48 RSB R2, R5, R2 .text:00021D4C ADD R3, R3, R2,LSL#2 .text:00021D50 LDR R1, [R3,#-4] .text:00021D54 CMP R1, #0 .text:00021D58 SUBEQ R2, R12, R5 .text:00021D5C STR R2, [R11,#var_40] .text:00021D60 B loc_221CC .text:00021D64 ; --------------------------------------------------------------------------- .text:00021D64 .text:00021D64 loc_21D64 ; CODE XREF: __printf_fp+6D4j .text:00021D64 CMP R12, #0 .text:00021D68 BGE loc_221A0 .text:00021D6C SUB R1, R11, #-var_54 .text:00021D70 LDR R2, [R11,#var_40] .text:00021D74 MOV R3, R7 .text:00021D78 BL __mpn_lshift .text:00021D7C STR R0, [R11,#var_44] .text:00021D80 LDR R3, [R11,#var_40] .text:00021D84 LDR R2, [R11,#var_3C] .text:00021D88 STR R0, [R2,R3,LSL#2] .text:00021D8C ADD R3, R3, #1 .text:00021D90 STR R3, [R11,#var_40] .text:00021D94 MOV R2, #1 .text:00021D98 STR R2, [R11,#var_2C] .text:00021D9C STR R8, [R11,#var_8C] .text:00021DA0 LDR R2, =(_fpioconst_pow10+0x10) .text:00021DA4 SUB R9, R11, #-var_60 .text:00021DA8 LDR R3, [R11,#var_34] .text:00021DAC MOV R0, #8 .text:00021DB0 STR R0, [R11,#var_90] .text:00021DB4 ADD R10, R2, R0,LSL#4 .text:00021DB8 RSB R3, R3, #0 .text:00021DBC STR R3, [R11,#var_34] .text:00021DC0 .text:00021DC0 loc_21DC0 ; CODE XREF: __printf_fp+1008j .text:00021DC0 LDR R2, [R11,#var_34] .text:00021DC4 LDR R1, [R11,#var_90] .text:00021DC8 SUB R10, R10, #0x10 .text:00021DCC LDR R3, [R10,#0xC] .text:00021DD0 SUB R8, R1, #1 .text:00021DD4 CMP R2, R3 .text:00021DD8 MOV R1, R2 .text:00021DDC BLT loc_220B0 .text:00021DE0 LDR R3, [R10,#4] .text:00021DE4 LDR R12, [R11,#var_40] .text:00021DE8 SUB R2, R3, #2 .text:00021DEC CMP R12, R2 .text:00021DF0 BGE loc_21E10 .text:00021DF4 STR R12, [SP,#0xBC+var_BC] .text:00021DF8 LDR R0, [R11,#var_48] .text:00021DFC LDR R12, [R10] .text:00021E00 LDR R1, =(__tens+8) .text:00021E04 LDR R3, [R11,#var_3C] .text:00021E08 ADD R1, R1, R12,LSL#2 .text:00021E0C B loc_21E2C .text:00021E10 ; --------------------------------------------------------------------------- .text:00021E10 .text:00021E10 loc_21E10 ; CODE XREF: __printf_fp+D34j .text:00021E10 STR R2, [SP,#0xBC+var_BC] .text:00021E14 LDR R0, [R11,#var_48] .text:00021E18 LDR R3, =(__tens+8) .text:00021E1C MOV R2, R12 .text:00021E20 LDR R12, [R10] .text:00021E24 LDR R1, [R11,#var_3C] .text:00021E28 ADD R3, R3, R12,LSL#2 .text:00021E2C .text:00021E2C loc_21E2C ; CODE XREF: __printf_fp+D50j .text:00021E2C BL __mpn_mul .text:00021E30 STR R0, [R11,#var_44] .text:00021E34 LDR R12, [R11,#var_40] .text:00021E38 LDR R1, [R10,#4] .text:00021E3C LDR R0, [R11,#var_44] .text:00021E40 ADD R1, R12, R1 .text:00021E44 SUB R2, R1, #3 .text:00021E48 CMP R0, #0 .text:00021E4C SUBNE R4, R1, #2 .text:00021E50 MOVEQ R4, R2 .text:00021E54 LDR R3, [R11,#var_48] .text:00021E58 ADD R3, R3, R4,LSL#2 .text:00021E5C LDR R2, [R3,#-4] .text:00021E60 CMP R2, #0x10000 .text:00021E64 BCS loc_21E78 .text:00021E68 CMP R2, #0xFF .text:00021E6C MOVHI R0, #8 .text:00021E70 MOVLS R0, #0 .text:00021E74 B loc_21E84 .text:00021E78 ; --------------------------------------------------------------------------- .text:00021E78 .text:00021E78 loc_21E78 ; CODE XREF: __printf_fp+DA8j .text:00021E78 CMP R2, #0x1000000 .text:00021E7C MOVCS R0, #0x18 .text:00021E80 MOVCC R0, #0x10 .text:00021E84 .text:00021E84 loc_21E84 ; CODE XREF: __printf_fp+DB8j .text:00021E84 LDR R1, =__clz_tab_1 .text:00021E88 MOV R2, R2,LSR R0 .text:00021E8C LDRB R3, [R1,R2] .text:00021E90 ADD R3, R3, R0 .text:00021E94 RSB R5, R3, #0x20 .text:00021E98 RSB R0, R12, R4 .text:00021E9C SUB R2, R5, #0x1F .text:00021EA0 LDR R3, [R11,#var_34] .text:00021EA4 RSB R7, R2, R0,LSL#5 .text:00021EA8 ADD R3, R3, #3 .text:00021EAC CMP R7, R3 .text:00021EB0 BNE loc_21F08 .text:00021EB4 CMP R5, #0x1C .text:00021EB8 BGT loc_21EE4 .text:00021EBC MOV R3, #0 .text:00021EC0 RSB R2, R5, #0x1C .text:00021EC4 STR R3, [R11,#var_60] .text:00021EC8 ADD R3, R3, #0xA .text:00021ECC MOV R3, R3,LSL R2 .text:00021ED0 STR R3, [R9,#4] .text:00021ED4 B loc_21F08 .text:00021ED4 ; --------------------------------------------------------------------------- .text:00021ED8 off_21ED8 DCD __clz_tab_1 ; DATA XREF: __printf_fp:loc_21B84r .text:00021ED8 ; __printf_fp:loc_21BD4r ... .text:00021EDC off_21EDC DCD _fpioconst_pow10+0x10 ; DATA XREF: __printf_fp+CE4r .text:00021EE0 off_21EE0 DCD __tens+8 ; DATA XREF: __printf_fp+D44r .text:00021EE0 ; __printf_fp+D5Cr .text:00021EE4 ; --------------------------------------------------------------------------- .text:00021EE4 .text:00021EE4 loc_21EE4 ; CODE XREF: __printf_fp+DFCj .text:00021EE4 MOV R3, #0xA0000000 .text:00021EE8 STR R3, [R11,#var_60] .text:00021EEC MOV R2, #0 .text:00021EF0 STR R2, [R9,#4] .text:00021EF4 MOV R0, R9 .text:00021EF8 MOV R1, R9 .text:00021EFC ADD R2, R2, #2 .text:00021F00 RSB R3, R5, #0x20 .text:00021F04 BL __mpn_lshift .text:00021F08 .text:00021F08 loc_21F08 ; CODE XREF: __printf_fp+DF4j .text:00021F08 ; __printf_fp+E18j .text:00021F08 LDR R2, [R11,#var_34] .text:00021F0C ADD R3, R2, #3 .text:00021F10 CMP R7, R3 .text:00021F14 MOV R1, R2 .text:00021F18 BLT loc_21F54 .text:00021F1C LDR R2, [R11,#var_90] .text:00021F20 SUB R8, R2, #1 .text:00021F24 BNE loc_220B0 .text:00021F28 LDR R3, [R11,#var_48] .text:00021F2C ADD R0, R3, R4,LSL#2 .text:00021F30 LDR R2, [R0,#-4] .text:00021F34 LDR R3, [R9,#4] .text:00021F38 CMP R2, R3 .text:00021F3C BCC loc_21F54 .text:00021F40 BNE loc_220B0 .text:00021F44 LDR R2, [R0,#-8] .text:00021F48 LDR R3, [R11,#var_60] .text:00021F4C CMP R2, R3 .text:00021F50 BCS loc_220B0 .text:00021F54 .text:00021F54 loc_21F54 ; CODE XREF: __printf_fp+E5Cj .text:00021F54 ; __printf_fp+E80j .text:00021F54 RSB R1, R7, R1 .text:00021F58 STR R1, [R11,#var_34] .text:00021F5C LDR R7, [R11,#var_8C] .text:00021F60 LDR R12, [R11,#var_90] .text:00021F64 MOV R3, #1 .text:00021F68 ORR R7, R7, R3,LSL R12 .text:00021F6C STR R7, [R11,#var_8C] .text:00021F70 RSB R2, R1, R5 .text:00021F74 CMP R1, #0 .text:00021F78 MOVLT R5, R2 .text:00021F7C LDR R0, [R11,#var_48] .text:00021F80 MOV LR, #0 .text:00021F84 LDR R3, [R0] .text:00021F88 SUB R8, R12, #1 .text:00021F8C CMP R3, LR .text:00021F90 BNE loc_21FA8 .text:00021F94 MOV R2, R0 .text:00021F98 .text:00021F98 loc_21F98 ; CODE XREF: __printf_fp+EE8j .text:00021F98 ADD LR, LR, #1 .text:00021F9C LDR R3, [R2,LR,LSL#2] .text:00021FA0 CMP R3, #0 .text:00021FA4 BEQ loc_21F98 .text:00021FA8 .text:00021FA8 loc_21FA8 ; CODE XREF: __printf_fp+ED4j .text:00021FA8 CMP R5, #0x1F .text:00021FAC BNE loc_21FF4 .text:00021FB0 MOV R12, #0 .text:00021FB4 RSB R4, LR, R4 .text:00021FB8 CMP R12, R4 .text:00021FBC MOV R5, R4 .text:00021FC0 BGE loc_21FEC .text:00021FC4 MOV LR, LR,LSL#2 .text:00021FC8 .text:00021FC8 loc_21FC8 ; CODE XREF: __printf_fp+F2Cj .text:00021FC8 MOV R0, R12,LSL#2 .text:00021FCC LDR R3, [R11,#var_48] .text:00021FD0 ADD R12, R12, #1 .text:00021FD4 LDR R1, [R11,#var_3C] .text:00021FD8 ADD R3, LR, R3 .text:00021FDC LDR R2, [R0,R3] .text:00021FE0 CMP R12, R4 .text:00021FE4 STR R2, [R0,R1] .text:00021FE8 BLT loc_21FC8 .text:00021FEC .text:00021FEC loc_21FEC ; CODE XREF: __printf_fp+F04j .text:00021FEC STR R5, [R11,#var_40] .text:00021FF0 B loc_220AC .text:00021FF4 ; --------------------------------------------------------------------------- .text:00021FF4 .text:00021FF4 loc_21FF4 ; CODE XREF: __printf_fp+EF0j .text:00021FF4 MOV R1, LR,LSL#2 .text:00021FF8 LDR R2, [R1,R0] .text:00021FFC RSB R3, R2, #0 .text:00022000 AND R2, R2, R3 .text:00022004 CMP R2, #0x10000 .text:00022008 MOV R12, R1 .text:0002200C BCS loc_22020 .text:00022010 CMP R2, #0xFF .text:00022014 MOVHI R1, #8 .text:00022018 MOVLS R1, #0 .text:0002201C B loc_2202C .text:00022020 ; --------------------------------------------------------------------------- .text:00022020 .text:00022020 loc_22020 ; CODE XREF: __printf_fp+F50j .text:00022020 CMP R2, #0x1000000 .text:00022024 MOVCS R1, #0x18 .text:00022028 MOVCC R1, #0x10 .text:0002202C .text:0002202C loc_2202C ; CODE XREF: __printf_fp+F60j .text:0002202C LDR R7, =__clz_tab_1 .text:00022030 MOV R3, R2,LSR R1 .text:00022034 LDRB R2, [R7,R3] .text:00022038 ADD R2, R2, R1 .text:0002203C SUB R1, R2, #1 .text:00022040 CMP LR, #0 .text:00022044 RSB R3, R5, #0x1F .text:00022048 BNE loc_22084 .text:0002204C CMP R3, R1 .text:00022050 BLE loc_22084 .text:00022054 MOV R1, R0 .text:00022058 MOV R2, R4 .text:0002205C LDR R0, [R11,#var_3C] .text:00022060 ADD R3, R5, #1 .text:00022064 BL __mpn_lshift .text:00022068 STR R0, [R11,#var_44] .text:0002206C LDR R3, [R11,#var_3C] .text:00022070 ADD R2, R4, #1 .text:00022074 STR R2, [R11,#var_40] .text:00022078 ADD R3, R3, R2,LSL#2 .text:0002207C STR R0, [R3,#-4] .text:00022080 B loc_220AC .text:00022084 ; --------------------------------------------------------------------------- .text:00022084 .text:00022084 loc_22084 ; CODE XREF: __printf_fp+F8Cj .text:00022084 ; __printf_fp+F94j .text:00022084 CMP R3, R1 .text:00022088 ADDLE R1, R0, R12 .text:0002208C SUBGT R1, R12, #4 .text:00022090 ADDGT R1, R0, R1 .text:00022094 ADDGT R4, R4, #1 .text:00022098 RSB R4, LR, R4 .text:0002209C LDR R0, [R11,#var_3C] .text:000220A0 MOV R2, R4 .text:000220A4 BL __mpn_rshift .text:000220A8 STR R4, [R11,#var_40] .text:000220AC .text:000220AC loc_220AC ; CODE XREF: __printf_fp+F34j .text:000220AC ; __printf_fp+FC4j .text:000220AC LDR R1, [R11,#var_34] .text:000220B0 .text:000220B0 loc_220B0 ; CODE XREF: __printf_fp+D20j .text:000220B0 ; __printf_fp+E68j ... .text:000220B0 LDR R12, =(_fpioconst_pow10+0x10) .text:000220B4 STR R8, [R11,#var_90] .text:000220B8 CMP R10, R12 .text:000220BC BEQ loc_220C8 .text:000220C0 CMP R1, #0 .text:000220C4 BGT loc_21DC0 .text:000220C8 .text:000220C8 loc_220C8 ; CODE XREF: __printf_fp+1000j .text:000220C8 CMP R1, #0 .text:000220CC BLE loc_22194 .text:000220D0 LDR R0, [R11,#var_48] .text:000220D4 LDR R1, [R11,#var_3C] .text:000220D8 LDR R2, [R11,#var_40] .text:000220DC MOV R3, #0xA .text:000220E0 BL __mpn_mul_1 .text:000220E4 STR R0, [R11,#var_44] .text:000220E8 LDR R4, [R11,#var_40] .text:000220EC LDR R3, [R11,#var_48] .text:000220F0 LDR R2, [R3] .text:000220F4 RSB R1, R2, #0 .text:000220F8 AND R2, R2, R1 .text:000220FC CMP R2, #0x10000 .text:00022100 BCS loc_22114 .text:00022104 CMP R2, #0xFF .text:00022108 MOVHI R0, #8 .text:0002210C MOVLS R0, #0 .text:00022110 B loc_22120 .text:00022114 ; --------------------------------------------------------------------------- .text:00022114 .text:00022114 loc_22114 ; CODE XREF: __printf_fp+1044j .text:00022114 CMP R2, #0x1000000 .text:00022118 MOVCS R0, #0x18 .text:0002211C MOVCC R0, #0x10 .text:00022120 .text:00022120 loc_22120 ; CODE XREF: __printf_fp+1054j .text:00022120 LDR R1, =__clz_tab_1 .text:00022124 MOV R3, R2,LSR R0 .text:00022128 LDRB R2, [R1,R3] .text:0002212C ADD R2, R2, R0 .text:00022130 SUB R2, R2, #1 .text:00022134 LDR R3, [R11,#var_34] .text:00022138 CMP R3, #4 .text:0002213C MOVGE R3, #4 .text:00022140 CMP R2, R3 .text:00022144 BGE loc_22174 .text:00022148 LDR R0, [R11,#var_3C] .text:0002214C MOV R2, R4 .text:00022150 LDR R1, [R11,#var_48] .text:00022154 RSB R3, R3, #0x20 .text:00022158 BL __mpn_lshift .text:0002215C CMP R0, #0 .text:00022160 STR R0, [R11,#var_44] .text:00022164 LDRNE R3, [R11,#var_3C] .text:00022168 STRNE R0, [R3,R4,LSL#2] .text:0002216C ADDNE R4, R4, #1 .text:00022170 B loc_22184 .text:00022174 ; --------------------------------------------------------------------------- .text:00022174 .text:00022174 loc_22174 ; CODE XREF: __printf_fp+1088j .text:00022174 LDR R0, [R11,#var_3C] .text:00022178 LDR R1, [R11,#var_48] .text:0002217C MOV R2, R4 .text:00022180 BL __mpn_rshift .text:00022184 .text:00022184 loc_22184 ; CODE XREF: __printf_fp+10B4j .text:00022184 LDR R0, [R11,#var_8C] .text:00022188 STR R4, [R11,#var_40] .text:0002218C ORR R0, R0, #1 .text:00022190 STR R0, [R11,#var_8C] .text:00022194 .text:00022194 loc_22194 ; CODE XREF: __printf_fp+1010j .text:00022194 LDR R1, [R11,#var_8C] .text:00022198 STR R1, [R11,#var_34] .text:0002219C B loc_221CC .text:000221A0 ; --------------------------------------------------------------------------- .text:000221A0 .text:000221A0 loc_221A0 ; CODE XREF: __printf_fp+CACj .text:000221A0 SUB R1, R11, #-var_54 .text:000221A4 LDR R2, [R11,#var_40] .text:000221A8 ADD R3, R12, R7 .text:000221AC BL __mpn_lshift .text:000221B0 STR R0, [R11,#var_44] .text:000221B4 LDR R3, [R11,#var_40] .text:000221B8 LDR R2, [R11,#var_3C] .text:000221BC STR R0, [R2,R3,LSL#2] .text:000221C0 ADD R3, R3, #1 .text:000221C4 STR R3, [R11,#var_40] .text:000221C8 STR R8, [R11,#var_34] .text:000221CC .text:000221CC loc_221CC ; CODE XREF: __printf_fp+938j .text:000221CC ; __printf_fp+9D8j ... .text:000221CC LDR R2, [R11,#var_64] .text:000221D0 LDR R3, [R2,#8] .text:000221D4 MOV R7, #0 .text:000221D8 STR R7, [R11,#var_A4] .text:000221DC LDR R12, =__ctype_tolower .text:000221E0 LDR R2, [R12] .text:000221E4 LDR R1, [R2,R3,LSL#2] .text:000221E8 STR R7, [R11,#var_B0] .text:000221EC MOV R9, R7 .text:000221F0 LDR R0, [R11,#var_64] .text:000221F4 CMP R1, #0x65 .text:000221F8 MOV R1, R3 .text:000221FC LDR R10, [R0,#4] .text:00022200 BNE loc_22238 .text:00022204 MOV R2, 0x7FFFFFFF .text:00022208 STR R2, [R11,#var_A8] .text:0002220C LDR R4, [R0] .text:00022210 MOV R8, #1 .text:00022214 STR R8, [R11,#var_AC] .text:00022218 STR R1, [R11,#var_30] .text:0002221C CMP R4, R7 .text:00022220 MOVGE R7, R4 .text:00022224 MOVLT R7, #6 .text:00022228 MOV R4, R7 .text:0002222C ADD R3, R7, #8 .text:00022230 STR R3, [R11,#var_A0] .text:00022234 B loc_22358 .text:00022238 ; --------------------------------------------------------------------------- .text:00022238 .text:00022238 loc_22238 ; CODE XREF: __printf_fp+1144j .text:00022238 CMP R1, #0x66 .text:0002223C BNE loc_222A0 .text:00022240 STR R1, [R11,#var_30] .text:00022244 LDR R7, [R11,#var_64] .text:00022248 LDR R4, [R7] .text:0002224C LDR R3, [R11,#var_2C] .text:00022250 CMP R4, #0 .text:00022254 MOVGE R7, R4 .text:00022258 MOVLT R7, #6 .text:0002225C MOV R4, R7 .text:00022260 CMP R3, #0 .text:00022264 BNE loc_22280 .text:00022268 LDR R2, [R11,#var_34] .text:0002226C ADD R3, R7, #2 .text:00022270 ADD R8, R2, #1 .text:00022274 ADD R2, R2, R3 .text:00022278 STR R2, [R11,#var_A0] .text:0002227C B loc_2228C .text:00022280 ; --------------------------------------------------------------------------- .text:00022280 .text:00022280 loc_22280 ; CODE XREF: __printf_fp+11A8j .text:00022280 MOV R8, #1 .text:00022284 ADD R12, R7, #2 .text:00022288 STR R12, [R11,#var_A0] .text:0002228C .text:0002228C loc_2228C ; CODE XREF: __printf_fp+11C0j .text:0002228C MOV R0, 0x7FFFFFFF .text:00022290 STR R0, [R11,#var_A8] .text:00022294 MOV R1, #1 .text:00022298 STR R1, [R11,#var_AC] .text:0002229C B loc_22358 .text:000222A0 ; --------------------------------------------------------------------------- .text:000222A0 .text:000222A0 loc_222A0 ; CODE XREF: __printf_fp+1180j .text:000222A0 LDR R2, [R11,#var_64] .text:000222A4 LDR R3, [R2] .text:000222A8 CMP R3, #0 .text:000222AC BLT loc_222B8 .text:000222B0 MOVEQ R3, #1 .text:000222B4 B loc_222BC .text:000222B8 ; --------------------------------------------------------------------------- .text:000222B8 .text:000222B8 loc_222B8 ; CODE XREF: __printf_fp+11F0j .text:000222B8 MOV R3, #6 .text:000222BC .text:000222BC loc_222BC ; CODE XREF: __printf_fp+11F8j .text:000222BC STR R3, [R11,#var_A8] .text:000222C0 LDR R2, [R11,#var_2C] .text:000222C4 CMP R2, #0 .text:000222C8 BNE loc_222DC .text:000222CC LDR R3, [R11,#var_34] .text:000222D0 LDR R7, [R11,#var_A8] .text:000222D4 CMP R3, R7 .text:000222D8 BGE loc_222F0 .text:000222DC .text:000222DC loc_222DC ; CODE XREF: __printf_fp+120Cj .text:000222DC CMP R2, #0 .text:000222E0 BEQ loc_22310 .text:000222E4 LDR R3, [R11,#var_34] .text:000222E8 CMP R3, #4 .text:000222EC BLE loc_22310 .text:000222F0 .text:000222F0 loc_222F0 ; CODE XREF: __printf_fp+121Cj .text:000222F0 MOV R8, #1 .text:000222F4 LDR R12, [R11,#var_A8] .text:000222F8 SUB R3, R1, #2 .text:000222FC STR R3, [R11,#var_30] .text:00022300 SUB R4, R12, #1 .text:00022304 ADD R0, R12, #7 .text:00022308 STR R0, [R11,#var_A0] .text:0002230C B loc_2233C .text:00022310 ; --------------------------------------------------------------------------- .text:00022310 .text:00022310 loc_22310 ; CODE XREF: __printf_fp+1224j .text:00022310 ; __printf_fp+1230j .text:00022310 LDR R2, [R11,#var_2C] .text:00022314 MOV R3, #0x66 .text:00022318 STR R3, [R11,#var_30] .text:0002231C CMP R2, #0 .text:00022320 LDREQ R3, [R11,#var_34] .text:00022324 ADDEQ R8, R3, #1 .text:00022328 MOVNE R8, #0 .text:0002232C LDR R1, [R11,#var_A8] .text:00022330 RSB R4, R8, R1 .text:00022334 ADD R2, R1, #5 .text:00022338 STR R2, [R11,#var_A0] .text:0002233C .text:0002233C loc_2233C ; CODE XREF: __printf_fp+1250j .text:0002233C LDR R7, [R11,#var_64] .text:00022340 LDRB R3, [R7,#0xC] .text:00022344 MOV R12, #0 .text:00022348 STR R12, [R11,#var_AC] .text:0002234C TST R3, #8 .text:00022350 MOVNE R7, R4 .text:00022354 MOVEQ R7, R12 .text:00022358 .text:00022358 loc_22358 ; CODE XREF: __printf_fp+1178j .text:00022358 ; __printf_fp+11E0j .text:00022358 LDR R0, [R11,#var_80] .text:0002235C CMP R0, #0 .text:00022360 BEQ loc_22380 .text:00022364 LDR R1, [R11,#var_80] .text:00022368 MOV R0, R8 .text:0002236C BL __guess_grouping .text:00022370 STR R0, [R11,#var_B0] .text:00022374 LDR R1, [R11,#var_A0] .text:00022378 ADD R1, R1, R0 .text:0002237C STR R1, [R11,#var_A0] .text:00022380 .text:00022380 loc_22380 ; CODE XREF: __printf_fp+12A4j .text:00022380 MOV R3, #0x1380 .text:00022384 LDR R2, [R11,#var_A0] .text:00022388 ADD R3, R3, #8 .text:0002238C CMP R2, R3 .text:00022390 MOVLE R3, #0 .text:00022394 MOVGT R3, #1 .text:00022398 CMP R3, #0 .text:0002239C STR R3, [R11,#var_9C] .text:000223A0 BEQ loc_223D0 .text:000223A4 ADD R0, R2, #2 .text:000223A8 MOV R0, R0,LSL#2 .text:000223AC BL malloc .text:000223B0 CMP R0, #0 .text:000223B4 STR R0, [R11,#var_94] .text:000223B8 BNE loc_223E4 .text:000223BC .text:000223BC loc_223BC ; CODE XREF: __printf_fp+320j .text:000223BC ; __printf_fp+394j ... .text:000223BC MOV R0, 0xFFFFFFFF .text:000223C0 B locret_22EF4 .text:000223C0 ; --------------------------------------------------------------------------- .text:000223C4 off_223C4 DCD __clz_tab_1 ; DATA XREF: __printf_fp:loc_2202Cr .text:000223C4 ; __printf_fp:loc_22120r .text:000223C8 off_223C8 DCD _fpioconst_pow10+0x10 ; DATA XREF: __printf_fp:loc_220B0r .text:000223CC off_223CC DCD __ctype_tolower ; DATA XREF: __printf_fp+1120r .text:000223D0 ; --------------------------------------------------------------------------- .text:000223D0 .text:000223D0 loc_223D0 ; CODE XREF: __printf_fp+12E4j .text:000223D0 LDR R12, [R11,#var_A0] .text:000223D4 ADD R3, R12, #2 .text:000223D8 SUB SP, SP, R3,LSL#2 .text:000223DC ADD R0, SP, #0xBC+var_B4 .text:000223E0 STR R0, [R11,#var_94] .text:000223E4 .text:000223E4 loc_223E4 ; CODE XREF: __printf_fp+12FCj .text:000223E4 LDR R1, [R11,#var_94] .text:000223E8 LDR R3, [R11,#var_2C] .text:000223EC ADD R1, R1, #8 .text:000223F0 MOV R5, R1 .text:000223F4 CMP R3, #0 .text:000223F8 STR R1, [R11,#var_98] .text:000223FC BEQ loc_2240C .text:00022400 LDR R3, [R11,#var_30] .text:00022404 CMP R3, #0x66 .text:00022408 BEQ loc_224A0 .text:0002240C .text:0002240C loc_2240C ; CODE XREF: __printf_fp+1340j .text:0002240C LDR R2, [R11,#var_A4] .text:00022410 CMP R2, R8 .text:00022414 BGE loc_22448 .text:00022418 RSB R2, R2, R8 .text:0002241C STR R2, [R11,#var_A4] .text:00022420 .text:00022420 loc_22420 ; CODE XREF: __printf_fp+1384j .text:00022420 LDR R3, [R11,#var_A4] .text:00022424 SUB R3, R3, #1 .text:00022428 STR R3, [R11,#var_A4] .text:0002242C SUB R12, R11, #-var_28 .text:00022430 BL hack_digit.159 .text:00022434 LDR R12, [R11,#var_A4] .text:00022438 STR R0, [R5],#4 .text:0002243C CMP R12, #0 .text:00022440 BNE loc_22420 .text:00022444 STR R8, [R11,#var_A4] .text:00022448 .text:00022448 loc_22448 ; CODE XREF: __printf_fp+1358j .text:00022448 LDR R0, [R11,#var_64] .text:0002244C LDRB R2, [R0,#0xC] .text:00022450 MOV R1, #1 .text:00022454 STR R1, [R11,#var_AC] .text:00022458 TST R2, #8 .text:0002245C MOVEQ R3, #0 .text:00022460 MOVNE R3, #1 .text:00022464 CMP R7, #0 .text:00022468 CMPLE R3, #0 .text:0002246C BNE loc_22494 .text:00022470 CMP R4, #0 .text:00022474 BLE loc_22508 .text:00022478 LDR R3, [R11,#var_40] .text:0002247C CMP R3, R1 .text:00022480 BGT loc_22494 .text:00022484 LDR R3, [R11,#var_3C] .text:00022488 LDR R2, [R3] .text:0002248C CMP R2, #0 .text:00022490 BEQ loc_22508 .text:00022494 .text:00022494 loc_22494 ; CODE XREF: __printf_fp+13B0j .text:00022494 ; __printf_fp+13C4j .text:00022494 LDR R2, [R11,#var_74] .text:00022498 STR R2, [R5],#4 .text:0002249C B loc_22508 .text:000224A0 ; --------------------------------------------------------------------------- .text:000224A0 .text:000224A0 loc_224A0 ; CODE XREF: __printf_fp+134Cj .text:000224A0 LDR R3, [R11,#var_94] .text:000224A4 MOV R2, #0x30 .text:000224A8 STR R2, [R3,#8] .text:000224AC LDR R3, [R11,#var_34] .text:000224B0 SUB R3, R3, #1 .text:000224B4 STR R3, [R11,#var_34] .text:000224B8 LDR R12, [R11,#var_94] .text:000224BC LDR R0, [R11,#var_74] .text:000224C0 ADD R5, R12, #0x10 .text:000224C4 STR R0, [R12,#0xC] .text:000224C8 B loc_22508 .text:000224CC ; --------------------------------------------------------------------------- .text:000224CC .text:000224CC loc_224CC ; CODE XREF: __printf_fp+1450j .text:000224CC ; __printf_fp+1464j ... .text:000224CC ADD R9, R9, #1 .text:000224D0 SUB R12, R11, #-var_28 .text:000224D4 BL hack_digit.159 .text:000224D8 CMP R0, #0x30 .text:000224DC STR R0, [R5] .text:000224E0 MOVNE R1, #1 .text:000224E4 STRNE R1, [R11,#var_AC] .text:000224E8 BNE loc_22504 .text:000224EC LDR R2, [R11,#var_AC] .text:000224F0 CMP R2, #0 .text:000224F4 BNE loc_22504 .text:000224F8 ADD R4, R4, #1 .text:000224FC CMP R7, #0 .text:00022500 ADDGT R7, R7, #1 .text:00022504 .text:00022504 loc_22504 ; CODE XREF: __printf_fp+142Cj .text:00022504 ; __printf_fp+1438j .text:00022504 ADD R5, R5, #4 .text:00022508 .text:00022508 loc_22508 ; CODE XREF: __printf_fp+13B8j .text:00022508 ; __printf_fp+13D4j ... .text:00022508 CMP R9, R7 .text:0002250C BLT loc_224CC .text:00022510 CMP R9, R4 .text:00022514 BGE loc_22534 .text:00022518 LDR R3, [R11,#var_40] .text:0002251C CMP R3, #1 .text:00022520 BGT loc_224CC .text:00022524 LDR R3, [R11,#var_3C] .text:00022528 LDR R2, [R3] .text:0002252C CMP R2, #0 .text:00022530 BNE loc_224CC .text:00022534 .text:00022534 loc_22534 ; CODE XREF: __printf_fp+1458j .text:00022534 SUB R12, R11, #-var_28 .text:00022538 BL hack_digit.159 .text:0002253C CMP R0, #0x34 .text:00022540 BLE loc_227E4 .text:00022544 MOV R12, R5 .text:00022548 CMP R0, #0x35 .text:0002254C BNE loc_225E8 .text:00022550 LDR R3, [R5,#-4] .text:00022554 LDR R0, [R11,#var_74] .text:00022558 CMP R3, R0 .text:0002255C BEQ loc_22568 .text:00022560 TST R3, #1 .text:00022564 BEQ loc_22580 .text:00022568 .text:00022568 loc_22568 ; CODE XREF: __printf_fp+14A0j .text:00022568 LDR R1, [R11,#var_74] .text:0002256C CMP R3, R1 .text:00022570 BNE loc_225E8 .text:00022574 LDR R3, [R5,#-8] .text:00022578 TST R3, #1 .text:0002257C BNE loc_225E8 .text:00022580 .text:00022580 loc_22580 ; CODE XREF: __printf_fp+14A8j .text:00022580 LDR R1, [R11,#var_40] .text:00022584 CMP R1, #1 .text:00022588 BNE loc_2259C .text:0002258C LDR R3, [R11,#var_3C] .text:00022590 LDR R2, [R3] .text:00022594 CMP R2, #0 .text:00022598 BEQ loc_227E4 .text:0002259C .text:0002259C loc_2259C ; CODE XREF: __printf_fp+14CCj .text:0002259C LDR R3, [R11,#var_38] .text:000225A0 CMP R3, #0 .text:000225A4 BNE loc_225E8 .text:000225A8 CMP R1, #0 .text:000225AC BEQ loc_225E0 .text:000225B0 LDR R3, [R11,#var_3C] .text:000225B4 ADD R3, R3, R1,LSL#2 .text:000225B8 LDR R2, [R3,#-4] .text:000225BC CMP R2, #0 .text:000225C0 BNE loc_225E0 .text:000225C4 MOV R2, R3 .text:000225C8 .text:000225C8 loc_225C8 ; CODE XREF: __printf_fp+1520j .text:000225C8 SUB R2, R2, #4 .text:000225CC SUBS R1, R1, #1 .text:000225D0 BEQ loc_225E0 .text:000225D4 LDR R3, [R2,#-4] .text:000225D8 CMP R3, #0 .text:000225DC BEQ loc_225C8 .text:000225E0 .text:000225E0 loc_225E0 ; CODE XREF: __printf_fp+14F0j .text:000225E0 ; __printf_fp+1504j ... .text:000225E0 CMP R1, #0 .text:000225E4 BEQ loc_227E4 .text:000225E8 .text:000225E8 loc_225E8 ; CODE XREF: __printf_fp+1490j .text:000225E8 ; __printf_fp+14B4j ... .text:000225E8 CMP R9, #0 .text:000225EC BLE loc_22640 .text:000225F0 MOV R12, R5 .text:000225F4 LDR R3, [R12,#-4]! .text:000225F8 LDR R2, [R11,#var_74] .text:000225FC CMP R3, R2 .text:00022600 BEQ loc_2262C .text:00022604 CMP R3, #0x39 .text:00022608 BNE loc_2262C .text:0002260C MOV R2, #0x30 .text:00022610 .text:00022610 loc_22610 ; CODE XREF: __printf_fp+156Cj .text:00022610 STR R2, [R12] .text:00022614 LDR R3, [R12,#-4]! .text:00022618 LDR R0, [R11,#var_74] .text:0002261C CMP R3, R0 .text:00022620 BEQ loc_2262C .text:00022624 CMP R3, #0x39 .text:00022628 BEQ loc_22610 .text:0002262C .text:0002262C loc_2262C ; CODE XREF: __printf_fp+1544j .text:0002262C ; __printf_fp+154Cj ... .text:0002262C LDR R3, [R12] .text:00022630 LDR R1, [R11,#var_74] .text:00022634 CMP R3, R1 .text:00022638 ADDNE R3, R3, #1 .text:0002263C STRNE R3, [R12] .text:00022640 .text:00022640 loc_22640 ; CODE XREF: __printf_fp+1530j .text:00022640 CMP R9, #0 .text:00022644 BEQ loc_22658 .text:00022648 LDR R3, [R12] .text:0002264C LDR R2, [R11,#var_74] .text:00022650 CMP R3, R2 .text:00022654 BNE loc_227E4 .text:00022658 .text:00022658 loc_22658 ; CODE XREF: __printf_fp+1588j .text:00022658 MOV R3, R12 .text:0002265C LDR R2, [R3,#-4]! .text:00022660 LDR R0, [R11,#var_74] .text:00022664 LDR R1, [R11,#var_98] .text:00022668 CMP R2, R0 .text:0002266C MOVEQ R12, R3 .text:00022670 SUB R12, R12, #4 .text:00022674 CMP R12, R1 .text:00022678 BCC loc_226A8 .text:0002267C LDR R3, [R12] .text:00022680 CMP R3, #0x39 .text:00022684 BNE loc_226A8 .text:00022688 MOV R2, #0x30 .text:0002268C .text:0002268C loc_2268C ; CODE XREF: __printf_fp+15E8j .text:0002268C STR R2, [R12],#-4 .text:00022690 LDR R3, [R11,#var_98] .text:00022694 CMP R12, R3 .text:00022698 BCC loc_226A8 .text:0002269C LDR R3, [R12] .text:000226A0 CMP R3, #0x39 .text:000226A4 BEQ loc_2268C .text:000226A8 .text:000226A8 loc_226A8 ; CODE XREF: __printf_fp+15BCj .text:000226A8 ; __printf_fp+15C8j ... .text:000226A8 LDR R0, [R11,#var_98] .text:000226AC CMP R12, R0 .text:000226B0 LDRCS R3, [R12] .text:000226B4 ADDCS R3, R3, #1 .text:000226B8 STRCS R3, [R12] .text:000226BC BCS loc_227E4 .text:000226C0 LDR R3, [R11,#var_30] .text:000226C4 CMP R3, #0x66 .text:000226C8 BEQ loc_226F8 .text:000226CC LDR R1, [R11,#var_98] .text:000226D0 MOV R3, #0x31 .text:000226D4 STR R3, [R1] .text:000226D8 LDR R2, [R11,#var_2C] .text:000226DC CMP R2, #0 .text:000226E0 LDREQ R3, [R11,#var_34] .text:000226E4 ADDEQ R3, R3, #1 .text:000226E8 LDRNE R3, [R11,#var_34] .text:000226EC SUBNE R3, R3, #1 .text:000226F0 STR R3, [R11,#var_34] .text:000226F4 B loc_227BC .text:000226F8 ; --------------------------------------------------------------------------- .text:000226F8 .text:000226F8 loc_226F8 ; CODE XREF: __printf_fp+160Cj .text:000226F8 LDR R2, [R11,#var_A4] .text:000226FC LDR R3, [R11,#var_A8] .text:00022700 CMP R2, R3 .text:00022704 BNE loc_227A0 .text:00022708 LDR R12, [R11,#var_98] .text:0002270C LDR R0, [R11,#var_74] .text:00022710 STR R0, [R12,#-4]! .text:00022714 MOV R3, #0x31 .text:00022718 STR R3, [R12,#-4]! .text:0002271C STR R12, [R11,#var_98] .text:00022720 LDR R1, [R11,#var_64] .text:00022724 LDRB R2, [R1,#0xC] .text:00022728 TST R2, #8 .text:0002272C MOVEQ R3, #0 .text:00022730 MOVNE R3, #1 .text:00022734 CMP R9, #0 .text:00022738 CMPLE R3, #0 .text:0002273C BEQ loc_22754 .text:00022740 LDR R3, [R11,#var_A4] .text:00022744 ADD R9, R9, #1 .text:00022748 ADD R2, R12, R3,LSL#2 .text:0002274C MOV R3, #0x30 .text:00022750 STR R3, [R2,#8] .text:00022754 .text:00022754 loc_22754 ; CODE XREF: __printf_fp+1680j .text:00022754 LDR R3, [R11,#var_34] .text:00022758 ADD R3, R3, #1 .text:0002275C STR R3, [R11,#var_34] .text:00022760 LDR R12, [R11,#var_64] .text:00022764 LDR R0, [R11,#var_A4] .text:00022768 LDR R3, =__ctype_b .text:0002276C LDR R2, [R12,#8] .text:00022770 ADD R9, R9, R0 .text:00022774 LDR R1, [R3] .text:00022778 MOV R2, R2,LSL#1 .text:0002277C ADD R2, R2, R1 .text:00022780 LDRB R0, [R2,#1] .text:00022784 MOV R1, #1 .text:00022788 STR R1, [R11,#var_A4] .text:0002278C TST R0, #1 .text:00022790 MOVEQ R3, #0x65 .text:00022794 MOVNE R3, #0x45 .text:00022798 STR R3, [R11,#var_30] .text:0002279C B loc_227BC .text:000227A0 ; --------------------------------------------------------------------------- .text:000227A0 .text:000227A0 loc_227A0 ; CODE XREF: __printf_fp+1648j .text:000227A0 LDR R2, [R11,#var_A4] .text:000227A4 ADD R2, R2, #1 .text:000227A8 STR R2, [R11,#var_A4] .text:000227AC LDR R12, [R11,#var_98] .text:000227B0 MOV R3, #0x31 .text:000227B4 STR R3, [R12,#-4]! .text:000227B8 STR R12, [R11,#var_98] .text:000227BC .text:000227BC loc_227BC ; CODE XREF: __printf_fp+1638j .text:000227BC ; __printf_fp+16E0j .text:000227BC LDR R0, [R11,#var_A4] .text:000227C0 LDR R1, [R11,#var_A8] .text:000227C4 ADD R3, R0, R9 .text:000227C8 CMP R3, R1 .text:000227CC RSBGT R3, R1, R3 .text:000227D0 SUBGT R5, R5, R3,LSL#2 .text:000227D4 RSBGT R9, R3, R9 .text:000227D8 B loc_227E4 .text:000227DC ; --------------------------------------------------------------------------- .text:000227DC .text:000227DC loc_227DC ; CODE XREF: __printf_fp+1738j .text:000227DC SUB R5, R5, #4 .text:000227E0 SUB R9, R9, #1 .text:000227E4 .text:000227E4 loc_227E4 ; CODE XREF: __printf_fp+1484j .text:000227E4 ; __printf_fp+14DCj ... .text:000227E4 CMP R9, R7 .text:000227E8 BLE loc_227F8 .text:000227EC LDR R3, [R5,#-4] .text:000227F0 CMP R3, #0x30 .text:000227F4 BEQ loc_227DC .text:000227F8 .text:000227F8 loc_227F8 ; CODE XREF: __printf_fp+172Cj .text:000227F8 CMP R9, #0 .text:000227FC BNE loc_22824 .text:00022800 LDR R2, [R11,#var_64] .text:00022804 LDRB R3, [R2,#0xC] .text:00022808 TST R3, #8 .text:0002280C BNE loc_22824 .text:00022810 MOV R3, R5 .text:00022814 LDR R2, [R3,#-4]! .text:00022818 LDR R7, [R11,#var_74] .text:0002281C CMP R2, R7 .text:00022820 MOVEQ R5, R3 .text:00022824 .text:00022824 loc_22824 ; CODE XREF: __printf_fp+1740j .text:00022824 ; __printf_fp+1750j .text:00022824 LDR R12, [R11,#var_80] .text:00022828 CMP R12, #0 .text:0002282C BEQ loc_22858 .text:00022830 LDR R0, [R11,#var_7C] .text:00022834 STR R0, [SP,#0xBC+var_BC] .text:00022838 LDR R1, [R11,#var_B0] .text:0002283C STR R1, [SP,#0xBC+var_B8] .text:00022840 LDR R0, [R11,#var_98] .text:00022844 MOV R3, R12 .text:00022848 LDR R2, [R11,#var_A4] .text:0002284C MOV R1, R5 .text:00022850 BL group_number_0 .text:00022854 MOV R5, R0 .text:00022858 .text:00022858 loc_22858 ; CODE XREF: __printf_fp+1770j .text:00022858 LDR R3, [R11,#var_30] .text:0002285C CMP R3, #0x66 .text:00022860 BEQ loc_22900 .text:00022864 STR R3, [R5],#4 .text:00022868 LDR R3, [R11,#var_2C] .text:0002286C CMP R3, #0 .text:00022870 MOVEQ R3, #0x2B .text:00022874 MOVNE R3, #0x2D .text:00022878 MOV R2, R5 .text:0002287C STR R3, [R2] .text:00022880 MOV R4, #0xA .text:00022884 LDR R2, [R11,#var_34] .text:00022888 ADD R5, R5, #4 .text:0002288C CMP R4, R2 .text:00022890 BGT loc_228A4 .text:00022894 .text:00022894 loc_22894 ; CODE XREF: __printf_fp+17E4j .text:00022894 ADD R3, R4, R4,LSL#2 .text:00022898 MOV R4, R3,LSL#1 .text:0002289C CMP R4, R2 .text:000228A0 BLE loc_22894 .text:000228A4 .text:000228A4 loc_228A4 ; CODE XREF: __printf_fp+17D4j .text:000228A4 LDR R3, [R11,#var_34] .text:000228A8 CMP R3, #9 .text:000228AC MOVLE R3, #0x30 .text:000228B0 STRLE R3, [R5],#4 .text:000228B4 BLE loc_228F4 .text:000228B8 .text:000228B8 loc_228B8 ; CODE XREF: __printf_fp+1834j .text:000228B8 MOV R0, R4 .text:000228BC MOV R1, #0xA .text:000228C0 BL __divsi3 .text:000228C4 MOV R4, R0 .text:000228C8 LDR R0, [R11,#var_34] .text:000228CC MOV R1, R4 .text:000228D0 BL __divsi3 .text:000228D4 ADD R0, R0, #0x30 .text:000228D8 STR R0, [R5],#4 .text:000228DC LDR R0, [R11,#var_34] .text:000228E0 MOV R1, R4 .text:000228E4 BL __modsi3 .text:000228E8 CMP R4, #0xA .text:000228EC STR R0, [R11,#var_34] .text:000228F0 BGT loc_228B8 .text:000228F4 .text:000228F4 loc_228F4 ; CODE XREF: __printf_fp+17F8j .text:000228F4 LDR R3, [R11,#var_34] .text:000228F8 ADD R3, R3, #0x30 .text:000228FC STR R3, [R5],#4 .text:00022900 .text:00022900 loc_22900 ; CODE XREF: __printf_fp+17A4j .text:00022900 LDR R3, [R11,#var_58] .text:00022904 LDR R7, [R11,#var_64] .text:00022908 CMP R3, #0 .text:0002290C MOV R0, R3 .text:00022910 LDRB R2, [R7,#0xC] .text:00022914 BNE loc_22924 .text:00022918 AND R3, R2, #0x50 .text:0002291C CMP R3, #0 .text:00022920 BEQ loc_22928 .text:00022924 .text:00022924 loc_22924 ; CODE XREF: __printf_fp+1858j .text:00022924 SUB R10, R10, #1 .text:00022928 .text:00022928 loc_22928 ; CODE XREF: __printf_fp+1864j .text:00022928 LDR R12, [R11,#var_98] .text:0002292C TST R2, #0x20 .text:00022930 RSB R3, R12, R5 .text:00022934 SUB R10, R10, R3,ASR#2 .text:00022938 STR R3, [R11,#var_B4] .text:0002293C BNE loc_22994 .text:00022940 LDR R2, [R11,#var_64] .text:00022944 LDR R1, [R2,#0x10] .text:00022948 CMP R1, #0x30 .text:0002294C CMPNE R10, #0 .text:00022950 BLE loc_22994 .text:00022954 LDR R3, [R11,#var_88] .text:00022958 CMP R3, #0 .text:0002295C BEQ loc_22970 .text:00022960 MOV R0, R6 .text:00022964 MOV R2, R10 .text:00022968 BL _IO_wpadn .text:0002296C B loc_2297C .text:00022970 ; --------------------------------------------------------------------------- .text:00022970 .text:00022970 loc_22970 ; CODE XREF: __printf_fp+18A0j .text:00022970 MOV R0, R6 .text:00022974 MOV R2, R10 .text:00022978 BL _IO_padn .text:0002297C .text:0002297C loc_2297C ; CODE XREF: __printf_fp+18B0j .text:0002297C CMP R0, R10 .text:00022980 BNE loc_223BC .text:00022984 LDR R7, [R11,#var_84] .text:00022988 LDR R0, [R11,#var_58] .text:0002298C ADD R7, R7, R10 .text:00022990 STR R7, [R11,#var_84] .text:00022994 .text:00022994 loc_22994 ; CODE XREF: __printf_fp+1880j .text:00022994 ; __printf_fp+1894j .text:00022994 CMP R0, #0 .text:00022998 BEQ loc_22A1C .text:0002299C LDR R12, [R11,#var_88] .text:000229A0 MOV R1, #0x2D .text:000229A4 CMP R12, #0 .text:000229A8 BEQ loc_229D8 .text:000229AC LDR R0, [R6,#0x58] .text:000229B0 ADD R2, R0, #0x10 .text:000229B4 LDMIA R2, {R2,R3} .text:000229B8 CMP R2, R3 .text:000229BC BCC loc_229CC .text:000229C0 MOV R0, R6 .text:000229C4 BL __woverflow .text:000229C8 B loc_229F0 .text:000229CC ; --------------------------------------------------------------------------- .text:000229CC .text:000229CC loc_229CC ; CODE XREF: __printf_fp+1900j .text:000229CC STR R1, [R2],#4 .text:000229D0 STR R2, [R0,#0x10] .text:000229D4 B loc_22A04 .text:000229D8 ; --------------------------------------------------------------------------- .text:000229D8 .text:000229D8 loc_229D8 ; CODE XREF: __printf_fp+18ECj .text:000229D8 ADD R2, R6, #0x14 .text:000229DC LDMIA R2, {R2,R3} .text:000229E0 CMP R2, R3 .text:000229E4 BCC loc_229FC .text:000229E8 MOV R0, R6 .text:000229EC BL __overflow .text:000229F0 .text:000229F0 loc_229F0 ; CODE XREF: __printf_fp+190Cj .text:000229F0 CMN R0, #1 .text:000229F4 BEQ loc_223BC .text:000229F8 B loc_22A04 .text:000229FC ; --------------------------------------------------------------------------- .text:000229FC .text:000229FC loc_229FC ; CODE XREF: __printf_fp+1928j .text:000229FC STRB R1, [R2],#1 .text:00022A00 STR R2, [R6,#0x14] .text:00022A04 .text:00022A04 loc_22A04 ; CODE XREF: __printf_fp+1918j .text:00022A04 ; __printf_fp+193Cj .text:00022A04 LDR R0, [R11,#var_84] .text:00022A08 ADD R0, R0, #1 .text:00022A0C STR R0, [R11,#var_84] .text:00022A10 LDR R1, [R11,#var_64] .text:00022A14 LDRB R2, [R1,#0xC] .text:00022A18 B loc_22B3C .text:00022A1C ; --------------------------------------------------------------------------- .text:00022A1C .text:00022A1C loc_22A1C ; CODE XREF: __printf_fp+18DCj .text:00022A1C LDR R2, [R11,#var_64] .text:00022A20 LDRB R3, [R2,#0xC] .text:00022A24 AND R1, R3, #0xFF .text:00022A28 TST R1, #0x40 .text:00022A2C MOV R2, R3 .text:00022A30 BEQ loc_22AB4 .text:00022A34 LDR R3, [R11,#var_88] .text:00022A38 MOV R1, #0x2B .text:00022A3C CMP R3, #0 .text:00022A40 BEQ loc_22A70 .text:00022A44 LDR R0, [R6,#0x58] .text:00022A48 ADD R2, R0, #0x10 .text:00022A4C LDMIA R2, {R2,R3} .text:00022A50 CMP R2, R3 .text:00022A54 BCC loc_22A64 .text:00022A58 MOV R0, R6 .text:00022A5C BL __woverflow .text:00022A60 B loc_22A88 .text:00022A64 ; --------------------------------------------------------------------------- .text:00022A64 .text:00022A64 loc_22A64 ; CODE XREF: __printf_fp+1998j .text:00022A64 STR R1, [R2],#4 .text:00022A68 STR R2, [R0,#0x10] .text:00022A6C B loc_22A9C .text:00022A70 ; --------------------------------------------------------------------------- .text:00022A70 .text:00022A70 loc_22A70 ; CODE XREF: __printf_fp+1984j .text:00022A70 ADD R2, R6, #0x14 .text:00022A74 LDMIA R2, {R2,R3} .text:00022A78 CMP R2, R3 .text:00022A7C BCC loc_22A94 .text:00022A80 MOV R0, R6 .text:00022A84 BL __overflow .text:00022A88 .text:00022A88 loc_22A88 ; CODE XREF: __printf_fp+19A4j .text:00022A88 CMN R0, #1 .text:00022A8C BEQ loc_223BC .text:00022A90 B loc_22A9C .text:00022A94 ; --------------------------------------------------------------------------- .text:00022A94 .text:00022A94 loc_22A94 ; CODE XREF: __printf_fp+19C0j .text:00022A94 STRB R1, [R2],#1 .text:00022A98 STR R2, [R6,#0x14] .text:00022A9C .text:00022A9C loc_22A9C ; CODE XREF: __printf_fp+19B0j .text:00022A9C ; __printf_fp+19D4j .text:00022A9C LDR R7, [R11,#var_84] .text:00022AA0 ADD R7, R7, #1 .text:00022AA4 STR R7, [R11,#var_84] .text:00022AA8 LDR R12, [R11,#var_64] .text:00022AAC LDRB R2, [R12,#0xC] .text:00022AB0 B loc_22B3C .text:00022AB4 ; --------------------------------------------------------------------------- .text:00022AB4 .text:00022AB4 loc_22AB4 ; CODE XREF: __printf_fp+1974j .text:00022AB4 TST R1, #0x10 .text:00022AB8 BEQ loc_22B3C .text:00022ABC LDR R0, [R11,#var_88] .text:00022AC0 MOV R1, #0x20 .text:00022AC4 CMP R0, #0 .text:00022AC8 BEQ loc_22AF8 .text:00022ACC LDR R0, [R6,#0x58] .text:00022AD0 ADD R2, R0, #0x10 .text:00022AD4 LDMIA R2, {R2,R3} .text:00022AD8 CMP R2, R3 .text:00022ADC BCC loc_22AEC .text:00022AE0 MOV R0, R6 .text:00022AE4 BL __woverflow .text:00022AE8 B loc_22B10 .text:00022AEC ; --------------------------------------------------------------------------- .text:00022AEC .text:00022AEC loc_22AEC ; CODE XREF: __printf_fp+1A20j .text:00022AEC STR R1, [R2],#4 .text:00022AF0 STR R2, [R0,#0x10] .text:00022AF4 B loc_22B28 .text:00022AF8 ; --------------------------------------------------------------------------- .text:00022AF8 .text:00022AF8 loc_22AF8 ; CODE XREF: __printf_fp+1A0Cj .text:00022AF8 ADD R2, R6, #0x14 .text:00022AFC LDMIA R2, {R2,R3} .text:00022B00 CMP R2, R3 .text:00022B04 BCC loc_22B20 .text:00022B08 MOV R0, R6 .text:00022B0C BL __overflow .text:00022B10 .text:00022B10 loc_22B10 ; CODE XREF: __printf_fp+1A2Cj .text:00022B10 CMN R0, #1 .text:00022B14 BEQ loc_223BC .text:00022B18 B loc_22B28 .text:00022B18 ; --------------------------------------------------------------------------- .text:00022B1C off_22B1C DCD __ctype_b ; DATA XREF: __printf_fp+16ACr .text:00022B20 ; --------------------------------------------------------------------------- .text:00022B20 .text:00022B20 loc_22B20 ; CODE XREF: __printf_fp+1A48j .text:00022B20 STRB R1, [R2],#1 .text:00022B24 STR R2, [R6,#0x14] .text:00022B28 .text:00022B28 loc_22B28 ; CODE XREF: __printf_fp+1A38j .text:00022B28 ; __printf_fp+1A5Cj .text:00022B28 LDR R1, [R11,#var_84] .text:00022B2C ADD R1, R1, #1 .text:00022B30 STR R1, [R11,#var_84] .text:00022B34 LDR R3, [R11,#var_64] .text:00022B38 LDRB R2, [R3,#0xC] .text:00022B3C .text:00022B3C loc_22B3C ; CODE XREF: __printf_fp+195Cj .text:00022B3C ; __printf_fp+19F4j ... .text:00022B3C TST R2, #0x20 .text:00022B40 BNE loc_22BAC .text:00022B44 LDR R7, [R11,#var_64] .text:00022B48 LDR R2, [R7,#0x10] .text:00022B4C CMP R10, #0 .text:00022B50 MOVLE R3, #0 .text:00022B54 MOVGT R3, #1 .text:00022B58 CMP R2, #0x30 .text:00022B5C MOVNE R3, #0 .text:00022B60 CMP R3, #0 .text:00022B64 BEQ loc_22BAC .text:00022B68 LDR R12, [R11,#var_88] .text:00022B6C CMP R12, #0 .text:00022B70 BEQ loc_22B88 .text:00022B74 MOV R0, R6 .text:00022B78 MOV R1, #0x30 .text:00022B7C MOV R2, R10 .text:00022B80 BL _IO_wpadn .text:00022B84 B loc_22B98 .text:00022B88 ; --------------------------------------------------------------------------- .text:00022B88 .text:00022B88 loc_22B88 ; CODE XREF: __printf_fp+1AB4j .text:00022B88 MOV R0, R6 .text:00022B8C MOV R1, #0x30 .text:00022B90 MOV R2, R10 .text:00022B94 BL _IO_padn .text:00022B98 .text:00022B98 loc_22B98 ; CODE XREF: __printf_fp+1AC8j .text:00022B98 CMP R0, R10 .text:00022B9C BNE loc_223BC .text:00022BA0 LDR R0, [R11,#var_84] .text:00022BA4 ADD R0, R0, R10 .text:00022BA8 STR R0, [R11,#var_84] .text:00022BAC .text:00022BAC loc_22BAC ; CODE XREF: __printf_fp+1A84j .text:00022BAC ; __printf_fp+1AA8j .text:00022BAC MOV R9, #0 .text:00022BB0 LDR R1, [R11,#var_88] .text:00022BB4 MOV R0, R9 .text:00022BB8 CMP R1, R9 .text:00022BBC BNE loc_22C9C .text:00022BC0 LDR R0, [R11,#var_70] .text:00022BC4 BL strlen .text:00022BC8 LDR R2, [R11,#var_78] .text:00022BCC MOV R7, R0 .text:00022BD0 CMP R2, R9 .text:00022BD4 LDREQ R8, [R11,#var_88] .text:00022BD8 BEQ loc_22BE8 .text:00022BDC LDR R0, [R11,#var_78] .text:00022BE0 BL strlen .text:00022BE4 MOV R8, R0 .text:00022BE8 .text:00022BE8 loc_22BE8 ; CODE XREF: __printf_fp+1B1Cj .text:00022BE8 LDR R3, [R11,#var_9C] .text:00022BEC CMP R3, #0 .text:00022BF0 BEQ loc_22C18 .text:00022BF4 LDR R12, [R11,#var_A0] .text:00022BF8 ADD R3, R7, #2 .text:00022BFC LDR R0, [R11,#var_B0] .text:00022C00 ADD R3, R12, R3 .text:00022C04 MLA R0, R8, R0, R3 .text:00022C08 BL malloc .text:00022C0C SUBS R9, R0, #0 .text:00022C10 BNE loc_22C3C .text:00022C14 B loc_223BC .text:00022C18 ; --------------------------------------------------------------------------- .text:00022C18 .text:00022C18 loc_22C18 ; CODE XREF: __printf_fp+1B34j .text:00022C18 LDR R0, [R11,#var_A0] .text:00022C1C ADD R3, R7, #2 .text:00022C20 LDR R2, [R11,#var_B0] .text:00022C24 ADD R3, R0, R3 .text:00022C28 MLA R2, R8, R2, R3 .text:00022C2C ADD R2, R2, #3 .text:00022C30 BIC R2, R2, #3 .text:00022C34 RSB SP, R2, SP .text:00022C38 ADD R9, SP, #0xBC+var_B4 .text:00022C3C .text:00022C3C loc_22C3C ; CODE XREF: __printf_fp+1B54j .text:00022C3C LDR R4, [R11,#var_98] .text:00022C40 MOV R0, R9 .text:00022C44 CMP R4, R5 .text:00022C48 BCS loc_22C9C .text:00022C4C .text:00022C4C loc_22C4C ; CODE XREF: __printf_fp+1BDCj .text:00022C4C LDR R3, [R4] .text:00022C50 LDR R1, [R11,#var_74] .text:00022C54 CMP R3, R1 .text:00022C58 BNE loc_22C6C .text:00022C5C LDR R1, [R11,#var_70] .text:00022C60 MOV R2, R7 .text:00022C64 BL mempcpy .text:00022C68 B loc_22C90 .text:00022C6C ; --------------------------------------------------------------------------- .text:00022C6C .text:00022C6C loc_22C6C ; CODE XREF: __printf_fp+1B9Cj .text:00022C6C LDR R2, [R11,#var_7C] .text:00022C70 CMP R3, R2 .text:00022C74 BNE loc_22C88 .text:00022C78 LDR R1, [R11,#var_78] .text:00022C7C MOV R2, R8 .text:00022C80 BL mempcpy .text:00022C84 B loc_22C90 .text:00022C88 ; --------------------------------------------------------------------------- .text:00022C88 .text:00022C88 loc_22C88 ; CODE XREF: __printf_fp+1BB8j .text:00022C88 LDRB R3, [R4] .text:00022C8C STRB R3, [R0],#1 .text:00022C90 .text:00022C90 loc_22C90 ; CODE XREF: __printf_fp+1BACj .text:00022C90 ; __printf_fp+1BC8j .text:00022C90 ADD R4, R4, #4 .text:00022C94 CMP R4, R5 .text:00022C98 BCC loc_22C4C .text:00022C9C .text:00022C9C loc_22C9C ; CODE XREF: __printf_fp+1B00j .text:00022C9C ; __printf_fp+1B8Cj .text:00022C9C MOV R5, R9 .text:00022CA0 LDR R3, [R11,#var_88] .text:00022CA4 CMP R3, #0 .text:00022CA8 LDRNE R7, [R11,#var_B4] .text:00022CAC MOVNE R4, R7,ASR#2 .text:00022CB0 RSBEQ R4, R9, R0 .text:00022CB4 LDR R12, [R11,#var_88] .text:00022CB8 CMP R12, #0 .text:00022CBC BEQ loc_22CD0 .text:00022CC0 LDR R0, [R11,#var_B4] .text:00022CC4 MOVS R0, R0,LSR#2 .text:00022CC8 BNE loc_22CDC .text:00022CCC B loc_22D24 .text:00022CD0 ; --------------------------------------------------------------------------- .text:00022CD0 .text:00022CD0 loc_22CD0 ; CODE XREF: __printf_fp+1C00j .text:00022CD0 RSB R3, R9, R0 .text:00022CD4 CMP R3, #0x14 .text:00022CD8 BLE loc_22D24 .text:00022CDC .text:00022CDC loc_22CDC ; CODE XREF: __printf_fp+1C0Cj .text:00022CDC LDRB R3, [R6,#0x46] .text:00022CE0 LDR R2, [R11,#var_88] .text:00022CE4 MOV R0, R6 .text:00022CE8 LDR R1, [R11,#var_98] .text:00022CEC CMP R2, #0 .text:00022CF0 MOVEQ R1, R9 .text:00022CF4 MOV R3, R3,LSL#24 .text:00022CF8 ADD R3, R6, R3,ASR#24 .text:00022CFC LDR R12, [R3,#0x94] .text:00022D00 MOV R2, R4 .text:00022D04 MOV LR, PC .text:00022D08 LDR PC, [R12,#0x1C] .text:00022D0C CMP R0, R4 .text:00022D10 BNE loc_223BC .text:00022D14 LDR R3, [R11,#var_84] .text:00022D18 ADD R3, R3, R4 .text:00022D1C STR R3, [R11,#var_84] .text:00022D20 B loc_22E6C .text:00022D24 ; --------------------------------------------------------------------------- .text:00022D24 .text:00022D24 loc_22D24 ; CODE XREF: __printf_fp+1C10j .text:00022D24 ; __printf_fp+1C1Cj .text:00022D24 LDR R7, [R11,#var_88] .text:00022D28 CMP R7, #0 .text:00022D2C BEQ loc_22E5C .text:00022D30 MOV R3, R4 .text:00022D34 SUB R4, R4, #1 .text:00022D38 CMP R3, #0 .text:00022D3C BEQ loc_22E6C .text:00022D40 .text:00022D40 loc_22D40 ; CODE XREF: __printf_fp+1D1Cj .text:00022D40 LDR R0, [R11,#var_98] .text:00022D44 LDR R12, [R11,#var_88] .text:00022D48 LDR R1, [R0],#4 .text:00022D4C CMP R12, #0 .text:00022D50 STR R0, [R11,#var_98] .text:00022D54 BEQ loc_22D88 .text:00022D58 LDR R0, [R6,#0x58] .text:00022D5C ADD R2, R0, #0x10 .text:00022D60 LDMIA R2, {R2,R3} .text:00022D64 CMP R2, R3 .text:00022D68 BCC loc_22D78 .text:00022D6C MOV R0, R6 .text:00022D70 BL __woverflow .text:00022D74 B loc_22DA4 .text:00022D78 ; --------------------------------------------------------------------------- .text:00022D78 .text:00022D78 loc_22D78 ; CODE XREF: __printf_fp+1CACj .text:00022D78 STR R1, [R2],#4 .text:00022D7C CMN R1, #1 .text:00022D80 STR R2, [R0,#0x10] .text:00022D84 B loc_22DBC .text:00022D88 ; --------------------------------------------------------------------------- .text:00022D88 .text:00022D88 loc_22D88 ; CODE XREF: __printf_fp+1C98j .text:00022D88 ADD R2, R6, #0x14 .text:00022D8C LDMIA R2, {R2,R3} .text:00022D90 CMP R2, R3 .text:00022D94 BCC loc_22DAC .text:00022D98 MOV R0, R6 .text:00022D9C AND R1, R1, #0xFF .text:00022DA0 BL __overflow .text:00022DA4 .text:00022DA4 loc_22DA4 ; CODE XREF: __printf_fp+1CB8j .text:00022DA4 CMN R0, #1 .text:00022DA8 B loc_22DBC .text:00022DAC ; --------------------------------------------------------------------------- .text:00022DAC .text:00022DAC loc_22DAC ; CODE XREF: __printf_fp+1CD8j .text:00022DAC STRB R1, [R2],#1 .text:00022DB0 AND R3, R1, #0xFF .text:00022DB4 CMN R3, #1 .text:00022DB8 STR R2, [R6,#0x14] .text:00022DBC .text:00022DBC loc_22DBC ; CODE XREF: __printf_fp+1CC8j .text:00022DBC ; __printf_fp+1CECj .text:00022DBC BEQ loc_223BC .text:00022DC0 LDR R1, [R11,#var_84] .text:00022DC4 ADD R1, R1, #1 .text:00022DC8 STR R1, [R11,#var_84] .text:00022DCC MOV R3, R4 .text:00022DD0 SUB R4, R4, #1 .text:00022DD4 CMP R3, #0 .text:00022DD8 BNE loc_22D40 .text:00022DDC B loc_22E6C .text:00022DE0 ; --------------------------------------------------------------------------- .text:00022DE0 .text:00022DE0 loc_22DE0 ; CODE XREF: __printf_fp+1DACj .text:00022DE0 LDR R2, [R11,#var_88] .text:00022DE4 LDRB R1, [R5],#1 .text:00022DE8 CMP R2, #0 .text:00022DEC BEQ loc_22E20 .text:00022DF0 LDR R0, [R6,#0x58] .text:00022DF4 ADD R2, R0, #0x10 .text:00022DF8 LDMIA R2, {R2,R3} .text:00022DFC CMP R2, R3 .text:00022E00 BCC loc_22E10 .text:00022E04 MOV R0, R6 .text:00022E08 BL __woverflow .text:00022E0C B loc_22E38 .text:00022E10 ; --------------------------------------------------------------------------- .text:00022E10 .text:00022E10 loc_22E10 ; CODE XREF: __printf_fp+1D44j .text:00022E10 STR R1, [R2],#4 .text:00022E14 CMN R1, #1 .text:00022E18 STR R2, [R0,#0x10] .text:00022E1C B loc_22E4C .text:00022E20 ; --------------------------------------------------------------------------- .text:00022E20 .text:00022E20 loc_22E20 ; CODE XREF: __printf_fp+1D30j .text:00022E20 ADD R2, R6, #0x14 .text:00022E24 LDMIA R2, {R2,R3} .text:00022E28 CMP R2, R3 .text:00022E2C BCC loc_22E40 .text:00022E30 MOV R0, R6 .text:00022E34 BL __overflow .text:00022E38 .text:00022E38 loc_22E38 ; CODE XREF: __printf_fp+1D50j .text:00022E38 CMN R0, #1 .text:00022E3C B loc_22E4C .text:00022E40 ; --------------------------------------------------------------------------- .text:00022E40 .text:00022E40 loc_22E40 ; CODE XREF: __printf_fp+1D70j .text:00022E40 STRB R1, [R2],#1 .text:00022E44 CMN R1, #1 .text:00022E48 STR R2, [R6,#0x14] .text:00022E4C .text:00022E4C loc_22E4C ; CODE XREF: __printf_fp+1D60j .text:00022E4C ; __printf_fp+1D80j .text:00022E4C BEQ loc_223BC .text:00022E50 LDR R3, [R11,#var_84] .text:00022E54 ADD R3, R3, #1 .text:00022E58 STR R3, [R11,#var_84] .text:00022E5C .text:00022E5C loc_22E5C ; CODE XREF: __printf_fp+1C70j .text:00022E5C MOV R3, R4 .text:00022E60 SUB R4, R4, #1 .text:00022E64 CMP R3, #0 .text:00022E68 BNE loc_22DE0 .text:00022E6C .text:00022E6C loc_22E6C ; CODE XREF: __printf_fp+1C64j .text:00022E6C ; __printf_fp+1C80j ... .text:00022E6C LDR R7, [R11,#var_9C] .text:00022E70 CMP R7, #0 .text:00022E74 BEQ loc_22E88 .text:00022E78 MOV R0, R9 .text:00022E7C BL free .text:00022E80 LDR R0, [R11,#var_94] .text:00022E84 BL free .text:00022E88 .text:00022E88 loc_22E88 ; CODE XREF: __printf_fp+1DB8j .text:00022E88 LDR R12, [R11,#var_64] .text:00022E8C LDRB R3, [R12,#0xC] .text:00022E90 TST R3, #0x20 .text:00022E94 MOVEQ R2, #0 .text:00022E98 MOVNE R2, #1 .text:00022E9C CMP R2, #0 .text:00022EA0 CMPNE R10, #0 .text:00022EA4 BLE loc_22EF0 .text:00022EA8 LDR R0, [R11,#var_88] .text:00022EAC CMP R0, #0 .text:00022EB0 BEQ loc_22EC8 .text:00022EB4 MOV R0, R6 .text:00022EB8 LDR R1, [R12,#0x10] .text:00022EBC MOV R2, R10 .text:00022EC0 BL _IO_wpadn .text:00022EC4 B loc_22EDC .text:00022EC8 ; --------------------------------------------------------------------------- .text:00022EC8 .text:00022EC8 loc_22EC8 ; CODE XREF: __printf_fp+1DF4j .text:00022EC8 LDR R2, [R11,#var_64] .text:00022ECC MOV R0, R6 .text:00022ED0 LDR R1, [R2,#0x10] .text:00022ED4 MOV R2, R10 .text:00022ED8 BL _IO_padn .text:00022EDC .text:00022EDC loc_22EDC ; CODE XREF: __printf_fp+1E08j .text:00022EDC CMP R0, R10 .text:00022EE0 BNE loc_223BC .text:00022EE4 LDR R3, [R11,#var_84] .text:00022EE8 ADD R3, R3, R10 .text:00022EEC STR R3, [R11,#var_84] .text:00022EF0 .text:00022EF0 loc_22EF0 ; CODE XREF: __printf_fp+638j .text:00022EF0 ; __printf_fp+680j ... .text:00022EF0 LDR R0, [R11,#var_84] .text:00022EF4 .text:00022EF4 locret_22EF4 ; CODE XREF: __printf_fp+1304j .text:00022EF4 LDMDB R11, {R4-R11,SP,PC} .text:00022EF4 ; End of function __printf_fp .text:00022EF4 .text:00022EF8 .text:00022EF8 ; =============== S U B R O U T I N E ======================================= .text:00022EF8 .text:00022EF8 ; Attributes: bp-based frame .text:00022EF8 .text:00022EF8 EXPORT __guess_grouping .text:00022EF8 __guess_grouping ; CODE XREF: __printf_fp+12B0p .text:00022EF8 MOV R12, SP .text:00022EFC STMFD SP!, {R4,R11,R12,LR,PC} .text:00022F00 LDRB R2, [R1] .text:00022F04 SUB R11, R12, #4 .text:00022F08 CMP R2, #0 .text:00022F0C MOVNE R3, #0 .text:00022F10 MOVEQ R3, #1 .text:00022F14 CMP R2, #0xFF .text:00022F18 MOVEQ R3, #1 .text:00022F1C CMP R3, #0 .text:00022F20 MOVNE R0, #0 .text:00022F24 LDMNEDB R11, {R4,R11,SP,PC} .text:00022F28 MOV R4, R3 .text:00022F2C .text:00022F2C loc_22F2C ; CODE XREF: __guess_grouping+5Cj .text:00022F2C LDRB R2, [R1] .text:00022F30 CMP R0, R2 .text:00022F34 BLS loc_22F68 .text:00022F38 ADD R4, R4, #1 .text:00022F3C LDRB R3, [R1,#1]! .text:00022F40 RSB R0, R2, R0 .text:00022F44 AND R3, R3, #0xFF .text:00022F48 CMP R3, #0xFF .text:00022F4C BEQ loc_22F68 .text:00022F50 CMP R3, #0 .text:00022F54 BNE loc_22F2C .text:00022F58 LDRB R1, [R1,#-1] .text:00022F5C SUB R0, R0, #1 .text:00022F60 BL __udivsi3 .text:00022F64 ADD R4, R4, R0 .text:00022F68 .text:00022F68 loc_22F68 ; CODE XREF: __guess_grouping+3Cj .text:00022F68 ; __guess_grouping+54j .text:00022F68 MOV R0, R4 .text:00022F6C LDMDB R11, {R4,R11,SP,PC} .text:00022F6C ; End of function __guess_grouping .text:00022F6C .text:00022F70 .text:00022F70 ; =============== S U B R O U T I N E ======================================= .text:00022F70 .text:00022F70 ; Attributes: bp-based frame .text:00022F70 .text:00022F70 group_number_0 ; CODE XREF: __printf_fp+1794p .text:00022F70 .text:00022F70 arg_0 = 4 .text:00022F70 arg_4 = 8 .text:00022F70 .text:00022F70 MOV R12, SP .text:00022F74 STMFD SP!, {R4-R12,LR,PC} .text:00022F78 SUB R11, R12, #4 .text:00022F7C MOV R6, R2 .text:00022F80 MOV R7, R3 .text:00022F84 MOV R8, R0 .text:00022F88 LDR R5, [R11,#arg_4] .text:00022F8C MOV R10, R1 .text:00022F90 LDR R9, [R11,#arg_0] .text:00022F94 CMP R5, #0 .text:00022F98 MOVEQ R0, R10 .text:00022F9C LDMEQDB R11, {R4-R11,SP,PC} .text:00022FA0 ADD R1, R8, R6,LSL#2 .text:00022FA4 MOV R5, R5,LSL#2 .text:00022FA8 ADD R4, R1, R5 .text:00022FAC MOV R0, R4 .text:00022FB0 RSB R2, R1, R10 .text:00022FB4 MOV R2, R2,ASR#2 .text:00022FB8 BL wmemmove .text:00022FBC SUB R4, R4, #4 .text:00022FC0 .text:00022FC0 loc_22FC0 ; CODE XREF: group_number_0+88j .text:00022FC0 LDRB R2, [R7],#1 .text:00022FC4 .text:00022FC4 loc_22FC4 ; CODE XREF: group_number_0+64j .text:00022FC4 SUB R6, R6, #1 .text:00022FC8 LDR R3, [R8,R6,LSL#2] .text:00022FCC SUBS R2, R2, #1 .text:00022FD0 STR R3, [R4],#-4 .text:00022FD4 BNE loc_22FC4 .text:00022FD8 STR R9, [R4],#-4 .text:00022FDC LDRB R3, [R7] .text:00022FE0 CMP R3, #0xFF .text:00022FE4 BEQ loc_22FFC .text:00022FE8 CMP R3, #0 .text:00022FEC SUBEQ R7, R7, #1 .text:00022FF0 LDRB R3, [R7] .text:00022FF4 CMP R6, R3 .text:00022FF8 BHI loc_22FC0 .text:00022FFC .text:00022FFC loc_22FFC ; CODE XREF: group_number_0+74j .text:00022FFC ; group_number_0+9Cj .text:00022FFC SUB R6, R6, #1 .text:00023000 LDR R3, [R8,R6,LSL#2] .text:00023004 STR R3, [R4],#-4 .text:00023008 CMP R4, R8 .text:0002300C BHI loc_22FFC .text:00023010 ADD R0, R10, R5 .text:00023014 LDMDB R11, {R4-R11,SP,PC} .text:00023014 ; End of function group_number_0 .text:00023014 .text:00023018 .text:00023018 ; =============== S U B R O U T I N E ======================================= .text:00023018 .text:00023018 ; Attributes: bp-based frame .text:00023018 .text:00023018 WEAK register_printf_function .text:00023018 register_printf_function .text:00023018 MOV R12, SP .text:0002301C STMFD SP!, {R11,R12,LR,PC} .text:00023020 SUB R11, R12, #4 .text:00023024 MOV LR, R1 .text:00023028 MOV R12, R2 .text:0002302C CMP R0, #0xFF .text:00023030 BHI loc_23058 .text:00023034 LDR R3, =__printf_function_table .text:00023038 LDR R1, =printf_funcs .text:0002303C STR R1, [R3] .text:00023040 LDR R2, =__printf_arginfo_table .text:00023044 MOV R3, R0,LSL#2 .text:00023048 STR R12, [R2,R3] .text:0002304C MOV R0, #0 .text:00023050 STR LR, [R1,R3] .text:00023054 LDMDB R11, {R11,SP,PC} .text:00023058 ; --------------------------------------------------------------------------- .text:00023058 .text:00023058 loc_23058 ; CODE XREF: register_printf_function+18j .text:00023058 BL __errno_location .text:0002305C MOV R3, #0x16 .text:00023060 STR R3, [R0] .text:00023064 MOV R0, 0xFFFFFFFF .text:00023068 LDMDB R11, {R11,SP,PC} .text:00023068 ; End of function register_printf_function .text:00023068 .text:00023068 ; --------------------------------------------------------------------------- .text:0002306C off_2306C DCD __printf_function_table .text:0002306C ; DATA XREF: register_printf_function+1Cr .text:00023070 off_23070 DCD printf_funcs ; DATA XREF: register_printf_function+20r .text:00023074 off_23074 DCD __printf_arginfo_table .text:00023074 ; DATA XREF: register_printf_function+28r .text:00023078 .text:00023078 ; =============== S U B R O U T I N E ======================================= .text:00023078 .text:00023078 ; Attributes: bp-based frame .text:00023078 .text:00023078 EXPORT __printf_fphex .text:00023078 __printf_fphex ; CODE XREF: vfprintf+15A4p .text:00023078 ; vfprintf+375Cp ... .text:00023078 .text:00023078 var_138 = -0x138 .text:00023078 var_134 = -0x134 .text:00023078 var_130 = -0x130 .text:00023078 var_12C = -0x12C .text:00023078 var_128 = -0x128 .text:00023078 var_124 = -0x124 .text:00023078 var_120 = -0x120 .text:00023078 var_11C = -0x11C .text:00023078 var_118 = -0x118 .text:00023078 var_114 = -0x114 .text:00023078 var_110 = -0x110 .text:00023078 var_10C = -0x10C .text:00023078 var_108 = -0x108 .text:00023078 var_104 = -0x104 .text:00023078 var_100 = -0x100 .text:00023078 var_FC = -0xFC .text:00023078 var_F8 = -0xF8 .text:00023078 var_F4 = -0xF4 .text:00023078 var_DC = -0xDC .text:00023078 var_D7 = -0xD7 .text:00023078 var_88 = -0x88 .text:00023078 var_54 = -0x54 .text:00023078 var_34 = -0x34 .text:00023078 var_30 = -0x30 .text:00023078 .text:00023078 MOV R12, SP .text:0002307C STMFD SP!, {R4-R12,LR,PC} .text:00023080 SUB R11, R12, #4 .text:00023084 SUB SP, SP, #0x110 .text:00023088 STR R1, [R11,#var_F8] .text:0002308C LDR R1, [R1] .text:00023090 MOV R6, #0 .text:00023094 STR R6, [R11,#var_100] .text:00023098 STR R1, [R11,#var_128] .text:0002309C LDR R1, [R11,#var_F8] .text:000230A0 MOV R10, R6 .text:000230A4 LDRB R3, [R1,#0xD] .text:000230A8 MOV R7, R0 .text:000230AC LDR R9, [R1,#4] .text:000230B0 MOV R1, R2 .text:000230B4 TST R3, #1 .text:000230B8 MOV R3, R3,LSR#2 .text:000230BC AND R8, R3, #1 .text:000230C0 BNE loc_230DC .text:000230C4 LDR R3, =_nl_current_LC_NUMERIC .text:000230C8 LDR R2, [R3] .text:000230CC LDR R3, [R2,#0x20] .text:000230D0 STR R3, [R11,#var_FC] .text:000230D4 LDR R3, [R2,#0x2C] .text:000230D8 B loc_230F0 .text:000230DC ; --------------------------------------------------------------------------- .text:000230DC .text:000230DC loc_230DC ; CODE XREF: __printf_fphex+48j .text:000230DC LDR R3, =_nl_current_LC_MONETARY .text:000230E0 LDR R2, [R3] .text:000230E4 LDR R0, [R2,#0x28] .text:000230E8 STR R0, [R11,#var_FC] .text:000230EC LDR R3, [R2,#0xCC] .text:000230F0 .text:000230F0 loc_230F0 ; CODE XREF: __printf_fphex+60j .text:000230F0 STR R3, [R11,#var_F4] .text:000230F4 LDR R3, [R11,#var_FC] .text:000230F8 LDRB R2, [R3] .text:000230FC LDR R3, [R11,#var_F4] .text:00023100 CMP R3, #0 .text:00023104 CMPNE R2, #0 .text:00023108 BNE loc_23120 .text:0002310C LDR R0, =aDecimal0Decima ; "*decimal != '\\0' && decimalwc != L'\\0'" .text:00023110 LDR R1, =a__SysdepsGen_0 ; "../sysdeps/generic/printf_fphex.c" .text:00023114 LDR R3, =a__printf_fphex ; "__printf_fphex" .text:00023118 MOV R2, #0xA3 .text:0002311C BL __assert_fail .text:00023120 ; --------------------------------------------------------------------------- .text:00023120 .text:00023120 loc_23120 ; CODE XREF: __printf_fphex+90j .text:00023120 LDR R3, [R1] .text:00023124 LDMIA R3, {R4,R5} .text:00023128 STR R4, [R11,#var_34] .text:0002312C STR R5, [R11,#var_30] .text:00023130 MOV R1, R5 .text:00023134 MOV R0, R4 .text:00023138 BL isnanl .text:0002313C CMP R0, #0 .text:00023140 BEQ loc_23188 .text:00023144 LDR R0, [R11,#var_F8] .text:00023148 LDR R2, =__ctype_b .text:0002314C LDR R3, [R0,#8] .text:00023150 LDR R1, [R2] .text:00023154 MOV R3, R3,LSL#1 .text:00023158 ADD R3, R3, R1 .text:0002315C LDRB R2, [R3,#1] .text:00023160 TST R2, #1 .text:00023164 LDRNE R1, =aN ; "N" .text:00023168 LDRNE R6, =aNan ; "NAN" .text:0002316C STRNE R1, [R11,#var_100] .text:00023170 LDREQ R2, =dword_56F08 .text:00023174 LDREQ R6, =dword_56F04 .text:00023178 STREQ R2, [R11,#var_100] .text:0002317C MOV R3, #0 .text:00023180 STR R3, [R11,#var_110] .text:00023184 B loc_231E4 .text:00023188 ; --------------------------------------------------------------------------- .text:00023188 .text:00023188 loc_23188 ; CODE XREF: __printf_fphex+C8j .text:00023188 MOV R1, R5 .text:0002318C MOV R0, R4 .text:00023190 BL isinfl .text:00023194 CMP R0, #0 .text:00023198 BEQ loc_231D4 .text:0002319C LDR R0, [R11,#var_F8] .text:000231A0 LDR R2, =__ctype_b .text:000231A4 LDR R3, [R0,#8] .text:000231A8 LDR R1, [R2] .text:000231AC MOV R3, R3,LSL#1 .text:000231B0 ADD R3, R3, R1 .text:000231B4 LDRB R2, [R3,#1] .text:000231B8 TST R2, #1 .text:000231BC LDRNE R1, =dword_56F1C .text:000231C0 LDRNE R6, =dword_56F18 .text:000231C4 STRNE R1, [R11,#var_100] .text:000231C8 LDREQ R2, =dword_56F30 .text:000231CC LDREQ R6, =dword_56F2C .text:000231D0 STREQ R2, [R11,#var_100] .text:000231D4 .text:000231D4 loc_231D4 ; CODE XREF: __printf_fphex+120j .text:000231D4 SUB R0, R11, #-var_34 .text:000231D8 LDMIA R0, {R0,R1} .text:000231DC BL __signbit .text:000231E0 STR R0, [R11,#var_110] .text:000231E4 .text:000231E4 loc_231E4 ; CODE XREF: __printf_fphex+10Cj .text:000231E4 CMP R6, #0 .text:000231E8 BEQ loc_23504 .text:000231EC LDR R3, [R11,#var_F8] .text:000231F0 LDR R0, [R11,#var_110] .text:000231F4 LDR R5, [R3,#4] .text:000231F8 CMP R0, #0 .text:000231FC LDRB R2, [R3,#0xC] .text:00023200 BNE loc_23210 .text:00023204 AND R3, R2, #0x50 .text:00023208 CMP R3, #0 .text:0002320C BEQ loc_23214 .text:00023210 .text:00023210 loc_23210 ; CODE XREF: __printf_fphex+188j .text:00023210 SUB R5, R5, #1 .text:00023214 .text:00023214 loc_23214 ; CODE XREF: __printf_fphex+194j .text:00023214 SUB R5, R5, #3 .text:00023218 TST R2, #0x20 .text:0002321C MOVNE R3, #0 .text:00023220 MOVEQ R3, #1 .text:00023224 CMP R3, #0 .text:00023228 CMPNE R5, #0 .text:0002322C BLE loc_23268 .text:00023230 CMP R8, #0 .text:00023234 BEQ loc_2324C .text:00023238 MOV R0, R7 .text:0002323C MOV R1, #0x20 .text:00023240 MOV R2, R5 .text:00023244 BL _IO_wpadn .text:00023248 B loc_2325C .text:0002324C ; --------------------------------------------------------------------------- .text:0002324C .text:0002324C loc_2324C ; CODE XREF: __printf_fphex+1BCj .text:0002324C MOV R0, R7 .text:00023250 MOV R1, #0x20 .text:00023254 MOV R2, R5 .text:00023258 BL _IO_padn .text:0002325C .text:0002325C loc_2325C ; CODE XREF: __printf_fphex+1D0j .text:0002325C CMP R0, R5 .text:00023260 BNE loc_2427C .text:00023264 ADD R10, R10, R5 .text:00023268 .text:00023268 loc_23268 ; CODE XREF: __printf_fphex+1B4j .text:00023268 LDR R1, [R11,#var_110] .text:0002326C CMP R1, #0 .text:00023270 BEQ loc_232C4 .text:00023274 CMP R8, #0 .text:00023278 MOV R1, #0x2D .text:0002327C BEQ loc_232A0 .text:00023280 LDR R0, [R7,#0x58] .text:00023284 ADD R2, R0, #0x10 .text:00023288 LDMIA R2, {R2,R3} .text:0002328C CMP R2, R3 .text:00023290 BCC loc_23334 .text:00023294 MOV R0, R7 .text:00023298 BL __woverflow .text:0002329C B loc_232B8 .text:000232A0 ; --------------------------------------------------------------------------- .text:000232A0 .text:000232A0 loc_232A0 ; CODE XREF: __printf_fphex+204j .text:000232A0 ; __printf_fphex+264j ... .text:000232A0 ADD R2, R7, #0x14 .text:000232A4 LDMIA R2, {R2,R3} .text:000232A8 CMP R2, R3 .text:000232AC BCC loc_23340 .text:000232B0 MOV R0, R7 .text:000232B4 BL __overflow .text:000232B8 .text:000232B8 loc_232B8 ; CODE XREF: __printf_fphex+224j .text:000232B8 ; __printf_fphex+284j ... .text:000232B8 CMN R0, #1 .text:000232BC BEQ loc_2427C .text:000232C0 B loc_23348 .text:000232C4 ; --------------------------------------------------------------------------- .text:000232C4 .text:000232C4 loc_232C4 ; CODE XREF: __printf_fphex+1F8j .text:000232C4 LDR R2, [R11,#var_F8] .text:000232C8 LDRB R3, [R2,#0xC] .text:000232CC TST R3, #0x40 .text:000232D0 BEQ loc_23300 .text:000232D4 CMP R8, #0 .text:000232D8 MOV R1, #0x2B .text:000232DC BEQ loc_232A0 .text:000232E0 LDR R0, [R7,#0x58] .text:000232E4 ADD R2, R0, #0x10 .text:000232E8 LDMIA R2, {R2,R3} .text:000232EC CMP R2, R3 .text:000232F0 BCC loc_23334 .text:000232F4 MOV R0, R7 .text:000232F8 BL __woverflow .text:000232FC B loc_232B8 .text:00023300 ; --------------------------------------------------------------------------- .text:00023300 .text:00023300 loc_23300 ; CODE XREF: __printf_fphex+258j .text:00023300 TST R3, #0x10 .text:00023304 BEQ loc_2334C .text:00023308 CMP R8, #0 .text:0002330C MOV R1, #0x20 .text:00023310 BEQ loc_232A0 .text:00023314 LDR R0, [R7,#0x58] .text:00023318 ADD R2, R0, #0x10 .text:0002331C LDMIA R2, {R2,R3} .text:00023320 CMP R2, R3 .text:00023324 BCC loc_23334 .text:00023328 MOV R0, R7 .text:0002332C BL __woverflow .text:00023330 B loc_232B8 .text:00023334 ; --------------------------------------------------------------------------- .text:00023334 .text:00023334 loc_23334 ; CODE XREF: __printf_fphex+218j .text:00023334 ; __printf_fphex+278j ... .text:00023334 STR R1, [R2],#4 .text:00023338 STR R2, [R0,#0x10] .text:0002333C B loc_23348 .text:00023340 ; --------------------------------------------------------------------------- .text:00023340 .text:00023340 loc_23340 ; CODE XREF: __printf_fphex+234j .text:00023340 STRB R1, [R2],#1 .text:00023344 STR R2, [R7,#0x14] .text:00023348 .text:00023348 loc_23348 ; CODE XREF: __printf_fphex+248j .text:00023348 ; __printf_fphex+2C4j .text:00023348 ADD R10, R10, #1 .text:0002334C .text:0002334C loc_2334C ; CODE XREF: __printf_fphex+28Cj .text:0002334C CMP R8, #0 .text:00023350 BEQ loc_233EC .text:00023354 MOV R4, #2 .text:00023358 .text:00023358 loc_23358 ; CODE XREF: __printf_fphex+36Cj .text:00023358 LDR R3, [R11,#var_100] .text:0002335C LDR R1, [R3],#4 .text:00023360 CMP R8, #0 .text:00023364 STR R3, [R11,#var_100] .text:00023368 BEQ loc_2339C .text:0002336C LDR R0, [R7,#0x58] .text:00023370 ADD R2, R0, #0x10 .text:00023374 LDMIA R2, {R2,R3} .text:00023378 CMP R2, R3 .text:0002337C BCC loc_2338C .text:00023380 MOV R0, R7 .text:00023384 BL __woverflow .text:00023388 B loc_233B8 .text:0002338C ; --------------------------------------------------------------------------- .text:0002338C .text:0002338C loc_2338C ; CODE XREF: __printf_fphex+304j .text:0002338C STR R1, [R2],#4 .text:00023390 CMN R1, #1 .text:00023394 STR R2, [R0,#0x10] .text:00023398 B loc_233D0 .text:0002339C ; --------------------------------------------------------------------------- .text:0002339C .text:0002339C loc_2339C ; CODE XREF: __printf_fphex+2F0j .text:0002339C ADD R2, R7, #0x14 .text:000233A0 LDMIA R2, {R2,R3} .text:000233A4 CMP R2, R3 .text:000233A8 BCC loc_233C0 .text:000233AC MOV R0, R7 .text:000233B0 AND R1, R1, #0xFF .text:000233B4 BL __overflow .text:000233B8 .text:000233B8 loc_233B8 ; CODE XREF: __printf_fphex+310j .text:000233B8 CMN R0, #1 .text:000233BC B loc_233D0 .text:000233C0 ; --------------------------------------------------------------------------- .text:000233C0 .text:000233C0 loc_233C0 ; CODE XREF: __printf_fphex+330j .text:000233C0 STRB R1, [R2],#1 .text:000233C4 AND R3, R1, #0xFF .text:000233C8 CMN R3, #1 .text:000233CC STR R2, [R7,#0x14] .text:000233D0 .text:000233D0 loc_233D0 ; CODE XREF: __printf_fphex+320j .text:000233D0 ; __printf_fphex+344j .text:000233D0 BEQ loc_2427C .text:000233D4 ADD R10, R10, #1 .text:000233D8 MOV R3, R4 .text:000233DC SUB R4, R4, #1 .text:000233E0 CMP R3, #0 .text:000233E4 BNE loc_23358 .text:000233E8 B loc_234A8 .text:000233EC ; --------------------------------------------------------------------------- .text:000233EC .text:000233EC loc_233EC ; CODE XREF: __printf_fphex+2D8j .text:000233EC MOV R4, #2 .text:000233F0 .text:000233F0 loc_233F0 ; CODE XREF: __printf_fphex+42Cj .text:000233F0 CMP R8, #0 .text:000233F4 LDRB R1, [R6],#1 .text:000233F8 BEQ loc_2342C .text:000233FC LDR R0, [R7,#0x58] .text:00023400 ADD R2, R0, #0x10 .text:00023404 LDMIA R2, {R2,R3} .text:00023408 CMP R2, R3 .text:0002340C BCC loc_2341C .text:00023410 MOV R0, R7 .text:00023414 BL __woverflow .text:00023418 B loc_23444 .text:0002341C ; --------------------------------------------------------------------------- .text:0002341C .text:0002341C loc_2341C ; CODE XREF: __printf_fphex+394j .text:0002341C STR R1, [R2],#4 .text:00023420 CMN R1, #1 .text:00023424 STR R2, [R0,#0x10] .text:00023428 B loc_23490 .text:0002342C ; --------------------------------------------------------------------------- .text:0002342C .text:0002342C loc_2342C ; CODE XREF: __printf_fphex+380j .text:0002342C ADD R2, R7, #0x14 .text:00023430 LDMIA R2, {R2,R3} .text:00023434 CMP R2, R3 .text:00023438 BCC loc_23484 .text:0002343C MOV R0, R7 .text:00023440 BL __overflow .text:00023444 .text:00023444 loc_23444 ; CODE XREF: __printf_fphex+3A0j .text:00023444 CMN R0, #1 .text:00023448 B loc_23490 .text:00023448 ; --------------------------------------------------------------------------- .text:0002344C off_2344C DCD _nl_current_LC_NUMERIC ; DATA XREF: __printf_fphex+4Cr .text:00023450 off_23450 DCD _nl_current_LC_MONETARY .text:00023450 ; DATA XREF: __printf_fphex:loc_230DCr .text:00023454 off_23454 DCD aDecimal0Decima ; DATA XREF: __printf_fphex+94r .text:00023454 ; "*decimal != '\\0' && decimalwc != L'\\0'" .text:00023458 off_23458 DCD a__SysdepsGen_0 ; DATA XREF: __printf_fphex+98r .text:00023458 ; "../sysdeps/generic/printf_fphex.c" .text:0002345C off_2345C DCD a__printf_fphex ; DATA XREF: __printf_fphex+9Cr .text:0002345C ; "__printf_fphex" .text:00023460 off_23460 DCD __ctype_b ; DATA XREF: __printf_fphex+D0r .text:00023460 ; __printf_fphex+128r .text:00023464 off_23464 DCD aN ; DATA XREF: __printf_fphex+ECr .text:00023464 ; "N" .text:00023468 off_23468 DCD aNan ; DATA XREF: __printf_fphex+F0r .text:00023468 ; "NAN" .text:0002346C off_2346C DCD dword_56F08 ; DATA XREF: __printf_fphex+F8r .text:00023470 off_23470 DCD dword_56F04 ; DATA XREF: __printf_fphex+FCr .text:00023474 off_23474 DCD dword_56F1C ; DATA XREF: __printf_fphex+144r .text:00023478 off_23478 DCD dword_56F18 ; DATA XREF: __printf_fphex+148r .text:0002347C off_2347C DCD dword_56F30 ; DATA XREF: __printf_fphex+150r .text:00023480 off_23480 DCD dword_56F2C ; DATA XREF: __printf_fphex+154r .text:00023484 ; --------------------------------------------------------------------------- .text:00023484 .text:00023484 loc_23484 ; CODE XREF: __printf_fphex+3C0j .text:00023484 STRB R1, [R2],#1 .text:00023488 CMN R1, #1 .text:0002348C STR R2, [R7,#0x14] .text:00023490 .text:00023490 loc_23490 ; CODE XREF: __printf_fphex+3B0j .text:00023490 ; __printf_fphex+3D0j .text:00023490 BEQ loc_2427C .text:00023494 ADD R10, R10, #1 .text:00023498 MOV R3, R4 .text:0002349C SUB R4, R4, #1 .text:000234A0 CMP R3, #0 .text:000234A4 BNE loc_233F0 .text:000234A8 .text:000234A8 loc_234A8 ; CODE XREF: __printf_fphex+370j .text:000234A8 LDR R0, [R11,#var_F8] .text:000234AC LDRB R3, [R0,#0xC] .text:000234B0 TST R3, #0x20 .text:000234B4 MOVEQ R2, #0 .text:000234B8 MOVNE R2, #1 .text:000234BC CMP R2, #0 .text:000234C0 CMPNE R5, #0 .text:000234C4 BLE loc_24288 .text:000234C8 CMP R8, #0 .text:000234CC BEQ loc_234E4 .text:000234D0 MOV R0, R7 .text:000234D4 MOV R1, #0x20 .text:000234D8 MOV R2, R5 .text:000234DC BL _IO_wpadn .text:000234E0 B loc_234F4 .text:000234E4 ; --------------------------------------------------------------------------- .text:000234E4 .text:000234E4 loc_234E4 ; CODE XREF: __printf_fphex+454j .text:000234E4 MOV R0, R7 .text:000234E8 MOV R1, #0x20 .text:000234EC MOV R2, R5 .text:000234F0 BL _IO_padn .text:000234F4 .text:000234F4 loc_234F4 ; CODE XREF: __printf_fphex+468j .text:000234F4 CMP R0, R5 .text:000234F8 BNE loc_2427C .text:000234FC ADD R10, R10, R5 .text:00023500 B loc_24288 .text:00023504 ; --------------------------------------------------------------------------- .text:00023504 .text:00023504 loc_23504 ; CODE XREF: __printf_fphex+170j .text:00023504 LDR R3, [R11,#var_34] .text:00023508 BIC R3, R3, #0xFF000000 .text:0002350C BIC R3, R3, #0xF00000 .text:00023510 MOV R4, #0 .text:00023514 MOV R2, R3 .text:00023518 LDR R3, [R11,#var_30] .text:0002351C MOV R1, R6 .text:00023520 ORR R4, R1, R3 .text:00023524 MOV R5, R2 .text:00023528 ORRS R1, R4, R5 .text:0002352C MOVNE R2, #0 .text:00023530 MOVEQ R2, #1 .text:00023534 STR R2, [R11,#var_120] .text:00023538 LDR R0, [R11,#var_F8] .text:0002353C LDR R3, [R0,#8] .text:00023540 CMP R3, #0x41 .text:00023544 MOVNE R3, #0 .text:00023548 MOVEQ R3, #1 .text:0002354C STR R3, [SP,#0x138+var_138] .text:00023550 MOV R3, #0x10 .text:00023554 MOV R1, R5 .text:00023558 MOV R0, R4 .text:0002355C SUB R2, R11, #-var_54 .text:00023560 BL _itowa .text:00023564 LDR R1, [R11,#var_F8] .text:00023568 LDR R3, [R1,#8] .text:0002356C STR R0, [R11,#var_10C] .text:00023570 CMP R3, #0x41 .text:00023574 MOVNE R3, #0 .text:00023578 MOVEQ R3, #1 .text:0002357C STR R3, [SP,#0x138+var_138] .text:00023580 SUB R6, R11, #-var_34 .text:00023584 MOV R2, R6 .text:00023588 MOV R1, R5 .text:0002358C MOV R0, R4 .text:00023590 MOV R3, #0x10 .text:00023594 BL _itoa .text:00023598 STR R0, [R11,#var_104] .text:0002359C SUB R2, R11, #-var_88 .text:000235A0 MOV R1, R6 .text:000235A4 SUB LR, R11, #-var_D7 .text:000235A8 LDR R3, [R11,#var_10C] .text:000235AC SUB R0, R11, #-var_DC .text:000235B0 STR R0, [R11,#var_134] .text:000235B4 CMP R3, R2 .text:000235B8 BLS loc_235E4 .text:000235BC MOV R3, #0x30 .text:000235C0 .text:000235C0 loc_235C0 ; CODE XREF: __printf_fphex+568j .text:000235C0 LDR R0, [R11,#var_10C] .text:000235C4 STR R3, [R0,#-4]! .text:000235C8 STR R0, [R11,#var_10C] .text:000235CC LDR R0, [R11,#var_104] .text:000235D0 STRB R3, [R0,#-1]! .text:000235D4 STR R0, [R11,#var_104] .text:000235D8 LDR R0, [R11,#var_10C] .text:000235DC CMP R0, R2 .text:000235E0 BHI loc_235C0 .text:000235E4 .text:000235E4 loc_235E4 ; CODE XREF: __printf_fphex+540j .text:000235E4 MOV R3, #0x7F0 .text:000235E8 LDR R2, [R11,#var_34] .text:000235EC ADD R3, R3, #0xF .text:000235F0 AND R3, R3, R2,LSR#20 .text:000235F4 CMP R3, #0 .text:000235F8 MOVNE R2, #0x31 .text:000235FC MOVEQ R2, #0x30 .text:00023600 MOV R6, R3 .text:00023604 STR R2, [R11,#var_124] .text:00023608 BNE loc_2362C .text:0002360C LDR R3, [R11,#var_120] .text:00023610 STR R6, [R11,#var_11C] .text:00023614 CMP R3, #0 .text:00023618 MOVEQ R0, #1 .text:0002361C MOVEQ R6, 0x3FE .text:00023624 STREQ R0, [R11,#var_11C] .text:00023628 B loc_23660 .text:0002362C ; --------------------------------------------------------------------------- .text:0002362C .text:0002362C loc_2362C ; CODE XREF: __printf_fphex+590j .text:0002362C MOV R3, 0x3FE .text:00023634 CMP R6, R3 .text:00023638 BLE loc_23650 .text:0002363C MOV R2, #0 .text:00023640 SUB R6, R6, #0x3FC .text:00023644 SUB R6, R6, #3 .text:00023648 STR R2, [R11,#var_11C] .text:0002364C B loc_23660 .text:00023650 ; --------------------------------------------------------------------------- .text:00023650 .text:00023650 loc_23650 ; CODE XREF: __printf_fphex+5C0j .text:00023650 MOV R3, #1 .text:00023654 RSB R6, R6, #0x3FC .text:00023658 ADD R6, R6, #3 .text:0002365C STR R3, [R11,#var_11C] .text:00023660 .text:00023660 loc_23660 ; CODE XREF: __printf_fphex+5B0j .text:00023660 ; __printf_fphex+5D4j .text:00023660 LDR R0, [R11,#var_120] .text:00023664 CMP R0, #0 .text:00023668 BNE loc_23898 .text:0002366C ADD R2, R11, #0x12C .text:00023670 LDR R3, [R2,#-4] .text:00023674 STR R1, [R11,#var_108] .text:00023678 CMP R3, #0x30 .text:0002367C BNE loc_2369C .text:00023680 .text:00023680 loc_23680 ; CODE XREF: __printf_fphex+620j .text:00023680 LDR R1, [R11,#var_108] .text:00023684 SUB R2, R2, #4 .text:00023688 LDR R3, [R2,#-4] .text:0002368C SUB R1, R1, #1 .text:00023690 CMP R3, #0x30 .text:00023694 STR R1, [R11,#var_108] .text:00023698 BEQ loc_23680 .text:0002369C .text:0002369C loc_2369C ; CODE XREF: __printf_fphex+604j .text:0002369C LDR R2, [R11,#var_128] .text:000236A0 CMN R2, #1 .text:000236A4 BNE loc_236BC .text:000236A8 LDR R3, [R11,#var_108] .text:000236AC LDR R0, [R11,#var_104] .text:000236B0 RSB R3, R0, R3 .text:000236B4 STR R3, [R11,#var_128] .text:000236B8 B loc_238B4 .text:000236BC ; --------------------------------------------------------------------------- .text:000236BC .text:000236BC loc_236BC ; CODE XREF: __printf_fphex+62Cj .text:000236BC SUB R1, R11, #-var_108 .text:000236C0 LDMIA R1, {R1,R3} .text:000236C4 LDR R0, [R11,#var_128] .text:000236C8 RSB R2, R3, R1 .text:000236CC CMP R0, R2 .text:000236D0 BGE loc_238B4 .text:000236D4 LDRB R3, [R3,R0] .text:000236D8 CMP R3, #0x38 .text:000236DC BHI loc_23784 .text:000236E0 BNE loc_238B4 .text:000236E4 ADD R3, R0, #1 .text:000236E8 CMP R3, R2 .text:000236EC BLT loc_23784 .text:000236F0 CMP R0, #0 .text:000236F4 BLE loc_23740 .text:000236F8 LDR R2, [R11,#var_104] .text:000236FC MOV R12, 0xFFFFFFFF .text:00023700 LDR R1, =__ctype_b .text:00023704 ADD R0, R0, R2 .text:00023708 LDRB R3, [R0,R12] .text:0002370C LDR R2, [R1] .text:00023710 MOV R3, R3,LSL#1 .text:00023714 ADD R3, R3, R2 .text:00023718 LDRB R1, [R3,#1] .text:0002371C LDRB R2, [R0,R12] .text:00023720 TST R1, #8 .text:00023724 AND R2, R2, #1 .text:00023728 BNE loc_23738 .text:0002372C CMP R2, #0 .text:00023730 BEQ loc_23784 .text:00023734 B loc_23740 .text:00023738 ; --------------------------------------------------------------------------- .text:00023738 .text:00023738 loc_23738 ; CODE XREF: __printf_fphex+6B0j .text:00023738 CMP R2, #0 .text:0002373C BNE loc_23784 .text:00023740 .text:00023740 loc_23740 ; CODE XREF: __printf_fphex+67Cj .text:00023740 ; __printf_fphex+6BCj .text:00023740 LDR R3, [R11,#var_128] .text:00023744 CMP R3, #0 .text:00023748 BNE loc_238B4 .text:0002374C LDR R2, =__ctype_b .text:00023750 LDR R0, [R11,#var_124] .text:00023754 LDR R1, [R2] .text:00023758 MOV R3, R0,LSL#1 .text:0002375C ADD R3, R3, R1 .text:00023760 LDRB R2, [R3,#1] .text:00023764 AND R3, R0, #1 .text:00023768 TST R2, #8 .text:0002376C BNE loc_2377C .text:00023770 CMP R3, #0 .text:00023774 BEQ loc_23784 .text:00023778 B loc_238B4 .text:0002377C ; --------------------------------------------------------------------------- .text:0002377C .text:0002377C loc_2377C ; CODE XREF: __printf_fphex+6F4j .text:0002377C CMP R3, #0 .text:00023780 BEQ loc_238B4 .text:00023784 .text:00023784 loc_23784 ; CODE XREF: __printf_fphex+664j .text:00023784 ; __printf_fphex+674j ... .text:00023784 LDR R1, [R11,#var_128] .text:00023788 SUBS R0, R1, #1 .text:0002378C BMI loc_23828 .text:00023790 LDR R2, [R11,#var_104] .text:00023794 LDRB R1, [R2,R0] .text:00023798 CMP R1, #0x39 .text:0002379C BNE loc_237D0 .text:000237A0 LDR R1, [R11,#var_F8] .text:000237A4 LDR R2, [R11,#var_10C] .text:000237A8 B loc_23814 .text:000237AC ; --------------------------------------------------------------------------- .text:000237AC .text:000237AC loc_237AC ; CODE XREF: __printf_fphex+768j .text:000237AC LDR R1, [R11,#var_104] .text:000237B0 LDRB R3, [R1,R0] .text:000237B4 ADD R3, R3, #1 .text:000237B8 STRB R3, [R1,R0] .text:000237BC LDR R3, [R11,#var_10C] .text:000237C0 LDR R2, [R3,R0,LSL#2] .text:000237C4 ADD R2, R2, #1 .text:000237C8 STR R2, [R3,R0,LSL#2] .text:000237CC B loc_23828 .text:000237D0 ; --------------------------------------------------------------------------- .text:000237D0 .text:000237D0 loc_237D0 ; CODE XREF: __printf_fphex+724j .text:000237D0 ; __printf_fphex+794j .text:000237D0 LDR R3, =__ctype_tolower .text:000237D4 LDR R2, [R3] .text:000237D8 LDR R1, [R2,R1,LSL#2] .text:000237DC CMP R1, #0x65 .text:000237E0 BLE loc_237AC .text:000237E4 LDR R1, [R11,#var_104] .text:000237E8 MOV R3, #0x30 .text:000237EC STRB R3, [R1,R0] .text:000237F0 LDR R2, [R11,#var_10C] .text:000237F4 STR R3, [R2,R0,LSL#2] .text:000237F8 SUBS R0, R0, #1 .text:000237FC BMI loc_23828 .text:00023800 LDR R3, [R11,#var_104] .text:00023804 LDRB R1, [R3,R0] .text:00023808 CMP R1, #0x39 .text:0002380C BNE loc_237D0 .text:00023810 LDR R1, [R11,#var_F8] .text:00023814 .text:00023814 loc_23814 ; CODE XREF: __printf_fphex+730j .text:00023814 LDR R3, [R1,#8] .text:00023818 STR R3, [R2,R0,LSL#2] .text:0002381C LDR R3, [R11,#var_104] .text:00023820 LDRB R2, [R1,#8] .text:00023824 STRB R2, [R3,R0] .text:00023828 .text:00023828 loc_23828 ; CODE XREF: __printf_fphex+714j .text:00023828 ; __printf_fphex+754j ... .text:00023828 CMP R0, #0 .text:0002382C BGE loc_238B4 .text:00023830 LDR R0, [R11,#var_124] .text:00023834 CMP R0, #0x39 .text:00023838 LDREQ R1, [R11,#var_F8] .text:0002383C LDREQB R1, [R1,#8] .text:00023840 STREQ R1, [R11,#var_124] .text:00023844 BEQ loc_238B4 .text:00023848 LDR R3, =__ctype_tolower .text:0002384C LDR R2, [R3] .text:00023850 LDR R3, [R11,#var_124] .text:00023854 LDR R1, [R2,R3,LSL#2] .text:00023858 CMP R1, #0x65 .text:0002385C ADDLE R3, R3, #1 .text:00023860 ANDLE R3, R3, #0xFF .text:00023864 STRLE R3, [R11,#var_124] .text:00023868 BLE loc_238B4 .text:0002386C LDR R1, [R11,#var_11C] .text:00023870 MOV R0, #1 .text:00023874 STR R0, [R11,#var_124] .text:00023878 CMP R1, #0 .text:0002387C BEQ loc_23890 .text:00023880 ADDS R6, R6, #4 .text:00023884 MOVPL R1, #0 .text:00023888 STR R1, [R11,#var_11C] .text:0002388C B loc_238B4 .text:00023890 ; --------------------------------------------------------------------------- .text:00023890 .text:00023890 loc_23890 ; CODE XREF: __printf_fphex+804j .text:00023890 ADD R6, R6, #4 .text:00023894 B loc_238B4 .text:00023898 ; --------------------------------------------------------------------------- .text:00023898 .text:00023898 loc_23898 ; CODE XREF: __printf_fphex+5F0j .text:00023898 LDR R2, [R11,#var_128] .text:0002389C MOV R3, R2 .text:000238A0 CMN R3, #1 .text:000238A4 MOVEQ R2, #0 .text:000238A8 STR R2, [R11,#var_128] .text:000238AC LDR R0, [R11,#var_104] .text:000238B0 STR R0, [R11,#var_108] .text:000238B4 .text:000238B4 loc_238B4 ; CODE XREF: __printf_fphex+640j .text:000238B4 ; __printf_fphex+658j ... .text:000238B4 MOV R4, R6 .text:000238B8 LDR R1, [R11,#var_128] .text:000238BC MOV R5, LR .text:000238C0 ADD R1, R1, #3 .text:000238C4 STR R1, [R11,#var_12C] .text:000238C8 .text:000238C8 loc_238C8 ; CODE XREF: __printf_fphex+878j .text:000238C8 MOV R0, R4 .text:000238CC MOV R1, #0xA .text:000238D0 BL __umodsi3 .text:000238D4 LDR R2, =_itoa_lower_digits .text:000238D8 LDRB R3, [R2,R0] .text:000238DC STRB R3, [R5,#-1]! .text:000238E0 MOV R1, #0xA .text:000238E4 MOV R0, R4 .text:000238E8 BL __udivsi3 .text:000238EC SUBS R4, R0, #0 .text:000238F0 BNE loc_238C8 .text:000238F4 STR R5, [R11,#var_114] .text:000238F8 LDR R3, [R11,#var_114] .text:000238FC MOV R4, R6 .text:00023900 LDR R5, [R11,#var_134] .text:00023904 SUB R3, R3, #5 .text:00023908 STR R3, [R11,#var_130] .text:0002390C .text:0002390C loc_2390C ; CODE XREF: __printf_fphex+8BCj .text:0002390C MOV R0, R4 .text:00023910 MOV R1, #0xA .text:00023914 BL __umodsi3 .text:00023918 LDR R1, =_itowa_lower_digits .text:0002391C LDR R3, [R1,R0,LSL#2] .text:00023920 STR R3, [R5,#-4]! .text:00023924 MOV R0, R4 .text:00023928 MOV R1, #0xA .text:0002392C BL __udivsi3 .text:00023930 SUBS R4, R0, #0 .text:00023934 BNE loc_2390C .text:00023938 LDR R2, [R11,#var_110] .text:0002393C MOV R0, R4 .text:00023940 STR R5, [R11,#var_118] .text:00023944 CMP R2, #0 .text:00023948 BNE loc_23960 .text:0002394C LDR R1, [R11,#var_F8] .text:00023950 LDRB R3, [R1,#0xC] .text:00023954 AND R3, R3, #0x50 .text:00023958 CMP R3, #0 .text:0002395C BEQ loc_23964 .text:00023960 .text:00023960 loc_23960 ; CODE XREF: __printf_fphex+8D0j .text:00023960 MOV R0, #1 .text:00023964 .text:00023964 loc_23964 ; CODE XREF: __printf_fphex+8E4j .text:00023964 SUB R1, R11, #-var_130 .text:00023968 LDMIA R1, {R1,R3} .text:0002396C ADD R2, R0, R3 .text:00023970 LDR R0, [R11,#var_134] .text:00023974 RSB R3, R1, R0 .text:00023978 ADD R3, R3, #2 .text:0002397C ADD R2, R2, R3 .text:00023980 RSB R9, R2, R9 .text:00023984 LDR R2, [R11,#var_128] .text:00023988 CMP R2, #0 .text:0002398C BGT loc_239A0 .text:00023990 LDR R0, [R11,#var_F8] .text:00023994 LDRB R3, [R0,#0xC] .text:00023998 TST R3, #8 .text:0002399C BEQ loc_239BC .text:000239A0 .text:000239A0 loc_239A0 ; CODE XREF: __printf_fphex+914j .text:000239A0 CMP R8, #0 .text:000239A4 BNE loc_239B8 .text:000239A8 LDR R0, [R11,#var_FC] .text:000239AC BL strlen .text:000239B0 RSB R9, R0, R9 .text:000239B4 B loc_239BC .text:000239B8 ; --------------------------------------------------------------------------- .text:000239B8 .text:000239B8 loc_239B8 ; CODE XREF: __printf_fphex+92Cj .text:000239B8 SUB R9, R9, #1 .text:000239BC .text:000239BC loc_239BC ; CODE XREF: __printf_fphex+924j .text:000239BC ; __printf_fphex+93Cj .text:000239BC LDR R1, [R11,#var_128] .text:000239C0 LDR R3, [R11,#var_F8] .text:000239C4 CMP R1, #0 .text:000239C8 LDRB R2, [R3,#0xC] .text:000239CC BNE loc_239D8 .text:000239D0 TST R2, #8 .text:000239D4 ADDEQ R9, R9, #1 .text:000239D8 .text:000239D8 loc_239D8 ; CODE XREF: __printf_fphex+954j .text:000239D8 TST R2, #0x20 .text:000239DC MOVNE R3, #0 .text:000239E0 MOVEQ R3, #1 .text:000239E4 CMP R3, #0 .text:000239E8 CMPNE R9, #0 .text:000239EC BLE loc_23A28 .text:000239F0 CMP R8, #0 .text:000239F4 BEQ loc_23A0C .text:000239F8 MOV R0, R7 .text:000239FC MOV R1, #0x20 .text:00023A00 MOV R2, R9 .text:00023A04 BL _IO_wpadn .text:00023A08 B loc_23A1C .text:00023A0C ; --------------------------------------------------------------------------- .text:00023A0C .text:00023A0C loc_23A0C ; CODE XREF: __printf_fphex+97Cj .text:00023A0C MOV R0, R7 .text:00023A10 MOV R1, #0x20 .text:00023A14 MOV R2, R9 .text:00023A18 BL _IO_padn .text:00023A1C .text:00023A1C loc_23A1C ; CODE XREF: __printf_fphex+990j .text:00023A1C CMP R0, R9 .text:00023A20 BNE loc_2427C .text:00023A24 ADD R10, R10, R9 .text:00023A28 .text:00023A28 loc_23A28 ; CODE XREF: __printf_fphex+974j .text:00023A28 LDR R0, [R11,#var_110] .text:00023A2C CMP R0, #0 .text:00023A30 BEQ loc_23A84 .text:00023A34 CMP R8, #0 .text:00023A38 MOV R1, #0x2D .text:00023A3C BEQ loc_23A60 .text:00023A40 LDR R0, [R7,#0x58] .text:00023A44 ADD R2, R0, #0x10 .text:00023A48 LDMIA R2, {R2,R3} .text:00023A4C CMP R2, R3 .text:00023A50 BCC loc_23B04 .text:00023A54 MOV R0, R7 .text:00023A58 BL __woverflow .text:00023A5C B loc_23A78 .text:00023A60 ; --------------------------------------------------------------------------- .text:00023A60 .text:00023A60 loc_23A60 ; CODE XREF: __printf_fphex+9C4j .text:00023A60 ; __printf_fphex+A24j ... .text:00023A60 ADD R2, R7, #0x14 .text:00023A64 LDMIA R2, {R2,R3} .text:00023A68 CMP R2, R3 .text:00023A6C BCC loc_23B10 .text:00023A70 MOV R0, R7 .text:00023A74 BL __overflow .text:00023A78 .text:00023A78 loc_23A78 ; CODE XREF: __printf_fphex+9E4j .text:00023A78 ; __printf_fphex+A44j ... .text:00023A78 CMN R0, #1 .text:00023A7C BEQ loc_2427C .text:00023A80 B loc_23B18 .text:00023A84 ; --------------------------------------------------------------------------- .text:00023A84 .text:00023A84 loc_23A84 ; CODE XREF: __printf_fphex+9B8j .text:00023A84 LDR R1, [R11,#var_F8] .text:00023A88 LDRB R3, [R1,#0xC] .text:00023A8C TST R3, #0x40 .text:00023A90 BEQ loc_23AD0 .text:00023A94 CMP R8, #0 .text:00023A98 MOV R1, #0x2B .text:00023A9C BEQ loc_23A60 .text:00023AA0 LDR R0, [R7,#0x58] .text:00023AA4 ADD R2, R0, #0x10 .text:00023AA8 LDMIA R2, {R2,R3} .text:00023AAC CMP R2, R3 .text:00023AB0 BCC loc_23B04 .text:00023AB4 MOV R0, R7 .text:00023AB8 BL __woverflow .text:00023ABC B loc_23A78 .text:00023ABC ; --------------------------------------------------------------------------- .text:00023AC0 off_23AC0 DCD __ctype_b ; DATA XREF: __printf_fphex+688r .text:00023AC0 ; __printf_fphex+6D4r .text:00023AC4 off_23AC4 DCD __ctype_tolower ; DATA XREF: __printf_fphex:loc_237D0r .text:00023AC4 ; __printf_fphex+7D0r .text:00023AC8 off_23AC8 DCD _itoa_lower_digits ; DATA XREF: __printf_fphex+85Cr .text:00023ACC off_23ACC DCD _itowa_lower_digits ; DATA XREF: __printf_fphex+8A0r .text:00023AD0 ; --------------------------------------------------------------------------- .text:00023AD0 .text:00023AD0 loc_23AD0 ; CODE XREF: __printf_fphex+A18j .text:00023AD0 TST R3, #0x10 .text:00023AD4 BEQ loc_23B1C .text:00023AD8 CMP R8, #0 .text:00023ADC MOV R1, #0x20 .text:00023AE0 BEQ loc_23A60 .text:00023AE4 LDR R0, [R7,#0x58] .text:00023AE8 ADD R2, R0, #0x10 .text:00023AEC LDMIA R2, {R2,R3} .text:00023AF0 CMP R2, R3 .text:00023AF4 BCC loc_23B04 .text:00023AF8 MOV R0, R7 .text:00023AFC BL __woverflow .text:00023B00 B loc_23A78 .text:00023B04 ; --------------------------------------------------------------------------- .text:00023B04 .text:00023B04 loc_23B04 ; CODE XREF: __printf_fphex+9D8j .text:00023B04 ; __printf_fphex+A38j ... .text:00023B04 STR R1, [R2],#4 .text:00023B08 STR R2, [R0,#0x10] .text:00023B0C B loc_23B18 .text:00023B10 ; --------------------------------------------------------------------------- .text:00023B10 .text:00023B10 loc_23B10 ; CODE XREF: __printf_fphex+9F4j .text:00023B10 STRB R1, [R2],#1 .text:00023B14 STR R2, [R7,#0x14] .text:00023B18 .text:00023B18 loc_23B18 ; CODE XREF: __printf_fphex+A08j .text:00023B18 ; __printf_fphex+A94j .text:00023B18 ADD R10, R10, #1 .text:00023B1C .text:00023B1C loc_23B1C ; CODE XREF: __printf_fphex+A5Cj .text:00023B1C CMP R8, #0 .text:00023B20 MOV R1, #0x30 .text:00023B24 BEQ loc_23B54 .text:00023B28 LDR R0, [R7,#0x58] .text:00023B2C ADD R2, R0, #0x10 .text:00023B30 LDMIA R2, {R2,R3} .text:00023B34 CMP R2, R3 .text:00023B38 BCC loc_23B48 .text:00023B3C MOV R0, R7 .text:00023B40 BL __woverflow .text:00023B44 B loc_23B6C .text:00023B48 ; --------------------------------------------------------------------------- .text:00023B48 .text:00023B48 loc_23B48 ; CODE XREF: __printf_fphex+AC0j .text:00023B48 STR R1, [R2],#4 .text:00023B4C STR R2, [R0,#0x10] .text:00023B50 B loc_23B80 .text:00023B54 ; --------------------------------------------------------------------------- .text:00023B54 .text:00023B54 loc_23B54 ; CODE XREF: __printf_fphex+AACj .text:00023B54 ADD R2, R7, #0x14 .text:00023B58 LDMIA R2, {R2,R3} .text:00023B5C CMP R2, R3 .text:00023B60 BCC loc_23B78 .text:00023B64 MOV R0, R7 .text:00023B68 BL __overflow .text:00023B6C .text:00023B6C loc_23B6C ; CODE XREF: __printf_fphex+ACCj .text:00023B6C CMN R0, #1 .text:00023B70 BEQ loc_2427C .text:00023B74 B loc_23B80 .text:00023B78 ; --------------------------------------------------------------------------- .text:00023B78 .text:00023B78 loc_23B78 ; CODE XREF: __printf_fphex+AE8j .text:00023B78 STRB R1, [R2],#1 .text:00023B7C STR R2, [R7,#0x14] .text:00023B80 .text:00023B80 loc_23B80 ; CODE XREF: __printf_fphex+AD8j .text:00023B80 ; __printf_fphex+AFCj .text:00023B80 ADD R10, R10, #1 .text:00023B84 LDR R2, [R11,#var_F8] .text:00023B88 LDR R3, [R2,#8] .text:00023B8C CMP R8, #0 .text:00023B90 ADD R1, R3, #0x17 .text:00023B94 BEQ loc_23BC8 .text:00023B98 LDR R0, [R7,#0x58] .text:00023B9C ADD R2, R0, #0x10 .text:00023BA0 LDMIA R2, {R2,R3} .text:00023BA4 CMP R2, R3 .text:00023BA8 BCC loc_23BB8 .text:00023BAC MOV R0, R7 .text:00023BB0 BL __woverflow .text:00023BB4 B loc_23BE4 .text:00023BB8 ; --------------------------------------------------------------------------- .text:00023BB8 .text:00023BB8 loc_23BB8 ; CODE XREF: __printf_fphex+B30j .text:00023BB8 STR R1, [R2],#4 .text:00023BBC CMN R1, #1 .text:00023BC0 STR R2, [R0,#0x10] .text:00023BC4 B loc_23BFC .text:00023BC8 ; --------------------------------------------------------------------------- .text:00023BC8 .text:00023BC8 loc_23BC8 ; CODE XREF: __printf_fphex+B1Cj .text:00023BC8 ADD R2, R7, #0x14 .text:00023BCC LDMIA R2, {R2,R3} .text:00023BD0 CMP R2, R3 .text:00023BD4 BCC loc_23BEC .text:00023BD8 MOV R0, R7 .text:00023BDC AND R1, R1, #0xFF .text:00023BE0 BL __overflow .text:00023BE4 .text:00023BE4 loc_23BE4 ; CODE XREF: __printf_fphex+B3Cj .text:00023BE4 CMN R0, #1 .text:00023BE8 B loc_23BFC .text:00023BEC ; --------------------------------------------------------------------------- .text:00023BEC .text:00023BEC loc_23BEC ; CODE XREF: __printf_fphex+B5Cj .text:00023BEC STRB R1, [R2],#1 .text:00023BF0 AND R3, R1, #0xFF .text:00023BF4 CMN R3, #1 .text:00023BF8 STR R2, [R7,#0x14] .text:00023BFC .text:00023BFC loc_23BFC ; CODE XREF: __printf_fphex+B4Cj .text:00023BFC ; __printf_fphex+B70j .text:00023BFC BEQ loc_2427C .text:00023C00 ADD R10, R10, #1 .text:00023C04 CMP R8, #0 .text:00023C08 BEQ loc_23C44 .text:00023C0C LDR R1, [R7,#0x58] .text:00023C10 ADD R2, R1, #0x10 .text:00023C14 LDMIA R2, {R2,R3} .text:00023C18 CMP R2, R3 .text:00023C1C BCC loc_23C30 .text:00023C20 LDR R1, [R11,#var_124] .text:00023C24 MOV R0, R7 .text:00023C28 BL __woverflow .text:00023C2C B loc_23C60 .text:00023C30 ; --------------------------------------------------------------------------- .text:00023C30 .text:00023C30 loc_23C30 ; CODE XREF: __printf_fphex+BA4j .text:00023C30 LDR R3, [R11,#var_124] .text:00023C34 STR R3, [R2],#4 .text:00023C38 CMN R3, #1 .text:00023C3C STR R2, [R1,#0x10] .text:00023C40 B loc_23C78 .text:00023C44 ; --------------------------------------------------------------------------- .text:00023C44 .text:00023C44 loc_23C44 ; CODE XREF: __printf_fphex+B90j .text:00023C44 ADD R2, R7, #0x14 .text:00023C48 LDMIA R2, {R2,R3} .text:00023C4C CMP R2, R3 .text:00023C50 BCC loc_23C68 .text:00023C54 LDR R1, [R11,#var_124] .text:00023C58 MOV R0, R7 .text:00023C5C BL __overflow .text:00023C60 .text:00023C60 loc_23C60 ; CODE XREF: __printf_fphex+BB4j .text:00023C60 CMN R0, #1 .text:00023C64 B loc_23C78 .text:00023C68 ; --------------------------------------------------------------------------- .text:00023C68 .text:00023C68 loc_23C68 ; CODE XREF: __printf_fphex+BD8j .text:00023C68 LDR R0, [R11,#var_124] .text:00023C6C STRB R0, [R2],#1 .text:00023C70 CMN R0, #1 .text:00023C74 STR R2, [R7,#0x14] .text:00023C78 .text:00023C78 loc_23C78 ; CODE XREF: __printf_fphex+BC8j .text:00023C78 ; __printf_fphex+BECj .text:00023C78 BEQ loc_2427C .text:00023C7C ADD R10, R10, #1 .text:00023C80 LDR R1, [R11,#var_128] .text:00023C84 CMP R1, #0 .text:00023C88 BGT loc_23C9C .text:00023C8C LDR R2, [R11,#var_F8] .text:00023C90 LDRB R3, [R2,#0xC] .text:00023C94 TST R3, #8 .text:00023C98 BEQ loc_23DE8 .text:00023C9C .text:00023C9C loc_23C9C ; CODE XREF: __printf_fphex+C10j .text:00023C9C SUB R5, R11, #-var_F4 .text:00023CA0 CMP R8, #0 .text:00023CA4 BNE loc_23CB8 .text:00023CA8 LDR R0, [R11,#var_FC] .text:00023CAC BL strlen .text:00023CB0 MOV R4, R0 .text:00023CB4 B loc_23CBC .text:00023CB8 ; --------------------------------------------------------------------------- .text:00023CB8 .text:00023CB8 loc_23CB8 ; CODE XREF: __printf_fphex+C2Cj .text:00023CB8 MOV R4, #1 .text:00023CBC .text:00023CBC loc_23CBC ; CODE XREF: __printf_fphex+C3Cj .text:00023CBC CMP R8, #0 .text:00023CC0 BEQ loc_23DD8 .text:00023CC4 MOV R3, R4 .text:00023CC8 SUB R4, R4, #1 .text:00023CCC CMP R3, #0 .text:00023CD0 BEQ loc_23DE8 .text:00023CD4 .text:00023CD4 loc_23CD4 ; CODE XREF: __printf_fphex+CE0j .text:00023CD4 CMP R8, #0 .text:00023CD8 LDR R1, [R5],#4 .text:00023CDC BEQ loc_23D10 .text:00023CE0 LDR R0, [R7,#0x58] .text:00023CE4 ADD R2, R0, #0x10 .text:00023CE8 LDMIA R2, {R2,R3} .text:00023CEC CMP R2, R3 .text:00023CF0 BCC loc_23D00 .text:00023CF4 MOV R0, R7 .text:00023CF8 BL __woverflow .text:00023CFC B loc_23D2C .text:00023D00 ; --------------------------------------------------------------------------- .text:00023D00 .text:00023D00 loc_23D00 ; CODE XREF: __printf_fphex+C78j .text:00023D00 STR R1, [R2],#4 .text:00023D04 CMN R1, #1 .text:00023D08 STR R2, [R0,#0x10] .text:00023D0C B loc_23D44 .text:00023D10 ; --------------------------------------------------------------------------- .text:00023D10 .text:00023D10 loc_23D10 ; CODE XREF: __printf_fphex+C64j .text:00023D10 ADD R2, R7, #0x14 .text:00023D14 LDMIA R2, {R2,R3} .text:00023D18 CMP R2, R3 .text:00023D1C BCC loc_23D34 .text:00023D20 MOV R0, R7 .text:00023D24 AND R1, R1, #0xFF .text:00023D28 BL __overflow .text:00023D2C .text:00023D2C loc_23D2C ; CODE XREF: __printf_fphex+C84j .text:00023D2C CMN R0, #1 .text:00023D30 B loc_23D44 .text:00023D34 ; --------------------------------------------------------------------------- .text:00023D34 .text:00023D34 loc_23D34 ; CODE XREF: __printf_fphex+CA4j .text:00023D34 STRB R1, [R2],#1 .text:00023D38 AND R3, R1, #0xFF .text:00023D3C CMN R3, #1 .text:00023D40 STR R2, [R7,#0x14] .text:00023D44 .text:00023D44 loc_23D44 ; CODE XREF: __printf_fphex+C94j .text:00023D44 ; __printf_fphex+CB8j .text:00023D44 BEQ loc_2427C .text:00023D48 ADD R10, R10, #1 .text:00023D4C MOV R3, R4 .text:00023D50 SUB R4, R4, #1 .text:00023D54 CMP R3, #0 .text:00023D58 BNE loc_23CD4 .text:00023D5C B loc_23DE8 .text:00023D60 ; --------------------------------------------------------------------------- .text:00023D60 .text:00023D60 loc_23D60 ; CODE XREF: __printf_fphex+D6Cj .text:00023D60 LDR R3, [R11,#var_FC] .text:00023D64 LDRB R1, [R3],#1 .text:00023D68 CMP R8, #0 .text:00023D6C STR R3, [R11,#var_FC] .text:00023D70 BEQ loc_23DA4 .text:00023D74 LDR R0, [R7,#0x58] .text:00023D78 ADD R2, R0, #0x10 .text:00023D7C LDMIA R2, {R2,R3} .text:00023D80 CMP R2, R3 .text:00023D84 BCC loc_23D94 .text:00023D88 MOV R0, R7 .text:00023D8C BL __woverflow .text:00023D90 B loc_23DBC .text:00023D94 ; --------------------------------------------------------------------------- .text:00023D94 .text:00023D94 loc_23D94 ; CODE XREF: __printf_fphex+D0Cj .text:00023D94 STR R1, [R2],#4 .text:00023D98 CMN R1, #1 .text:00023D9C STR R2, [R0,#0x10] .text:00023DA0 B loc_23DD0 .text:00023DA4 ; --------------------------------------------------------------------------- .text:00023DA4 .text:00023DA4 loc_23DA4 ; CODE XREF: __printf_fphex+CF8j .text:00023DA4 ADD R2, R7, #0x14 .text:00023DA8 LDMIA R2, {R2,R3} .text:00023DAC CMP R2, R3 .text:00023DB0 BCC loc_23DC4 .text:00023DB4 MOV R0, R7 .text:00023DB8 BL __overflow .text:00023DBC .text:00023DBC loc_23DBC ; CODE XREF: __printf_fphex+D18j .text:00023DBC CMN R0, #1 .text:00023DC0 B loc_23DD0 .text:00023DC4 ; --------------------------------------------------------------------------- .text:00023DC4 .text:00023DC4 loc_23DC4 ; CODE XREF: __printf_fphex+D38j .text:00023DC4 STRB R1, [R2],#1 .text:00023DC8 CMN R1, #1 .text:00023DCC STR R2, [R7,#0x14] .text:00023DD0 .text:00023DD0 loc_23DD0 ; CODE XREF: __printf_fphex+D28j .text:00023DD0 ; __printf_fphex+D48j .text:00023DD0 BEQ loc_2427C .text:00023DD4 ADD R10, R10, #1 .text:00023DD8 .text:00023DD8 loc_23DD8 ; CODE XREF: __printf_fphex+C48j .text:00023DD8 MOV R3, R4 .text:00023DDC SUB R4, R4, #1 .text:00023DE0 CMP R3, #0 .text:00023DE4 BNE loc_23D60 .text:00023DE8 .text:00023DE8 loc_23DE8 ; CODE XREF: __printf_fphex+C20j .text:00023DE8 ; __printf_fphex+C58j ... .text:00023DE8 LDR R0, [R11,#var_128] .text:00023DEC CMP R0, #0 .text:00023DF0 BLE loc_23F84 .text:00023DF4 SUB R1, R11, #-var_108 .text:00023DF8 LDMIA R1, {R1,R2} .text:00023DFC RSB R3, R2, R1 .text:00023E00 RSB R4, R3, R0 .text:00023E04 MOV R6, R0 .text:00023E08 CMP R6, R3 .text:00023E0C MOVGE R6, R3 .text:00023E10 CMP R8, #0 .text:00023E14 BEQ loc_23F34 .text:00023E18 MOV R3, R6 .text:00023E1C SUB R6, R6, #1 .text:00023E20 CMP R3, #0 .text:00023E24 BEQ loc_23F44 .text:00023E28 .text:00023E28 loc_23E28 ; CODE XREF: __printf_fphex+E3Cj .text:00023E28 LDR R3, [R11,#var_10C] .text:00023E2C LDR R1, [R3],#4 .text:00023E30 CMP R8, #0 .text:00023E34 STR R3, [R11,#var_10C] .text:00023E38 BEQ loc_23E6C .text:00023E3C LDR R0, [R7,#0x58] .text:00023E40 ADD R2, R0, #0x10 .text:00023E44 LDMIA R2, {R2,R3} .text:00023E48 CMP R2, R3 .text:00023E4C BCC loc_23E5C .text:00023E50 MOV R0, R7 .text:00023E54 BL __woverflow .text:00023E58 B loc_23E88 .text:00023E5C ; --------------------------------------------------------------------------- .text:00023E5C .text:00023E5C loc_23E5C ; CODE XREF: __printf_fphex+DD4j .text:00023E5C STR R1, [R2],#4 .text:00023E60 CMN R1, #1 .text:00023E64 STR R2, [R0,#0x10] .text:00023E68 B loc_23EA0 .text:00023E6C ; --------------------------------------------------------------------------- .text:00023E6C .text:00023E6C loc_23E6C ; CODE XREF: __printf_fphex+DC0j .text:00023E6C ADD R2, R7, #0x14 .text:00023E70 LDMIA R2, {R2,R3} .text:00023E74 CMP R2, R3 .text:00023E78 BCC loc_23E90 .text:00023E7C MOV R0, R7 .text:00023E80 AND R1, R1, #0xFF .text:00023E84 BL __overflow .text:00023E88 .text:00023E88 loc_23E88 ; CODE XREF: __printf_fphex+DE0j .text:00023E88 CMN R0, #1 .text:00023E8C B loc_23EA0 .text:00023E90 ; --------------------------------------------------------------------------- .text:00023E90 .text:00023E90 loc_23E90 ; CODE XREF: __printf_fphex+E00j .text:00023E90 STRB R1, [R2],#1 .text:00023E94 AND R3, R1, #0xFF .text:00023E98 CMN R3, #1 .text:00023E9C STR R2, [R7,#0x14] .text:00023EA0 .text:00023EA0 loc_23EA0 ; CODE XREF: __printf_fphex+DF0j .text:00023EA0 ; __printf_fphex+E14j .text:00023EA0 BEQ loc_2427C .text:00023EA4 ADD R10, R10, #1 .text:00023EA8 MOV R3, R6 .text:00023EAC SUB R6, R6, #1 .text:00023EB0 CMP R3, #0 .text:00023EB4 BNE loc_23E28 .text:00023EB8 B loc_23F44 .text:00023EBC ; --------------------------------------------------------------------------- .text:00023EBC .text:00023EBC loc_23EBC ; CODE XREF: __printf_fphex+EC8j .text:00023EBC LDR R0, [R11,#var_104] .text:00023EC0 LDRB R1, [R0],#1 .text:00023EC4 CMP R8, #0 .text:00023EC8 STR R0, [R11,#var_104] .text:00023ECC BEQ loc_23F00 .text:00023ED0 LDR R0, [R7,#0x58] .text:00023ED4 ADD R2, R0, #0x10 .text:00023ED8 LDMIA R2, {R2,R3} .text:00023EDC CMP R2, R3 .text:00023EE0 BCC loc_23EF0 .text:00023EE4 MOV R0, R7 .text:00023EE8 BL __woverflow .text:00023EEC B loc_23F18 .text:00023EF0 ; --------------------------------------------------------------------------- .text:00023EF0 .text:00023EF0 loc_23EF0 ; CODE XREF: __printf_fphex+E68j .text:00023EF0 STR R1, [R2],#4 .text:00023EF4 CMN R1, #1 .text:00023EF8 STR R2, [R0,#0x10] .text:00023EFC B loc_23F2C .text:00023F00 ; --------------------------------------------------------------------------- .text:00023F00 .text:00023F00 loc_23F00 ; CODE XREF: __printf_fphex+E54j .text:00023F00 ADD R2, R7, #0x14 .text:00023F04 LDMIA R2, {R2,R3} .text:00023F08 CMP R2, R3 .text:00023F0C BCC loc_23F20 .text:00023F10 MOV R0, R7 .text:00023F14 BL __overflow .text:00023F18 .text:00023F18 loc_23F18 ; CODE XREF: __printf_fphex+E74j .text:00023F18 CMN R0, #1 .text:00023F1C B loc_23F2C .text:00023F20 ; --------------------------------------------------------------------------- .text:00023F20 .text:00023F20 loc_23F20 ; CODE XREF: __printf_fphex+E94j .text:00023F20 STRB R1, [R2],#1 .text:00023F24 CMN R1, #1 .text:00023F28 STR R2, [R7,#0x14] .text:00023F2C .text:00023F2C loc_23F2C ; CODE XREF: __printf_fphex+E84j .text:00023F2C ; __printf_fphex+EA4j .text:00023F2C BEQ loc_2427C .text:00023F30 ADD R10, R10, #1 .text:00023F34 .text:00023F34 loc_23F34 ; CODE XREF: __printf_fphex+D9Cj .text:00023F34 MOV R3, R6 .text:00023F38 SUB R6, R6, #1 .text:00023F3C CMP R3, #0 .text:00023F40 BNE loc_23EBC .text:00023F44 .text:00023F44 loc_23F44 ; CODE XREF: __printf_fphex+DACj .text:00023F44 ; __printf_fphex+E40j .text:00023F44 CMP R4, #0 .text:00023F48 BLE loc_23F84 .text:00023F4C CMP R8, #0 .text:00023F50 BEQ loc_23F68 .text:00023F54 MOV R0, R7 .text:00023F58 MOV R1, #0x30 .text:00023F5C MOV R2, R4 .text:00023F60 BL _IO_wpadn .text:00023F64 B loc_23F78 .text:00023F68 ; --------------------------------------------------------------------------- .text:00023F68 .text:00023F68 loc_23F68 ; CODE XREF: __printf_fphex+ED8j .text:00023F68 MOV R0, R7 .text:00023F6C MOV R1, #0x30 .text:00023F70 MOV R2, R4 .text:00023F74 BL _IO_padn .text:00023F78 .text:00023F78 loc_23F78 ; CODE XREF: __printf_fphex+EECj .text:00023F78 CMP R0, R4 .text:00023F7C BNE loc_2427C .text:00023F80 ADD R10, R10, R4 .text:00023F84 .text:00023F84 loc_23F84 ; CODE XREF: __printf_fphex+D78j .text:00023F84 ; __printf_fphex+ED0j .text:00023F84 LDR R1, [R11,#var_F8] .text:00023F88 LDRB R3, [R1,#0xC] .text:00023F8C TST R3, #0x20 .text:00023F90 BEQ loc_23FEC .text:00023F94 LDR R2, [R1,#0x10] .text:00023F98 CMP R9, #0 .text:00023F9C MOVLE R3, #0 .text:00023FA0 MOVGT R3, #1 .text:00023FA4 CMP R2, #0x30 .text:00023FA8 MOVNE R3, #0 .text:00023FAC CMP R3, #0 .text:00023FB0 BEQ loc_23FEC .text:00023FB4 CMP R8, #0 .text:00023FB8 BEQ loc_23FD0 .text:00023FBC MOV R0, R7 .text:00023FC0 MOV R1, #0x30 .text:00023FC4 MOV R2, R9 .text:00023FC8 BL _IO_wpadn .text:00023FCC B loc_23FE0 .text:00023FD0 ; --------------------------------------------------------------------------- .text:00023FD0 .text:00023FD0 loc_23FD0 ; CODE XREF: __printf_fphex+F40j .text:00023FD0 MOV R0, R7 .text:00023FD4 MOV R1, #0x30 .text:00023FD8 MOV R2, R9 .text:00023FDC BL _IO_padn .text:00023FE0 .text:00023FE0 loc_23FE0 ; CODE XREF: __printf_fphex+F54j .text:00023FE0 CMP R0, R9 .text:00023FE4 BNE loc_2427C .text:00023FE8 ADD R10, R10, R9 .text:00023FEC .text:00023FEC loc_23FEC ; CODE XREF: __printf_fphex+F18j .text:00023FEC ; __printf_fphex+F38j .text:00023FEC LDR R2, [R11,#var_F8] .text:00023FF0 LDR R3, [R2,#8] .text:00023FF4 CMP R8, #0 .text:00023FF8 ADD R1, R3, #0xF .text:00023FFC BEQ loc_24030 .text:00024000 LDR R0, [R7,#0x58] .text:00024004 ADD R2, R0, #0x10 .text:00024008 LDMIA R2, {R2,R3} .text:0002400C CMP R2, R3 .text:00024010 BCC loc_24020 .text:00024014 MOV R0, R7 .text:00024018 BL __woverflow .text:0002401C B loc_2404C .text:00024020 ; --------------------------------------------------------------------------- .text:00024020 .text:00024020 loc_24020 ; CODE XREF: __printf_fphex+F98j .text:00024020 STR R1, [R2],#4 .text:00024024 CMN R1, #1 .text:00024028 STR R2, [R0,#0x10] .text:0002402C B loc_24064 .text:00024030 ; --------------------------------------------------------------------------- .text:00024030 .text:00024030 loc_24030 ; CODE XREF: __printf_fphex+F84j .text:00024030 ADD R2, R7, #0x14 .text:00024034 LDMIA R2, {R2,R3} .text:00024038 CMP R2, R3 .text:0002403C BCC loc_24054 .text:00024040 MOV R0, R7 .text:00024044 AND R1, R1, #0xFF .text:00024048 BL __overflow .text:0002404C .text:0002404C loc_2404C ; CODE XREF: __printf_fphex+FA4j .text:0002404C CMN R0, #1 .text:00024050 B loc_24064 .text:00024054 ; --------------------------------------------------------------------------- .text:00024054 .text:00024054 loc_24054 ; CODE XREF: __printf_fphex+FC4j .text:00024054 STRB R1, [R2],#1 .text:00024058 AND R3, R1, #0xFF .text:0002405C CMN R3, #1 .text:00024060 STR R2, [R7,#0x14] .text:00024064 .text:00024064 loc_24064 ; CODE XREF: __printf_fphex+FB4j .text:00024064 ; __printf_fphex+FD8j .text:00024064 BEQ loc_2427C .text:00024068 ADD R10, R10, #1 .text:0002406C LDR R3, [R11,#var_11C] .text:00024070 CMP R3, #0 .text:00024074 MOVEQ R1, #0x2B .text:00024078 MOVNE R1, #0x2D .text:0002407C CMP R8, #0 .text:00024080 BEQ loc_240B4 .text:00024084 LDR R0, [R7,#0x58] .text:00024088 ADD R2, R0, #0x10 .text:0002408C LDMIA R2, {R2,R3} .text:00024090 CMP R2, R3 .text:00024094 BCC loc_240A4 .text:00024098 MOV R0, R7 .text:0002409C BL __woverflow .text:000240A0 B loc_240CC .text:000240A4 ; --------------------------------------------------------------------------- .text:000240A4 .text:000240A4 loc_240A4 ; CODE XREF: __printf_fphex+101Cj .text:000240A4 STR R1, [R2],#4 .text:000240A8 CMN R1, #1 .text:000240AC STR R2, [R0,#0x10] .text:000240B0 B loc_240E0 .text:000240B4 ; --------------------------------------------------------------------------- .text:000240B4 .text:000240B4 loc_240B4 ; CODE XREF: __printf_fphex+1008j .text:000240B4 ADD R2, R7, #0x14 .text:000240B8 LDMIA R2, {R2,R3} .text:000240BC CMP R2, R3 .text:000240C0 BCC loc_240D4 .text:000240C4 MOV R0, R7 .text:000240C8 BL __overflow .text:000240CC .text:000240CC loc_240CC ; CODE XREF: __printf_fphex+1028j .text:000240CC CMN R0, #1 .text:000240D0 B loc_240E0 .text:000240D4 ; --------------------------------------------------------------------------- .text:000240D4 .text:000240D4 loc_240D4 ; CODE XREF: __printf_fphex+1048j .text:000240D4 STRB R1, [R2],#1 .text:000240D8 CMN R1, #1 .text:000240DC STR R2, [R7,#0x14] .text:000240E0 .text:000240E0 loc_240E0 ; CODE XREF: __printf_fphex+1038j .text:000240E0 ; __printf_fphex+1058j .text:000240E0 BEQ loc_2427C .text:000240E4 ADD R10, R10, #1 .text:000240E8 SUB R0, R11, #-var_134 .text:000240EC LDMIA R0, {R0,R1} .text:000240F0 RSB R4, R1, R0 .text:000240F4 CMP R8, #0 .text:000240F8 BEQ loc_24218 .text:000240FC MOV R3, R4 .text:00024100 SUB R4, R4, #1 .text:00024104 CMP R3, #0 .text:00024108 BEQ loc_24228 .text:0002410C .text:0002410C loc_2410C ; CODE XREF: __printf_fphex+1120j .text:0002410C LDR R2, [R11,#var_118] .text:00024110 LDR R1, [R2],#4 .text:00024114 CMP R8, #0 .text:00024118 STR R2, [R11,#var_118] .text:0002411C BEQ loc_24150 .text:00024120 LDR R0, [R7,#0x58] .text:00024124 ADD R2, R0, #0x10 .text:00024128 LDMIA R2, {R2,R3} .text:0002412C CMP R2, R3 .text:00024130 BCC loc_24140 .text:00024134 MOV R0, R7 .text:00024138 BL __woverflow .text:0002413C B loc_2416C .text:00024140 ; --------------------------------------------------------------------------- .text:00024140 .text:00024140 loc_24140 ; CODE XREF: __printf_fphex+10B8j .text:00024140 STR R1, [R2],#4 .text:00024144 CMN R1, #1 .text:00024148 STR R2, [R0,#0x10] .text:0002414C B loc_24184 .text:00024150 ; --------------------------------------------------------------------------- .text:00024150 .text:00024150 loc_24150 ; CODE XREF: __printf_fphex+10A4j .text:00024150 ADD R2, R7, #0x14 .text:00024154 LDMIA R2, {R2,R3} .text:00024158 CMP R2, R3 .text:0002415C BCC loc_24174 .text:00024160 MOV R0, R7 .text:00024164 AND R1, R1, #0xFF .text:00024168 BL __overflow .text:0002416C .text:0002416C loc_2416C ; CODE XREF: __printf_fphex+10C4j .text:0002416C CMN R0, #1 .text:00024170 B loc_24184 .text:00024174 ; --------------------------------------------------------------------------- .text:00024174 .text:00024174 loc_24174 ; CODE XREF: __printf_fphex+10E4j .text:00024174 STRB R1, [R2],#1 .text:00024178 AND R3, R1, #0xFF .text:0002417C CMN R3, #1 .text:00024180 STR R2, [R7,#0x14] .text:00024184 .text:00024184 loc_24184 ; CODE XREF: __printf_fphex+10D4j .text:00024184 ; __printf_fphex+10F8j .text:00024184 BEQ loc_2427C .text:00024188 ADD R10, R10, #1 .text:0002418C MOV R3, R4 .text:00024190 SUB R4, R4, #1 .text:00024194 CMP R3, #0 .text:00024198 BNE loc_2410C .text:0002419C B loc_24228 .text:000241A0 ; --------------------------------------------------------------------------- .text:000241A0 .text:000241A0 loc_241A0 ; CODE XREF: __printf_fphex+11ACj .text:000241A0 LDR R3, [R11,#var_114] .text:000241A4 LDRB R1, [R3],#1 .text:000241A8 CMP R8, #0 .text:000241AC STR R3, [R11,#var_114] .text:000241B0 BEQ loc_241E4 .text:000241B4 LDR R0, [R7,#0x58] .text:000241B8 ADD R2, R0, #0x10 .text:000241BC LDMIA R2, {R2,R3} .text:000241C0 CMP R2, R3 .text:000241C4 BCC loc_241D4 .text:000241C8 MOV R0, R7 .text:000241CC BL __woverflow .text:000241D0 B loc_241FC .text:000241D4 ; --------------------------------------------------------------------------- .text:000241D4 .text:000241D4 loc_241D4 ; CODE XREF: __printf_fphex+114Cj .text:000241D4 STR R1, [R2],#4 .text:000241D8 CMN R1, #1 .text:000241DC STR R2, [R0,#0x10] .text:000241E0 B loc_24210 .text:000241E4 ; --------------------------------------------------------------------------- .text:000241E4 .text:000241E4 loc_241E4 ; CODE XREF: __printf_fphex+1138j .text:000241E4 ADD R2, R7, #0x14 .text:000241E8 LDMIA R2, {R2,R3} .text:000241EC CMP R2, R3 .text:000241F0 BCC loc_24204 .text:000241F4 MOV R0, R7 .text:000241F8 BL __overflow .text:000241FC .text:000241FC loc_241FC ; CODE XREF: __printf_fphex+1158j .text:000241FC CMN R0, #1 .text:00024200 B loc_24210 .text:00024204 ; --------------------------------------------------------------------------- .text:00024204 .text:00024204 loc_24204 ; CODE XREF: __printf_fphex+1178j .text:00024204 STRB R1, [R2],#1 .text:00024208 CMN R1, #1 .text:0002420C STR R2, [R7,#0x14] .text:00024210 .text:00024210 loc_24210 ; CODE XREF: __printf_fphex+1168j .text:00024210 ; __printf_fphex+1188j .text:00024210 BEQ loc_2427C .text:00024214 ADD R10, R10, #1 .text:00024218 .text:00024218 loc_24218 ; CODE XREF: __printf_fphex+1080j .text:00024218 MOV R3, R4 .text:0002421C SUB R4, R4, #1 .text:00024220 CMP R3, #0 .text:00024224 BNE loc_241A0 .text:00024228 .text:00024228 loc_24228 ; CODE XREF: __printf_fphex+1090j .text:00024228 ; __printf_fphex+1124j .text:00024228 LDR R0, [R11,#var_F8] .text:0002422C LDRB R3, [R0,#0xC] .text:00024230 TST R3, #0x20 .text:00024234 BEQ loc_24288 .text:00024238 LDR R1, [R0,#0x10] .text:0002423C CMP R1, #0x30 .text:00024240 CMPNE R9, #0 .text:00024244 BLE loc_24288 .text:00024248 CMP R8, #0 .text:0002424C BEQ loc_24268 .text:00024250 MOV R0, R7 .text:00024254 MOV R2, R9 .text:00024258 BL _IO_wpadn .text:0002425C CMP R0, R9 .text:00024260 BNE loc_2427C .text:00024264 B loc_24284 .text:00024268 ; --------------------------------------------------------------------------- .text:00024268 .text:00024268 loc_24268 ; CODE XREF: __printf_fphex+11D4j .text:00024268 MOV R0, R7 .text:0002426C MOV R2, R9 .text:00024270 BL _IO_padn .text:00024274 CMP R0, R9 .text:00024278 BEQ loc_24284 .text:0002427C .text:0002427C loc_2427C ; CODE XREF: __printf_fphex+1E8j .text:0002427C ; __printf_fphex+244j ... .text:0002427C MOV R0, 0xFFFFFFFF .text:00024280 B locret_2428C .text:00024284 ; --------------------------------------------------------------------------- .text:00024284 .text:00024284 loc_24284 ; CODE XREF: __printf_fphex+11ECj .text:00024284 ; __printf_fphex+1200j .text:00024284 ADD R10, R10, R9 .text:00024288 .text:00024288 loc_24288 ; CODE XREF: __printf_fphex+44Cj .text:00024288 ; __printf_fphex+488j ... .text:00024288 MOV R0, R10 .text:0002428C .text:0002428C locret_2428C ; CODE XREF: __printf_fphex+1208j .text:0002428C LDMDB R11, {R4-R11,SP,PC} .text:0002428C ; End of function __printf_fphex .text:0002428C .text:00024290 .text:00024290 ; =============== S U B R O U T I N E ======================================= .text:00024290 .text:00024290 ; Attributes: bp-based frame .text:00024290 .text:00024290 EXPORT fprintf .text:00024290 fprintf ; CODE XREF: perror+B0p .text:00024290 ; __malloc_check_init+7Cp ... .text:00024290 .text:00024290 varg_r1 = 4 .text:00024290 varg_r2 = 8 .text:00024290 varg_r3 = 0xC .text:00024290 .text:00024290 MOV R12, SP ; Alternative name is '_IO_fprintf' .text:00024294 STMFD SP!, {R1-R3} .text:00024298 STMFD SP!, {R11,R12,LR,PC} .text:0002429C SUB R11, R12, #0x10 .text:000242A0 LDR R1, [R11,#varg_r1] .text:000242A4 ADD R2, R11, #8 .text:000242A8 BL vfprintf .text:000242AC LDMDB R11, {R11,SP,PC} .text:000242AC ; End of function fprintf .text:000242AC .text:000242B0 .text:000242B0 ; =============== S U B R O U T I N E ======================================= .text:000242B0 .text:000242B0 ; Attributes: bp-based frame .text:000242B0 .text:000242B0 EXPORT _IO_vfscanf .text:000242B0 _IO_vfscanf ; CODE XREF: vsscanf+70p .text:000242B0 ; vfscanf+10p .text:000242B0 .text:000242B0 var_520 = -0x520 .text:000242B0 var_51C = -0x51C .text:000242B0 var_118 = -0x118 .text:000242B0 var_114 = -0x114 .text:000242B0 var_110 = -0x110 .text:000242B0 var_10C = -0x10C .text:000242B0 var_108 = -0x108 .text:000242B0 var_104 = -0x104 .text:000242B0 var_100 = -0x100 .text:000242B0 var_FC = -0xFC .text:000242B0 var_F8 = -0xF8 .text:000242B0 var_F4 = -0xF4 .text:000242B0 var_F0 = -0xF0 .text:000242B0 var_EC = -0xEC .text:000242B0 var_E8 = -0xE8 .text:000242B0 var_E4 = -0xE4 .text:000242B0 var_E0 = -0xE0 .text:000242B0 var_DC = -0xDC .text:000242B0 var_D8 = -0xD8 .text:000242B0 var_D4 = -0xD4 .text:000242B0 var_D0 = -0xD0 .text:000242B0 var_CC = -0xCC .text:000242B0 var_C8 = -0xC8 .text:000242B0 var_C4 = -0xC4 .text:000242B0 var_C0 = -0xC0 .text:000242B0 var_BC = -0xBC .text:000242B0 var_B8 = -0xB8 .text:000242B0 var_B4 = -0xB4 .text:000242B0 var_B0 = -0xB0 .text:000242B0 var_AC = -0xAC .text:000242B0 var_A8 = -0xA8 .text:000242B0 var_A4 = -0xA4 .text:000242B0 var_A0 = -0xA0 .text:000242B0 var_9C = -0x9C .text:000242B0 var_98 = -0x98 .text:000242B0 var_94 = -0x94 .text:000242B0 var_8C = -0x8C .text:000242B0 var_88 = -0x88 .text:000242B0 var_80 = -0x80 .text:000242B0 var_78 = -0x78 .text:000242B0 var_70 = -0x70 .text:000242B0 var_48 = -0x48 .text:000242B0 var_38 = -0x38 .text:000242B0 .text:000242B0 MOV R12, SP .text:000242B4 STMFD SP!, {R4-R12,LR,PC} .text:000242B8 SUB R11, R12, #4 .text:000242BC MOV R6, R1 .text:000242C0 SUB SP, SP, #0xF0 .text:000242C4 STR R6, [R11,#var_A4] .text:000242C8 MOV R1, #0 .text:000242CC STR R1, [R11,#var_A8] .text:000242D0 STR R1, [R11,#var_AC] .text:000242D4 MOV R10, R1 .text:000242D8 STR R10, [R11,#var_D8] .text:000242DC STR R10, [R11,#var_DC] .text:000242E0 STR R10, [R11,#var_E0] .text:000242E4 STR R10, [R11,#var_E4] .text:000242E8 STR R10, [R11,#var_E8] .text:000242EC STR R10, [R11,#var_F0] .text:000242F0 STR R10, [R11,#var_F4] .text:000242F4 STR R2, [R11,#var_98] .text:000242F8 LDR R12, [R11,#var_98] .text:000242FC MOV R7, R0 .text:00024300 LDRB R2, [R7,#0x46] .text:00024304 STR R12, [R11,#var_A0] .text:00024308 STR R3, [R11,#var_9C] .text:0002430C CMP R2, R1 .text:00024310 BNE loc_24344 .text:00024314 LDR R3, [R7,#0x5C] .text:00024318 MOV R2, 0xFFFFFFFF .text:0002431C CMP R3, R1 .text:00024320 STREQ R2, [R7,#0x5C] .text:00024324 LDR R2, [R7,#0x5C] .text:00024328 CMN R2, #1 .text:0002432C BEQ loc_24344 .text:00024330 MOV R0, 0xFFFFFFFF .text:00024334 B loc_28F44 .text:00024338 ; --------------------------------------------------------------------------- .text:00024338 .text:00024338 loc_24338 ; CODE XREF: _IO_vfscanf+9Cj .text:00024338 BL __errno_location .text:0002433C MOV R3, #9 .text:00024340 B loc_24360 .text:00024344 ; --------------------------------------------------------------------------- .text:00024344 .text:00024344 loc_24344 ; CODE XREF: _IO_vfscanf+60j .text:00024344 ; _IO_vfscanf+7Cj .text:00024344 LDR R3, [R7] .text:00024348 ANDS R5, R3, #4 .text:0002434C BNE loc_24338 .text:00024350 CMP R6, #0 .text:00024354 BNE loc_2436C .text:00024358 BL __errno_location .text:0002435C MOV R3, #0x16 .text:00024360 .text:00024360 loc_24360 ; CODE XREF: _IO_vfscanf+90j .text:00024360 STR R3, [R0] .text:00024364 MOV R0, 0xFFFFFFFF .text:00024368 B loc_28F44 .text:0002436C ; --------------------------------------------------------------------------- .text:0002436C .text:0002436C loc_2436C ; CODE XREF: _IO_vfscanf+A4j .text:0002436C LDR R3, =_nl_current_LC_NUMERIC .text:00024370 LDR R2, [R3] .text:00024374 LDR LR, [R2,#0x24] .text:00024378 LDRB R3, [LR] .text:0002437C LDR R12, =0 .text:00024380 CMP R3, #0 .text:00024384 MOVEQ LR, #0 .text:00024388 STR LR, [R11,#var_CC] .text:0002438C SUBS R0, R12, #0 .text:00024390 MOVNE R0, #1 .text:00024394 STR R0, [R11,#var_FC] .text:00024398 LDR R2, [R2,#0x20] .text:0002439C CMP R0, #0 .text:000243A0 STR R2, [R11,#var_C8] .text:000243A4 BEQ loc_243BC .text:000243A8 SUB R0, R11, #-var_38 .text:000243AC LDR R1, =funlockfile .text:000243B0 MOV R2, R7 .text:000243B4 MOV LR, PC .text:000243B8 MOV PC, R12 .text:000243BC .text:000243BC loc_243BC ; CODE XREF: _IO_vfscanf+F4j .text:000243BC LDR R3, [R7] .text:000243C0 TST R3, #0x8000 .text:000243C4 BNE loc_243D0 .text:000243C8 MOV R0, R7 .text:000243CC BL flockfile .text:000243D0 .text:000243D0 loc_243D0 ; CODE XREF: _IO_vfscanf+114j .text:000243D0 SUB R4, R11, #-var_78 .text:000243D4 MOV R0, R4 .text:000243D8 MOV R1, R5 .text:000243DC MOV R2, #8 .text:000243E0 BL memset .text:000243E4 LDRB R3, [R6] .text:000243E8 CMP R3, #0 .text:000243EC BEQ loc_28EA8 .text:000243F0 MOV R1, 0x17F .text:000243F8 STR R1, [R11,#var_104] .text:000243FC .text:000243FC loc_243FC ; CODE XREF: _IO_vfscanf+4BF4j .text:000243FC LDR R2, [R11,#var_A4] .text:00024400 LDRB R3, [R2] .text:00024404 TST R3, #0x80 .text:00024408 BEQ loc_244DC .text:0002440C MOV R0, R2 .text:00024410 BL strlen .text:00024414 MOV R1, R0 .text:00024418 LDR R0, [R11,#var_A4] .text:0002441C SUB R2, R11, #-var_78 .text:00024420 BL mbrlen .text:00024424 SUBS R4, R0, #0 .text:00024428 BLE loc_244DC .text:0002442C .text:0002442C loc_2442C ; CODE XREF: _IO_vfscanf+224j .text:0002442C CMN R10, #1 .text:00024430 BEQ loc_24468 .text:00024434 LDMIB R7, {R2,R3} .text:00024438 CMP R2, R3 .text:0002443C BCC loc_24450 .text:00024440 MOV R0, R7 .text:00024444 BL __uflow .text:00024448 MOV R10, R0 .text:0002444C B loc_24458 .text:00024450 ; --------------------------------------------------------------------------- .text:00024450 .text:00024450 loc_24450 ; CODE XREF: _IO_vfscanf+18Cj .text:00024450 LDRB R10, [R2],#1 .text:00024454 STR R2, [R7,#4] .text:00024458 .text:00024458 loc_24458 ; CODE XREF: _IO_vfscanf+19Cj .text:00024458 CMN R10, #1 .text:0002445C LDRNE R3, [R11,#var_AC] .text:00024460 ADDNE R3, R3, #1 .text:00024464 STRNE R3, [R11,#var_AC] .text:00024468 .text:00024468 loc_24468 ; CODE XREF: _IO_vfscanf+180j .text:00024468 MOV R1, R10 .text:0002446C CMN R10, #1 .text:00024470 BEQ loc_28BB0 .text:00024474 LDR R2, [R11,#var_A4] .text:00024478 LDRB R3, [R2],#1 .text:0002447C CMP R1, R3 .text:00024480 STR R2, [R11,#var_A4] .text:00024484 BEQ loc_244CC .text:00024488 MOV R0, R7 .text:0002448C AND R1, R1, #0xFF .text:00024490 BL _IO_sputbackc .text:00024494 LDR R3, [R11,#var_9C] .text:00024498 CMP R3, #0 .text:0002449C LDRNE R3, [R3] .text:000244A0 LDRNE R12, [R11,#var_9C] .text:000244A4 ORRNE R3, R3, #2 .text:000244A8 STRNE R3, [R12] .text:000244AC LDR R3, [R7] .text:000244B0 TST R3, #0x8000 .text:000244B4 BNE loc_244C0 .text:000244B8 MOV R0, R7 .text:000244BC BL funlockfile .text:000244C0 .text:000244C0 loc_244C0 ; CODE XREF: _IO_vfscanf+204j .text:000244C0 LDR LR, [R11,#var_FC] .text:000244C4 CMP LR, #0 .text:000244C8 B loc_28F30 .text:000244CC ; --------------------------------------------------------------------------- .text:000244CC .text:000244CC loc_244CC ; CODE XREF: _IO_vfscanf+1D4j .text:000244CC SUB R4, R4, #1 .text:000244D0 CMP R4, #0 .text:000244D4 BGT loc_2442C .text:000244D8 B loc_28E98 .text:000244DC ; --------------------------------------------------------------------------- .text:000244DC .text:000244DC loc_244DC ; CODE XREF: _IO_vfscanf+158j .text:000244DC ; _IO_vfscanf+178j .text:000244DC LDR R0, [R11,#var_A4] .text:000244E0 LDRB R4, [R0],#1 .text:000244E4 CMP R4, #0x25 .text:000244E8 STR R0, [R11,#var_A4] .text:000244EC BEQ loc_246B0 .text:000244F0 LDR R0, =__ctype_b .text:000244F4 LDR R2, [R0] .text:000244F8 MOV R3, R4,LSL#1 .text:000244FC ADD R3, R3, R2 .text:00024500 LDRB R1, [R3,#1] .text:00024504 TST R1, #0x20 .text:00024508 MOVNE R1, #1 .text:0002450C STRNE R1, [R11,#var_E8] .text:00024510 BNE loc_28E98 .text:00024514 CMN R10, #1 .text:00024518 BEQ loc_24550 .text:0002451C LDMIB R7, {R2,R3} .text:00024520 CMP R2, R3 .text:00024524 BCC loc_24538 .text:00024528 MOV R0, R7 .text:0002452C BL __uflow .text:00024530 MOV R10, R0 .text:00024534 B loc_24540 .text:00024538 ; --------------------------------------------------------------------------- .text:00024538 .text:00024538 loc_24538 ; CODE XREF: _IO_vfscanf+274j .text:00024538 LDRB R10, [R2],#1 .text:0002453C STR R2, [R7,#4] .text:00024540 .text:00024540 loc_24540 ; CODE XREF: _IO_vfscanf+284j .text:00024540 CMN R10, #1 .text:00024544 LDRNE R2, [R11,#var_AC] .text:00024548 ADDNE R2, R2, #1 .text:0002454C STRNE R2, [R11,#var_AC] .text:00024550 .text:00024550 loc_24550 ; CODE XREF: _IO_vfscanf+268j .text:00024550 MOV R2, R10 .text:00024554 CMN R10, #1 .text:00024558 BNE loc_24588 .text:0002455C LDR R3, [R7] .text:00024560 TST R3, #0x8000 .text:00024564 BNE loc_24570 .text:00024568 MOV R0, R7 .text:0002456C BL funlockfile .text:00024570 .text:00024570 loc_24570 ; CODE XREF: _IO_vfscanf+2B4j .text:00024570 LDR R3, [R11,#var_9C] .text:00024574 CMP R3, #0 .text:00024578 BEQ loc_28BDC .text:0002457C LDR R3, [R3] .text:00024580 LDR R12, [R11,#var_9C] .text:00024584 B loc_28BD4 .text:00024588 ; --------------------------------------------------------------------------- .text:00024588 .text:00024588 loc_24588 ; CODE XREF: _IO_vfscanf+2A8j .text:00024588 LDR R1, [R11,#var_E8] .text:0002458C CMP R1, #0 .text:00024590 BEQ loc_24650 .text:00024594 LDR R12, =__ctype_b .text:00024598 LDR R3, [R12] .text:0002459C MOV R2, R2,LSL#1 .text:000245A0 B loc_24638 .text:000245A4 ; --------------------------------------------------------------------------- .text:000245A4 .text:000245A4 loc_245A4 ; CODE XREF: _IO_vfscanf+394j .text:000245A4 CMN R10, #1 .text:000245A8 BEQ loc_245E8 .text:000245AC LDMIB R7, {R2,R3} .text:000245B0 CMP R2, R3 .text:000245B4 BCC loc_245C8 .text:000245B8 MOV R0, R7 .text:000245BC BL __uflow .text:000245C0 MOV R10, R0 .text:000245C4 B loc_245D0 .text:000245C8 ; --------------------------------------------------------------------------- .text:000245C8 .text:000245C8 loc_245C8 ; CODE XREF: _IO_vfscanf+304j .text:000245C8 LDRB R10, [R2],#1 .text:000245CC STR R2, [R7,#4] .text:000245D0 .text:000245D0 loc_245D0 ; CODE XREF: _IO_vfscanf+314j .text:000245D0 CMN R10, #1 .text:000245D4 LDRNE LR, [R11,#var_AC] .text:000245D8 ADDNE LR, LR, #1 .text:000245DC STRNE LR, [R11,#var_AC] .text:000245E0 CMN R10, #1 .text:000245E4 BNE loc_2462C .text:000245E8 .text:000245E8 loc_245E8 ; CODE XREF: _IO_vfscanf+2F8j .text:000245E8 BL __errno_location .text:000245EC LDR R3, [R0] .text:000245F0 CMP R3, #4 .text:000245F4 BNE loc_2462C .text:000245F8 LDR R0, [R11,#var_9C] .text:000245FC CMP R0, #0 .text:00024600 LDRNE R3, [R0] .text:00024604 ORRNE R3, R3, #2 .text:00024608 STRNE R3, [R0] .text:0002460C LDR R3, [R7] .text:00024610 TST R3, #0x8000 .text:00024614 BNE loc_24620 .text:00024618 MOV R0, R7 .text:0002461C BL funlockfile .text:00024620 .text:00024620 loc_24620 ; CODE XREF: _IO_vfscanf+364j .text:00024620 LDR R1, [R11,#var_FC] .text:00024624 CMP R1, #0 .text:00024628 B loc_28F30 .text:0002462C ; --------------------------------------------------------------------------- .text:0002462C .text:0002462C loc_2462C ; CODE XREF: _IO_vfscanf+334j .text:0002462C ; _IO_vfscanf+344j .text:0002462C LDR R2, =__ctype_b .text:00024630 LDR R3, [R2] .text:00024634 MOV R2, R10,LSL#1 .text:00024638 .text:00024638 loc_24638 ; CODE XREF: _IO_vfscanf+2F0j .text:00024638 ADD R2, R2, R3 .text:0002463C LDRB R1, [R2,#1] .text:00024640 TST R1, #0x20 .text:00024644 BNE loc_245A4 .text:00024648 MOV R3, #0 .text:0002464C STR R3, [R11,#var_E8] .text:00024650 .text:00024650 loc_24650 ; CODE XREF: _IO_vfscanf+2E0j .text:00024650 CMP R10, R4 .text:00024654 BEQ loc_28E98 .text:00024658 CMN R10, #1 .text:0002465C BEQ loc_2466C .text:00024660 MOV R0, R7 .text:00024664 AND R1, R10, #0xFF .text:00024668 BL _IO_sputbackc .text:0002466C .text:0002466C loc_2466C ; CODE XREF: _IO_vfscanf+3ACj .text:0002466C LDR R12, [R11,#var_9C] .text:00024670 CMP R12, #0 .text:00024674 LDRNE R3, [R12] .text:00024678 ORRNE R3, R3, #2 .text:0002467C STRNE R3, [R12] .text:00024680 LDR R3, [R7] .text:00024684 TST R3, #0x8000 .text:00024688 BNE loc_24694 .text:0002468C MOV R0, R7 .text:00024690 BL funlockfile .text:00024694 .text:00024694 loc_24694 ; CODE XREF: _IO_vfscanf+3D8j .text:00024694 LDR LR, [R11,#var_FC] .text:00024698 CMP LR, #0 .text:0002469C B loc_28F30 .text:0002469C ; --------------------------------------------------------------------------- .text:000246A0 off_246A0 DCD _nl_current_LC_NUMERIC .text:000246A0 ; DATA XREF: _IO_vfscanf:loc_2436Cr .text:000246A4 off_246A4 DCD 0 ; DATA XREF: _IO_vfscanf+CCr .text:000246A8 off_246A8 DCD funlockfile ; DATA XREF: _IO_vfscanf+FCr .text:000246AC off_246AC DCD __ctype_b ; DATA XREF: _IO_vfscanf+240r .text:000246AC ; _IO_vfscanf+2E4r ... .text:000246B0 ; --------------------------------------------------------------------------- .text:000246B0 .text:000246B0 loc_246B0 ; CODE XREF: _IO_vfscanf+23Cj .text:000246B0 MOV R0, #0 .text:000246B4 STR R0, [R11,#var_EC] .text:000246B8 STR R0, [R11,#var_B4] .text:000246BC LDR R1, [R11,#var_A4] .text:000246C0 LDR R2, [R11,#var_EC] .text:000246C4 LDRB R0, [R1] .text:000246C8 STR R2, [R11,#var_100] .text:000246CC STR R2, [R11,#var_F8] .text:000246D0 LDR R3, =__ctype_b .text:000246D4 LDR R12, [R3] .text:000246D8 MOV R2, R0,LSL#1 .text:000246DC ADD R2, R2, R12 .text:000246E0 LDRB R1, [R2,#1] .text:000246E4 TST R1, #8 .text:000246E8 BEQ loc_2478C .text:000246EC LDR R3, [R11,#var_A4] .text:000246F0 LDRB R1, [R3,#1]! .text:000246F4 STR R3, [R11,#var_A4] .text:000246F8 MOV R3, R1,LSL#1 .text:000246FC ADD R3, R3, R12 .text:00024700 LDRB R2, [R3,#1] .text:00024704 SUB R0, R0, #0x30 .text:00024708 STR R0, [R11,#var_100] .text:0002470C TST R2, #8 .text:00024710 BEQ loc_24750 .text:00024714 MOV R0, R12 .text:00024718 .text:00024718 loc_24718 ; CODE XREF: _IO_vfscanf+49Cj .text:00024718 LDR R12, [R11,#var_100] .text:0002471C ADD R3, R12, R12,LSL#2 .text:00024720 MOV R3, R3,LSL#1 .text:00024724 SUB R3, R3, #0x30 .text:00024728 ADD R3, R3, R1 .text:0002472C STR R3, [R11,#var_100] .text:00024730 LDR LR, [R11,#var_A4] .text:00024734 LDRB R1, [LR,#1]! .text:00024738 STR LR, [R11,#var_A4] .text:0002473C MOV R3, R1,LSL#1 .text:00024740 ADD R3, R3, R0 .text:00024744 LDRB R2, [R3,#1] .text:00024748 TST R2, #8 .text:0002474C BNE loc_24718 .text:00024750 .text:00024750 loc_24750 ; CODE XREF: _IO_vfscanf+460j .text:00024750 LDR R0, [R11,#var_A4] .text:00024754 LDRB R3, [R0] .text:00024758 CMP R3, #0x24 .text:0002475C BEQ loc_24780 .text:00024760 LDR R1, [R11,#var_100] .text:00024764 LDR R2, [R11,#var_EC] .text:00024768 STR R1, [R11,#var_B0] .text:0002476C ORR R2, R2, #0x40 .text:00024770 STR R2, [R11,#var_B4] .text:00024774 MOV R3, #0 .text:00024778 STR R3, [R11,#var_100] .text:0002477C B loc_2488C .text:00024780 ; --------------------------------------------------------------------------- .text:00024780 .text:00024780 loc_24780 ; CODE XREF: _IO_vfscanf+4ACj .text:00024780 LDR R12, [R11,#var_A4] .text:00024784 ADD R12, R12, #1 .text:00024788 STR R12, [R11,#var_A4] .text:0002478C .text:0002478C loc_2478C ; CODE XREF: _IO_vfscanf+438j .text:0002478C LDR LR, [R11,#var_A4] .text:00024790 LDRB R3, [LR] .text:00024794 B loc_247FC .text:00024798 ; --------------------------------------------------------------------------- .text:00024798 .text:00024798 loc_24798 ; CODE XREF: _IO_vfscanf+554j .text:00024798 ; _IO_vfscanf+55Cj .text:00024798 LDR R0, [R11,#var_A4] .text:0002479C LDRB R3, [R0],#1 .text:000247A0 CMP R3, #0x2A .text:000247A4 STR R0, [R11,#var_A4] .text:000247A8 BEQ loc_247C8 .text:000247AC BGT loc_247BC .text:000247B0 CMP R3, #0x27 .text:000247B4 BEQ loc_247D8 .text:000247B8 B loc_247F4 .text:000247BC ; --------------------------------------------------------------------------- .text:000247BC .text:000247BC loc_247BC ; CODE XREF: _IO_vfscanf+4FCj .text:000247BC CMP R3, #0x49 .text:000247C0 BEQ loc_247E8 .text:000247C4 B loc_247F4 .text:000247C8 ; --------------------------------------------------------------------------- .text:000247C8 .text:000247C8 loc_247C8 ; CODE XREF: _IO_vfscanf+4F8j .text:000247C8 LDR R1, [R11,#var_B4] .text:000247CC ORR R1, R1, #8 .text:000247D0 STR R1, [R11,#var_B4] .text:000247D4 B loc_247F4 .text:000247D8 ; --------------------------------------------------------------------------- .text:000247D8 .text:000247D8 loc_247D8 ; CODE XREF: _IO_vfscanf+504j .text:000247D8 LDR R2, [R11,#var_B4] .text:000247DC ORR R2, R2, #0x80 .text:000247E0 STR R2, [R11,#var_B4] .text:000247E4 B loc_247F4 .text:000247E8 ; --------------------------------------------------------------------------- .text:000247E8 .text:000247E8 loc_247E8 ; CODE XREF: _IO_vfscanf+510j .text:000247E8 LDR R3, [R11,#var_B4] .text:000247EC ORR R3, R3, #0x400 .text:000247F0 STR R3, [R11,#var_B4] .text:000247F4 .text:000247F4 loc_247F4 ; CODE XREF: _IO_vfscanf+508j .text:000247F4 ; _IO_vfscanf+514j ... .text:000247F4 LDR R12, [R11,#var_A4] .text:000247F8 LDRB R3, [R12] .text:000247FC .text:000247FC loc_247FC ; CODE XREF: _IO_vfscanf+4E4j .text:000247FC CMP R3, #0x27 .text:00024800 CMPNE R3, #0x2A .text:00024804 BEQ loc_24798 .text:00024808 CMP R3, #0x49 .text:0002480C BEQ loc_24798 .text:00024810 LDR LR, [R11,#var_A4] .text:00024814 LDR R2, =__ctype_b .text:00024818 LDR R12, [R11,#var_B4] .text:0002481C LDRB R1, [LR] .text:00024820 LDR R0, [R2] .text:00024824 MOV R3, R1,LSL#1 .text:00024828 ADD R3, R3, R0 .text:0002482C LDRB R2, [R3,#1] .text:00024830 MOV R3, #0 .text:00024834 STR R3, [R11,#var_B0] .text:00024838 MOV R2, R2,LSL#8 .text:0002483C AND R2, R2, #0x800 .text:00024840 CMP R2, R3 .text:00024844 ORR R3, R12, #0x40 .text:00024848 MOVNE R12, R3 .text:0002484C STR R12, [R11,#var_B4] .text:00024850 BEQ loc_2488C .text:00024854 .text:00024854 loc_24854 ; CODE XREF: _IO_vfscanf+5D8j .text:00024854 LDR LR, [R11,#var_B0] .text:00024858 ADD R3, LR, LR,LSL#2 .text:0002485C MOV R3, R3,LSL#1 .text:00024860 SUB R2, R3, #0x30 .text:00024864 ADD R2, R2, R1 .text:00024868 STR R2, [R11,#var_B0] .text:0002486C LDR R2, [R11,#var_A4] .text:00024870 LDRB R1, [R2,#1]! .text:00024874 STR R2, [R11,#var_A4] .text:00024878 MOV R3, R1,LSL#1 .text:0002487C ADD R3, R3, R0 .text:00024880 LDRB R2, [R3,#1] .text:00024884 TST R2, #8 .text:00024888 BNE loc_24854 .text:0002488C .text:0002488C loc_2488C ; CODE XREF: _IO_vfscanf+4CCj .text:0002488C ; _IO_vfscanf+5A0j .text:0002488C LDR R3, [R11,#var_B0] .text:00024890 LDR R12, [R11,#var_A4] .text:00024894 LDR LR, [R11,#var_B0] .text:00024898 CMP R3, #0 .text:0002489C LDRB R3, [R12],#1 .text:000248A0 MOVEQ LR, 0xFFFFFFFF .text:000248A4 STR LR, [R11,#var_B0] .text:000248A8 STR R12, [R11,#var_A4] .text:000248AC SUB R3, R3, #0x4C .text:000248B0 CMP R3, #0x2E ; switch 47 cases .text:000248B4 LDRLS PC, [PC,R3,LSL#2] ; switch jump .text:000248B8 B loc_24A40 ; jumptable 000248B4 default case .text:000248B8 ; --------------------------------------------------------------------------- .text:000248BC DCD loc_249E8 ; jump table for switch statement .text:000248BC DCD loc_24A40 .text:000248BC DCD loc_24A40 .text:000248BC DCD loc_24A40 .text:000248BC DCD loc_24A40 .text:000248BC DCD loc_24A40 .text:000248BC DCD loc_24A40 .text:000248BC DCD loc_24A40 .text:000248BC DCD loc_24A40 .text:000248BC DCD loc_24A40 .text:000248BC DCD loc_24A40 .text:000248BC DCD loc_24A40 .text:000248BC DCD loc_24A40 .text:000248BC DCD loc_24A40 .text:000248BC DCD loc_24A40 .text:000248BC DCD loc_24A40 .text:000248BC DCD loc_24A40 .text:000248BC DCD loc_24A40 .text:000248BC DCD loc_24A40 .text:000248BC DCD loc_24A40 .text:000248BC DCD loc_24A40 .text:000248BC DCD loc_249F8 .text:000248BC DCD loc_24A40 .text:000248BC DCD loc_24A40 .text:000248BC DCD loc_24A40 .text:000248BC DCD loc_24A40 .text:000248BC DCD loc_24A40 .text:000248BC DCD loc_24A40 .text:000248BC DCD loc_24978 .text:000248BC DCD loc_24A40 .text:000248BC DCD loc_24A2C .text:000248BC DCD loc_24A40 .text:000248BC DCD loc_249B0 .text:000248BC DCD loc_24A40 .text:000248BC DCD loc_24A40 .text:000248BC DCD loc_24A40 .text:000248BC DCD loc_24A40 .text:000248BC DCD loc_249E8 .text:000248BC DCD loc_24A40 .text:000248BC DCD loc_24A40 .text:000248BC DCD loc_24A4C .text:000248BC DCD loc_24A40 .text:000248BC DCD loc_24A40 .text:000248BC DCD loc_24A40 .text:000248BC DCD loc_24A40 .text:000248BC DCD loc_24A40 .text:000248BC DCD loc_24A4C .text:00024978 ; --------------------------------------------------------------------------- .text:00024978 .text:00024978 loc_24978 ; CODE XREF: _IO_vfscanf+604j .text:00024978 ; DATA XREF: _IO_vfscanf+60Co .text:00024978 LDR R0, [R11,#var_A4] ; jumptable 000248B4 case 28 .text:0002497C LDRB R3, [R0] .text:00024980 CMP R3, #0x68 .text:00024984 BNE loc_249A0 .text:00024988 LDR R1, [R11,#var_B4] .text:0002498C ADD R0, R0, #1 .text:00024990 STR R0, [R11,#var_A4] .text:00024994 ORR R1, R1, #0x200 .text:00024998 STR R1, [R11,#var_B4] .text:0002499C B loc_24A4C ; jumptable 000248B4 cases 40,46 .text:000249A0 ; --------------------------------------------------------------------------- .text:000249A0 .text:000249A0 loc_249A0 ; CODE XREF: _IO_vfscanf+6D4j .text:000249A0 LDR R2, [R11,#var_B4] .text:000249A4 ORR R2, R2, #4 .text:000249A8 STR R2, [R11,#var_B4] .text:000249AC B loc_24A4C ; jumptable 000248B4 cases 40,46 .text:000249B0 ; --------------------------------------------------------------------------- .text:000249B0 .text:000249B0 loc_249B0 ; CODE XREF: _IO_vfscanf+604j .text:000249B0 ; DATA XREF: _IO_vfscanf+60Co .text:000249B0 LDR R12, [R11,#var_A4] ; jumptable 000248B4 case 32 .text:000249B4 LDRB R3, [R12] .text:000249B8 CMP R3, #0x6C .text:000249BC BNE loc_249D8 .text:000249C0 LDR LR, [R11,#var_B4] .text:000249C4 ADD R12, R12, #1 .text:000249C8 STR R12, [R11,#var_A4] .text:000249CC ORR LR, LR, #3 .text:000249D0 STR LR, [R11,#var_B4] .text:000249D4 B loc_24A4C ; jumptable 000248B4 cases 40,46 .text:000249D8 ; --------------------------------------------------------------------------- .text:000249D8 .text:000249D8 loc_249D8 ; CODE XREF: _IO_vfscanf+70Cj .text:000249D8 LDR R0, [R11,#var_B4] .text:000249DC ORR R0, R0, #1 .text:000249E0 STR R0, [R11,#var_B4] .text:000249E4 B loc_24A4C ; jumptable 000248B4 cases 40,46 .text:000249E8 ; --------------------------------------------------------------------------- .text:000249E8 .text:000249E8 loc_249E8 ; CODE XREF: _IO_vfscanf+604j .text:000249E8 ; DATA XREF: _IO_vfscanf+60Co .text:000249E8 LDR R1, [R11,#var_B4] ; jumptable 000248B4 cases 0,37 .text:000249EC ORR R1, R1, #3 .text:000249F0 STR R1, [R11,#var_B4] .text:000249F4 B loc_24A4C ; jumptable 000248B4 cases 40,46 .text:000249F8 ; --------------------------------------------------------------------------- .text:000249F8 .text:000249F8 loc_249F8 ; CODE XREF: _IO_vfscanf+604j .text:000249F8 ; DATA XREF: _IO_vfscanf+60Co .text:000249F8 LDR R2, [R11,#var_A4] ; jumptable 000248B4 case 21 .text:000249FC LDRB R3, [R2] .text:00024A00 CMP R3, #0x73 .text:00024A04 CMPNE R3, #0x53 .text:00024A08 BEQ loc_24A1C .text:00024A0C CMP R3, #0x5B .text:00024A10 SUBNE R2, R2, #1 .text:00024A14 STRNE R2, [R11,#var_A4] .text:00024A18 BNE loc_24A4C ; jumptable 000248B4 cases 40,46 .text:00024A1C .text:00024A1C loc_24A1C ; CODE XREF: _IO_vfscanf+758j .text:00024A1C LDR R3, [R11,#var_B4] .text:00024A20 ORR R3, R3, #0x100 .text:00024A24 STR R3, [R11,#var_B4] .text:00024A28 B loc_24A4C ; jumptable 000248B4 cases 40,46 .text:00024A2C ; --------------------------------------------------------------------------- .text:00024A2C .text:00024A2C loc_24A2C ; CODE XREF: _IO_vfscanf+604j .text:00024A2C ; DATA XREF: _IO_vfscanf+60Co .text:00024A2C LDR R12, [R11,#var_B4] ; jumptable 000248B4 case 30 .text:00024A30 ORR R12, R12, #2 .text:00024A34 STR R12, [R11,#var_B4] .text:00024A38 B loc_24A4C ; jumptable 000248B4 cases 40,46 .text:00024A38 ; --------------------------------------------------------------------------- .text:00024A3C off_24A3C DCD __ctype_b ; DATA XREF: _IO_vfscanf+420r .text:00024A3C ; _IO_vfscanf+564r .text:00024A40 ; --------------------------------------------------------------------------- .text:00024A40 .text:00024A40 loc_24A40 ; CODE XREF: _IO_vfscanf+604j .text:00024A40 ; _IO_vfscanf+608j .text:00024A40 ; DATA XREF: ... .text:00024A40 LDR LR, [R11,#var_A4] ; jumptable 000248B4 default case .text:00024A44 SUB LR, LR, #1 .text:00024A48 STR LR, [R11,#var_A4] .text:00024A4C .text:00024A4C loc_24A4C ; CODE XREF: _IO_vfscanf+604j .text:00024A4C ; _IO_vfscanf+6ECj ... .text:00024A4C LDR R0, [R11,#var_A4] ; jumptable 000248B4 cases 40,46 .text:00024A50 LDRB R4, [R0] .text:00024A54 CMP R4, #0 .text:00024A58 BEQ loc_28374 .text:00024A5C LDR R12, [R11,#var_A4] .text:00024A60 LDR R3, [R11,#var_E8] .text:00024A64 LDRB R4, [R12],#1 .text:00024A68 CMP R3, #0 .text:00024A6C STR R12, [R11,#var_A4] .text:00024A70 BNE loc_24A8C .text:00024A74 CMP R4, #0x5B .text:00024A78 CMPNE R4, #0x63 .text:00024A7C BEQ loc_24B40 .text:00024A80 CMP R4, #0x43 .text:00024A84 CMPNE R4, #0x6E .text:00024A88 BEQ loc_24B40 .text:00024A8C .text:00024A8C loc_24A8C ; CODE XREF: _IO_vfscanf+7C0j .text:00024A8C BL __errno_location .text:00024A90 LDR R6, [R0] .text:00024A94 BL __errno_location .text:00024A98 MOV LR, #0 .text:00024A9C STR LR, [R0] .text:00024AA0 .text:00024AA0 loc_24AA0 ; CODE XREF: _IO_vfscanf+860j .text:00024AA0 CMN R10, #1 .text:00024AA4 BEQ loc_24AE4 .text:00024AA8 LDMIB R7, {R2,R3} .text:00024AAC CMP R2, R3 .text:00024AB0 BCC loc_24AC4 .text:00024AB4 MOV R0, R7 .text:00024AB8 BL __uflow .text:00024ABC MOV R10, R0 .text:00024AC0 B loc_24ACC .text:00024AC4 ; --------------------------------------------------------------------------- .text:00024AC4 .text:00024AC4 loc_24AC4 ; CODE XREF: _IO_vfscanf+800j .text:00024AC4 LDRB R10, [R2],#1 .text:00024AC8 STR R2, [R7,#4] .text:00024ACC .text:00024ACC loc_24ACC ; CODE XREF: _IO_vfscanf+810j .text:00024ACC CMN R10, #1 .text:00024AD0 LDRNE R0, [R11,#var_AC] .text:00024AD4 ADDNE R0, R0, #1 .text:00024AD8 STRNE R0, [R11,#var_AC] .text:00024ADC CMN R10, #1 .text:00024AE0 BNE loc_24AF4 .text:00024AE4 .text:00024AE4 loc_24AE4 ; CODE XREF: _IO_vfscanf+7F4j .text:00024AE4 BL __errno_location .text:00024AE8 LDR R3, [R0] .text:00024AEC CMP R3, #4 .text:00024AF0 BEQ loc_27774 .text:00024AF4 .text:00024AF4 loc_24AF4 ; CODE XREF: _IO_vfscanf+830j .text:00024AF4 LDR R12, =__ctype_b .text:00024AF8 LDR R1, [R12] .text:00024AFC MOV R2, R10,LSL#1 .text:00024B00 ADD R2, R2, R1 .text:00024B04 LDRB R3, [R2,#1] .text:00024B08 MOV R3, R3,LSL#8 .text:00024B0C ANDS R5, R3, #0x2000 .text:00024B10 BNE loc_24AA0 .text:00024B14 BL __errno_location .text:00024B18 CMN R10, #1 .text:00024B1C STR R6, [R0] .text:00024B20 BEQ loc_24B3C .text:00024B24 LDR LR, [R11,#var_AC] .text:00024B28 SUB LR, LR, #1 .text:00024B2C STR LR, [R11,#var_AC] .text:00024B30 MOV R0, R7 .text:00024B34 AND R1, R10, #0xFF .text:00024B38 BL _IO_sputbackc .text:00024B3C .text:00024B3C loc_24B3C ; CODE XREF: _IO_vfscanf+870j .text:00024B3C STR R5, [R11,#var_E8] .text:00024B40 .text:00024B40 loc_24B40 ; CODE XREF: _IO_vfscanf+7CCj .text:00024B40 ; _IO_vfscanf+7D8j .text:00024B40 SUB R3, R4, #0x25 .text:00024B44 CMP R3, #0x53 ; switch 84 cases .text:00024B48 LDRLS PC, [PC,R3,LSL#2] ; switch jump .text:00024B4C B loc_28E60 ; jumptable 00024B48 default case .text:00024B4C ; --------------------------------------------------------------------------- .text:00024B50 DCD loc_24CA0, loc_28E60, loc_28E60, loc_28E60, loc_28E60 ; jump table for switch statement .text:00024B50 DCD loc_28E60, loc_28E60, loc_28E60, loc_28E60, loc_28E60 .text:00024B50 DCD loc_28E60, loc_28E60, loc_28E60, loc_28E60, loc_28E60 .text:00024B50 DCD loc_28E60, loc_28E60, loc_28E60, loc_28E60, loc_28E60 .text:00024B50 DCD loc_28E60, loc_28E60, loc_28E60, loc_28E60, loc_28E60 .text:00024B50 DCD loc_28E60, loc_28E60, loc_28E60, loc_26DEC, loc_28E60 .text:00024B50 DCD loc_25084, loc_28E60, loc_26DEC, loc_26DEC, loc_26DEC .text:00024B50 DCD loc_28E60, loc_28E60, loc_28E60, loc_28E60, loc_28E60 .text:00024B50 DCD loc_28E60, loc_28E60, loc_28E60, loc_28E60, loc_28E60 .text:00024B50 DCD loc_28E60, loc_25690, loc_28E60, loc_28E60, loc_28E60 .text:00024B50 DCD loc_28E60, loc_25B68, loc_28E60, loc_28E60, loc_283A4 .text:00024B50 DCD loc_28E60, loc_28E60, loc_28E60, loc_28E60, loc_28E60 .text:00024B50 DCD loc_26DEC, loc_28E60, loc_24EA0, loc_25BA0, loc_26DEC .text:00024B50 DCD loc_26DEC, loc_26DEC, loc_28E60, loc_25BB4, loc_28E60 .text:00024B50 DCD loc_28E60, loc_28E60, loc_28E60, loc_24D30, loc_25B7C .text:00024B50 DCD loc_28E38, loc_28E60, loc_28E60, loc_25328, loc_28E60 .text:00024B50 DCD loc_25B8C, loc_28E60, loc_28E60, loc_25B68 .text:00024CA0 ; --------------------------------------------------------------------------- .text:00024CA0 .text:00024CA0 loc_24CA0 ; CODE XREF: _IO_vfscanf+898j .text:00024CA0 ; DATA XREF: _IO_vfscanf+8A0o .text:00024CA0 CMN R10, #1 ; jumptable 00024B48 case 0 .text:00024CA4 BEQ loc_24CDC .text:00024CA8 LDMIB R7, {R2,R3} .text:00024CAC CMP R2, R3 .text:00024CB0 BCC loc_24CC4 .text:00024CB4 MOV R0, R7 .text:00024CB8 BL __uflow .text:00024CBC MOV R10, R0 .text:00024CC0 B loc_24CCC .text:00024CC4 ; --------------------------------------------------------------------------- .text:00024CC4 .text:00024CC4 loc_24CC4 ; CODE XREF: _IO_vfscanf+A00j .text:00024CC4 LDRB R10, [R2],#1 .text:00024CC8 STR R2, [R7,#4] .text:00024CCC .text:00024CCC loc_24CCC ; CODE XREF: _IO_vfscanf+A10j .text:00024CCC CMN R10, #1 .text:00024CD0 LDRNE R0, [R11,#var_AC] .text:00024CD4 ADDNE R0, R0, #1 .text:00024CD8 STRNE R0, [R11,#var_AC] .text:00024CDC .text:00024CDC loc_24CDC ; CODE XREF: _IO_vfscanf+9F4j .text:00024CDC MOV R1, R10 .text:00024CE0 CMN R10, #1 .text:00024CE4 BEQ loc_27774 .text:00024CE8 CMP R1, R4 .text:00024CEC BEQ loc_28E98 .text:00024CF0 MOV R0, R7 .text:00024CF4 AND R1, R1, #0xFF .text:00024CF8 BL _IO_sputbackc .text:00024CFC LDR R12, [R11,#var_9C] .text:00024D00 CMP R12, #0 .text:00024D04 LDRNE R3, [R12] .text:00024D08 ORRNE R3, R3, #2 .text:00024D0C STRNE R3, [R12] .text:00024D10 LDR R3, [R7] .text:00024D14 TST R3, #0x8000 .text:00024D18 BNE loc_24D24 .text:00024D1C MOV R0, R7 .text:00024D20 BL funlockfile .text:00024D24 .text:00024D24 loc_24D24 ; CODE XREF: _IO_vfscanf+A68j .text:00024D24 LDR LR, [R11,#var_FC] .text:00024D28 CMP LR, #0 .text:00024D2C B loc_28F30 .text:00024D30 ; --------------------------------------------------------------------------- .text:00024D30 .text:00024D30 loc_24D30 ; CODE XREF: _IO_vfscanf+898j .text:00024D30 ; DATA XREF: _IO_vfscanf+8A0o .text:00024D30 LDR R0, [R11,#var_B4] ; jumptable 00024B48 case 73 .text:00024D34 TST R0, #8 .text:00024D38 BNE loc_28E98 .text:00024D3C TST R0, #2 .text:00024D40 BEQ loc_24DA0 .text:00024D44 LDR R1, [R11,#var_100] .text:00024D48 CMP R1, #0 .text:00024D4C BNE loc_24D6C .text:00024D50 LDR R12, [R11,#var_A0] .text:00024D54 LDR R2, [R11,#var_AC] .text:00024D58 LDR R3, [R12],#4 .text:00024D5C MOV R0, R2 .text:00024D60 MOV R1, #0 .text:00024D64 STR R12, [R11,#var_A0] .text:00024D68 B loc_24D98 .text:00024D6C ; --------------------------------------------------------------------------- .text:00024D6C .text:00024D6C loc_24D6C ; CODE XREF: _IO_vfscanf+A9Cj .text:00024D6C LDR R2, [R11,#var_98] .text:00024D70 LDR LR, [R11,#var_100] .text:00024D74 LDR R12, [R11,#var_AC] .text:00024D78 SUBS R3, LR, #1 .text:00024D7C MOV R0, R12 .text:00024D80 MOV R1, #0 .text:00024D84 BEQ loc_24D94 .text:00024D88 .text:00024D88 loc_24D88 ; CODE XREF: _IO_vfscanf+AE0j .text:00024D88 ADD R2, R2, #4 .text:00024D8C SUBS R3, R3, #1 .text:00024D90 BNE loc_24D88 .text:00024D94 .text:00024D94 loc_24D94 ; CODE XREF: _IO_vfscanf+AD4j .text:00024D94 LDR R3, [R2] .text:00024D98 .text:00024D98 loc_24D98 ; CODE XREF: _IO_vfscanf+AB8j .text:00024D98 STMIA R3, {R0,R1} .text:00024D9C B loc_28E98 .text:00024DA0 ; --------------------------------------------------------------------------- .text:00024DA0 .text:00024DA0 loc_24DA0 ; CODE XREF: _IO_vfscanf+A90j .text:00024DA0 LDR LR, [R11,#var_B4] .text:00024DA4 TST LR, #4 .text:00024DA8 BEQ loc_24E08 .text:00024DAC LDR R0, [R11,#var_100] .text:00024DB0 CMP R0, #0 .text:00024DB4 BNE loc_24DD0 .text:00024DB8 LDR R12, [R11,#var_A0] .text:00024DBC LDR R2, [R11,#var_AC] .text:00024DC0 LDR R3, [R12],#4 .text:00024DC4 MOV R1, R2,ASR#8 .text:00024DC8 STR R12, [R11,#var_A0] .text:00024DCC B loc_24DF8 .text:00024DD0 ; --------------------------------------------------------------------------- .text:00024DD0 .text:00024DD0 loc_24DD0 ; CODE XREF: _IO_vfscanf+B04j .text:00024DD0 LDR R2, [R11,#var_98] .text:00024DD4 LDR LR, [R11,#var_100] .text:00024DD8 LDR R0, [R11,#var_AC] .text:00024DDC SUBS R3, LR, #1 .text:00024DE0 MOV R1, R0,ASR#8 .text:00024DE4 BEQ loc_24DF4 .text:00024DE8 .text:00024DE8 loc_24DE8 ; CODE XREF: _IO_vfscanf+B40j .text:00024DE8 ADD R2, R2, #4 .text:00024DEC SUBS R3, R3, #1 .text:00024DF0 BNE loc_24DE8 .text:00024DF4 .text:00024DF4 loc_24DF4 ; CODE XREF: _IO_vfscanf+B34j .text:00024DF4 LDR R3, [R2] .text:00024DF8 .text:00024DF8 loc_24DF8 ; CODE XREF: _IO_vfscanf+B1Cj .text:00024DF8 LDR R2, [R11,#var_AC] .text:00024DFC STRB R1, [R3,#1] .text:00024E00 STRB R2, [R3] .text:00024E04 B loc_28E98 .text:00024E08 ; --------------------------------------------------------------------------- .text:00024E08 .text:00024E08 loc_24E08 ; CODE XREF: _IO_vfscanf+AF8j .text:00024E08 LDR R3, [R11,#var_B4] .text:00024E0C TST R3, #0x200 .text:00024E10 BNE loc_24E58 .text:00024E14 LDR R12, [R11,#var_100] .text:00024E18 CMP R12, #0 .text:00024E1C LDREQ LR, [R11,#var_A0] .text:00024E20 LDREQ R3, [LR],#4 .text:00024E24 STREQ LR, [R11,#var_A0] .text:00024E28 BEQ loc_24E4C .text:00024E2C LDR R0, [R11,#var_100] .text:00024E30 LDR R2, [R11,#var_98] .text:00024E34 SUBS R3, R0, #1 .text:00024E38 BEQ loc_24E48 .text:00024E3C .text:00024E3C loc_24E3C ; CODE XREF: _IO_vfscanf+B94j .text:00024E3C ADD R2, R2, #4 .text:00024E40 SUBS R3, R3, #1 .text:00024E44 BNE loc_24E3C .text:00024E48 .text:00024E48 loc_24E48 ; CODE XREF: _IO_vfscanf+B88j .text:00024E48 LDR R3, [R2] .text:00024E4C .text:00024E4C loc_24E4C ; CODE XREF: _IO_vfscanf+B78j .text:00024E4C LDR R1, [R11,#var_AC] .text:00024E50 STR R1, [R3] .text:00024E54 B loc_28E98 .text:00024E58 ; --------------------------------------------------------------------------- .text:00024E58 .text:00024E58 loc_24E58 ; CODE XREF: _IO_vfscanf+B60j .text:00024E58 LDR R2, [R11,#var_100] .text:00024E5C CMP R2, #0 .text:00024E60 LDREQ R12, [R11,#var_A0] .text:00024E64 LDREQ R3, [R12],#4 .text:00024E68 STREQ R12, [R11,#var_A0] .text:00024E6C BEQ loc_24E90 .text:00024E70 LDR LR, [R11,#var_100] .text:00024E74 LDR R2, [R11,#var_98] .text:00024E78 SUBS R3, LR, #1 .text:00024E7C BEQ loc_24E8C .text:00024E80 .text:00024E80 loc_24E80 ; CODE XREF: _IO_vfscanf+BD8j .text:00024E80 ADD R2, R2, #4 .text:00024E84 SUBS R3, R3, #1 .text:00024E88 BNE loc_24E80 .text:00024E8C .text:00024E8C loc_24E8C ; CODE XREF: _IO_vfscanf+BCCj .text:00024E8C LDR R3, [R2] .text:00024E90 .text:00024E90 loc_24E90 ; CODE XREF: _IO_vfscanf+BBCj .text:00024E90 LDR R0, [R11,#var_AC] .text:00024E94 STRB R0, [R3] .text:00024E98 B loc_28E98 .text:00024E98 ; --------------------------------------------------------------------------- .text:00024E9C off_24E9C DCD __ctype_b ; DATA XREF: _IO_vfscanf:loc_24AF4r .text:00024EA0 ; --------------------------------------------------------------------------- .text:00024EA0 .text:00024EA0 loc_24EA0 ; CODE XREF: _IO_vfscanf+898j .text:00024EA0 ; DATA XREF: _IO_vfscanf+8A0o .text:00024EA0 LDR R1, [R11,#var_B4] ; jumptable 00024B48 case 62 .text:00024EA4 TST R1, #1 .text:00024EA8 BNE loc_25084 ; jumptable 00024B48 case 30 .text:00024EAC ANDS R3, R1, #8 .text:00024EB0 MOV R8, R3 .text:00024EB4 BNE loc_24F48 .text:00024EB8 LDR R2, [R11,#var_100] .text:00024EBC CMP R2, #0 .text:00024EC0 BNE loc_24ED8 .text:00024EC4 LDR R3, [R11,#var_A0] .text:00024EC8 LDR R12, [R3],#4 .text:00024ECC STR R12, [R11,#var_D8] .text:00024ED0 STR R3, [R11,#var_A0] .text:00024ED4 B loc_24EFC .text:00024ED8 ; --------------------------------------------------------------------------- .text:00024ED8 .text:00024ED8 loc_24ED8 ; CODE XREF: _IO_vfscanf+C10j .text:00024ED8 LDR LR, [R11,#var_100] .text:00024EDC LDR R0, [R11,#var_98] .text:00024EE0 SUBS R3, LR, #1 .text:00024EE4 BEQ loc_24EF4 .text:00024EE8 .text:00024EE8 loc_24EE8 ; CODE XREF: _IO_vfscanf+C40j .text:00024EE8 ADD R0, R0, #4 .text:00024EEC SUBS R3, R3, #1 .text:00024EF0 BNE loc_24EE8 .text:00024EF4 .text:00024EF4 loc_24EF4 ; CODE XREF: _IO_vfscanf+C34j .text:00024EF4 LDR R0, [R0] .text:00024EF8 STR R0, [R11,#var_D8] .text:00024EFC .text:00024EFC loc_24EFC ; CODE XREF: _IO_vfscanf+C24j .text:00024EFC LDR R0, [R11,#var_D8] .text:00024F00 CMP R0, #0 .text:00024F04 BNE loc_24F48 .text:00024F08 LDR R1, [R11,#var_9C] .text:00024F0C CMP R1, #0 .text:00024F10 LDRNE R3, [R1] .text:00024F14 ORRNE R3, R3, #2 .text:00024F18 STRNE R3, [R1] .text:00024F1C LDR R3, [R7] .text:00024F20 TST R3, #0x8000 .text:00024F24 BNE loc_24F30 .text:00024F28 MOV R0, R7 .text:00024F2C BL funlockfile .text:00024F30 .text:00024F30 loc_24F30 ; CODE XREF: _IO_vfscanf+C74j .text:00024F30 LDR R2, [R11,#var_FC] .text:00024F34 CMP R2, #0 .text:00024F38 BEQ loc_28F40 .text:00024F3C LDR R1, [R11,#var_D8] .text:00024F40 SUB R0, R11, #-var_38 .text:00024F44 B loc_28F3C .text:00024F48 ; --------------------------------------------------------------------------- .text:00024F48 .text:00024F48 loc_24F48 ; CODE XREF: _IO_vfscanf+C04j .text:00024F48 ; _IO_vfscanf+C54j .text:00024F48 CMN R10, #1 .text:00024F4C BEQ loc_24F84 .text:00024F50 LDMIB R7, {R2,R3} .text:00024F54 CMP R2, R3 .text:00024F58 BCC loc_24F6C .text:00024F5C MOV R0, R7 .text:00024F60 BL __uflow .text:00024F64 MOV R10, R0 .text:00024F68 B loc_24F74 .text:00024F6C ; --------------------------------------------------------------------------- .text:00024F6C .text:00024F6C loc_24F6C ; CODE XREF: _IO_vfscanf+CA8j .text:00024F6C LDRB R10, [R2],#1 .text:00024F70 STR R2, [R7,#4] .text:00024F74 .text:00024F74 loc_24F74 ; CODE XREF: _IO_vfscanf+CB8j .text:00024F74 CMN R10, #1 .text:00024F78 LDRNE R3, [R11,#var_AC] .text:00024F7C ADDNE R3, R3, #1 .text:00024F80 STRNE R3, [R11,#var_AC] .text:00024F84 .text:00024F84 loc_24F84 ; CODE XREF: _IO_vfscanf+C9Cj .text:00024F84 CMN R10, #1 .text:00024F88 BEQ loc_28BB0 .text:00024F8C LDR R1, [R11,#var_B0] .text:00024F90 LDR R3, [R11,#var_A8] .text:00024F94 MOV R2, R1 .text:00024F98 CMN R2, #1 .text:00024F9C MOVEQ R1, #1 .text:00024FA0 CMP R8, #0 .text:00024FA4 ADD R4, R3, #1 .text:00024FA8 STR R1, [R11,#var_B0] .text:00024FAC BNE loc_25018 .text:00024FB0 .text:00024FB0 loc_24FB0 ; CODE XREF: _IO_vfscanf+D60j .text:00024FB0 LDR R12, [R11,#var_B0] .text:00024FB4 SUB R12, R12, #1 .text:00024FB8 STR R12, [R11,#var_B0] .text:00024FBC LDR LR, [R11,#var_D8] .text:00024FC0 STRB R10, [LR],#1 .text:00024FC4 CMP R12, #0 .text:00024FC8 STR LR, [R11,#var_D8] .text:00024FCC BLE loc_25070 .text:00024FD0 CMN R10, #1 .text:00024FD4 BEQ loc_25070 .text:00024FD8 LDMIB R7, {R2,R3} .text:00024FDC CMP R2, R3 .text:00024FE0 BCC loc_24FF4 .text:00024FE4 MOV R0, R7 .text:00024FE8 BL __uflow .text:00024FEC MOV R10, R0 .text:00024FF0 B loc_24FFC .text:00024FF4 ; --------------------------------------------------------------------------- .text:00024FF4 .text:00024FF4 loc_24FF4 ; CODE XREF: _IO_vfscanf+D30j .text:00024FF4 LDRB R10, [R2],#1 .text:00024FF8 STR R2, [R7,#4] .text:00024FFC .text:00024FFC loc_24FFC ; CODE XREF: _IO_vfscanf+D40j .text:00024FFC CMN R10, #1 .text:00025000 LDRNE R0, [R11,#var_AC] .text:00025004 ADDNE R0, R0, #1 .text:00025008 STRNE R0, [R11,#var_AC] .text:0002500C CMN R10, #1 .text:00025010 BNE loc_24FB0 .text:00025014 B loc_25070 .text:00025018 ; --------------------------------------------------------------------------- .text:00025018 .text:00025018 loc_25018 ; CODE XREF: _IO_vfscanf+CFCj .text:00025018 ; _IO_vfscanf+DBCj .text:00025018 LDR R1, [R11,#var_B0] .text:0002501C SUB R1, R1, #1 .text:00025020 CMP R1, #0 .text:00025024 STR R1, [R11,#var_B0] .text:00025028 BLE loc_25070 .text:0002502C CMN R10, #1 .text:00025030 BEQ loc_25070 .text:00025034 LDMIB R7, {R2,R3} .text:00025038 CMP R2, R3 .text:0002503C BCC loc_25050 .text:00025040 MOV R0, R7 .text:00025044 BL __uflow .text:00025048 MOV R10, R0 .text:0002504C B loc_25058 .text:00025050 ; --------------------------------------------------------------------------- .text:00025050 .text:00025050 loc_25050 ; CODE XREF: _IO_vfscanf+D8Cj .text:00025050 LDRB R10, [R2],#1 .text:00025054 STR R2, [R7,#4] .text:00025058 .text:00025058 loc_25058 ; CODE XREF: _IO_vfscanf+D9Cj .text:00025058 CMN R10, #1 .text:0002505C LDRNE R2, [R11,#var_AC] .text:00025060 ADDNE R2, R2, #1 .text:00025064 STRNE R2, [R11,#var_AC] .text:00025068 CMN R10, #1 .text:0002506C BNE loc_25018 .text:00025070 .text:00025070 loc_25070 ; CODE XREF: _IO_vfscanf+D1Cj .text:00025070 ; _IO_vfscanf+D24j ... .text:00025070 LDR R3, [R11,#var_A8] .text:00025074 CMP R8, #0 .text:00025078 MOVEQ R3, R4 .text:0002507C STR R3, [R11,#var_A8] .text:00025080 B loc_28E98 .text:00025084 ; --------------------------------------------------------------------------- .text:00025084 .text:00025084 loc_25084 ; CODE XREF: _IO_vfscanf+898j .text:00025084 ; _IO_vfscanf+BF8j .text:00025084 ; DATA XREF: ... .text:00025084 LDR R12, [R11,#var_B4] ; jumptable 00024B48 case 30 .text:00025088 ANDS R3, R12, #8 .text:0002508C MOV R8, R3 .text:00025090 BNE loc_25124 .text:00025094 LDR LR, [R11,#var_100] .text:00025098 CMP LR, #0 .text:0002509C BNE loc_250B4 .text:000250A0 LDR R0, [R11,#var_A0] .text:000250A4 LDR R1, [R0],#4 .text:000250A8 STR R1, [R11,#var_DC] .text:000250AC STR R0, [R11,#var_A0] .text:000250B0 B loc_250D8 .text:000250B4 ; --------------------------------------------------------------------------- .text:000250B4 .text:000250B4 loc_250B4 ; CODE XREF: _IO_vfscanf+DECj .text:000250B4 LDR R3, [R11,#var_100] .text:000250B8 LDR R0, [R11,#var_98] .text:000250BC SUBS R2, R3, #1 .text:000250C0 BEQ loc_250D0 .text:000250C4 .text:000250C4 loc_250C4 ; CODE XREF: _IO_vfscanf+E1Cj .text:000250C4 ADD R0, R0, #4 .text:000250C8 SUBS R2, R2, #1 .text:000250CC BNE loc_250C4 .text:000250D0 .text:000250D0 loc_250D0 ; CODE XREF: _IO_vfscanf+E10j .text:000250D0 LDR R0, [R0] .text:000250D4 STR R0, [R11,#var_DC] .text:000250D8 .text:000250D8 loc_250D8 ; CODE XREF: _IO_vfscanf+E00j .text:000250D8 LDR R12, [R11,#var_DC] .text:000250DC CMP R12, #0 .text:000250E0 BNE loc_25124 .text:000250E4 LDR LR, [R11,#var_9C] .text:000250E8 CMP LR, #0 .text:000250EC LDRNE R3, [LR] .text:000250F0 ORRNE R3, R3, #2 .text:000250F4 STRNE R3, [LR] .text:000250F8 LDR R3, [R7] .text:000250FC TST R3, #0x8000 .text:00025100 BNE loc_2510C .text:00025104 MOV R0, R7 .text:00025108 BL funlockfile .text:0002510C .text:0002510C loc_2510C ; CODE XREF: _IO_vfscanf+E50j .text:0002510C LDR R0, [R11,#var_FC] .text:00025110 CMP R0, #0 .text:00025114 BEQ loc_28F40 .text:00025118 LDR R1, [R11,#var_DC] .text:0002511C SUB R0, R11, #-var_38 .text:00025120 B loc_28F3C .text:00025124 ; --------------------------------------------------------------------------- .text:00025124 .text:00025124 loc_25124 ; CODE XREF: _IO_vfscanf+DE0j .text:00025124 ; _IO_vfscanf+E30j .text:00025124 CMN R10, #1 .text:00025128 BEQ loc_25160 .text:0002512C LDMIB R7, {R2,R3} .text:00025130 CMP R2, R3 .text:00025134 BCC loc_25148 .text:00025138 MOV R0, R7 .text:0002513C BL __uflow .text:00025140 MOV R10, R0 .text:00025144 B loc_25150 .text:00025148 ; --------------------------------------------------------------------------- .text:00025148 .text:00025148 loc_25148 ; CODE XREF: _IO_vfscanf+E84j .text:00025148 LDRB R10, [R2],#1 .text:0002514C STR R2, [R7,#4] .text:00025150 .text:00025150 loc_25150 ; CODE XREF: _IO_vfscanf+E94j .text:00025150 CMN R10, #1 .text:00025154 LDRNE R1, [R11,#var_AC] .text:00025158 ADDNE R1, R1, #1 .text:0002515C STRNE R1, [R11,#var_AC] .text:00025160 .text:00025160 loc_25160 ; CODE XREF: _IO_vfscanf+E78j .text:00025160 CMN R10, #1 .text:00025164 BEQ loc_28838 .text:00025168 SUB R0, R11, #-var_80 .text:0002516C MOV R1, #0 .text:00025170 MOV R2, #8 .text:00025174 BL memset .text:00025178 SUB R6, R11, #-var_80 .text:0002517C SUB R5, R11, #-var_48 .text:00025180 .text:00025180 loc_25180 ; CODE XREF: _IO_vfscanf+105Cj .text:00025180 MOV R4, #1 .text:00025184 STRB R10, [R11,#var_48] .text:00025188 .text:00025188 loc_25188 ; CODE XREF: _IO_vfscanf+FBCj .text:00025188 CMP R8, #0 .text:0002518C MOV R1, R5 .text:00025190 MOV R2, R4 .text:00025194 LDR R0, [R11,#var_DC] .text:00025198 MOV R3, R6 .text:0002519C MOVNE R0, #0 .text:000251A0 BL mbrtowc .text:000251A4 CMN R0, #2 .text:000251A8 BNE loc_25270 .text:000251AC BL __ctype_get_mb_cur_max .text:000251B0 CMP R4, R0 .text:000251B4 BCC loc_251D0 .text:000251B8 LDR R0, =aCnt__ctype_get ; "cnt < (__ctype_get_mb_cur_max ())" .text:000251BC LDR R1, =aVfscanf_c ; "vfscanf.c" .text:000251C0 MOV R2, #0x30C .text:000251C4 LDR R3, =a_io_vfscanf ; "_IO_vfscanf" .text:000251C8 ADD R2, R2, #2 .text:000251CC BL __assert_fail .text:000251D0 ; --------------------------------------------------------------------------- .text:000251D0 .text:000251D0 loc_251D0 ; CODE XREF: _IO_vfscanf+F04j .text:000251D0 CMN R10, #1 .text:000251D4 BEQ loc_25214 .text:000251D8 LDMIB R7, {R2,R3} .text:000251DC CMP R2, R3 .text:000251E0 BCC loc_251F4 .text:000251E4 MOV R0, R7 .text:000251E8 BL __uflow .text:000251EC MOV R10, R0 .text:000251F0 B loc_251FC .text:000251F4 ; --------------------------------------------------------------------------- .text:000251F4 .text:000251F4 loc_251F4 ; CODE XREF: _IO_vfscanf+F30j .text:000251F4 LDRB R10, [R2],#1 .text:000251F8 STR R2, [R7,#4] .text:000251FC .text:000251FC loc_251FC ; CODE XREF: _IO_vfscanf+F40j .text:000251FC CMN R10, #1 .text:00025200 LDRNE LR, [R11,#var_AC] .text:00025204 ADDNE LR, LR, #1 .text:00025208 STRNE LR, [R11,#var_AC] .text:0002520C CMN R10, #1 .text:00025210 BNE loc_25264 .text:00025214 .text:00025214 loc_25214 ; CODE XREF: _IO_vfscanf+F24j .text:00025214 ; _IO_vfscanf+4644j .text:00025214 LDR R0, [R11,#var_9C] .text:00025218 CMP R0, #0 .text:0002521C LDRNE R3, [R0] .text:00025220 ORRNE R3, R3, #4 .text:00025224 STRNE R3, [R0] .text:00025228 LDR R3, [R7] .text:0002522C TST R3, #0x8000 .text:00025230 BNE loc_2523C .text:00025234 MOV R0, R7 .text:00025238 BL funlockfile .text:0002523C .text:0002523C loc_2523C ; CODE XREF: _IO_vfscanf+F80j .text:0002523C LDR R1, [R11,#var_FC] .text:00025240 CMP R1, #0 .text:00025244 .text:00025244 loc_25244 ; CODE XREF: _IO_vfscanf+FF8j .text:00025244 ; _IO_vfscanf+1660j ... .text:00025244 BEQ loc_25254 .text:00025248 SUB R0, R11, #-var_38 .text:0002524C MOV R1, #0 .text:00025250 BL 0 .text:00025254 .text:00025254 loc_25254 ; CODE XREF: _IO_vfscanf:loc_25244j .text:00025254 BL __errno_location .text:00025258 MOV R3, #0x54 .text:0002525C STR R3, [R0] .text:00025260 B loc_28F40 .text:00025264 ; --------------------------------------------------------------------------- .text:00025264 .text:00025264 loc_25264 ; CODE XREF: _IO_vfscanf+F60j .text:00025264 STRB R10, [R5,R4] .text:00025268 ADD R4, R4, #1 .text:0002526C B loc_25188 .text:00025270 ; --------------------------------------------------------------------------- .text:00025270 .text:00025270 loc_25270 ; CODE XREF: _IO_vfscanf+EF8j .text:00025270 CMP R0, R4 .text:00025274 BEQ loc_252AC .text:00025278 LDR R2, [R11,#var_9C] .text:0002527C CMP R2, #0 .text:00025280 LDRNE R3, [R2] .text:00025284 ORRNE R3, R3, #4 .text:00025288 STRNE R3, [R2] .text:0002528C LDR R3, [R7] .text:00025290 TST R3, #0x8000 .text:00025294 BNE loc_252A0 .text:00025298 MOV R0, R7 .text:0002529C BL funlockfile .text:000252A0 .text:000252A0 loc_252A0 ; CODE XREF: _IO_vfscanf+FE4j .text:000252A0 LDR R3, [R11,#var_FC] .text:000252A4 CMP R3, #0 .text:000252A8 B loc_25244 .text:000252AC ; --------------------------------------------------------------------------- .text:000252AC .text:000252AC loc_252AC ; CODE XREF: _IO_vfscanf+FC4j .text:000252AC LDR R12, [R11,#var_DC] .text:000252B0 LDR LR, [R11,#var_B0] .text:000252B4 ADD R12, R12, #4 .text:000252B8 STR R12, [R11,#var_DC] .text:000252BC SUB LR, LR, #1 .text:000252C0 CMP LR, #0 .text:000252C4 STR LR, [R11,#var_B0] .text:000252C8 BLE loc_25310 .text:000252CC CMN R10, #1 .text:000252D0 BEQ loc_25310 .text:000252D4 LDMIB R7, {R2,R3} .text:000252D8 CMP R2, R3 .text:000252DC BCC loc_252F0 .text:000252E0 MOV R0, R7 .text:000252E4 BL __uflow .text:000252E8 MOV R10, R0 .text:000252EC B loc_252F8 .text:000252F0 ; --------------------------------------------------------------------------- .text:000252F0 .text:000252F0 loc_252F0 ; CODE XREF: _IO_vfscanf+102Cj .text:000252F0 LDRB R10, [R2],#1 .text:000252F4 STR R2, [R7,#4] .text:000252F8 .text:000252F8 loc_252F8 ; CODE XREF: _IO_vfscanf+103Cj .text:000252F8 CMN R10, #1 .text:000252FC LDRNE R0, [R11,#var_AC] .text:00025300 ADDNE R0, R0, #1 .text:00025304 STRNE R0, [R11,#var_AC] .text:00025308 CMN R10, #1 .text:0002530C BNE loc_25180 .text:00025310 .text:00025310 loc_25310 ; CODE XREF: _IO_vfscanf+1018j .text:00025310 ; _IO_vfscanf+1020j .text:00025310 LDR R1, [R11,#var_A8] .text:00025314 CMP R8, #0 .text:00025318 MOV R2, R1 .text:0002531C ADDEQ R1, R2, #1 .text:00025320 STR R1, [R11,#var_A8] .text:00025324 B loc_28E98 .text:00025328 ; --------------------------------------------------------------------------- .text:00025328 .text:00025328 loc_25328 ; CODE XREF: _IO_vfscanf+898j .text:00025328 ; DATA XREF: _IO_vfscanf+8A0o .text:00025328 LDR R3, [R11,#var_B4] ; jumptable 00024B48 case 78 .text:0002532C TST R3, #1 .text:00025330 BNE loc_25690 ; jumptable 00024B48 case 46 .text:00025334 ANDS R3, R3, #8 .text:00025338 MOV R8, R3 .text:0002533C BNE loc_25490 .text:00025340 LDR R12, [R11,#var_B4] .text:00025344 TST R12, #0x100 .text:00025348 BEQ loc_253FC .text:0002534C LDR LR, [R11,#var_100] .text:00025350 CMP LR, #0 .text:00025354 BNE loc_2536C .text:00025358 LDR R0, [R11,#var_A0] .text:0002535C LDR R1, [R0],#4 .text:00025360 STR R1, [R11,#var_E0] .text:00025364 STR R0, [R11,#var_A0] .text:00025368 B loc_25390 .text:0002536C ; --------------------------------------------------------------------------- .text:0002536C .text:0002536C loc_2536C ; CODE XREF: _IO_vfscanf+10A4j .text:0002536C LDR R3, [R11,#var_100] .text:00025370 LDR R0, [R11,#var_98] .text:00025374 SUBS R2, R3, #1 .text:00025378 BEQ loc_25388 .text:0002537C .text:0002537C loc_2537C ; CODE XREF: _IO_vfscanf+10D4j .text:0002537C ADD R0, R0, #4 .text:00025380 SUBS R2, R2, #1 .text:00025384 BNE loc_2537C .text:00025388 .text:00025388 loc_25388 ; CODE XREF: _IO_vfscanf+10C8j .text:00025388 LDR R0, [R0] .text:0002538C STR R0, [R11,#var_E0] .text:00025390 .text:00025390 loc_25390 ; CODE XREF: _IO_vfscanf+10B8j .text:00025390 LDR R12, [R11,#var_E0] .text:00025394 CMP R12, #0 .text:00025398 BNE loc_253DC .text:0002539C LDR LR, [R11,#var_9C] .text:000253A0 CMP LR, #0 .text:000253A4 LDRNE R3, [LR] .text:000253A8 ORRNE R3, R3, #2 .text:000253AC STRNE R3, [LR] .text:000253B0 LDR R3, [R7] .text:000253B4 TST R3, #0x8000 .text:000253B8 BNE loc_253C4 .text:000253BC MOV R0, R7 .text:000253C0 BL funlockfile .text:000253C4 .text:000253C4 loc_253C4 ; CODE XREF: _IO_vfscanf+1108j .text:000253C4 LDR R0, [R11,#var_FC] .text:000253C8 CMP R0, #0 .text:000253CC BEQ loc_28F40 .text:000253D0 LDR R1, [R11,#var_E0] .text:000253D4 SUB R0, R11, #-var_38 .text:000253D8 B loc_28F3C .text:000253DC ; --------------------------------------------------------------------------- .text:000253DC .text:000253DC loc_253DC ; CODE XREF: _IO_vfscanf+10E8j .text:000253DC MOV R1, #0x64 .text:000253E0 STR R1, [R11,#var_E4] .text:000253E4 MOV R0, R1 .text:000253E8 BL malloc .text:000253EC STR R0, [R11,#var_D8] .text:000253F0 LDR R2, [R11,#var_E0] .text:000253F4 STR R0, [R2] .text:000253F8 B loc_25440 .text:000253FC ; --------------------------------------------------------------------------- .text:000253FC .text:000253FC loc_253FC ; CODE XREF: _IO_vfscanf+1098j .text:000253FC LDR R3, [R11,#var_100] .text:00025400 CMP R3, #0 .text:00025404 BNE loc_2541C .text:00025408 LDR R12, [R11,#var_A0] .text:0002540C LDR LR, [R12],#4 .text:00025410 STR LR, [R11,#var_D8] .text:00025414 STR R12, [R11,#var_A0] .text:00025418 B loc_25440 .text:0002541C ; --------------------------------------------------------------------------- .text:0002541C .text:0002541C loc_2541C ; CODE XREF: _IO_vfscanf+1154j .text:0002541C LDR R1, [R11,#var_100] .text:00025420 LDR R0, [R11,#var_98] .text:00025424 SUBS R3, R1, #1 .text:00025428 BEQ loc_25438 .text:0002542C .text:0002542C loc_2542C ; CODE XREF: _IO_vfscanf+1184j .text:0002542C ADD R0, R0, #4 .text:00025430 SUBS R3, R3, #1 .text:00025434 BNE loc_2542C .text:00025438 .text:00025438 loc_25438 ; CODE XREF: _IO_vfscanf+1178j .text:00025438 LDR R0, [R0] .text:0002543C STR R0, [R11,#var_D8] .text:00025440 .text:00025440 loc_25440 ; CODE XREF: _IO_vfscanf+1148j .text:00025440 ; _IO_vfscanf+1168j .text:00025440 LDR R2, [R11,#var_D8] .text:00025444 CMP R2, #0 .text:00025448 BNE loc_25490 .text:0002544C LDR R3, [R11,#var_9C] .text:00025450 CMP R3, #0 .text:00025454 LDRNE R3, [R3] .text:00025458 LDRNE R12, [R11,#var_9C] .text:0002545C ORRNE R3, R3, #2 .text:00025460 STRNE R3, [R12] .text:00025464 LDR R3, [R7] .text:00025468 TST R3, #0x8000 .text:0002546C BNE loc_25478 .text:00025470 MOV R0, R7 .text:00025474 BL funlockfile .text:00025478 .text:00025478 loc_25478 ; CODE XREF: _IO_vfscanf+11BCj .text:00025478 LDR LR, [R11,#var_FC] .text:0002547C CMP LR, #0 .text:00025480 BEQ loc_28F40 .text:00025484 LDR R1, [R11,#var_D8] .text:00025488 SUB R0, R11, #-var_38 .text:0002548C B loc_28F3C .text:00025490 ; --------------------------------------------------------------------------- .text:00025490 .text:00025490 loc_25490 ; CODE XREF: _IO_vfscanf+108Cj .text:00025490 ; _IO_vfscanf+1198j .text:00025490 CMN R10, #1 .text:00025494 BEQ loc_254CC .text:00025498 LDMIB R7, {R2,R3} .text:0002549C CMP R2, R3 .text:000254A0 BCC loc_254B4 .text:000254A4 MOV R0, R7 .text:000254A8 BL __uflow .text:000254AC MOV R10, R0 .text:000254B0 B loc_254BC .text:000254B4 ; --------------------------------------------------------------------------- .text:000254B4 .text:000254B4 loc_254B4 ; CODE XREF: _IO_vfscanf+11F0j .text:000254B4 LDRB R10, [R2],#1 .text:000254B8 STR R2, [R7,#4] .text:000254BC .text:000254BC loc_254BC ; CODE XREF: _IO_vfscanf+1200j .text:000254BC CMN R10, #1 .text:000254C0 LDRNE R0, [R11,#var_AC] .text:000254C4 ADDNE R0, R0, #1 .text:000254C8 STRNE R0, [R11,#var_AC] .text:000254CC .text:000254CC loc_254CC ; CODE XREF: _IO_vfscanf+11E4j .text:000254CC CMN R10, #1 .text:000254D0 BNE loc_25658 .text:000254D4 B loc_27774 .text:000254D4 ; --------------------------------------------------------------------------- .text:000254D8 off_254D8 DCD aCnt__ctype_get ; DATA XREF: _IO_vfscanf+F08r .text:000254D8 ; "cnt < (__ctype_get_mb_cur_max ())" .text:000254DC off_254DC DCD aVfscanf_c ; DATA XREF: _IO_vfscanf+F0Cr .text:000254DC ; "vfscanf.c" .text:000254E0 off_254E0 DCD a_io_vfscanf ; DATA XREF: _IO_vfscanf+F14r .text:000254E0 ; "_IO_vfscanf" .text:000254E4 ; --------------------------------------------------------------------------- .text:000254E4 .text:000254E4 loc_254E4 ; CODE XREF: _IO_vfscanf+13C0j .text:000254E4 CMP R8, #0 .text:000254E8 BNE loc_255F8 .text:000254EC LDR LR, [R11,#var_D8] .text:000254F0 LDR R12, [R11,#var_B4] .text:000254F4 STRB R10, [LR],#1 .text:000254F8 TST R12, #0x100 .text:000254FC STR LR, [R11,#var_D8] .text:00025500 BEQ loc_255F8 .text:00025504 LDR R1, [R11,#var_E0] .text:00025508 LDR R2, [R11,#var_E4] .text:0002550C LDR R0, [R1] .text:00025510 ADD R3, R0, R2 .text:00025514 CMP LR, R3 .text:00025518 BNE loc_255F8 .text:0002551C MOV R4, R2,LSL#1 .text:00025520 MOV R1, R4 .text:00025524 BL realloc .text:00025528 CMP R0, #0 .text:0002552C STR R0, [R11,#var_D8] .text:00025530 BNE loc_255DC .text:00025534 LDR R12, [R11,#var_E4] .text:00025538 LDR R3, [R11,#var_E0] .text:0002553C ADD R4, R12, #1 .text:00025540 LDR R0, [R3] .text:00025544 MOV R1, R4 .text:00025548 BL realloc .text:0002554C CMP R0, #0 .text:00025550 STR R0, [R11,#var_D8] .text:00025554 BNE loc_255C0 .text:00025558 LDR LR, [R11,#var_E0] .text:0002555C LDR R0, [R11,#var_A8] .text:00025560 LDR R3, [LR] .text:00025564 ADD R0, R0, #1 .text:00025568 STR R0, [R11,#var_A8] .text:0002556C LDR R1, [R11,#var_E4] .text:00025570 LDR R2, [R11,#var_D8] .text:00025574 ADD R3, R1, R3 .text:00025578 STRB R2, [R3,#-1] .text:0002557C LDR R3, [R11,#var_9C] .text:00025580 CMP R3, #0 .text:00025584 LDRNE R3, [R3] .text:00025588 LDRNE R12, [R11,#var_9C] .text:0002558C ORRNE R3, R3, #2 .text:00025590 STRNE R3, [R12] .text:00025594 LDR R3, [R7] .text:00025598 TST R3, #0x8000 .text:0002559C BNE loc_255A8 .text:000255A0 MOV R0, R7 .text:000255A4 BL funlockfile .text:000255A8 .text:000255A8 loc_255A8 ; CODE XREF: _IO_vfscanf+12ECj .text:000255A8 LDR LR, [R11,#var_FC] .text:000255AC CMP LR, #0 .text:000255B0 BEQ loc_28F40 .text:000255B4 LDR R1, [R11,#var_D8] .text:000255B8 SUB R0, R11, #-var_38 .text:000255BC B loc_28F3C .text:000255C0 ; --------------------------------------------------------------------------- .text:000255C0 .text:000255C0 loc_255C0 ; CODE XREF: _IO_vfscanf+12A4j .text:000255C0 LDR R1, [R11,#var_D8] .text:000255C4 LDR R0, [R11,#var_E0] .text:000255C8 STR R1, [R0] .text:000255CC LDR R2, [R11,#var_E4] .text:000255D0 ADD R1, R1, R2 .text:000255D4 STR R1, [R11,#var_D8] .text:000255D8 B loc_255F4 .text:000255DC ; --------------------------------------------------------------------------- .text:000255DC .text:000255DC loc_255DC ; CODE XREF: _IO_vfscanf+1280j .text:000255DC LDR R12, [R11,#var_D8] .text:000255E0 LDR R3, [R11,#var_E0] .text:000255E4 STR R12, [R3] .text:000255E8 LDR LR, [R11,#var_E4] .text:000255EC ADD R12, R12, LR .text:000255F0 STR R12, [R11,#var_D8] .text:000255F4 .text:000255F4 loc_255F4 ; CODE XREF: _IO_vfscanf+1328j .text:000255F4 STR R4, [R11,#var_E4] .text:000255F8 .text:000255F8 loc_255F8 ; CODE XREF: _IO_vfscanf+1238j .text:000255F8 ; _IO_vfscanf+1250j ... .text:000255F8 LDR R0, [R11,#var_B0] .text:000255FC CMP R0, #0 .text:00025600 BLE loc_25614 .text:00025604 SUB R0, R0, #1 .text:00025608 CMP R0, #0 .text:0002560C STR R0, [R11,#var_B0] .text:00025610 BLE loc_28DE0 .text:00025614 .text:00025614 loc_25614 ; CODE XREF: _IO_vfscanf+1350j .text:00025614 CMN R10, #1 .text:00025618 BEQ loc_28DE0 .text:0002561C LDMIB R7, {R2,R3} .text:00025620 CMP R2, R3 .text:00025624 BCC loc_25638 .text:00025628 MOV R0, R7 .text:0002562C BL __uflow .text:00025630 MOV R10, R0 .text:00025634 B loc_25640 .text:00025638 ; --------------------------------------------------------------------------- .text:00025638 .text:00025638 loc_25638 ; CODE XREF: _IO_vfscanf+1374j .text:00025638 LDRB R10, [R2],#1 .text:0002563C STR R2, [R7,#4] .text:00025640 .text:00025640 loc_25640 ; CODE XREF: _IO_vfscanf+1384j .text:00025640 CMN R10, #1 .text:00025644 LDRNE R1, [R11,#var_AC] .text:00025648 ADDNE R1, R1, #1 .text:0002564C STRNE R1, [R11,#var_AC] .text:00025650 CMN R10, #1 .text:00025654 BEQ loc_28DE0 .text:00025658 .text:00025658 loc_25658 ; CODE XREF: _IO_vfscanf+1220j .text:00025658 LDR R2, =__ctype_b .text:0002565C LDR R3, [R2] .text:00025660 MOV R2, R10,LSL#1 .text:00025664 ADD R2, R2, R3 .text:00025668 LDRB R1, [R2,#1] .text:0002566C TST R1, #0x20 .text:00025670 BEQ loc_254E4 .text:00025674 LDR R3, [R11,#var_AC] .text:00025678 SUB R3, R3, #1 .text:0002567C STR R3, [R11,#var_AC] .text:00025680 MOV R0, R7 .text:00025684 AND R1, R10, #0xFF .text:00025688 BL _IO_sputbackc .text:0002568C B loc_28DE0 .text:00025690 ; --------------------------------------------------------------------------- .text:00025690 .text:00025690 loc_25690 ; CODE XREF: _IO_vfscanf+898j .text:00025690 ; _IO_vfscanf+1080j .text:00025690 ; DATA XREF: ... .text:00025690 LDR LR, [R11,#var_B4] ; jumptable 00024B48 case 46 .text:00025694 ANDS R3, LR, #8 .text:00025698 MOV R8, R3 .text:0002569C BNE loc_257EC .text:000256A0 TST LR, #0x100 .text:000256A4 BEQ loc_25758 .text:000256A8 LDR R0, [R11,#var_100] .text:000256AC CMP R0, #0 .text:000256B0 BNE loc_256C8 .text:000256B4 LDR R1, [R11,#var_A0] .text:000256B8 LDR R2, [R1],#4 .text:000256BC STR R2, [R11,#var_E0] .text:000256C0 STR R1, [R11,#var_A0] .text:000256C4 B loc_256EC .text:000256C8 ; --------------------------------------------------------------------------- .text:000256C8 .text:000256C8 loc_256C8 ; CODE XREF: _IO_vfscanf+1400j .text:000256C8 LDR R3, [R11,#var_100] .text:000256CC LDR R0, [R11,#var_98] .text:000256D0 SUBS R2, R3, #1 .text:000256D4 BEQ loc_256E4 .text:000256D8 .text:000256D8 loc_256D8 ; CODE XREF: _IO_vfscanf+1430j .text:000256D8 ADD R0, R0, #4 .text:000256DC SUBS R2, R2, #1 .text:000256E0 BNE loc_256D8 .text:000256E4 .text:000256E4 loc_256E4 ; CODE XREF: _IO_vfscanf+1424j .text:000256E4 LDR R0, [R0] .text:000256E8 STR R0, [R11,#var_E0] .text:000256EC .text:000256EC loc_256EC ; CODE XREF: _IO_vfscanf+1414j .text:000256EC LDR R12, [R11,#var_E0] .text:000256F0 CMP R12, #0 .text:000256F4 BNE loc_25738 .text:000256F8 LDR LR, [R11,#var_9C] .text:000256FC CMP LR, #0 .text:00025700 LDRNE R3, [LR] .text:00025704 ORRNE R3, R3, #2 .text:00025708 STRNE R3, [LR] .text:0002570C LDR R3, [R7] .text:00025710 TST R3, #0x8000 .text:00025714 BNE loc_25720 .text:00025718 MOV R0, R7 .text:0002571C BL funlockfile .text:00025720 .text:00025720 loc_25720 ; CODE XREF: _IO_vfscanf+1464j .text:00025720 LDR R0, [R11,#var_FC] .text:00025724 CMP R0, #0 .text:00025728 BEQ loc_28F40 .text:0002572C LDR R1, [R11,#var_E0] .text:00025730 SUB R0, R11, #-var_38 .text:00025734 B loc_28F3C .text:00025738 ; --------------------------------------------------------------------------- .text:00025738 .text:00025738 loc_25738 ; CODE XREF: _IO_vfscanf+1444j .text:00025738 MOV R1, #0x64 .text:0002573C STR R1, [R11,#var_E4] .text:00025740 MOV R0, R1,LSL#2 .text:00025744 BL malloc .text:00025748 STR R0, [R11,#var_DC] .text:0002574C LDR R2, [R11,#var_E0] .text:00025750 STR R0, [R2] .text:00025754 B loc_2579C .text:00025758 ; --------------------------------------------------------------------------- .text:00025758 .text:00025758 loc_25758 ; CODE XREF: _IO_vfscanf+13F4j .text:00025758 LDR R3, [R11,#var_100] .text:0002575C CMP R3, #0 .text:00025760 BNE loc_25778 .text:00025764 LDR R12, [R11,#var_A0] .text:00025768 LDR LR, [R12],#4 .text:0002576C STR LR, [R11,#var_DC] .text:00025770 STR R12, [R11,#var_A0] .text:00025774 B loc_2579C .text:00025778 ; --------------------------------------------------------------------------- .text:00025778 .text:00025778 loc_25778 ; CODE XREF: _IO_vfscanf+14B0j .text:00025778 LDR R1, [R11,#var_100] .text:0002577C LDR R0, [R11,#var_98] .text:00025780 SUBS R2, R1, #1 .text:00025784 BEQ loc_25794 .text:00025788 .text:00025788 loc_25788 ; CODE XREF: _IO_vfscanf+14E0j .text:00025788 ADD R0, R0, #4 .text:0002578C SUBS R2, R2, #1 .text:00025790 BNE loc_25788 .text:00025794 .text:00025794 loc_25794 ; CODE XREF: _IO_vfscanf+14D4j .text:00025794 LDR R0, [R0] .text:00025798 STR R0, [R11,#var_DC] .text:0002579C .text:0002579C loc_2579C ; CODE XREF: _IO_vfscanf+14A4j .text:0002579C ; _IO_vfscanf+14C4j .text:0002579C LDR R2, [R11,#var_DC] .text:000257A0 CMP R2, #0 .text:000257A4 BNE loc_257EC .text:000257A8 LDR R3, [R11,#var_9C] .text:000257AC CMP R3, #0 .text:000257B0 LDRNE R3, [R3] .text:000257B4 LDRNE R12, [R11,#var_9C] .text:000257B8 ORRNE R3, R3, #2 .text:000257BC STRNE R3, [R12] .text:000257C0 LDR R3, [R7] .text:000257C4 TST R3, #0x8000 .text:000257C8 BNE loc_257D4 .text:000257CC MOV R0, R7 .text:000257D0 BL funlockfile .text:000257D4 .text:000257D4 loc_257D4 ; CODE XREF: _IO_vfscanf+1518j .text:000257D4 LDR LR, [R11,#var_FC] .text:000257D8 CMP LR, #0 .text:000257DC BEQ loc_28F40 .text:000257E0 LDR R1, [R11,#var_DC] .text:000257E4 SUB R0, R11, #-var_38 .text:000257E8 B loc_28F3C .text:000257EC ; --------------------------------------------------------------------------- .text:000257EC .text:000257EC loc_257EC ; CODE XREF: _IO_vfscanf+13ECj .text:000257EC ; _IO_vfscanf+14F4j .text:000257EC CMN R10, #1 .text:000257F0 BEQ loc_25828 .text:000257F4 LDMIB R7, {R2,R3} .text:000257F8 CMP R2, R3 .text:000257FC BCC loc_25810 .text:00025800 MOV R0, R7 .text:00025804 BL __uflow .text:00025808 MOV R10, R0 .text:0002580C B loc_25818 .text:00025810 ; --------------------------------------------------------------------------- .text:00025810 .text:00025810 loc_25810 ; CODE XREF: _IO_vfscanf+154Cj .text:00025810 LDRB R10, [R2],#1 .text:00025814 STR R2, [R7,#4] .text:00025818 .text:00025818 loc_25818 ; CODE XREF: _IO_vfscanf+155Cj .text:00025818 CMN R10, #1 .text:0002581C LDRNE R0, [R11,#var_AC] .text:00025820 ADDNE R0, R0, #1 .text:00025824 STRNE R0, [R11,#var_AC] .text:00025828 .text:00025828 loc_25828 ; CODE XREF: _IO_vfscanf+1540j .text:00025828 CMN R10, #1 .text:0002582C BEQ loc_27774 .text:00025830 SUB R0, R11, #-var_88 .text:00025834 MOV R1, #0 .text:00025838 MOV R2, #8 .text:0002583C BL memset .text:00025840 SUB R9, R11, #-var_88 .text:00025844 B loc_25AD4 .text:00025848 ; --------------------------------------------------------------------------- .text:00025848 .text:00025848 loc_25848 ; CODE XREF: _IO_vfscanf+183Cj .text:00025848 MOV R4, #1 .text:0002584C SUB R5, R11, #-var_48 .text:00025850 STRB R10, [R11,#var_48] .text:00025854 .text:00025854 loc_25854 ; CODE XREF: _IO_vfscanf+166Cj .text:00025854 CMP R8, #0 .text:00025858 MOV R1, R5 .text:0002585C MOV R2, R4 .text:00025860 LDR R0, [R11,#var_DC] .text:00025864 MOV R3, R9 .text:00025868 MOVNE R0, #0 .text:0002586C BL mbrtowc .text:00025870 CMN R0, #2 .text:00025874 BNE loc_25920 .text:00025878 BL __ctype_get_mb_cur_max .text:0002587C CMP R4, R0 .text:00025880 BCC loc_2589C .text:00025884 LDR R0, =aCnt__ctype_get ; "cnt < (__ctype_get_mb_cur_max ())" .text:00025888 LDR R1, =aVfscanf_c ; "vfscanf.c" .text:0002588C MOV R2, #0x430 .text:00025890 LDR R3, =a_io_vfscanf ; "_IO_vfscanf" .text:00025894 ADD R2, R2, #0xB .text:00025898 BL __assert_fail .text:0002589C ; --------------------------------------------------------------------------- .text:0002589C .text:0002589C loc_2589C ; CODE XREF: _IO_vfscanf+15D0j .text:0002589C CMN R10, #1 .text:000258A0 BEQ loc_258E0 .text:000258A4 LDMIB R7, {R2,R3} .text:000258A8 CMP R2, R3 .text:000258AC BCC loc_258C0 .text:000258B0 MOV R0, R7 .text:000258B4 BL __uflow .text:000258B8 MOV R10, R0 .text:000258BC B loc_258C8 .text:000258C0 ; --------------------------------------------------------------------------- .text:000258C0 .text:000258C0 loc_258C0 ; CODE XREF: _IO_vfscanf+15FCj .text:000258C0 LDRB R10, [R2],#1 .text:000258C4 STR R2, [R7,#4] .text:000258C8 .text:000258C8 loc_258C8 ; CODE XREF: _IO_vfscanf+160Cj .text:000258C8 CMN R10, #1 .text:000258CC LDRNE R12, [R11,#var_AC] .text:000258D0 ADDNE R12, R12, #1 .text:000258D4 STRNE R12, [R11,#var_AC] .text:000258D8 CMN R10, #1 .text:000258DC BNE loc_25914 .text:000258E0 .text:000258E0 loc_258E0 ; CODE XREF: _IO_vfscanf+15F0j .text:000258E0 LDR LR, [R11,#var_9C] .text:000258E4 CMP LR, #0 .text:000258E8 LDRNE R3, [LR] .text:000258EC ORRNE R3, R3, #4 .text:000258F0 STRNE R3, [LR] .text:000258F4 LDR R3, [R7] .text:000258F8 TST R3, #0x8000 .text:000258FC BNE loc_25908 .text:00025900 MOV R0, R7 .text:00025904 BL funlockfile .text:00025908 .text:00025908 loc_25908 ; CODE XREF: _IO_vfscanf+164Cj .text:00025908 LDR R0, [R11,#var_FC] .text:0002590C CMP R0, #0 .text:00025910 B loc_25244 .text:00025914 ; --------------------------------------------------------------------------- .text:00025914 .text:00025914 loc_25914 ; CODE XREF: _IO_vfscanf+162Cj .text:00025914 STRB R10, [R5,R4] .text:00025918 ADD R4, R4, #1 .text:0002591C B loc_25854 .text:00025920 ; --------------------------------------------------------------------------- .text:00025920 .text:00025920 loc_25920 ; CODE XREF: _IO_vfscanf+15C4j .text:00025920 CMP R0, R4 .text:00025924 BEQ loc_2596C .text:00025928 LDR R1, [R11,#var_9C] .text:0002592C CMP R1, #0 .text:00025930 LDRNE R3, [R1] .text:00025934 ORRNE R3, R3, #4 .text:00025938 STRNE R3, [R1] .text:0002593C LDR R3, [R7] .text:00025940 TST R3, #0x8000 .text:00025944 BNE loc_25950 .text:00025948 MOV R0, R7 .text:0002594C BL funlockfile .text:00025950 .text:00025950 loc_25950 ; CODE XREF: _IO_vfscanf+1694j .text:00025950 LDR R2, [R11,#var_FC] .text:00025954 CMP R2, #0 .text:00025958 B loc_25244 .text:00025958 ; --------------------------------------------------------------------------- .text:0002595C off_2595C DCD __ctype_b ; DATA XREF: _IO_vfscanf:loc_25658r .text:00025960 off_25960 DCD aCnt__ctype_get ; DATA XREF: _IO_vfscanf+15D4r .text:00025960 ; "cnt < (__ctype_get_mb_cur_max ())" .text:00025964 off_25964 DCD aVfscanf_c ; DATA XREF: _IO_vfscanf+15D8r .text:00025964 ; "vfscanf.c" .text:00025968 off_25968 DCD a_io_vfscanf ; DATA XREF: _IO_vfscanf+15E0r .text:00025968 ; "_IO_vfscanf" .text:0002596C ; --------------------------------------------------------------------------- .text:0002596C .text:0002596C loc_2596C ; CODE XREF: _IO_vfscanf+1674j .text:0002596C LDR R12, [R11,#var_B4] .text:00025970 AND R3, R12, #0x108 .text:00025974 CMP R3, #0x100 .text:00025978 BNE loc_25A74 .text:0002597C LDR LR, [R11,#var_E4] .text:00025980 SUB R1, R11, #-var_E0 .text:00025984 LDMIA R1, {R1,R2} .text:00025988 MOV R3, LR,LSL#2 .text:0002598C LDR R0, [R1] .text:00025990 MOV R6, R3 .text:00025994 ADD R3, R0, R3 .text:00025998 CMP R2, R3 .text:0002599C BNE loc_25A74 .text:000259A0 MOV R1, LR,LSL#3 .text:000259A4 BL realloc .text:000259A8 CMP R0, #0 .text:000259AC STR R0, [R11,#var_DC] .text:000259B0 BNE loc_25A54 .text:000259B4 LDR R12, [R11,#var_E4] .text:000259B8 LDR R3, [R11,#var_E0] .text:000259BC ADD R4, R12, #1 .text:000259C0 LDR R0, [R3] .text:000259C4 MOV R1, R4,LSL#2 .text:000259C8 BL realloc .text:000259CC CMP R0, #0 .text:000259D0 STR R0, [R11,#var_DC] .text:000259D4 BNE loc_25A38 .text:000259D8 LDR LR, [R11,#var_E0] .text:000259DC LDR R0, [R11,#var_A8] .text:000259E0 LDR R3, [LR] .text:000259E4 ADD R0, R0, #1 .text:000259E8 STR R0, [R11,#var_A8] .text:000259EC LDR R1, [R11,#var_DC] .text:000259F0 ADD R3, R6, R3 .text:000259F4 STR R1, [R3,#-4] .text:000259F8 LDR R2, [R11,#var_9C] .text:000259FC CMP R2, #0 .text:00025A00 LDRNE R3, [R2] .text:00025A04 ORRNE R3, R3, #2 .text:00025A08 STRNE R3, [R2] .text:00025A0C LDR R3, [R7] .text:00025A10 TST R3, #0x8000 .text:00025A14 BNE loc_25A20 .text:00025A18 MOV R0, R7 .text:00025A1C BL funlockfile .text:00025A20 .text:00025A20 loc_25A20 ; CODE XREF: _IO_vfscanf+1764j .text:00025A20 LDR R3, [R11,#var_FC] .text:00025A24 CMP R3, #0 .text:00025A28 BEQ loc_28F40 .text:00025A2C LDR R1, [R11,#var_DC] .text:00025A30 SUB R0, R11, #-var_38 .text:00025A34 B loc_28F3C .text:00025A38 ; --------------------------------------------------------------------------- .text:00025A38 .text:00025A38 loc_25A38 ; CODE XREF: _IO_vfscanf+1724j .text:00025A38 SUB R12, R11, #-var_E0 .text:00025A3C LDMIA R12, {R12,LR} .text:00025A40 STR LR, [R12] .text:00025A44 ADD LR, LR, R6 .text:00025A48 STR LR, [R11,#var_DC] .text:00025A4C STR R4, [R11,#var_E4] .text:00025A50 B loc_25A74 .text:00025A54 ; --------------------------------------------------------------------------- .text:00025A54 .text:00025A54 loc_25A54 ; CODE XREF: _IO_vfscanf+1700j .text:00025A54 SUB R0, R11, #-var_E0 .text:00025A58 LDMIA R0, {R0,R1} .text:00025A5C STR R1, [R0] .text:00025A60 LDR R2, [R11,#var_E4] .text:00025A64 ADD R1, R1, R6 .text:00025A68 STR R1, [R11,#var_DC] .text:00025A6C MOV R2, R2,LSL#1 .text:00025A70 STR R2, [R11,#var_E4] .text:00025A74 .text:00025A74 loc_25A74 ; CODE XREF: _IO_vfscanf+16C8j .text:00025A74 ; _IO_vfscanf+16ECj ... .text:00025A74 LDR R3, [R11,#var_B0] .text:00025A78 CMP R3, #0 .text:00025A7C BLE loc_25A90 .text:00025A80 SUB R3, R3, #1 .text:00025A84 CMP R3, #0 .text:00025A88 STR R3, [R11,#var_B0] .text:00025A8C BLE loc_25B08 .text:00025A90 .text:00025A90 loc_25A90 ; CODE XREF: _IO_vfscanf+17CCj .text:00025A90 CMN R10, #1 .text:00025A94 BEQ loc_25B08 .text:00025A98 LDMIB R7, {R2,R3} .text:00025A9C CMP R2, R3 .text:00025AA0 BCC loc_25AB4 .text:00025AA4 MOV R0, R7 .text:00025AA8 BL __uflow .text:00025AAC MOV R10, R0 .text:00025AB0 B loc_25ABC .text:00025AB4 ; --------------------------------------------------------------------------- .text:00025AB4 .text:00025AB4 loc_25AB4 ; CODE XREF: _IO_vfscanf+17F0j .text:00025AB4 LDRB R10, [R2],#1 .text:00025AB8 STR R2, [R7,#4] .text:00025ABC .text:00025ABC loc_25ABC ; CODE XREF: _IO_vfscanf+1800j .text:00025ABC CMN R10, #1 .text:00025AC0 LDRNE R12, [R11,#var_AC] .text:00025AC4 ADDNE R12, R12, #1 .text:00025AC8 STRNE R12, [R11,#var_AC] .text:00025ACC CMN R10, #1 .text:00025AD0 BEQ loc_25B08 .text:00025AD4 .text:00025AD4 loc_25AD4 ; CODE XREF: _IO_vfscanf+1594j .text:00025AD4 LDR LR, =__ctype_b .text:00025AD8 LDR R3, [LR] .text:00025ADC MOV R2, R10,LSL#1 .text:00025AE0 ADD R2, R2, R3 .text:00025AE4 LDRB R1, [R2,#1] .text:00025AE8 TST R1, #0x20 .text:00025AEC BEQ loc_25848 .text:00025AF0 LDR R0, [R11,#var_AC] .text:00025AF4 SUB R0, R0, #1 .text:00025AF8 STR R0, [R11,#var_AC] .text:00025AFC AND R1, R10, #0xFF .text:00025B00 MOV R0, R7 .text:00025B04 BL _IO_sputbackc .text:00025B08 .text:00025B08 loc_25B08 ; CODE XREF: _IO_vfscanf+17DCj .text:00025B08 ; _IO_vfscanf+17E4j ... .text:00025B08 CMP R8, #0 .text:00025B0C BNE loc_28E98 .text:00025B10 LDR R2, [R11,#var_DC] .text:00025B14 LDR R1, [R11,#var_B4] .text:00025B18 STR R8, [R2],#4 .text:00025B1C TST R1, #0x100 .text:00025B20 STR R2, [R11,#var_DC] .text:00025B24 BEQ loc_25B58 .text:00025B28 LDR R3, [R11,#var_E0] .text:00025B2C LDR R0, [R3] .text:00025B30 LDR R12, [R11,#var_E4] .text:00025B34 RSB R3, R0, R2 .text:00025B38 MOV R1, R3,ASR#2 .text:00025B3C CMP R1, R12 .text:00025B40 BEQ loc_25B58 .text:00025B44 MOV R1, R1,LSL#2 .text:00025B48 BL realloc .text:00025B4C CMP R0, #0 .text:00025B50 LDRNE LR, [R11,#var_E0] .text:00025B54 STRNE R0, [LR] .text:00025B58 .text:00025B58 loc_25B58 ; CODE XREF: _IO_vfscanf+1874j .text:00025B58 ; _IO_vfscanf+1890j .text:00025B58 LDR R0, [R11,#var_A8] .text:00025B5C ADD R0, R0, #1 .text:00025B60 STR R0, [R11,#var_A8] .text:00025B64 B loc_28E98 .text:00025B68 ; --------------------------------------------------------------------------- .text:00025B68 .text:00025B68 loc_25B68 ; CODE XREF: _IO_vfscanf+898j .text:00025B68 ; DATA XREF: _IO_vfscanf+8A0o .text:00025B68 MOV R1, #0x10 ; jumptable 00024B48 cases 51,83 .text:00025B6C STR R1, [R11,#var_C0] .text:00025B70 MOV R2, #0 .text:00025B74 STR R2, [R11,#var_C4] .text:00025B78 B loc_25BC4 .text:00025B7C ; --------------------------------------------------------------------------- .text:00025B7C .text:00025B7C loc_25B7C ; CODE XREF: _IO_vfscanf+898j .text:00025B7C ; DATA XREF: _IO_vfscanf+8A0o .text:00025B7C MOV R3, #8 ; jumptable 00024B48 case 74 .text:00025B80 STR R3, [R11,#var_C0] .text:00025B84 MOV R12, #0 .text:00025B88 B loc_25BC0 .text:00025B8C ; --------------------------------------------------------------------------- .text:00025B8C .text:00025B8C loc_25B8C ; CODE XREF: _IO_vfscanf+898j .text:00025B8C ; DATA XREF: _IO_vfscanf+8A0o .text:00025B8C MOV LR, #0xA ; jumptable 00024B48 case 80 .text:00025B90 STR LR, [R11,#var_C0] .text:00025B94 MOV R0, #0 .text:00025B98 STR R0, [R11,#var_C4] .text:00025B9C B loc_25BC4 .text:00025BA0 ; --------------------------------------------------------------------------- .text:00025BA0 .text:00025BA0 loc_25BA0 ; CODE XREF: _IO_vfscanf+898j .text:00025BA0 ; DATA XREF: _IO_vfscanf+8A0o .text:00025BA0 MOV R1, #0xA ; jumptable 00024B48 case 63 .text:00025BA4 STR R1, [R11,#var_C0] .text:00025BA8 MOV R2, #1 .text:00025BAC STR R2, [R11,#var_C4] .text:00025BB0 B loc_25BC4 .text:00025BB4 ; --------------------------------------------------------------------------- .text:00025BB4 .text:00025BB4 loc_25BB4 ; CODE XREF: _IO_vfscanf+898j .text:00025BB4 ; DATA XREF: _IO_vfscanf+8A0o .text:00025BB4 MOV R3, #0 ; jumptable 00024B48 case 68 .text:00025BB8 STR R3, [R11,#var_C0] .text:00025BBC MOV R12, #1 .text:00025BC0 .text:00025BC0 loc_25BC0 ; CODE XREF: _IO_vfscanf+18D8j .text:00025BC0 STR R12, [R11,#var_C4] .text:00025BC4 .text:00025BC4 loc_25BC4 ; CODE XREF: _IO_vfscanf+18C8j .text:00025BC4 ; _IO_vfscanf+18ECj ... .text:00025BC4 CMN R10, #1 .text:00025BC8 BEQ loc_25C00 .text:00025BCC LDMIB R7, {R2,R3} .text:00025BD0 CMP R2, R3 .text:00025BD4 BCC loc_25BE8 .text:00025BD8 MOV R0, R7 .text:00025BDC BL __uflow .text:00025BE0 MOV R10, R0 .text:00025BE4 B loc_25BF0 .text:00025BE8 ; --------------------------------------------------------------------------- .text:00025BE8 .text:00025BE8 loc_25BE8 ; CODE XREF: _IO_vfscanf+1924j .text:00025BE8 LDRB R10, [R2],#1 .text:00025BEC STR R2, [R7,#4] .text:00025BF0 .text:00025BF0 loc_25BF0 ; CODE XREF: _IO_vfscanf+1934j .text:00025BF0 CMN R10, #1 .text:00025BF4 LDRNE LR, [R11,#var_AC] .text:00025BF8 ADDNE LR, LR, #1 .text:00025BFC STRNE LR, [R11,#var_AC] .text:00025C00 .text:00025C00 loc_25C00 ; CODE XREF: _IO_vfscanf+1918j .text:00025C00 MOV R4, R10 .text:00025C04 CMN R10, #1 .text:00025C08 BEQ loc_27644 .text:00025C0C CMP R4, #0x2B .text:00025C10 CMPNE R4, #0x2D .text:00025C14 BNE loc_25CBC .text:00025C18 SUB R3, R11, #-var_F8 .text:00025C1C LDMIA R3, {R3,R12} .text:00025C20 CMP R3, R12 .text:00025C24 BNE loc_25C58 .text:00025C28 MOV R3, R12,LSL#1 .text:00025C2C CMP R3, #0x100 .text:00025C30 MOVCC R3, #0x100 .text:00025C34 STR R3, [R11,#var_F4] .text:00025C38 LDR R1, [R11,#var_F0] .text:00025C3C SUB SP, SP, R3,LSL#2 .text:00025C40 STR SP, [R11,#var_F0] .text:00025C44 CMP R1, #0 .text:00025C48 BEQ loc_25C58 .text:00025C4C LDR R2, [R11,#var_F8] .text:00025C50 MOV R0, SP .text:00025C54 BL memcpy .text:00025C58 .text:00025C58 loc_25C58 ; CODE XREF: _IO_vfscanf+1974j .text:00025C58 ; _IO_vfscanf+1998j .text:00025C58 LDR LR, [R11,#var_F0] .text:00025C5C LDR R0, [R11,#var_F8] .text:00025C60 STRB R4, [LR,R0] .text:00025C64 ADD R0, R0, #1 .text:00025C68 STR R0, [R11,#var_F8] .text:00025C6C LDR R1, [R11,#var_B0] .text:00025C70 MOV R2, R1 .text:00025C74 CMP R2, #0 .text:00025C78 SUBGT R1, R1, #1 .text:00025C7C CMN R4, #1 .text:00025C80 STR R1, [R11,#var_B0] .text:00025C84 BEQ loc_25CBC .text:00025C88 LDMIB R7, {R2,R3} .text:00025C8C CMP R2, R3 .text:00025C90 BCC loc_25CA4 .text:00025C94 MOV R0, R7 .text:00025C98 BL __uflow .text:00025C9C MOV R10, R0 .text:00025CA0 B loc_25CAC .text:00025CA4 ; --------------------------------------------------------------------------- .text:00025CA4 .text:00025CA4 loc_25CA4 ; CODE XREF: _IO_vfscanf+19E0j .text:00025CA4 LDRB R10, [R2],#1 .text:00025CA8 STR R2, [R7,#4] .text:00025CAC .text:00025CAC loc_25CAC ; CODE XREF: _IO_vfscanf+19F0j .text:00025CAC CMN R10, #1 .text:00025CB0 LDRNE R3, [R11,#var_AC] .text:00025CB4 ADDNE R3, R3, #1 .text:00025CB8 STRNE R3, [R11,#var_AC] .text:00025CBC .text:00025CBC loc_25CBC ; CODE XREF: _IO_vfscanf+1964j .text:00025CBC ; _IO_vfscanf+19D4j .text:00025CBC LDR R12, [R11,#var_B0] .text:00025CC0 CMP R10, #0x30 .text:00025CC4 MOVNE R3, #0 .text:00025CC8 MOVEQ R3, #1 .text:00025CCC CMP R12, #0 .text:00025CD0 MOVEQ R3, #0 .text:00025CD4 CMP R3, #0 .text:00025CD8 BEQ loc_25E38 .text:00025CDC CMP R12, #0 .text:00025CE0 SUBGT R12, R12, #1 .text:00025CE4 STR R12, [R11,#var_B0] .text:00025CE8 LDR LR, [R11,#var_F8] .text:00025CEC LDR R0, [R11,#var_F4] .text:00025CF0 CMP LR, R0 .text:00025CF4 BNE loc_25D28 .text:00025CF8 MOV R3, R0,LSL#1 .text:00025CFC CMP R3, #0x100 .text:00025D00 MOVCC R3, #0x100 .text:00025D04 STR R3, [R11,#var_F4] .text:00025D08 LDR R1, [R11,#var_F0] .text:00025D0C SUB SP, SP, R3,LSL#2 .text:00025D10 STR SP, [R11,#var_F0] .text:00025D14 CMP R1, #0 .text:00025D18 BEQ loc_25D28 .text:00025D1C MOV R0, SP .text:00025D20 MOV R2, LR .text:00025D24 BL memcpy .text:00025D28 .text:00025D28 loc_25D28 ; CODE XREF: _IO_vfscanf+1A44j .text:00025D28 ; _IO_vfscanf+1A68j .text:00025D28 LDR R1, [R11,#var_F0] .text:00025D2C LDR R2, [R11,#var_F8] .text:00025D30 STRB R10, [R1,R2] .text:00025D34 ADD R2, R2, #1 .text:00025D38 STR R2, [R11,#var_F8] .text:00025D3C CMN R10, #1 .text:00025D40 BEQ loc_25D78 .text:00025D44 LDMIB R7, {R2,R3} .text:00025D48 CMP R2, R3 .text:00025D4C BCC loc_25D60 .text:00025D50 MOV R0, R7 .text:00025D54 BL __uflow .text:00025D58 MOV R10, R0 .text:00025D5C B loc_25D68 .text:00025D60 ; --------------------------------------------------------------------------- .text:00025D60 .text:00025D60 loc_25D60 ; CODE XREF: _IO_vfscanf+1A9Cj .text:00025D60 LDRB R10, [R2],#1 .text:00025D64 STR R2, [R7,#4] .text:00025D68 .text:00025D68 loc_25D68 ; CODE XREF: _IO_vfscanf+1AACj .text:00025D68 CMN R10, #1 .text:00025D6C LDRNE R3, [R11,#var_AC] .text:00025D70 ADDNE R3, R3, #1 .text:00025D74 STRNE R3, [R11,#var_AC] .text:00025D78 .text:00025D78 loc_25D78 ; CODE XREF: _IO_vfscanf+1A90j .text:00025D78 MOV R2, R10 .text:00025D7C LDR R12, [R11,#var_B0] .text:00025D80 CMP R12, #0 .text:00025D84 BEQ loc_25E24 .text:00025D88 LDR LR, [R11,#var_104] .text:00025D8C ADD R3, R2, #0x80 .text:00025D90 CMP R3, LR .text:00025D94 LDRLS R0, =__ctype_tolower .text:00025D98 LDRLS R3, [R0] .text:00025D9C LDRLS R3, [R3,R2,LSL#2] .text:00025DA0 MOVHI R3, R2 .text:00025DA4 CMP R3, #0x78 .text:00025DA8 BNE loc_25E24 .text:00025DAC LDR R1, [R11,#var_C0] .text:00025DB0 MOV R3, R1 .text:00025DB4 CMP R3, #0 .text:00025DB8 MOVEQ R1, #0x10 .text:00025DBC CMP R1, #0x10 .text:00025DC0 STR R1, [R11,#var_C0] .text:00025DC4 BNE loc_25E38 .text:00025DC8 LDR R12, [R11,#var_B0] .text:00025DCC MOV LR, R12 .text:00025DD0 CMP LR, #0 .text:00025DD4 SUBGT R12, R12, #1 .text:00025DD8 CMN R2, #1 .text:00025DDC STR R12, [R11,#var_B0] .text:00025DE0 BEQ loc_25E38 .text:00025DE4 LDMIB R7, {R2,R3} .text:00025DE8 CMP R2, R3 .text:00025DEC BCC loc_25E00 .text:00025DF0 MOV R0, R7 .text:00025DF4 BL __uflow .text:00025DF8 MOV R10, R0 .text:00025DFC B loc_25E08 .text:00025E00 ; --------------------------------------------------------------------------- .text:00025E00 .text:00025E00 loc_25E00 ; CODE XREF: _IO_vfscanf+1B3Cj .text:00025E00 LDRB R10, [R2],#1 .text:00025E04 STR R2, [R7,#4] .text:00025E08 .text:00025E08 loc_25E08 ; CODE XREF: _IO_vfscanf+1B4Cj .text:00025E08 CMN R10, #1 .text:00025E0C LDRNE R0, [R11,#var_AC] .text:00025E10 ADDNE R0, R0, #1 .text:00025E14 STRNE R0, [R11,#var_AC] .text:00025E18 B loc_25E38 .text:00025E18 ; --------------------------------------------------------------------------- .text:00025E1C off_25E1C DCD __ctype_b ; DATA XREF: _IO_vfscanf:loc_25AD4r .text:00025E20 off_25E20 DCD __ctype_tolower ; DATA XREF: _IO_vfscanf+1AE4r .text:00025E24 ; --------------------------------------------------------------------------- .text:00025E24 .text:00025E24 loc_25E24 ; CODE XREF: _IO_vfscanf+1AD4j .text:00025E24 ; _IO_vfscanf+1AF8j .text:00025E24 LDR R1, [R11,#var_C0] .text:00025E28 MOV R2, R1 .text:00025E2C CMP R2, #0 .text:00025E30 MOVEQ R1, #8 .text:00025E34 STR R1, [R11,#var_C0] .text:00025E38 .text:00025E38 loc_25E38 ; CODE XREF: _IO_vfscanf+1A28j .text:00025E38 ; _IO_vfscanf+1B14j ... .text:00025E38 LDR R3, [R11,#var_C0] .text:00025E3C MOV R12, R3 .text:00025E40 CMP R12, #0 .text:00025E44 MOVEQ R3, #0xA .text:00025E48 CMP R3, #0xA .text:00025E4C STR R3, [R11,#var_C0] .text:00025E50 BNE loc_264C4 .text:00025E54 LDR LR, [R11,#var_B4] .text:00025E58 TST LR, #0x400 .text:00025E5C BEQ loc_264C4 .text:00025E60 LDR R3, =_nl_current_LC_CTYPE .text:00025E64 LDR R2, [R3] .text:00025E68 MOV R0, #0 .text:00025E6C STR R0, [R11,#var_108] .text:00025E70 LDR R1, [R2,#0x6C] .text:00025E74 LDR R2, [R11,#var_B0] .text:00025E78 CMN R10, #1 .text:00025E7C CMPNE R2, R0 .text:00025E80 SUB R1, R1, #1 .text:00025E84 STR R1, [R11,#var_10C] .text:00025E88 BEQ loc_267B4 .text:00025E8C SUB R3, R11, #-var_70 .text:00025E90 STR R3, [R11,#var_114] .text:00025E94 .text:00025E94 loc_25E94 ; CODE XREF: _IO_vfscanf+220Cj .text:00025E94 MOV R12, #0 .text:00025E98 .text:00025E98 loc_25E98 ; CODE XREF: _IO_vfscanf+1DACj .text:00025E98 ADD R2, R12, #0x14 .text:00025E9C LDR LR, [R11,#var_B0] .text:00025EA0 MOV R2, R2,LSL#16 .text:00025EA4 LDR R0, [R11,#var_108] .text:00025EA8 MOV R2, R2,LSR#16 .text:00025EAC LDR R1, =_nl_current_LC_CTYPE .text:00025EB0 CMP LR, #0 .text:00025EB4 MOV R9, LR .text:00025EB8 MOVLE R9, 0x7FFFFFFF .text:00025EBC LDR R3, [R1] .text:00025EC0 CMP R0, #0 .text:00025EC4 ADD R3, R3, #0x20 .text:00025EC8 LDR R1, [R3,R2,LSL#2] .text:00025ECC MOV R0, R12,LSL#2 .text:00025ED0 LDR R2, [R11,#var_114] .text:00025ED4 MOV R6, R0 .text:00025ED8 STR R1, [R2,R0] .text:00025EDC BLE loc_25F10 .text:00025EE0 LDR R4, [R11,#var_114] .text:00025EE4 MOV R5, R6 .text:00025EE8 LDR R8, [R11,#var_108] .text:00025EEC .text:00025EEC loc_25EEC ; CODE XREF: _IO_vfscanf+1C5Cj .text:00025EEC LDR R0, [R4,R5] .text:00025EF0 STR R12, [R11,#var_118] .text:00025EF4 MOV R1, #0 .text:00025EF8 BL rawmemchr .text:00025EFC ADD R0, R0, #1 .text:00025F00 STR R0, [R4,R5] .text:00025F04 SUBS R8, R8, #1 .text:00025F08 LDR R12, [R11,#var_118] .text:00025F0C BNE loc_25EEC .text:00025F10 .text:00025F10 loc_25F10 ; CODE XREF: _IO_vfscanf+1C2Cj .text:00025F10 LDR R3, [R11,#var_114] .text:00025F14 LDR R4, [R3,R6] .text:00025F18 LDRB R2, [R4] .text:00025F1C CMP R9, #0 .text:00025F20 MOVLE R3, #0 .text:00025F24 MOVGT R3, #1 .text:00025F28 CMP R2, R10 .text:00025F2C B loc_25F98 .text:00025F30 ; --------------------------------------------------------------------------- .text:00025F30 .text:00025F30 loc_25F30 ; CODE XREF: _IO_vfscanf+1CFCj .text:00025F30 CMN R10, #1 .text:00025F34 BEQ loc_25F74 .text:00025F38 LDMIB R7, {R2,R3} .text:00025F3C CMP R2, R3 .text:00025F40 BCC loc_25F5C .text:00025F44 STR R12, [R11,#var_118] .text:00025F48 MOV R0, R7 .text:00025F4C BL __uflow .text:00025F50 MOV R10, R0 .text:00025F54 LDR R12, [R11,#var_118] .text:00025F58 B loc_25F64 .text:00025F5C ; --------------------------------------------------------------------------- .text:00025F5C .text:00025F5C loc_25F5C ; CODE XREF: _IO_vfscanf+1C90j .text:00025F5C LDRB R10, [R2],#1 .text:00025F60 STR R2, [R7,#4] .text:00025F64 .text:00025F64 loc_25F64 ; CODE XREF: _IO_vfscanf+1CA8j .text:00025F64 CMN R10, #1 .text:00025F68 LDRNE LR, [R11,#var_AC] .text:00025F6C ADDNE LR, LR, #1 .text:00025F70 STRNE LR, [R11,#var_AC] .text:00025F74 .text:00025F74 loc_25F74 ; CODE XREF: _IO_vfscanf+1C84j .text:00025F74 MOV R1, R10 .text:00025F78 CMN R10, #1 .text:00025F7C BEQ loc_25FB0 .text:00025F80 SUB R9, R9, #1 .text:00025F84 LDRB R2, [R4] .text:00025F88 CMP R9, #0 .text:00025F8C MOVLE R3, #0 .text:00025F90 MOVGT R3, #1 .text:00025F94 CMP R2, R1 .text:00025F98 .text:00025F98 loc_25F98 ; CODE XREF: _IO_vfscanf+1C7Cj .text:00025F98 MOVNE R3, #0 .text:00025F9C CMP R3, #0 .text:00025FA0 BEQ loc_25FB0 .text:00025FA4 LDRB R3, [R4,#1]! .text:00025FA8 CMP R3, #0 .text:00025FAC BNE loc_25F30 .text:00025FB0 .text:00025FB0 loc_25FB0 ; CODE XREF: _IO_vfscanf+1CCCj .text:00025FB0 ; _IO_vfscanf+1CF0j .text:00025FB0 LDRB R3, [R4] .text:00025FB4 CMP R3, #0 .text:00025FB8 BEQ loc_26234 .text:00025FBC LDR R0, [R11,#var_114] .text:00025FC0 LDR R3, [R0,R6] .text:00025FC4 ADD R5, R12, #1 .text:00025FC8 CMP R4, R3 .text:00025FCC BLS loc_26030 .text:00025FD0 CMN R10, #1 .text:00025FD4 BEQ loc_25FF0 .text:00025FD8 LDR R1, [R11,#var_AC] .text:00025FDC SUB R1, R1, #1 .text:00025FE0 STR R1, [R11,#var_AC] .text:00025FE4 MOV R0, R7 .text:00025FE8 AND R1, R10, #0xFF .text:00025FEC BL _IO_sputbackc .text:00025FF0 .text:00025FF0 loc_25FF0 ; CODE XREF: _IO_vfscanf+1D24j .text:00025FF0 LDR R2, [R11,#var_114] .text:00025FF4 LDR R3, [R2,R6] .text:00025FF8 SUB R4, R4, #1 .text:00025FFC CMP R4, R3 .text:00026000 BLS loc_2602C .text:00026004 .text:00026004 loc_26004 ; CODE XREF: _IO_vfscanf+1D78j .text:00026004 LDRB R1, [R4],#-1 .text:00026008 MOV R0, R7 .text:0002600C BL _IO_sputbackc .text:00026010 LDR R12, [R11,#var_114] .text:00026014 LDR LR, [R11,#var_AC] .text:00026018 LDR R3, [R12,R6] .text:0002601C SUB LR, LR, #1 .text:00026020 STR LR, [R11,#var_AC] .text:00026024 CMP R4, R3 .text:00026028 BHI loc_26004 .text:0002602C .text:0002602C loc_2602C ; CODE XREF: _IO_vfscanf+1D50j .text:0002602C LDRB R10, [R4] .text:00026030 .text:00026030 loc_26030 ; CODE XREF: _IO_vfscanf+1D1Cj .text:00026030 LDR R2, [R11,#var_114] .text:00026034 LDR R0, [R2,R6] .text:00026038 MOV R12, R5 .text:0002603C STR R12, [R11,#var_118] .text:00026040 MOV R1, #0 .text:00026044 BL rawmemchr .text:00026048 LDR R12, [R11,#var_118] .text:0002604C ADD R0, R0, #1 .text:00026050 LDR R3, [R11,#var_114] .text:00026054 CMP R12, #9 .text:00026058 STR R0, [R3,R6] .text:0002605C BLE loc_25E98 .text:00026060 .text:00026060 loc_26060 ; CODE XREF: _IO_vfscanf+1FA0j .text:00026060 CMP R12, #0xA .text:00026064 BNE loc_26220 .text:00026068 SUB R0, R11, #-var_10C .text:0002606C LDMIA R0, {R0,LR} .text:00026070 ADD R8, LR, #1 .text:00026074 CMP R8, R0 .text:00026078 BGT loc_26220 .text:0002607C LDR R9, [R11,#var_114] .text:00026080 .text:00026080 loc_26080 ; CODE XREF: _IO_vfscanf+1F6Cj .text:00026080 MOV R12, #0 .text:00026084 .text:00026084 loc_26084 ; CODE XREF: _IO_vfscanf+1F30j .text:00026084 MOV R3, R12,LSL#2 .text:00026088 LDR R1, [R11,#var_B0] .text:0002608C MOV R6, R3 .text:00026090 LDR R2, [R11,#var_114] .text:00026094 CMP R1, #0 .text:00026098 MOV R5, R1 .text:0002609C LDR R4, [R2,R3] .text:000260A0 MOVLE R5, 0x7FFFFFFF .text:000260A4 LDRB R2, [R4] .text:000260A8 CMP R5, #0 .text:000260AC MOVLE R3, #0 .text:000260B0 MOVGT R3, #1 .text:000260B4 CMP R2, R10 .text:000260B8 B loc_26124 .text:000260BC ; --------------------------------------------------------------------------- .text:000260BC .text:000260BC loc_260BC ; CODE XREF: _IO_vfscanf+1E88j .text:000260BC CMN R10, #1 .text:000260C0 BEQ loc_26100 .text:000260C4 LDMIB R7, {R2,R3} .text:000260C8 CMP R2, R3 .text:000260CC BCC loc_260E8 .text:000260D0 STR R12, [R11,#var_118] .text:000260D4 MOV R0, R7 .text:000260D8 BL __uflow .text:000260DC MOV R10, R0 .text:000260E0 LDR R12, [R11,#var_118] .text:000260E4 B loc_260F0 .text:000260E8 ; --------------------------------------------------------------------------- .text:000260E8 .text:000260E8 loc_260E8 ; CODE XREF: _IO_vfscanf+1E1Cj .text:000260E8 LDRB R10, [R2],#1 .text:000260EC STR R2, [R7,#4] .text:000260F0 .text:000260F0 loc_260F0 ; CODE XREF: _IO_vfscanf+1E34j .text:000260F0 CMN R10, #1 .text:000260F4 LDRNE R3, [R11,#var_AC] .text:000260F8 ADDNE R3, R3, #1 .text:000260FC STRNE R3, [R11,#var_AC] .text:00026100 .text:00026100 loc_26100 ; CODE XREF: _IO_vfscanf+1E10j .text:00026100 MOV R1, R10 .text:00026104 CMN R10, #1 .text:00026108 BEQ loc_2613C .text:0002610C SUB R5, R5, #1 .text:00026110 LDRB R2, [R4] .text:00026114 CMP R5, #0 .text:00026118 MOVLE R3, #0 .text:0002611C MOVGT R3, #1 .text:00026120 CMP R2, R1 .text:00026124 .text:00026124 loc_26124 ; CODE XREF: _IO_vfscanf+1E08j .text:00026124 MOVNE R3, #0 .text:00026128 CMP R3, #0 .text:0002612C BEQ loc_2613C .text:00026130 LDRB R3, [R4,#1]! .text:00026134 CMP R3, #0 .text:00026138 BNE loc_260BC .text:0002613C .text:0002613C loc_2613C ; CODE XREF: _IO_vfscanf+1E58j .text:0002613C ; _IO_vfscanf+1E7Cj .text:0002613C LDRB R3, [R4] .text:00026140 CMP R3, #0 .text:00026144 BEQ loc_261F8 .text:00026148 LDR LR, [R11,#var_114] .text:0002614C LDR R3, [LR,R6] .text:00026150 ADD R5, R12, #1 .text:00026154 CMP R4, R3 .text:00026158 BLS loc_261BC .text:0002615C CMN R10, #1 .text:00026160 BEQ loc_2617C .text:00026164 LDR R0, [R11,#var_AC] .text:00026168 SUB R0, R0, #1 .text:0002616C STR R0, [R11,#var_AC] .text:00026170 AND R1, R10, #0xFF .text:00026174 MOV R0, R7 .text:00026178 BL _IO_sputbackc .text:0002617C .text:0002617C loc_2617C ; CODE XREF: _IO_vfscanf+1EB0j .text:0002617C LDR R1, [R11,#var_114] .text:00026180 LDR R3, [R1,R6] .text:00026184 SUB R4, R4, #1 .text:00026188 CMP R4, R3 .text:0002618C BLS loc_261B8 .text:00026190 .text:00026190 loc_26190 ; CODE XREF: _IO_vfscanf+1F04j .text:00026190 LDRB R1, [R4],#-1 .text:00026194 MOV R0, R7 .text:00026198 BL _IO_sputbackc .text:0002619C LDR R2, [R11,#var_114] .text:000261A0 LDR R12, [R11,#var_AC] .text:000261A4 LDR R3, [R2,R6] .text:000261A8 SUB R12, R12, #1 .text:000261AC STR R12, [R11,#var_AC] .text:000261B0 CMP R4, R3 .text:000261B4 BHI loc_26190 .text:000261B8 .text:000261B8 loc_261B8 ; CODE XREF: _IO_vfscanf+1EDCj .text:000261B8 LDRB R10, [R4] .text:000261BC .text:000261BC loc_261BC ; CODE XREF: _IO_vfscanf+1EA8j .text:000261BC LDR R0, [R9,R6] .text:000261C0 MOV R12, R5 .text:000261C4 STR R12, [R11,#var_118] .text:000261C8 MOV R1, #0 .text:000261CC BL rawmemchr .text:000261D0 LDR R12, [R11,#var_118] .text:000261D4 ADD R0, R0, #1 .text:000261D8 STR R0, [R9,R6] .text:000261DC CMP R12, #9 .text:000261E0 BLE loc_26084 .text:000261E4 .text:000261E4 loc_261E4 ; CODE XREF: _IO_vfscanf+1F5Cj .text:000261E4 CMP R12, #9 .text:000261E8 BGT loc_26210 .text:000261EC STR R8, [R11,#var_108] .text:000261F0 STR R8, [R11,#var_10C] .text:000261F4 B loc_26220 .text:000261F8 ; --------------------------------------------------------------------------- .text:000261F8 .text:000261F8 loc_261F8 ; CODE XREF: _IO_vfscanf+1E94j .text:000261F8 LDR LR, [R11,#var_B0] .text:000261FC MOV R0, LR .text:00026200 CMP R0, #0 .text:00026204 MOVGT LR, R5 .text:00026208 STR LR, [R11,#var_B0] .text:0002620C B loc_261E4 .text:00026210 ; --------------------------------------------------------------------------- .text:00026210 .text:00026210 loc_26210 ; CODE XREF: _IO_vfscanf+1F38j .text:00026210 LDR R1, [R11,#var_10C] .text:00026214 ADD R8, R8, #1 .text:00026218 CMP R8, R1 .text:0002621C BLE loc_26080 .text:00026220 .text:00026220 loc_26220 ; CODE XREF: _IO_vfscanf+1DB4j .text:00026220 ; _IO_vfscanf+1DC8j ... .text:00026220 CMP R12, #9 .text:00026224 BGT loc_26254 .text:00026228 ADD R10, R12, #0x30 .text:0002622C B loc_2640C .text:0002622C ; --------------------------------------------------------------------------- .text:00026230 off_26230 DCD _nl_current_LC_CTYPE ; DATA XREF: _IO_vfscanf+1BB0r .text:00026230 ; _IO_vfscanf+1BFCr .text:00026234 ; --------------------------------------------------------------------------- .text:00026234 .text:00026234 loc_26234 ; CODE XREF: _IO_vfscanf+1D08j .text:00026234 LDR R2, [R11,#var_B0] .text:00026238 MOV R3, R2 .text:0002623C CMP R3, #0 .text:00026240 MOVGT R2, R9 .text:00026244 STR R2, [R11,#var_B0] .text:00026248 LDR LR, [R11,#var_108] .text:0002624C STR LR, [R11,#var_10C] .text:00026250 B loc_26060 .text:00026254 ; --------------------------------------------------------------------------- .text:00026254 .text:00026254 loc_26254 ; CODE XREF: _IO_vfscanf+1F74j .text:00026254 LDR R0, [R11,#var_B4] .text:00026258 LDR R1, [R11,#var_CC] .text:0002625C MOV R3, R0,LSR#7 .text:00026260 CMP R1, #0 .text:00026264 ANDNE R3, R3, #1 .text:00026268 MOVEQ R3, #0 .text:0002626C CMP R3, #0 .text:00026270 BEQ loc_267B4 .text:00026274 LDR R2, [R11,#var_B0] .text:00026278 MOV R4, R1 .text:0002627C CMP R2, #0 .text:00026280 MOV R5, R2 .text:00026284 MOVLE R5, 0x7FFFFFFF .text:00026288 LDRB R2, [R1] .text:0002628C CMP R5, #0 .text:00026290 MOVLE R3, #0 .text:00026294 MOVGT R3, #1 .text:00026298 CMP R2, R10 .text:0002629C B loc_26360 .text:000262A0 ; --------------------------------------------------------------------------- .text:000262A0 .text:000262A0 loc_262A0 ; CODE XREF: _IO_vfscanf+20B8j .text:000262A0 SUB R3, R11, #-var_F8 .text:000262A4 LDMIA R3, {R3,R12} .text:000262A8 CMP R3, R12 .text:000262AC BNE loc_262E0 .text:000262B0 MOV R3, R12,LSL#1 .text:000262B4 CMP R3, #0x100 .text:000262B8 MOVCC R3, #0x100 .text:000262BC STR R3, [R11,#var_F4] .text:000262C0 LDR R1, [R11,#var_F0] .text:000262C4 SUB SP, SP, R3,LSL#2 .text:000262C8 STR SP, [R11,#var_F0] .text:000262CC CMP R1, #0 .text:000262D0 BEQ loc_262E0 .text:000262D4 LDR R2, [R11,#var_F8] .text:000262D8 MOV R0, SP .text:000262DC BL memcpy .text:000262E0 .text:000262E0 loc_262E0 ; CODE XREF: _IO_vfscanf+1FFCj .text:000262E0 ; _IO_vfscanf+2020j .text:000262E0 LDR LR, [R11,#var_F0] .text:000262E4 LDR R0, [R11,#var_F8] .text:000262E8 STRB R10, [LR,R0] .text:000262EC ADD R0, R0, #1 .text:000262F0 STR R0, [R11,#var_F8] .text:000262F4 LDRB R3, [R4,#1]! .text:000262F8 CMP R3, #0 .text:000262FC BEQ loc_2636C .text:00026300 CMN R10, #1 .text:00026304 BEQ loc_2633C .text:00026308 LDMIB R7, {R2,R3} .text:0002630C CMP R2, R3 .text:00026310 BCC loc_26324 .text:00026314 MOV R0, R7 .text:00026318 BL __uflow .text:0002631C MOV R10, R0 .text:00026320 B loc_2632C .text:00026324 ; --------------------------------------------------------------------------- .text:00026324 .text:00026324 loc_26324 ; CODE XREF: _IO_vfscanf+2060j .text:00026324 LDRB R10, [R2],#1 .text:00026328 STR R2, [R7,#4] .text:0002632C .text:0002632C loc_2632C ; CODE XREF: _IO_vfscanf+2070j .text:0002632C CMN R10, #1 .text:00026330 LDRNE R1, [R11,#var_AC] .text:00026334 ADDNE R1, R1, #1 .text:00026338 STRNE R1, [R11,#var_AC] .text:0002633C .text:0002633C loc_2633C ; CODE XREF: _IO_vfscanf+2054j .text:0002633C MOV R1, R10 .text:00026340 CMN R10, #1 .text:00026344 BEQ loc_2636C .text:00026348 SUB R5, R5, #1 .text:0002634C LDRB R2, [R4] .text:00026350 CMP R5, #0 .text:00026354 MOVLE R3, #0 .text:00026358 MOVGT R3, #1 .text:0002635C CMP R2, R1 .text:00026360 .text:00026360 loc_26360 ; CODE XREF: _IO_vfscanf+1FECj .text:00026360 MOVNE R3, #0 .text:00026364 CMP R3, #0 .text:00026368 BNE loc_262A0 .text:0002636C .text:0002636C loc_2636C ; CODE XREF: _IO_vfscanf+204Cj .text:0002636C ; _IO_vfscanf+2094j .text:0002636C LDRB R3, [R4] .text:00026370 CMP R3, #0 .text:00026374 BEQ loc_263EC .text:00026378 LDR R2, [R11,#var_CC] .text:0002637C CMP R4, R2 .text:00026380 BLS loc_267B4 .text:00026384 RSB R3, R2, R4 .text:00026388 LDR R12, [R11,#var_F8] .text:0002638C CMN R10, #1 .text:00026390 RSB R12, R3, R12 .text:00026394 STR R12, [R11,#var_F8] .text:00026398 BEQ loc_263B4 .text:0002639C LDR LR, [R11,#var_AC] .text:000263A0 SUB LR, LR, #1 .text:000263A4 STR LR, [R11,#var_AC] .text:000263A8 MOV R0, R7 .text:000263AC AND R1, R10, #0xFF .text:000263B0 BL _IO_sputbackc .text:000263B4 .text:000263B4 loc_263B4 ; CODE XREF: _IO_vfscanf+20E8j .text:000263B4 LDR R0, [R11,#var_CC] .text:000263B8 SUB R4, R4, #1 .text:000263BC CMP R4, R0 .text:000263C0 BLS loc_266B4 .text:000263C4 .text:000263C4 loc_263C4 ; CODE XREF: _IO_vfscanf+2134j .text:000263C4 LDR R1, [R11,#var_AC] .text:000263C8 SUB R1, R1, #1 .text:000263CC STR R1, [R11,#var_AC] .text:000263D0 LDRB R1, [R4],#-1 .text:000263D4 MOV R0, R7 .text:000263D8 BL _IO_sputbackc .text:000263DC LDR R2, [R11,#var_CC] .text:000263E0 CMP R4, R2 .text:000263E4 BHI loc_263C4 .text:000263E8 B loc_266B4 .text:000263EC ; --------------------------------------------------------------------------- .text:000263EC .text:000263EC loc_263EC ; CODE XREF: _IO_vfscanf+20C4j .text:000263EC LDR R3, [R11,#var_B0] .text:000263F0 LDR LR, [R11,#var_F8] .text:000263F4 MOV R12, R3 .text:000263F8 CMP R12, #0 .text:000263FC MOVGT R3, R5 .text:00026400 STR R3, [R11,#var_B0] .text:00026404 SUB LR, LR, #1 .text:00026408 STR LR, [R11,#var_F8] .text:0002640C .text:0002640C loc_2640C ; CODE XREF: _IO_vfscanf+1F7Cj .text:0002640C SUB R0, R11, #-var_F8 .text:00026410 LDMIA R0, {R0,R1} .text:00026414 CMP R0, R1 .text:00026418 BNE loc_2644C .text:0002641C MOV R3, R1,LSL#1 .text:00026420 CMP R3, #0x100 .text:00026424 MOVCC R3, #0x100 .text:00026428 STR R3, [R11,#var_F4] .text:0002642C LDR R1, [R11,#var_F0] .text:00026430 SUB SP, SP, R3,LSL#2 .text:00026434 STR SP, [R11,#var_F0] .text:00026438 CMP R1, #0 .text:0002643C BEQ loc_2644C .text:00026440 LDR R2, [R11,#var_F8] .text:00026444 MOV R0, SP .text:00026448 BL memcpy .text:0002644C .text:0002644C loc_2644C ; CODE XREF: _IO_vfscanf+2168j .text:0002644C ; _IO_vfscanf+218Cj .text:0002644C LDR R2, [R11,#var_F0] .text:00026450 LDR R3, [R11,#var_F8] .text:00026454 STRB R10, [R2,R3] .text:00026458 ADD R3, R3, #1 .text:0002645C STR R3, [R11,#var_F8] .text:00026460 LDR R12, [R11,#var_B0] .text:00026464 MOV LR, R12 .text:00026468 CMP LR, #0 .text:0002646C SUBGT R12, R12, #1 .text:00026470 CMN R10, #1 .text:00026474 STR R12, [R11,#var_B0] .text:00026478 BEQ loc_264B0 .text:0002647C LDMIB R7, {R2,R3} .text:00026480 CMP R2, R3 .text:00026484 BCC loc_26498 .text:00026488 MOV R0, R7 .text:0002648C BL __uflow .text:00026490 MOV R10, R0 .text:00026494 B loc_264A0 .text:00026498 ; --------------------------------------------------------------------------- .text:00026498 .text:00026498 loc_26498 ; CODE XREF: _IO_vfscanf+21D4j .text:00026498 LDRB R10, [R2],#1 .text:0002649C STR R2, [R7,#4] .text:000264A0 .text:000264A0 loc_264A0 ; CODE XREF: _IO_vfscanf+21E4j .text:000264A0 CMN R10, #1 .text:000264A4 LDRNE R0, [R11,#var_AC] .text:000264A8 ADDNE R0, R0, #1 .text:000264AC STRNE R0, [R11,#var_AC] .text:000264B0 .text:000264B0 loc_264B0 ; CODE XREF: _IO_vfscanf+21C8j .text:000264B0 LDR R1, [R11,#var_B0] .text:000264B4 CMN R10, #1 .text:000264B8 CMPNE R1, #0 .text:000264BC BNE loc_25E94 .text:000264C0 B loc_267B4 .text:000264C4 ; --------------------------------------------------------------------------- .text:000264C4 .text:000264C4 loc_264C4 ; CODE XREF: _IO_vfscanf+1BA0j .text:000264C4 ; _IO_vfscanf+1BACj .text:000264C4 LDR R2, [R11,#var_B0] .text:000264C8 CMN R10, #1 .text:000264CC CMPNE R2, #0 .text:000264D0 BEQ loc_267B4 .text:000264D4 LDR R3, [R11,#var_C0] .text:000264D8 CMP R3, #0x10 .text:000264DC LDREQ R12, =__ctype_b .text:000264E0 LDREQ R3, [R12] .text:000264E4 BEQ loc_267A0 .text:000264E8 .text:000264E8 loc_264E8 ; CODE XREF: _IO_vfscanf+24E4j .text:000264E8 LDR LR, =__ctype_b .text:000264EC LDR R3, [LR] .text:000264F0 MOV R2, R10,LSL#1 .text:000264F4 ADD R2, R2, R3 .text:000264F8 LDRB R1, [R2,#1] .text:000264FC TST R1, #8 .text:00026500 BEQ loc_26514 .text:00026504 LDR R0, [R11,#var_C0] .text:00026508 SUB R3, R10, #0x30 .text:0002650C CMP R3, R0 .text:00026510 BLT loc_266DC .text:00026514 .text:00026514 loc_26514 ; CODE XREF: _IO_vfscanf+2250j .text:00026514 LDR R1, [R11,#var_C0] .text:00026518 CMP R1, #0xA .text:0002651C BNE loc_267B4 .text:00026520 LDR R2, [R11,#var_B4] .text:00026524 LDR R12, [R11,#var_CC] .text:00026528 MOV R3, R2,LSR#7 .text:0002652C CMP R12, #0 .text:00026530 ANDNE R3, R3, #1 .text:00026534 MOVEQ R3, #0 .text:00026538 CMP R3, #0 .text:0002653C BEQ loc_267B4 .text:00026540 LDR LR, [R11,#var_B0] .text:00026544 MOV R4, R12 .text:00026548 LDRB R2, [R12] .text:0002654C CMP LR, #0 .text:00026550 MOV R5, LR .text:00026554 MOVLE R5, 0x7FFFFFFF .text:00026558 CMP R5, #0 .text:0002655C MOVLE R3, #0 .text:00026560 MOVGT R3, #1 .text:00026564 CMP R2, R10 .text:00026568 B loc_2662C .text:0002656C ; --------------------------------------------------------------------------- .text:0002656C .text:0002656C loc_2656C ; CODE XREF: _IO_vfscanf+2384j .text:0002656C SUB R0, R11, #-var_F8 .text:00026570 LDMIA R0, {R0,R1} .text:00026574 CMP R0, R1 .text:00026578 BNE loc_265AC .text:0002657C MOV R3, R1,LSL#1 .text:00026580 CMP R3, #0x100 .text:00026584 MOVCC R3, #0x100 .text:00026588 STR R3, [R11,#var_F4] .text:0002658C LDR R1, [R11,#var_F0] .text:00026590 SUB SP, SP, R3,LSL#2 .text:00026594 STR SP, [R11,#var_F0] .text:00026598 CMP R1, #0 .text:0002659C BEQ loc_265AC .text:000265A0 LDR R2, [R11,#var_F8] .text:000265A4 MOV R0, SP .text:000265A8 BL memcpy .text:000265AC .text:000265AC loc_265AC ; CODE XREF: _IO_vfscanf+22C8j .text:000265AC ; _IO_vfscanf+22ECj .text:000265AC LDR R2, [R11,#var_F0] .text:000265B0 LDR R3, [R11,#var_F8] .text:000265B4 STRB R10, [R2,R3] .text:000265B8 ADD R3, R3, #1 .text:000265BC STR R3, [R11,#var_F8] .text:000265C0 LDRB R3, [R4,#1]! .text:000265C4 CMP R3, #0 .text:000265C8 BEQ loc_26638 .text:000265CC CMN R10, #1 .text:000265D0 BEQ loc_26608 .text:000265D4 LDMIB R7, {R2,R3} .text:000265D8 CMP R2, R3 .text:000265DC BCC loc_265F0 .text:000265E0 MOV R0, R7 .text:000265E4 BL __uflow .text:000265E8 MOV R10, R0 .text:000265EC B loc_265F8 .text:000265F0 ; --------------------------------------------------------------------------- .text:000265F0 .text:000265F0 loc_265F0 ; CODE XREF: _IO_vfscanf+232Cj .text:000265F0 LDRB R10, [R2],#1 .text:000265F4 STR R2, [R7,#4] .text:000265F8 .text:000265F8 loc_265F8 ; CODE XREF: _IO_vfscanf+233Cj .text:000265F8 CMN R10, #1 .text:000265FC LDRNE R12, [R11,#var_AC] .text:00026600 ADDNE R12, R12, #1 .text:00026604 STRNE R12, [R11,#var_AC] .text:00026608 .text:00026608 loc_26608 ; CODE XREF: _IO_vfscanf+2320j .text:00026608 MOV R1, R10 .text:0002660C CMN R10, #1 .text:00026610 BEQ loc_26638 .text:00026614 SUB R5, R5, #1 .text:00026618 LDRB R2, [R4] .text:0002661C CMP R5, #0 .text:00026620 MOVLE R3, #0 .text:00026624 MOVGT R3, #1 .text:00026628 CMP R2, R1 .text:0002662C .text:0002662C loc_2662C ; CODE XREF: _IO_vfscanf+22B8j .text:0002662C MOVNE R3, #0 .text:00026630 CMP R3, #0 .text:00026634 BNE loc_2656C .text:00026638 .text:00026638 loc_26638 ; CODE XREF: _IO_vfscanf+2318j .text:00026638 ; _IO_vfscanf+2360j .text:00026638 LDRB R3, [R4] .text:0002663C CMP R3, #0 .text:00026640 BEQ loc_266BC .text:00026644 LDR LR, [R11,#var_CC] .text:00026648 CMP R4, LR .text:0002664C BLS loc_267B4 .text:00026650 RSB R3, LR, R4 .text:00026654 LDR R0, [R11,#var_F8] .text:00026658 CMN R10, #1 .text:0002665C RSB R0, R3, R0 .text:00026660 STR R0, [R11,#var_F8] .text:00026664 BEQ loc_26680 .text:00026668 LDR R1, [R11,#var_AC] .text:0002666C SUB R1, R1, #1 .text:00026670 STR R1, [R11,#var_AC] .text:00026674 MOV R0, R7 .text:00026678 AND R1, R10, #0xFF .text:0002667C BL _IO_sputbackc .text:00026680 .text:00026680 loc_26680 ; CODE XREF: _IO_vfscanf+23B4j .text:00026680 LDR R2, [R11,#var_CC] .text:00026684 SUB R4, R4, #1 .text:00026688 CMP R4, R2 .text:0002668C BLS loc_266B4 .text:00026690 .text:00026690 loc_26690 ; CODE XREF: _IO_vfscanf+2400j .text:00026690 LDR R3, [R11,#var_AC] .text:00026694 SUB R3, R3, #1 .text:00026698 STR R3, [R11,#var_AC] .text:0002669C LDRB R1, [R4],#-1 .text:000266A0 MOV R0, R7 .text:000266A4 BL _IO_sputbackc .text:000266A8 LDR R12, [R11,#var_CC] .text:000266AC CMP R4, R12 .text:000266B0 BHI loc_26690 .text:000266B4 .text:000266B4 loc_266B4 ; CODE XREF: _IO_vfscanf+2110j .text:000266B4 ; _IO_vfscanf+2138j ... .text:000266B4 LDRB R10, [R4] .text:000266B8 B loc_267B4 .text:000266BC ; --------------------------------------------------------------------------- .text:000266BC .text:000266BC loc_266BC ; CODE XREF: _IO_vfscanf+2390j .text:000266BC LDR LR, [R11,#var_B0] .text:000266C0 LDR R1, [R11,#var_F8] .text:000266C4 MOV R0, LR .text:000266C8 CMP R0, #0 .text:000266CC MOVGT LR, R5 .text:000266D0 STR LR, [R11,#var_B0] .text:000266D4 SUB R1, R1, #1 .text:000266D8 STR R1, [R11,#var_F8] .text:000266DC .text:000266DC loc_266DC ; CODE XREF: _IO_vfscanf+2260j .text:000266DC ; _IO_vfscanf+2500j .text:000266DC SUB R2, R11, #-var_F8 .text:000266E0 LDMIA R2, {R2,R3} .text:000266E4 CMP R2, R3 .text:000266E8 BNE loc_26718 .text:000266EC MOV R3, R3,LSL#1 .text:000266F0 CMP R3, #0x100 .text:000266F4 MOVCC R3, #0x100 .text:000266F8 STR R3, [R11,#var_F4] .text:000266FC LDR R1, [R11,#var_F0] .text:00026700 SUB SP, SP, R3,LSL#2 .text:00026704 STR SP, [R11,#var_F0] .text:00026708 CMP R1, #0 .text:0002670C BEQ loc_26718 .text:00026710 MOV R0, SP .text:00026714 BL memcpy .text:00026718 .text:00026718 loc_26718 ; CODE XREF: _IO_vfscanf+2438j .text:00026718 ; _IO_vfscanf+245Cj .text:00026718 LDR R12, [R11,#var_F0] .text:0002671C LDR LR, [R11,#var_F8] .text:00026720 STRB R10, [R12,LR] .text:00026724 ADD LR, LR, #1 .text:00026728 STR LR, [R11,#var_F8] .text:0002672C LDR R0, [R11,#var_B0] .text:00026730 MOV R1, R0 .text:00026734 CMP R1, #0 .text:00026738 SUBGT R0, R0, #1 .text:0002673C CMN R10, #1 .text:00026740 STR R0, [R11,#var_B0] .text:00026744 BEQ loc_2677C .text:00026748 LDMIB R7, {R2,R3} .text:0002674C CMP R2, R3 .text:00026750 BCC loc_26764 .text:00026754 MOV R0, R7 .text:00026758 BL __uflow .text:0002675C MOV R10, R0 .text:00026760 B loc_2676C .text:00026764 ; --------------------------------------------------------------------------- .text:00026764 .text:00026764 loc_26764 ; CODE XREF: _IO_vfscanf+24A0j .text:00026764 LDRB R10, [R2],#1 .text:00026768 STR R2, [R7,#4] .text:0002676C .text:0002676C loc_2676C ; CODE XREF: _IO_vfscanf+24B0j .text:0002676C CMN R10, #1 .text:00026770 LDRNE R2, [R11,#var_AC] .text:00026774 ADDNE R2, R2, #1 .text:00026778 STRNE R2, [R11,#var_AC] .text:0002677C .text:0002677C loc_2677C ; CODE XREF: _IO_vfscanf+2494j .text:0002677C LDR R3, [R11,#var_B0] .text:00026780 CMN R10, #1 .text:00026784 CMPNE R3, #0 .text:00026788 BEQ loc_267B4 .text:0002678C LDR R12, [R11,#var_C0] .text:00026790 CMP R12, #0x10 .text:00026794 BNE loc_264E8 .text:00026798 LDR LR, =__ctype_b .text:0002679C LDR R3, [LR] .text:000267A0 .text:000267A0 loc_267A0 ; CODE XREF: _IO_vfscanf+2234j .text:000267A0 MOV R2, R10,LSL#1 .text:000267A4 ADD R2, R2, R3 .text:000267A8 LDRB R1, [R2,#1] .text:000267AC TST R1, #0x10 .text:000267B0 BNE loc_266DC .text:000267B4 .text:000267B4 loc_267B4 ; CODE XREF: _IO_vfscanf+1BD8j .text:000267B4 ; _IO_vfscanf+1FC0j ... .text:000267B4 LDR R0, [R11,#var_F8] .text:000267B8 CMP R0, #0 .text:000267BC BEQ loc_267DC .text:000267C0 CMP R0, #1 .text:000267C4 BNE loc_26A08 .text:000267C8 LDR R1, [R11,#var_F0] .text:000267CC LDRB R3, [R1] .text:000267D0 CMP R3, #0x2D .text:000267D4 CMPNE R3, #0x2B .text:000267D8 BNE loc_26A08 .text:000267DC .text:000267DC loc_267DC ; CODE XREF: _IO_vfscanf+250Cj .text:000267DC LDR R2, [R11,#var_F8] .text:000267E0 LDR R12, [R11,#var_EC] .text:000267E4 CMP R2, #0 .text:000267E8 MOVNE R3, #0 .text:000267EC MOVEQ R3, #1 .text:000267F0 TST R3, R12 .text:000267F4 BEQ loc_269C0 .text:000267F8 CMP R10, #0x28 .text:000267FC BNE loc_269C0 .text:00026800 LDMIB R7, {R2,R3} .text:00026804 CMP R2, R3 .text:00026808 BCC loc_2681C .text:0002680C MOV R0, R7 .text:00026810 BL __uflow .text:00026814 MOV R10, R0 .text:00026818 B loc_26824 .text:0002681C ; --------------------------------------------------------------------------- .text:0002681C .text:0002681C loc_2681C ; CODE XREF: _IO_vfscanf+2558j .text:0002681C LDRB R10, [R2],#1 .text:00026820 STR R2, [R7,#4] .text:00026824 .text:00026824 loc_26824 ; CODE XREF: _IO_vfscanf+2568j .text:00026824 CMN R10, #1 .text:00026828 LDRNE LR, [R11,#var_AC] .text:0002682C ADDNE LR, LR, #1 .text:00026830 STRNE LR, [R11,#var_AC] .text:00026834 LDR R0, [R11,#var_104] .text:00026838 ADD R3, R10, #0x80 .text:0002683C CMP R3, R0 .text:00026840 LDRLS R1, =__ctype_tolower .text:00026844 LDRLS R3, [R1] .text:00026848 LDRLS R3, [R3,R10,LSL#2] .text:0002684C MOVHI R3, R10 .text:00026850 CMP R3, #0x6E .text:00026854 BNE loc_269C0 .text:00026858 CMN R10, #1 .text:0002685C BEQ loc_2689C .text:00026860 LDMIB R7, {R2,R3} .text:00026864 CMP R2, R3 .text:00026868 BCC loc_26884 .text:0002686C MOV R0, R7 .text:00026870 BL __uflow .text:00026874 MOV R10, R0 .text:00026878 B loc_2688C .text:00026878 ; --------------------------------------------------------------------------- .text:0002687C off_2687C DCD __ctype_b ; DATA XREF: _IO_vfscanf+222Cr .text:0002687C ; _IO_vfscanf:loc_264E8r ... .text:00026880 off_26880 DCD __ctype_tolower ; DATA XREF: _IO_vfscanf+2590r .text:00026884 ; --------------------------------------------------------------------------- .text:00026884 .text:00026884 loc_26884 ; CODE XREF: _IO_vfscanf+25B8j .text:00026884 LDRB R10, [R2],#1 .text:00026888 STR R2, [R7,#4] .text:0002688C .text:0002688C loc_2688C ; CODE XREF: _IO_vfscanf+25C8j .text:0002688C CMN R10, #1 .text:00026890 LDRNE R2, [R11,#var_AC] .text:00026894 ADDNE R2, R2, #1 .text:00026898 STRNE R2, [R11,#var_AC] .text:0002689C .text:0002689C loc_2689C ; CODE XREF: _IO_vfscanf+25ACj .text:0002689C LDR R12, [R11,#var_104] .text:000268A0 ADD R3, R10, #0x80 .text:000268A4 CMP R3, R12 .text:000268A8 LDRLS LR, =__ctype_tolower .text:000268AC LDRLS R3, [LR] .text:000268B0 LDRLS R3, [R3,R10,LSL#2] .text:000268B4 MOVHI R3, R10 .text:000268B8 CMP R3, #0x69 .text:000268BC BNE loc_269C0 .text:000268C0 CMN R10, #1 .text:000268C4 BEQ loc_268FC .text:000268C8 LDMIB R7, {R2,R3} .text:000268CC CMP R2, R3 .text:000268D0 BCC loc_268E4 .text:000268D4 MOV R0, R7 .text:000268D8 BL __uflow .text:000268DC MOV R10, R0 .text:000268E0 B loc_268EC .text:000268E4 ; --------------------------------------------------------------------------- .text:000268E4 .text:000268E4 loc_268E4 ; CODE XREF: _IO_vfscanf+2620j .text:000268E4 LDRB R10, [R2],#1 .text:000268E8 STR R2, [R7,#4] .text:000268EC .text:000268EC loc_268EC ; CODE XREF: _IO_vfscanf+2630j .text:000268EC CMN R10, #1 .text:000268F0 LDRNE R0, [R11,#var_AC] .text:000268F4 ADDNE R0, R0, #1 .text:000268F8 STRNE R0, [R11,#var_AC] .text:000268FC .text:000268FC loc_268FC ; CODE XREF: _IO_vfscanf+2614j .text:000268FC LDR R1, [R11,#var_104] .text:00026900 ADD R3, R10, #0x80 .text:00026904 CMP R3, R1 .text:00026908 LDRLS R2, =__ctype_tolower .text:0002690C LDRLS R3, [R2] .text:00026910 LDRLS R3, [R3,R10,LSL#2] .text:00026914 MOVHI R3, R10 .text:00026918 CMP R3, #0x6C .text:0002691C BNE loc_269C0 .text:00026920 CMN R10, #1 .text:00026924 BEQ loc_269C0 .text:00026928 LDMIB R7, {R2,R3} .text:0002692C CMP R2, R3 .text:00026930 BCC loc_26944 .text:00026934 MOV R0, R7 .text:00026938 BL __uflow .text:0002693C MOV R10, R0 .text:00026940 B loc_2694C .text:00026944 ; --------------------------------------------------------------------------- .text:00026944 .text:00026944 loc_26944 ; CODE XREF: _IO_vfscanf+2680j .text:00026944 LDRB R10, [R2],#1 .text:00026948 STR R2, [R7,#4] .text:0002694C .text:0002694C loc_2694C ; CODE XREF: _IO_vfscanf+2690j .text:0002694C CMN R10, #1 .text:00026950 LDRNE R3, [R11,#var_AC] .text:00026954 ADDNE R3, R3, #1 .text:00026958 STRNE R3, [R11,#var_AC] .text:0002695C CMP R10, #0x29 .text:00026960 BNE loc_269C0 .text:00026964 SUB R12, R11, #-var_F8 .text:00026968 LDMIA R12, {R12,LR} .text:0002696C CMP R12, LR .text:00026970 BNE loc_269A4 .text:00026974 MOV R3, LR,LSL#1 .text:00026978 CMP R3, #0x100 .text:0002697C MOVCC R3, #0x100 .text:00026980 STR R3, [R11,#var_F4] .text:00026984 LDR R1, [R11,#var_F0] .text:00026988 SUB SP, SP, R3,LSL#2 .text:0002698C STR SP, [R11,#var_F0] .text:00026990 CMP R1, #0 .text:00026994 BEQ loc_269A4 .text:00026998 MOV R0, SP .text:0002699C MOV R2, R12 .text:000269A0 BL memcpy .text:000269A4 .text:000269A4 loc_269A4 ; CODE XREF: _IO_vfscanf+26C0j .text:000269A4 ; _IO_vfscanf+26E4j .text:000269A4 LDR R0, [R11,#var_F0] .text:000269A8 LDR R1, [R11,#var_F8] .text:000269AC MOV R3, #0x30 .text:000269B0 STRB R3, [R0,R1] .text:000269B4 ADD R1, R1, #1 .text:000269B8 STR R1, [R11,#var_F8] .text:000269BC B loc_26A28 .text:000269C0 ; --------------------------------------------------------------------------- .text:000269C0 .text:000269C0 loc_269C0 ; CODE XREF: _IO_vfscanf+2544j .text:000269C0 ; _IO_vfscanf+254Cj ... .text:000269C0 CMN R10, #1 .text:000269C4 BEQ loc_269D4 .text:000269C8 MOV R0, R7 .text:000269CC AND R1, R10, #0xFF .text:000269D0 BL _IO_sputbackc .text:000269D4 .text:000269D4 loc_269D4 ; CODE XREF: _IO_vfscanf+2714j .text:000269D4 LDR R2, [R11,#var_9C] .text:000269D8 CMP R2, #0 .text:000269DC LDRNE R3, [R2] .text:000269E0 ORRNE R3, R3, #2 .text:000269E4 STRNE R3, [R2] .text:000269E8 LDR R3, [R7] .text:000269EC TST R3, #0x8000 .text:000269F0 BNE loc_269FC .text:000269F4 MOV R0, R7 .text:000269F8 BL funlockfile .text:000269FC .text:000269FC loc_269FC ; CODE XREF: _IO_vfscanf+2740j .text:000269FC LDR R3, [R11,#var_FC] .text:00026A00 CMP R3, #0 .text:00026A04 B loc_28F30 .text:00026A08 ; --------------------------------------------------------------------------- .text:00026A08 .text:00026A08 loc_26A08 ; CODE XREF: _IO_vfscanf+2514j .text:00026A08 ; _IO_vfscanf+2528j .text:00026A08 CMN R10, #1 .text:00026A0C BEQ loc_26A28 .text:00026A10 LDR R12, [R11,#var_AC] .text:00026A14 SUB R12, R12, #1 .text:00026A18 STR R12, [R11,#var_AC] .text:00026A1C MOV R0, R7 .text:00026A20 AND R1, R10, #0xFF .text:00026A24 BL _IO_sputbackc .text:00026A28 .text:00026A28 loc_26A28 ; CODE XREF: _IO_vfscanf+270Cj .text:00026A28 ; _IO_vfscanf+275Cj .text:00026A28 LDR LR, [R11,#var_F8] .text:00026A2C LDR R0, [R11,#var_F4] .text:00026A30 CMP LR, R0 .text:00026A34 BNE loc_26A68 .text:00026A38 MOV R3, R0,LSL#1 .text:00026A3C CMP R3, #0x100 .text:00026A40 MOVCC R3, #0x100 .text:00026A44 STR R3, [R11,#var_F4] .text:00026A48 LDR R1, [R11,#var_F0] .text:00026A4C SUB SP, SP, R3,LSL#2 .text:00026A50 STR SP, [R11,#var_F0] .text:00026A54 CMP R1, #0 .text:00026A58 BEQ loc_26A68 .text:00026A5C MOV R0, SP .text:00026A60 MOV R2, LR .text:00026A64 BL memcpy .text:00026A68 .text:00026A68 loc_26A68 ; CODE XREF: _IO_vfscanf+2784j .text:00026A68 ; _IO_vfscanf+27A8j .text:00026A68 LDR R1, [R11,#var_F0] .text:00026A6C LDR R2, [R11,#var_F8] .text:00026A70 MOV R3, #0 .text:00026A74 STRB R3, [R1,R2] .text:00026A78 LDR R12, [R11,#var_B4] .text:00026A7C ANDS R3, R12, #2 .text:00026A80 MOV R4, R3 .text:00026A84 BEQ loc_26AD8 .text:00026A88 LDR LR, [R11,#var_C4] .text:00026A8C CMP LR, #0 .text:00026A90 BEQ loc_26AB4 .text:00026A94 LDR R0, [R11,#var_F0] .text:00026A98 SUB R1, R11, #-var_8C .text:00026A9C LDR R2, [R11,#var_C0] .text:00026AA0 AND R3, R12, #0x80 .text:00026AA4 BL __strtoll_internal .text:00026AA8 SUB R2, R11, #-var_D0 .text:00026AAC STMDA R2, {R0,R1} .text:00026AB0 B loc_26B1C .text:00026AB4 ; --------------------------------------------------------------------------- .text:00026AB4 .text:00026AB4 loc_26AB4 ; CODE XREF: _IO_vfscanf+27E0j .text:00026AB4 LDR R0, [R11,#var_F0] .text:00026AB8 LDR R12, [R11,#var_B4] .text:00026ABC SUB R1, R11, #-var_8C .text:00026AC0 LDR R2, [R11,#var_C0] .text:00026AC4 AND R3, R12, #0x80 .text:00026AC8 BL __strtoull_internal .text:00026ACC SUB LR, R11, #-var_D0 .text:00026AD0 STMDA LR, {R0,R1} .text:00026AD4 B loc_26B1C .text:00026AD8 ; --------------------------------------------------------------------------- .text:00026AD8 .text:00026AD8 loc_26AD8 ; CODE XREF: _IO_vfscanf+27D4j .text:00026AD8 LDR R0, [R11,#var_C4] .text:00026ADC CMP R0, #0 .text:00026AE0 BEQ loc_26B00 .text:00026AE4 LDR R0, [R11,#var_F0] .text:00026AE8 LDR R12, [R11,#var_B4] .text:00026AEC SUB R1, R11, #-var_8C .text:00026AF0 LDR R2, [R11,#var_C0] .text:00026AF4 AND R3, R12, #0x80 .text:00026AF8 BL __strtol_internal .text:00026AFC B loc_26B18 .text:00026B00 ; --------------------------------------------------------------------------- .text:00026B00 .text:00026B00 loc_26B00 ; CODE XREF: _IO_vfscanf+2830j .text:00026B00 LDR R0, [R11,#var_F0] .text:00026B04 LDR LR, [R11,#var_B4] .text:00026B08 SUB R1, R11, #-var_8C .text:00026B0C LDR R2, [R11,#var_C0] .text:00026B10 AND R3, LR, #0x80 .text:00026B14 BL __strtoul_internal .text:00026B18 .text:00026B18 loc_26B18 ; CODE XREF: _IO_vfscanf+284Cj .text:00026B18 STR R0, [R11,#var_D4] .text:00026B1C .text:00026B1C loc_26B1C ; CODE XREF: _IO_vfscanf+2800j .text:00026B1C ; _IO_vfscanf+2824j .text:00026B1C LDR R3, [R11,#var_8C] .text:00026B20 LDR R0, [R11,#var_F0] .text:00026B24 CMP R0, R3 .text:00026B28 BEQ loc_28374 .text:00026B2C LDR R3, [R11,#var_B4] .text:00026B30 TST R3, #8 .text:00026B34 BNE loc_28E98 .text:00026B38 LDR R12, [R11,#var_C4] .text:00026B3C CMP R12, #0 .text:00026B40 BNE loc_26C50 .text:00026B44 CMP R4, #0 .text:00026B48 BEQ loc_26B98 .text:00026B4C LDR LR, [R11,#var_100] .text:00026B50 CMP LR, #0 .text:00026B54 BNE loc_26B70 .text:00026B58 LDR R1, [R11,#var_A0] .text:00026B5C LDR R0, [R11,#var_A8] .text:00026B60 LDR R3, [R1],#4 .text:00026B64 ADD R4, R0, #1 .text:00026B68 STR R1, [R11,#var_A0] .text:00026B6C B loc_26CA4 .text:00026B70 ; --------------------------------------------------------------------------- .text:00026B70 .text:00026B70 loc_26B70 ; CODE XREF: _IO_vfscanf+28A4j .text:00026B70 LDR R2, [R11,#var_98] .text:00026B74 LDR R12, [R11,#var_100] .text:00026B78 LDR LR, [R11,#var_A8] .text:00026B7C SUBS R3, R12, #1 .text:00026B80 ADD R4, LR, #1 .text:00026B84 BEQ loc_26CA0 .text:00026B88 .text:00026B88 loc_26B88 ; CODE XREF: _IO_vfscanf+28E0j .text:00026B88 ADD R2, R2, #4 .text:00026B8C SUBS R3, R3, #1 .text:00026B90 BNE loc_26B88 .text:00026B94 B loc_26CA0 .text:00026B98 ; --------------------------------------------------------------------------- .text:00026B98 .text:00026B98 loc_26B98 ; CODE XREF: _IO_vfscanf+2898j .text:00026B98 LDR R2, [R11,#var_B4] .text:00026B9C TST R2, #4 .text:00026BA0 BEQ loc_26BD8 .text:00026BA4 LDR R3, [R11,#var_100] .text:00026BA8 CMP R3, #0 .text:00026BAC BEQ loc_26CCC .text:00026BB0 LDR R2, [R11,#var_98] .text:00026BB4 LDR R0, [R11,#var_100] .text:00026BB8 LDR R1, [R11,#var_A8] .text:00026BBC SUBS R3, R0, #1 .text:00026BC0 ADD R4, R1, #1 .text:00026BC4 BEQ loc_26D08 .text:00026BC8 .text:00026BC8 loc_26BC8 ; CODE XREF: _IO_vfscanf+2920j .text:00026BC8 ADD R2, R2, #4 .text:00026BCC SUBS R3, R3, #1 .text:00026BD0 BNE loc_26BC8 .text:00026BD4 B loc_26D08 .text:00026BD8 ; --------------------------------------------------------------------------- .text:00026BD8 .text:00026BD8 loc_26BD8 ; CODE XREF: _IO_vfscanf+28F0j .text:00026BD8 LDR R2, [R11,#var_B4] .text:00026BDC TST R2, #0x200 .text:00026BE0 BNE loc_26C18 .text:00026BE4 LDR R3, [R11,#var_100] .text:00026BE8 CMP R3, #0 .text:00026BEC BEQ loc_26D44 .text:00026BF0 LDR R2, [R11,#var_98] .text:00026BF4 LDR R0, [R11,#var_100] .text:00026BF8 LDR R1, [R11,#var_A8] .text:00026BFC SUBS R3, R0, #1 .text:00026C00 ADD R4, R1, #1 .text:00026C04 BEQ loc_26D80 .text:00026C08 .text:00026C08 loc_26C08 ; CODE XREF: _IO_vfscanf+2960j .text:00026C08 ADD R2, R2, #4 .text:00026C0C SUBS R3, R3, #1 .text:00026C10 BNE loc_26C08 .text:00026C14 B loc_26D80 .text:00026C18 ; --------------------------------------------------------------------------- .text:00026C18 .text:00026C18 loc_26C18 ; CODE XREF: _IO_vfscanf+2930j .text:00026C18 LDR R3, [R11,#var_100] .text:00026C1C CMP R3, #0 .text:00026C20 BEQ loc_26D9C .text:00026C24 LDR R2, [R11,#var_98] .text:00026C28 LDR R0, [R11,#var_100] .text:00026C2C LDR R1, [R11,#var_A8] .text:00026C30 SUBS R3, R0, #1 .text:00026C34 ADD R4, R1, #1 .text:00026C38 BEQ loc_26DD8 .text:00026C3C .text:00026C3C loc_26C3C ; CODE XREF: _IO_vfscanf+2994j .text:00026C3C ADD R2, R2, #4 .text:00026C40 SUBS R3, R3, #1 .text:00026C44 BNE loc_26C3C .text:00026C48 B loc_26DD8 .text:00026C48 ; --------------------------------------------------------------------------- .text:00026C4C off_26C4C DCD __ctype_tolower ; DATA XREF: _IO_vfscanf+25F8r .text:00026C4C ; _IO_vfscanf+2658r .text:00026C50 ; --------------------------------------------------------------------------- .text:00026C50 .text:00026C50 loc_26C50 ; CODE XREF: _IO_vfscanf+2890j .text:00026C50 CMP R4, #0 .text:00026C54 BEQ loc_26CB4 .text:00026C58 LDR R3, [R11,#var_100] .text:00026C5C CMP R3, #0 .text:00026C60 BNE loc_26C7C .text:00026C64 LDR LR, [R11,#var_A0] .text:00026C68 LDR R12, [R11,#var_A8] .text:00026C6C LDR R3, [LR],#4 .text:00026C70 ADD R4, R12, #1 .text:00026C74 STR LR, [R11,#var_A0] .text:00026C78 B loc_26CA4 .text:00026C7C ; --------------------------------------------------------------------------- .text:00026C7C .text:00026C7C loc_26C7C ; CODE XREF: _IO_vfscanf+29B0j .text:00026C7C LDR R2, [R11,#var_98] .text:00026C80 LDR R0, [R11,#var_100] .text:00026C84 LDR R1, [R11,#var_A8] .text:00026C88 SUBS R3, R0, #1 .text:00026C8C ADD R4, R1, #1 .text:00026C90 BEQ loc_26CA0 .text:00026C94 .text:00026C94 loc_26C94 ; CODE XREF: _IO_vfscanf+29ECj .text:00026C94 ADD R2, R2, #4 .text:00026C98 SUBS R3, R3, #1 .text:00026C9C BNE loc_26C94 .text:00026CA0 .text:00026CA0 loc_26CA0 ; CODE XREF: _IO_vfscanf+28D4j .text:00026CA0 ; _IO_vfscanf+28E4j ... .text:00026CA0 LDR R3, [R2] .text:00026CA4 .text:00026CA4 loc_26CA4 ; CODE XREF: _IO_vfscanf+28BCj .text:00026CA4 ; _IO_vfscanf+29C8j .text:00026CA4 SUB R1, R11, #-var_D0 .text:00026CA8 LDMDA R1, {R0,R1} .text:00026CAC STMIA R3, {R0,R1} .text:00026CB0 B loc_26DE4 .text:00026CB4 ; --------------------------------------------------------------------------- .text:00026CB4 .text:00026CB4 loc_26CB4 ; CODE XREF: _IO_vfscanf+29A4j .text:00026CB4 LDR R2, [R11,#var_B4] .text:00026CB8 TST R2, #4 .text:00026CBC BEQ loc_26D2C .text:00026CC0 LDR R3, [R11,#var_100] .text:00026CC4 CMP R3, #0 .text:00026CC8 BNE loc_26CE4 .text:00026CCC .text:00026CCC loc_26CCC ; CODE XREF: _IO_vfscanf+28FCj .text:00026CCC LDR LR, [R11,#var_A0] .text:00026CD0 LDR R12, [R11,#var_A8] .text:00026CD4 LDR R2, [LR],#4 .text:00026CD8 ADD R4, R12, #1 .text:00026CDC STR LR, [R11,#var_A0] .text:00026CE0 B loc_26D0C .text:00026CE4 ; --------------------------------------------------------------------------- .text:00026CE4 .text:00026CE4 loc_26CE4 ; CODE XREF: _IO_vfscanf+2A18j .text:00026CE4 LDR R2, [R11,#var_98] .text:00026CE8 LDR R0, [R11,#var_100] .text:00026CEC LDR R1, [R11,#var_A8] .text:00026CF0 SUBS R3, R0, #1 .text:00026CF4 ADD R4, R1, #1 .text:00026CF8 BEQ loc_26D08 .text:00026CFC .text:00026CFC loc_26CFC ; CODE XREF: _IO_vfscanf+2A54j .text:00026CFC ADD R2, R2, #4 .text:00026D00 SUBS R3, R3, #1 .text:00026D04 BNE loc_26CFC .text:00026D08 .text:00026D08 loc_26D08 ; CODE XREF: _IO_vfscanf+2914j .text:00026D08 ; _IO_vfscanf+2924j ... .text:00026D08 LDR R2, [R2] .text:00026D0C .text:00026D0C loc_26D0C ; CODE XREF: _IO_vfscanf+2A30j .text:00026D0C LDRB R0, [R11,#var_D4] .text:00026D10 LDRB R1, [R11,#var_D4+1] .text:00026D14 ORR R1, R0, R1,LSL#8 .text:00026D18 MOV R3, R1 .text:00026D1C STRB R3, [R2] .text:00026D20 MOV R3, R3,ASR#8 .text:00026D24 STRB R3, [R2,#1] .text:00026D28 B loc_26DE4 .text:00026D2C ; --------------------------------------------------------------------------- .text:00026D2C .text:00026D2C loc_26D2C ; CODE XREF: _IO_vfscanf+2A0Cj .text:00026D2C LDR R2, [R11,#var_B4] .text:00026D30 TST R2, #0x200 .text:00026D34 BNE loc_26D90 .text:00026D38 LDR R3, [R11,#var_100] .text:00026D3C CMP R3, #0 .text:00026D40 BNE loc_26D5C .text:00026D44 .text:00026D44 loc_26D44 ; CODE XREF: _IO_vfscanf+293Cj .text:00026D44 LDR LR, [R11,#var_A0] .text:00026D48 LDR R12, [R11,#var_A8] .text:00026D4C LDR R3, [LR],#4 .text:00026D50 ADD R4, R12, #1 .text:00026D54 STR LR, [R11,#var_A0] .text:00026D58 B loc_26D84 .text:00026D5C ; --------------------------------------------------------------------------- .text:00026D5C .text:00026D5C loc_26D5C ; CODE XREF: _IO_vfscanf+2A90j .text:00026D5C LDR R2, [R11,#var_98] .text:00026D60 LDR R0, [R11,#var_100] .text:00026D64 LDR R1, [R11,#var_A8] .text:00026D68 SUBS R3, R0, #1 .text:00026D6C ADD R4, R1, #1 .text:00026D70 BEQ loc_26D80 .text:00026D74 .text:00026D74 loc_26D74 ; CODE XREF: _IO_vfscanf+2ACCj .text:00026D74 ADD R2, R2, #4 .text:00026D78 SUBS R3, R3, #1 .text:00026D7C BNE loc_26D74 .text:00026D80 .text:00026D80 loc_26D80 ; CODE XREF: _IO_vfscanf+2954j .text:00026D80 ; _IO_vfscanf+2964j ... .text:00026D80 LDR R3, [R2] .text:00026D84 .text:00026D84 loc_26D84 ; CODE XREF: _IO_vfscanf+2AA8j .text:00026D84 LDR R2, [R11,#var_D4] .text:00026D88 STR R2, [R3] .text:00026D8C B loc_26DE4 .text:00026D90 ; --------------------------------------------------------------------------- .text:00026D90 .text:00026D90 loc_26D90 ; CODE XREF: _IO_vfscanf+2A84j .text:00026D90 LDR R3, [R11,#var_100] .text:00026D94 CMP R3, #0 .text:00026D98 BNE loc_26DB4 .text:00026D9C .text:00026D9C loc_26D9C ; CODE XREF: _IO_vfscanf+2970j .text:00026D9C LDR LR, [R11,#var_A0] .text:00026DA0 LDR R12, [R11,#var_A8] .text:00026DA4 LDR R3, [LR],#4 .text:00026DA8 ADD R4, R12, #1 .text:00026DAC STR LR, [R11,#var_A0] .text:00026DB0 B loc_26DDC .text:00026DB4 ; --------------------------------------------------------------------------- .text:00026DB4 .text:00026DB4 loc_26DB4 ; CODE XREF: _IO_vfscanf+2AE8j .text:00026DB4 LDR R2, [R11,#var_98] .text:00026DB8 LDR R0, [R11,#var_100] .text:00026DBC LDR R1, [R11,#var_A8] .text:00026DC0 SUBS R3, R0, #1 .text:00026DC4 ADD R4, R1, #1 .text:00026DC8 BEQ loc_26DD8 .text:00026DCC .text:00026DCC loc_26DCC ; CODE XREF: _IO_vfscanf+2B24j .text:00026DCC ADD R2, R2, #4 .text:00026DD0 SUBS R3, R3, #1 .text:00026DD4 BNE loc_26DCC .text:00026DD8 .text:00026DD8 loc_26DD8 ; CODE XREF: _IO_vfscanf+2988j .text:00026DD8 ; _IO_vfscanf+2998j ... .text:00026DD8 LDR R3, [R2] .text:00026DDC .text:00026DDC loc_26DDC ; CODE XREF: _IO_vfscanf+2B00j .text:00026DDC LDRB R2, [R11,#var_D4] .text:00026DE0 STRB R2, [R3] .text:00026DE4 .text:00026DE4 loc_26DE4 ; CODE XREF: _IO_vfscanf+2A00j .text:00026DE4 ; _IO_vfscanf+2A78j ... .text:00026DE4 STR R4, [R11,#var_A8] .text:00026DE8 B loc_28E98 .text:00026DEC ; --------------------------------------------------------------------------- .text:00026DEC .text:00026DEC loc_26DEC ; CODE XREF: _IO_vfscanf+898j .text:00026DEC ; DATA XREF: _IO_vfscanf+8A0o .text:00026DEC CMN R10, #1 ; jumptable 00024B48 cases 28,32-34,60,64-66 .text:00026DF0 BEQ loc_26E28 .text:00026DF4 LDMIB R7, {R2,R3} .text:00026DF8 CMP R2, R3 .text:00026DFC BCC loc_26E10 .text:00026E00 MOV R0, R7 .text:00026E04 BL __uflow .text:00026E08 MOV R10, R0 .text:00026E0C B loc_26E18 .text:00026E10 ; --------------------------------------------------------------------------- .text:00026E10 .text:00026E10 loc_26E10 ; CODE XREF: _IO_vfscanf+2B4Cj .text:00026E10 LDRB R10, [R2],#1 .text:00026E14 STR R2, [R7,#4] .text:00026E18 .text:00026E18 loc_26E18 ; CODE XREF: _IO_vfscanf+2B5Cj .text:00026E18 CMN R10, #1 .text:00026E1C LDRNE R3, [R11,#var_AC] .text:00026E20 ADDNE R3, R3, #1 .text:00026E24 STRNE R3, [R11,#var_AC] .text:00026E28 .text:00026E28 loc_26E28 ; CODE XREF: _IO_vfscanf+2B40j .text:00026E28 MOV R2, R10 .text:00026E2C CMN R10, #1 .text:00026E30 BEQ loc_28BB0 .text:00026E34 CMP R2, #0x2B .text:00026E38 MOVNE R3, #0 .text:00026E3C MOVEQ R3, #1 .text:00026E40 CMP R2, #0x2D .text:00026E44 MOVEQ R3, #1 .text:00026E48 CMP R3, #0 .text:00026E4C BEQ loc_27048 .text:00026E50 LDR R3, [R11,#var_B0] .text:00026E54 CMP R2, #0x2D .text:00026E58 MOVNE R1, #0 .text:00026E5C MOVEQ R1, #1 .text:00026E60 STR R1, [R11,#var_B8] .text:00026E64 CMP R3, #0 .text:00026E68 BEQ loc_26EB0 .text:00026E6C CMN R2, #1 .text:00026E70 BEQ loc_26EB0 .text:00026E74 LDMIB R7, {R2,R3} .text:00026E78 CMP R2, R3 .text:00026E7C BCC loc_26E90 .text:00026E80 MOV R0, R7 .text:00026E84 BL __uflow .text:00026E88 MOV R10, R0 .text:00026E8C B loc_26E98 .text:00026E90 ; --------------------------------------------------------------------------- .text:00026E90 .text:00026E90 loc_26E90 ; CODE XREF: _IO_vfscanf+2BCCj .text:00026E90 LDRB R10, [R2],#1 .text:00026E94 STR R2, [R7,#4] .text:00026E98 .text:00026E98 loc_26E98 ; CODE XREF: _IO_vfscanf+2BDCj .text:00026E98 CMN R10, #1 .text:00026E9C LDRNE R12, [R11,#var_AC] .text:00026EA0 ADDNE R12, R12, #1 .text:00026EA4 STRNE R12, [R11,#var_AC] .text:00026EA8 CMN R10, #1 .text:00026EAC BNE loc_26EE4 .text:00026EB0 .text:00026EB0 loc_26EB0 ; CODE XREF: _IO_vfscanf+2BB8j .text:00026EB0 ; _IO_vfscanf+2BC0j .text:00026EB0 LDR LR, [R11,#var_9C] .text:00026EB4 CMP LR, #0 .text:00026EB8 LDRNE R3, [LR] .text:00026EBC ORRNE R3, R3, #2 .text:00026EC0 STRNE R3, [LR] .text:00026EC4 LDR R3, [R7] .text:00026EC8 TST R3, #0x8000 .text:00026ECC BNE loc_26ED8 .text:00026ED0 MOV R0, R7 .text:00026ED4 BL funlockfile .text:00026ED8 .text:00026ED8 loc_26ED8 ; CODE XREF: _IO_vfscanf+2C1Cj .text:00026ED8 LDR R0, [R11,#var_FC] .text:00026EDC CMP R0, #0 .text:00026EE0 B loc_28F30 .text:00026EE4 ; --------------------------------------------------------------------------- .text:00026EE4 .text:00026EE4 loc_26EE4 ; CODE XREF: _IO_vfscanf+2BFCj .text:00026EE4 LDR R1, =__ctype_b .text:00026EE8 LDR R3, [R1] .text:00026EEC MOV R2, R10,LSL#1 .text:00026EF0 ADD R2, R2, R3 .text:00026EF4 LDRB R1, [R2,#1] .text:00026EF8 TST R1, #8 .text:00026EFC BNE loc_27030 .text:00026F00 LDR R2, [R11,#var_B0] .text:00026F04 LDR R4, [R11,#var_C8] .text:00026F08 CMP R2, #0 .text:00026F0C MOV R5, R2 .text:00026F10 MOVLE R5, 0x7FFFFFFF .text:00026F14 LDRB R2, [R4] .text:00026F18 CMP R5, #0 .text:00026F1C MOVLE R3, #0 .text:00026F20 MOVGT R3, #1 .text:00026F24 CMP R2, R10 .text:00026F28 MOVNE R3, #0 .text:00026F2C CMP R3, #0 .text:00026F30 BEQ loc_26FB4 .text:00026F34 LDRB R3, [R4,#1]! .text:00026F38 CMP R3, #0 .text:00026F3C BEQ loc_26FB4 .text:00026F40 .text:00026F40 loc_26F40 ; CODE XREF: _IO_vfscanf+2D00j .text:00026F40 CMN R10, #1 .text:00026F44 BEQ loc_26FB4 .text:00026F48 LDMIB R7, {R2,R3} .text:00026F4C CMP R2, R3 .text:00026F50 BCC loc_26F64 .text:00026F54 MOV R0, R7 .text:00026F58 BL __uflow .text:00026F5C MOV R10, R0 .text:00026F60 B loc_26F6C .text:00026F64 ; --------------------------------------------------------------------------- .text:00026F64 .text:00026F64 loc_26F64 ; CODE XREF: _IO_vfscanf+2CA0j .text:00026F64 LDRB R10, [R2],#1 .text:00026F68 STR R2, [R7,#4] .text:00026F6C .text:00026F6C loc_26F6C ; CODE XREF: _IO_vfscanf+2CB0j .text:00026F6C CMN R10, #1 .text:00026F70 LDRNE R3, [R11,#var_AC] .text:00026F74 ADDNE R3, R3, #1 .text:00026F78 STRNE R3, [R11,#var_AC] .text:00026F7C CMN R10, #1 .text:00026F80 BEQ loc_26FB4 .text:00026F84 SUB R5, R5, #1 .text:00026F88 LDRB R2, [R4] .text:00026F8C CMP R5, #0 .text:00026F90 MOVLE R3, #0 .text:00026F94 MOVGT R3, #1 .text:00026F98 CMP R2, R10 .text:00026F9C MOVNE R3, #0 .text:00026FA0 CMP R3, #0 .text:00026FA4 BEQ loc_26FB4 .text:00026FA8 LDRB R3, [R4,#1]! .text:00026FAC CMP R3, #0 .text:00026FB0 BNE loc_26F40 .text:00026FB4 .text:00026FB4 loc_26FB4 ; CODE XREF: _IO_vfscanf+2C80j .text:00026FB4 ; _IO_vfscanf+2C8Cj ... .text:00026FB4 LDRB R3, [R4] .text:00026FB8 CMP R3, #0 .text:00026FBC BEQ loc_2701C .text:00026FC0 B loc_26FC8 .text:00026FC4 ; --------------------------------------------------------------------------- .text:00026FC4 .text:00026FC4 loc_26FC4 ; CODE XREF: _IO_vfscanf+2D34j .text:00026FC4 LDRB R10, [R4,#-1]! .text:00026FC8 .text:00026FC8 loc_26FC8 ; CODE XREF: _IO_vfscanf+2D10j .text:00026FC8 CMN R10, #1 .text:00026FCC BEQ loc_26FDC .text:00026FD0 MOV R0, R7 .text:00026FD4 AND R1, R10, #0xFF .text:00026FD8 BL _IO_sputbackc .text:00026FDC .text:00026FDC loc_26FDC ; CODE XREF: _IO_vfscanf+2D1Cj .text:00026FDC LDR R12, [R11,#var_C8] .text:00026FE0 CMP R4, R12 .text:00026FE4 BNE loc_26FC4 .text:00026FE8 LDR LR, [R11,#var_9C] .text:00026FEC CMP LR, #0 .text:00026FF0 LDRNE R3, [LR] .text:00026FF4 ORRNE R3, R3, #2 .text:00026FF8 STRNE R3, [LR] .text:00026FFC LDR R3, [R7] .text:00027000 TST R3, #0x8000 .text:00027004 BNE loc_27010 .text:00027008 MOV R0, R7 .text:0002700C BL funlockfile .text:00027010 .text:00027010 loc_27010 ; CODE XREF: _IO_vfscanf+2D54j .text:00027010 LDR R0, [R11,#var_FC] .text:00027014 CMP R0, #0 .text:00027018 B loc_28F30 .text:0002701C ; --------------------------------------------------------------------------- .text:0002701C .text:0002701C loc_2701C ; CODE XREF: _IO_vfscanf+2D0Cj .text:0002701C LDR R1, [R11,#var_B0] .text:00027020 MOV R2, R1 .text:00027024 CMP R2, #0 .text:00027028 MOVGT R1, R5 .text:0002702C STR R1, [R11,#var_B0] .text:00027030 .text:00027030 loc_27030 ; CODE XREF: _IO_vfscanf+2C4Cj .text:00027030 LDR R3, [R11,#var_B0] .text:00027034 MOV R12, R3 .text:00027038 CMP R12, #0 .text:0002703C SUBGT R3, R3, #1 .text:00027040 STR R3, [R11,#var_B0] .text:00027044 B loc_2704C .text:00027048 ; --------------------------------------------------------------------------- .text:00027048 .text:00027048 loc_27048 ; CODE XREF: _IO_vfscanf+2B9Cj .text:00027048 STR R3, [R11,#var_B8] .text:0002704C .text:0002704C loc_2704C ; CODE XREF: _IO_vfscanf+2D94j .text:0002704C ADD R3, R10, #0x80 .text:00027050 LDR LR, [R11,#var_104] .text:00027054 MOV R2, R3 .text:00027058 CMP R3, LR .text:0002705C LDRLS R0, =__ctype_tolower .text:00027060 LDRLS R3, [R0] .text:00027064 LDRLS R3, [R3,R10,LSL#2] .text:00027068 MOVHI R3, R10 .text:0002706C CMP R3, #0x6E .text:00027070 BNE loc_272C8 .text:00027074 LDR R1, [R11,#var_EC] .text:00027078 LDR R2, [R11,#var_F4] .text:0002707C CMP R1, R2 .text:00027080 BNE loc_270AC .text:00027084 MOV R3, #0x100 .text:00027088 STR R3, [R11,#var_F4] .text:0002708C LDR R1, [R11,#var_F0] .text:00027090 SUB SP, SP, #0x400 .text:00027094 STR SP, [R11,#var_F0] .text:00027098 CMP R1, #0 .text:0002709C BEQ loc_270AC .text:000270A0 MOV R0, SP .text:000270A4 MOV R2, #0 .text:000270A8 BL memcpy .text:000270AC .text:000270AC loc_270AC ; CODE XREF: _IO_vfscanf+2DD0j .text:000270AC ; _IO_vfscanf+2DECj .text:000270AC MOV R12, #1 .text:000270B0 STR R12, [R11,#var_F8] .text:000270B4 LDR LR, [R11,#var_F0] .text:000270B8 STRB R10, [LR] .text:000270BC LDR R0, [R11,#var_B0] .text:000270C0 CMP R0, #0 .text:000270C4 BEQ loc_27130 .text:000270C8 CMN R10, #1 .text:000270CC BEQ loc_27130 .text:000270D0 LDMIB R7, {R2,R3} .text:000270D4 CMP R2, R3 .text:000270D8 BCC loc_270EC .text:000270DC MOV R0, R7 .text:000270E0 BL __uflow .text:000270E4 MOV R10, R0 .text:000270E8 B loc_270F4 .text:000270EC ; --------------------------------------------------------------------------- .text:000270EC .text:000270EC loc_270EC ; CODE XREF: _IO_vfscanf+2E28j .text:000270EC LDRB R10, [R2],#1 .text:000270F0 STR R2, [R7,#4] .text:000270F4 .text:000270F4 loc_270F4 ; CODE XREF: _IO_vfscanf+2E38j .text:000270F4 CMN R10, #1 .text:000270F8 LDRNE R1, [R11,#var_AC] .text:000270FC ADDNE R1, R1, #1 .text:00027100 STRNE R1, [R11,#var_AC] .text:00027104 CMN R10, #1 .text:00027108 BEQ loc_27130 .text:0002710C LDR R2, [R11,#var_104] .text:00027110 ADD R3, R10, #0x80 .text:00027114 CMP R3, R2 .text:00027118 LDRLS R12, =__ctype_tolower .text:0002711C LDRLS R3, [R12] .text:00027120 LDRLS R3, [R3,R10,LSL#2] .text:00027124 MOVHI R3, R10 .text:00027128 CMP R3, #0x61 .text:0002712C BEQ loc_27184 .text:00027130 .text:00027130 loc_27130 ; CODE XREF: _IO_vfscanf+2E14j .text:00027130 ; _IO_vfscanf+2E1Cj ... .text:00027130 LDR R3, [R7] .text:00027134 TST R3, #0x8000 .text:00027138 BNE loc_27144 .text:0002713C MOV R0, R7 .text:00027140 BL funlockfile .text:00027144 .text:00027144 loc_27144 ; CODE XREF: _IO_vfscanf+2E88j .text:00027144 LDR LR, [R11,#var_9C] .text:00027148 CMP LR, #0 .text:0002714C LDRNE R3, [LR] .text:00027150 ORRNE R3, R3, #1 .text:00027154 STRNE R3, [LR] .text:00027158 LDR R0, [R11,#var_FC] .text:0002715C CMP R0, #0 .text:00027160 BEQ loc_27170 .text:00027164 SUB R0, R11, #-var_38 .text:00027168 MOV R1, #0 .text:0002716C BL 0 .text:00027170 .text:00027170 loc_27170 ; CODE XREF: _IO_vfscanf+2EB0j .text:00027170 LDR R1, [R11,#var_A8] .text:00027174 CMP R1, #0 .text:00027178 MOV R0, R1 .text:0002717C MOVEQ R0, 0xFFFFFFFF .text:00027180 B loc_28F44 .text:00027184 ; --------------------------------------------------------------------------- .text:00027184 .text:00027184 loc_27184 ; CODE XREF: _IO_vfscanf+2E7Cj .text:00027184 LDR R2, [R11,#var_B0] .text:00027188 MOV R3, R2 .text:0002718C CMP R3, #0 .text:00027190 SUBGT R2, R2, #1 .text:00027194 STR R2, [R11,#var_B0] .text:00027198 SUB R12, R11, #-var_F8 .text:0002719C LDMIA R12, {R12,LR} .text:000271A0 CMP R12, LR .text:000271A4 BNE loc_271D8 .text:000271A8 MOV R3, LR,LSL#1 .text:000271AC CMP R3, #0x100 .text:000271B0 MOVCC R3, #0x100 .text:000271B4 STR R3, [R11,#var_F4] .text:000271B8 LDR R1, [R11,#var_F0] .text:000271BC SUB SP, SP, R3,LSL#2 .text:000271C0 STR SP, [R11,#var_F0] .text:000271C4 CMP R1, #0 .text:000271C8 BEQ loc_271D8 .text:000271CC MOV R0, SP .text:000271D0 MOV R2, R12 .text:000271D4 BL memcpy .text:000271D8 .text:000271D8 loc_271D8 ; CODE XREF: _IO_vfscanf+2EF4j .text:000271D8 ; _IO_vfscanf+2F18j .text:000271D8 LDR R0, [R11,#var_F0] .text:000271DC LDR R1, [R11,#var_F8] .text:000271E0 STRB R10, [R0,R1] .text:000271E4 ADD R1, R1, #1 .text:000271E8 STR R1, [R11,#var_F8] .text:000271EC LDR R2, [R11,#var_B0] .text:000271F0 CMP R2, #0 .text:000271F4 BEQ loc_27644 .text:000271F8 CMN R10, #1 .text:000271FC BEQ loc_27644 .text:00027200 LDMIB R7, {R2,R3} .text:00027204 CMP R2, R3 .text:00027208 BCC loc_2721C .text:0002720C MOV R0, R7 .text:00027210 BL __uflow .text:00027214 MOV R10, R0 .text:00027218 B loc_27224 .text:0002721C ; --------------------------------------------------------------------------- .text:0002721C .text:0002721C loc_2721C ; CODE XREF: _IO_vfscanf+2F58j .text:0002721C LDRB R10, [R2],#1 .text:00027220 STR R2, [R7,#4] .text:00027224 .text:00027224 loc_27224 ; CODE XREF: _IO_vfscanf+2F68j .text:00027224 CMN R10, #1 .text:00027228 LDRNE R3, [R11,#var_AC] .text:0002722C ADDNE R3, R3, #1 .text:00027230 STRNE R3, [R11,#var_AC] .text:00027234 CMN R10, #1 .text:00027238 BEQ loc_27644 .text:0002723C LDR R12, [R11,#var_104] .text:00027240 ADD R3, R10, #0x80 .text:00027244 CMP R3, R12 .text:00027248 BHI loc_27264 .text:0002724C LDR LR, =__ctype_tolower .text:00027250 LDR R3, [LR] .text:00027254 LDR R3, [R3,R10,LSL#2] .text:00027258 B loc_27268 .text:00027258 ; --------------------------------------------------------------------------- .text:0002725C off_2725C DCD __ctype_b ; DATA XREF: _IO_vfscanf:loc_26EE4r .text:00027260 off_27260 DCD __ctype_tolower ; DATA XREF: _IO_vfscanf+2DACr .text:00027260 ; _IO_vfscanf+2E68r ... .text:00027264 ; --------------------------------------------------------------------------- .text:00027264 .text:00027264 loc_27264 ; CODE XREF: _IO_vfscanf+2F98j .text:00027264 MOV R3, R10 .text:00027268 .text:00027268 loc_27268 ; CODE XREF: _IO_vfscanf+2FA8j .text:00027268 CMP R3, #0x6E .text:0002726C BNE loc_27644 .text:00027270 SUB R3, R11, #-var_F8 .text:00027274 LDMIA R3, {R3,R12} .text:00027278 CMP R3, R12 .text:0002727C BNE loc_272B0 .text:00027280 MOV R3, R12,LSL#1 .text:00027284 CMP R3, #0x100 .text:00027288 MOVCC R3, #0x100 .text:0002728C STR R3, [R11,#var_F4] .text:00027290 LDR R1, [R11,#var_F0] .text:00027294 SUB SP, SP, R3,LSL#2 .text:00027298 STR SP, [R11,#var_F0] .text:0002729C CMP R1, #0 .text:000272A0 BEQ loc_272B0 .text:000272A4 LDR R2, [R11,#var_F8] .text:000272A8 MOV R0, SP .text:000272AC BL memcpy .text:000272B0 .text:000272B0 loc_272B0 ; CODE XREF: _IO_vfscanf+2FCCj .text:000272B0 ; _IO_vfscanf+2FF0j .text:000272B0 LDR LR, [R11,#var_F0] .text:000272B4 LDR R0, [R11,#var_F8] .text:000272B8 STRB R10, [LR,R0] .text:000272BC ADD R0, R0, #1 .text:000272C0 STR R0, [R11,#var_F8] .text:000272C4 B loc_28178 .text:000272C8 ; --------------------------------------------------------------------------- .text:000272C8 .text:000272C8 loc_272C8 ; CODE XREF: _IO_vfscanf+2DC0j .text:000272C8 LDR R1, [R11,#var_104] .text:000272CC CMP R2, R1 .text:000272D0 LDRLS R2, =__ctype_tolower .text:000272D4 LDRLS R3, [R2] .text:000272D8 LDRLS R3, [R3,R10,LSL#2] .text:000272DC MOVHI R3, R10 .text:000272E0 CMP R3, #0x69 .text:000272E4 BNE loc_27A28 .text:000272E8 LDR R3, [R11,#var_EC] .text:000272EC LDR R12, [R11,#var_F4] .text:000272F0 CMP R3, R12 .text:000272F4 BNE loc_27320 .text:000272F8 MOV LR, #0x100 .text:000272FC STR LR, [R11,#var_F4] .text:00027300 LDR R1, [R11,#var_F0] .text:00027304 SUB SP, SP, #0x400 .text:00027308 STR SP, [R11,#var_F0] .text:0002730C CMP R1, #0 .text:00027310 BEQ loc_27320 .text:00027314 MOV R0, SP .text:00027318 MOV R2, #0 .text:0002731C BL memcpy .text:00027320 .text:00027320 loc_27320 ; CODE XREF: _IO_vfscanf+3044j .text:00027320 ; _IO_vfscanf+3060j .text:00027320 MOV R0, #1 .text:00027324 STR R0, [R11,#var_F8] .text:00027328 LDR R1, [R11,#var_F0] .text:0002732C STRB R10, [R1] .text:00027330 LDR R2, [R11,#var_B0] .text:00027334 CMP R2, #0 .text:00027338 BEQ loc_27644 .text:0002733C CMN R10, #1 .text:00027340 BEQ loc_27644 .text:00027344 LDMIB R7, {R2,R3} .text:00027348 CMP R2, R3 .text:0002734C BCC loc_27360 .text:00027350 MOV R0, R7 .text:00027354 BL __uflow .text:00027358 MOV R10, R0 .text:0002735C B loc_27368 .text:00027360 ; --------------------------------------------------------------------------- .text:00027360 .text:00027360 loc_27360 ; CODE XREF: _IO_vfscanf+309Cj .text:00027360 LDRB R10, [R2],#1 .text:00027364 STR R2, [R7,#4] .text:00027368 .text:00027368 loc_27368 ; CODE XREF: _IO_vfscanf+30ACj .text:00027368 CMN R10, #1 .text:0002736C LDRNE R3, [R11,#var_AC] .text:00027370 ADDNE R3, R3, #1 .text:00027374 STRNE R3, [R11,#var_AC] .text:00027378 CMN R10, #1 .text:0002737C BEQ loc_27644 .text:00027380 LDR R12, [R11,#var_104] .text:00027384 ADD R3, R10, #0x80 .text:00027388 CMP R3, R12 .text:0002738C LDRLS LR, =__ctype_tolower .text:00027390 LDRLS R3, [LR] .text:00027394 LDRLS R3, [R3,R10,LSL#2] .text:00027398 MOVHI R3, R10 .text:0002739C CMP R3, #0x6E .text:000273A0 BNE loc_27644 .text:000273A4 LDR R3, [R11,#var_B0] .text:000273A8 MOV R12, R3 .text:000273AC CMP R12, #0 .text:000273B0 SUBGT R3, R3, #1 .text:000273B4 STR R3, [R11,#var_B0] .text:000273B8 LDR LR, [R11,#var_F8] .text:000273BC LDR R0, [R11,#var_F4] .text:000273C0 CMP LR, R0 .text:000273C4 BNE loc_273F8 .text:000273C8 MOV R3, R0,LSL#1 .text:000273CC CMP R3, #0x100 .text:000273D0 MOVCC R3, #0x100 .text:000273D4 STR R3, [R11,#var_F4] .text:000273D8 LDR R1, [R11,#var_F0] .text:000273DC SUB SP, SP, R3,LSL#2 .text:000273E0 STR SP, [R11,#var_F0] .text:000273E4 CMP R1, #0 .text:000273E8 BEQ loc_273F8 .text:000273EC MOV R0, SP .text:000273F0 MOV R2, LR .text:000273F4 BL memcpy .text:000273F8 .text:000273F8 loc_273F8 ; CODE XREF: _IO_vfscanf+3114j .text:000273F8 ; _IO_vfscanf+3138j .text:000273F8 LDR R1, [R11,#var_F0] .text:000273FC LDR R2, [R11,#var_F8] .text:00027400 STRB R10, [R1,R2] .text:00027404 ADD R2, R2, #1 .text:00027408 STR R2, [R11,#var_F8] .text:0002740C LDR R3, [R11,#var_B0] .text:00027410 CMP R3, #0 .text:00027414 BEQ loc_27774 .text:00027418 CMN R10, #1 .text:0002741C BEQ loc_27774 .text:00027420 LDMIB R7, {R2,R3} .text:00027424 CMP R2, R3 .text:00027428 BCC loc_2743C .text:0002742C MOV R0, R7 .text:00027430 BL __uflow .text:00027434 MOV R10, R0 .text:00027438 B loc_27444 .text:0002743C ; --------------------------------------------------------------------------- .text:0002743C .text:0002743C loc_2743C ; CODE XREF: _IO_vfscanf+3178j .text:0002743C LDRB R10, [R2],#1 .text:00027440 STR R2, [R7,#4] .text:00027444 .text:00027444 loc_27444 ; CODE XREF: _IO_vfscanf+3188j .text:00027444 CMN R10, #1 .text:00027448 LDRNE R12, [R11,#var_AC] .text:0002744C ADDNE R12, R12, #1 .text:00027450 STRNE R12, [R11,#var_AC] .text:00027454 CMN R10, #1 .text:00027458 BEQ loc_27774 .text:0002745C LDR LR, [R11,#var_104] .text:00027460 ADD R3, R10, #0x80 .text:00027464 CMP R3, LR .text:00027468 LDRLS R0, =__ctype_tolower .text:0002746C LDRLS R3, [R0] .text:00027470 LDRLS R3, [R3,R10,LSL#2] .text:00027474 MOVHI R3, R10 .text:00027478 CMP R3, #0x66 .text:0002747C BNE loc_27774 .text:00027480 LDR R12, [R11,#var_B0] .text:00027484 MOV LR, R12 .text:00027488 CMP LR, #0 .text:0002748C SUBGT R12, R12, #1 .text:00027490 STR R12, [R11,#var_B0] .text:00027494 SUB R0, R11, #-var_F8 .text:00027498 LDMIA R0, {R0,R1} .text:0002749C CMP R0, R1 .text:000274A0 BNE loc_274D4 .text:000274A4 MOV R3, R1,LSL#1 .text:000274A8 CMP R3, #0x100 .text:000274AC MOVCC R3, #0x100 .text:000274B0 STR R3, [R11,#var_F4] .text:000274B4 LDR R1, [R11,#var_F0] .text:000274B8 SUB SP, SP, R3,LSL#2 .text:000274BC STR SP, [R11,#var_F0] .text:000274C0 CMP R1, #0 .text:000274C4 BEQ loc_274D4 .text:000274C8 LDR R2, [R11,#var_F8] .text:000274CC MOV R0, SP .text:000274D0 BL memcpy .text:000274D4 .text:000274D4 loc_274D4 ; CODE XREF: _IO_vfscanf+31F0j .text:000274D4 ; _IO_vfscanf+3214j .text:000274D4 LDR R2, [R11,#var_F0] .text:000274D8 LDR R3, [R11,#var_F8] .text:000274DC STRB R10, [R2,R3] .text:000274E0 ADD R3, R3, #1 .text:000274E4 STR R3, [R11,#var_F8] .text:000274E8 LDR R12, [R11,#var_B0] .text:000274EC CMP R12, #0 .text:000274F0 BEQ loc_28178 .text:000274F4 CMN R10, #1 .text:000274F8 BEQ loc_28178 .text:000274FC LDMIB R7, {R2,R3} .text:00027500 CMP R2, R3 .text:00027504 BCC loc_27518 .text:00027508 MOV R0, R7 .text:0002750C BL __uflow .text:00027510 MOV R10, R0 .text:00027514 B loc_27520 .text:00027518 ; --------------------------------------------------------------------------- .text:00027518 .text:00027518 loc_27518 ; CODE XREF: _IO_vfscanf+3254j .text:00027518 LDRB R10, [R2],#1 .text:0002751C STR R2, [R7,#4] .text:00027520 .text:00027520 loc_27520 ; CODE XREF: _IO_vfscanf+3264j .text:00027520 CMN R10, #1 .text:00027524 LDRNE LR, [R11,#var_AC] .text:00027528 ADDNE LR, LR, #1 .text:0002752C STRNE LR, [R11,#var_AC] .text:00027530 CMN R10, #1 .text:00027534 BEQ loc_28178 .text:00027538 LDR R0, [R11,#var_104] .text:0002753C ADD R3, R10, #0x80 .text:00027540 CMP R3, R0 .text:00027544 LDRLS R1, =__ctype_tolower .text:00027548 LDRLS R3, [R1] .text:0002754C LDRLS R3, [R3,R10,LSL#2] .text:00027550 MOVHI R3, R10 .text:00027554 CMP R3, #0x69 .text:00027558 BNE loc_27A04 .text:0002755C LDR R2, [R11,#var_B0] .text:00027560 MOV R3, R2 .text:00027564 CMP R3, #0 .text:00027568 SUBGT R2, R2, #1 .text:0002756C STR R2, [R11,#var_B0] .text:00027570 SUB R12, R11, #-var_F8 .text:00027574 LDMIA R12, {R12,LR} .text:00027578 CMP R12, LR .text:0002757C BNE loc_275B0 .text:00027580 MOV R3, LR,LSL#1 .text:00027584 CMP R3, #0x100 .text:00027588 MOVCC R3, #0x100 .text:0002758C STR R3, [R11,#var_F4] .text:00027590 LDR R1, [R11,#var_F0] .text:00027594 SUB SP, SP, R3,LSL#2 .text:00027598 STR SP, [R11,#var_F0] .text:0002759C CMP R1, #0 .text:000275A0 BEQ loc_275B0 .text:000275A4 MOV R0, SP .text:000275A8 MOV R2, R12 .text:000275AC BL memcpy .text:000275B0 .text:000275B0 loc_275B0 ; CODE XREF: _IO_vfscanf+32CCj .text:000275B0 ; _IO_vfscanf+32F0j .text:000275B0 LDR R0, [R11,#var_F0] .text:000275B4 LDR R1, [R11,#var_F8] .text:000275B8 STRB R10, [R0,R1] .text:000275BC ADD R1, R1, #1 .text:000275C0 STR R1, [R11,#var_F8] .text:000275C4 LDR R2, [R11,#var_B0] .text:000275C8 CMP R2, #0 .text:000275CC BEQ loc_27644 .text:000275D0 CMN R10, #1 .text:000275D4 BEQ loc_27644 .text:000275D8 LDMIB R7, {R2,R3} .text:000275DC CMP R2, R3 .text:000275E0 BCC loc_275F4 .text:000275E4 MOV R0, R7 .text:000275E8 BL __uflow .text:000275EC MOV R10, R0 .text:000275F0 B loc_275FC .text:000275F4 ; --------------------------------------------------------------------------- .text:000275F4 .text:000275F4 loc_275F4 ; CODE XREF: _IO_vfscanf+3330j .text:000275F4 LDRB R10, [R2],#1 .text:000275F8 STR R2, [R7,#4] .text:000275FC .text:000275FC loc_275FC ; CODE XREF: _IO_vfscanf+3340j .text:000275FC CMN R10, #1 .text:00027600 LDRNE R3, [R11,#var_AC] .text:00027604 ADDNE R3, R3, #1 .text:00027608 STRNE R3, [R11,#var_AC] .text:0002760C CMN R10, #1 .text:00027610 BEQ loc_27644 .text:00027614 LDR R12, [R11,#var_104] .text:00027618 ADD R3, R10, #0x80 .text:0002761C CMP R3, R12 .text:00027620 BHI loc_27638 .text:00027624 LDR LR, =__ctype_tolower .text:00027628 LDR R3, [LR] .text:0002762C LDR R3, [R3,R10,LSL#2] .text:00027630 B loc_2763C .text:00027630 ; --------------------------------------------------------------------------- .text:00027634 off_27634 DCD __ctype_tolower ; DATA XREF: _IO_vfscanf+3020r .text:00027634 ; _IO_vfscanf+30DCr ... .text:00027638 ; --------------------------------------------------------------------------- .text:00027638 .text:00027638 loc_27638 ; CODE XREF: _IO_vfscanf+3370j .text:00027638 MOV R3, R10 .text:0002763C .text:0002763C loc_2763C ; CODE XREF: _IO_vfscanf+3380j .text:0002763C CMP R3, #0x6E .text:00027640 BEQ loc_27698 .text:00027644 .text:00027644 loc_27644 ; CODE XREF: _IO_vfscanf+1958j .text:00027644 ; _IO_vfscanf+2F44j ... .text:00027644 LDR R3, [R7] .text:00027648 TST R3, #0x8000 .text:0002764C BNE loc_27658 .text:00027650 MOV R0, R7 .text:00027654 BL funlockfile .text:00027658 .text:00027658 loc_27658 ; CODE XREF: _IO_vfscanf+339Cj .text:00027658 LDR R0, [R11,#var_9C] .text:0002765C CMP R0, #0 .text:00027660 LDRNE R3, [R0] .text:00027664 ORRNE R3, R3, #1 .text:00027668 STRNE R3, [R0] .text:0002766C LDR R1, [R11,#var_FC] .text:00027670 CMP R1, #0 .text:00027674 BEQ loc_27684 .text:00027678 SUB R0, R11, #-var_38 .text:0002767C MOV R1, #0 .text:00027680 BL 0 .text:00027684 .text:00027684 loc_27684 ; CODE XREF: _IO_vfscanf+33C4j .text:00027684 LDR R2, [R11,#var_A8] .text:00027688 CMP R2, #0 .text:0002768C MOV R0, R2 .text:00027690 MOVEQ R0, 0xFFFFFFFF .text:00027694 B loc_28F44 .text:00027698 ; --------------------------------------------------------------------------- .text:00027698 .text:00027698 loc_27698 ; CODE XREF: _IO_vfscanf+3390j .text:00027698 LDR R3, [R11,#var_B0] .text:0002769C MOV R12, R3 .text:000276A0 CMP R12, #0 .text:000276A4 SUBGT R3, R3, #1 .text:000276A8 STR R3, [R11,#var_B0] .text:000276AC LDR LR, [R11,#var_F8] .text:000276B0 LDR R0, [R11,#var_F4] .text:000276B4 CMP LR, R0 .text:000276B8 BNE loc_276EC .text:000276BC MOV R3, R0,LSL#1 .text:000276C0 CMP R3, #0x100 .text:000276C4 MOVCC R3, #0x100 .text:000276C8 STR R3, [R11,#var_F4] .text:000276CC LDR R1, [R11,#var_F0] .text:000276D0 SUB SP, SP, R3,LSL#2 .text:000276D4 STR SP, [R11,#var_F0] .text:000276D8 CMP R1, #0 .text:000276DC BEQ loc_276EC .text:000276E0 MOV R0, SP .text:000276E4 MOV R2, LR .text:000276E8 BL memcpy .text:000276EC .text:000276EC loc_276EC ; CODE XREF: _IO_vfscanf+3408j .text:000276EC ; _IO_vfscanf+342Cj .text:000276EC LDR R1, [R11,#var_F0] .text:000276F0 LDR R2, [R11,#var_F8] .text:000276F4 STRB R10, [R1,R2] .text:000276F8 ADD R2, R2, #1 .text:000276FC STR R2, [R11,#var_F8] .text:00027700 LDR R3, [R11,#var_B0] .text:00027704 CMP R3, #0 .text:00027708 BEQ loc_27774 .text:0002770C CMN R10, #1 .text:00027710 BEQ loc_27774 .text:00027714 LDMIB R7, {R2,R3} .text:00027718 CMP R2, R3 .text:0002771C BCC loc_27730 .text:00027720 MOV R0, R7 .text:00027724 BL __uflow .text:00027728 MOV R10, R0 .text:0002772C B loc_27738 .text:00027730 ; --------------------------------------------------------------------------- .text:00027730 .text:00027730 loc_27730 ; CODE XREF: _IO_vfscanf+346Cj .text:00027730 LDRB R10, [R2],#1 .text:00027734 STR R2, [R7,#4] .text:00027738 .text:00027738 loc_27738 ; CODE XREF: _IO_vfscanf+347Cj .text:00027738 CMN R10, #1 .text:0002773C LDRNE R12, [R11,#var_AC] .text:00027740 ADDNE R12, R12, #1 .text:00027744 STRNE R12, [R11,#var_AC] .text:00027748 CMN R10, #1 .text:0002774C BEQ loc_27774 .text:00027750 LDR LR, [R11,#var_104] .text:00027754 ADD R3, R10, #0x80 .text:00027758 CMP R3, LR .text:0002775C LDRLS R0, =__ctype_tolower .text:00027760 LDRLS R3, [R0] .text:00027764 LDRLS R3, [R3,R10,LSL#2] .text:00027768 MOVHI R3, R10 .text:0002776C CMP R3, #0x69 .text:00027770 BEQ loc_277C8 .text:00027774 .text:00027774 loc_27774 ; CODE XREF: _IO_vfscanf+840j .text:00027774 ; _IO_vfscanf+A34j ... .text:00027774 LDR R3, [R7] .text:00027778 TST R3, #0x8000 .text:0002777C BNE loc_27788 .text:00027780 MOV R0, R7 .text:00027784 BL funlockfile .text:00027788 .text:00027788 loc_27788 ; CODE XREF: _IO_vfscanf+34CCj .text:00027788 LDR R1, [R11,#var_9C] .text:0002778C CMP R1, #0 .text:00027790 LDRNE R3, [R1] .text:00027794 ORRNE R3, R3, #1 .text:00027798 STRNE R3, [R1] .text:0002779C LDR R2, [R11,#var_FC] .text:000277A0 CMP R2, #0 .text:000277A4 BEQ loc_277B4 .text:000277A8 SUB R0, R11, #-var_38 .text:000277AC MOV R1, #0 .text:000277B0 BL 0 .text:000277B4 .text:000277B4 loc_277B4 ; CODE XREF: _IO_vfscanf+34F4j .text:000277B4 LDR R3, [R11,#var_A8] .text:000277B8 CMP R3, #0 .text:000277BC MOV R0, R3 .text:000277C0 MOVEQ R0, 0xFFFFFFFF .text:000277C4 B loc_28F44 .text:000277C8 ; --------------------------------------------------------------------------- .text:000277C8 .text:000277C8 loc_277C8 ; CODE XREF: _IO_vfscanf+34C0j .text:000277C8 LDR R12, [R11,#var_B0] .text:000277CC MOV LR, R12 .text:000277D0 CMP LR, #0 .text:000277D4 SUBGT R12, R12, #1 .text:000277D8 STR R12, [R11,#var_B0] .text:000277DC SUB R0, R11, #-var_F8 .text:000277E0 LDMIA R0, {R0,R1} .text:000277E4 CMP R0, R1 .text:000277E8 BNE loc_2781C .text:000277EC MOV R3, R1,LSL#1 .text:000277F0 CMP R3, #0x100 .text:000277F4 MOVCC R3, #0x100 .text:000277F8 STR R3, [R11,#var_F4] .text:000277FC LDR R1, [R11,#var_F0] .text:00027800 SUB SP, SP, R3,LSL#2 .text:00027804 STR SP, [R11,#var_F0] .text:00027808 CMP R1, #0 .text:0002780C BEQ loc_2781C .text:00027810 LDR R2, [R11,#var_F8] .text:00027814 MOV R0, SP .text:00027818 BL memcpy .text:0002781C .text:0002781C loc_2781C ; CODE XREF: _IO_vfscanf+3538j .text:0002781C ; _IO_vfscanf+355Cj .text:0002781C LDR R2, [R11,#var_F0] .text:00027820 LDR R3, [R11,#var_F8] .text:00027824 STRB R10, [R2,R3] .text:00027828 ADD R3, R3, #1 .text:0002782C STR R3, [R11,#var_F8] .text:00027830 LDR R12, [R11,#var_B0] .text:00027834 CMP R12, #0 .text:00027838 BEQ loc_28838 .text:0002783C CMN R10, #1 .text:00027840 BEQ loc_28838 .text:00027844 LDMIB R7, {R2,R3} .text:00027848 CMP R2, R3 .text:0002784C BCC loc_27860 .text:00027850 MOV R0, R7 .text:00027854 BL __uflow .text:00027858 MOV R10, R0 .text:0002785C B loc_27868 .text:00027860 ; --------------------------------------------------------------------------- .text:00027860 .text:00027860 loc_27860 ; CODE XREF: _IO_vfscanf+359Cj .text:00027860 LDRB R10, [R2],#1 .text:00027864 STR R2, [R7,#4] .text:00027868 .text:00027868 loc_27868 ; CODE XREF: _IO_vfscanf+35ACj .text:00027868 CMN R10, #1 .text:0002786C LDRNE LR, [R11,#var_AC] .text:00027870 ADDNE LR, LR, #1 .text:00027874 STRNE LR, [R11,#var_AC] .text:00027878 CMN R10, #1 .text:0002787C BEQ loc_28838 .text:00027880 LDR R0, [R11,#var_104] .text:00027884 ADD R3, R10, #0x80 .text:00027888 CMP R3, R0 .text:0002788C LDRLS R1, =__ctype_tolower .text:00027890 LDRLS R3, [R1] .text:00027894 LDRLS R3, [R3,R10,LSL#2] .text:00027898 MOVHI R3, R10 .text:0002789C CMP R3, #0x74 .text:000278A0 BNE loc_28838 .text:000278A4 LDR LR, [R11,#var_B0] .text:000278A8 MOV R0, LR .text:000278AC CMP R0, #0 .text:000278B0 SUBGT LR, LR, #1 .text:000278B4 STR LR, [R11,#var_B0] .text:000278B8 SUB R1, R11, #-var_F8 .text:000278BC LDMIA R1, {R1,R2} .text:000278C0 CMP R1, R2 .text:000278C4 BNE loc_278F8 .text:000278C8 MOV R3, R2,LSL#1 .text:000278CC CMP R3, #0x100 .text:000278D0 MOVCC R3, #0x100 .text:000278D4 STR R3, [R11,#var_F4] .text:000278D8 LDR R1, [R11,#var_F0] .text:000278DC SUB SP, SP, R3,LSL#2 .text:000278E0 STR SP, [R11,#var_F0] .text:000278E4 CMP R1, #0 .text:000278E8 BEQ loc_278F8 .text:000278EC LDR R2, [R11,#var_F8] .text:000278F0 MOV R0, SP .text:000278F4 BL memcpy .text:000278F8 .text:000278F8 loc_278F8 ; CODE XREF: _IO_vfscanf+3614j .text:000278F8 ; _IO_vfscanf+3638j .text:000278F8 LDR R3, [R11,#var_F0] .text:000278FC LDR R12, [R11,#var_F8] .text:00027900 STRB R10, [R3,R12] .text:00027904 ADD R12, R12, #1 .text:00027908 STR R12, [R11,#var_F8] .text:0002790C LDR LR, [R11,#var_B0] .text:00027910 CMP LR, #0 .text:00027914 BEQ loc_27980 .text:00027918 CMN R10, #1 .text:0002791C BEQ loc_27980 .text:00027920 LDMIB R7, {R2,R3} .text:00027924 CMP R2, R3 .text:00027928 BCC loc_2793C .text:0002792C MOV R0, R7 .text:00027930 BL __uflow .text:00027934 MOV R10, R0 .text:00027938 B loc_27944 .text:0002793C ; --------------------------------------------------------------------------- .text:0002793C .text:0002793C loc_2793C ; CODE XREF: _IO_vfscanf+3678j .text:0002793C LDRB R10, [R2],#1 .text:00027940 STR R2, [R7,#4] .text:00027944 .text:00027944 loc_27944 ; CODE XREF: _IO_vfscanf+3688j .text:00027944 CMN R10, #1 .text:00027948 LDRNE R0, [R11,#var_AC] .text:0002794C ADDNE R0, R0, #1 .text:00027950 STRNE R0, [R11,#var_AC] .text:00027954 CMN R10, #1 .text:00027958 BEQ loc_27980 .text:0002795C LDR R1, [R11,#var_104] .text:00027960 ADD R3, R10, #0x80 .text:00027964 CMP R3, R1 .text:00027968 LDRLS R2, =__ctype_tolower .text:0002796C LDRLS R3, [R2] .text:00027970 LDRLS R3, [R3,R10,LSL#2] .text:00027974 MOVHI R3, R10 .text:00027978 CMP R3, #0x79 .text:0002797C BEQ loc_279AC .text:00027980 .text:00027980 loc_27980 ; CODE XREF: _IO_vfscanf+3664j .text:00027980 ; _IO_vfscanf+366Cj ... .text:00027980 LDR R3, [R7] .text:00027984 TST R3, #0x8000 .text:00027988 BNE loc_27994 .text:0002798C MOV R0, R7 .text:00027990 BL funlockfile .text:00027994 .text:00027994 loc_27994 ; CODE XREF: _IO_vfscanf+36D8j .text:00027994 LDR R3, [R11,#var_9C] .text:00027998 CMP R3, #0 .text:0002799C BEQ loc_28BDC .text:000279A0 LDR R3, [R3] .text:000279A4 LDR R12, [R11,#var_9C] .text:000279A8 B loc_28BD4 .text:000279AC ; --------------------------------------------------------------------------- .text:000279AC .text:000279AC loc_279AC ; CODE XREF: _IO_vfscanf+36CCj .text:000279AC SUB R1, R11, #-var_F8 .text:000279B0 LDMIA R1, {R1,R2} .text:000279B4 CMP R1, R2 .text:000279B8 BNE loc_279EC .text:000279BC MOV R3, R2,LSL#1 .text:000279C0 CMP R3, #0x100 .text:000279C4 MOVCC R3, #0x100 .text:000279C8 STR R3, [R11,#var_F4] .text:000279CC LDR R1, [R11,#var_F0] .text:000279D0 SUB SP, SP, R3,LSL#2 .text:000279D4 STR SP, [R11,#var_F0] .text:000279D8 CMP R1, #0 .text:000279DC BEQ loc_279EC .text:000279E0 LDR R2, [R11,#var_F8] .text:000279E4 MOV R0, SP .text:000279E8 BL memcpy .text:000279EC .text:000279EC loc_279EC ; CODE XREF: _IO_vfscanf+3708j .text:000279EC ; _IO_vfscanf+372Cj .text:000279EC LDR R3, [R11,#var_F0] .text:000279F0 LDR R12, [R11,#var_F8] .text:000279F4 STRB R10, [R3,R12] .text:000279F8 ADD R12, R12, #1 .text:000279FC STR R12, [R11,#var_F8] .text:00027A00 B loc_28178 .text:00027A04 ; --------------------------------------------------------------------------- .text:00027A04 .text:00027A04 loc_27A04 ; CODE XREF: _IO_vfscanf+32A8j .text:00027A04 CMN R10, #1 .text:00027A08 BEQ loc_28178 .text:00027A0C LDR LR, [R11,#var_AC] .text:00027A10 SUB LR, LR, #1 .text:00027A14 STR LR, [R11,#var_AC] .text:00027A18 MOV R0, R7 .text:00027A1C AND R1, R10, #0xFF .text:00027A20 BL _IO_sputbackc .text:00027A24 B loc_28178 .text:00027A28 ; --------------------------------------------------------------------------- .text:00027A28 .text:00027A28 loc_27A28 ; CODE XREF: _IO_vfscanf+3034j .text:00027A28 MOV R0, #0 .text:00027A2C STR R0, [R11,#var_C4] .text:00027A30 MOV R1, #0x65 .text:00027A34 LDR R2, [R11,#var_B0] .text:00027A38 CMP R10, #0x30 .text:00027A3C MOVNE R3, #0 .text:00027A40 MOVEQ R3, #1 .text:00027A44 STR R1, [R11,#var_BC] .text:00027A48 CMP R2, R0 .text:00027A4C MOVEQ R3, R0 .text:00027A50 CMP R3, R0 .text:00027A54 BEQ loc_27BE4 .text:00027A58 LDR R3, [R11,#var_EC] .text:00027A5C LDR R12, [R11,#var_F4] .text:00027A60 CMP R3, R12 .text:00027A64 BNE loc_27A90 .text:00027A68 MOV LR, #0x100 .text:00027A6C STR LR, [R11,#var_F4] .text:00027A70 LDR R1, [R11,#var_F0] .text:00027A74 SUB SP, SP, #0x400 .text:00027A78 STR SP, [R11,#var_F0] .text:00027A7C CMP R1, R0 .text:00027A80 BEQ loc_27A90 .text:00027A84 LDR R2, [R11,#var_C4] .text:00027A88 MOV R0, SP .text:00027A8C BL memcpy .text:00027A90 .text:00027A90 loc_27A90 ; CODE XREF: _IO_vfscanf+37B4j .text:00027A90 ; _IO_vfscanf+37D0j .text:00027A90 MOV R0, #1 .text:00027A94 STR R0, [R11,#var_F8] .text:00027A98 LDR R1, [R11,#var_F0] .text:00027A9C STRB R10, [R1] .text:00027AA0 CMN R10, #1 .text:00027AA4 BEQ loc_27AE0 .text:00027AA8 LDMIB R7, {R2,R3} .text:00027AAC CMP R2, R3 .text:00027AB0 BCC loc_27AC8 .text:00027AB4 MOV R0, R7 .text:00027AB8 BL __uflow .text:00027ABC MOV R10, R0 .text:00027AC0 B loc_27AD0 .text:00027AC0 ; --------------------------------------------------------------------------- .text:00027AC4 off_27AC4 DCD __ctype_tolower ; DATA XREF: _IO_vfscanf+34ACr .text:00027AC4 ; _IO_vfscanf+35DCr ... .text:00027AC8 ; --------------------------------------------------------------------------- .text:00027AC8 .text:00027AC8 loc_27AC8 ; CODE XREF: _IO_vfscanf+3800j .text:00027AC8 LDRB R10, [R2],#1 .text:00027ACC STR R2, [R7,#4] .text:00027AD0 .text:00027AD0 loc_27AD0 ; CODE XREF: _IO_vfscanf+3810j .text:00027AD0 CMN R10, #1 .text:00027AD4 LDRNE R2, [R11,#var_AC] .text:00027AD8 ADDNE R2, R2, #1 .text:00027ADC STRNE R2, [R11,#var_AC] .text:00027AE0 .text:00027AE0 loc_27AE0 ; CODE XREF: _IO_vfscanf+37F4j .text:00027AE0 MOV R4, R10 .text:00027AE4 LDR R3, [R11,#var_B0] .text:00027AE8 MOV R12, R3 .text:00027AEC CMP R12, #0 .text:00027AF0 SUBGT R3, R3, #1 .text:00027AF4 CMP R3, #0 .text:00027AF8 STR R3, [R11,#var_B0] .text:00027AFC BEQ loc_27BE4 .text:00027B00 LDR LR, [R11,#var_104] .text:00027B04 ADD R3, R4, #0x80 .text:00027B08 CMP R3, LR .text:00027B0C LDRLS R0, =__ctype_tolower .text:00027B10 LDRLS R3, [R0] .text:00027B14 LDRLS R3, [R3,R4,LSL#2] .text:00027B18 MOVHI R3, R4 .text:00027B1C CMP R3, #0x78 .text:00027B20 BNE loc_27BE4 .text:00027B24 SUB R1, R11, #-var_F8 .text:00027B28 LDMIA R1, {R1,R2} .text:00027B2C CMP R1, R2 .text:00027B30 BNE loc_27B64 .text:00027B34 MOV R3, R2,LSL#1 .text:00027B38 CMP R3, #0x100 .text:00027B3C MOVCC R3, #0x100 .text:00027B40 STR R3, [R11,#var_F4] .text:00027B44 LDR R1, [R11,#var_F0] .text:00027B48 SUB SP, SP, R3,LSL#2 .text:00027B4C STR SP, [R11,#var_F0] .text:00027B50 CMP R1, #0 .text:00027B54 BEQ loc_27B64 .text:00027B58 LDR R2, [R11,#var_F8] .text:00027B5C MOV R0, SP .text:00027B60 BL memcpy .text:00027B64 .text:00027B64 loc_27B64 ; CODE XREF: _IO_vfscanf+3880j .text:00027B64 ; _IO_vfscanf+38A4j .text:00027B64 LDR R3, [R11,#var_F0] .text:00027B68 LDR R12, [R11,#var_F8] .text:00027B6C STRB R4, [R3,R12] .text:00027B70 ADD R12, R12, #1 .text:00027B74 STR R12, [R11,#var_F8] .text:00027B78 MOV LR, #1 .text:00027B7C STR LR, [R11,#var_C4] .text:00027B80 LDR R1, [R11,#var_B4] .text:00027B84 MOV R0, #0x70 .text:00027B88 STR R0, [R11,#var_BC] .text:00027B8C CMN R4, #1 .text:00027B90 BIC R1, R1, #0x80 .text:00027B94 STR R1, [R11,#var_B4] .text:00027B98 BEQ loc_27BD0 .text:00027B9C LDMIB R7, {R2,R3} .text:00027BA0 CMP R2, R3 .text:00027BA4 BCC loc_27BB8 .text:00027BA8 MOV R0, R7 .text:00027BAC BL __uflow .text:00027BB0 MOV R10, R0 .text:00027BB4 B loc_27BC0 .text:00027BB8 ; --------------------------------------------------------------------------- .text:00027BB8 .text:00027BB8 loc_27BB8 ; CODE XREF: _IO_vfscanf+38F4j .text:00027BB8 LDRB R10, [R2],#1 .text:00027BBC STR R2, [R7,#4] .text:00027BC0 .text:00027BC0 loc_27BC0 ; CODE XREF: _IO_vfscanf+3904j .text:00027BC0 CMN R10, #1 .text:00027BC4 LDRNE R2, [R11,#var_AC] .text:00027BC8 ADDNE R2, R2, #1 .text:00027BCC STRNE R2, [R11,#var_AC] .text:00027BD0 .text:00027BD0 loc_27BD0 ; CODE XREF: _IO_vfscanf+38E8j .text:00027BD0 LDR R3, [R11,#var_B0] .text:00027BD4 MOV R12, R3 .text:00027BD8 CMP R12, #0 .text:00027BDC SUBGT R3, R3, #1 .text:00027BE0 STR R3, [R11,#var_B0] .text:00027BE4 .text:00027BE4 loc_27BE4 ; CODE XREF: _IO_vfscanf+37A4j .text:00027BE4 ; _IO_vfscanf+384Cj ... .text:00027BE4 MOV R8, #0 .text:00027BE8 MOV R9, R8 .text:00027BEC .text:00027BEC loc_27BEC ; CODE XREF: _IO_vfscanf+3EA0j .text:00027BEC LDR LR, =__ctype_b .text:00027BF0 LDR R1, [LR] .text:00027BF4 MOV R3, R10,LSL#1 .text:00027BF8 LDRB R0, [R3,R1] .text:00027BFC ADD R3, R3, R1 .text:00027C00 LDRB R2, [R3,#1] .text:00027C04 ORR R2, R0, R2,LSL#8 .text:00027C08 TST R2, #0x800 .text:00027C0C BEQ loc_27C50 .text:00027C10 SUB R0, R11, #-var_F8 .text:00027C14 LDMIA R0, {R0,R1} .text:00027C18 CMP R0, R1 .text:00027C1C BNE loc_27D34 .text:00027C20 MOV R3, R1,LSL#1 .text:00027C24 CMP R3, #0x100 .text:00027C28 MOVCC R3, #0x100 .text:00027C2C STR R3, [R11,#var_F4] .text:00027C30 LDR R1, [R11,#var_F0] .text:00027C34 SUB SP, SP, R3,LSL#2 .text:00027C38 STR SP, [R11,#var_F0] .text:00027C3C CMP R1, #0 .text:00027C40 BEQ loc_27D34 .text:00027C44 LDR R2, [R11,#var_F8] .text:00027C48 MOV R0, SP .text:00027C4C B loc_27D30 .text:00027C50 ; --------------------------------------------------------------------------- .text:00027C50 .text:00027C50 loc_27C50 ; CODE XREF: _IO_vfscanf+395Cj .text:00027C50 LDR R12, [R11,#var_C4] .text:00027C54 CMP R12, #0 .text:00027C58 EORNE R3, R8, #1 .text:00027C5C MOVEQ R3, #0 .text:00027C60 CMP R3, #0 .text:00027C64 BEQ loc_27CC8 .text:00027C68 TST R2, #0x1000 .text:00027C6C BEQ loc_27CC8 .text:00027C70 LDR LR, [R11,#var_F8] .text:00027C74 LDR R0, [R11,#var_F4] .text:00027C78 CMP LR, R0 .text:00027C7C BNE loc_27CB0 .text:00027C80 MOV R3, R0,LSL#1 .text:00027C84 CMP R3, #0x100 .text:00027C88 MOVCC R3, #0x100 .text:00027C8C STR R3, [R11,#var_F4] .text:00027C90 LDR R1, [R11,#var_F0] .text:00027C94 SUB SP, SP, R3,LSL#2 .text:00027C98 STR SP, [R11,#var_F0] .text:00027C9C CMP R1, #0 .text:00027CA0 BEQ loc_27CB0 .text:00027CA4 MOV R0, SP .text:00027CA8 MOV R2, LR .text:00027CAC BL memcpy .text:00027CB0 .text:00027CB0 loc_27CB0 ; CODE XREF: _IO_vfscanf+39CCj .text:00027CB0 ; _IO_vfscanf+39F0j .text:00027CB0 LDR R1, [R11,#var_F0] .text:00027CB4 LDR R2, [R11,#var_F8] .text:00027CB8 STRB R10, [R1,R2] .text:00027CBC ADD R2, R2, #1 .text:00027CC0 STR R2, [R11,#var_F8] .text:00027CC4 B loc_280F4 .text:00027CC8 ; --------------------------------------------------------------------------- .text:00027CC8 .text:00027CC8 loc_27CC8 ; CODE XREF: _IO_vfscanf+39B4j .text:00027CC8 ; _IO_vfscanf+39BCj .text:00027CC8 CMP R8, #0 .text:00027CCC BEQ loc_27D4C .text:00027CD0 LDR R12, [R11,#var_F8] .text:00027CD4 LDR LR, [R11,#var_F0] .text:00027CD8 LDR R0, [R11,#var_BC] .text:00027CDC ADD R3, R12, LR .text:00027CE0 LDRB R2, [R3,#-1] .text:00027CE4 CMP R2, R0 .text:00027CE8 BNE loc_27D4C .text:00027CEC CMP R10, #0x2B .text:00027CF0 CMPNE R10, #0x2D .text:00027CF4 BNE loc_27D4C .text:00027CF8 LDR R1, [R11,#var_F4] .text:00027CFC CMP R12, R1 .text:00027D00 BNE loc_27D34 .text:00027D04 MOV R3, R1,LSL#1 .text:00027D08 CMP R3, #0x100 .text:00027D0C MOVCC R3, #0x100 .text:00027D10 SUB SP, SP, R3,LSL#2 .text:00027D14 STR R3, [R11,#var_F4] .text:00027D18 MOV R1, LR .text:00027D1C CMP R1, #0 .text:00027D20 STR SP, [R11,#var_F0] .text:00027D24 BEQ loc_27D34 .text:00027D28 MOV R0, SP .text:00027D2C MOV R2, R12 .text:00027D30 .text:00027D30 loc_27D30 ; CODE XREF: _IO_vfscanf+399Cj .text:00027D30 BL memcpy .text:00027D34 .text:00027D34 loc_27D34 ; CODE XREF: _IO_vfscanf+396Cj .text:00027D34 ; _IO_vfscanf+3990j ... .text:00027D34 LDR R2, [R11,#var_F0] .text:00027D38 LDR R3, [R11,#var_F8] .text:00027D3C STRB R10, [R2,R3] .text:00027D40 ADD R3, R3, #1 .text:00027D44 STR R3, [R11,#var_F8] .text:00027D48 B loc_280F4 .text:00027D4C ; --------------------------------------------------------------------------- .text:00027D4C .text:00027D4C loc_27D4C ; CODE XREF: _IO_vfscanf+3A1Cj .text:00027D4C ; _IO_vfscanf+3A38j ... .text:00027D4C LDR R12, [R11,#var_F8] .text:00027D50 CMP R12, #0 .text:00027D54 EORNE R3, R8, #1 .text:00027D58 MOVEQ R3, #0 .text:00027D5C CMP R3, #0 .text:00027D60 BEQ loc_27DEC .text:00027D64 LDR LR, [R11,#var_104] .text:00027D68 ADD R3, R10, #0x80 .text:00027D6C CMP R3, LR .text:00027D70 LDRLS R0, =__ctype_tolower .text:00027D74 LDRLS R3, [R0] .text:00027D78 LDRLS R3, [R3,R10,LSL#2] .text:00027D7C MOVHI R3, R10 .text:00027D80 LDR R1, [R11,#var_BC] .text:00027D84 CMP R3, R1 .text:00027D88 BNE loc_27DEC .text:00027D8C SUB R2, R11, #-var_F8 .text:00027D90 LDMIA R2, {R2,R3} .text:00027D94 CMP R2, R3 .text:00027D98 BNE loc_27DC8 .text:00027D9C MOV R3, R3,LSL#1 .text:00027DA0 CMP R3, #0x100 .text:00027DA4 MOVCC R3, #0x100 .text:00027DA8 STR R3, [R11,#var_F4] .text:00027DAC LDR R1, [R11,#var_F0] .text:00027DB0 SUB SP, SP, R3,LSL#2 .text:00027DB4 STR SP, [R11,#var_F0] .text:00027DB8 CMP R1, #0 .text:00027DBC BEQ loc_27DC8 .text:00027DC0 MOV R0, SP .text:00027DC4 BL memcpy .text:00027DC8 .text:00027DC8 loc_27DC8 ; CODE XREF: _IO_vfscanf+3AE8j .text:00027DC8 ; _IO_vfscanf+3B0Cj .text:00027DC8 LDR R0, [R11,#var_BC] .text:00027DCC LDR R12, [R11,#var_F0] .text:00027DD0 LDR LR, [R11,#var_F8] .text:00027DD4 STRB R0, [R12,LR] .text:00027DD8 ADD LR, LR, #1 .text:00027DDC STR LR, [R11,#var_F8] .text:00027DE0 MOV R8, #1 .text:00027DE4 MOV R9, R8 .text:00027DE8 B loc_280F4 .text:00027DEC ; --------------------------------------------------------------------------- .text:00027DEC .text:00027DEC loc_27DEC ; CODE XREF: _IO_vfscanf+3AB0j .text:00027DEC ; _IO_vfscanf+3AD8j .text:00027DEC LDR R1, [R11,#var_B0] .text:00027DF0 LDR R5, [R11,#var_C8] .text:00027DF4 CMP R1, #0 .text:00027DF8 MOV R6, R1 .text:00027DFC MOVLE R6, 0x7FFFFFFF .text:00027E00 CMP R9, #0 .text:00027E04 BNE loc_27E88 .text:00027E08 B loc_27E5C .text:00027E0C ; --------------------------------------------------------------------------- .text:00027E0C .text:00027E0C loc_27E0C ; CODE XREF: _IO_vfscanf+3BD4j .text:00027E0C CMN R10, #1 .text:00027E10 BEQ loc_27E88 .text:00027E14 LDMIB R7, {R2,R3} .text:00027E18 CMP R2, R3 .text:00027E1C BCC loc_27E38 .text:00027E20 MOV R0, R7 .text:00027E24 BL __uflow .text:00027E28 MOV R10, R0 .text:00027E2C B loc_27E40 .text:00027E2C ; --------------------------------------------------------------------------- .text:00027E30 off_27E30 DCD __ctype_tolower ; DATA XREF: _IO_vfscanf+385Cr .text:00027E30 ; _IO_vfscanf+3AC0r .text:00027E34 off_27E34 DCD __ctype_b ; DATA XREF: _IO_vfscanf:loc_27BECr .text:00027E38 ; --------------------------------------------------------------------------- .text:00027E38 .text:00027E38 loc_27E38 ; CODE XREF: _IO_vfscanf+3B6Cj .text:00027E38 LDRB R10, [R2],#1 .text:00027E3C STR R2, [R7,#4] .text:00027E40 .text:00027E40 loc_27E40 ; CODE XREF: _IO_vfscanf+3B7Cj .text:00027E40 CMN R10, #1 .text:00027E44 LDRNE R2, [R11,#var_AC] .text:00027E48 ADDNE R2, R2, #1 .text:00027E4C STRNE R2, [R11,#var_AC] .text:00027E50 CMN R10, #1 .text:00027E54 BEQ loc_27E88 .text:00027E58 SUB R6, R6, #1 .text:00027E5C .text:00027E5C loc_27E5C ; CODE XREF: _IO_vfscanf+3B58j .text:00027E5C LDRB R2, [R5] .text:00027E60 CMP R6, #0 .text:00027E64 MOVLE R3, #0 .text:00027E68 MOVGT R3, #1 .text:00027E6C CMP R2, R10 .text:00027E70 MOVNE R3, #0 .text:00027E74 CMP R3, #0 .text:00027E78 BEQ loc_27E88 .text:00027E7C LDRB R3, [R5,#1]! .text:00027E80 CMP R3, #0 .text:00027E84 BNE loc_27E0C .text:00027E88 .text:00027E88 loc_27E88 ; CODE XREF: _IO_vfscanf+3B54j .text:00027E88 ; _IO_vfscanf+3B60j ... .text:00027E88 LDRB R3, [R5] .text:00027E8C CMP R3, #0 .text:00027E90 BNE loc_27F24 .text:00027E94 LDR R5, [R11,#var_C8] .text:00027E98 LDRB R3, [R5] .text:00027E9C CMP R3, #0 .text:00027EA0 BEQ loc_27F08 .text:00027EA4 .text:00027EA4 loc_27EA4 ; CODE XREF: _IO_vfscanf+3C54j .text:00027EA4 SUB R3, R11, #-var_F8 .text:00027EA8 LDMIA R3, {R3,R12} .text:00027EAC CMP R3, R12 .text:00027EB0 BNE loc_27EE4 .text:00027EB4 MOV R3, R12,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+3C00j .text:00027EE4 ; _IO_vfscanf+3C24j .text:00027EE4 LDRB R3, [R5] .text:00027EE8 LDR LR, [R11,#var_F0] .text:00027EEC LDR R0, [R11,#var_F8] .text:00027EF0 STRB R3, [LR,R0] .text:00027EF4 ADD R0, R0, #1 .text:00027EF8 STR R0, [R11,#var_F8] .text:00027EFC LDRB R3, [R5,#1]! .text:00027F00 CMP R3, #0 .text:00027F04 BNE loc_27EA4 .text:00027F08 .text:00027F08 loc_27F08 ; CODE XREF: _IO_vfscanf+3BF0j .text:00027F08 LDR R1, [R11,#var_B0] .text:00027F0C MOV R9, #1 .text:00027F10 MOV R2, R1 .text:00027F14 CMP R2, #0 .text:00027F18 MOVGT R1, R6 .text:00027F1C STR R1, [R11,#var_B0] .text:00027F20 B loc_280F4 .text:00027F24 ; --------------------------------------------------------------------------- .text:00027F24 .text:00027F24 loc_27F24 ; CODE XREF: _IO_vfscanf+3BE0j .text:00027F24 LDR R4, [R11,#var_CC] .text:00027F28 CMP R4, #0 .text:00027F2C EORNE R3, R9, #1 .text:00027F30 MOVEQ R3, #0 .text:00027F34 CMP R3, #0 .text:00027F38 BEQ loc_28030 .text:00027F3C CMP R4, R5 .text:00027F40 BCS loc_27F84 .text:00027F44 LDRB R2, [R4] .text:00027F48 LDR R12, [R11,#var_C8] .text:00027F4C MOV LR, #0 .text:00027F50 LDRB R3, [R12,LR] .text:00027F54 CMP R2, R3 .text:00027F58 BNE loc_27F84 .text:00027F5C .text:00027F5C loc_27F5C ; CODE XREF: _IO_vfscanf+3CD0j .text:00027F5C ADD R4, R4, #1 .text:00027F60 CMP R4, R5 .text:00027F64 BCS loc_27F84 .text:00027F68 LDRB R3, [R4] .text:00027F6C SUB R0, R11, #-var_CC .text:00027F70 LDMIA R0, {R0,R12} .text:00027F74 RSB R2, R0, R4 .text:00027F78 LDRB R1, [R12,R2] .text:00027F7C CMP R3, R1 .text:00027F80 BEQ loc_27F5C .text:00027F84 .text:00027F84 loc_27F84 ; CODE XREF: _IO_vfscanf+3C90j .text:00027F84 ; _IO_vfscanf+3CA8j ... .text:00027F84 CMP R4, R5 .text:00027F88 BNE loc_28030 .text:00027F8C LDRB R2, [R5] .text:00027F90 CMP R6, #0 .text:00027F94 MOVLE R3, #0 .text:00027F98 MOVGT R3, #1 .text:00027F9C CMP R2, R10 .text:00027FA0 MOVNE R3, #0 .text:00027FA4 CMP R3, #0 .text:00027FA8 BEQ loc_28030 .text:00027FAC LDRB R3, [R5,#1]! .text:00027FB0 MOV R4, R5 .text:00027FB4 CMP R3, #0 .text:00027FB8 BEQ loc_28030 .text:00027FBC .text:00027FBC loc_27FBC ; CODE XREF: _IO_vfscanf+3D7Cj .text:00027FBC CMN R10, #1 .text:00027FC0 BEQ loc_28030 .text:00027FC4 LDMIB R7, {R2,R3} .text:00027FC8 CMP R2, R3 .text:00027FCC BCC loc_27FE0 .text:00027FD0 MOV R0, R7 .text:00027FD4 BL __uflow .text:00027FD8 MOV R10, R0 .text:00027FDC B loc_27FE8 .text:00027FE0 ; --------------------------------------------------------------------------- .text:00027FE0 .text:00027FE0 loc_27FE0 ; CODE XREF: _IO_vfscanf+3D1Cj .text:00027FE0 LDRB R10, [R2],#1 .text:00027FE4 STR R2, [R7,#4] .text:00027FE8 .text:00027FE8 loc_27FE8 ; CODE XREF: _IO_vfscanf+3D2Cj .text:00027FE8 CMN R10, #1 .text:00027FEC LDRNE LR, [R11,#var_AC] .text:00027FF0 ADDNE LR, LR, #1 .text:00027FF4 STRNE LR, [R11,#var_AC] .text:00027FF8 CMN R10, #1 .text:00027FFC BEQ loc_28030 .text:00028000 SUB R6, R6, #1 .text:00028004 LDRB R2, [R4] .text:00028008 CMP R6, #0 .text:0002800C MOVLE R3, #0 .text:00028010 MOVGT R3, #1 .text:00028014 CMP R2, R10 .text:00028018 MOVNE R3, #0 .text:0002801C CMP R3, #0 .text:00028020 BEQ loc_28030 .text:00028024 LDRB R3, [R4,#1]! .text:00028028 CMP R3, #0 .text:0002802C BNE loc_27FBC .text:00028030 .text:00028030 loc_28030 ; CODE XREF: _IO_vfscanf+3C88j .text:00028030 ; _IO_vfscanf+3CD8j ... .text:00028030 CMP R4, #0 .text:00028034 BEQ loc_280D0 .text:00028038 LDRB R3, [R4] .text:0002803C CMP R3, #0 .text:00028040 BNE loc_280D0 .text:00028044 LDR R5, [R11,#var_CC] .text:00028048 LDRB R3, [R5] .text:0002804C CMP R3, #0 .text:00028050 BEQ loc_280B8 .text:00028054 .text:00028054 loc_28054 ; CODE XREF: _IO_vfscanf+3E04j .text:00028054 SUB R0, R11, #-var_F8 .text:00028058 LDMIA R0, {R0,R1} .text:0002805C CMP R0, R1 .text:00028060 BNE loc_28094 .text:00028064 MOV R3, R1,LSL#1 .text:00028068 CMP R3, #0x100 .text:0002806C MOVCC R3, #0x100 .text:00028070 STR R3, [R11,#var_F4] .text:00028074 LDR R1, [R11,#var_F0] .text:00028078 SUB SP, SP, R3,LSL#2 .text:0002807C STR SP, [R11,#var_F0] .text:00028080 CMP R1, #0 .text:00028084 BEQ loc_28094 .text:00028088 LDR R2, [R11,#var_F8] .text:0002808C MOV R0, SP .text:00028090 BL memcpy .text:00028094 .text:00028094 loc_28094 ; CODE XREF: _IO_vfscanf+3DB0j .text:00028094 ; _IO_vfscanf+3DD4j .text:00028094 LDRB R3, [R5] .text:00028098 LDR R2, [R11,#var_F0] .text:0002809C LDR R12, [R11,#var_F8] .text:000280A0 STRB R3, [R2,R12] .text:000280A4 ADD R12, R12, #1 .text:000280A8 STR R12, [R11,#var_F8] .text:000280AC LDRB R3, [R5,#1]! .text:000280B0 CMP R3, #0 .text:000280B4 BNE loc_28054 .text:000280B8 .text:000280B8 loc_280B8 ; CODE XREF: _IO_vfscanf+3DA0j .text:000280B8 LDR LR, [R11,#var_B0] .text:000280BC MOV R0, LR .text:000280C0 CMP R0, #0 .text:000280C4 MOVGT LR, R6 .text:000280C8 STR LR, [R11,#var_B0] .text:000280CC B loc_280F4 .text:000280D0 ; --------------------------------------------------------------------------- .text:000280D0 .text:000280D0 loc_280D0 ; CODE XREF: _IO_vfscanf+3D84j .text:000280D0 ; _IO_vfscanf+3D90j .text:000280D0 CMN R10, #1 .text:000280D4 BEQ loc_28154 .text:000280D8 LDR R1, [R11,#var_AC] .text:000280DC SUB R1, R1, #1 .text:000280E0 STR R1, [R11,#var_AC] .text:000280E4 MOV R0, R7 .text:000280E8 AND R1, R10, #0xFF .text:000280EC BL _IO_sputbackc .text:000280F0 B loc_28154 .text:000280F4 ; --------------------------------------------------------------------------- .text:000280F4 .text:000280F4 loc_280F4 ; CODE XREF: _IO_vfscanf+3A14j .text:000280F4 ; _IO_vfscanf+3A98j ... .text:000280F4 LDR R2, [R11,#var_B0] .text:000280F8 MOV R3, R2 .text:000280FC CMP R3, #0 .text:00028100 SUBGT R2, R2, #1 .text:00028104 CMP R2, #0 .text:00028108 STR R2, [R11,#var_B0] .text:0002810C BEQ loc_28154 .text:00028110 CMN R10, #1 .text:00028114 BEQ loc_28154 .text:00028118 LDMIB R7, {R2,R3} .text:0002811C CMP R2, R3 .text:00028120 BCC loc_28134 .text:00028124 MOV R0, R7 .text:00028128 BL __uflow .text:0002812C MOV R10, R0 .text:00028130 B loc_2813C .text:00028134 ; --------------------------------------------------------------------------- .text:00028134 .text:00028134 loc_28134 ; CODE XREF: _IO_vfscanf+3E70j .text:00028134 LDRB R10, [R2],#1 .text:00028138 STR R2, [R7,#4] .text:0002813C .text:0002813C loc_2813C ; CODE XREF: _IO_vfscanf+3E80j .text:0002813C CMN R10, #1 .text:00028140 LDRNE R12, [R11,#var_AC] .text:00028144 ADDNE R12, R12, #1 .text:00028148 STRNE R12, [R11,#var_AC] .text:0002814C CMN R10, #1 .text:00028150 BNE loc_27BEC .text:00028154 .text:00028154 loc_28154 ; CODE XREF: _IO_vfscanf+3E24j .text:00028154 ; _IO_vfscanf+3E40j ... .text:00028154 LDR LR, [R11,#var_F8] .text:00028158 CMP LR, #0 .text:0002815C BEQ loc_28374 .text:00028160 LDR R0, [R11,#var_C4] .text:00028164 CMP R0, #0 .text:00028168 BEQ loc_28178 .text:0002816C CMP LR, #2 .text:00028170 CMPNE R8, #0 .text:00028174 BEQ loc_28374 .text:00028178 .text:00028178 loc_28178 ; CODE XREF: _IO_vfscanf+3014j .text:00028178 ; _IO_vfscanf+3240j ... .text:00028178 SUB R3, R11, #-var_F8 .text:0002817C LDMIA R3, {R3,R12} .text:00028180 CMP R3, R12 .text:00028184 BNE loc_281B8 .text:00028188 MOV R3, R12,LSL#1 .text:0002818C CMP R3, #0x100 .text:00028190 MOVCC R3, #0x100 .text:00028194 STR R3, [R11,#var_F4] .text:00028198 LDR R1, [R11,#var_F0] .text:0002819C SUB SP, SP, R3,LSL#2 .text:000281A0 STR SP, [R11,#var_F0] .text:000281A4 CMP R1, #0 .text:000281A8 BEQ loc_281B8 .text:000281AC LDR R2, [R11,#var_F8] .text:000281B0 MOV R0, SP .text:000281B4 BL memcpy .text:000281B8 .text:000281B8 loc_281B8 ; CODE XREF: _IO_vfscanf+3ED4j .text:000281B8 ; _IO_vfscanf+3EF8j .text:000281B8 LDR LR, [R11,#var_F0] .text:000281BC LDR R0, [R11,#var_F8] .text:000281C0 MOV R1, #0 .text:000281C4 STRB R1, [LR,R0] .text:000281C8 LDR R2, [R11,#var_B4] .text:000281CC TST R2, #2 .text:000281D0 BEQ loc_28238 .text:000281D4 SUB R1, R11, #-var_8C .text:000281D8 LDR R0, [R11,#var_F0] .text:000281DC AND R2, R2, #0x80 .text:000281E0 BL __strtold_internal .text:000281E4 LDR R12, [R11,#var_B4] .text:000281E8 STC p1, c8, [SP,#0x518+var_520]! .text:000281EC LDMFD SP!, {R0,R1} .text:000281F0 ANDS R3, R12, #8 .text:000281F4 MOV R8, R3 .text:000281F8 BNE loc_28364 .text:000281FC LDR R3, [R11,#var_8C] .text:00028200 LDR LR, [R11,#var_F0] .text:00028204 CMP R3, LR .text:00028208 BEQ loc_28364 .text:0002820C LDR R2, [R11,#var_100] .text:00028210 CMP R2, #0 .text:00028214 BEQ loc_2828C .text:00028218 LDR LR, [R11,#var_100] .text:0002821C LDR R2, [R11,#var_98] .text:00028220 SUBS R3, LR, #1 .text:00028224 BEQ loc_282B8 .text:00028228 .text:00028228 loc_28228 ; CODE XREF: _IO_vfscanf+3F80j .text:00028228 ADD R2, R2, #4 .text:0002822C SUBS R3, R3, #1 .text:00028230 BNE loc_28228 .text:00028234 B loc_282B8 .text:00028238 ; --------------------------------------------------------------------------- .text:00028238 .text:00028238 loc_28238 ; CODE XREF: _IO_vfscanf+3F20j .text:00028238 LDR R1, [R11,#var_B4] .text:0002823C TST R1, #1 .text:00028240 BEQ loc_282D8 .text:00028244 LDR R3, [R11,#var_B4] .text:00028248 SUB R1, R11, #-var_8C .text:0002824C LDR R0, [R11,#var_F0] .text:00028250 AND R2, R3, #0x80 .text:00028254 BL __strtod_internal .text:00028258 LDR R12, [R11,#var_B4] .text:0002825C STC p1, c8, [SP,#0x518+var_520]! .text:00028260 LDMFD SP!, {R0,R1} .text:00028264 ANDS R3, R12, #8 .text:00028268 MOV R8, R3 .text:0002826C BNE loc_28364 .text:00028270 LDR R3, [R11,#var_8C] .text:00028274 LDR LR, [R11,#var_F0] .text:00028278 CMP R3, LR .text:0002827C BEQ loc_28364 .text:00028280 LDR R2, [R11,#var_100] .text:00028284 CMP R2, #0 .text:00028288 BNE loc_2829C .text:0002828C .text:0002828C loc_2828C ; CODE XREF: _IO_vfscanf+3F64j .text:0002828C LDR R12, [R11,#var_A0] .text:00028290 LDR R3, [R12],#4 .text:00028294 STR R12, [R11,#var_A0] .text:00028298 B loc_282BC .text:0002829C ; --------------------------------------------------------------------------- .text:0002829C .text:0002829C loc_2829C ; CODE XREF: _IO_vfscanf+3FD8j .text:0002829C LDR LR, [R11,#var_100] .text:000282A0 LDR R2, [R11,#var_98] .text:000282A4 SUBS R3, LR, #1 .text:000282A8 BEQ loc_282B8 .text:000282AC .text:000282AC loc_282AC ; CODE XREF: _IO_vfscanf+4004j .text:000282AC ADD R2, R2, #4 .text:000282B0 SUBS R3, R3, #1 .text:000282B4 BNE loc_282AC .text:000282B8 .text:000282B8 loc_282B8 ; CODE XREF: _IO_vfscanf+3F74j .text:000282B8 ; _IO_vfscanf+3F84j ... .text:000282B8 LDR R3, [R2] .text:000282BC .text:000282BC loc_282BC ; CODE XREF: _IO_vfscanf+3FE8j .text:000282BC STMFD SP!, {R0,R1} .text:000282C0 LDC p1, c8, [SP+0x520+var_520],#8 .text:000282C4 LDR R0, [R11,#var_B8] .text:000282C8 CMP R0, #0 .text:000282CC CDPNE p1, 1, c8,c0,c0, 4 .text:000282D0 STC p1, c8, [R3] .text:000282D4 B loc_28364 .text:000282D8 ; --------------------------------------------------------------------------- .text:000282D8 .text:000282D8 loc_282D8 ; CODE XREF: _IO_vfscanf+3F90j .text:000282D8 LDR R3, [R11,#var_B4] .text:000282DC SUB R1, R11, #-var_8C .text:000282E0 LDR R0, [R11,#var_F0] .text:000282E4 AND R2, R3, #0x80 .text:000282E8 BL __strtof_internal .text:000282EC LDR R12, [R11,#var_B4] .text:000282F0 STC p1, c0, [SP,#0x518+var_51C]! .text:000282F4 LDR R1, [SP+0x51C+var_51C],#4 .text:000282F8 ANDS R3, R12, #8 .text:000282FC MOV R8, R3 .text:00028300 BNE loc_28364 .text:00028304 LDR R3, [R11,#var_8C] .text:00028308 LDR LR, [R11,#var_F0] .text:0002830C CMP R3, LR .text:00028310 BEQ loc_28364 .text:00028314 LDR R0, [R11,#var_100] .text:00028318 CMP R0, #0 .text:0002831C LDREQ R2, [R11,#var_A0] .text:00028320 LDREQ R3, [R2],#4 .text:00028324 STREQ R2, [R11,#var_A0] .text:00028328 BEQ loc_2834C .text:0002832C LDR R12, [R11,#var_100] .text:00028330 LDR R2, [R11,#var_98] .text:00028334 SUBS R3, R12, #1 .text:00028338 BEQ loc_28348 .text:0002833C .text:0002833C loc_2833C ; CODE XREF: _IO_vfscanf+4094j .text:0002833C ADD R2, R2, #4 .text:00028340 SUBS R3, R3, #1 .text:00028344 BNE loc_2833C .text:00028348 .text:00028348 loc_28348 ; CODE XREF: _IO_vfscanf+4088j .text:00028348 LDR R3, [R2] .text:0002834C .text:0002834C loc_2834C ; CODE XREF: _IO_vfscanf+4078j .text:0002834C LDR LR, [R11,#var_B8] .text:00028350 STR R1, [SP,#0x518+var_51C]! .text:00028354 LDC p1, c0, [SP+0x51C+var_51C],#4 .text:00028358 CMP LR, #0 .text:0002835C CDPNE p1, 1, c8,c0,c0, 0 .text:00028360 STC p1, c0, [R3] .text:00028364 .text:00028364 loc_28364 ; CODE XREF: _IO_vfscanf+3F48j .text:00028364 ; _IO_vfscanf+3F58j ... .text:00028364 LDR R3, [R11,#var_8C] .text:00028368 LDR R0, [R11,#var_F0] .text:0002836C CMP R3, R0 .text:00028370 BNE loc_2838C .text:00028374 .text:00028374 loc_28374 ; CODE XREF: _IO_vfscanf+7A8j .text:00028374 ; _IO_vfscanf+2878j ... .text:00028374 LDR R1, [R11,#var_9C] .text:00028378 CMP R1, #0 .text:0002837C LDRNE R3, [R1] .text:00028380 ORRNE R3, R3, #2 .text:00028384 STRNE R3, [R1] .text:00028388 B loc_28F14 .text:0002838C ; --------------------------------------------------------------------------- .text:0002838C .text:0002838C loc_2838C ; CODE XREF: _IO_vfscanf+40C0j .text:0002838C LDR R3, [R11,#var_A8] .text:00028390 CMP R8, #0 .text:00028394 MOV R12, R3 .text:00028398 ADDEQ R3, R12, #1 .text:0002839C STR R3, [R11,#var_A8] .text:000283A0 B loc_28E98 .text:000283A4 ; --------------------------------------------------------------------------- .text:000283A4 .text:000283A4 loc_283A4 ; CODE XREF: _IO_vfscanf+898j .text:000283A4 ; DATA XREF: _IO_vfscanf+8A0o .text:000283A4 LDR LR, [R11,#var_B4] ; jumptable 00024B48 case 54 .text:000283A8 ANDS R3, LR, #1 .text:000283AC MOV R5, R3 .text:000283B0 BEQ loc_2850C .text:000283B4 ANDS R3, LR, #8 .text:000283B8 MOV R8, R3 .text:000283BC BNE loc_28668 .text:000283C0 TST LR, #0x100 .text:000283C4 BEQ loc_28478 .text:000283C8 LDR R0, [R11,#var_100] .text:000283CC CMP R0, #0 .text:000283D0 BNE loc_283E8 .text:000283D4 LDR R1, [R11,#var_A0] .text:000283D8 LDR R2, [R1],#4 .text:000283DC STR R2, [R11,#var_E0] .text:000283E0 STR R1, [R11,#var_A0] .text:000283E4 B loc_2840C .text:000283E8 ; --------------------------------------------------------------------------- .text:000283E8 .text:000283E8 loc_283E8 ; CODE XREF: _IO_vfscanf+4120j .text:000283E8 LDR R3, [R11,#var_100] .text:000283EC LDR R0, [R11,#var_98] .text:000283F0 SUBS R2, R3, #1 .text:000283F4 BEQ loc_28404 .text:000283F8 .text:000283F8 loc_283F8 ; CODE XREF: _IO_vfscanf+4150j .text:000283F8 ADD R0, R0, #4 .text:000283FC SUBS R2, R2, #1 .text:00028400 BNE loc_283F8 .text:00028404 .text:00028404 loc_28404 ; CODE XREF: _IO_vfscanf+4144j .text:00028404 LDR R0, [R0] .text:00028408 STR R0, [R11,#var_E0] .text:0002840C .text:0002840C loc_2840C ; CODE XREF: _IO_vfscanf+4134j .text:0002840C LDR R12, [R11,#var_E0] .text:00028410 CMP R12, #0 .text:00028414 BNE loc_28458 .text:00028418 LDR LR, [R11,#var_9C] .text:0002841C CMP LR, #0 .text:00028420 LDRNE R3, [LR] .text:00028424 ORRNE R3, R3, #2 .text:00028428 STRNE R3, [LR] .text:0002842C LDR R3, [R7] .text:00028430 TST R3, #0x8000 .text:00028434 BNE loc_28440 .text:00028438 MOV R0, R7 .text:0002843C BL funlockfile .text:00028440 .text:00028440 loc_28440 ; CODE XREF: _IO_vfscanf+4184j .text:00028440 LDR R0, [R11,#var_FC] .text:00028444 CMP R0, #0 .text:00028448 BEQ loc_28F40 .text:0002844C LDR R1, [R11,#var_E0] .text:00028450 SUB R0, R11, #-var_38 .text:00028454 B loc_28F3C .text:00028458 ; --------------------------------------------------------------------------- .text:00028458 .text:00028458 loc_28458 ; CODE XREF: _IO_vfscanf+4164j .text:00028458 MOV R1, #0x64 .text:0002845C STR R1, [R11,#var_E4] .text:00028460 MOV R0, R1,LSL#2 .text:00028464 BL malloc .text:00028468 STR R0, [R11,#var_DC] .text:0002846C LDR R2, [R11,#var_E0] .text:00028470 STR R0, [R2] .text:00028474 B loc_284BC .text:00028478 ; --------------------------------------------------------------------------- .text:00028478 .text:00028478 loc_28478 ; CODE XREF: _IO_vfscanf+4114j .text:00028478 LDR R3, [R11,#var_100] .text:0002847C CMP R3, #0 .text:00028480 BNE loc_28498 .text:00028484 LDR R12, [R11,#var_A0] .text:00028488 LDR LR, [R12],#4 .text:0002848C STR LR, [R11,#var_DC] .text:00028490 STR R12, [R11,#var_A0] .text:00028494 B loc_284BC .text:00028498 ; --------------------------------------------------------------------------- .text:00028498 .text:00028498 loc_28498 ; CODE XREF: _IO_vfscanf+41D0j .text:00028498 LDR R1, [R11,#var_100] .text:0002849C LDR R0, [R11,#var_98] .text:000284A0 SUBS R2, R1, #1 .text:000284A4 BEQ loc_284B4 .text:000284A8 .text:000284A8 loc_284A8 ; CODE XREF: _IO_vfscanf+4200j .text:000284A8 ADD R0, R0, #4 .text:000284AC SUBS R2, R2, #1 .text:000284B0 BNE loc_284A8 .text:000284B4 .text:000284B4 loc_284B4 ; CODE XREF: _IO_vfscanf+41F4j .text:000284B4 LDR R0, [R0] .text:000284B8 STR R0, [R11,#var_DC] .text:000284BC .text:000284BC loc_284BC ; CODE XREF: _IO_vfscanf+41C4j .text:000284BC ; _IO_vfscanf+41E4j .text:000284BC LDR R2, [R11,#var_DC] .text:000284C0 CMP R2, #0 .text:000284C4 BNE loc_28668 .text:000284C8 LDR R3, [R11,#var_9C] .text:000284CC CMP R3, #0 .text:000284D0 LDRNE R3, [R3] .text:000284D4 LDRNE R12, [R11,#var_9C] .text:000284D8 ORRNE R3, R3, #2 .text:000284DC STRNE R3, [R12] .text:000284E0 LDR R3, [R7] .text:000284E4 TST R3, #0x8000 .text:000284E8 BNE loc_284F4 .text:000284EC MOV R0, R7 .text:000284F0 BL funlockfile .text:000284F4 .text:000284F4 loc_284F4 ; CODE XREF: _IO_vfscanf+4238j .text:000284F4 LDR LR, [R11,#var_FC] .text:000284F8 CMP LR, #0 .text:000284FC BEQ loc_28F40 .text:00028500 LDR R1, [R11,#var_DC] .text:00028504 SUB R0, R11, #-var_38 .text:00028508 B loc_28F3C .text:0002850C ; --------------------------------------------------------------------------- .text:0002850C .text:0002850C loc_2850C ; CODE XREF: _IO_vfscanf+4100j .text:0002850C LDR R0, [R11,#var_B4] .text:00028510 ANDS R3, R0, #8 .text:00028514 MOV R8, R3 .text:00028518 BNE loc_28668 .text:0002851C TST R0, #0x100 .text:00028520 BEQ loc_285D4 .text:00028524 LDR R1, [R11,#var_100] .text:00028528 CMP R1, #0 .text:0002852C BNE loc_28544 .text:00028530 LDR R2, [R11,#var_A0] .text:00028534 LDR R3, [R2],#4 .text:00028538 STR R3, [R11,#var_E0] .text:0002853C STR R2, [R11,#var_A0] .text:00028540 B loc_28568 .text:00028544 ; --------------------------------------------------------------------------- .text:00028544 .text:00028544 loc_28544 ; CODE XREF: _IO_vfscanf+427Cj .text:00028544 LDR R12, [R11,#var_100] .text:00028548 LDR R0, [R11,#var_98] .text:0002854C SUBS R2, R12, #1 .text:00028550 BEQ loc_28560 .text:00028554 .text:00028554 loc_28554 ; CODE XREF: _IO_vfscanf+42ACj .text:00028554 ADD R0, R0, #4 .text:00028558 SUBS R2, R2, #1 .text:0002855C BNE loc_28554 .text:00028560 .text:00028560 loc_28560 ; CODE XREF: _IO_vfscanf+42A0j .text:00028560 LDR R0, [R0] .text:00028564 STR R0, [R11,#var_E0] .text:00028568 .text:00028568 loc_28568 ; CODE XREF: _IO_vfscanf+4290j .text:00028568 LDR LR, [R11,#var_E0] .text:0002856C CMP LR, #0 .text:00028570 BNE loc_285B4 .text:00028574 LDR R0, [R11,#var_9C] .text:00028578 CMP R0, #0 .text:0002857C LDRNE R3, [R0] .text:00028580 ORRNE R3, R3, #2 .text:00028584 STRNE R3, [R0] .text:00028588 LDR R3, [R7] .text:0002858C TST R3, #0x8000 .text:00028590 BNE loc_2859C .text:00028594 MOV R0, R7 .text:00028598 BL funlockfile .text:0002859C .text:0002859C loc_2859C ; CODE XREF: _IO_vfscanf+42E0j .text:0002859C LDR R1, [R11,#var_FC] .text:000285A0 CMP R1, #0 .text:000285A4 BEQ loc_28F40 .text:000285A8 LDR R1, [R11,#var_E0] .text:000285AC SUB R0, R11, #-var_38 .text:000285B0 B loc_28F3C .text:000285B4 ; --------------------------------------------------------------------------- .text:000285B4 .text:000285B4 loc_285B4 ; CODE XREF: _IO_vfscanf+42C0j .text:000285B4 MOV R2, #0x64 .text:000285B8 STR R2, [R11,#var_E4] .text:000285BC MOV R0, R2 .text:000285C0 BL malloc .text:000285C4 STR R0, [R11,#var_D8] .text:000285C8 LDR R3, [R11,#var_E0] .text:000285CC STR R0, [R3] .text:000285D0 B loc_28618 .text:000285D4 ; --------------------------------------------------------------------------- .text:000285D4 .text:000285D4 loc_285D4 ; CODE XREF: _IO_vfscanf+4270j .text:000285D4 LDR R12, [R11,#var_100] .text:000285D8 CMP R12, #0 .text:000285DC BNE loc_285F4 .text:000285E0 LDR LR, [R11,#var_A0] .text:000285E4 LDR R0, [LR],#4 .text:000285E8 STR R0, [R11,#var_D8] .text:000285EC STR LR, [R11,#var_A0] .text:000285F0 B loc_28618 .text:000285F4 ; --------------------------------------------------------------------------- .text:000285F4 .text:000285F4 loc_285F4 ; CODE XREF: _IO_vfscanf+432Cj .text:000285F4 LDR R1, [R11,#var_100] .text:000285F8 LDR R0, [R11,#var_98] .text:000285FC SUBS R3, R1, #1 .text:00028600 BEQ loc_28610 .text:00028604 .text:00028604 loc_28604 ; CODE XREF: _IO_vfscanf+435Cj .text:00028604 ADD R0, R0, #4 .text:00028608 SUBS R3, R3, #1 .text:0002860C BNE loc_28604 .text:00028610 .text:00028610 loc_28610 ; CODE XREF: _IO_vfscanf+4350j .text:00028610 LDR R0, [R0] .text:00028614 STR R0, [R11,#var_D8] .text:00028618 .text:00028618 loc_28618 ; CODE XREF: _IO_vfscanf+4320j .text:00028618 ; _IO_vfscanf+4340j .text:00028618 LDR R2, [R11,#var_D8] .text:0002861C CMP R2, #0 .text:00028620 BNE loc_28668 .text:00028624 LDR R3, [R11,#var_9C] .text:00028628 CMP R3, #0 .text:0002862C LDRNE R3, [R3] .text:00028630 LDRNE R12, [R11,#var_9C] .text:00028634 ORRNE R3, R3, #2 .text:00028638 STRNE R3, [R12] .text:0002863C LDR R3, [R7] .text:00028640 TST R3, #0x8000 .text:00028644 BNE loc_28650 .text:00028648 MOV R0, R7 .text:0002864C BL funlockfile .text:00028650 .text:00028650 loc_28650 ; CODE XREF: _IO_vfscanf+4394j .text:00028650 LDR LR, [R11,#var_FC] .text:00028654 CMP LR, #0 .text:00028658 BEQ loc_28F40 .text:0002865C LDR R1, [R11,#var_D8] .text:00028660 SUB R0, R11, #-var_38 .text:00028664 B loc_28F3C .text:00028668 ; --------------------------------------------------------------------------- .text:00028668 .text:00028668 loc_28668 ; CODE XREF: _IO_vfscanf+410Cj .text:00028668 ; _IO_vfscanf+4214j ... .text:00028668 LDR R0, [R11,#var_A4] .text:0002866C LDRB R3, [R0] .text:00028670 CMP R3, #0x5E .text:00028674 BNE loc_2868C .text:00028678 ADD R0, R0, #1 .text:0002867C STR R0, [R11,#var_A4] .text:00028680 MOV R1, #1 .text:00028684 STR R1, [R11,#var_BC] .text:00028688 B loc_28694 .text:0002868C ; --------------------------------------------------------------------------- .text:0002868C .text:0002868C loc_2868C ; CODE XREF: _IO_vfscanf+43C4j .text:0002868C MOV R2, #0 .text:00028690 STR R2, [R11,#var_BC] .text:00028694 .text:00028694 loc_28694 ; CODE XREF: _IO_vfscanf+43D8j .text:00028694 LDR R3, [R11,#var_B0] .text:00028698 LDR R12, [R11,#var_F4] .text:0002869C CMN R3, #1 .text:000286A0 MOVLE R3, 0x7FFFFFFF .text:000286A4 CMP R12, #0xFF .text:000286A8 STR R3, [R11,#var_B0] .text:000286AC MOVLS LR, #0x100 .text:000286B0 STRLS LR, [R11,#var_F4] .text:000286B4 SUBLS SP, SP, #0x100 .text:000286B8 STRLS SP, [R11,#var_F0] .text:000286BC MOV R1, #0 .text:000286C0 LDR R0, [R11,#var_F0] .text:000286C4 MOV R2, #0x100 .text:000286C8 BL memset .text:000286CC LDR R0, [R11,#var_A4] .text:000286D0 LDRB R4, [R0] .text:000286D4 CMP R4, #0x2D .text:000286D8 CMPNE R4, #0x5D .text:000286DC BNE loc_286F4 .text:000286E0 ADD R0, R0, #1 .text:000286E4 STR R0, [R11,#var_A4] .text:000286E8 LDR R1, [R11,#var_F0] .text:000286EC MOV R3, #1 .text:000286F0 STRB R3, [R1,R4] .text:000286F4 .text:000286F4 loc_286F4 ; CODE XREF: _IO_vfscanf+442Cj .text:000286F4 LDR R2, [R11,#var_A4] .text:000286F8 LDRB R4, [R2],#1 .text:000286FC CMP R4, #0 .text:00028700 STR R2, [R11,#var_A4] .text:00028704 BEQ loc_287A8 .text:00028708 CMP R4, #0x5D .text:0002870C BEQ loc_287A8 .text:00028710 MOV R12, #1 .text:00028714 .text:00028714 loc_28714 ; CODE XREF: _IO_vfscanf+44F4j .text:00028714 CMP R4, #0x2D .text:00028718 BNE loc_2877C .text:0002871C LDR R3, [R11,#var_A4] .text:00028720 LDRB R2, [R3] .text:00028724 CMP R2, #0 .text:00028728 BEQ loc_2877C .text:0002872C CMP R2, #0x5D .text:00028730 BEQ loc_2877C .text:00028734 LDRB R3, [R3,#-2] .text:00028738 CMP R3, R2 .text:0002873C BHI loc_2877C .text:00028740 LDR LR, [R11,#var_A4] .text:00028744 LDRB R4, [LR,#-2] .text:00028748 ADD R1, LR, #1 .text:0002874C CMP R4, R2 .text:00028750 BCS loc_2878C .text:00028754 MOV R0, #1 .text:00028758 .text:00028758 loc_28758 ; CODE XREF: _IO_vfscanf+44C4j .text:00028758 LDR R2, [R11,#var_F0] .text:0002875C STRB R0, [R2,R4] .text:00028760 LDR LR, [R11,#var_A4] .text:00028764 ADD R3, R4, #1 .text:00028768 LDRB R2, [LR] .text:0002876C AND R4, R3, #0xFF .text:00028770 CMP R4, R2 .text:00028774 BCC loc_28758 .text:00028778 B loc_2878C .text:0002877C ; --------------------------------------------------------------------------- .text:0002877C .text:0002877C loc_2877C ; CODE XREF: _IO_vfscanf+4468j .text:0002877C ; _IO_vfscanf+4478j ... .text:0002877C LDR R0, [R11,#var_A4] .text:00028780 LDR R2, [R11,#var_F0] .text:00028784 ADD R1, R0, #1 .text:00028788 STRB R12, [R2,R4] .text:0002878C .text:0002878C loc_2878C ; CODE XREF: _IO_vfscanf+44A0j .text:0002878C ; _IO_vfscanf+44C8j .text:0002878C LDR R3, [R11,#var_A4] .text:00028790 LDRB R4, [R3] .text:00028794 STR R1, [R11,#var_A4] .text:00028798 CMP R4, #0 .text:0002879C BEQ loc_287A8 .text:000287A0 CMP R4, #0x5D .text:000287A4 BNE loc_28714 .text:000287A8 .text:000287A8 loc_287A8 ; CODE XREF: _IO_vfscanf+4454j .text:000287A8 ; _IO_vfscanf+445Cj ... .text:000287A8 CMP R4, #0 .text:000287AC BNE loc_287E4 .text:000287B0 LDR R12, [R11,#var_9C] .text:000287B4 CMP R12, #0 .text:000287B8 LDRNE R3, [R12] .text:000287BC ORRNE R3, R3, #2 .text:000287C0 STRNE R3, [R12] .text:000287C4 LDR R3, [R7] .text:000287C8 TST R3, #0x8000 .text:000287CC BNE loc_287D8 .text:000287D0 MOV R0, R7 .text:000287D4 BL funlockfile .text:000287D8 .text:000287D8 loc_287D8 ; CODE XREF: _IO_vfscanf+451Cj .text:000287D8 LDR LR, [R11,#var_FC] .text:000287DC CMP LR, #0 .text:000287E0 B loc_28F30 .text:000287E4 ; --------------------------------------------------------------------------- .text:000287E4 .text:000287E4 loc_287E4 ; CODE XREF: _IO_vfscanf+44FCj .text:000287E4 CMP R5, #0 .text:000287E8 BEQ loc_28B68 .text:000287EC LDR R0, [R11,#var_AC] .text:000287F0 CMN R10, #1 .text:000287F4 STR R0, [R11,#var_110] .text:000287F8 BEQ loc_28838 .text:000287FC LDMIB R7, {R2,R3} .text:00028800 CMP R2, R3 .text:00028804 BCC loc_28818 .text:00028808 MOV R0, R7 .text:0002880C BL __uflow .text:00028810 MOV R10, R0 .text:00028814 B loc_28820 .text:00028818 ; --------------------------------------------------------------------------- .text:00028818 .text:00028818 loc_28818 ; CODE XREF: _IO_vfscanf+4554j .text:00028818 LDRB R10, [R2],#1 .text:0002881C STR R2, [R7,#4] .text:00028820 .text:00028820 loc_28820 ; CODE XREF: _IO_vfscanf+4564j .text:00028820 CMN R10, #1 .text:00028824 LDRNE R1, [R11,#var_AC] .text:00028828 ADDNE R1, R1, #1 .text:0002882C STRNE R1, [R11,#var_AC] .text:00028830 CMN R10, #1 .text:00028834 BNE loc_2888C .text:00028838 .text:00028838 loc_28838 ; CODE XREF: _IO_vfscanf+EB4j .text:00028838 ; _IO_vfscanf+3588j ... .text:00028838 LDR R3, [R7] .text:0002883C TST R3, #0x8000 .text:00028840 BNE loc_2884C .text:00028844 MOV R0, R7 .text:00028848 BL funlockfile .text:0002884C .text:0002884C loc_2884C ; CODE XREF: _IO_vfscanf+4590j .text:0002884C LDR R2, [R11,#var_9C] .text:00028850 CMP R2, #0 .text:00028854 LDRNE R3, [R2] .text:00028858 ORRNE R3, R3, #1 .text:0002885C STRNE R3, [R2] .text:00028860 LDR R3, [R11,#var_FC] .text:00028864 CMP R3, #0 .text:00028868 BEQ loc_28878 .text:0002886C SUB R0, R11, #-var_38 .text:00028870 MOV R1, #0 .text:00028874 BL 0 .text:00028878 .text:00028878 loc_28878 ; CODE XREF: _IO_vfscanf+45B8j .text:00028878 LDR R12, [R11,#var_A8] .text:0002887C CMP R12, #0 .text:00028880 MOV R0, R12 .text:00028884 MOVEQ R0, 0xFFFFFFFF .text:00028888 B loc_28F44 .text:0002888C ; --------------------------------------------------------------------------- .text:0002888C .text:0002888C loc_2888C ; CODE XREF: _IO_vfscanf+4584j .text:0002888C SUB R0, R11, #-var_94 .text:00028890 MOV R1, #0 .text:00028894 MOV R2, #8 .text:00028898 BL memset .text:0002889C SUB R9, R11, #-var_94 .text:000288A0 B loc_28A58 .text:000288A4 ; --------------------------------------------------------------------------- .text:000288A4 .text:000288A4 loc_288A4 ; CODE XREF: _IO_vfscanf+47B8j .text:000288A4 CMP R8, #0 .text:000288A8 BNE loc_28A00 .text:000288AC SUB R1, R11, #-var_70 .text:000288B0 MOV R2, R8 .text:000288B4 LDR R0, [R11,#var_DC] .text:000288B8 MOV R3, R9 .text:000288BC BL mbrtowc .text:000288C0 CMN R0, #2 .text:000288C4 BNE loc_288F0 .text:000288C8 BL __ctype_get_mb_cur_max .text:000288CC MOV LR, #0 .text:000288D0 CMP LR, R0 .text:000288D4 BCC loc_28A14 .text:000288D8 LDR R0, =aCnt__ctype_get ; "cnt < (__ctype_get_mb_cur_max ())" .text:000288DC LDR R1, =aVfscanf_c ; "vfscanf.c" .text:000288E0 MOV R2, #0x830 .text:000288E4 LDR R3, =a_io_vfscanf ; "_IO_vfscanf" .text:000288E8 ADD R2, R2, #3 .text:000288EC BL __assert_fail .text:000288F0 ; --------------------------------------------------------------------------- .text:000288F0 .text:000288F0 loc_288F0 ; CODE XREF: _IO_vfscanf+4614j .text:000288F0 CMP R0, #0 .text:000288F4 BNE loc_25214 .text:000288F8 LDR R2, [R11,#var_DC] .text:000288FC LDR R3, [R11,#var_B4] .text:00028900 ADD R2, R2, #4 .text:00028904 TST R3, #0x100 .text:00028908 STR R2, [R11,#var_DC] .text:0002890C BEQ loc_28A00 .text:00028910 SUB R12, R11, #-var_E4 .text:00028914 LDMIA R12, {R12,LR} .text:00028918 MOV R5, R12,LSL#2 .text:0002891C LDR R0, [LR] .text:00028920 MOV R6, R5 .text:00028924 ADD R3, R0, R5 .text:00028928 CMP R2, R3 .text:0002892C BNE loc_28A00 .text:00028930 MOV R1, R12,LSL#3 .text:00028934 BL realloc .text:00028938 CMP R0, #0 .text:0002893C STR R0, [R11,#var_DC] .text:00028940 BNE loc_289E0 .text:00028944 LDR R2, [R11,#var_E4] .text:00028948 LDR R1, [R11,#var_E0] .text:0002894C ADD R4, R2, #1 .text:00028950 LDR R0, [R1] .text:00028954 MOV R1, R4,LSL#2 .text:00028958 BL realloc .text:0002895C CMP R0, #0 .text:00028960 STR R0, [R11,#var_DC] .text:00028964 BNE loc_289C4 .text:00028968 LDR R12, [R11,#var_E0] .text:0002896C LDR LR, [R11,#var_A8] .text:00028970 LDR R3, [R12] .text:00028974 ADD LR, LR, #1 .text:00028978 STR LR, [R11,#var_A8] .text:0002897C ADD R3, R5, R3 .text:00028980 STR R0, [R3,#-4] .text:00028984 LDR R0, [R11,#var_9C] .text:00028988 CMP R0, #0 .text:0002898C LDRNE R3, [R0] .text:00028990 ORRNE R3, R3, #2 .text:00028994 STRNE R3, [R0] .text:00028998 LDR R3, [R7] .text:0002899C TST R3, #0x8000 .text:000289A0 BNE loc_289AC .text:000289A4 MOV R0, R7 .text:000289A8 BL funlockfile .text:000289AC .text:000289AC loc_289AC ; CODE XREF: _IO_vfscanf+46F0j .text:000289AC LDR R1, [R11,#var_FC] .text:000289B0 CMP R1, #0 .text:000289B4 BEQ loc_28F40 .text:000289B8 LDR R1, [R11,#var_DC] .text:000289BC SUB R0, R11, #-var_38 .text:000289C0 B loc_28F3C .text:000289C4 ; --------------------------------------------------------------------------- .text:000289C4 .text:000289C4 loc_289C4 ; CODE XREF: _IO_vfscanf+46B4j .text:000289C4 SUB R2, R11, #-var_E0 .text:000289C8 LDMIA R2, {R2,R3} .text:000289CC STR R3, [R2] .text:000289D0 ADD R3, R3, R6 .text:000289D4 STR R3, [R11,#var_DC] .text:000289D8 STR R4, [R11,#var_E4] .text:000289DC B loc_28A00 .text:000289E0 ; --------------------------------------------------------------------------- .text:000289E0 .text:000289E0 loc_289E0 ; CODE XREF: _IO_vfscanf+4690j .text:000289E0 SUB R12, R11, #-var_E0 .text:000289E4 LDMIA R12, {R12,LR} .text:000289E8 STR LR, [R12] .text:000289EC LDR R0, [R11,#var_E4] .text:000289F0 ADD LR, LR, R5 .text:000289F4 STR LR, [R11,#var_DC] .text:000289F8 MOV R0, R0,LSL#1 .text:000289FC STR R0, [R11,#var_E4] .text:00028A00 .text:00028A00 loc_28A00 ; CODE XREF: _IO_vfscanf+45F8j .text:00028A00 ; _IO_vfscanf+465Cj ... .text:00028A00 LDR R1, [R11,#var_B0] .text:00028A04 SUB R1, R1, #1 .text:00028A08 CMP R1, #0 .text:00028A0C STR R1, [R11,#var_B0] .text:00028A10 BLE loc_28A84 .text:00028A14 .text:00028A14 loc_28A14 ; CODE XREF: _IO_vfscanf+4624j .text:00028A14 CMN R10, #1 .text:00028A18 BEQ loc_28A84 .text:00028A1C LDMIB R7, {R2,R3} .text:00028A20 CMP R2, R3 .text:00028A24 BCC loc_28A38 .text:00028A28 MOV R0, R7 .text:00028A2C BL __uflow .text:00028A30 MOV R10, R0 .text:00028A34 B loc_28A40 .text:00028A38 ; --------------------------------------------------------------------------- .text:00028A38 .text:00028A38 loc_28A38 ; CODE XREF: _IO_vfscanf+4774j .text:00028A38 LDRB R10, [R2],#1 .text:00028A3C STR R2, [R7,#4] .text:00028A40 .text:00028A40 loc_28A40 ; CODE XREF: _IO_vfscanf+4784j .text:00028A40 CMN R10, #1 .text:00028A44 LDRNE R2, [R11,#var_AC] .text:00028A48 ADDNE R2, R2, #1 .text:00028A4C STRNE R2, [R11,#var_AC] .text:00028A50 CMN R10, #1 .text:00028A54 BEQ loc_28A84 .text:00028A58 .text:00028A58 loc_28A58 ; CODE XREF: _IO_vfscanf+45F0j .text:00028A58 LDR R12, [R11,#var_F0] .text:00028A5C LDR LR, [R11,#var_BC] .text:00028A60 LDRB R3, [R12,R10] .text:00028A64 CMP R3, LR .text:00028A68 BNE loc_288A4 .text:00028A6C LDR R0, [R11,#var_AC] .text:00028A70 SUB R0, R0, #1 .text:00028A74 STR R0, [R11,#var_AC] .text:00028A78 AND R1, R10, #0xFF .text:00028A7C MOV R0, R7 .text:00028A80 BL _IO_sputbackc .text:00028A84 .text:00028A84 loc_28A84 ; CODE XREF: _IO_vfscanf+4760j .text:00028A84 ; _IO_vfscanf+4768j ... .text:00028A84 MOV R1, #0 .text:00028A88 CMP R1, R1 .text:00028A8C BEQ loc_28AC4 .text:00028A90 LDR R2, [R11,#var_9C] .text:00028A94 CMP R2, R1 .text:00028A98 LDRNE R3, [R2] .text:00028A9C ORRNE R3, R3, #4 .text:00028AA0 STRNE R3, [R2] .text:00028AA4 LDR R3, [R7] .text:00028AA8 TST R3, #0x8000 .text:00028AAC BNE loc_28AB8 .text:00028AB0 MOV R0, R7 .text:00028AB4 BL funlockfile .text:00028AB8 .text:00028AB8 loc_28AB8 ; CODE XREF: _IO_vfscanf+47FCj .text:00028AB8 LDR R3, [R11,#var_FC] .text:00028ABC CMP R3, #0 .text:00028AC0 B loc_25244 .text:00028AC4 ; --------------------------------------------------------------------------- .text:00028AC4 .text:00028AC4 loc_28AC4 ; CODE XREF: _IO_vfscanf+47DCj .text:00028AC4 LDR R12, [R11,#var_110] .text:00028AC8 LDR LR, [R11,#var_AC] .text:00028ACC CMP R12, LR .text:00028AD0 BNE loc_28B08 .text:00028AD4 LDR R0, [R11,#var_9C] .text:00028AD8 CMP R0, #0 .text:00028ADC LDRNE R3, [R0] .text:00028AE0 ORRNE R3, R3, #2 .text:00028AE4 STRNE R3, [R0] .text:00028AE8 LDR R3, [R7] .text:00028AEC TST R3, #0x8000 .text:00028AF0 BNE loc_28AFC .text:00028AF4 MOV R0, R7 .text:00028AF8 BL funlockfile .text:00028AFC .text:00028AFC loc_28AFC ; CODE XREF: _IO_vfscanf+4840j .text:00028AFC LDR R1, [R11,#var_FC] .text:00028B00 CMP R1, #0 .text:00028B04 B loc_28F30 .text:00028B08 ; --------------------------------------------------------------------------- .text:00028B08 .text:00028B08 loc_28B08 ; CODE XREF: _IO_vfscanf+4820j .text:00028B08 CMP R8, #0 .text:00028B0C BNE loc_28E98 .text:00028B10 LDR R3, [R11,#var_DC] .text:00028B14 LDR R2, [R11,#var_B4] .text:00028B18 STR R8, [R3],#4 .text:00028B1C TST R2, #0x100 .text:00028B20 STR R3, [R11,#var_DC] .text:00028B24 BEQ loc_28B58 .text:00028B28 LDR R12, [R11,#var_E0] .text:00028B2C LDR R0, [R12] .text:00028B30 LDR LR, [R11,#var_E4] .text:00028B34 RSB R3, R0, R3 .text:00028B38 MOV R1, R3,ASR#2 .text:00028B3C CMP R1, LR .text:00028B40 BEQ loc_28B58 .text:00028B44 MOV R1, R1,LSL#2 .text:00028B48 BL realloc .text:00028B4C CMP R0, #0 .text:00028B50 LDRNE R1, [R11,#var_E0] .text:00028B54 STRNE R0, [R1] .text:00028B58 .text:00028B58 loc_28B58 ; CODE XREF: _IO_vfscanf+4874j .text:00028B58 ; _IO_vfscanf+4890j .text:00028B58 LDR R2, [R11,#var_A8] .text:00028B5C ADD R2, R2, #1 .text:00028B60 STR R2, [R11,#var_A8] .text:00028B64 B loc_28E98 .text:00028B68 ; --------------------------------------------------------------------------- .text:00028B68 .text:00028B68 loc_28B68 ; CODE XREF: _IO_vfscanf+4538j .text:00028B68 CMN R10, #1 .text:00028B6C LDR R5, [R11,#var_AC] .text:00028B70 BEQ loc_28BB0 .text:00028B74 LDMIB R7, {R2,R3} .text:00028B78 CMP R2, R3 .text:00028B7C BCC loc_28B90 .text:00028B80 MOV R0, R7 .text:00028B84 BL __uflow .text:00028B88 MOV R10, R0 .text:00028B8C B loc_28B98 .text:00028B90 ; --------------------------------------------------------------------------- .text:00028B90 .text:00028B90 loc_28B90 ; CODE XREF: _IO_vfscanf+48CCj .text:00028B90 LDRB R10, [R2],#1 .text:00028B94 STR R2, [R7,#4] .text:00028B98 .text:00028B98 loc_28B98 ; CODE XREF: _IO_vfscanf+48DCj .text:00028B98 CMN R10, #1 .text:00028B9C LDRNE R3, [R11,#var_AC] .text:00028BA0 ADDNE R3, R3, #1 .text:00028BA4 STRNE R3, [R11,#var_AC] .text:00028BA8 CMN R10, #1 .text:00028BAC BNE loc_28D74 .text:00028BB0 .text:00028BB0 loc_28BB0 ; CODE XREF: _IO_vfscanf+1C0j .text:00028BB0 ; _IO_vfscanf+CD8j ... .text:00028BB0 LDR R3, [R7] .text:00028BB4 TST R3, #0x8000 .text:00028BB8 BNE loc_28BC4 .text:00028BBC MOV R0, R7 .text:00028BC0 BL funlockfile .text:00028BC4 .text:00028BC4 loc_28BC4 ; CODE XREF: _IO_vfscanf+4908j .text:00028BC4 LDR R12, [R11,#var_9C] .text:00028BC8 CMP R12, #0 .text:00028BCC BEQ loc_28BDC .text:00028BD0 LDR R3, [R12] .text:00028BD4 .text:00028BD4 loc_28BD4 ; CODE XREF: _IO_vfscanf+2D4j .text:00028BD4 ; _IO_vfscanf+36F8j .text:00028BD4 ORR R3, R3, #1 .text:00028BD8 STR R3, [R12] .text:00028BDC .text:00028BDC loc_28BDC ; CODE XREF: _IO_vfscanf+2C8j .text:00028BDC ; _IO_vfscanf+36ECj ... .text:00028BDC LDR LR, [R11,#var_FC] .text:00028BE0 CMP LR, #0 .text:00028BE4 BEQ loc_28BF4 .text:00028BE8 SUB R0, R11, #-var_38 .text:00028BEC MOV R1, #0 .text:00028BF0 BL 0 .text:00028BF4 .text:00028BF4 loc_28BF4 ; CODE XREF: _IO_vfscanf+4934j .text:00028BF4 LDR R0, [R11,#var_A8] .text:00028BF8 CMP R0, #0 .text:00028BFC MOVEQ R0, 0xFFFFFFFF .text:00028C00 B loc_28F44 .text:00028C00 ; --------------------------------------------------------------------------- .text:00028C04 off_28C04 DCD aCnt__ctype_get ; DATA XREF: _IO_vfscanf+4628r .text:00028C04 ; "cnt < (__ctype_get_mb_cur_max ())" .text:00028C08 off_28C08 DCD aVfscanf_c ; DATA XREF: _IO_vfscanf+462Cr .text:00028C08 ; "vfscanf.c" .text:00028C0C off_28C0C DCD a_io_vfscanf ; DATA XREF: _IO_vfscanf+4634r .text:00028C0C ; "_IO_vfscanf" .text:00028C10 ; --------------------------------------------------------------------------- .text:00028C10 .text:00028C10 loc_28C10 ; CODE XREF: _IO_vfscanf+4AD4j .text:00028C10 CMP R8, #0 .text:00028C14 BNE loc_28D1C .text:00028C18 LDR R2, [R11,#var_D8] .text:00028C1C LDR R1, [R11,#var_B4] .text:00028C20 STRB R10, [R2],#1 .text:00028C24 TST R1, #0x100 .text:00028C28 STR R2, [R11,#var_D8] .text:00028C2C BEQ loc_28D1C .text:00028C30 LDR R3, [R11,#var_E0] .text:00028C34 LDR R12, [R11,#var_E4] .text:00028C38 LDR R0, [R3] .text:00028C3C ADD R3, R0, R12 .text:00028C40 CMP R2, R3 .text:00028C44 BNE loc_28D1C .text:00028C48 MOV R4, R12,LSL#1 .text:00028C4C MOV R1, R4 .text:00028C50 BL realloc .text:00028C54 CMP R0, #0 .text:00028C58 STR R0, [R11,#var_D8] .text:00028C5C BNE loc_28D00 .text:00028C60 SUB R1, R11, #-var_E4 .text:00028C64 LDMIA R1, {R1,LR} .text:00028C68 ADD R4, R1, #1 .text:00028C6C LDR R0, [LR] .text:00028C70 MOV R1, R4 .text:00028C74 BL realloc .text:00028C78 CMP R0, #0 .text:00028C7C STR R0, [R11,#var_D8] .text:00028C80 BNE loc_28CE4 .text:00028C84 LDR R2, [R11,#var_E0] .text:00028C88 LDR R12, [R11,#var_A8] .text:00028C8C LDR LR, [R11,#var_E4] .text:00028C90 LDR R3, [R2] .text:00028C94 ADD R12, R12, #1 .text:00028C98 STR R12, [R11,#var_A8] .text:00028C9C ADD R3, LR, R3 .text:00028CA0 STRB R0, [R3,#-1] .text:00028CA4 LDR R0, [R11,#var_9C] .text:00028CA8 CMP R0, #0 .text:00028CAC LDRNE R3, [R0] .text:00028CB0 ORRNE R3, R3, #2 .text:00028CB4 STRNE R3, [R0] .text:00028CB8 LDR R3, [R7] .text:00028CBC TST R3, #0x8000 .text:00028CC0 BNE loc_28CCC .text:00028CC4 MOV R0, R7 .text:00028CC8 BL funlockfile .text:00028CCC .text:00028CCC loc_28CCC ; CODE XREF: _IO_vfscanf+4A10j .text:00028CCC LDR R1, [R11,#var_FC] .text:00028CD0 CMP R1, #0 .text:00028CD4 BEQ loc_28F40 .text:00028CD8 LDR R1, [R11,#var_D8] .text:00028CDC SUB R0, R11, #-var_38 .text:00028CE0 B loc_28F3C .text:00028CE4 ; --------------------------------------------------------------------------- .text:00028CE4 .text:00028CE4 loc_28CE4 ; CODE XREF: _IO_vfscanf+49D0j .text:00028CE4 LDR R3, [R11,#var_D8] .text:00028CE8 LDR R2, [R11,#var_E0] .text:00028CEC STR R3, [R2] .text:00028CF0 LDR R12, [R11,#var_E4] .text:00028CF4 ADD R3, R3, R12 .text:00028CF8 STR R3, [R11,#var_D8] .text:00028CFC B loc_28D18 .text:00028D00 ; --------------------------------------------------------------------------- .text:00028D00 .text:00028D00 loc_28D00 ; CODE XREF: _IO_vfscanf+49ACj .text:00028D00 LDR R0, [R11,#var_D8] .text:00028D04 LDR LR, [R11,#var_E0] .text:00028D08 STR R0, [LR] .text:00028D0C LDR R1, [R11,#var_E4] .text:00028D10 ADD R0, R0, R1 .text:00028D14 STR R0, [R11,#var_D8] .text:00028D18 .text:00028D18 loc_28D18 ; CODE XREF: _IO_vfscanf+4A4Cj .text:00028D18 STR R4, [R11,#var_E4] .text:00028D1C .text:00028D1C loc_28D1C ; CODE XREF: _IO_vfscanf+4964j .text:00028D1C ; _IO_vfscanf+497Cj ... .text:00028D1C LDR R2, [R11,#var_B0] .text:00028D20 SUB R2, R2, #1 .text:00028D24 CMP R2, #0 .text:00028D28 STR R2, [R11,#var_B0] .text:00028D2C BLE loc_28DA0 .text:00028D30 CMN R10, #1 .text:00028D34 BEQ loc_28DA0 .text:00028D38 LDMIB R7, {R2,R3} .text:00028D3C CMP R2, R3 .text:00028D40 BCC loc_28D54 .text:00028D44 MOV R0, R7 .text:00028D48 BL __uflow .text:00028D4C MOV R10, R0 .text:00028D50 B loc_28D5C .text:00028D54 ; --------------------------------------------------------------------------- .text:00028D54 .text:00028D54 loc_28D54 ; CODE XREF: _IO_vfscanf+4A90j .text:00028D54 LDRB R10, [R2],#1 .text:00028D58 STR R2, [R7,#4] .text:00028D5C .text:00028D5C loc_28D5C ; CODE XREF: _IO_vfscanf+4AA0j .text:00028D5C CMN R10, #1 .text:00028D60 LDRNE R3, [R11,#var_AC] .text:00028D64 ADDNE R3, R3, #1 .text:00028D68 STRNE R3, [R11,#var_AC] .text:00028D6C CMN R10, #1 .text:00028D70 BEQ loc_28DA0 .text:00028D74 .text:00028D74 loc_28D74 ; CODE XREF: _IO_vfscanf+48FCj .text:00028D74 LDR R12, [R11,#var_F0] .text:00028D78 LDR LR, [R11,#var_BC] .text:00028D7C LDRB R3, [R12,R10] .text:00028D80 CMP R3, LR .text:00028D84 BNE loc_28C10 .text:00028D88 LDR R0, [R11,#var_AC] .text:00028D8C SUB R0, R0, #1 .text:00028D90 STR R0, [R11,#var_AC] .text:00028D94 AND R1, R10, #0xFF .text:00028D98 MOV R0, R7 .text:00028D9C BL _IO_sputbackc .text:00028DA0 .text:00028DA0 loc_28DA0 ; CODE XREF: _IO_vfscanf+4A7Cj .text:00028DA0 ; _IO_vfscanf+4A84j ... .text:00028DA0 LDR R1, [R11,#var_AC] .text:00028DA4 CMP R5, R1 .text:00028DA8 BNE loc_28DE0 .text:00028DAC LDR R2, [R11,#var_9C] .text:00028DB0 CMP R2, #0 .text:00028DB4 LDRNE R3, [R2] .text:00028DB8 ORRNE R3, R3, #2 .text:00028DBC STRNE R3, [R2] .text:00028DC0 LDR R3, [R7] .text:00028DC4 TST R3, #0x8000 .text:00028DC8 BNE loc_28DD4 .text:00028DCC MOV R0, R7 .text:00028DD0 BL funlockfile .text:00028DD4 .text:00028DD4 loc_28DD4 ; CODE XREF: _IO_vfscanf+4B18j .text:00028DD4 LDR R3, [R11,#var_FC] .text:00028DD8 CMP R3, #0 .text:00028DDC B loc_28F30 .text:00028DE0 ; --------------------------------------------------------------------------- .text:00028DE0 .text:00028DE0 loc_28DE0 ; CODE XREF: _IO_vfscanf+1360j .text:00028DE0 ; _IO_vfscanf+1368j ... .text:00028DE0 CMP R8, #0 .text:00028DE4 BNE loc_28E98 .text:00028DE8 LDR LR, [R11,#var_D8] .text:00028DEC LDR R12, [R11,#var_B4] .text:00028DF0 STRB R8, [LR],#1 .text:00028DF4 TST R12, #0x100 .text:00028DF8 STR LR, [R11,#var_D8] .text:00028DFC BEQ loc_28E28 .text:00028E00 LDR R1, [R11,#var_E0] .text:00028E04 LDR R0, [R1] .text:00028E08 LDR R2, [R11,#var_E4] .text:00028E0C RSB R1, R0, LR .text:00028E10 CMP R1, R2 .text:00028E14 BEQ loc_28E28 .text:00028E18 BL realloc .text:00028E1C CMP R0, #0 .text:00028E20 LDRNE R3, [R11,#var_E0] .text:00028E24 STRNE R0, [R3] .text:00028E28 .text:00028E28 loc_28E28 ; CODE XREF: _IO_vfscanf+4B4Cj .text:00028E28 ; _IO_vfscanf+4B64j .text:00028E28 LDR R12, [R11,#var_A8] .text:00028E2C ADD R12, R12, #1 .text:00028E30 STR R12, [R11,#var_A8] .text:00028E34 B loc_28E98 .text:00028E38 ; --------------------------------------------------------------------------- .text:00028E38 .text:00028E38 loc_28E38 ; CODE XREF: _IO_vfscanf+898j .text:00028E38 ; DATA XREF: _IO_vfscanf+8A0o .text:00028E38 MOV LR, #0x10 ; jumptable 00024B48 case 75 .text:00028E3C STR LR, [R11,#var_C0] .text:00028E40 MOV R1, #0 .text:00028E44 STR R1, [R11,#var_C4] .text:00028E48 LDR R0, [R11,#var_B4] .text:00028E4C MOV R2, #1 .text:00028E50 STR R2, [R11,#var_EC] .text:00028E54 BIC R0, R0, #6 .text:00028E58 STR R0, [R11,#var_B4] .text:00028E5C B loc_25BC4 .text:00028E60 ; --------------------------------------------------------------------------- .text:00028E60 .text:00028E60 loc_28E60 ; CODE XREF: _IO_vfscanf+898j .text:00028E60 ; _IO_vfscanf+89Cj .text:00028E60 ; DATA XREF: ... .text:00028E60 LDR R3, [R11,#var_9C] ; jumptable 00024B48 default case .text:00028E64 CMP R3, #0 .text:00028E68 LDRNE R3, [R3] .text:00028E6C LDRNE R12, [R11,#var_9C] .text:00028E70 ORRNE R3, R3, #2 .text:00028E74 STRNE R3, [R12] .text:00028E78 LDR R3, [R7] .text:00028E7C TST R3, #0x8000 .text:00028E80 BNE loc_28E8C .text:00028E84 MOV R0, R7 .text:00028E88 BL funlockfile .text:00028E8C .text:00028E8C loc_28E8C ; CODE XREF: _IO_vfscanf+4BD0j .text:00028E8C LDR LR, [R11,#var_FC] .text:00028E90 CMP LR, #0 .text:00028E94 B loc_28F30 .text:00028E98 ; --------------------------------------------------------------------------- .text:00028E98 .text:00028E98 loc_28E98 ; CODE XREF: _IO_vfscanf+228j .text:00028E98 ; _IO_vfscanf+260j ... .text:00028E98 LDR R0, [R11,#var_A4] .text:00028E9C LDRB R3, [R0] .text:00028EA0 CMP R3, #0 .text:00028EA4 BNE loc_243FC .text:00028EA8 .text:00028EA8 loc_28EA8 ; CODE XREF: _IO_vfscanf+13Cj .text:00028EA8 LDR R1, [R11,#var_E8] .text:00028EAC CMP R1, #0 .text:00028EB0 BEQ loc_28F14 .text:00028EB4 .text:00028EB4 loc_28EB4 ; CODE XREF: _IO_vfscanf+4C4Cj .text:00028EB4 CMN R10, #1 .text:00028EB8 BEQ loc_28EE0 .text:00028EBC LDMIB R7, {R2,R3} .text:00028EC0 CMP R2, R3 .text:00028EC4 BCC loc_28ED8 .text:00028EC8 MOV R0, R7 .text:00028ECC BL __uflow .text:00028ED0 MOV R10, R0 .text:00028ED4 B loc_28EE0 .text:00028ED8 ; --------------------------------------------------------------------------- .text:00028ED8 .text:00028ED8 loc_28ED8 ; CODE XREF: _IO_vfscanf+4C14j .text:00028ED8 LDRB R10, [R2],#1 .text:00028EDC STR R2, [R7,#4] .text:00028EE0 .text:00028EE0 loc_28EE0 ; CODE XREF: _IO_vfscanf+4C08j .text:00028EE0 ; _IO_vfscanf+4C24j .text:00028EE0 MOV R12, R10 .text:00028EE4 LDR R2, =__ctype_b .text:00028EE8 LDR R1, [R2] .text:00028EEC MOV R3, R10,LSL#1 .text:00028EF0 ADD R3, R3, R1 .text:00028EF4 LDRB R2, [R3,#1] .text:00028EF8 TST R2, #0x20 .text:00028EFC BNE loc_28EB4 .text:00028F00 CMN R12, #1 .text:00028F04 BEQ loc_28F14 .text:00028F08 MOV R0, R7 .text:00028F0C AND R1, R12, #0xFF .text:00028F10 BL _IO_sputbackc .text:00028F14 .text:00028F14 loc_28F14 ; CODE XREF: _IO_vfscanf+40D8j .text:00028F14 ; _IO_vfscanf+4C00j ... .text:00028F14 LDR R3, [R7] .text:00028F18 TST R3, #0x8000 .text:00028F1C BNE loc_28F28 .text:00028F20 MOV R0, R7 .text:00028F24 BL funlockfile .text:00028F28 .text:00028F28 loc_28F28 ; CODE XREF: _IO_vfscanf+4C6Cj .text:00028F28 LDR R2, [R11,#var_FC] .text:00028F2C CMP R2, #0 .text:00028F30 .text:00028F30 loc_28F30 ; CODE XREF: _IO_vfscanf+218j .text:00028F30 ; _IO_vfscanf+378j ... .text:00028F30 BEQ loc_28F40 .text:00028F34 SUB R0, R11, #-var_38 .text:00028F38 MOV R1, #0 .text:00028F3C .text:00028F3C loc_28F3C ; CODE XREF: _IO_vfscanf+C94j .text:00028F3C ; _IO_vfscanf+E70j ... .text:00028F3C BL 0 .text:00028F40 .text:00028F40 loc_28F40 ; CODE XREF: _IO_vfscanf+C88j .text:00028F40 ; _IO_vfscanf+E64j ... .text:00028F40 LDR R0, [R11,#var_A8] .text:00028F44 .text:00028F44 loc_28F44 ; CODE XREF: _IO_vfscanf+84j .text:00028F44 ; _IO_vfscanf+B8j ... .text:00028F44 B locret_28F4C .text:00028F44 ; --------------------------------------------------------------------------- .text:00028F48 off_28F48 DCD __ctype_b ; DATA XREF: _IO_vfscanf+4C34r .text:00028F4C ; --------------------------------------------------------------------------- .text:00028F4C .text:00028F4C locret_28F4C ; CODE XREF: _IO_vfscanf:loc_28F44j .text:00028F4C LDMDB R11, {R4-R11,SP,PC} .text:00028F4C ; End of function _IO_vfscanf .text:00028F4C .text:00028F50 .text:00028F50 ; =============== S U B R O U T I N E ======================================= .text:00028F50 .text:00028F50 ; Attributes: bp-based frame .text:00028F50 .text:00028F50 WEAK vfscanf .text:00028F50 vfscanf .text:00028F50 MOV R12, SP ; Alternative name is '__vfscanf' .text:00028F54 STMFD SP!, {R11,R12,LR,PC} .text:00028F58 SUB R11, R12, #4 .text:00028F5C MOV R3, #0 .text:00028F60 BL _IO_vfscanf .text:00028F64 LDMDB R11, {R11,SP,PC} .text:00028F64 ; End of function vfscanf .text:00028F64 .text:00028F68 .text:00028F68 ; =============== S U B R O U T I N E ======================================= .text:00028F68 .text:00028F68 ; Attributes: bp-based frame .text:00028F68 .text:00028F68 WEAK flockfile .text:00028F68 flockfile ; CODE XREF: fflush+64p .text:00028F68 ; fwide+80p ... .text:00028F68 MOV R12, SP .text:00028F6C STMFD SP!, {R11,R12,LR,PC} .text:00028F70 SUB R11, R12, #4 .text:00028F74 LDMDB R11, {R11,SP,PC} .text:00028F74 ; End of function flockfile .text:00028F74 .text:00028F78 .text:00028F78 ; =============== S U B R O U T I N E ======================================= .text:00028F78 .text:00028F78 ; Attributes: bp-based frame .text:00028F78 .text:00028F78 WEAK funlockfile .text:00028F78 funlockfile ; CODE XREF: fflush+A0p .text:00028F78 ; fwide+CCp ... .text:00028F78 MOV R12, SP ; Alternative name is '__funlockfile' .text:00028F7C STMFD SP!, {R11,R12,LR,PC} .text:00028F80 SUB R11, R12, #4 .text:00028F84 LDMDB R11, {R11,SP,PC} .text:00028F84 ; End of function funlockfile .text:00028F84 .text:00028F88 .text:00028F88 ; =============== S U B R O U T I N E ======================================= .text:00028F88 .text:00028F88 ; Attributes: bp-based frame .text:00028F88 .text:00028F88 WEAK ftrylockfile .text:00028F88 ftrylockfile .text:00028F88 MOV R12, SP ; Alternative name is '_IO_ftrylockfile' .text:00028F8C STMFD SP!, {R11,R12,LR,PC} .text:00028F90 SUB R11, R12, #4 .text:00028F94 MOV R0, #1 .text:00028F98 LDMDB R11, {R11,SP,PC} .text:00028F98 ; End of function ftrylockfile .text:00028F98 .text:00028F9C .text:00028F9C ; =============== S U B R O U T I N E ======================================= .text:00028F9C .text:00028F9C ; Attributes: bp-based frame .text:00028F9C .text:00028F9C _i18n_number_rewrite_0 ; CODE XREF: vfwprintf+F74p .text:00028F9C ; vfwprintf+1210p ... .text:00028F9C MOV R12, SP .text:00028FA0 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:00028FA4 SUB R11, R12, #4 .text:00028FA8 MOV R12, R0 .text:00028FAC MOV R4, R1 .text:00028FB0 RSB R2, R12, R4 .text:00028FB4 BIC R2, R2, #3 .text:00028FB8 MOV R1, R12 .text:00028FBC RSB SP, R2, SP .text:00028FC0 MOV R0, SP .text:00028FC4 MOV R5, SP .text:00028FC8 BL mempcpy .text:00028FCC MOV R12, R4 .text:00028FD0 SUB R0, R0, #4 .text:00028FD4 CMP R0, SP .text:00028FD8 BCC loc_29020 .text:00028FDC .text:00028FDC loc_28FDC ; CODE XREF: _i18n_number_rewrite_0+80j .text:00028FDC LDR R1, [R0] .text:00028FE0 SUB R3, R1, #0x30 .text:00028FE4 CMP R3, #9 .text:00028FE8 BHI loc_29010 .text:00028FEC ADD R1, R1, #3 .text:00028FF0 LDR R2, =_nl_current_LC_CTYPE .text:00028FF4 MOV R1, R1,LSL#16 .text:00028FF8 LDR R3, [R2] .text:00028FFC MOV R1, R1,LSR#16 .text:00029000 ADD R3, R3, #0x20 .text:00029004 LDR R2, [R3,R1,LSL#2] .text:00029008 STR R2, [R12,#-4]! .text:0002900C B loc_29014 .text:00029010 ; --------------------------------------------------------------------------- .text:00029010 .text:00029010 loc_29010 ; CODE XREF: _i18n_number_rewrite_0+4Cj .text:00029010 STR R1, [R12,#-4]! .text:00029014 .text:00029014 loc_29014 ; CODE XREF: _i18n_number_rewrite_0+70j .text:00029014 SUB R0, R0, #4 .text:00029018 CMP R0, R5 .text:0002901C BCS loc_28FDC .text:00029020 .text:00029020 loc_29020 ; CODE XREF: _i18n_number_rewrite_0+3Cj .text:00029020 MOV R0, R12 .text:00029024 LDMDB R11, {R4,R5,R11,SP,PC} .text:00029024 ; End of function _i18n_number_rewrite_0 .text:00029024 .text:00029024 ; --------------------------------------------------------------------------- .text:00029028 off_29028 DCD _nl_current_LC_CTYPE .text:00029028 ; DATA XREF: _i18n_number_rewrite_0+54r .text:0002902C .text:0002902C ; =============== S U B R O U T I N E ======================================= .text:0002902C .text:0002902C ; Attributes: bp-based frame .text:0002902C .text:0002902C EXPORT vfwprintf .text:0002902C vfwprintf ; CODE XREF: fwprintf+18p .text:0002902C ; buffered_vfprintf_0+C0p .text:0002902C .text:0002902C var_1754 = -0x1754 .text:0002902C var_1750 = -0x1750 .text:0002902C var_1154 = -0x1154 .text:0002902C var_1150 = -0x1150 .text:0002902C var_1100 = -0x1100 .text:0002902C var_1080 = -0x1080 .text:0002902C var_1040 = -0x1040 .text:0002902C var_1000 = -0x1000 .text:0002902C var_FFC = -0xFFC .text:0002902C var_FF8 = -0xFF8 .text:0002902C var_FF4 = -0xFF4 .text:0002902C var_FF3 = -0xFF3 .text:0002902C var_FF0 = -0xFF0 .text:0002902C var_FEC = -0xFEC .text:0002902C var_FE8 = -0xFE8 .text:0002902C var_FE4 = -0xFE4 .text:0002902C var_FE0 = -0xFE0 .text:0002902C var_FDF = -0xFDF .text:0002902C var_FDC = -0xFDC .text:0002902C var_FD0 = -0xFD0 .text:0002902C var_FC0 = -0xFC0 .text:0002902C var_28 = -0x28 .text:0002902C .text:0002902C MOV R12, SP .text:00029030 STMFD SP!, {R4-R12,LR,PC} .text:00029034 SUB R11, R12, #4 .text:00029038 SUB R3, R11, #-var_1000 .text:0002903C SUB SP, SP, #0x1100 .text:00029040 SUB SP, SP, #0x2C .text:00029044 STR R2, [R3,#-0x78] .text:00029048 MOV R5, #0 .text:0002904C MOV R4, R3 .text:00029050 STR R5, [R4,#-0x7C] .text:00029054 MOV R9, R0 .text:00029058 MOV R4, R1 .text:0002905C BL __errno_location .text:00029060 LDR R0, [R0] .text:00029064 SUB R12, R11, #-var_1000 .text:00029068 STR R0, [R12,#-0x94] .text:0002906C MOV R1, #1 .text:00029070 MOV R0, R9 .text:00029074 BL _IO_fwide .text:00029078 MOV R1, R0 .text:0002907C CMP R1, #1 .text:00029080 BNE loc_2B128 .text:00029084 LDR R3, [R9] .text:00029088 TST R3, #8 .text:0002908C BNE loc_2B11C .text:00029090 CMP R4, #0 .text:00029094 BNE loc_290A4 .text:00029098 BL __errno_location .text:0002909C MOV R3, #0x16 .text:000290A0 B loc_2B124 .text:000290A4 ; --------------------------------------------------------------------------- .text:000290A4 .text:000290A4 loc_290A4 ; CODE XREF: vfwprintf+68j .text:000290A4 LDRB R3, [R9,#0x46] .text:000290A8 CMP R3, #0 .text:000290AC BNE loc_290C0 .text:000290B0 MOV R0, R9 .text:000290B4 BL _IO_fwide .text:000290B8 CMP R0, #1 .text:000290BC BNE loc_2B128 .text:000290C0 .text:000290C0 loc_290C0 ; CODE XREF: vfwprintf+80j .text:000290C0 LDR R3, [R9] .text:000290C4 ANDS R2, R3, #2 .text:000290C8 BEQ loc_290E4 .text:000290CC MOV R0, R9 .text:000290D0 MOV R1, R4 .text:000290D4 SUB LR, R11, #-var_1000 .text:000290D8 LDR R2, [LR,#-0x78] .text:000290DC BL buffered_vfprintf_0 .text:000290E0 B loc_2DB20 .text:000290E4 ; --------------------------------------------------------------------------- .text:000290E4 .text:000290E4 loc_290E4 ; CODE XREF: vfwprintf+9Cj .text:000290E4 MOV R1, 0xFFFFFFFF .text:000290E8 SUB R0, R11, #-var_1000 .text:000290EC STR R1, [R0,#-0x80] .text:000290F0 MOV R3, R0 .text:000290F4 LDR R5, [R3,#-0x78] .text:000290F8 STR R5, [R3,#-0x8C] .text:000290FC MOV R12, R0 .text:00029100 STR R2, [R12,#-0x90] .text:00029104 MOV R0, R4 .text:00029108 ADD R1, R1, #0x26 .text:0002910C BL wcschrnul .text:00029110 SUB LR, R11, #-var_1000 .text:00029114 STR R0, [LR,#-0x84] .text:00029118 MOV R5, 0xFFFFEFF8 .text:00029120 SUB R1, R11, #-var_28 .text:00029124 LDR R3, =0 .text:00029128 MOV R2, LR .text:0002912C STR R0, [R1,R5] .text:00029130 SUBS R12, R3, #0 .text:00029134 MOVNE R12, #1 .text:00029138 CMP R12, #0 .text:0002913C STR R12, [R2,#-0x98] .text:00029140 BEQ loc_2915C .text:00029144 SUB R0, R11, #-var_FD0 .text:00029148 SUB R0, R0, #8 .text:0002914C LDR R1, =funlockfile .text:00029150 MOV R2, R9 .text:00029154 MOV LR, PC .text:00029158 MOV PC, R3 .text:0002915C .text:0002915C loc_2915C ; CODE XREF: vfwprintf+114j .text:0002915C LDR R3, [R9] .text:00029160 TST R3, #0x8000 .text:00029164 BNE loc_29170 .text:00029168 MOV R0, R9 .text:0002916C BL flockfile .text:00029170 .text:00029170 loc_29170 ; CODE XREF: vfwprintf+138j .text:00029170 MOV R0, R9 .text:00029174 MOV R1, R4 .text:00029178 LDRB R3, [R9,#0x46] .text:0002917C SUB R2, R11, #-var_1000 .text:00029180 LDR R2, [R2,#-0x84] .text:00029184 MOV R3, R3,LSL#24 .text:00029188 ADD R3, R9, R3,ASR#24 .text:0002918C RSB R4, R4, R2 .text:00029190 MOV R4, R4,ASR#2 .text:00029194 LDR R12, [R3,#0x94] .text:00029198 MOV R2, R4 .text:0002919C MOV LR, PC .text:000291A0 LDR PC, [R12,#0x1C] .text:000291A4 CMP R0, R4 .text:000291A8 BNE loc_2B130 .text:000291AC MOV R10, R0 .text:000291B0 SUB R4, R11, #-var_28 .text:000291B4 LDR R3, [R4,R5] .text:000291B8 LDR R2, [R3] .text:000291BC CMP R2, #0 .text:000291C0 BEQ loc_2DAE8 .text:000291C4 .text:000291C4 loc_291C4 ; CODE XREF: vfwprintf+20E8j .text:000291C4 MOV R12, #0 .text:000291C8 SUB R5, R11, #-var_1000 .text:000291CC STR R12, [R5,#-0xAC] .text:000291D0 MOV LR, R5 .text:000291D4 STR R12, [LR,#-0xB0] .text:000291D8 MOV R0, R5 .text:000291DC LDR R1, [R0,#-0xAC] .text:000291E0 STR R1, [R0,#-0xB4] .text:000291E4 MOV R2, R0 .text:000291E8 STR R1, [R2,#-0xB8] .text:000291EC MOV R3, R0 .text:000291F0 LDR R4, [R3,#-0xB4] .text:000291F4 STR R4, [R3,#-0xBC] .text:000291F8 LDR R12, [R5,#-0xB4] .text:000291FC STR R12, [R5,#-0xC0] .text:00029200 LDR R0, [LR,#-0xB4] .text:00029204 STR R0, [LR,#-0xC4] .text:00029208 MOV R1, R2 .text:0002920C LDR R2, [R1,#-0xB4] .text:00029210 STR R2, [R1,#-0xC8] .text:00029214 LDR R4, [R3,#-0xB4] .text:00029218 STR R4, [R3,#-0xCC] .text:0002921C LDR R12, [R5,#-0xB4] .text:00029220 STR R12, [R5,#-0xD0] .text:00029224 MOV R0, 0xFFFFFFFF .text:00029228 STR R0, [LR,#-0xD4] .text:0002922C STR R12, [R1,#-0xD8] .text:00029230 MOV R2, R1 .text:00029234 MOV R3, #0x20 .text:00029238 STR R3, [R2,#-0xDC] .text:0002923C MOV R4, R1 .text:00029240 SUB R5, R11, #-var_28 .text:00029244 STR R5, [R4,#-0x88] .text:00029248 MOV R3, 0xFFFFEFF8 .text:00029250 MOV R12, R5 .text:00029254 LDR R1, [R12,R3] .text:00029258 MOV LR, R5 .text:0002925C ADD R2, R1, #4 .text:00029260 STR R2, [LR,R3] .text:00029264 LDR R1, [R1,#4] .text:00029268 MOV R0, R4 .text:0002926C STR R1, [R0,#-0xE0] .text:00029270 SUB R2, R1, #0x20 .text:00029274 CMP R2, #0x5A .text:00029278 BHI loc_29290 .text:0002927C LDR R3, =jump_table.177 .text:00029280 LDR R1, =step0_jumps.178 .text:00029284 LDR R2, [R3,R2,LSL#2] .text:00029288 LDR R3, [R1,R2,LSL#2] .text:0002928C B loc_29294 .text:00029290 ; --------------------------------------------------------------------------- .text:00029290 .text:00029290 loc_29290 ; CODE XREF: vfwprintf+24Cj .text:00029290 LDR R3, =loc_2B07C .text:00029294 .text:00029294 loc_29294 ; CODE XREF: vfwprintf+260j .text:00029294 MOV PC, R3 .text:00029298 ; --------------------------------------------------------------------------- .text:00029298 MOV R3, #1 .text:0002929C SUB R2, R11, #-var_1000 .text:000292A0 STR R3, [R2,#-0xB0] .text:000292A4 MOV R3, 0xFFFFEFF8 .text:000292AC SUB R4, R11, #-var_28 .text:000292B0 LDR R1, [R4,R3] .text:000292B4 MOV R5, R4 .text:000292B8 ADD R2, R1, #4 .text:000292BC STR R2, [R5,R3] .text:000292C0 LDR R1, [R1,#4] .text:000292C4 SUB R12, R11, #-var_1000 .text:000292C8 STR R1, [R12,#-0xE0] .text:000292CC SUB R2, R1, #0x20 .text:000292D0 CMP R2, #0x5A .text:000292D4 BHI loc_292EC .text:000292D8 LDR R3, =jump_table.177 .text:000292DC LDR R1, =step0_jumps.178 .text:000292E0 LDR R2, [R3,R2,LSL#2] .text:000292E4 LDR R3, [R1,R2,LSL#2] .text:000292E8 B loc_292F0 .text:000292EC ; --------------------------------------------------------------------------- .text:000292EC .text:000292EC loc_292EC ; CODE XREF: vfwprintf+2A8j .text:000292EC LDR R3, =loc_2B07C .text:000292F0 .text:000292F0 loc_292F0 ; CODE XREF: vfwprintf+2BCj .text:000292F0 MOV PC, R3 .text:000292F4 ; --------------------------------------------------------------------------- .text:000292F4 MOV R1, #1 .text:000292F8 SUB R0, R11, #-var_1000 .text:000292FC STR R1, [R0,#-0xB8] .text:00029300 MOV R3, 0xFFFFEFF8 .text:00029308 SUB R2, R11, #-var_28 .text:0002930C LDR R1, [R2,R3] .text:00029310 SUB R4, R11, #-var_28 .text:00029314 ADD R2, R1, #4 .text:00029318 STR R2, [R4,R3] .text:0002931C LDR R1, [R1,#4] .text:00029320 MOV R5, R0 .text:00029324 STR R1, [R5,#-0xE0] .text:00029328 SUB R2, R1, #0x20 .text:0002932C CMP R2, #0x5A .text:00029330 BHI loc_29348 .text:00029334 LDR R3, =jump_table.177 .text:00029338 LDR R1, =step0_jumps.178 .text:0002933C LDR R2, [R3,R2,LSL#2] .text:00029340 LDR R3, [R1,R2,LSL#2] .text:00029344 B loc_2934C .text:00029348 ; --------------------------------------------------------------------------- .text:00029348 .text:00029348 loc_29348 ; CODE XREF: vfwprintf+304j .text:00029348 LDR R3, =loc_2B07C .text:0002934C .text:0002934C loc_2934C ; CODE XREF: vfwprintf+318j .text:0002934C MOV PC, R3 .text:00029350 ; --------------------------------------------------------------------------- .text:00029350 MOV R0, #1 .text:00029354 SUB LR, R11, #-var_1000 .text:00029358 STR R0, [LR,#-0xB4] .text:0002935C MOV R2, #0x20 .text:00029360 MOV R1, LR .text:00029364 STR R2, [R1,#-0xDC] .text:00029368 MOV R3, 0xFFFFEFF8 .text:00029370 SUB R4, R11, #-var_28 .text:00029374 LDR R1, [R4,R3] .text:00029378 MOV R5, R4 .text:0002937C ADD R2, R1, #4 .text:00029380 STR R2, [R5,R3] .text:00029384 LDR R1, [R1,#4] .text:00029388 MOV R12, LR .text:0002938C STR R1, [R12,#-0xE0] .text:00029390 SUB R2, R1, #0x20 .text:00029394 CMP R2, #0x5A .text:00029398 BHI loc_293B0 .text:0002939C LDR R3, =jump_table.177 .text:000293A0 LDR R1, =step0_jumps.178 .text:000293A4 LDR R2, [R3,R2,LSL#2] .text:000293A8 LDR R3, [R1,R2,LSL#2] .text:000293AC B loc_293B4 .text:000293B0 ; --------------------------------------------------------------------------- .text:000293B0 .text:000293B0 loc_293B0 ; CODE XREF: vfwprintf+36Cj .text:000293B0 LDR R3, =loc_2B07C .text:000293B4 .text:000293B4 loc_293B4 ; CODE XREF: vfwprintf+380j .text:000293B4 MOV PC, R3 .text:000293B8 ; --------------------------------------------------------------------------- .text:000293B8 MOV R1, #1 .text:000293BC SUB R0, R11, #-var_1000 .text:000293C0 STR R1, [R0,#-0xAC] .text:000293C4 MOV R3, 0xFFFFEFF8 .text:000293CC SUB R2, R11, #-var_28 .text:000293D0 LDR R1, [R2,R3] .text:000293D4 SUB R4, R11, #-var_28 .text:000293D8 ADD R2, R1, #4 .text:000293DC STR R2, [R4,R3] .text:000293E0 LDR R1, [R1,#4] .text:000293E4 MOV R5, R0 .text:000293E8 STR R1, [R5,#-0xE0] .text:000293EC SUB R2, R1, #0x20 .text:000293F0 CMP R2, #0x5A .text:000293F4 BHI loc_2940C .text:000293F8 LDR R3, =jump_table.177 .text:000293FC LDR R1, =step0_jumps.178 .text:00029400 LDR R2, [R3,R2,LSL#2] .text:00029404 LDR R3, [R1,R2,LSL#2] .text:00029408 B loc_29410 .text:0002940C ; --------------------------------------------------------------------------- .text:0002940C .text:0002940C loc_2940C ; CODE XREF: vfwprintf+3C8j .text:0002940C LDR R3, =loc_2B07C .text:00029410 .text:00029410 loc_29410 ; CODE XREF: vfwprintf+3DCj .text:00029410 MOV PC, R3 .text:00029414 ; --------------------------------------------------------------------------- .text:00029414 SUB LR, R11, #-var_1000 .text:00029418 LDR R0, [LR,#-0xDC] .text:0002941C LDR LR, [LR,#-0xB4] .text:00029420 CMP LR, #0 .text:00029424 MOVEQ R0, #0x30 .text:00029428 SUB LR, R11, #-var_1000 .text:0002942C STR R0, [LR,#-0xDC] .text:00029430 MOV R3, 0xFFFFEFF8 .text:00029438 SUB R0, R11, #-var_28 .text:0002943C LDR R1, [R0,R3] .text:00029440 MOV R4, R0 .text:00029444 ADD R2, R1, #4 .text:00029448 STR R2, [R4,R3] .text:0002944C LDR R1, [R1,#4] .text:00029450 MOV R5, LR .text:00029454 STR R1, [R5,#-0xE0] .text:00029458 SUB R2, R1, #0x20 .text:0002945C CMP R2, #0x5A .text:00029460 BHI loc_29478 .text:00029464 LDR R3, =jump_table.177 .text:00029468 LDR R1, =step0_jumps.178 .text:0002946C LDR R2, [R3,R2,LSL#2] .text:00029470 LDR R3, [R1,R2,LSL#2] .text:00029474 B loc_2947C .text:00029478 ; --------------------------------------------------------------------------- .text:00029478 .text:00029478 loc_29478 ; CODE XREF: vfwprintf+434j .text:00029478 LDR R3, =loc_2B07C .text:0002947C .text:0002947C loc_2947C ; CODE XREF: vfwprintf+448j .text:0002947C MOV PC, R3 .text:0002947C ; --------------------------------------------------------------------------- .text:00029480 off_29480 DCD 0 ; DATA XREF: vfwprintf+F8r .text:00029484 off_29484 DCD funlockfile ; DATA XREF: vfwprintf+120r .text:00029488 off_29488 DCD jump_table.177 ; DATA XREF: vfwprintf+250r .text:00029488 ; vfwprintf+2ACr ... .text:0002948C off_2948C DCD step0_jumps.178 ; DATA XREF: vfwprintf+254r .text:0002948C ; vfwprintf+2B0r ... .text:00029490 off_29490 DCD loc_2B07C ; DATA XREF: vfwprintf:loc_29290r .text:00029490 ; vfwprintf:loc_292ECr ... .text:00029494 ; --------------------------------------------------------------------------- .text:00029494 MOV R0, #1 .text:00029498 SUB LR, R11, #-var_1000 .text:0002949C STR R0, [LR,#-0xBC] .text:000294A0 MOV R1, LR .text:000294A4 LDR R1, [R1,#-0x80] .text:000294A8 CMN R1, #1 .text:000294AC BNE loc_294F4 .text:000294B0 LDR R3, =_nl_current_LC_NUMERIC .text:000294B4 LDR R2, [R3] .text:000294B8 LDR R4, [R2,#0x28] .text:000294BC MOV R3, LR .text:000294C0 STR R4, [R3,#-0x80] .text:000294C4 LDRB R3, [R4] .text:000294C8 MOV R12, LR .text:000294CC LDR R2, [R2,#0x30] .text:000294D0 CMP R3, #0xFF .text:000294D4 CMPNE R3, #0 .text:000294D8 STR R2, [R12,#-0x7C] .text:000294DC BEQ loc_294E8 .text:000294E0 CMP R2, #0 .text:000294E4 BNE loc_294F4 .text:000294E8 .text:000294E8 loc_294E8 ; CODE XREF: vfwprintf+4B0j .text:000294E8 MOV R1, #0 .text:000294EC SUB R0, R11, #-var_1000 .text:000294F0 STR R1, [R0,#-0x80] .text:000294F4 .text:000294F4 loc_294F4 ; CODE XREF: vfwprintf+480j .text:000294F4 ; vfwprintf+4B8j .text:000294F4 MOV R3, 0xFFFFEFF8 .text:000294FC SUB R2, R11, #-var_28 .text:00029500 LDR R1, [R2,R3] .text:00029504 SUB R4, R11, #-var_28 .text:00029508 ADD R2, R1, #4 .text:0002950C STR R2, [R4,R3] .text:00029510 LDR R1, [R1,#4] .text:00029514 SUB R5, R11, #-var_1000 .text:00029518 STR R1, [R5,#-0xE0] .text:0002951C SUB R2, R1, #0x20 .text:00029520 CMP R2, #0x5A .text:00029524 BHI loc_2953C .text:00029528 LDR R3, =jump_table.177 .text:0002952C LDR R1, =step0_jumps.178 .text:00029530 LDR R2, [R3,R2,LSL#2] .text:00029534 LDR R3, [R1,R2,LSL#2] .text:00029538 B loc_29540 .text:0002953C ; --------------------------------------------------------------------------- .text:0002953C .text:0002953C loc_2953C ; CODE XREF: vfwprintf+4F8j .text:0002953C LDR R3, =loc_2B07C .text:00029540 .text:00029540 loc_29540 ; CODE XREF: vfwprintf+50Cj .text:00029540 MOV PC, R3 .text:00029544 ; --------------------------------------------------------------------------- .text:00029544 MOV R0, #1 .text:00029548 SUB LR, R11, #-var_1000 .text:0002954C STR R0, [LR,#-0xD8] .text:00029550 MOV R3, 0xFFFFEFF8 .text:00029558 SUB R2, R11, #-var_28 .text:0002955C LDR R1, [R2,R3] .text:00029560 SUB R4, R11, #-var_28 .text:00029564 ADD R2, R1, #4 .text:00029568 STR R2, [R4,R3] .text:0002956C LDR R1, [R1,#4] .text:00029570 MOV R5, LR .text:00029574 STR R1, [R5,#-0xE0] .text:00029578 SUB R2, R1, #0x20 .text:0002957C CMP R2, #0x5A .text:00029580 BHI loc_29598 .text:00029584 LDR R3, =jump_table.177 .text:00029588 LDR R1, =step0_jumps.178 .text:0002958C LDR R2, [R3,R2,LSL#2] .text:00029590 LDR R3, [R1,R2,LSL#2] .text:00029594 B loc_2959C .text:00029598 ; --------------------------------------------------------------------------- .text:00029598 .text:00029598 loc_29598 ; CODE XREF: vfwprintf+554j .text:00029598 LDR R3, =loc_2B07C .text:0002959C .text:0002959C loc_2959C ; CODE XREF: vfwprintf+568j .text:0002959C MOV PC, R3 .text:000295A0 ; --------------------------------------------------------------------------- .text:000295A0 MOV R2, 0xFFFFEFFF .text:000295A4 SUB R3, R2, #7 .text:000295A8 SUB LR, R11, #-var_28 .text:000295AC LDR R1, [LR,R3] .text:000295B0 MOV R4, LR .text:000295B4 ADD R0, R1, #4 .text:000295B8 STR R0, [R4,R3] .text:000295BC SUB R2, R2, #3 .text:000295C0 MOV R5, R4 .text:000295C4 STR R0, [R5,R2] .text:000295C8 LDR R3, [R1,#4] .text:000295CC SUB R1, R3, #0x30 .text:000295D0 CMP R1, #9 .text:000295D4 BHI loc_29648 .text:000295D8 SUB LR, R11, #-var_1000 .text:000295DC SUB LR, LR, #0x28 .text:000295E0 SUB LR, LR, #4 .text:000295E4 ADD R3, R0, #4 .text:000295E8 STR R3, [LR] .text:000295EC LDR R2, [R0,#4] .text:000295F0 MOV R4, LR .text:000295F4 SUB R2, R2, #0x30 .text:000295F8 CMP R2, #9 .text:000295FC BHI loc_29630 .text:00029600 .text:00029600 loc_29600 ; CODE XREF: vfwprintf+600j .text:00029600 LDR R0, [LR] .text:00029604 MOV R3, R0 .text:00029608 LDR R12, [R3],#4 .text:0002960C STR R3, [LR] .text:00029610 ADD R2, R1, R1,LSL#2 .text:00029614 MOV R1, R2,LSL#1 .text:00029618 SUB R1, R1, #0x30 .text:0002961C LDR R3, [R0,#4] .text:00029620 ADD R1, R1, R12 .text:00029624 SUB R3, R3, #0x30 .text:00029628 CMP R3, #9 .text:0002962C BLS loc_29600 .text:00029630 .text:00029630 loc_29630 ; CODE XREF: vfwprintf+5D0j .text:00029630 CMP R1, #0 .text:00029634 BEQ loc_29648 .text:00029638 LDR R3, [R4] .text:0002963C LDR R2, [R3] .text:00029640 CMP R2, #0x24 .text:00029644 BEQ loc_2B138 .text:00029648 .text:00029648 loc_29648 ; CODE XREF: vfwprintf+5A8j .text:00029648 ; vfwprintf+608j .text:00029648 SUB R12, R11, #-var_1000 .text:0002964C LDR LR, [R12,#-0x78] .text:00029650 ADD LR, LR, #4 .text:00029654 STR LR, [R12,#-0x78] .text:00029658 SUB LR, LR, #4 .text:0002965C LDR LR, [LR] .text:00029660 STR LR, [R12,#-0xD0] .text:00029664 CMP LR, #0 .text:00029668 BGE loc_29690 .text:0002966C RSB R2, LR, #0 .text:00029670 MOV R1, R12 .text:00029674 STR R2, [R1,#-0xD0] .text:00029678 MOV R4, #0x20 .text:0002967C MOV R3, R1 .text:00029680 STR R4, [R3,#-0xDC] .text:00029684 MOV R12, #1 .text:00029688 MOV R5, R1 .text:0002968C STR R12, [R5,#-0xB4] .text:00029690 .text:00029690 loc_29690 ; CODE XREF: vfwprintf+63Cj .text:00029690 SUB LR, R11, #-var_1000 .text:00029694 LDR LR, [LR,#-0xD0] .text:00029698 ADD R3, LR, #0x20 .text:0002969C CMP R3, #0x3E8 .text:000296A0 BLT loc_296B8 .text:000296A4 SUB SP, SP, R3,LSL#2 .text:000296A8 ADD R3, SP, LR,LSL#2 .text:000296AC ADD R3, R3, #0x84 .text:000296B0 SUB R1, R11, #-var_1000 .text:000296B4 STR R3, [R1,#-0x88] .text:000296B8 .text:000296B8 loc_296B8 ; CODE XREF: vfwprintf+674j .text:000296B8 MOV R3, 0xFFFFEFF8 .text:000296C0 SUB R4, R11, #-var_28 .text:000296C4 LDR R2, [R4,R3] .text:000296C8 LDR R2, [R2] .text:000296CC SUB R5, R11, #-var_1000 .text:000296D0 STR R2, [R5,#-0xE0] .text:000296D4 MOV R12, R5 .text:000296D8 LDR R12, [R12,#-0xE0] .text:000296DC SUB R2, R12, #0x20 .text:000296E0 CMP R2, #0x5A .text:000296E4 BHI loc_296FC .text:000296E8 LDR R3, =jump_table.177 .text:000296EC LDR R1, =step1_jumps.179 .text:000296F0 LDR R2, [R3,R2,LSL#2] .text:000296F4 LDR R3, [R1,R2,LSL#2] .text:000296F8 B loc_29700 .text:000296FC ; --------------------------------------------------------------------------- .text:000296FC .text:000296FC loc_296FC ; CODE XREF: vfwprintf+6B8j .text:000296FC LDR R3, =loc_2B07C .text:00029700 .text:00029700 loc_29700 ; CODE XREF: vfwprintf+6CCj .text:00029700 MOV PC, R3 .text:00029704 ; --------------------------------------------------------------------------- .text:00029704 SUB LR, R11, #-var_1000 .text:00029708 SUB LR, LR, #0x28 .text:0002970C SUB LR, LR, #8 .text:00029710 LDR R2, [LR] .text:00029714 MOV R3, R2 .text:00029718 LDR R1, [R3],#4 .text:0002971C STR R3, [LR] .text:00029720 LDR R3, [R2,#4] .text:00029724 SUB R2, R1, #0x30 .text:00029728 B loc_29750 .text:0002972C ; --------------------------------------------------------------------------- .text:0002972C .text:0002972C loc_2972C ; CODE XREF: vfwprintf+72Cj .text:0002972C LDR R0, [LR] .text:00029730 MOV R3, R0 .text:00029734 LDR R12, [R3],#4 .text:00029738 STR R3, [LR] .text:0002973C ADD R2, R2, R2,LSL#2 .text:00029740 MOV R2, R2,LSL#1 .text:00029744 SUB R1, R2, #0x30 .text:00029748 LDR R3, [R0,#4] .text:0002974C ADD R2, R1, R12 .text:00029750 .text:00029750 loc_29750 ; CODE XREF: vfwprintf+6FCj .text:00029750 SUB R3, R3, #0x30 .text:00029754 CMP R3, #9 .text:00029758 BLS loc_2972C .text:0002975C SUB LR, R11, #-var_1000 .text:00029760 STR R2, [LR,#-0xD0] .text:00029764 ADD R3, R2, #0x20 .text:00029768 CMP R3, #0x3E8 .text:0002976C BLT loc_29784 .text:00029770 SUB SP, SP, R3,LSL#2 .text:00029774 ADD R3, SP, R2,LSL#2 .text:00029778 ADD R3, R3, #0x84 .text:0002977C MOV R2, LR .text:00029780 STR R3, [R2,#-0x88] .text:00029784 .text:00029784 loc_29784 ; CODE XREF: vfwprintf+740j .text:00029784 SUB R4, R11, #-var_1000 .text:00029788 LDR R3, [R4,#-0x30] .text:0002978C LDR R0, [R3] .text:00029790 CMP R0, #0x24 .text:00029794 BEQ loc_2B138 .text:00029798 MOV R5, R4 .text:0002979C STR R0, [R5,#-0xE0] .text:000297A0 SUB R2, R0, #0x20 .text:000297A4 CMP R2, #0x5A .text:000297A8 BHI loc_297C0 .text:000297AC LDR R3, =jump_table.177 .text:000297B0 LDR R1, =step1_jumps.179 .text:000297B4 LDR R2, [R3,R2,LSL#2] .text:000297B8 LDR R3, [R1,R2,LSL#2] .text:000297BC B loc_297C4 .text:000297C0 ; --------------------------------------------------------------------------- .text:000297C0 .text:000297C0 loc_297C0 ; CODE XREF: vfwprintf+77Cj .text:000297C0 LDR R3, =loc_2B07C .text:000297C4 .text:000297C4 loc_297C4 ; CODE XREF: vfwprintf+790j .text:000297C4 MOV PC, R3 .text:000297C4 ; --------------------------------------------------------------------------- .text:000297C8 off_297C8 DCD _nl_current_LC_NUMERIC ; DATA XREF: vfwprintf+484r .text:000297CC off_297CC DCD jump_table.177 ; DATA XREF: vfwprintf+4FCr .text:000297CC ; vfwprintf+558r ... .text:000297D0 off_297D0 DCD step0_jumps.178 ; DATA XREF: vfwprintf+500r .text:000297D0 ; vfwprintf+55Cr .text:000297D4 off_297D4 DCD loc_2B07C ; DATA XREF: vfwprintf:loc_2953Cr .text:000297D4 ; vfwprintf:loc_29598r ... .text:000297D8 off_297D8 DCD step1_jumps.179 ; DATA XREF: vfwprintf+6C0r .text:000297D8 ; vfwprintf+784r .text:000297DC ; --------------------------------------------------------------------------- .text:000297DC SUB R3, R11, #-var_1000 .text:000297E0 SUB R3, R3, #0x28 .text:000297E4 SUB R3, R3, #8 .text:000297E8 LDR R2, [R3] .text:000297EC ADD R0, R2, #4 .text:000297F0 STR R0, [R3] .text:000297F4 LDR R2, [R2,#4] .text:000297F8 MOV R1, R0 .text:000297FC CMP R2, #0x2A .text:00029800 BNE loc_298CC .text:00029804 ADD R0, R1, #4 .text:00029808 SUB LR, R11, #-var_1000 .text:0002980C MOV R3, 0xFFFFEFFF .text:00029810 STR R0, [LR,#-0x30] .text:00029814 SUB R3, R3, #0xB .text:00029818 SUB R2, R11, #-var_28 .text:0002981C STR R0, [R2,R3] .text:00029820 LDR R2, [R1,#4] .text:00029824 SUB R1, R2, #0x30 .text:00029828 CMP R1, #9 .text:0002982C BHI loc_298A0 .text:00029830 SUB LR, R11, #-var_1000 .text:00029834 SUB LR, LR, #0x28 .text:00029838 SUB LR, LR, #0xC .text:0002983C ADD R3, R0, #4 .text:00029840 STR R3, [LR] .text:00029844 LDR R2, [R0,#4] .text:00029848 MOV R4, LR .text:0002984C SUB R2, R2, #0x30 .text:00029850 CMP R2, #9 .text:00029854 BHI loc_29888 .text:00029858 .text:00029858 loc_29858 ; CODE XREF: vfwprintf+858j .text:00029858 LDR R0, [LR] .text:0002985C MOV R3, R0 .text:00029860 LDR R12, [R3],#4 .text:00029864 STR R3, [LR] .text:00029868 ADD R2, R1, R1,LSL#2 .text:0002986C MOV R1, R2,LSL#1 .text:00029870 SUB R1, R1, #0x30 .text:00029874 LDR R3, [R0,#4] .text:00029878 ADD R1, R1, R12 .text:0002987C SUB R3, R3, #0x30 .text:00029880 CMP R3, #9 .text:00029884 BLS loc_29858 .text:00029888 .text:00029888 loc_29888 ; CODE XREF: vfwprintf+828j .text:00029888 CMP R1, #0 .text:0002988C BEQ loc_298A0 .text:00029890 LDR R3, [R4] .text:00029894 LDR R2, [R3] .text:00029898 CMP R2, #0x24 .text:0002989C BEQ loc_2B138 .text:000298A0 .text:000298A0 loc_298A0 ; CODE XREF: vfwprintf+800j .text:000298A0 ; vfwprintf+860j .text:000298A0 SUB R3, R11, #-var_1000 .text:000298A4 LDR R4, [R3,#-0x78] .text:000298A8 ADD R4, R4, #4 .text:000298AC STR R4, [R3,#-0x78] .text:000298B0 SUB R4, R4, #4 .text:000298B4 LDR R4, [R4] .text:000298B8 MOV R12, R3 .text:000298BC CMN R4, #1 .text:000298C0 MOVLE R4, 0xFFFFFFFF .text:000298C4 STR R4, [R12,#-0xD4] .text:000298C8 B loc_299AC .text:000298CC ; --------------------------------------------------------------------------- .text:000298CC .text:000298CC loc_298CC ; CODE XREF: vfwprintf+7D4j .text:000298CC SUB R1, R2, #0x30 .text:000298D0 CMP R1, #9 .text:000298D4 BHI loc_299A0 .text:000298D8 ADD R3, R0, #4 .text:000298DC SUB LR, R11, #-var_1000 .text:000298E0 STR R3, [LR,#-0x30] .text:000298E4 LDR R2, [R0,#4] .text:000298E8 SUB R2, R2, #0x30 .text:000298EC CMP R2, #9 .text:000298F0 BHI loc_2992C .text:000298F4 .text:000298F4 loc_298F4 ; CODE XREF: vfwprintf+8FCj .text:000298F4 SUB R2, R11, #-var_1000 .text:000298F8 LDR R0, [R2,#-0x30] .text:000298FC MOV R3, R0 .text:00029900 LDR R12, [R3],#4 .text:00029904 MOV R4, R2 .text:00029908 STR R3, [R4,#-0x30] .text:0002990C ADD R2, R1, R1,LSL#2 .text:00029910 MOV R1, R2,LSL#1 .text:00029914 SUB R1, R1, #0x30 .text:00029918 LDR R3, [R0,#4] .text:0002991C ADD R1, R1, R12 .text:00029920 SUB R3, R3, #0x30 .text:00029924 CMP R3, #9 .text:00029928 BLS loc_298F4 .text:0002992C .text:0002992C loc_2992C ; CODE XREF: vfwprintf+8C4j .text:0002992C SUB R5, R11, #-var_1000 .text:00029930 STR R1, [R5,#-0xD4] .text:00029934 B loc_299AC .text:00029938 ; --------------------------------------------------------------------------- .text:00029938 .text:00029938 loc_29938 ; CODE XREF: vfwprintf+1BA4j .text:00029938 SUB R12, R11, #-var_1000 .text:0002993C LDR LR, [R12,#-0x78] .text:00029940 ADD LR, LR, #4 .text:00029944 STR LR, [R12,#-0x78] .text:00029948 SUB LR, LR, #4 .text:0002994C LDR R2, [LR],#4 .text:00029950 MOV R3, R10 .text:00029954 MOV R4, R3,ASR#31 .text:00029958 STMIA R2, {R3,R4} .text:0002995C B loc_2B090 .text:00029960 ; --------------------------------------------------------------------------- .text:00029960 .text:00029960 loc_29960 ; CODE XREF: vfwprintf+1BB4j .text:00029960 SUB R0, R11, #-var_1000 .text:00029964 LDR R1, [R0,#-0x78] .text:00029968 ADD R1, R1, #4 .text:0002996C STR R1, [R0,#-0x78] .text:00029970 SUB R1, R1, #4 .text:00029974 LDR R3, [R1],#4 .text:00029978 STRB R10, [R3] .text:0002997C B loc_2B090 .text:00029980 ; --------------------------------------------------------------------------- .text:00029980 .text:00029980 loc_29980 ; CODE XREF: vfwprintf+1BC4j .text:00029980 SUB R2, R11, #-var_1000 .text:00029984 LDR R4, [R2,#-0x78] .text:00029988 ADD R4, R4, #4 .text:0002998C STR R4, [R2,#-0x78] .text:00029990 SUB R4, R4, #4 .text:00029994 LDR R3, [R4],#4 .text:00029998 STR R10, [R3] .text:0002999C B loc_2B090 .text:000299A0 ; --------------------------------------------------------------------------- .text:000299A0 .text:000299A0 loc_299A0 ; CODE XREF: vfwprintf+8A8j .text:000299A0 MOV R12, #0 .text:000299A4 SUB R5, R11, #-var_1000 .text:000299A8 STR R12, [R5,#-0xD4] .text:000299AC .text:000299AC loc_299AC ; CODE XREF: vfwprintf+89Cj .text:000299AC ; vfwprintf+908j .text:000299AC SUB LR, R11, #-var_1000 .text:000299B0 SUB R0, LR, #0xD4 .text:000299B4 LDMIA R0, {R0,LR} .text:000299B8 CMP R0, LR .text:000299BC BLE loc_299F0 .text:000299C0 ADD R3, R0, #0x20 .text:000299C4 CMP R3, #0x3E8 .text:000299C8 BLE loc_299F0 .text:000299CC SUB R1, R11, #-var_1000 .text:000299D0 LDR R1, [R1,#-0xE0] .text:000299D4 SUB R4, R11, #-var_1000 .text:000299D8 ADD R3, R1, #0x23 .text:000299DC BIC R3, R3, #3 .text:000299E0 RSB SP, R3, SP .text:000299E4 ADD R2, SP, R1 .text:000299E8 ADD R2, R2, #0x24 .text:000299EC STR R2, [R4,#-0x88] .text:000299F0 .text:000299F0 loc_299F0 ; CODE XREF: vfwprintf+990j .text:000299F0 ; vfwprintf+99Cj .text:000299F0 SUB R5, R11, #-var_1000 .text:000299F4 LDR R3, [R5,#-0x30] .text:000299F8 LDR R3, [R3] .text:000299FC MOV R12, R5 .text:00029A00 STR R3, [R12,#-0xE0] .text:00029A04 SUB R2, R3, #0x20 .text:00029A08 CMP R2, #0x5A .text:00029A0C BHI loc_29A24 .text:00029A10 LDR R3, =jump_table.177 .text:00029A14 LDR R1, =step2_jumps.180 .text:00029A18 LDR R2, [R3,R2,LSL#2] .text:00029A1C LDR R3, [R1,R2,LSL#2] .text:00029A20 B loc_29A28 .text:00029A24 ; --------------------------------------------------------------------------- .text:00029A24 .text:00029A24 loc_29A24 ; CODE XREF: vfwprintf+9E0j .text:00029A24 LDR R3, =loc_2B07C .text:00029A28 .text:00029A28 loc_29A28 ; CODE XREF: vfwprintf+9F4j .text:00029A28 MOV PC, R3 .text:00029A2C ; --------------------------------------------------------------------------- .text:00029A2C MOV R1, #1 .text:00029A30 SUB R0, R11, #-var_1000 .text:00029A34 STR R1, [R0,#-0xC4] .text:00029A38 SUB R3, R11, #-var_1000 .text:00029A3C SUB R3, R3, #0x28 .text:00029A40 SUB R3, R3, #8 .text:00029A44 LDR R1, [R3] .text:00029A48 ADD R2, R1, #4 .text:00029A4C STR R2, [R3] .text:00029A50 LDR R1, [R1,#4] .text:00029A54 MOV R2, R0 .text:00029A58 STR R1, [R2,#-0xE0] .text:00029A5C SUB R2, R1, #0x20 .text:00029A60 CMP R2, #0x5A .text:00029A64 BHI loc_29A7C .text:00029A68 LDR R3, =jump_table.177 .text:00029A6C LDR R1, =step3a_jumps.181 .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+A38j .text:00029A7C LDR R3, =loc_2B07C .text:00029A80 .text:00029A80 loc_29A80 ; CODE XREF: vfwprintf+A4Cj .text:00029A80 MOV PC, R3 .text:00029A84 ; --------------------------------------------------------------------------- .text:00029A84 MOV R5, #0 .text:00029A88 SUB R4, R11, #-var_1000 .text:00029A8C STR R5, [R4,#-0xC4] .text:00029A90 MOV LR, #1 .text:00029A94 MOV R12, R4 .text:00029A98 STR LR, [R12,#-0xCC] .text:00029A9C SUB R3, R11, #-var_1000 .text:00029AA0 SUB R3, R3, #0x28 .text:00029AA4 SUB R3, R3, #8 .text:00029AA8 LDR R1, [R3] .text:00029AAC ADD R2, R1, #4 .text:00029AB0 STR R2, [R3] .text:00029AB4 LDR R1, [R1,#4] .text:00029AB8 MOV R0, R4 .text:00029ABC STR R1, [R0,#-0xE0] .text:00029AC0 SUB R2, R1, #0x20 .text:00029AC4 CMP R2, #0x5A .text:00029AC8 BHI loc_29AE0 .text:00029ACC LDR R3, =jump_table.177 .text:00029AD0 LDR R1, =step4_jumps.183 .text:00029AD4 LDR R2, [R3,R2,LSL#2] .text:00029AD8 LDR R3, [R1,R2,LSL#2] .text:00029ADC B loc_29AE4 .text:00029AE0 ; --------------------------------------------------------------------------- .text:00029AE0 .text:00029AE0 loc_29AE0 ; CODE XREF: vfwprintf+A9Cj .text:00029AE0 LDR R3, =loc_2B07C .text:00029AE4 .text:00029AE4 loc_29AE4 ; CODE XREF: vfwprintf+AB0j .text:00029AE4 MOV PC, R3 .text:00029AE8 ; --------------------------------------------------------------------------- .text:00029AE8 MOV R3, #1 .text:00029AEC SUB R2, R11, #-var_1000 .text:00029AF0 STR R3, [R2,#-0xC8] .text:00029AF4 SUB R3, R11, #-var_1000 .text:00029AF8 SUB R3, R3, #0x28 .text:00029AFC SUB R3, R3, #8 .text:00029B00 LDR R1, [R3] .text:00029B04 ADD R2, R1, #4 .text:00029B08 STR R2, [R3] .text:00029B0C LDR R1, [R1,#4] .text:00029B10 SUB R4, R11, #-var_1000 .text:00029B14 STR R1, [R4,#-0xE0] .text:00029B18 SUB R2, R1, #0x20 .text:00029B1C CMP R2, #0x5A .text:00029B20 BHI loc_29B38 .text:00029B24 LDR R3, =jump_table.177 .text:00029B28 LDR R1, =step3b_jumps.182 .text:00029B2C LDR R2, [R3,R2,LSL#2] .text:00029B30 LDR R3, [R1,R2,LSL#2] .text:00029B34 B loc_29B3C .text:00029B38 ; --------------------------------------------------------------------------- .text:00029B38 .text:00029B38 loc_29B38 ; CODE XREF: vfwprintf+AF4j .text:00029B38 LDR R3, =loc_2B07C .text:00029B3C .text:00029B3C loc_29B3C ; CODE XREF: vfwprintf+B08j .text:00029B3C MOV PC, R3 .text:00029B40 ; --------------------------------------------------------------------------- .text:00029B40 MOV LR, #1 .text:00029B44 SUB R12, R11, #-var_1000 .text:00029B48 STR LR, [R12,#-0xC8] .text:00029B4C MOV R0, R12 .text:00029B50 STR LR, [R0,#-0xC0] .text:00029B54 SUB R3, R11, #-var_1000 .text:00029B58 SUB R3, R3, #0x28 .text:00029B5C SUB R3, R3, #8 .text:00029B60 LDR R1, [R3] .text:00029B64 ADD R2, R1, #4 .text:00029B68 STR R2, [R3] .text:00029B6C LDR R1, [R1,#4] .text:00029B70 MOV R2, R0 .text:00029B74 STR R1, [R2,#-0xE0] .text:00029B78 SUB R2, R1, #0x20 .text:00029B7C CMP R2, #0x5A .text:00029B80 BHI loc_29B98 .text:00029B84 LDR R3, =jump_table.177 .text:00029B88 LDR R1, =step4_jumps.183 .text:00029B8C LDR R2, [R3,R2,LSL#2] .text:00029B90 LDR R3, [R1,R2,LSL#2] .text:00029B94 B loc_29B9C .text:00029B98 ; --------------------------------------------------------------------------- .text:00029B98 .text:00029B98 loc_29B98 ; CODE XREF: vfwprintf+B54j .text:00029B98 LDR R3, =loc_2B07C .text:00029B9C .text:00029B9C loc_29B9C ; CODE XREF: vfwprintf+B68j .text:00029B9C MOV PC, R3 .text:00029BA0 ; --------------------------------------------------------------------------- .text:00029BA0 MOV R5, #0 .text:00029BA4 SUB R4, R11, #-var_1000 .text:00029BA8 STR R5, [R4,#-0xC8] .text:00029BAC MOV R12, R4 .text:00029BB0 STR R5, [R12,#-0xC0] .text:00029BB4 SUB R3, R11, #-var_1000 .text:00029BB8 SUB R3, R3, #0x28 .text:00029BBC SUB R3, R3, #8 .text:00029BC0 LDR R1, [R3] .text:00029BC4 ADD R2, R1, #4 .text:00029BC8 STR R2, [R3] .text:00029BCC LDR R1, [R1,#4] .text:00029BD0 MOV LR, R4 .text:00029BD4 STR R1, [LR,#-0xE0] .text:00029BD8 SUB R2, R1, #0x20 .text:00029BDC CMP R2, #0x5A .text:00029BE0 BHI loc_29BF8 .text:00029BE4 LDR R3, =jump_table.177 .text:00029BE8 LDR R1, =step4_jumps.183 .text:00029BEC LDR R2, [R3,R2,LSL#2] .text:00029BF0 LDR R3, [R1,R2,LSL#2] .text:00029BF4 B loc_29BFC .text:00029BF8 ; --------------------------------------------------------------------------- .text:00029BF8 .text:00029BF8 loc_29BF8 ; CODE XREF: vfwprintf+BB4j .text:00029BF8 LDR R3, =loc_2B07C .text:00029BFC .text:00029BFC loc_29BFC ; CODE XREF: vfwprintf+BC8j .text:00029BFC MOV PC, R3 .text:00029C00 ; --------------------------------------------------------------------------- .text:00029C00 MOV R2, #0 .text:00029C04 SUB R1, R11, #-var_1000 .text:00029C08 STR R2, [R1,#-0xC8] .text:00029C0C MOV R3, R1 .text:00029C10 STR R2, [R3,#-0xC0] .text:00029C14 SUB R3, R11, #-var_1000 .text:00029C18 SUB R3, R3, #0x28 .text:00029C1C SUB R3, R3, #8 .text:00029C20 LDR R1, [R3] .text:00029C24 ADD R2, R1, #4 .text:00029C28 STR R2, [R3] .text:00029C2C LDR R1, [R1,#4] .text:00029C30 SUB R4, R11, #-var_1000 .text:00029C34 STR R1, [R4,#-0xE0] .text:00029C38 SUB R2, R1, #0x20 .text:00029C3C CMP R2, #0x5A .text:00029C40 BHI loc_29C58 .text:00029C44 LDR R3, =jump_table.177 .text:00029C48 LDR R1, =step4_jumps.183 .text:00029C4C LDR R2, [R3,R2,LSL#2] .text:00029C50 LDR R3, [R1,R2,LSL#2] .text:00029C54 B loc_29C5C .text:00029C58 ; --------------------------------------------------------------------------- .text:00029C58 .text:00029C58 loc_29C58 ; CODE XREF: vfwprintf+C14j .text:00029C58 LDR R3, =loc_2B07C .text:00029C5C .text:00029C5C loc_29C5C ; CODE XREF: vfwprintf+C28j .text:00029C5C MOV PC, R3 .text:00029C60 ; --------------------------------------------------------------------------- .text:00029C60 MOV LR, #1 .text:00029C64 SUB R12, R11, #-var_1000 .text:00029C68 STR LR, [R12,#-0xC8] .text:00029C6C MOV R0, R12 .text:00029C70 STR LR, [R0,#-0xC0] .text:00029C74 SUB R3, R11, #-var_1000 .text:00029C78 SUB R3, R3, #0x28 .text:00029C7C SUB R3, R3, #8 .text:00029C80 LDR R1, [R3] .text:00029C84 ADD R2, R1, #4 .text:00029C88 STR R2, [R3] .text:00029C8C LDR R1, [R1,#4] .text:00029C90 MOV R2, R0 .text:00029C94 STR R1, [R2,#-0xE0] .text:00029C98 SUB R2, R1, #0x20 .text:00029C9C CMP R2, #0x5A .text:00029CA0 BHI loc_29CB8 .text:00029CA4 LDR R3, =jump_table.177 .text:00029CA8 LDR R1, =step4_jumps.183 .text:00029CAC LDR R2, [R3,R2,LSL#2] .text:00029CB0 LDR R3, [R1,R2,LSL#2] .text:00029CB4 B loc_29CBC .text:00029CB8 ; --------------------------------------------------------------------------- .text:00029CB8 .text:00029CB8 loc_29CB8 ; CODE XREF: vfwprintf+C74j .text:00029CB8 LDR R3, =loc_2B07C .text:00029CBC .text:00029CBC loc_29CBC ; CODE XREF: vfwprintf+C88j .text:00029CBC MOV PC, R3 .text:00029CC0 ; --------------------------------------------------------------------------- .text:00029CC0 LDR R1, [R9,#0x58] .text:00029CC4 ADD R2, R1, #0x10 .text:00029CC8 LDMIA R2, {R2,R3} .text:00029CCC CMP R2, R3 .text:00029CD0 BCC loc_29CEC .text:00029CD4 MOV R0, R9 .text:00029CD8 MOV R1, #0x25 .text:00029CDC BL __woverflow .text:00029CE0 CMN R0, #1 .text:00029CE4 BEQ loc_2AF38 .text:00029CE8 B loc_29CF8 .text:00029CEC ; --------------------------------------------------------------------------- .text:00029CEC .text:00029CEC loc_29CEC ; CODE XREF: vfwprintf+CA4j .text:00029CEC MOV R3, #0x25 .text:00029CF0 STR R3, [R2],#4 .text:00029CF4 STR R2, [R1,#0x10] .text:00029CF8 .text:00029CF8 loc_29CF8 ; CODE XREF: vfwprintf+CBCj .text:00029CF8 ADD R10, R10, #1 .text:00029CFC B loc_2B090 .text:00029D00 ; --------------------------------------------------------------------------- .text:00029D00 MOV R5, #0xA .text:00029D04 SUB R4, R11, #-var_1000 .text:00029D08 STR R5, [R4,#-0xA8] .text:00029D0C MOV R12, R4 .text:00029D10 LDR R12, [R12,#-0xC0] .text:00029D14 CMP R12, #0 .text:00029D18 BEQ loc_29DA0 .text:00029D1C MOV LR, R4 .text:00029D20 LDR R0, [LR,#-0x78] .text:00029D24 ADD R0, R0, #8 .text:00029D28 STR R0, [LR,#-0x78] .text:00029D2C MOV R2, #0 .text:00029D30 SUB R0, R0, #8 .text:00029D34 LDMIA R0!, {R7,R8} .text:00029D38 MOV R1, R4 .text:00029D3C STR R2, [R1,#-0x9C] .text:00029D40 CMP R8, R2 .text:00029D44 MOVLT R4, #1 .text:00029D48 SUBLT R3, R11, #-var_1000 .text:00029D4C STRLT R4, [R3,#-0x9C] .text:00029D50 RSBS R3, R7, #0 .text:00029D54 RSC R4, R8, #0 .text:00029D58 SUB R5, R11, #-var_1000 .text:00029D5C SUB R0, R11, #-var_1080 .text:00029D60 LDR R5, [R5,#-0x9C] .text:00029D64 SUB R0, R0, #0x20 .text:00029D68 EOR R1, R5, #1 .text:00029D6C MOV R2, #0 .text:00029D70 RSBS R5, R1, #0 .text:00029D74 RSC R6, R2, #0 .text:00029D78 MOV R2, R6 .text:00029D7C MOV R1, R5 .text:00029D80 AND R1, R1, R7 .text:00029D84 AND R2, R2, R8 .text:00029D88 BIC R3, R3, R5 .text:00029D8C BIC R4, R4, R6 .text:00029D90 ORR R1, R1, R3 .text:00029D94 ORR R2, R2, R4 .text:00029D98 STMDA R0, {R1,R2} .text:00029D9C B loc_29E70 .text:00029DA0 ; --------------------------------------------------------------------------- .text:00029DA0 .text:00029DA0 loc_29DA0 ; CODE XREF: vfwprintf+CECj .text:00029DA0 SUB R1, R11, #-var_1000 .text:00029DA4 LDR R2, [R1,#-0x78] .text:00029DA8 ADD R2, R2, #4 .text:00029DAC STR R2, [R1,#-0x78] .text:00029DB0 MOV R4, R1 .text:00029DB4 SUB R2, R2, #4 .text:00029DB8 LDR R3, [R2],#4 .text:00029DBC MOV R12, R1 .text:00029DC0 MOV R5, R3,LSR#31 .text:00029DC4 STR R5, [R4,#-0x9C] .text:00029DC8 CMP R3, #0 .text:00029DCC RSBLT R3, R3, #0 .text:00029DD0 STR R3, [R12,#-0xA4] .text:00029DD4 B loc_2A058 .text:00029DD4 ; --------------------------------------------------------------------------- .text:00029DD8 off_29DD8 DCD jump_table.177 ; DATA XREF: vfwprintf+9E4r .text:00029DD8 ; vfwprintf+A3Cr ... .text:00029DDC off_29DDC DCD step2_jumps.180 ; DATA XREF: vfwprintf+9E8r .text:00029DE0 off_29DE0 DCD loc_2B07C ; DATA XREF: vfwprintf:loc_29A24r .text:00029DE0 ; vfwprintf:loc_29A7Cr ... .text:00029DE4 off_29DE4 DCD step3a_jumps.181 ; DATA XREF: vfwprintf+A40r .text:00029DE8 off_29DE8 DCD step4_jumps.183 ; DATA XREF: vfwprintf+AA4r .text:00029DE8 ; vfwprintf+B5Cr ... .text:00029DEC off_29DEC DCD step3b_jumps.182 ; DATA XREF: vfwprintf+AFCr .text:00029DF0 ; --------------------------------------------------------------------------- .text:00029DF0 MOV R0, #0xA .text:00029DF4 SUB LR, R11, #-var_1000 .text:00029DF8 STR R0, [LR,#-0xA8] .text:00029DFC B loc_29E1C .text:00029E00 ; --------------------------------------------------------------------------- .text:00029E00 MOV R2, #8 .text:00029E04 SUB R1, R11, #-var_1000 .text:00029E08 STR R2, [R1,#-0xA8] .text:00029E0C B loc_29E1C .text:00029E10 ; --------------------------------------------------------------------------- .text:00029E10 MOV R4, #0x10 .text:00029E14 SUB R3, R11, #-var_1000 .text:00029E18 STR R4, [R3,#-0xA8] .text:00029E1C .text:00029E1C loc_29E1C ; CODE XREF: vfwprintf+DD0j .text:00029E1C ; vfwprintf+DE0j .text:00029E1C MOV R12, #0 .text:00029E20 SUB R5, R11, #-var_1000 .text:00029E24 STR R12, [R5,#-0x9C] .text:00029E28 MOV LR, R5 .text:00029E2C STR R12, [LR,#-0xB8] .text:00029E30 MOV R0, R5 .text:00029E34 LDR R1, [R0,#-0x9C] .text:00029E38 STR R1, [R0,#-0xB0] .text:00029E3C MOV R2, R0 .text:00029E40 LDR R2, [R2,#-0xC0] .text:00029E44 CMP R2, R12 .text:00029E48 BEQ loc_29FCC .text:00029E4C MOV R3, R0 .text:00029E50 LDR R4, [R3,#-0x78] .text:00029E54 ADD R4, R4, #8 .text:00029E58 STR R4, [R3,#-0x78] .text:00029E5C SUB R5, R11, #-var_1080 .text:00029E60 SUB R4, R4, #8 .text:00029E64 LDMIA R4, {R3,R4} .text:00029E68 SUB R5, R5, #0x20 .text:00029E6C STMDA R5, {R3,R4} .text:00029E70 .text:00029E70 loc_29E70 ; CODE XREF: vfwprintf+D70j .text:00029E70 SUB R5, R11, #-var_1000 .text:00029E74 LDR R5, [R5,#-0xD4] .text:00029E78 CMP R5, #0 .text:00029E7C MOVLT LR, #1 .text:00029E80 SUBLT R12, R11, #-var_1000 .text:00029E84 STRLT LR, [R12,#-0xD4] .text:00029E88 MOVGE R1, #0x20 .text:00029E8C SUBGE R0, R11, #-var_1000 .text:00029E90 STRGE R1, [R0,#-0xDC] .text:00029E94 SUB R2, R11, #-var_1000 .text:00029E98 LDR R2, [R2,#-0xD4] .text:00029E9C CMP R2, #0 .text:00029EA0 BNE loc_29EFC .text:00029EA4 SUB R3, R11, #-var_1000 .text:00029EA8 LDR R4, [R3,#-0xA4] .text:00029EAC LDR R3, [R3,#-0xA0] .text:00029EB0 ORRS R3, R4, R3 .text:00029EB4 BNE loc_29EFC .text:00029EB8 SUB R4, R11, #-var_1000 .text:00029EBC LDR R7, [R4,#-0x88] .text:00029EC0 MOV R5, R4 .text:00029EC4 LDR R5, [R5,#-0xA8] .text:00029EC8 MOV R12, R4 .text:00029ECC LDR R12, [R12,#-0xAC] .text:00029ED0 CMP R5, #8 .text:00029ED4 MOVNE R3, #0 .text:00029ED8 MOVEQ R3, #1 .text:00029EDC TST R3, R12 .text:00029EE0 BEQ loc_29FA8 .text:00029EE4 MOV LR, R4 .text:00029EE8 LDR LR, [LR,#-0x88] .text:00029EEC MOV R3, #0x30 .text:00029EF0 SUB R7, LR, #4 .text:00029EF4 STR R3, [LR,#-4] .text:00029EF8 B loc_29FA8 .text:00029EFC ; --------------------------------------------------------------------------- .text:00029EFC .text:00029EFC loc_29EFC ; CODE XREF: vfwprintf+E74j .text:00029EFC ; vfwprintf+E88j .text:00029EFC SUB R1, R11, #-var_1000 .text:00029F00 LDR R1, [R1,#-0xE0] .text:00029F04 CMP R1, #0x58 .text:00029F08 MOVNE R3, #0 .text:00029F0C MOVEQ R3, #1 .text:00029F10 STR R3, [SP,#0x1154+var_1154] .text:00029F14 SUB R2, R11, #-var_1080 .text:00029F18 SUB R2, R2, #0x20 .text:00029F1C LDMDA R2, {R0,R1} .text:00029F20 SUB R3, R11, #-var_1000 .text:00029F24 LDR R2, [R3,#-0x88] .text:00029F28 MOV R4, R3 .text:00029F2C LDR R3, [R4,#-0xA8] .text:00029F30 BL _itowa .text:00029F34 SUB R5, R11, #-var_1000 .text:00029F38 LDR R12, [R5,#-0xBC] .text:00029F3C LDR R5, [R5,#-0x80] .text:00029F40 MOV R7, R0 .text:00029F44 CMP R12, #0 .text:00029F48 CMPNE R5, #0 .text:00029F4C BEQ loc_29F70 .text:00029F50 SUB R12, R11, #-var_1000 .text:00029F54 LDR R1, [R12,#-0x88] .text:00029F58 MOV LR, R12 .text:00029F5C LDR R2, [LR,#-0x80] .text:00029F60 MOV R4, R12 .text:00029F64 LDR R3, [R4,#-0x7C] .text:00029F68 BL group_number_1 .text:00029F6C MOV R7, R0 .text:00029F70 .text:00029F70 loc_29F70 ; CODE XREF: vfwprintf+F20j .text:00029F70 SUB R5, R11, #-var_1000 .text:00029F74 LDR R5, [R5,#-0xA8] .text:00029F78 SUB R12, R11, #-var_1000 .text:00029F7C LDR R12, [R12,#-0xD8] .text:00029F80 CMP R5, #0xA .text:00029F84 MOVNE R3, #0 .text:00029F88 MOVEQ R3, #1 .text:00029F8C TST R12, R3 .text:00029F90 BEQ loc_29FA8 .text:00029F94 MOV R0, R7 .text:00029F98 SUB LR, R11, #-var_1000 .text:00029F9C LDR R1, [LR,#-0x88] .text:00029FA0 BL _i18n_number_rewrite_0 .text:00029FA4 MOV R7, R0 .text:00029FA8 .text:00029FA8 loc_29FA8 ; CODE XREF: vfwprintf+EB4j .text:00029FA8 ; vfwprintf+ECCj ... .text:00029FA8 SUB R0, R11, #-var_1000 .text:00029FAC LDR R1, [R0,#-0xA4] .text:00029FB0 LDR R0, [R0,#-0xA0] .text:00029FB4 ORRS R0, R1, R0 .text:00029FB8 MOVEQ R2, #0 .text:00029FBC MOVNE R2, #1 .text:00029FC0 SUB R1, R11, #-var_1000 .text:00029FC4 STR R2, [R1,#-0xA4] .text:00029FC8 B loc_2A244 .text:00029FCC ; --------------------------------------------------------------------------- .text:00029FCC .text:00029FCC loc_29FCC ; CODE XREF: vfwprintf+E1Cj .text:00029FCC SUB R3, R11, #-var_1000 .text:00029FD0 LDR R3, [R3,#-0xCC] .text:00029FD4 CMP R3, #0 .text:00029FD8 BEQ loc_2A000 .text:00029FDC SUB R4, R11, #-var_1000 .text:00029FE0 LDR R4, [R4,#-0x78] .text:00029FE4 ADD R5, R4, #4 .text:00029FE8 SUB R4, R11, #-var_1000 .text:00029FEC STR R5, [R4,#-0x78] .text:00029FF0 LDRB R12, [R5,#-4] .text:00029FF4 MOV R5, R4 .text:00029FF8 STR R12, [R5,#-0xA4] .text:00029FFC B loc_2A058 .text:0002A000 ; --------------------------------------------------------------------------- .text:0002A000 .text:0002A000 loc_2A000 ; CODE XREF: vfwprintf+FACj .text:0002A000 SUB LR, R11, #-var_1000 .text:0002A004 LDR LR, [LR,#-0xC4] .text:0002A008 CMP LR, #0 .text:0002A00C BNE loc_2A030 .text:0002A010 SUB R0, R11, #-var_1000 .text:0002A014 LDR R1, [R0,#-0x78] .text:0002A018 ADD R1, R1, #4 .text:0002A01C STR R1, [R0,#-0x78] .text:0002A020 SUB R1, R1, #4 .text:0002A024 LDR R1, [R1] .text:0002A028 STR R1, [R0,#-0xA4] .text:0002A02C B loc_2A058 .text:0002A030 ; --------------------------------------------------------------------------- .text:0002A030 .text:0002A030 loc_2A030 ; CODE XREF: vfwprintf+FE0j .text:0002A030 SUB R2, R11, #-var_1000 .text:0002A034 LDR R4, [R2,#-0x78] .text:0002A038 ADD R4, R4, #4 .text:0002A03C STR R4, [R2,#-0x78] .text:0002A040 SUB R4, R4, #4 .text:0002A044 LDR R3, [R4],#4 .text:0002A048 MOV R5, R2 .text:0002A04C MOV R3, R3,LSL#16 .text:0002A050 MOV R3, R3,LSR#16 .text:0002A054 STR R3, [R5,#-0xA4] .text:0002A058 .text:0002A058 loc_2A058 ; CODE XREF: vfwprintf+DA8j .text:0002A058 ; vfwprintf+FD0j ... .text:0002A058 SUB R12, R11, #-var_1000 .text:0002A05C LDR R12, [R12,#-0xD4] .text:0002A060 CMP R12, #0 .text:0002A064 MOVLT R0, #1 .text:0002A068 SUBLT LR, R11, #-var_1000 .text:0002A06C STRLT R0, [LR,#-0xD4] .text:0002A070 MOVGE R2, #0x20 .text:0002A074 SUBGE R1, R11, #-var_1000 .text:0002A078 STRGE R2, [R1,#-0xDC] .text:0002A07C SUB R3, R11, #-var_1000 .text:0002A080 LDR R3, [R3,#-0xD4] .text:0002A084 CMP R3, #0 .text:0002A088 BNE loc_2A0E0 .text:0002A08C SUB R4, R11, #-var_1000 .text:0002A090 LDR R4, [R4,#-0xA4] .text:0002A094 CMP R4, #0 .text:0002A098 BNE loc_2A0E0 .text:0002A09C SUB R5, R11, #-var_1000 .text:0002A0A0 LDR R7, [R5,#-0x88] .text:0002A0A4 MOV R12, R5 .text:0002A0A8 LDR R12, [R12,#-0xA8] .text:0002A0AC MOV LR, R5 .text:0002A0B0 LDR LR, [LR,#-0xAC] .text:0002A0B4 CMP R12, #8 .text:0002A0B8 MOVNE R3, #0 .text:0002A0BC MOVEQ R3, #1 .text:0002A0C0 TST R3, LR .text:0002A0C4 BEQ loc_2A244 .text:0002A0C8 MOV R0, R5 .text:0002A0CC LDR R0, [R0,#-0x88] .text:0002A0D0 MOV R3, #0x30 .text:0002A0D4 SUB R7, R0, #4 .text:0002A0D8 STR R3, [R0,#-4] .text:0002A0DC B loc_2A244 .text:0002A0E0 ; --------------------------------------------------------------------------- .text:0002A0E0 .text:0002A0E0 loc_2A0E0 ; CODE XREF: vfwprintf+105Cj .text:0002A0E0 ; vfwprintf+106Cj .text:0002A0E0 LDR R7, =_itowa_lower_digits .text:0002A0E4 SUB R2, R11, #-var_1000 .text:0002A0E8 LDR R4, [R2,#-0xA4] .text:0002A0EC LDR R3, =_itowa_upper_digits .text:0002A0F0 MOV R12, R2 .text:0002A0F4 LDR R5, [R12,#-0x88] .text:0002A0F8 MOV LR, R2 .text:0002A0FC LDR LR, [LR,#-0xE0] .text:0002A100 MOV R0, R2 .text:0002A104 LDR R0, [R0,#-0xA8] .text:0002A108 CMP LR, #0x58 .text:0002A10C MOVEQ R7, R3 .text:0002A110 CMP R0, #0xA .text:0002A114 BEQ loc_2A13C .text:0002A118 BHI loc_2A128 .text:0002A11C CMP R0, #8 .text:0002A120 BEQ loc_2A180 .text:0002A124 B loc_2A198 .text:0002A128 ; --------------------------------------------------------------------------- .text:0002A128 .text:0002A128 loc_2A128 ; CODE XREF: vfwprintf+10ECj .text:0002A128 SUB R2, R11, #-var_1000 .text:0002A12C LDR R2, [R2,#-0xA8] .text:0002A130 CMP R2, #0x10 .text:0002A134 BEQ loc_2A168 .text:0002A138 B loc_2A198 .text:0002A13C ; --------------------------------------------------------------------------- .text:0002A13C .text:0002A13C loc_2A13C ; CODE XREF: vfwprintf+10E8j .text:0002A13C ; vfwprintf+1134j .text:0002A13C MOV R0, R4 .text:0002A140 MOV R1, #0xA .text:0002A144 BL __umodsi3 .text:0002A148 LDR R3, [R7,R0,LSL#2] .text:0002A14C STR R3, [R5,#-4]! .text:0002A150 MOV R0, R4 .text:0002A154 MOV R1, #0xA .text:0002A158 BL __udivsi3 .text:0002A15C SUBS R4, R0, #0 .text:0002A160 BNE loc_2A13C .text:0002A164 B loc_2A1CC .text:0002A168 ; --------------------------------------------------------------------------- .text:0002A168 .text:0002A168 loc_2A168 ; CODE XREF: vfwprintf+1108j .text:0002A168 ; vfwprintf+114Cj .text:0002A168 AND R3, R4, #0xF .text:0002A16C LDR R2, [R7,R3,LSL#2] .text:0002A170 MOVS R4, R4,LSR#4 .text:0002A174 STR R2, [R5,#-4]! .text:0002A178 BNE loc_2A168 .text:0002A17C B loc_2A1CC .text:0002A180 ; --------------------------------------------------------------------------- .text:0002A180 .text:0002A180 loc_2A180 ; CODE XREF: vfwprintf+10F4j .text:0002A180 ; vfwprintf+1164j .text:0002A180 AND R3, R4, #7 .text:0002A184 LDR R2, [R7,R3,LSL#2] .text:0002A188 MOVS R4, R4,LSR#3 .text:0002A18C STR R2, [R5,#-4]! .text:0002A190 BNE loc_2A180 .text:0002A194 B loc_2A1CC .text:0002A198 ; --------------------------------------------------------------------------- .text:0002A198 .text:0002A198 loc_2A198 ; CODE XREF: vfwprintf+10F8j .text:0002A198 ; vfwprintf+110Cj ... .text:0002A198 MOV R0, R4 .text:0002A19C SUB R3, R11, #-var_1000 .text:0002A1A0 LDR R1, [R3,#-0xA8] .text:0002A1A4 BL __umodsi3 .text:0002A1A8 LDR R3, [R7,R0,LSL#2] .text:0002A1AC STR R3, [R5,#-4]! .text:0002A1B0 MOV R0, R4 .text:0002A1B4 SUB R4, R11, #-var_1000 .text:0002A1B8 LDR R1, [R4,#-0xA8] .text:0002A1BC BL __udivsi3 .text:0002A1C0 MOV R4, R0 .text:0002A1C4 CMP R4, #0 .text:0002A1C8 BNE loc_2A198 .text:0002A1CC .text:0002A1CC loc_2A1CC ; CODE XREF: vfwprintf+1138j .text:0002A1CC ; vfwprintf+1150j ... .text:0002A1CC MOV R7, R5 .text:0002A1D0 SUB R5, R11, #-var_1000 .text:0002A1D4 LDR R12, [R5,#-0xBC] .text:0002A1D8 LDR R5, [R5,#-0x80] .text:0002A1DC CMP R12, #0 .text:0002A1E0 CMPNE R5, #0 .text:0002A1E4 BEQ loc_2A20C .text:0002A1E8 MOV R0, R7 .text:0002A1EC SUB R12, R11, #-var_1000 .text:0002A1F0 LDR R1, [R12,#-0x88] .text:0002A1F4 MOV LR, R12 .text:0002A1F8 LDR R2, [LR,#-0x80] .text:0002A1FC MOV R4, R12 .text:0002A200 LDR R3, [R4,#-0x7C] .text:0002A204 BL group_number_1 .text:0002A208 MOV R7, R0 .text:0002A20C .text:0002A20C loc_2A20C ; CODE XREF: vfwprintf+11B8j .text:0002A20C SUB R5, R11, #-var_1000 .text:0002A210 LDR R5, [R5,#-0xA8] .text:0002A214 SUB R12, R11, #-var_1000 .text:0002A218 LDR R12, [R12,#-0xD8] .text:0002A21C CMP R5, #0xA .text:0002A220 MOVNE R3, #0 .text:0002A224 MOVEQ R3, #1 .text:0002A228 TST R12, R3 .text:0002A22C BEQ loc_2A244 .text:0002A230 MOV R0, R7 .text:0002A234 SUB LR, R11, #-var_1000 .text:0002A238 LDR R1, [LR,#-0x88] .text:0002A23C BL _i18n_number_rewrite_0 .text:0002A240 MOV R7, R0 .text:0002A244 .text:0002A244 loc_2A244 ; CODE XREF: vfwprintf+F9Cj .text:0002A244 ; vfwprintf+1098j ... .text:0002A244 SUB R0, R11, #-var_1000 .text:0002A248 LDR R0, [R0,#-0x88] .text:0002A24C SUB R1, R11, #-var_1000 .text:0002A250 LDR R1, [R1,#-0xD4] .text:0002A254 RSB R3, R7, R0 .text:0002A258 CMP R1, R3,ASR#2 .text:0002A25C BGT loc_2A28C .text:0002A260 SUB R2, R11, #-var_1000 .text:0002A264 LDR R3, [R2,#-0xAC] .text:0002A268 LDR R2, [R2,#-0xA4] .text:0002A26C CMP R3, #0 .text:0002A270 CMPNE R2, #0 .text:0002A274 BEQ loc_2A28C .text:0002A278 SUB R3, R11, #-var_1000 .text:0002A27C LDR R3, [R3,#-0xA8] .text:0002A280 CMP R3, #8 .text:0002A284 MOVEQ R3, #0x30 .text:0002A288 STREQ R3, [R7,#-4]! .text:0002A28C .text:0002A28C loc_2A28C ; CODE XREF: vfwprintf+1230j .text:0002A28C ; vfwprintf+1248j .text:0002A28C SUB R4, R11, #-var_1000 .text:0002A290 SUB R5, R11, #-var_1000 .text:0002A294 LDR R4, [R4,#-0x88] .text:0002A298 SUB LR, R11, #-var_1000 .text:0002A29C LDR R5, [R5,#-0xD4] .text:0002A2A0 RSB R3, R7, R4 .text:0002A2A4 MOV R2, R3,ASR#2 .text:0002A2A8 RSB R12, R2, R5 .text:0002A2AC CMP R12, #0 .text:0002A2B0 MOVLT R12, #0 .text:0002A2B4 STR R12, [LR,#-0xD4] .text:0002A2B8 MOV R0, LR .text:0002A2BC LDR R0, [R0,#-0xB4] .text:0002A2C0 MOV R4, R3 .text:0002A2C4 CMP R0, #0 .text:0002A2C8 BNE loc_2A578 .text:0002A2CC ADD R3, R2, R12 .text:0002A2D0 MOV R2, LR .text:0002A2D4 LDR R2, [R2,#-0xD0] .text:0002A2D8 RSB R3, R3, R2 .text:0002A2DC MOV R2, LR .text:0002A2E0 STR R3, [R2,#-0xD0] .text:0002A2E4 MOV R3, R2 .text:0002A2E8 LDR R5, [R3,#-0xAC] .text:0002A2EC LDR R3, [R3,#-0xA4] .text:0002A2F0 CMP R5, #0 .text:0002A2F4 CMPNE R3, #0 .text:0002A2F8 BEQ loc_2A320 .text:0002A2FC MOV R5, R2 .text:0002A300 LDR R5, [R5,#-0xD0] .text:0002A304 MOV R12, R2 .text:0002A308 LDR R12, [R12,#-0xA8] .text:0002A30C SUB R3, R5, #2 .text:0002A310 CMP R12, #0x10 .text:0002A314 MOVEQ R5, R3 .text:0002A318 MOV R12, R2 .text:0002A31C STR R5, [R12,#-0xD0] .text:0002A320 .text:0002A320 loc_2A320 ; CODE XREF: vfwprintf+12CCj .text:0002A320 SUB LR, R11, #-var_1000 .text:0002A324 LDR R0, [LR,#-0x9C] .text:0002A328 LDR LR, [LR,#-0xB8] .text:0002A32C ORRS LR, R0, LR .text:0002A330 BNE loc_2A344 .text:0002A334 SUB R0, R11, #-var_1000 .text:0002A338 LDR R0, [R0,#-0xB0] .text:0002A33C CMP R0, #0 .text:0002A340 BEQ loc_2A358 .text:0002A344 .text:0002A344 loc_2A344 ; CODE XREF: vfwprintf+1304j .text:0002A344 SUB R1, R11, #-var_1000 .text:0002A348 LDR R1, [R1,#-0xD0] .text:0002A34C SUB R2, R1, #1 .text:0002A350 SUB R1, R11, #-var_1000 .text:0002A354 STR R2, [R1,#-0xD0] .text:0002A358 .text:0002A358 loc_2A358 ; CODE XREF: vfwprintf+1314j .text:0002A358 SUB R2, R11, #-var_1000 .text:0002A35C LDR R2, [R2,#-0xDC] .text:0002A360 CMP R2, #0x20 .text:0002A364 BNE loc_2A3A0 .text:0002A368 SUB R3, R11, #-var_1000 .text:0002A36C LDR R3, [R3,#-0xD0] .text:0002A370 CMP R3, #0 .text:0002A374 BLE loc_2A394 .text:0002A378 MOV R0, R9 .text:0002A37C SUB R5, R11, #-var_1000 .text:0002A380 LDR R1, [R5,#-0xDC] .text:0002A384 MOV R12, R5 .text:0002A388 LDR R2, [R12,#-0xD0] .text:0002A38C BL _IO_wpadn .text:0002A390 ADD R10, R10, R0 .text:0002A394 .text:0002A394 loc_2A394 ; CODE XREF: vfwprintf+1348j .text:0002A394 MOV R0, #0 .text:0002A398 SUB LR, R11, #-var_1000 .text:0002A39C STR R0, [LR,#-0xD0] .text:0002A3A0 .text:0002A3A0 loc_2A3A0 ; CODE XREF: vfwprintf+1338j .text:0002A3A0 SUB R1, R11, #-var_1000 .text:0002A3A4 LDR R1, [R1,#-0x9C] .text:0002A3A8 CMP R1, #0 .text:0002A3AC BEQ loc_2A3E4 .text:0002A3B0 LDR R1, [R9,#0x58] .text:0002A3B4 ADD R2, R1, #0x10 .text:0002A3B8 LDMIA R2, {R2,R3} .text:0002A3BC CMP R2, R3 .text:0002A3C0 BCC loc_2A3DC .text:0002A3C4 MOV R0, R9 .text:0002A3C8 MOV R1, #0x2D .text:0002A3CC .text:0002A3CC loc_2A3CC ; CODE XREF: vfwprintf+13E0j .text:0002A3CC ; vfwprintf+1414j .text:0002A3CC BL __woverflow .text:0002A3D0 CMN R0, #1 .text:0002A3D4 BEQ loc_2AF38 .text:0002A3D8 B loc_2A450 .text:0002A3DC ; --------------------------------------------------------------------------- .text:0002A3DC .text:0002A3DC loc_2A3DC ; CODE XREF: vfwprintf+1394j .text:0002A3DC MOV R3, #0x2D .text:0002A3E0 B loc_2A448 .text:0002A3E4 ; --------------------------------------------------------------------------- .text:0002A3E4 .text:0002A3E4 loc_2A3E4 ; CODE XREF: vfwprintf+1380j .text:0002A3E4 SUB R2, R11, #-var_1000 .text:0002A3E8 LDR R2, [R2,#-0xB8] .text:0002A3EC CMP R2, #0 .text:0002A3F0 BEQ loc_2A418 .text:0002A3F4 LDR R1, [R9,#0x58] .text:0002A3F8 ADD R2, R1, #0x10 .text:0002A3FC LDMIA R2, {R2,R3} .text:0002A400 CMP R2, R3 .text:0002A404 MOVCS R0, R9 .text:0002A408 MOVCS R1, #0x2B .text:0002A40C BCS loc_2A3CC .text:0002A410 MOV R3, #0x2B .text:0002A414 B loc_2A448 .text:0002A418 ; --------------------------------------------------------------------------- .text:0002A418 .text:0002A418 loc_2A418 ; CODE XREF: vfwprintf+13C4j .text:0002A418 SUB R3, R11, #-var_1000 .text:0002A41C LDR R3, [R3,#-0xB0] .text:0002A420 CMP R3, #0 .text:0002A424 BEQ loc_2A454 .text:0002A428 LDR R1, [R9,#0x58] .text:0002A42C ADD R2, R1, #0x10 .text:0002A430 LDMIA R2, {R2,R3} .text:0002A434 CMP R2, R3 .text:0002A438 MOVCS R0, R9 .text:0002A43C MOVCS R1, #0x20 .text:0002A440 BCS loc_2A3CC .text:0002A444 MOV R3, #0x20 .text:0002A448 .text:0002A448 loc_2A448 ; CODE XREF: vfwprintf+13B4j .text:0002A448 ; vfwprintf+13E8j .text:0002A448 STR R3, [R2],#4 .text:0002A44C STR R2, [R1,#0x10] .text:0002A450 .text:0002A450 loc_2A450 ; CODE XREF: vfwprintf+13ACj .text:0002A450 ADD R10, R10, #1 .text:0002A454 .text:0002A454 loc_2A454 ; CODE XREF: vfwprintf+13F8j .text:0002A454 SUB R5, R11, #-var_1000 .text:0002A458 LDR R12, [R5,#-0xAC] .text:0002A45C LDR R5, [R5,#-0xA4] .text:0002A460 CMP R12, #0 .text:0002A464 CMPNE R5, #0 .text:0002A468 BEQ loc_2A508 .text:0002A46C SUB R12, R11, #-var_1000 .text:0002A470 LDR R12, [R12,#-0xA8] .text:0002A474 CMP R12, #0x10 .text:0002A478 BNE loc_2A508 .text:0002A47C LDR R1, [R9,#0x58] .text:0002A480 ADD R2, R1, #0x10 .text:0002A484 LDMIA R2, {R2,R3} .text:0002A488 CMP R2, R3 .text:0002A48C BCC loc_2A4B0 .text:0002A490 MOV R0, R9 .text:0002A494 MOV R1, #0x30 .text:0002A498 BL __woverflow .text:0002A49C CMN R0, #1 .text:0002A4A0 BEQ loc_2AF38 .text:0002A4A4 B loc_2A4BC .text:0002A4A4 ; --------------------------------------------------------------------------- .text:0002A4A8 off_2A4A8 DCD _itowa_lower_digits ; DATA XREF: vfwprintf:loc_2A0E0r .text:0002A4AC off_2A4AC DCD _itowa_upper_digits ; DATA XREF: vfwprintf+10C0r .text:0002A4B0 ; --------------------------------------------------------------------------- .text:0002A4B0 .text:0002A4B0 loc_2A4B0 ; CODE XREF: vfwprintf+1460j .text:0002A4B0 MOV R3, #0x30 .text:0002A4B4 STR R3, [R2],#4 .text:0002A4B8 STR R2, [R1,#0x10] .text:0002A4BC .text:0002A4BC loc_2A4BC ; CODE XREF: vfwprintf+1478j .text:0002A4BC ADD R10, R10, #1 .text:0002A4C0 LDR R1, [R9,#0x58] .text:0002A4C4 ADD R2, R1, #0x10 .text:0002A4C8 LDMIA R2, {R2,R3} .text:0002A4CC CMP R2, R3 .text:0002A4D0 BCC loc_2A4EC .text:0002A4D4 MOV R0, R9 .text:0002A4D8 SUB LR, R11, #-var_1000 .text:0002A4DC LDR R1, [LR,#-0xE0] .text:0002A4E0 BL __woverflow .text:0002A4E4 CMN R0, #1 .text:0002A4E8 B loc_2A500 .text:0002A4EC ; --------------------------------------------------------------------------- .text:0002A4EC .text:0002A4EC loc_2A4EC ; CODE XREF: vfwprintf+14A4j .text:0002A4EC SUB R0, R11, #-var_1000 .text:0002A4F0 LDR R0, [R0,#-0xE0] .text:0002A4F4 STR R0, [R2],#4 .text:0002A4F8 CMN R0, #1 .text:0002A4FC STR R2, [R1,#0x10] .text:0002A500 .text:0002A500 loc_2A500 ; CODE XREF: vfwprintf+14BCj .text:0002A500 BEQ loc_2AF38 .text:0002A504 ADD R10, R10, #1 .text:0002A508 .text:0002A508 loc_2A508 ; CODE XREF: vfwprintf+143Cj .text:0002A508 ; vfwprintf+144Cj .text:0002A508 SUB R5, R11, #-var_1000 .text:0002A50C SUB R5, R5, #0xD4 .text:0002A510 LDMIA R5, {R5,R12} .text:0002A514 ADD R12, R12, R5 .text:0002A518 SUB R5, R11, #-var_1000 .text:0002A51C CMP R12, #0 .text:0002A520 STR R12, [R5,#-0xD0] .text:0002A524 BLE loc_2A540 .text:0002A528 MOV R0, R9 .text:0002A52C MOV R1, #0x30 .text:0002A530 MOV LR, R5 .text:0002A534 LDR R2, [LR,#-0xD0] .text:0002A538 BL _IO_wpadn .text:0002A53C ADD R10, R10, R0 .text:0002A540 .text:0002A540 loc_2A540 ; CODE XREF: vfwprintf+14F8j .text:0002A540 MOV R0, R9 .text:0002A544 MOV R1, R7 .text:0002A548 LDRB R3, [R9,#0x46] .text:0002A54C MOV R4, R4,ASR#2 .text:0002A550 MOV R3, R3,LSL#24 .text:0002A554 ADD R3, R9, R3,ASR#24 .text:0002A558 LDR R12, [R3,#0x94] .text:0002A55C MOV R2, R4 .text:0002A560 MOV LR, PC .text:0002A564 LDR PC, [R12,#0x1C] .text:0002A568 CMP R0, R4 .text:0002A56C BNE loc_2AF38 .text:0002A570 ADD R10, R10, R0 .text:0002A574 B loc_2B090 .text:0002A578 ; --------------------------------------------------------------------------- .text:0002A578 .text:0002A578 loc_2A578 ; CODE XREF: vfwprintf+129Cj .text:0002A578 SUB R0, R11, #-var_1000 .text:0002A57C LDR R0, [R0,#-0x9C] .text:0002A580 CMP R0, #0 .text:0002A584 BEQ loc_2A5DC .text:0002A588 LDR R1, [R9,#0x58] .text:0002A58C ADD R2, R1, #0x10 .text:0002A590 LDMIA R2, {R2,R3} .text:0002A594 CMP R2, R3 .text:0002A598 BCC loc_2A5B4 .text:0002A59C MOV R0, R9 .text:0002A5A0 MOV R1, #0x2D .text:0002A5A4 BL __woverflow .text:0002A5A8 CMN R0, #1 .text:0002A5AC BEQ loc_2AF38 .text:0002A5B0 B loc_2A5C0 .text:0002A5B4 ; --------------------------------------------------------------------------- .text:0002A5B4 .text:0002A5B4 loc_2A5B4 ; CODE XREF: vfwprintf+156Cj .text:0002A5B4 MOV R3, #0x2D .text:0002A5B8 STR R3, [R2],#4 .text:0002A5BC STR R2, [R1,#0x10] .text:0002A5C0 .text:0002A5C0 loc_2A5C0 ; CODE XREF: vfwprintf+1584j .text:0002A5C0 ADD R10, R10, #1 .text:0002A5C4 SUB R1, R11, #-var_1000 .text:0002A5C8 LDR R1, [R1,#-0xD0] .text:0002A5CC SUB R2, R1, #1 .text:0002A5D0 SUB R1, R11, #-var_1000 .text:0002A5D4 STR R2, [R1,#-0xD0] .text:0002A5D8 B loc_2A6A0 .text:0002A5DC ; --------------------------------------------------------------------------- .text:0002A5DC .text:0002A5DC loc_2A5DC ; CODE XREF: vfwprintf+1558j .text:0002A5DC SUB R2, R11, #-var_1000 .text:0002A5E0 LDR R2, [R2,#-0xB8] .text:0002A5E4 CMP R2, #0 .text:0002A5E8 BEQ loc_2A640 .text:0002A5EC LDR R1, [R9,#0x58] .text:0002A5F0 ADD R2, R1, #0x10 .text:0002A5F4 LDMIA R2, {R2,R3} .text:0002A5F8 CMP R2, R3 .text:0002A5FC BCC loc_2A618 .text:0002A600 MOV R0, R9 .text:0002A604 MOV R1, #0x2B .text:0002A608 BL __woverflow .text:0002A60C CMN R0, #1 .text:0002A610 BEQ loc_2AF38 .text:0002A614 B loc_2A624 .text:0002A618 ; --------------------------------------------------------------------------- .text:0002A618 .text:0002A618 loc_2A618 ; CODE XREF: vfwprintf+15D0j .text:0002A618 MOV R3, #0x2B .text:0002A61C STR R3, [R2],#4 .text:0002A620 STR R2, [R1,#0x10] .text:0002A624 .text:0002A624 loc_2A624 ; CODE XREF: vfwprintf+15E8j .text:0002A624 ADD R10, R10, #1 .text:0002A628 SUB R3, R11, #-var_1000 .text:0002A62C LDR R3, [R3,#-0xD0] .text:0002A630 SUB R5, R3, #1 .text:0002A634 SUB R3, R11, #-var_1000 .text:0002A638 STR R5, [R3,#-0xD0] .text:0002A63C B loc_2A6A0 .text:0002A640 ; --------------------------------------------------------------------------- .text:0002A640 .text:0002A640 loc_2A640 ; CODE XREF: vfwprintf+15BCj .text:0002A640 SUB R5, R11, #-var_1000 .text:0002A644 LDR R5, [R5,#-0xB0] .text:0002A648 CMP R5, #0 .text:0002A64C BEQ loc_2A6A0 .text:0002A650 LDR R1, [R9,#0x58] .text:0002A654 ADD R2, R1, #0x10 .text:0002A658 LDMIA R2, {R2,R3} .text:0002A65C CMP R2, R3 .text:0002A660 BCC loc_2A67C .text:0002A664 MOV R0, R9 .text:0002A668 MOV R1, #0x20 .text:0002A66C BL __woverflow .text:0002A670 CMN R0, #1 .text:0002A674 BEQ loc_2AF38 .text:0002A678 B loc_2A688 .text:0002A67C ; --------------------------------------------------------------------------- .text:0002A67C .text:0002A67C loc_2A67C ; CODE XREF: vfwprintf+1634j .text:0002A67C MOV R3, #0x20 .text:0002A680 STR R3, [R2],#4 .text:0002A684 STR R2, [R1,#0x10] .text:0002A688 .text:0002A688 loc_2A688 ; CODE XREF: vfwprintf+164Cj .text:0002A688 ADD R10, R10, #1 .text:0002A68C SUB R12, R11, #-var_1000 .text:0002A690 LDR R12, [R12,#-0xD0] .text:0002A694 SUB LR, R12, #1 .text:0002A698 SUB R12, R11, #-var_1000 .text:0002A69C STR LR, [R12,#-0xD0] .text:0002A6A0 .text:0002A6A0 loc_2A6A0 ; CODE XREF: vfwprintf+15ACj .text:0002A6A0 ; vfwprintf+1610j ... .text:0002A6A0 SUB LR, R11, #-var_1000 .text:0002A6A4 LDR R0, [LR,#-0xAC] .text:0002A6A8 LDR LR, [LR,#-0xA4] .text:0002A6AC CMP R0, #0 .text:0002A6B0 CMPNE LR, #0 .text:0002A6B4 BEQ loc_2A760 .text:0002A6B8 SUB R0, R11, #-var_1000 .text:0002A6BC LDR R0, [R0,#-0xA8] .text:0002A6C0 CMP R0, #0x10 .text:0002A6C4 BNE loc_2A760 .text:0002A6C8 LDR R1, [R9,#0x58] .text:0002A6CC ADD R2, R1, #0x10 .text:0002A6D0 LDMIA R2, {R2,R3} .text:0002A6D4 CMP R2, R3 .text:0002A6D8 BCC loc_2A6F4 .text:0002A6DC MOV R0, R9 .text:0002A6E0 MOV R1, #0x30 .text:0002A6E4 BL __woverflow .text:0002A6E8 CMN R0, #1 .text:0002A6EC BEQ loc_2AF38 .text:0002A6F0 B loc_2A700 .text:0002A6F4 ; --------------------------------------------------------------------------- .text:0002A6F4 .text:0002A6F4 loc_2A6F4 ; CODE XREF: vfwprintf+16ACj .text:0002A6F4 MOV R3, #0x30 .text:0002A6F8 STR R3, [R2],#4 .text:0002A6FC STR R2, [R1,#0x10] .text:0002A700 .text:0002A700 loc_2A700 ; CODE XREF: vfwprintf+16C4j .text:0002A700 ADD R10, R10, #1 .text:0002A704 LDR R1, [R9,#0x58] .text:0002A708 ADD R2, R1, #0x10 .text:0002A70C LDMIA R2, {R2,R3} .text:0002A710 CMP R2, R3 .text:0002A714 BCC loc_2A730 .text:0002A718 MOV R0, R9 .text:0002A71C SUB R2, R11, #-var_1000 .text:0002A720 LDR R1, [R2,#-0xE0] .text:0002A724 BL __woverflow .text:0002A728 CMN R0, #1 .text:0002A72C B loc_2A744 .text:0002A730 ; --------------------------------------------------------------------------- .text:0002A730 .text:0002A730 loc_2A730 ; CODE XREF: vfwprintf+16E8j .text:0002A730 SUB R3, R11, #-var_1000 .text:0002A734 LDR R3, [R3,#-0xE0] .text:0002A738 STR R3, [R2],#4 .text:0002A73C CMN R3, #1 .text:0002A740 STR R2, [R1,#0x10] .text:0002A744 .text:0002A744 loc_2A744 ; CODE XREF: vfwprintf+1700j .text:0002A744 BEQ loc_2AF38 .text:0002A748 ADD R10, R10, #1 .text:0002A74C SUB R12, R11, #-var_1000 .text:0002A750 LDR R12, [R12,#-0xD0] .text:0002A754 SUB LR, R12, #2 .text:0002A758 SUB R12, R11, #-var_1000 .text:0002A75C STR LR, [R12,#-0xD0] .text:0002A760 .text:0002A760 loc_2A760 ; CODE XREF: vfwprintf+1688j .text:0002A760 ; vfwprintf+1698j .text:0002A760 MOV R4, R4,ASR#2 .text:0002A764 SUB LR, R11, #-var_1000 .text:0002A768 LDR LR, [LR,#-0xD4] .text:0002A76C SUB R0, R11, #-var_1000 .text:0002A770 LDR R0, [R0,#-0xD0] .text:0002A774 ADD R3, R4, LR .text:0002A778 RSB R3, R3, R0 .text:0002A77C SUB R0, R11, #-var_1000 .text:0002A780 CMP LR, #0 .text:0002A784 STR R3, [R0,#-0xD0] .text:0002A788 BLE loc_2A7A4 .text:0002A78C MOV R0, R9 .text:0002A790 MOV R1, #0x30 .text:0002A794 SUB R3, R11, #-var_1000 .text:0002A798 LDR R2, [R3,#-0xD4] .text:0002A79C BL _IO_wpadn .text:0002A7A0 ADD R10, R10, R0 .text:0002A7A4 .text:0002A7A4 loc_2A7A4 ; CODE XREF: vfwprintf+175Cj .text:0002A7A4 MOV R0, R9 .text:0002A7A8 LDRB R3, [R9,#0x46] .text:0002A7AC MOV R1, R7 .text:0002A7B0 MOV R3, R3,LSL#24 .text:0002A7B4 ADD R3, R9, R3,ASR#24 .text:0002A7B8 LDR R12, [R3,#0x94] .text:0002A7BC MOV R2, R4 .text:0002A7C0 MOV LR, PC .text:0002A7C4 LDR PC, [R12,#0x1C] .text:0002A7C8 CMP R0, R4 .text:0002A7CC BNE loc_2AF38 .text:0002A7D0 ADD R10, R10, R0 .text:0002A7D4 SUB R4, R11, #-var_1000 .text:0002A7D8 LDR R4, [R4,#-0xD0] .text:0002A7DC CMP R4, #0 .text:0002A7E0 BLE loc_2B090 .text:0002A7E4 MOV R0, R9 .text:0002A7E8 MOV R1, #0x20 .text:0002A7EC SUB R5, R11, #-var_1000 .text:0002A7F0 LDR R2, [R5,#-0xD0] .text:0002A7F4 B loc_2ADFC .text:0002A7F8 ; --------------------------------------------------------------------------- .text:0002A7F8 SUB R0, R11, #-var_FE0 .text:0002A7FC SUB R0, R0, #8 .text:0002A800 SUB R0, R0, #4 .text:0002A804 MOV R1, #0 .text:0002A808 MOV R2, #0x14 .text:0002A80C BL memset .text:0002A810 SUB R12, R11, #-var_1000 .text:0002A814 LDR R12, [R12,#-0xD4] .text:0002A818 STR R12, [R11,#var_FEC] .text:0002A81C SUB LR, R11, #-var_1000 .text:0002A820 LDR LR, [LR,#-0xD0] .text:0002A824 STR LR, [R11,#var_FE8] .text:0002A828 SUB R0, R11, #-var_1000 .text:0002A82C LDR R0, [R0,#-0xE0] .text:0002A830 STR R0, [R11,#var_FE4] .text:0002A834 SUB R1, R11, #-var_1000 .text:0002A838 LDR R1, [R1,#-0xDC] .text:0002A83C STR R1, [R11,#var_FDC] .text:0002A840 LDRB R3, [R11,#var_FE0] .text:0002A844 SUB R2, R11, #-var_1000 .text:0002A848 LDR R2, [R2,#-0xC0] .text:0002A84C SUB R4, R11, #-var_1000 .text:0002A850 LDR R4, [R4,#-0xC4] .text:0002A854 SUB R5, R11, #-var_1000 .text:0002A858 LDR R5, [R5,#-0xC8] .text:0002A85C SUB R12, R11, #-var_1000 .text:0002A860 LDR R12, [R12,#-0xAC] .text:0002A864 SUB LR, R11, #-var_1000 .text:0002A868 LDR LR, [LR,#-0xB0] .text:0002A86C SUB R0, R11, #-var_1000 .text:0002A870 LDR R0, [R0,#-0xB4] .text:0002A874 SUB R1, R11, #-var_1000 .text:0002A878 LDR R1, [R1,#-0xB8] .text:0002A87C CMP R2, #0 .text:0002A880 ORRNE R3, R3, #1 .text:0002A884 ANDEQ R3, R3, #0xFE .text:0002A888 CMP R4, #0 .text:0002A88C ORRNE R3, R3, #2 .text:0002A890 ANDEQ R3, R3, #0xFD .text:0002A894 AND R2, R5, #1 .text:0002A898 CMP R2, #0 .text:0002A89C ORRNE R3, R3, #4 .text:0002A8A0 ANDEQ R3, R3, #0xFB .text:0002A8A4 CMP R12, #0 .text:0002A8A8 ORRNE R3, R3, #8 .text:0002A8AC ANDEQ R3, R3, #0xF7 .text:0002A8B0 CMP LR, #0 .text:0002A8B4 ORRNE R3, R3, #0x10 .text:0002A8B8 ANDEQ R3, R3, #0xEF .text:0002A8BC CMP R0, #0 .text:0002A8C0 ORRNE R3, R3, #0x20 .text:0002A8C4 ANDEQ R3, R3, #0xDF .text:0002A8C8 CMP R1, #0 .text:0002A8CC SUB R2, R11, #-var_1000 .text:0002A8D0 LDR R2, [R2,#-0xBC] .text:0002A8D4 ORRNE R3, R3, #0x40 .text:0002A8D8 ANDEQ R3, R3, #0xBF .text:0002A8DC CMP R2, #0 .text:0002A8E0 ORRNE R3, R3, #0x80 .text:0002A8E4 ANDEQ R3, R3, #0x7F .text:0002A8E8 STRB R3, [R11,#var_FE0] .text:0002A8EC LDRB R2, [R11,#var_FDF] .text:0002A8F0 SUB R3, R11, #-var_1000 .text:0002A8F4 LDR R3, [R3,#-0xC0] .text:0002A8F8 ORR R2, R2, #4 .text:0002A8FC STRB R2, [R11,#var_FDF] .text:0002A900 CMP R3, #0 .text:0002A904 BEQ loc_2A92C .text:0002A908 SUB R4, R11, #-var_1000 .text:0002A90C LDR R5, [R4,#-0x78] .text:0002A910 ADD R5, R5, #8 .text:0002A914 STR R5, [R4,#-0x78] .text:0002A918 SUB R3, R11, #-var_1000 .text:0002A91C SUB R3, R3, #0x28 .text:0002A920 SUB R5, R5, #8 .text:0002A924 LDMIA R5!, {R1,R2} .text:0002A928 B loc_2A94C .text:0002A92C ; --------------------------------------------------------------------------- .text:0002A92C .text:0002A92C loc_2A92C ; CODE XREF: vfwprintf+18D8j .text:0002A92C SUB R12, R11, #-var_1000 .text:0002A930 LDR LR, [R12,#-0x78] .text:0002A934 ADD LR, LR, #8 .text:0002A938 STR LR, [R12,#-0x78] .text:0002A93C SUB R3, R11, #-var_1000 .text:0002A940 SUB R3, R3, #0x28 .text:0002A944 SUB LR, LR, #8 .text:0002A948 LDMIA LR!, {R1,R2} .text:0002A94C .text:0002A94C loc_2A94C ; CODE XREF: vfwprintf+18FCj .text:0002A94C SUB R3, R3, #0x14 .text:0002A950 STMIA R3, {R1,R2} .text:0002A954 SUB R2, R11, #-var_1000 .text:0002A958 SUB R2, R2, #0x28 .text:0002A95C SUB R2, R2, #0x14 .text:0002A960 MOV R3, 0xFFFFEFE8 .text:0002A968 MOV R0, R9 .text:0002A96C SUB R1, R11, #-var_28 .text:0002A970 STR R2, [R1,R3] .text:0002A974 SUB R1, R11, #-var_FE0 .text:0002A978 SUB R1, R1, #8 .text:0002A97C SUB R1, R1, #4 .text:0002A980 SUB R2, R11, #-var_1000 .text:0002A984 SUB R2, R2, #0x28 .text:0002A988 SUB R2, R2, #0x18 .text:0002A98C BL __printf_fp .text:0002A990 .text:0002A990 loc_2A990 ; CODE XREF: vfwprintf+1B08j .text:0002A990 CMP R0, #0 .text:0002A994 BLT loc_2AF38 .text:0002A998 ADD R10, R10, R0 .text:0002A99C B loc_2B090 .text:0002A9A0 ; --------------------------------------------------------------------------- .text:0002A9A0 SUB R0, R11, #-var_FF0 .text:0002A9A4 SUB R0, R0, #8 .text:0002A9A8 SUB R0, R0, #8 .text:0002A9AC MOV R1, #0 .text:0002A9B0 MOV R2, #0x14 .text:0002A9B4 BL memset .text:0002A9B8 SUB R2, R11, #-var_1000 .text:0002A9BC LDR R3, [R2,#-0xD4] .text:0002A9C0 STR R3, [R2] .text:0002A9C4 MOV R4, R2 .text:0002A9C8 LDR R4, [R4,#-0xD0] .text:0002A9CC STR R4, [R11,#var_FFC] .text:0002A9D0 MOV R5, R2 .text:0002A9D4 LDR R5, [R5,#-0xE0] .text:0002A9D8 STR R5, [R11,#var_FF8] .text:0002A9DC MOV R12, R2 .text:0002A9E0 LDR R12, [R12,#-0xDC] .text:0002A9E4 STR R12, [R11,#var_FF0] .text:0002A9E8 LDRB R3, [R11,#var_FF4] .text:0002A9EC MOV LR, R2 .text:0002A9F0 LDR LR, [LR,#-0xC0] .text:0002A9F4 MOV R0, R2 .text:0002A9F8 LDR R0, [R0,#-0xC4] .text:0002A9FC MOV R1, R2 .text:0002AA00 LDR R1, [R1,#-0xC8] .text:0002AA04 SUB R4, R11, #-var_1000 .text:0002AA08 LDR R4, [R4,#-0xB0] .text:0002AA0C SUB R5, R11, #-var_1000 .text:0002AA10 LDR R5, [R5,#-0xB4] .text:0002AA14 SUB R12, R11, #-var_1000 .text:0002AA18 LDR R12, [R12,#-0xB8] .text:0002AA1C CMP LR, #0 .text:0002AA20 ORRNE R3, R3, #1 .text:0002AA24 ANDEQ R3, R3, #0xFE .text:0002AA28 CMP R0, #0 .text:0002AA2C ORRNE R3, R3, #2 .text:0002AA30 ANDEQ R3, R3, #0xFD .text:0002AA34 AND R2, R1, #1 .text:0002AA38 CMP R2, #0 .text:0002AA3C ORRNE R3, R3, #4 .text:0002AA40 ANDEQ R3, R3, #0xFB .text:0002AA44 SUB R2, R11, #-var_1000 .text:0002AA48 LDR R2, [R2,#-0xAC] .text:0002AA4C SUB LR, R11, #-var_1000 .text:0002AA50 LDR LR, [LR,#-0xBC] .text:0002AA54 CMP R2, #0 .text:0002AA58 ORRNE R3, R3, #8 .text:0002AA5C ANDEQ R3, R3, #0xF7 .text:0002AA60 CMP R4, #0 .text:0002AA64 ORRNE R3, R3, #0x10 .text:0002AA68 ANDEQ R3, R3, #0xEF .text:0002AA6C CMP R5, #0 .text:0002AA70 ORRNE R3, R3, #0x20 .text:0002AA74 ANDEQ R3, R3, #0xDF .text:0002AA78 CMP R12, #0 .text:0002AA7C ORRNE R3, R3, #0x40 .text:0002AA80 ANDEQ R3, R3, #0xBF .text:0002AA84 CMP LR, #0 .text:0002AA88 ORRNE R3, R3, #0x80 .text:0002AA8C ANDEQ R3, R3, #0x7F .text:0002AA90 STRB R3, [R11,#var_FF4] .text:0002AA94 LDRB R2, [R11,#var_FF3] .text:0002AA98 SUB R0, R11, #-var_1000 .text:0002AA9C LDR R0, [R0,#-0xC0] .text:0002AAA0 ORR R2, R2, #4 .text:0002AAA4 STRB R2, [R11,#var_FF3] .text:0002AAA8 CMP R0, #0 .text:0002AAAC BEQ loc_2AAD8 .text:0002AAB0 SUB R1, R11, #-var_1000 .text:0002AAB4 LDR R5, [R1,#-0x78] .text:0002AAB8 ADD R5, R5, #8 .text:0002AABC STR R5, [R1,#-0x78] .text:0002AAC0 SUB R2, R11, #-var_1000 .text:0002AAC4 SUB R2, R2, #0x28 .text:0002AAC8 SUB R2, R2, #0x14 .text:0002AACC SUB R5, R5, #8 .text:0002AAD0 LDMIA R5!, {R3,R4} .text:0002AAD4 B loc_2AAFC .text:0002AAD8 ; --------------------------------------------------------------------------- .text:0002AAD8 .text:0002AAD8 loc_2AAD8 ; CODE XREF: vfwprintf+1A80j .text:0002AAD8 SUB R12, R11, #-var_1000 .text:0002AADC LDR LR, [R12,#-0x78] .text:0002AAE0 ADD LR, LR, #8 .text:0002AAE4 STR LR, [R12,#-0x78] .text:0002AAE8 SUB R2, R11, #-var_1000 .text:0002AAEC SUB R2, R2, #0x28 .text:0002AAF0 SUB R2, R2, #0x14 .text:0002AAF4 SUB LR, LR, #8 .text:0002AAF8 LDMIA LR!, {R3,R4} .text:0002AAFC .text:0002AAFC loc_2AAFC ; CODE XREF: vfwprintf+1AA8j .text:0002AAFC MOV R1, R2 .text:0002AB00 STMIA R2, {R3,R4} .text:0002AB04 MOV R3, 0xFFFFEFE4 .text:0002AB0C MOV R0, R9 .text:0002AB10 SUB R2, R11, #-var_28 .text:0002AB14 STR R1, [R2,R3] .text:0002AB18 SUB R1, R11, #-var_FF0 .text:0002AB1C SUB R1, R1, #8 .text:0002AB20 SUB R1, R1, #8 .text:0002AB24 SUB R2, R11, #-var_1000 .text:0002AB28 SUB R2, R2, #0x28 .text:0002AB2C SUB R2, R2, #0x1C .text:0002AB30 BL __printf_fphex .text:0002AB34 B loc_2A990 .text:0002AB38 ; --------------------------------------------------------------------------- .text:0002AB38 SUB R3, R11, #-var_1000 .text:0002AB3C LDR R4, [R3,#-0x78] .text:0002AB40 ADD R4, R4, #4 .text:0002AB44 STR R4, [R3,#-0x78] .text:0002AB48 SUB R4, R4, #4 .text:0002AB4C LDR R2, [R4],#4 .text:0002AB50 CMP R2, #0 .text:0002AB54 BEQ loc_2AB98 .text:0002AB58 MOV R12, #0x10 .text:0002AB5C MOV R5, R3 .text:0002AB60 STR R12, [R5,#-0xA8] .text:0002AB64 MOV LR, R3 .text:0002AB68 STR R2, [LR,#-0xA4] .text:0002AB6C MOV R1, #0 .text:0002AB70 MOV R0, R3 .text:0002AB74 STR R1, [R0,#-0x9C] .text:0002AB78 MOV R3, #1 .text:0002AB7C MOV R2, R0 .text:0002AB80 STR R3, [R2,#-0xAC] .text:0002AB84 MOV R4, R0 .text:0002AB88 STR R1, [R4,#-0xBC] .text:0002AB8C ADD R12, R12, #0x68 .text:0002AB90 STR R12, [R5,#-0xE0] .text:0002AB94 B loc_2A058 .text:0002AB98 ; --------------------------------------------------------------------------- .text:0002AB98 .text:0002AB98 loc_2AB98 ; CODE XREF: vfwprintf+1B28j .text:0002AB98 SUB LR, R11, #-var_1000 .text:0002AB9C LDR R0, [LR,#-0xD4] .text:0002ABA0 MOV LR, R0 .text:0002ABA4 CMP LR, #4 .text:0002ABA8 MOVLE R0, #5 .text:0002ABAC SUB LR, R11, #-var_1000 .text:0002ABB0 STR R0, [LR,#-0xD4] .text:0002ABB4 LDR R7, =dword_5743C .text:0002ABB8 MOV R0, LR .text:0002ABBC STR R2, [R0,#-0xC8] .text:0002ABC0 B loc_2AE20 .text:0002ABC4 ; --------------------------------------------------------------------------- .text:0002ABC4 SUB R1, R11, #-var_1000 .text:0002ABC8 LDR R1, [R1,#-0xC0] .text:0002ABCC CMP R1, #0 .text:0002ABD0 BNE loc_29938 .text:0002ABD4 SUB R2, R11, #-var_1000 .text:0002ABD8 LDR R2, [R2,#-0xCC] .text:0002ABDC CMP R2, #0 .text:0002ABE0 BNE loc_29960 .text:0002ABE4 SUB R3, R11, #-var_1000 .text:0002ABE8 LDR R3, [R3,#-0xC4] .text:0002ABEC CMP R3, #0 .text:0002ABF0 BEQ loc_29980 .text:0002ABF4 SUB R4, R11, #-var_1000 .text:0002ABF8 LDR R5, [R4,#-0x78] .text:0002ABFC ADD R5, R5, #4 .text:0002AC00 STR R5, [R4,#-0x78] .text:0002AC04 SUB R5, R5, #4 .text:0002AC08 LDR R2, [R5],#4 .text:0002AC0C STRB R10, [R2] .text:0002AC10 MOV R3, R10,ASR#8 .text:0002AC14 STRB R3, [R2,#1] .text:0002AC18 B loc_2B090 .text:0002AC1C ; --------------------------------------------------------------------------- .text:0002AC1C SUB R12, R11, #-var_1000 .text:0002AC20 SUB R1, R11, #-var_FC0 .text:0002AC24 SUB R1, R1, #8 .text:0002AC28 LDR R0, [R12,#-0x94] .text:0002AC2C MOV R2, #0xFA0 .text:0002AC30 BL strerror_r .text:0002AC34 MOV R7, R0 .text:0002AC38 MOV R0, #0 .text:0002AC3C SUB LR, R11, #-var_1000 .text:0002AC40 STR R0, [LR,#-0xC8] .text:0002AC44 B loc_2AE20 .text:0002AC48 ; --------------------------------------------------------------------------- .text:0002AC48 SUB R1, R11, #-var_1000 .text:0002AC4C LDR R1, [R1,#-0xC8] .text:0002AC50 CMP R1, #0 .text:0002AC54 BNE loc_2AD30 .text:0002AC58 SUB R2, R11, #-var_1000 .text:0002AC5C LDR R2, [R2,#-0xD0] .text:0002AC60 SUB R3, R2, #1 .text:0002AC64 SUB R2, R11, #-var_1000 .text:0002AC68 STR R3, [R2,#-0xD0] .text:0002AC6C MOV R3, R2 .text:0002AC70 LDR R3, [R3,#-0xB4] .text:0002AC74 CMP R3, #0 .text:0002AC78 BNE loc_2ACA4 .text:0002AC7C MOV R4, R2 .text:0002AC80 LDR R4, [R4,#-0xD0] .text:0002AC84 CMP R4, #0 .text:0002AC88 BLE loc_2ACA4 .text:0002AC8C MOV R0, R9 .text:0002AC90 MOV R1, #0x20 .text:0002AC94 MOV R5, R2 .text:0002AC98 LDR R2, [R5,#-0xD0] .text:0002AC9C BL _IO_wpadn .text:0002ACA0 ADD R10, R10, R0 .text:0002ACA4 .text:0002ACA4 loc_2ACA4 ; CODE XREF: vfwprintf+1C4Cj .text:0002ACA4 ; vfwprintf+1C5Cj .text:0002ACA4 SUB R12, R11, #-var_1000 .text:0002ACA8 LDR R12, [R12,#-0x78] .text:0002ACAC ADD LR, R12, #4 .text:0002ACB0 SUB R12, R11, #-var_1000 .text:0002ACB4 STR LR, [R12,#-0x78] .text:0002ACB8 LDRB R0, [LR,#-4] .text:0002ACBC BL btowc .text:0002ACC0 LDR R12, [R9,#0x58] .text:0002ACC4 ADD R2, R12, #0x10 .text:0002ACC8 LDMIA R2, {R2,R3} .text:0002ACCC MOV R1, R0 .text:0002ACD0 CMP R2, R3 .text:0002ACD4 BCC loc_2ACE8 .text:0002ACD8 MOV R0, R9 .text:0002ACDC BL __woverflow .text:0002ACE0 CMN R0, #1 .text:0002ACE4 B loc_2ACF4 .text:0002ACE8 ; --------------------------------------------------------------------------- .text:0002ACE8 .text:0002ACE8 loc_2ACE8 ; CODE XREF: vfwprintf+1CA8j .text:0002ACE8 STR R1, [R2],#4 .text:0002ACEC CMN R1, #1 .text:0002ACF0 STR R2, [R12,#0x10] .text:0002ACF4 .text:0002ACF4 loc_2ACF4 ; CODE XREF: vfwprintf+1CB8j .text:0002ACF4 BEQ loc_2AF38 .text:0002ACF8 ADD R10, R10, #1 .text:0002ACFC SUB R0, R11, #-var_1000 .text:0002AD00 LDR R0, [R0,#-0xB4] .text:0002AD04 CMP R0, #0 .text:0002AD08 BEQ loc_2B090 .text:0002AD0C SUB R1, R11, #-var_1000 .text:0002AD10 LDR R1, [R1,#-0xD0] .text:0002AD14 CMP R1, #0 .text:0002AD18 BLE loc_2B090 .text:0002AD1C MOV R0, R9 .text:0002AD20 MOV R1, #0x20 .text:0002AD24 SUB R3, R11, #-var_1000 .text:0002AD28 LDR R2, [R3,#-0xD0] .text:0002AD2C B loc_2ADFC .text:0002AD30 ; --------------------------------------------------------------------------- .text:0002AD30 .text:0002AD30 loc_2AD30 ; CODE XREF: vfwprintf+1C28j .text:0002AD30 SUB R4, R11, #-var_1000 .text:0002AD34 LDR R4, [R4,#-0xD0] .text:0002AD38 SUB R5, R4, #1 .text:0002AD3C SUB R4, R11, #-var_1000 .text:0002AD40 STR R5, [R4,#-0xD0] .text:0002AD44 MOV R5, R4 .text:0002AD48 LDR R5, [R5,#-0xB4] .text:0002AD4C CMP R5, #0 .text:0002AD50 BNE loc_2AD7C .text:0002AD54 MOV R12, R4 .text:0002AD58 LDR R12, [R12,#-0xD0] .text:0002AD5C CMP R12, #0 .text:0002AD60 BLE loc_2AD7C .text:0002AD64 MOV R0, R9 .text:0002AD68 MOV R1, #0x20 .text:0002AD6C MOV LR, R4 .text:0002AD70 LDR R2, [LR,#-0xD0] .text:0002AD74 BL _IO_wpadn .text:0002AD78 ADD R10, R10, R0 .text:0002AD7C .text:0002AD7C loc_2AD7C ; CODE XREF: vfwprintf+1D24j .text:0002AD7C ; vfwprintf+1D34j .text:0002AD7C LDR R0, [R9,#0x58] .text:0002AD80 ADD R2, R0, #0x10 .text:0002AD84 LDMIA R2, {R2,R3} .text:0002AD88 CMP R2, R3 .text:0002AD8C SUB R3, R11, #-var_1000 .text:0002AD90 LDR R4, [R3,#-0x78] .text:0002AD94 ADD R4, R4, #4 .text:0002AD98 STR R4, [R3,#-0x78] .text:0002AD9C SUB R4, R4, #4 .text:0002ADA0 LDR R1, [R4],#4 .text:0002ADA4 BCC loc_2ADB8 .text:0002ADA8 MOV R0, R9 .text:0002ADAC BL __woverflow .text:0002ADB0 CMN R0, #1 .text:0002ADB4 B loc_2ADC4 .text:0002ADB8 ; --------------------------------------------------------------------------- .text:0002ADB8 .text:0002ADB8 loc_2ADB8 ; CODE XREF: vfwprintf+1D78j .text:0002ADB8 STR R1, [R2],#4 .text:0002ADBC CMN R1, #1 .text:0002ADC0 STR R2, [R0,#0x10] .text:0002ADC4 .text:0002ADC4 loc_2ADC4 ; CODE XREF: vfwprintf+1D88j .text:0002ADC4 BEQ loc_2AF38 .text:0002ADC8 ADD R10, R10, #1 .text:0002ADCC SUB R5, R11, #-var_1000 .text:0002ADD0 LDR R5, [R5,#-0xB4] .text:0002ADD4 CMP R5, #0 .text:0002ADD8 BEQ loc_2B090 .text:0002ADDC SUB R12, R11, #-var_1000 .text:0002ADE0 LDR R12, [R12,#-0xD0] .text:0002ADE4 CMP R12, #0 .text:0002ADE8 BLE loc_2B090 .text:0002ADEC MOV R0, R9 .text:0002ADF0 MOV R1, #0x20 .text:0002ADF4 SUB LR, R11, #-var_1000 .text:0002ADF8 LDR R2, [LR,#-0xD0] .text:0002ADFC .text:0002ADFC loc_2ADFC ; CODE XREF: vfwprintf+17C8j .text:0002ADFC ; vfwprintf+1D00j .text:0002ADFC BL _IO_wpadn .text:0002AE00 ADD R10, R10, R0 .text:0002AE04 B loc_2B090 .text:0002AE08 ; --------------------------------------------------------------------------- .text:0002AE08 SUB R0, R11, #-var_1000 .text:0002AE0C LDR R1, [R0,#-0x78] .text:0002AE10 ADD R1, R1, #4 .text:0002AE14 STR R1, [R0,#-0x78] .text:0002AE18 SUB R1, R1, #4 .text:0002AE1C LDR R7, [R1],#4 .text:0002AE20 .text:0002AE20 loc_2AE20 ; CODE XREF: vfwprintf+1B94j .text:0002AE20 ; vfwprintf+1C18j .text:0002AE20 MOV R8, #0 .text:0002AE24 CMP R7, R8 .text:0002AE28 BNE loc_2AE68 .text:0002AE2C SUB R2, R11, #-var_1000 .text:0002AE30 LDR R2, [R2,#-0xD4] .text:0002AE34 CMP R2, #5 .text:0002AE38 MOVLE R3, #0 .text:0002AE3C MOVGT R3, #1 .text:0002AE40 CMN R2, #1 .text:0002AE44 MOVNE R0, R3 .text:0002AE48 MOVEQ R0, #1 .text:0002AE4C CMP R0, R8 .text:0002AE50 MOVNE R5, #6 .text:0002AE54 LDRNE R7, =null_0 .text:0002AE58 BNE loc_2AF7C .text:0002AE5C MOV R5, R0 .text:0002AE60 LDR R7, =dword_57454 .text:0002AE64 B loc_2AF7C .text:0002AE68 ; --------------------------------------------------------------------------- .text:0002AE68 .text:0002AE68 loc_2AE68 ; CODE XREF: vfwprintf+1DFCj .text:0002AE68 SUB R5, R11, #-var_1000 .text:0002AE6C LDR R5, [R5,#-0xE0] .text:0002AE70 SUB R12, R11, #-var_1000 .text:0002AE74 LDR R12, [R12,#-0xC8] .text:0002AE78 SUBS R3, R5, #0x53 .text:0002AE7C MOVNE R3, #1 .text:0002AE80 CMP R12, #0 .text:0002AE84 MOVNE R3, #0 .text:0002AE88 CMP R3, #0 .text:0002AE8C BEQ loc_2AF40 .text:0002AE90 MOV R3, 0xFFFFEFD8 .text:0002AE98 SUB LR, R11, #-var_1000 .text:0002AE9C LDR LR, [LR,#-0xD4] .text:0002AEA0 SUB R0, R11, #-var_28 .text:0002AEA4 STR R7, [R0,R3] .text:0002AEA8 CMN LR, #1 .text:0002AEAC BNE loc_2AEC0 .text:0002AEB0 MOV R0, R7 .text:0002AEB4 BL strlen .text:0002AEB8 MOV R5, R0 .text:0002AEBC B loc_2AEC8 .text:0002AEC0 ; --------------------------------------------------------------------------- .text:0002AEC0 .text:0002AEC0 loc_2AEC0 ; CODE XREF: vfwprintf+1E80j .text:0002AEC0 SUB R1, R11, #-var_1000 .text:0002AEC4 LDR R5, [R1,#-0xD4] .text:0002AEC8 .text:0002AEC8 loc_2AEC8 ; CODE XREF: vfwprintf+1E90j .text:0002AEC8 CMP R5, #0x2000 .text:0002AECC MOV R4, R5,LSL#2 .text:0002AED0 BCC loc_2AEE4 .text:0002AED4 MOV R0, R4 .text:0002AED8 BL malloc .text:0002AEDC SUBS R7, R0, #0 .text:0002AEE0 BNE loc_2AEF0 .text:0002AEE4 .text:0002AEE4 loc_2AEE4 ; CODE XREF: vfwprintf+1EA4j .text:0002AEE4 RSB SP, R4, SP .text:0002AEE8 ADD R7, SP, #0x1154+var_1150 .text:0002AEEC B loc_2AEF4 .text:0002AEF0 ; --------------------------------------------------------------------------- .text:0002AEF0 .text:0002AEF0 loc_2AEF0 ; CODE XREF: vfwprintf+1EB4j .text:0002AEF0 MOV R8, #1 .text:0002AEF4 .text:0002AEF4 loc_2AEF4 ; CODE XREF: vfwprintf+1EC0j .text:0002AEF4 SUB R4, R11, #-var_1000 .text:0002AEF8 SUB R4, R4, #0x28 .text:0002AEFC SUB R4, R4, #0x24 .text:0002AF00 MOV R0, R4 .text:0002AF04 MOV R1, #0 .text:0002AF08 MOV R2, #8 .text:0002AF0C BL memset .text:0002AF10 MOV R0, R7 .text:0002AF14 SUB R1, R11, #-var_1000 .text:0002AF18 SUB R1, R1, #0x28 .text:0002AF1C SUB R1, R1, #0x28 .text:0002AF20 MOV R2, R5 .text:0002AF24 MOV R3, R4 .text:0002AF28 BL mbsrtowcs .text:0002AF2C MOV R5, R0 .text:0002AF30 CMN R5, #1 .text:0002AF34 BNE loc_2AF7C .text:0002AF38 .text:0002AF38 loc_2AF38 ; CODE XREF: vfwprintf+CB8j .text:0002AF38 ; vfwprintf+13A8j ... .text:0002AF38 MOV R10, 0xFFFFFFFF .text:0002AF3C B loc_2DAE8 .text:0002AF40 ; --------------------------------------------------------------------------- .text:0002AF40 .text:0002AF40 loc_2AF40 ; CODE XREF: vfwprintf+1E60j .text:0002AF40 SUB R2, R11, #-var_1000 .text:0002AF44 LDR R2, [R2,#-0xD4] .text:0002AF48 CMN R2, #1 .text:0002AF4C BEQ loc_2AF70 .text:0002AF50 MOV R0, R7 .text:0002AF54 SUB R3, R11, #-var_1000 .text:0002AF58 LDR R1, [R3,#-0xD4] .text:0002AF5C BL wcsnlen .text:0002AF60 B loc_2AF78 .text:0002AF60 ; --------------------------------------------------------------------------- .text:0002AF64 off_2AF64 DCD dword_5743C ; DATA XREF: vfwprintf+1B88r .text:0002AF68 off_2AF68 DCD null_0 ; DATA XREF: vfwprintf+1E28r .text:0002AF6C off_2AF6C DCD dword_57454 ; DATA XREF: vfwprintf+1E34r .text:0002AF70 ; --------------------------------------------------------------------------- .text:0002AF70 .text:0002AF70 loc_2AF70 ; CODE XREF: vfwprintf+1F20j .text:0002AF70 MOV R0, R7 .text:0002AF74 BL wcslen .text:0002AF78 .text:0002AF78 loc_2AF78 ; CODE XREF: vfwprintf+1F34j .text:0002AF78 MOV R5, R0 .text:0002AF7C .text:0002AF7C loc_2AF7C ; CODE XREF: vfwprintf+1E2Cj .text:0002AF7C ; vfwprintf+1E38j ... .text:0002AF7C SUB R4, R11, #-var_1000 .text:0002AF80 LDR R4, [R4,#-0xD0] .text:0002AF84 SUBS R12, R4, R5 .text:0002AF88 SUB R4, R11, #-var_1000 .text:0002AF8C STR R12, [R4,#-0xD0] .text:0002AF90 BPL loc_2AFC8 .text:0002AF94 MOV R0, R9 .text:0002AF98 LDRB R3, [R9,#0x46] .text:0002AF9C MOV R1, R7 .text:0002AFA0 MOV R3, R3,LSL#24 .text:0002AFA4 ADD R3, R9, R3,ASR#24 .text:0002AFA8 LDR R12, [R3,#0x94] .text:0002AFAC MOV R2, R5 .text:0002AFB0 MOV LR, PC .text:0002AFB4 LDR PC, [R12,#0x1C] .text:0002AFB8 CMP R0, R5 .text:0002AFBC BNE loc_2AF38 .text:0002AFC0 ADD R10, R10, R5 .text:0002AFC4 B loc_2B090 .text:0002AFC8 ; --------------------------------------------------------------------------- .text:0002AFC8 .text:0002AFC8 loc_2AFC8 ; CODE XREF: vfwprintf+1F64j .text:0002AFC8 SUB R12, R11, #-var_1000 .text:0002AFCC LDR R12, [R12,#-0xB4] .text:0002AFD0 CMP R12, #0 .text:0002AFD4 BNE loc_2B000 .text:0002AFD8 SUB LR, R11, #-var_1000 .text:0002AFDC LDR LR, [LR,#-0xD0] .text:0002AFE0 CMP LR, #0 .text:0002AFE4 BLE loc_2B000 .text:0002AFE8 MOV R0, R9 .text:0002AFEC MOV R1, #0x20 .text:0002AFF0 SUB R3, R11, #-var_1000 .text:0002AFF4 LDR R2, [R3,#-0xD0] .text:0002AFF8 BL _IO_wpadn .text:0002AFFC ADD R10, R10, R0 .text:0002B000 .text:0002B000 loc_2B000 ; CODE XREF: vfwprintf+1FA8j .text:0002B000 ; vfwprintf+1FB8j .text:0002B000 MOV R0, R9 .text:0002B004 LDRB R3, [R9,#0x46] .text:0002B008 MOV R1, R7 .text:0002B00C MOV R3, R3,LSL#24 .text:0002B010 ADD R3, R9, R3,ASR#24 .text:0002B014 LDR R12, [R3,#0x94] .text:0002B018 MOV R2, R5 .text:0002B01C MOV LR, PC .text:0002B020 LDR PC, [R12,#0x1C] .text:0002B024 CMP R0, R5 .text:0002B028 BNE loc_2AF38 .text:0002B02C ADD R10, R10, R5 .text:0002B030 SUB R4, R11, #-var_1000 .text:0002B034 LDR R4, [R4,#-0xB4] .text:0002B038 CMP R4, #0 .text:0002B03C BEQ loc_2B068 .text:0002B040 SUB R5, R11, #-var_1000 .text:0002B044 LDR R5, [R5,#-0xD0] .text:0002B048 CMP R5, #0 .text:0002B04C BLE loc_2B068 .text:0002B050 MOV R0, R9 .text:0002B054 MOV R1, #0x20 .text:0002B058 SUB R12, R11, #-var_1000 .text:0002B05C LDR R2, [R12,#-0xD0] .text:0002B060 BL _IO_wpadn .text:0002B064 ADD R10, R10, R0 .text:0002B068 .text:0002B068 loc_2B068 ; CODE XREF: vfwprintf+2010j .text:0002B068 ; vfwprintf+2020j .text:0002B068 CMP R8, #0 .text:0002B06C BEQ loc_2B090 .text:0002B070 MOV R0, R7 .text:0002B074 BL free .text:0002B078 B loc_2B090 .text:0002B07C ; --------------------------------------------------------------------------- .text:0002B07C .text:0002B07C loc_2B07C ; DATA XREF: vfwprintf:loc_29290o .text:0002B07C ; vfwprintf:loc_292ECo ... .text:0002B07C SUB LR, R11, #-var_1000 .text:0002B080 LDR LR, [LR,#-0xE0] .text:0002B084 CMP LR, #0 .text:0002B088 BNE loc_2B138 .text:0002B08C B loc_2AF38 .text:0002B090 ; --------------------------------------------------------------------------- .text:0002B090 .text:0002B090 loc_2B090 ; CODE XREF: vfwprintf+930j .text:0002B090 ; vfwprintf+950j ... .text:0002B090 SUB R5, R11, #-var_1000 .text:0002B094 SUB R5, R5, #0x28 .text:0002B098 SUB R5, R5, #8 .text:0002B09C LDR R4, [R5] .text:0002B0A0 ADD R4, R4, #4 .text:0002B0A4 STR R4, [R5] .text:0002B0A8 MOV R1, #0x25 .text:0002B0AC MOV R0, R4 .text:0002B0B0 BL wcschrnul .text:0002B0B4 MOV R2, R0 .text:0002B0B8 STR R2, [R5] .text:0002B0BC SUB R0, R11, #-var_1000 .text:0002B0C0 LDR R0, [R0,#-0x90] .text:0002B0C4 ADD R1, R0, #1 .text:0002B0C8 SUB R0, R11, #-var_1000 .text:0002B0CC STR R1, [R0,#-0x90] .text:0002B0D0 LDRB R3, [R9,#0x46] .text:0002B0D4 MOV R0, R9 .text:0002B0D8 MOV R1, R4 .text:0002B0DC MOV R3, R3,LSL#24 .text:0002B0E0 ADD R3, R9, R3,ASR#24 .text:0002B0E4 RSB R2, R4, R2 .text:0002B0E8 LDR R12, [R3,#0x94] .text:0002B0EC MOV R2, R2,ASR#2 .text:0002B0F0 MOV LR, PC .text:0002B0F4 LDR PC, [R12,#0x1C] .text:0002B0F8 LDR R3, [R5] .text:0002B0FC RSB R4, R4, R3 .text:0002B100 CMP R0, R4,ASR#2 .text:0002B104 BNE loc_2AF38 .text:0002B108 ADD R10, R10, R0 .text:0002B10C LDR R3, [R3] .text:0002B110 CMP R3, #0 .text:0002B114 BNE loc_291C4 .text:0002B118 B loc_2DAE8 .text:0002B11C ; --------------------------------------------------------------------------- .text:0002B11C .text:0002B11C loc_2B11C ; CODE XREF: vfwprintf+60j .text:0002B11C BL __errno_location .text:0002B120 MOV R3, #9 .text:0002B124 .text:0002B124 loc_2B124 ; CODE XREF: vfwprintf+74j .text:0002B124 STR R3, [R0] .text:0002B128 .text:0002B128 loc_2B128 ; CODE XREF: vfwprintf+54j .text:0002B128 ; vfwprintf+90j .text:0002B128 MOV R0, 0xFFFFFFFF .text:0002B12C B loc_2DB20 .text:0002B130 ; --------------------------------------------------------------------------- .text:0002B130 .text:0002B130 loc_2B130 ; CODE XREF: vfwprintf+17Cj .text:0002B130 SUB R1, R11, #-var_1000 .text:0002B134 B loc_2AF38 .text:0002B138 ; --------------------------------------------------------------------------- .text:0002B138 .text:0002B138 loc_2B138 ; CODE XREF: vfwprintf+618j .text:0002B138 ; vfwprintf+768j ... .text:0002B138 MOV R3, #0 .text:0002B13C SUB R2, R11, #-var_1000 .text:0002B140 MOV R5, #0x20 .text:0002B144 STR R3, [R2,#-0xE4] .text:0002B148 MOV R4, R2 .text:0002B14C SUB SP, SP, #0x600 .text:0002B150 STR R5, [R4,#-0xE8] .text:0002B154 ADD LR, SP, #0x1754+var_1750 .text:0002B158 MOV R12, R2 .text:0002B15C STR LR, [R12,#-0xEC] .text:0002B160 MOV R0, R2 .text:0002B164 STR R3, [R0,#-0xF0] .text:0002B168 MOV R1, R0 .text:0002B16C MOV R3, 0xFFFFEFFF .text:0002B170 LDR R1, [R1,#-0x80] .text:0002B174 SUB R3, R3, #0x2B .text:0002B178 LDR R4, [R2,#-0xE4] .text:0002B17C SUB R2, R11, #-var_28 .text:0002B180 CMN R1, #1 .text:0002B184 STR R4, [R2,R3] .text:0002B188 BNE loc_2B1B8 .text:0002B18C LDR R3, =_nl_current_LC_NUMERIC .text:0002B190 LDR R2, [R3] .text:0002B194 LDR R12, [R2,#0x28] .text:0002B198 LDR R2, [R2,#0x30] .text:0002B19C LDRB R3, [R12] .text:0002B1A0 MOV R1, R0 .text:0002B1A4 STR R2, [R0,#-0x7C] .text:0002B1A8 CMP R3, #0xFF .text:0002B1AC CMPNE R3, #0 .text:0002B1B0 MOVEQ R12, #0 .text:0002B1B4 STR R12, [R1,#-0x80] .text:0002B1B8 .text:0002B1B8 loc_2B1B8 ; CODE XREF: vfwprintf+215Cj .text:0002B1B8 SUB R3, R11, #-var_1000 .text:0002B1BC SUB R3, R3, #0x28 .text:0002B1C0 SUB R2, R11, #-var_1000 .text:0002B1C4 LDR R2, [R2,#-0x84] .text:0002B1C8 SUB R3, R3, #8 .text:0002B1CC STR R2, [R3] .text:0002B1D0 SUB R6, R11, #-var_1000 .text:0002B1D4 SUB R6, R6, #0x28 .text:0002B1D8 LDR R3, [R2] .text:0002B1DC SUB R6, R6, #0x2C .text:0002B1E0 CMP R3, #0 .text:0002B1E4 BEQ loc_2BC3C .text:0002B1E8 SUB R8, R11, #-var_1000 .text:0002B1EC SUB R8, R8, #0x28 .text:0002B1F0 SUB R8, R8, #0x30 .text:0002B1F4 .text:0002B1F4 loc_2B1F4 ; CODE XREF: vfwprintf+2C0Cj .text:0002B1F4 SUB R5, R11, #-var_1000 .text:0002B1F8 SUB R5, R5, #0xE8 .text:0002B1FC LDMIA R5, {R5,R12} .text:0002B200 CMP R12, R5 .text:0002B204 MOV LR, R12,LSL#1 .text:0002B208 SUB R12, R11, #-var_1000 .text:0002B20C STR LR, [R12,#-0x150] .text:0002B210 BCC loc_2B2A0 .text:0002B214 MOV R1, R5,LSL#1 .text:0002B218 MOV R0, R12 .text:0002B21C ADD R3, R1, R1,LSL#1 .text:0002B220 STR R1, [R0,#-0xE8] .text:0002B224 SUB SP, SP, R3,LSL#4 .text:0002B228 MOV R3, R0 .text:0002B22C MOV R4, R0 .text:0002B230 LDR R5, [R3,#-0xEC] .text:0002B234 ADD R12, SP, #0x1754+var_1750 .text:0002B238 STR R12, [R4,#-0xEC] .text:0002B23C LDR R0, [R0,#-0xE4] .text:0002B240 ADD R3, LR, R0 .text:0002B244 MOV R4, R3,LSL#4 .text:0002B248 ADD R2, R5, R4 .text:0002B24C CMP R12, R2 .text:0002B250 ADDEQ R3, R1, R1,LSR#1 .text:0002B254 SUBEQ R2, R11, #-var_1000 .text:0002B258 STREQ R3, [R2,#-0xE8] .text:0002B25C BEQ loc_2B2A0 .text:0002B260 SUB R12, R11, #-var_1000 .text:0002B264 MOV R1, R5 .text:0002B268 LDR R0, [R12,#-0xEC] .text:0002B26C MOV R2, R4 .text:0002B270 BL memcpy .text:0002B274 SUB LR, R11, #-var_1000 .text:0002B278 LDR LR, [LR,#-0xEC] .text:0002B27C ADD R3, LR, R4 .text:0002B280 CMP R5, R3 .text:0002B284 BNE loc_2B2A0 .text:0002B288 SUB R0, R11, #-var_1000 .text:0002B28C LDR R1, [R0,#-0xE8] .text:0002B290 MOV R0, R1 .text:0002B294 ADD R1, R1, R0,LSR#1 .text:0002B298 SUB R0, R11, #-var_1000 .text:0002B29C STR R1, [R0,#-0xE8] .text:0002B2A0 .text:0002B2A0 loc_2B2A0 ; CODE XREF: vfwprintf+21E4j .text:0002B2A0 ; vfwprintf+2230j ... .text:0002B2A0 SUB R1, R11, #-var_1000 .text:0002B2A4 LDR R3, [R1,#-0x30] .text:0002B2A8 ADD R3, R3, #4 .text:0002B2AC STR R3, [R8] .text:0002B2B0 MOV R3, R1 .text:0002B2B4 LDR R4, [R3,#-0x150] .text:0002B2B8 LDR R3, [R3,#-0xE4] .text:0002B2BC MOV R5, R1 .text:0002B2C0 LDR R5, [R5,#-0xEC] .text:0002B2C4 ADD R2, R4, R3 .text:0002B2C8 ADD R4, R5, R2,LSL#4 .text:0002B2CC MOV R3, 0xFFFFFFFF .text:0002B2D0 STR R3, [R4,#0x24] .text:0002B2D4 MOV R2, #0x20 .text:0002B2D8 STR R2, [R4,#0x10] .text:0002B2DC LDRB R3, [R4,#0xC] .text:0002B2E0 LDRB R2, [R4,#0xD] .text:0002B2E4 AND R3, R3, #7 .text:0002B2E8 STRB R3, [R4,#0xC] .text:0002B2EC AND R2, R2, #0xF7 .text:0002B2F0 ORR R2, R2, #4 .text:0002B2F4 STRB R2, [R4,#0xD] .text:0002B2F8 MOV R12, R1 .text:0002B2FC LDR LR, [R12,#-0xF0] .text:0002B300 STR LR, [R12,#-0xF8] .text:0002B304 MOV R0, R12 .text:0002B308 MOV R1, #0 .text:0002B30C STR R1, [R0,#-0xFC] .text:0002B310 SUB R5, R11, #-var_1000 .text:0002B314 SUB R5, R5, #0x28 .text:0002B318 LDR LR, [R8] .text:0002B31C SUB R5, R5, #0x30 .text:0002B320 LDR R3, [LR] .text:0002B324 MOV R2, R0 .text:0002B328 LDR R2, [R2,#-0xE4] .text:0002B32C SUB R1, R3, #0x30 .text:0002B330 CMP R1, #9 .text:0002B334 ADD R3, R2, #1 .text:0002B338 MOV R2, R0 .text:0002B33C STR R3, [R2,#-0x14C] .text:0002B340 BHI loc_2B3C8 .text:0002B344 ADD R3, LR, #4 .text:0002B348 STR R3, [R8] .text:0002B34C LDR R3, [LR,#4] .text:0002B350 MOV R7, R5 .text:0002B354 B loc_2B37C .text:0002B358 ; --------------------------------------------------------------------------- .text:0002B358 .text:0002B358 loc_2B358 ; CODE XREF: vfwprintf+2358j .text:0002B358 LDR R0, [R7] .text:0002B35C MOV R3, R0 .text:0002B360 LDR R12, [R3],#4 .text:0002B364 STR R3, [R7] .text:0002B368 ADD R2, R1, R1,LSL#2 .text:0002B36C MOV R1, R2,LSL#1 .text:0002B370 SUB R1, R1, #0x30 .text:0002B374 LDR R3, [R0,#4] .text:0002B378 ADD R1, R1, R12 .text:0002B37C .text:0002B37C loc_2B37C ; CODE XREF: vfwprintf+2328j .text:0002B37C SUB R3, R3, #0x30 .text:0002B380 CMP R3, #9 .text:0002B384 BLS loc_2B358 .text:0002B388 CMP R1, #0 .text:0002B38C BEQ loc_2B3C4 .text:0002B390 LDR R2, [R5] .text:0002B394 LDR R3, [R2] .text:0002B398 CMP R3, #0x24 .text:0002B39C BNE loc_2B3C4 .text:0002B3A0 ADD R3, R2, #4 .text:0002B3A4 STR R3, [R5] .text:0002B3A8 SUB R2, R1, #1 .text:0002B3AC STR R2, [R4,#0x24] .text:0002B3B0 LDR R3, [R6] .text:0002B3B4 CMP R1, R3 .text:0002B3B8 STRCS R1, [R6] .text:0002B3BC STRCC R3, [R6] .text:0002B3C0 B loc_2B3C8 .text:0002B3C4 ; --------------------------------------------------------------------------- .text:0002B3C4 .text:0002B3C4 loc_2B3C4 ; CODE XREF: vfwprintf+2360j .text:0002B3C4 ; vfwprintf+2370j .text:0002B3C4 STR LR, [R5] .text:0002B3C8 .text:0002B3C8 loc_2B3C8 ; CODE XREF: vfwprintf+2314j .text:0002B3C8 ; vfwprintf+2394j .text:0002B3C8 MOV R0, R5 .text:0002B3CC MOV R12, #0x30 .text:0002B3D0 .text:0002B3D0 loc_2B3D0 ; CODE XREF: vfwprintf+24E8j .text:0002B3D0 LDR R2, [R0] .text:0002B3D4 LDR R3, [R2] .text:0002B3D8 SUB R3, R3, #0x20 .text:0002B3DC CMP R3, #0x29 ; switch 42 cases .text:0002B3E0 LDRLS PC, [PC,R3,LSL#2] ; switch jump .text:0002B3E4 B loc_2B4F8 ; jumptable 0002B3E0 default case .text:0002B3E4 ; --------------------------------------------------------------------------- .text:0002B3E8 DCD loc_2B490 ; jump table for switch statement .text:0002B3E8 DCD loc_2B518 .text:0002B3E8 DCD loc_2B518 .text:0002B3E8 DCD loc_2B4C0 .text:0002B3E8 DCD loc_2B518 .text:0002B3E8 DCD loc_2B518 .text:0002B3E8 DCD loc_2B518 .text:0002B3E8 DCD loc_2B4D8 .text:0002B3E8 DCD loc_2B518 .text:0002B3E8 DCD loc_2B518 .text:0002B3E8 DCD loc_2B518 .text:0002B3E8 DCD loc_2B4A0 .text:0002B3E8 DCD loc_2B518 .text:0002B3E8 DCD loc_2B4B0 .text:0002B3E8 DCD loc_2B518 .text:0002B3E8 DCD loc_2B518 .text:0002B3E8 DCD loc_2B4D0 .text:0002B3E8 DCD loc_2B518 .text:0002B3E8 DCD loc_2B518 .text:0002B3E8 DCD loc_2B518 .text:0002B3E8 DCD loc_2B518 .text:0002B3E8 DCD loc_2B518 .text:0002B3E8 DCD loc_2B518 .text:0002B3E8 DCD loc_2B518 .text:0002B3E8 DCD loc_2B518 .text:0002B3E8 DCD loc_2B518 .text:0002B3E8 DCD loc_2B518 .text:0002B3E8 DCD loc_2B518 .text:0002B3E8 DCD loc_2B518 .text:0002B3E8 DCD loc_2B518 .text:0002B3E8 DCD loc_2B518 .text:0002B3E8 DCD loc_2B518 .text:0002B3E8 DCD loc_2B518 .text:0002B3E8 DCD loc_2B518 .text:0002B3E8 DCD loc_2B518 .text:0002B3E8 DCD loc_2B518 .text:0002B3E8 DCD loc_2B518 .text:0002B3E8 DCD loc_2B518 .text:0002B3E8 DCD loc_2B518 .text:0002B3E8 DCD loc_2B518 .text:0002B3E8 DCD loc_2B518 .text:0002B3E8 DCD loc_2B4E8 .text:0002B490 ; --------------------------------------------------------------------------- .text:0002B490 .text:0002B490 loc_2B490 ; CODE XREF: vfwprintf+23B4j .text:0002B490 ; DATA XREF: vfwprintf+23BCo .text:0002B490 LDRB R3, [R4,#0xC] ; jumptable 0002B3E0 case 0 .text:0002B494 ORR R3, R3, #0x10 .text:0002B498 STRB R3, [R4,#0xC] .text:0002B49C B loc_2B500 .text:0002B4A0 ; --------------------------------------------------------------------------- .text:0002B4A0 .text:0002B4A0 loc_2B4A0 ; CODE XREF: vfwprintf+23B4j .text:0002B4A0 ; DATA XREF: vfwprintf+23BCo .text:0002B4A0 LDRB R3, [R4,#0xC] ; jumptable 0002B3E0 case 11 .text:0002B4A4 ORR R3, R3, #0x40 .text:0002B4A8 STRB R3, [R4,#0xC] .text:0002B4AC B loc_2B500 .text:0002B4B0 ; --------------------------------------------------------------------------- .text:0002B4B0 .text:0002B4B0 loc_2B4B0 ; CODE XREF: vfwprintf+23B4j .text:0002B4B0 ; DATA XREF: vfwprintf+23BCo .text:0002B4B0 LDRB R3, [R4,#0xC] ; jumptable 0002B3E0 case 13 .text:0002B4B4 ORR R3, R3, #0x20 .text:0002B4B8 STRB R3, [R4,#0xC] .text:0002B4BC B loc_2B500 .text:0002B4C0 ; --------------------------------------------------------------------------- .text:0002B4C0 .text:0002B4C0 loc_2B4C0 ; CODE XREF: vfwprintf+23B4j .text:0002B4C0 ; DATA XREF: vfwprintf+23BCo .text:0002B4C0 LDRB R3, [R4,#0xC] ; jumptable 0002B3E0 case 3 .text:0002B4C4 ORR R3, R3, #8 .text:0002B4C8 STRB R3, [R4,#0xC] .text:0002B4CC B loc_2B500 .text:0002B4D0 ; --------------------------------------------------------------------------- .text:0002B4D0 .text:0002B4D0 loc_2B4D0 ; CODE XREF: vfwprintf+23B4j .text:0002B4D0 ; DATA XREF: vfwprintf+23BCo .text:0002B4D0 STR R12, [R4,#0x10] ; jumptable 0002B3E0 case 16 .text:0002B4D4 B loc_2B500 .text:0002B4D8 ; --------------------------------------------------------------------------- .text:0002B4D8 .text:0002B4D8 loc_2B4D8 ; CODE XREF: vfwprintf+23B4j .text:0002B4D8 ; DATA XREF: vfwprintf+23BCo .text:0002B4D8 LDRB R3, [R4,#0xC] ; jumptable 0002B3E0 case 7 .text:0002B4DC ORR R3, R3, #0x80 .text:0002B4E0 STRB R3, [R4,#0xC] .text:0002B4E4 B loc_2B500 .text:0002B4E8 ; --------------------------------------------------------------------------- .text:0002B4E8 .text:0002B4E8 loc_2B4E8 ; CODE XREF: vfwprintf+23B4j .text:0002B4E8 ; DATA XREF: vfwprintf+23BCo .text:0002B4E8 LDRB R3, [R4,#0xD] ; jumptable 0002B3E0 case 41 .text:0002B4EC ORR R3, R3, #8 .text:0002B4F0 STRB R3, [R4,#0xD] .text:0002B4F4 B loc_2B500 .text:0002B4F8 ; --------------------------------------------------------------------------- .text:0002B4F8 .text:0002B4F8 loc_2B4F8 ; CODE XREF: vfwprintf+23B8j .text:0002B4F8 B loc_2B518 ; jumptable 0002B3E0 default case .text:0002B4F8 ; --------------------------------------------------------------------------- .text:0002B4FC off_2B4FC DCD _nl_current_LC_NUMERIC ; DATA XREF: vfwprintf+2160r .text:0002B500 ; --------------------------------------------------------------------------- .text:0002B500 .text:0002B500 loc_2B500 ; CODE XREF: vfwprintf+2470j .text:0002B500 ; vfwprintf+2480j ... .text:0002B500 LDR R3, [R0] .text:0002B504 ADD R2, R3, #4 .text:0002B508 STR R2, [R8] .text:0002B50C LDR R1, [R3,#4] .text:0002B510 CMP R1, #0 .text:0002B514 BNE loc_2B3D0 .text:0002B518 .text:0002B518 loc_2B518 ; CODE XREF: vfwprintf+23B4j .text:0002B518 ; vfwprintf:loc_2B4F8j .text:0002B518 ; DATA XREF: ... .text:0002B518 LDRB R3, [R4,#0xC] ; jumptable 0002B3E0 cases 1,2,4-6,8-10,12,14,15,17-40 .text:0002B51C TST R3, #0x20 .text:0002B520 MOVNE R3, #0x20 .text:0002B524 STRNE R3, [R4,#0x10] .text:0002B528 MOV R3, 0xFFFFFFFF .text:0002B52C STR R3, [R4,#0x20] .text:0002B530 MOV R2, #0 .text:0002B534 STR R2, [R4,#4] .text:0002B538 LDR R2, [R5] .text:0002B53C LDR R3, [R2] .text:0002B540 CMP R3, #0x2A .text:0002B544 BNE loc_2B620 .text:0002B548 ADD LR, R2, #4 .text:0002B54C STR LR, [R5] .text:0002B550 LDR R2, [R8] .text:0002B554 LDR R3, [R2] .text:0002B558 SUB R1, R3, #0x30 .text:0002B55C CMP R1, #9 .text:0002B560 BHI loc_2B5E8 .text:0002B564 ADD R3, R2, #4 .text:0002B568 STR R3, [R8] .text:0002B56C LDR R2, [R2,#4] .text:0002B570 SUB R2, R2, #0x30 .text:0002B574 CMP R2, #9 .text:0002B578 BHI loc_2B5AC .text:0002B57C .text:0002B57C loc_2B57C ; CODE XREF: vfwprintf+257Cj .text:0002B57C LDR R0, [R5] .text:0002B580 MOV R3, R0 .text:0002B584 LDR R12, [R3],#4 .text:0002B588 STR R3, [R5] .text:0002B58C ADD R2, R1, R1,LSL#2 .text:0002B590 MOV R1, R2,LSL#1 .text:0002B594 SUB R1, R1, #0x30 .text:0002B598 LDR R3, [R0,#4] .text:0002B59C ADD R1, R1, R12 .text:0002B5A0 SUB R3, R3, #0x30 .text:0002B5A4 CMP R3, #9 .text:0002B5A8 BLS loc_2B57C .text:0002B5AC .text:0002B5AC loc_2B5AC ; CODE XREF: vfwprintf+254Cj .text:0002B5AC CMP R1, #0 .text:0002B5B0 BEQ loc_2B5E8 .text:0002B5B4 LDR R3, [R5] .text:0002B5B8 LDR R2, [R3] .text:0002B5BC CMP R2, #0x24 .text:0002B5C0 BNE loc_2B5E8 .text:0002B5C4 SUB R3, R1, #1 .text:0002B5C8 STR R3, [R4,#0x20] .text:0002B5CC LDR R2, [R6] .text:0002B5D0 CMP R1, R2 .text:0002B5D4 STRCS R1, [R6] .text:0002B5D8 STRCC R2, [R6] .text:0002B5DC LDR R3, [R5] .text:0002B5E0 ADD R3, R3, #4 .text:0002B5E4 STR R3, [R8] .text:0002B5E8 .text:0002B5E8 loc_2B5E8 ; CODE XREF: vfwprintf+2534j .text:0002B5E8 ; vfwprintf+2584j ... .text:0002B5E8 LDR R3, [R4,#0x20] .text:0002B5EC CMP R3, #0 .text:0002B5F0 BGE loc_2B678 .text:0002B5F4 SUB R3, R11, #-var_1000 .text:0002B5F8 LDR R3, [R3,#-0xF0] .text:0002B5FC STR R3, [R4,#0x20] .text:0002B600 SUB R12, R11, #-var_1000 .text:0002B604 ADD R0, R3, #1 .text:0002B608 STR R0, [R12,#-0xF8] .text:0002B60C MOV R2, #1 .text:0002B610 MOV R1, R12 .text:0002B614 STR R2, [R1,#-0xFC] .text:0002B618 STR LR, [R5] .text:0002B61C B loc_2B678 .text:0002B620 ; --------------------------------------------------------------------------- .text:0002B620 .text:0002B620 loc_2B620 ; CODE XREF: vfwprintf+2518j .text:0002B620 SUB R1, R3, #0x30 .text:0002B624 CMP R1, #9 .text:0002B628 BHI loc_2B678 .text:0002B62C ADD R3, R2, #4 .text:0002B630 STR R3, [R8] .text:0002B634 LDR R2, [R2,#4] .text:0002B638 SUB R2, R2, #0x30 .text:0002B63C CMP R2, #9 .text:0002B640 BHI loc_2B674 .text:0002B644 .text:0002B644 loc_2B644 ; CODE XREF: vfwprintf+2644j .text:0002B644 LDR R0, [R5] .text:0002B648 MOV R3, R0 .text:0002B64C LDR R12, [R3],#4 .text:0002B650 STR R3, [R5] .text:0002B654 ADD R2, R1, R1,LSL#2 .text:0002B658 MOV R1, R2,LSL#1 .text:0002B65C SUB R1, R1, #0x30 .text:0002B660 LDR R3, [R0,#4] .text:0002B664 ADD R1, R1, R12 .text:0002B668 SUB R3, R3, #0x30 .text:0002B66C CMP R3, #9 .text:0002B670 BLS loc_2B644 .text:0002B674 .text:0002B674 loc_2B674 ; CODE XREF: vfwprintf+2614j .text:0002B674 STR R1, [R4,#4] .text:0002B678 .text:0002B678 loc_2B678 ; CODE XREF: vfwprintf+25C4j .text:0002B678 ; vfwprintf+25F0j ... .text:0002B678 MOV R3, 0xFFFFFFFF .text:0002B67C STR R3, [R4,#0x1C] .text:0002B680 STR R3, [R4] .text:0002B684 LDR R2, [R5] .text:0002B688 LDR R3, [R2] .text:0002B68C CMP R3, #0x2E .text:0002B690 BNE loc_2B7F0 .text:0002B694 ADD R3, R2, #4 .text:0002B698 STR R3, [R5] .text:0002B69C LDR R2, [R8] .text:0002B6A0 LDR R3, [R2] .text:0002B6A4 CMP R3, #0x2A .text:0002B6A8 BNE loc_2B78C .text:0002B6AC ADD LR, R2, #4 .text:0002B6B0 STR LR, [R5] .text:0002B6B4 LDR R2, [R8] .text:0002B6B8 LDR R3, [R2] .text:0002B6BC SUB R1, R3, #0x30 .text:0002B6C0 CMP R1, #9 .text:0002B6C4 BHI loc_2B74C .text:0002B6C8 ADD R3, R2, #4 .text:0002B6CC STR R3, [R8] .text:0002B6D0 LDR R2, [R2,#4] .text:0002B6D4 SUB R2, R2, #0x30 .text:0002B6D8 CMP R2, #9 .text:0002B6DC BHI loc_2B710 .text:0002B6E0 .text:0002B6E0 loc_2B6E0 ; CODE XREF: vfwprintf+26E0j .text:0002B6E0 LDR R0, [R5] .text:0002B6E4 MOV R3, R0 .text:0002B6E8 LDR R12, [R3],#4 .text:0002B6EC STR R3, [R5] .text:0002B6F0 ADD R2, R1, R1,LSL#2 .text:0002B6F4 MOV R1, R2,LSL#1 .text:0002B6F8 SUB R1, R1, #0x30 .text:0002B6FC LDR R3, [R0,#4] .text:0002B700 ADD R1, R1, R12 .text:0002B704 SUB R3, R3, #0x30 .text:0002B708 CMP R3, #9 .text:0002B70C BLS loc_2B6E0 .text:0002B710 .text:0002B710 loc_2B710 ; CODE XREF: vfwprintf+26B0j .text:0002B710 CMP R1, #0 .text:0002B714 BEQ loc_2B74C .text:0002B718 LDR R3, [R5] .text:0002B71C LDR R2, [R3] .text:0002B720 CMP R2, #0x24 .text:0002B724 BNE loc_2B74C .text:0002B728 SUB R3, R1, #1 .text:0002B72C STR R3, [R4,#0x1C] .text:0002B730 LDR R2, [R6] .text:0002B734 CMP R1, R2 .text:0002B738 STRCS R1, [R6] .text:0002B73C STRCC R2, [R6] .text:0002B740 LDR R3, [R5] .text:0002B744 ADD R3, R3, #4 .text:0002B748 STR R3, [R8] .text:0002B74C .text:0002B74C loc_2B74C ; CODE XREF: vfwprintf+2698j .text:0002B74C ; vfwprintf+26E8j ... .text:0002B74C LDR R3, [R4,#0x1C] .text:0002B750 CMP R3, #0 .text:0002B754 BGE loc_2B7F0 .text:0002B758 SUB R3, R11, #-var_1000 .text:0002B75C LDR R3, [R3,#-0xF8] .text:0002B760 STR R3, [R4,#0x1C] .text:0002B764 SUB R12, R11, #-var_1000 .text:0002B768 ADD R0, R3, #1 .text:0002B76C STR R0, [R12,#-0xF8] .text:0002B770 MOV R1, R12 .text:0002B774 LDR R1, [R1,#-0xFC] .text:0002B778 ADD R2, R1, #1 .text:0002B77C MOV R1, R12 .text:0002B780 STR R2, [R1,#-0xFC] .text:0002B784 STR LR, [R5] .text:0002B788 B loc_2B7F0 .text:0002B78C ; --------------------------------------------------------------------------- .text:0002B78C .text:0002B78C loc_2B78C ; CODE XREF: vfwprintf+267Cj .text:0002B78C SUB R1, R3, #0x30 .text:0002B790 CMP R1, #9 .text:0002B794 BHI loc_2B7E8 .text:0002B798 ADD R3, R2, #4 .text:0002B79C STR R3, [R8] .text:0002B7A0 LDR R2, [R2,#4] .text:0002B7A4 SUB R2, R2, #0x30 .text:0002B7A8 CMP R2, #9 .text:0002B7AC BHI loc_2B7E0 .text:0002B7B0 .text:0002B7B0 loc_2B7B0 ; CODE XREF: vfwprintf+27B0j .text:0002B7B0 LDR R0, [R5] .text:0002B7B4 MOV R3, R0 .text:0002B7B8 LDR R12, [R3],#4 .text:0002B7BC STR R3, [R5] .text:0002B7C0 ADD R2, R1, R1,LSL#2 .text:0002B7C4 MOV R1, R2,LSL#1 .text:0002B7C8 SUB R1, R1, #0x30 .text:0002B7CC LDR R3, [R0,#4] .text:0002B7D0 ADD R1, R1, R12 .text:0002B7D4 SUB R3, R3, #0x30 .text:0002B7D8 CMP R3, #9 .text:0002B7DC BLS loc_2B7B0 .text:0002B7E0 .text:0002B7E0 loc_2B7E0 ; CODE XREF: vfwprintf+2780j .text:0002B7E0 STR R1, [R4] .text:0002B7E4 B loc_2B7F0 .text:0002B7E8 ; --------------------------------------------------------------------------- .text:0002B7E8 .text:0002B7E8 loc_2B7E8 ; CODE XREF: vfwprintf+2768j .text:0002B7E8 MOV R3, #0 .text:0002B7EC STR R3, [R4] .text:0002B7F0 .text:0002B7F0 loc_2B7F0 ; CODE XREF: vfwprintf+2664j .text:0002B7F0 ; vfwprintf+2728j ... .text:0002B7F0 LDRB R3, [R4,#0xC] .text:0002B7F4 LDRB R2, [R4,#0xD] .text:0002B7F8 AND R3, R3, #0xF8 .text:0002B7FC STRB R3, [R4,#0xC] .text:0002B800 AND R2, R2, #0xFD .text:0002B804 STRB R2, [R4,#0xD] .text:0002B808 LDR R1, [R5] .text:0002B80C LDR R3, [R1],#4 .text:0002B810 SUB R3, R3, #0x4C .text:0002B814 STR R1, [R8] .text:0002B818 CMP R3, #0x2E ; switch 47 cases .text:0002B81C LDRLS PC, [PC,R3,LSL#2] ; switch jump .text:0002B820 B loc_2B968 ; jumptable 0002B81C default case .text:0002B820 ; --------------------------------------------------------------------------- .text:0002B824 DCD loc_2B938 ; jump table for switch statement .text:0002B824 DCD loc_2B968 .text:0002B824 DCD loc_2B968 .text:0002B824 DCD loc_2B968 .text:0002B824 DCD loc_2B968 .text:0002B824 DCD loc_2B968 .text:0002B824 DCD loc_2B968 .text:0002B824 DCD loc_2B968 .text:0002B824 DCD loc_2B968 .text:0002B824 DCD loc_2B968 .text:0002B824 DCD loc_2B968 .text:0002B824 DCD loc_2B968 .text:0002B824 DCD loc_2B968 .text:0002B824 DCD loc_2B968 .text:0002B824 DCD loc_2B948 .text:0002B824 DCD loc_2B968 .text:0002B824 DCD loc_2B968 .text:0002B824 DCD loc_2B968 .text:0002B824 DCD loc_2B968 .text:0002B824 DCD loc_2B968 .text:0002B824 DCD loc_2B968 .text:0002B824 DCD loc_2B968 .text:0002B824 DCD loc_2B968 .text:0002B824 DCD loc_2B968 .text:0002B824 DCD loc_2B968 .text:0002B824 DCD loc_2B968 .text:0002B824 DCD loc_2B968 .text:0002B824 DCD loc_2B968 .text:0002B824 DCD loc_2B8E0 .text:0002B824 DCD loc_2B968 .text:0002B824 DCD loc_2B958 .text:0002B824 DCD loc_2B968 .text:0002B824 DCD loc_2B914 .text:0002B824 DCD loc_2B968 .text:0002B824 DCD loc_2B968 .text:0002B824 DCD loc_2B968 .text:0002B824 DCD loc_2B968 .text:0002B824 DCD loc_2B938 .text:0002B824 DCD loc_2B968 .text:0002B824 DCD loc_2B968 .text:0002B824 DCD loc_2B948 .text:0002B824 DCD loc_2B968 .text:0002B824 DCD loc_2B968 .text:0002B824 DCD loc_2B968 .text:0002B824 DCD loc_2B968 .text:0002B824 DCD loc_2B968 .text:0002B824 DCD loc_2B948 .text:0002B8E0 ; --------------------------------------------------------------------------- .text:0002B8E0 .text:0002B8E0 loc_2B8E0 ; CODE XREF: vfwprintf+27F0j .text:0002B8E0 ; DATA XREF: vfwprintf+27F8o .text:0002B8E0 LDR R2, [R5] ; jumptable 0002B81C case 28 .text:0002B8E4 LDR R3, [R2] .text:0002B8E8 CMP R3, #0x68 .text:0002B8EC LDRNEB R3, [R4,#0xC] .text:0002B8F0 ORRNE R3, R3, #2 .text:0002B8F4 STRNEB R3, [R4,#0xC] .text:0002B8F8 BNE loc_2B974 .text:0002B8FC ADD R2, R2, #4 .text:0002B900 STR R2, [R5] .text:0002B904 LDRB R3, [R4,#0xD] .text:0002B908 ORR R3, R3, #2 .text:0002B90C STRB R3, [R4,#0xD] .text:0002B910 B loc_2B974 .text:0002B914 ; --------------------------------------------------------------------------- .text:0002B914 .text:0002B914 loc_2B914 ; CODE XREF: vfwprintf+27F0j .text:0002B914 ; DATA XREF: vfwprintf+27F8o .text:0002B914 LDRB R3, [R4,#0xC] ; jumptable 0002B81C case 32 .text:0002B918 ORR R3, R3, #4 .text:0002B91C STRB R3, [R4,#0xC] .text:0002B920 LDR R2, [R5] .text:0002B924 LDR R3, [R2] .text:0002B928 CMP R3, #0x6C .text:0002B92C BNE loc_2B974 .text:0002B930 ADD R3, R2, #4 .text:0002B934 STR R3, [R5] .text:0002B938 .text:0002B938 loc_2B938 ; CODE XREF: vfwprintf+27F0j .text:0002B938 ; DATA XREF: vfwprintf+27F8o .text:0002B938 LDRB R3, [R4,#0xC] ; jumptable 0002B81C cases 0,37 .text:0002B93C ORR R3, R3, #1 .text:0002B940 STRB R3, [R4,#0xC] .text:0002B944 B loc_2B974 .text:0002B948 ; --------------------------------------------------------------------------- .text:0002B948 .text:0002B948 loc_2B948 ; CODE XREF: vfwprintf+27F0j .text:0002B948 ; DATA XREF: vfwprintf+27F8o .text:0002B948 LDRB R3, [R4,#0xC] ; jumptable 0002B81C cases 14,40,46 .text:0002B94C AND R3, R3, #0xFA .text:0002B950 STRB R3, [R4,#0xC] .text:0002B954 B loc_2B974 .text:0002B958 ; --------------------------------------------------------------------------- .text:0002B958 .text:0002B958 loc_2B958 ; CODE XREF: vfwprintf+27F0j .text:0002B958 ; DATA XREF: vfwprintf+27F8o .text:0002B958 LDRB R3, [R4,#0xC] ; jumptable 0002B81C case 30 .text:0002B95C ORR R3, R3, #5 .text:0002B960 STRB R3, [R4,#0xC] .text:0002B964 B loc_2B974 .text:0002B968 ; --------------------------------------------------------------------------- .text:0002B968 .text:0002B968 loc_2B968 ; CODE XREF: vfwprintf+27F0j .text:0002B968 ; vfwprintf+27F4j .text:0002B968 ; DATA XREF: ... .text:0002B968 LDR R3, [R5] ; jumptable 0002B81C default case .text:0002B96C SUB R3, R3, #4 .text:0002B970 STR R3, [R8] .text:0002B974 .text:0002B974 loc_2B974 ; CODE XREF: vfwprintf+28CCj .text:0002B974 ; vfwprintf+28E4j ... .text:0002B974 LDR R3, [R5] .text:0002B978 LDR R2, [R3],#4 .text:0002B97C STR R2, [R4,#8] .text:0002B980 STR R3, [R8] .text:0002B984 LDR R3, =__printf_function_table .text:0002B988 LDR R2, [R3] .text:0002B98C CMP R2, #0 .text:0002B990 BEQ loc_2B9CC .text:0002B994 LDR R2, [R4,#8] .text:0002B998 CMP R2, #0xFF .text:0002B99C BGT loc_2B9CC .text:0002B9A0 LDR R3, =__printf_arginfo_table .text:0002B9A4 LDR R3, [R3,R2,LSL#2] .text:0002B9A8 CMP R3, #0 .text:0002B9AC BEQ loc_2B9CC .text:0002B9B0 MOV R0, R4 .text:0002B9B4 MOV R1, #1 .text:0002B9B8 ADD R2, R4, #0x28 .text:0002B9BC MOV LR, PC .text:0002B9C0 MOV PC, R3 .text:0002B9C4 STR R0, [R4,#0x2C] .text:0002B9C8 B loc_2BB64 .text:0002B9CC ; --------------------------------------------------------------------------- .text:0002B9CC .text:0002B9CC loc_2B9CC ; CODE XREF: vfwprintf+2964j .text:0002B9CC ; vfwprintf+2970j ... .text:0002B9CC MOV R2, #1 .text:0002B9D0 STR R2, [R4,#0x2C] .text:0002B9D4 LDR R3, [R4,#8] .text:0002B9D8 SUB R3, R3, #0x41 .text:0002B9DC CMP R3, #0x37 ; switch 56 cases .text:0002B9E0 LDRLS PC, [PC,R3,LSL#2] ; switch jump .text:0002B9E4 B loc_2BB5C ; jumptable 0002B9E0 default case .text:0002B9E4 ; --------------------------------------------------------------------------- .text:0002B9E8 DCD loc_2BB10, loc_2BB5C, loc_2BB34, loc_2BB5C, loc_2BB10 ; jump table for switch statement .text:0002B9E8 DCD loc_2BB10, loc_2BB10, loc_2BB5C, loc_2BB5C, loc_2BB5C .text:0002B9E8 DCD loc_2BB5C, loc_2BB5C, loc_2BB5C, loc_2BB5C, loc_2BB5C .text:0002B9E8 DCD loc_2BB5C, loc_2BB5C, loc_2BB5C, loc_2BB44, loc_2BB5C .text:0002B9E8 DCD loc_2BB5C, loc_2BB5C, loc_2BB5C, loc_2BAC8, loc_2BB5C .text:0002B9E8 DCD loc_2BB5C, loc_2BB5C, loc_2BB5C, loc_2BB5C, loc_2BB5C .text:0002B9E8 DCD loc_2BB5C, loc_2BB5C, loc_2BB10, loc_2BB5C, loc_2BB2C .text:0002B9E8 DCD loc_2BAC8, loc_2BB10, loc_2BB10, loc_2BB10, loc_2BB5C .text:0002B9E8 DCD loc_2BAC8, loc_2BB5C, loc_2BB5C, loc_2BB5C, loc_2BB5C .text:0002B9E8 DCD loc_2BB54, loc_2BAC8, loc_2BB4C, loc_2BB5C, loc_2BB5C .text:0002B9E8 DCD loc_2BB3C, loc_2BB5C, loc_2BAC8, loc_2BB5C, loc_2BB5C .text:0002B9E8 DCD loc_2BAC8 .text:0002BAC8 ; --------------------------------------------------------------------------- .text:0002BAC8 .text:0002BAC8 loc_2BAC8 ; CODE XREF: vfwprintf+29B4j .text:0002BAC8 ; DATA XREF: vfwprintf+29BCo .text:0002BAC8 LDRB R3, [R4,#0xC] ; jumptable 0002B9E0 cases 23,35,40,46,52,55 .text:0002BACC TST R3, #1 .text:0002BAD0 BEQ loc_2BAE0 .text:0002BAD4 MOV R3, #0x100 .text:0002BAD8 .text:0002BAD8 loc_2BAD8 ; CODE XREF: vfwprintf+2AC0j .text:0002BAD8 ; vfwprintf+2ACCj ... .text:0002BAD8 STR R3, [R4,#0x28] .text:0002BADC B loc_2BB64 .text:0002BAE0 ; --------------------------------------------------------------------------- .text:0002BAE0 .text:0002BAE0 loc_2BAE0 ; CODE XREF: vfwprintf+2AA4j .text:0002BAE0 AND R3, R3, #0xFF .text:0002BAE4 TST R3, #4 .text:0002BAE8 MOVNE R3, #0x200 .text:0002BAEC BNE loc_2BAD8 .text:0002BAF0 TST R3, #2 .text:0002BAF4 MOV R3, #0x400 .text:0002BAF8 BNE loc_2BAD8 .text:0002BAFC LDRB R3, [R4,#0xD] .text:0002BB00 MOV R3, R3,LSR#1 .text:0002BB04 ANDS R3, R3, #1 .text:0002BB08 BNE loc_2BB2C ; jumptable 0002B9E0 case 34 .text:0002BB0C B loc_2BAD8 .text:0002BB10 ; --------------------------------------------------------------------------- .text:0002BB10 .text:0002BB10 loc_2BB10 ; CODE XREF: vfwprintf+29B4j .text:0002BB10 ; DATA XREF: vfwprintf+29BCo .text:0002BB10 LDRB R3, [R4,#0xC] ; jumptable 0002B9E0 cases 0,4-6,32,36-38 .text:0002BB14 TST R3, #1 .text:0002BB18 MOVNE R3, 0x107 .text:0002BB20 BNE loc_2BAD8 .text:0002BB24 MOV R3, #7 .text:0002BB28 B loc_2BAD8 .text:0002BB2C ; --------------------------------------------------------------------------- .text:0002BB2C .text:0002BB2C loc_2BB2C ; CODE XREF: vfwprintf+29B4j .text:0002BB2C ; vfwprintf+2ADCj .text:0002BB2C ; DATA XREF: ... .text:0002BB2C MOV R3, #1 ; jumptable 0002B9E0 case 34 .text:0002BB30 B loc_2BAD8 .text:0002BB34 ; --------------------------------------------------------------------------- .text:0002BB34 .text:0002BB34 loc_2BB34 ; CODE XREF: vfwprintf+29B4j .text:0002BB34 ; DATA XREF: vfwprintf+29BCo .text:0002BB34 MOV R3, #2 ; jumptable 0002B9E0 case 2 .text:0002BB38 B loc_2BAD8 .text:0002BB3C ; --------------------------------------------------------------------------- .text:0002BB3C .text:0002BB3C loc_2BB3C ; CODE XREF: vfwprintf+29B4j .text:0002BB3C ; DATA XREF: vfwprintf+29BCo .text:0002BB3C MOV R3, #3 ; jumptable 0002B9E0 case 50 .text:0002BB40 B loc_2BAD8 .text:0002BB44 ; --------------------------------------------------------------------------- .text:0002BB44 .text:0002BB44 loc_2BB44 ; CODE XREF: vfwprintf+29B4j .text:0002BB44 ; DATA XREF: vfwprintf+29BCo .text:0002BB44 MOV R3, #4 ; jumptable 0002B9E0 case 18 .text:0002BB48 B loc_2BAD8 .text:0002BB4C ; --------------------------------------------------------------------------- .text:0002BB4C .text:0002BB4C loc_2BB4C ; CODE XREF: vfwprintf+29B4j .text:0002BB4C ; DATA XREF: vfwprintf+29BCo .text:0002BB4C MOV R3, #5 ; jumptable 0002B9E0 case 47 .text:0002BB50 B loc_2BAD8 .text:0002BB54 ; --------------------------------------------------------------------------- .text:0002BB54 .text:0002BB54 loc_2BB54 ; CODE XREF: vfwprintf+29B4j .text:0002BB54 ; DATA XREF: vfwprintf+29BCo .text:0002BB54 MOV R3, #0x800 ; jumptable 0002B9E0 case 45 .text:0002BB58 B loc_2BAD8 .text:0002BB5C ; --------------------------------------------------------------------------- .text:0002BB5C .text:0002BB5C loc_2BB5C ; CODE XREF: vfwprintf+29B4j .text:0002BB5C ; vfwprintf+29B8j .text:0002BB5C ; DATA XREF: ... .text:0002BB5C MOV R3, #0 ; jumptable 0002B9E0 default case .text:0002BB60 STR R3, [R4,#0x2C] .text:0002BB64 .text:0002BB64 loc_2BB64 ; CODE XREF: vfwprintf+299Cj .text:0002BB64 ; vfwprintf+2AB0j .text:0002BB64 LDR R3, [R4,#0x24] .text:0002BB68 CMN R3, #1 .text:0002BB6C BNE loc_2BB9C .text:0002BB70 LDR R3, [R4,#0x2C] .text:0002BB74 CMP R3, #0 .text:0002BB78 BEQ loc_2BB9C .text:0002BB7C SUB R12, R11, #-var_1000 .text:0002BB80 LDR R12, [R12,#-0xFC] .text:0002BB84 ADD R3, R12, R3 .text:0002BB88 SUB R12, R11, #-var_1000 .text:0002BB8C STR R3, [R12,#-0xFC] .text:0002BB90 MOV LR, R12 .text:0002BB94 LDR LR, [LR,#-0xF8] .text:0002BB98 STR LR, [R4,#0x24] .text:0002BB9C .text:0002BB9C loc_2BB9C ; CODE XREF: vfwprintf+2B40j .text:0002BB9C ; vfwprintf+2B4Cj .text:0002BB9C LDR R3, [R4,#8] .text:0002BBA0 CMP R3, #0 .text:0002BBA4 BNE loc_2BBBC .text:0002BBA8 LDR R3, [R5] .text:0002BBAC SUB R3, R3, #4 .text:0002BBB0 STR R3, [R4,#0x18] .text:0002BBB4 STR R3, [R4,#0x14] .text:0002BBB8 B loc_2BBD4 .text:0002BBBC ; --------------------------------------------------------------------------- .text:0002BBBC .text:0002BBBC loc_2BBBC ; CODE XREF: vfwprintf+2B78j .text:0002BBBC LDR R3, [R5] .text:0002BBC0 STR R3, [R4,#0x14] .text:0002BBC4 LDR R0, [R8] .text:0002BBC8 MOV R1, #0x25 .text:0002BBCC BL wcschrnul .text:0002BBD0 STR R0, [R4,#0x18] .text:0002BBD4 .text:0002BBD4 loc_2BBD4 ; CODE XREF: vfwprintf+2B8Cj .text:0002BBD4 SUB R0, R11, #-var_1000 .text:0002BBD8 LDR R1, [R0,#-0x150] .text:0002BBDC LDR R0, [R0,#-0xE4] .text:0002BBE0 ADD R3, R1, R0 .text:0002BBE4 SUB R1, R11, #-var_1000 .text:0002BBE8 LDR R1, [R1,#-0xEC] .text:0002BBEC ADD R3, R1, R3,LSL#4 .text:0002BBF0 LDR R2, [R3,#0x18] .text:0002BBF4 SUB R3, R11, #-var_1000 .text:0002BBF8 STR R2, [R3,#-0x30] .text:0002BBFC SUB R4, R11, #-var_1000 .text:0002BC00 SUB R3, R11, #-var_1000 .text:0002BC04 LDR R5, [R4,#-0xF0] .text:0002BC08 SUB R3, R3, #0x28 .text:0002BC0C LDR R4, [R4,#-0xFC] .text:0002BC10 SUB R3, R3, #8 .text:0002BC14 LDR R2, [R3] .text:0002BC18 ADD R5, R5, R4 .text:0002BC1C SUB R4, R11, #-var_1000 .text:0002BC20 STR R5, [R4,#-0xF0] .text:0002BC24 LDR R3, [R2] .text:0002BC28 MOV R5, R4 .text:0002BC2C LDR R12, [R5,#-0x14C] .text:0002BC30 CMP R3, #0 .text:0002BC34 STR R12, [R5,#-0xE4] .text:0002BC38 BNE loc_2B1F4 .text:0002BC3C .text:0002BC3C loc_2BC3C ; CODE XREF: vfwprintf+21B8j .text:0002BC3C MOV R1, #0 .text:0002BC40 LDR R3, [R6] .text:0002BC44 SUB LR, R11, #-var_1000 .text:0002BC48 LDR R6, [LR,#-0xF0] .text:0002BC4C MOV R5, R1 .text:0002BC50 CMP R3, R6 .text:0002BC54 MOVCS R6, R3 .text:0002BC58 MOV R2, R6,LSL#2 .text:0002BC5C RSB SP, R2, SP .text:0002BC60 ADD R7, SP, #0x1754+var_1750 .text:0002BC64 MOV R0, R7 .text:0002BC68 BL memset .text:0002BC6C SUB SP, SP, R6,LSL#3 .text:0002BC70 SUB R0, R11, #-var_1000 .text:0002BC74 ADD R2, SP, #0x1754+var_1750 .text:0002BC78 LDR R0, [R0,#-0xE4] .text:0002BC7C SUB R1, R11, #-var_1000 .text:0002BC80 STR R2, [R1,#-0xF4] .text:0002BC84 CMP R5, R0 .text:0002BC88 BCS loc_2BD10 .text:0002BC8C MOV R8, R5 .text:0002BC90 MOV R3, R1 .text:0002BC94 LDR R4, [R3,#-0xEC] .text:0002BC98 .text:0002BC98 loc_2BC98 ; CODE XREF: vfwprintf+2CE0j .text:0002BC98 LDR R3, [R4,#0x20] .text:0002BC9C CMN R3, #1 .text:0002BCA0 STRNE R8, [R7,R3,LSL#2] .text:0002BCA4 LDR R3, [R4,#0x1C] .text:0002BCA8 CMN R3, #1 .text:0002BCAC STRNE R8, [R7,R3,LSL#2] .text:0002BCB0 LDR R1, [R4,#0x2C] .text:0002BCB4 CMP R1, #0 .text:0002BCB8 BEQ loc_2BCF8 .text:0002BCBC CMP R1, #1 .text:0002BCC0 BNE loc_2BCDC .text:0002BCC4 ADD R2, R4, #0x24 .text:0002BCC8 LDMIA R2, {R2,R3} .text:0002BCCC STR R3, [R7,R2,LSL#2] .text:0002BCD0 B loc_2BCF8 .text:0002BCD0 ; --------------------------------------------------------------------------- .text:0002BCD4 off_2BCD4 DCD __printf_function_table ; DATA XREF: vfwprintf+2958r .text:0002BCD8 off_2BCD8 DCD __printf_arginfo_table ; DATA XREF: vfwprintf+2974r .text:0002BCDC ; --------------------------------------------------------------------------- .text:0002BCDC .text:0002BCDC loc_2BCDC ; CODE XREF: vfwprintf+2C94j .text:0002BCDC LDR R2, [R4,#0x24] .text:0002BCE0 LDR R3, [R4,#8] .text:0002BCE4 MOV R0, R4 .text:0002BCE8 LDR R12, =__printf_arginfo_table .text:0002BCEC ADD R2, R7, R2,LSL#2 .text:0002BCF0 MOV LR, PC .text:0002BCF4 LDR PC, [R12,R3,LSL#2] .text:0002BCF8 .text:0002BCF8 loc_2BCF8 ; CODE XREF: vfwprintf+2C8Cj .text:0002BCF8 ; vfwprintf+2CA4j .text:0002BCF8 ADD R4, R4, #0x30 .text:0002BCFC SUB LR, R11, #-var_1000 .text:0002BD00 LDR LR, [LR,#-0xE4] .text:0002BD04 ADD R5, R5, #1 .text:0002BD08 CMP R5, LR .text:0002BD0C BCC loc_2BC98 .text:0002BD10 .text:0002BD10 loc_2BD10 ; CODE XREF: vfwprintf+2C5Cj .text:0002BD10 MOV R5, #0 .text:0002BD14 CMP R5, R6 .text:0002BD18 BCS loc_2BEE0 .text:0002BD1C MOV R0, 0x107 .text:0002BD24 SUB R1, R11, #-var_1000 .text:0002BD28 LDR R2, [R1,#-0xF4] .text:0002BD2C MOV R1, R5 .text:0002BD30 .text:0002BD30 loc_2BD30 ; CODE XREF: vfwprintf+2EB0j .text:0002BD30 LDR R3, [R7,R5,LSL#2] .text:0002BD34 CMP R3, #5 .text:0002BD38 BEQ loc_2BE94 .text:0002BD3C BGT loc_2BD74 .text:0002BD40 CMP R3, #2 .text:0002BD44 BEQ loc_2BE94 .text:0002BD48 BGT loc_2BD60 .text:0002BD4C CMP R3, #0 .text:0002BD50 BEQ loc_2BE94 .text:0002BD54 CMP R3, #1 .text:0002BD58 BEQ loc_2BDB8 .text:0002BD5C B loc_2BE8C .text:0002BD60 ; --------------------------------------------------------------------------- .text:0002BD60 .text:0002BD60 loc_2BD60 ; CODE XREF: vfwprintf+2D1Cj .text:0002BD60 CMP R3, #3 .text:0002BD64 BEQ loc_2BE94 .text:0002BD68 CMP R3, #4 .text:0002BD6C BEQ loc_2BE94 .text:0002BD70 B loc_2BE8C .text:0002BD74 ; --------------------------------------------------------------------------- .text:0002BD74 .text:0002BD74 loc_2BD74 ; CODE XREF: vfwprintf+2D10j .text:0002BD74 CMP R3, #0x100 .text:0002BD78 BEQ loc_2BE10 .text:0002BD7C BGT loc_2BD94 .text:0002BD80 CMP R3, #6 .text:0002BD84 BEQ loc_2BE30 .text:0002BD88 CMP R3, #7 .text:0002BD8C BEQ loc_2BE54 .text:0002BD90 B loc_2BE8C .text:0002BD94 ; --------------------------------------------------------------------------- .text:0002BD94 .text:0002BD94 loc_2BD94 ; CODE XREF: vfwprintf+2D50j .text:0002BD94 CMP R3, #0x200 .text:0002BD98 BEQ loc_2BE94 .text:0002BD9C BGT loc_2BDAC .text:0002BDA0 CMP R3, R0 .text:0002BDA4 BEQ loc_2BE70 .text:0002BDA8 B loc_2BE8C .text:0002BDAC ; --------------------------------------------------------------------------- .text:0002BDAC .text:0002BDAC loc_2BDAC ; CODE XREF: vfwprintf+2D70j .text:0002BDAC CMP R3, #0x400 .text:0002BDB0 BEQ loc_2BDE0 .text:0002BDB4 B loc_2BE8C .text:0002BDB8 ; --------------------------------------------------------------------------- .text:0002BDB8 .text:0002BDB8 loc_2BDB8 ; CODE XREF: vfwprintf+2D2Cj .text:0002BDB8 SUB R3, R11, #-var_1000 .text:0002BDBC LDR R3, [R3,#-0x8C] .text:0002BDC0 ADD R4, R3, #4 .text:0002BDC4 SUB R3, R11, #-var_1000 .text:0002BDC8 STR R4, [R3,#-0x8C] .text:0002BDCC LDRB R3, [R4,#-4] .text:0002BDD0 SUB R12, R11, #-var_1000 .text:0002BDD4 LDR R12, [R12,#-0xF4] .text:0002BDD8 STRB R3, [R1,R12] .text:0002BDDC B loc_2BECC .text:0002BDE0 ; --------------------------------------------------------------------------- .text:0002BDE0 .text:0002BDE0 loc_2BDE0 ; CODE XREF: vfwprintf+2D84j .text:0002BDE0 SUB LR, R11, #-var_1000 .text:0002BDE4 LDR R4, [LR,#-0x8C] .text:0002BDE8 ADD R4, R4, #4 .text:0002BDEC STR R4, [LR,#-0x8C] .text:0002BDF0 SUB R4, R4, #4 .text:0002BDF4 LDR R3, [R4],#4 .text:0002BDF8 MOV R12, LR .text:0002BDFC LDR R12, [R12,#-0xF4] .text:0002BE00 STRB R3, [R1,R12] .text:0002BE04 MOV R3, R3,ASR#8 .text:0002BE08 STRB R3, [R2,#1] .text:0002BE0C B loc_2BECC .text:0002BE10 ; --------------------------------------------------------------------------- .text:0002BE10 .text:0002BE10 loc_2BE10 ; CODE XREF: vfwprintf+2D4Cj .text:0002BE10 SUB R4, R11, #-var_1000 .text:0002BE14 LDR R3, [R4,#-0x8C] .text:0002BE18 ADD R3, R3, #8 .text:0002BE1C STR R3, [R4,#-0x8C] .text:0002BE20 SUB R3, R3, #8 .text:0002BE24 LDMIA R3, {R3,R4} .text:0002BE28 STMIA R2, {R3,R4} .text:0002BE2C B loc_2BECC .text:0002BE30 ; --------------------------------------------------------------------------- .text:0002BE30 .text:0002BE30 loc_2BE30 ; CODE XREF: vfwprintf+2D58j .text:0002BE30 SUB R4, R11, #-var_1000 .text:0002BE34 LDR R12, [R4,#-0x8C] .text:0002BE38 ADD R12, R12, #8 .text:0002BE3C STR R12, [R4,#-0x8C] .text:0002BE40 SUB R12, R12, #8 .text:0002BE44 LDC p1, c8, [R12],#8 .text:0002BE48 CDP p1, 0, c8,c0,c0, 0 .text:0002BE4C STC p1, c0, [R2] .text:0002BE50 B loc_2BECC .text:0002BE54 ; --------------------------------------------------------------------------- .text:0002BE54 .text:0002BE54 loc_2BE54 ; CODE XREF: vfwprintf+2D60j .text:0002BE54 SUB LR, R11, #-var_1000 .text:0002BE58 LDR R12, [LR,#-0x8C] .text:0002BE5C ADD R12, R12, #8 .text:0002BE60 STR R12, [LR,#-0x8C] .text:0002BE64 SUB R12, R12, #8 .text:0002BE68 LDMIA R12!, {R3,R4} .text:0002BE6C B loc_2BEC8 .text:0002BE70 ; --------------------------------------------------------------------------- .text:0002BE70 .text:0002BE70 loc_2BE70 ; CODE XREF: vfwprintf+2D78j .text:0002BE70 SUB LR, R11, #-var_1000 .text:0002BE74 LDR R12, [LR,#-0x8C] .text:0002BE78 ADD R12, R12, #8 .text:0002BE7C STR R12, [LR,#-0x8C] .text:0002BE80 SUB R12, R12, #8 .text:0002BE84 LDMIA R12!, {R3,R4} .text:0002BE88 B loc_2BEC8 .text:0002BE8C ; --------------------------------------------------------------------------- .text:0002BE8C .text:0002BE8C loc_2BE8C ; CODE XREF: vfwprintf+2D30j .text:0002BE8C ; vfwprintf+2D44j ... .text:0002BE8C TST R3, #0x800 .text:0002BE90 BEQ loc_2BEC0 .text:0002BE94 .text:0002BE94 loc_2BE94 ; CODE XREF: vfwprintf+2D0Cj .text:0002BE94 ; vfwprintf+2D18j ... .text:0002BE94 SUB LR, R11, #-var_1000 .text:0002BE98 LDR R4, [LR,#-0x8C] .text:0002BE9C ADD R4, R4, #4 .text:0002BEA0 STR R4, [LR,#-0x8C] .text:0002BEA4 SUB R4, R4, #4 .text:0002BEA8 LDR R3, [R4],#4 .text:0002BEAC MOV R12, LR .text:0002BEB0 LDR R12, [R12,#-0xF4] .text:0002BEB4 STR R3, [R1,R12] .text:0002BEB8 B loc_2BECC .text:0002BEB8 ; --------------------------------------------------------------------------- .text:0002BEBC off_2BEBC DCD __printf_arginfo_table ; DATA XREF: vfwprintf+2CBCr .text:0002BEC0 ; --------------------------------------------------------------------------- .text:0002BEC0 .text:0002BEC0 loc_2BEC0 ; CODE XREF: vfwprintf+2E64j .text:0002BEC0 ADR R3, dword_2C268 .text:0002BEC4 LDMIA R3, {R3,R4} .text:0002BEC8 .text:0002BEC8 loc_2BEC8 ; CODE XREF: vfwprintf+2E40j .text:0002BEC8 ; vfwprintf+2E5Cj .text:0002BEC8 STMIA R2, {R3,R4} .text:0002BECC .text:0002BECC loc_2BECC ; CODE XREF: vfwprintf+2DB0j .text:0002BECC ; vfwprintf+2DE0j ... .text:0002BECC ADD R2, R2, #8 .text:0002BED0 ADD R1, R1, #8 .text:0002BED4 ADD R5, R5, #1 .text:0002BED8 CMP R5, R6 .text:0002BEDC BCC loc_2BD30 .text:0002BEE0 .text:0002BEE0 loc_2BEE0 ; CODE XREF: vfwprintf+2CECj .text:0002BEE0 SUB LR, R11, #-var_1000 .text:0002BEE4 LDR R0, [LR,#-0x90] .text:0002BEE8 LDR LR, [LR,#-0xE4] .text:0002BEEC CMP R0, LR .text:0002BEF0 BCS loc_2DAE8 .text:0002BEF4 .text:0002BEF4 loc_2BEF4 ; CODE XREF: vfwprintf+4AB8j .text:0002BEF4 SUB R0, R11, #-var_1000 .text:0002BEF8 LDR R0, [R0,#-0x90] .text:0002BEFC SUB R4, R11, #-var_1000 .text:0002BF00 LDR R4, [R4,#-0xEC] .text:0002BF04 MOV R2, R0,LSL#1 .text:0002BF08 ADD R3, R2, R0 .text:0002BF0C MOV R3, R3,LSL#4 .text:0002BF10 ADD LR, R3, R4 .text:0002BF14 LDR R12, [LR,#4] .text:0002BF18 SUB R5, R11, #-var_1000 .text:0002BF1C STR R12, [R5,#-0x134] .text:0002BF20 LDR R3, [R3,R4] .text:0002BF24 MOV R0, R5 .text:0002BF28 STR R3, [R0,#-0x138] .text:0002BF2C LDRB R3, [LR,#0x10] .text:0002BF30 MOV R1, R0 .text:0002BF34 STR R3, [R1,#-0x140] .text:0002BF38 LDRB R4, [LR,#0xC] .text:0002BF3C STR R2, [R5,#-0x148] .text:0002BF40 LDR R0, [LR,#8] .text:0002BF44 MOV R12, R1 .text:0002BF48 STR R0, [R12,#-0x144] .text:0002BF4C AND R0, R4, #0xFF .text:0002BF50 MOV R3, R0,LSR#3 .text:0002BF54 AND R3, R3, #1 .text:0002BF58 MOV R2, R0,LSR#4 .text:0002BF5C STR R3, [R1,#-0x110] .text:0002BF60 AND R2, R2, #1 .text:0002BF64 MOV R3, R1 .text:0002BF68 STR R2, [R3,#-0x114] .text:0002BF6C MOV R3, R0,LSR#5 .text:0002BF70 AND R3, R3, #1 .text:0002BF74 STR R3, [R5,#-0x118] .text:0002BF78 MOV R2, R0,LSR#6 .text:0002BF7C AND R2, R2, #1 .text:0002BF80 STR R2, [R12,#-0x11C] .text:0002BF84 LDRB R12, [LR,#0xC] .text:0002BF88 MOV R0, R0,LSR#7 .text:0002BF8C STR R0, [R1,#-0x120] .text:0002BF90 MOV R2, R5 .text:0002BF94 LDR R0, [LR,#0x20] .text:0002BF98 AND R1, R12, #0xFF .text:0002BF9C MOV R3, R1,LSR#2 .text:0002BFA0 AND R3, R3, #1 .text:0002BFA4 STR R3, [R2,#-0x130] .text:0002BFA8 AND R12, R12, #1 .text:0002BFAC MOV R3, R2 .text:0002BFB0 STR R12, [R3,#-0x124] .text:0002BFB4 CMN R0, #1 .text:0002BFB8 MOV R1, R1,LSR#1 .text:0002BFBC AND R1, R1, #1 .text:0002BFC0 LDRB R2, [LR,#0xD] .text:0002BFC4 MOV R12, R5 .text:0002BFC8 STR R1, [R5,#-0x128] .text:0002BFCC MOV R1, R5 .text:0002BFD0 MOV R3, R2,LSR#1 .text:0002BFD4 AND R3, R3, #1 .text:0002BFD8 STR R3, [R12,#-0x12C] .text:0002BFDC MOV R2, R2,LSR#3 .text:0002BFE0 AND R2, R2, #1 .text:0002BFE4 STR R2, [R1,#-0x13C] .text:0002BFE8 BEQ loc_2C02C .text:0002BFEC MOV R2, R1 .text:0002BFF0 LDR R2, [R2,#-0xF4] .text:0002BFF4 LDR R3, [R2,R0,LSL#3] .text:0002BFF8 CMP R3, #0 .text:0002BFFC STR R3, [LR,#4] .text:0002C000 BGE loc_2C020 .text:0002C004 RSB R3, R3, #0 .text:0002C008 STR R3, [LR,#4] .text:0002C00C MOV R5, #1 .text:0002C010 MOV R3, R1 .text:0002C014 STR R5, [R3,#-0x118] .text:0002C018 ORR R3, R4, #0x20 .text:0002C01C STRB R3, [LR,#0xC] .text:0002C020 .text:0002C020 loc_2C020 ; CODE XREF: vfwprintf+2FD4j .text:0002C020 LDR LR, [LR,#4] .text:0002C024 SUB R12, R11, #-var_1000 .text:0002C028 STR LR, [R12,#-0x134] .text:0002C02C .text:0002C02C loc_2C02C ; CODE XREF: vfwprintf+2FBCj .text:0002C02C SUB LR, R11, #-var_1000 .text:0002C030 LDR R0, [LR,#-0x148] .text:0002C034 LDR LR, [LR,#-0x90] .text:0002C038 ADD R3, R0, LR .text:0002C03C SUB R0, R11, #-var_1000 .text:0002C040 LDR R0, [R0,#-0xEC] .text:0002C044 MOV R1, R3,LSL#4 .text:0002C048 ADD R2, R1, R0 .text:0002C04C LDR R3, [R2,#0x1C] .text:0002C050 CMN R3, #1 .text:0002C054 BEQ loc_2C088 .text:0002C058 SUB R2, R11, #-var_1000 .text:0002C05C LDR R2, [R2,#-0xF4] .text:0002C060 LDR R3, [R2,R3,LSL#3] .text:0002C064 CMP R3, #0 .text:0002C068 STR R3, [R1,R0] .text:0002C06C MOVLT R3, 0xFFFFFFFF .text:0002C070 STRLT R3, [R1,R0] .text:0002C074 SUB R12, R11, #-var_1000 .text:0002C078 LDR R12, [R12,#-0xEC] .text:0002C07C LDR R1, [R1,R12] .text:0002C080 SUB R12, R11, #-var_1000 .text:0002C084 STR R1, [R12,#-0x138] .text:0002C088 .text:0002C088 loc_2C088 ; CODE XREF: vfwprintf+3028j .text:0002C088 SUB LR, R11, #-var_1000 .text:0002C08C LDR R2, [LR,#-0x134] .text:0002C090 LDR LR, [LR,#-0x138] .text:0002C094 CMP R2, LR .text:0002C098 MOVLT R2, LR .text:0002C09C ADD R3, R2, #0x20 .text:0002C0A0 CMP R3, #0x3E8 .text:0002C0A4 BLE loc_2C0BC .text:0002C0A8 SUB SP, SP, R3,LSL#2 .text:0002C0AC ADD R3, SP, R2,LSL#2 .text:0002C0B0 ADD R3, R3, #0x84 .text:0002C0B4 SUB R0, R11, #-var_1000 .text:0002C0B8 STR R3, [R0,#-0x88] .text:0002C0BC .text:0002C0BC loc_2C0BC ; CODE XREF: vfwprintf+3078j .text:0002C0BC SUB R1, R11, #-var_1000 .text:0002C0C0 LDR R1, [R1,#-0x144] .text:0002C0C4 SUB R2, R1, #0x20 .text:0002C0C8 CMP R2, #0x5A .text:0002C0CC BHI loc_2C0E4 .text:0002C0D0 LDR R3, =jump_table.177 .text:0002C0D4 LDR R1, =step4_jumps.184 .text:0002C0D8 LDR R2, [R3,R2,LSL#2] .text:0002C0DC LDR R3, [R1,R2,LSL#2] .text:0002C0E0 B loc_2C0E8 .text:0002C0E4 ; --------------------------------------------------------------------------- .text:0002C0E4 .text:0002C0E4 loc_2C0E4 ; CODE XREF: vfwprintf+30A0j .text:0002C0E4 LDR R3, =loc_2D944 .text:0002C0E8 .text:0002C0E8 loc_2C0E8 ; CODE XREF: vfwprintf+30B4j .text:0002C0E8 MOV PC, R3 .text:0002C0EC ; --------------------------------------------------------------------------- .text:0002C0EC LDR R1, [R9,#0x58] .text:0002C0F0 ADD R2, R1, #0x10 .text:0002C0F4 LDMIA R2, {R2,R3} .text:0002C0F8 CMP R2, R3 .text:0002C0FC BCC loc_2C118 .text:0002C100 MOV R0, R9 .text:0002C104 MOV R1, #0x25 .text:0002C108 BL __woverflow .text:0002C10C CMN R0, #1 .text:0002C110 BEQ loc_2AF38 .text:0002C114 B loc_2C124 .text:0002C118 ; --------------------------------------------------------------------------- .text:0002C118 .text:0002C118 loc_2C118 ; CODE XREF: vfwprintf+30D0j .text:0002C118 MOV R3, #0x25 .text:0002C11C STR R3, [R2],#4 .text:0002C120 STR R2, [R1,#0x10] .text:0002C124 .text:0002C124 loc_2C124 ; CODE XREF: vfwprintf+30E8j .text:0002C124 ADD R10, R10, #1 .text:0002C128 SUB R2, R11, #-var_1000 .text:0002C12C LDR R2, [R2,#-0x90] .text:0002C130 MOV R3, R2,LSL#1 .text:0002C134 SUB R2, R11, #-var_1000 .text:0002C138 STR R3, [R2,#-0x148] .text:0002C13C B loc_2DA68 .text:0002C140 ; --------------------------------------------------------------------------- .text:0002C140 MOV R4, #0xA .text:0002C144 SUB R3, R11, #-var_1000 .text:0002C148 STR R4, [R3,#-0x10C] .text:0002C14C MOV R5, R3 .text:0002C150 LDR R5, [R5,#-0x124] .text:0002C154 CMP R5, #0 .text:0002C158 BEQ loc_2C220 .text:0002C15C MOV R12, R3 .text:0002C160 SUB R0, R11, #-var_1000 .text:0002C164 LDR R12, [R12,#-0x90] .text:0002C168 SUB R1, R11, #-var_1000 .text:0002C16C LDR R0, [R0,#-0xEC] .text:0002C170 MOV R2, R12,LSL#1 .text:0002C174 ADD R3, R2, R12 .text:0002C178 ADD R3, R0, R3,LSL#4 .text:0002C17C CMP R3, #0 .text:0002C180 STR R2, [R1,#-0x148] .text:0002C184 BNE loc_2C1A4 .text:0002C188 MOV R2, R1 .text:0002C18C LDR R3, [R2,#-0x78] .text:0002C190 ADD R3, R3, #8 .text:0002C194 STR R3, [R2,#-0x78] .text:0002C198 SUB R3, R3, #8 .text:0002C19C LDMIA R3!, {R7,R8} .text:0002C1A0 B loc_2C1B8 .text:0002C1A4 ; --------------------------------------------------------------------------- .text:0002C1A4 .text:0002C1A4 loc_2C1A4 ; CODE XREF: vfwprintf+3158j .text:0002C1A4 LDR R3, [R3,#0x24] .text:0002C1A8 SUB R4, R11, #-var_1000 .text:0002C1AC LDR R4, [R4,#-0xF4] .text:0002C1B0 ADD R3, R4, R3,LSL#3 .text:0002C1B4 LDMIA R3, {R7,R8} .text:0002C1B8 .text:0002C1B8 loc_2C1B8 ; CODE XREF: vfwprintf+3174j .text:0002C1B8 MOV R12, #0 .text:0002C1BC SUB R5, R11, #-var_1000 .text:0002C1C0 CMP R8, R12 .text:0002C1C4 STR R12, [R5,#-0x100] .text:0002C1C8 MOVLT R0, #1 .text:0002C1CC SUBLT LR, R11, #-var_1000 .text:0002C1D0 STRLT R0, [LR,#-0x100] .text:0002C1D4 RSBS R3, R7, #0 .text:0002C1D8 RSC R4, R8, #0 .text:0002C1DC SUB R2, R11, #-var_1000 .text:0002C1E0 LDR R2, [R2,#-0x100] .text:0002C1E4 SUB R0, R11, #-var_1100 .text:0002C1E8 EOR R1, R2, #1 .text:0002C1EC MOV R2, #0 .text:0002C1F0 RSBS R5, R1, #0 .text:0002C1F4 RSC R6, R2, #0 .text:0002C1F8 MOV R2, R6 .text:0002C1FC MOV R1, R5 .text:0002C200 AND R1, R1, R7 .text:0002C204 AND R2, R2, R8 .text:0002C208 BIC R3, R3, R5 .text:0002C20C BIC R4, R4, R6 .text:0002C210 ORR R1, R1, R3 .text:0002C214 ORR R2, R2, R4 .text:0002C218 STMDB R0, {R1,R2} .text:0002C21C B loc_2C374 .text:0002C220 ; --------------------------------------------------------------------------- .text:0002C220 .text:0002C220 loc_2C220 ; CODE XREF: vfwprintf+312Cj .text:0002C220 SUB R1, R11, #-var_1000 .text:0002C224 SUB R5, R11, #-var_1000 .text:0002C228 LDR R1, [R1,#-0x90] .text:0002C22C SUB R12, R11, #-var_1000 .text:0002C230 LDR R5, [R5,#-0xEC] .text:0002C234 MOV R2, R1,LSL#1 .text:0002C238 ADD R3, R2, R1 .text:0002C23C ADD R3, R5, R3,LSL#4 .text:0002C240 CMP R3, #0 .text:0002C244 STR R2, [R12,#-0x148] .text:0002C248 BNE loc_2C27C .text:0002C24C MOV LR, R12 .text:0002C250 LDR R0, [LR,#-0x78] .text:0002C254 ADD R0, R0, #4 .text:0002C258 STR R0, [LR,#-0x78] .text:0002C25C SUB R0, R0, #4 .text:0002C260 LDR R3, [R0],#4 .text:0002C264 B loc_2C28C .text:0002C264 ; --------------------------------------------------------------------------- .text:0002C268 dword_2C268 DCD 0, 0 ; DATA XREF: vfwprintf:loc_2BEC0o .text:0002C270 off_2C270 DCD jump_table.177 ; DATA XREF: vfwprintf+30A4r .text:0002C274 off_2C274 DCD step4_jumps.184 ; DATA XREF: vfwprintf+30A8r .text:0002C278 off_2C278 DCD loc_2D944 ; DATA XREF: vfwprintf:loc_2C0E4r .text:0002C27C ; --------------------------------------------------------------------------- .text:0002C27C .text:0002C27C loc_2C27C ; CODE XREF: vfwprintf+321Cj .text:0002C27C LDR R3, [R3,#0x24] .text:0002C280 SUB R1, R11, #-var_1000 .text:0002C284 LDR R1, [R1,#-0xF4] .text:0002C288 LDR R3, [R1,R3,LSL#3] .text:0002C28C .text:0002C28C loc_2C28C ; CODE XREF: vfwprintf+3238j .text:0002C28C MOV R4, R3,LSR#31 .text:0002C290 SUB R2, R11, #-var_1000 .text:0002C294 CMP R3, #0 .text:0002C298 STR R4, [R2,#-0x100] .text:0002C29C RSBLT R3, R3, #0 .text:0002C2A0 MOV R5, R2 .text:0002C2A4 STR R3, [R5,#-0x108] .text:0002C2A8 B loc_2C604 .text:0002C2AC ; --------------------------------------------------------------------------- .text:0002C2AC MOV LR, #0xA .text:0002C2B0 SUB R12, R11, #-var_1000 .text:0002C2B4 STR LR, [R12,#-0x10C] .text:0002C2B8 B loc_2C2D8 .text:0002C2BC ; --------------------------------------------------------------------------- .text:0002C2BC MOV R1, #8 .text:0002C2C0 SUB R0, R11, #-var_1000 .text:0002C2C4 STR R1, [R0,#-0x10C] .text:0002C2C8 B loc_2C2D8 .text:0002C2CC ; --------------------------------------------------------------------------- .text:0002C2CC MOV R3, #0x10 .text:0002C2D0 SUB R2, R11, #-var_1000 .text:0002C2D4 STR R3, [R2,#-0x10C] .text:0002C2D8 .text:0002C2D8 loc_2C2D8 ; CODE XREF: vfwprintf+328Cj .text:0002C2D8 ; vfwprintf+329Cj .text:0002C2D8 MOV R5, #0 .text:0002C2DC SUB R4, R11, #-var_1000 .text:0002C2E0 STR R5, [R4,#-0x100] .text:0002C2E4 MOV R12, R4 .text:0002C2E8 STR R5, [R12,#-0x11C] .text:0002C2EC MOV LR, R4 .text:0002C2F0 LDR R0, [LR,#-0x100] .text:0002C2F4 STR R0, [LR,#-0x114] .text:0002C2F8 MOV R1, R4 .text:0002C2FC LDR R1, [R1,#-0x124] .text:0002C300 CMP R1, R5 .text:0002C304 BEQ loc_2C4C0 .text:0002C308 MOV R3, R4 .text:0002C30C LDR R3, [R3,#-0x90] .text:0002C310 LDR R4, [R4,#-0x90] .text:0002C314 MOV R5, R12 .text:0002C318 LDR R5, [R5,#-0xEC] .text:0002C31C MOV R2, R3,LSL#1 .text:0002C320 ADD R3, R2, R4 .text:0002C324 ADD R3, R5, R3,LSL#4 .text:0002C328 CMP R3, #0 .text:0002C32C STR R2, [R12,#-0x148] .text:0002C330 BNE loc_2C358 .text:0002C334 MOV R2, R12 .text:0002C338 LDR R3, [R2,#-0x78] .text:0002C33C ADD R3, R3, #8 .text:0002C340 STR R3, [R2,#-0x78] .text:0002C344 SUB R3, R3, #8 .text:0002C348 LDMIA R3, {R2,R3} .text:0002C34C SUB R4, R11, #-var_1100 .text:0002C350 STMDB R4, {R2,R3} .text:0002C354 B loc_2C374 .text:0002C358 ; --------------------------------------------------------------------------- .text:0002C358 .text:0002C358 loc_2C358 ; CODE XREF: vfwprintf+3304j .text:0002C358 LDR R3, [R3,#0x24] .text:0002C35C SUB R4, R11, #-var_1000 .text:0002C360 LDR R4, [R4,#-0xF4] .text:0002C364 ADD R3, R4, R3,LSL#3 .text:0002C368 LDMIA R3, {R1,R2} .text:0002C36C SUB R4, R11, #-var_1100 .text:0002C370 STMDB R4, {R1,R2} .text:0002C374 .text:0002C374 loc_2C374 ; CODE XREF: vfwprintf+31F0j .text:0002C374 ; vfwprintf+3328j .text:0002C374 SUB R5, R11, #-var_1000 .text:0002C378 LDR R5, [R5,#-0x138] .text:0002C37C CMP R5, #0 .text:0002C380 MOVLT LR, #1 .text:0002C384 SUBLT R12, R11, #-var_1000 .text:0002C388 STRLT LR, [R12,#-0x138] .text:0002C38C MOVGE R1, #0x20 .text:0002C390 SUBGE R0, R11, #-var_1000 .text:0002C394 STRGE R1, [R0,#-0x140] .text:0002C398 SUB R2, R11, #-var_1000 .text:0002C39C LDR R2, [R2,#-0x138] .text:0002C3A0 CMP R2, #0 .text:0002C3A4 BNE loc_2C3F4 .text:0002C3A8 SUB R3, R11, #-var_1000 .text:0002C3AC LDR R4, [R3,#-0x108] .text:0002C3B0 LDR R3, [R3,#-0x104] .text:0002C3B4 ORRS R3, R4, R3 .text:0002C3B8 BNE loc_2C3F4 .text:0002C3BC SUB R4, R11, #-var_1000 .text:0002C3C0 LDR R7, [R4,#-0x88] .text:0002C3C4 MOV R5, R4 .text:0002C3C8 LDR R5, [R5,#-0x110] .text:0002C3CC MOV R12, R4 .text:0002C3D0 LDR R12, [R12,#-0x10C] .text:0002C3D4 SUBS R3, R5, #0 .text:0002C3D8 MOVNE R3, #1 .text:0002C3DC CMP R12, #8 .text:0002C3E0 MOVNE R3, #0 .text:0002C3E4 CMP R3, #0 .text:0002C3E8 MOVNE R3, #0x30 .text:0002C3EC STRNE R3, [R7,#-4]! .text:0002C3F0 B loc_2C49C .text:0002C3F4 ; --------------------------------------------------------------------------- .text:0002C3F4 .text:0002C3F4 loc_2C3F4 ; CODE XREF: vfwprintf+3378j .text:0002C3F4 ; vfwprintf+338Cj .text:0002C3F4 SUB LR, R11, #-var_1000 .text:0002C3F8 LDR LR, [LR,#-0x144] .text:0002C3FC CMP LR, #0x58 .text:0002C400 MOVNE R3, #0 .text:0002C404 MOVEQ R3, #1 .text:0002C408 STR R3, [SP,#0x1754+var_1754] .text:0002C40C SUB R2, R11, #-var_1100 .text:0002C410 LDMDB R2, {R0,R1} .text:0002C414 SUB R3, R11, #-var_1000 .text:0002C418 LDR R2, [R3,#-0x88] .text:0002C41C MOV R4, R3 .text:0002C420 LDR R3, [R4,#-0x10C] .text:0002C424 BL _itowa .text:0002C428 SUB R5, R11, #-var_1000 .text:0002C42C LDR R12, [R5,#-0x120] .text:0002C430 LDR R5, [R5,#-0x80] .text:0002C434 MOV R7, R0 .text:0002C438 CMP R12, #0 .text:0002C43C CMPNE R5, #0 .text:0002C440 BEQ loc_2C464 .text:0002C444 SUB R12, R11, #-var_1000 .text:0002C448 LDR R1, [R12,#-0x88] .text:0002C44C MOV LR, R12 .text:0002C450 LDR R2, [LR,#-0x80] .text:0002C454 MOV R4, R12 .text:0002C458 LDR R3, [R4,#-0x7C] .text:0002C45C BL group_number_1 .text:0002C460 MOV R7, R0 .text:0002C464 .text:0002C464 loc_2C464 ; CODE XREF: vfwprintf+3414j .text:0002C464 SUB R5, R11, #-var_1000 .text:0002C468 LDR R5, [R5,#-0x10C] .text:0002C46C SUB R12, R11, #-var_1000 .text:0002C470 LDR R12, [R12,#-0x13C] .text:0002C474 CMP R5, #0xA .text:0002C478 MOVNE R3, #0 .text:0002C47C MOVEQ R3, #1 .text:0002C480 TST R12, R3 .text:0002C484 BEQ loc_2C49C .text:0002C488 MOV R0, R7 .text:0002C48C SUB LR, R11, #-var_1000 .text:0002C490 LDR R1, [LR,#-0x88] .text:0002C494 BL _i18n_number_rewrite_0 .text:0002C498 MOV R7, R0 .text:0002C49C .text:0002C49C loc_2C49C ; CODE XREF: vfwprintf+33C4j .text:0002C49C ; vfwprintf+3458j .text:0002C49C SUB R0, R11, #-var_1000 .text:0002C4A0 LDR R1, [R0,#-0x108] .text:0002C4A4 LDR R0, [R0,#-0x104] .text:0002C4A8 ORRS R0, R1, R0 .text:0002C4AC MOVEQ R2, #0 .text:0002C4B0 MOVNE R2, #1 .text:0002C4B4 SUB R1, R11, #-var_1000 .text:0002C4B8 STR R2, [R1,#-0x108] .text:0002C4BC B loc_2C7E4 .text:0002C4C0 ; --------------------------------------------------------------------------- .text:0002C4C0 .text:0002C4C0 loc_2C4C0 ; CODE XREF: vfwprintf+32D8j .text:0002C4C0 SUB R3, R11, #-var_1000 .text:0002C4C4 SUB R4, R11, #-var_1000 .text:0002C4C8 LDR R3, [R3,#-0x90] .text:0002C4CC SUB R5, R11, #-var_1000 .text:0002C4D0 LDR R4, [R4,#-0x90] .text:0002C4D4 SUB R12, R11, #-var_1000 .text:0002C4D8 LDR R5, [R5,#-0xEC] .text:0002C4DC MOV R2, R3,LSL#1 .text:0002C4E0 ADD R3, R2, R4 .text:0002C4E4 ADD R3, R5, R3,LSL#4 .text:0002C4E8 CMP R3, #0 .text:0002C4EC STR R2, [R12,#-0x148] .text:0002C4F0 BNE loc_2C584 .text:0002C4F4 MOV LR, R12 .text:0002C4F8 LDR LR, [LR,#-0x12C] .text:0002C4FC CMP LR, #0 .text:0002C500 BEQ loc_2C528 .text:0002C504 MOV R0, R12 .text:0002C508 LDR R0, [R0,#-0x78] .text:0002C50C ADD R1, R0, #4 .text:0002C510 MOV R0, R12 .text:0002C514 STR R1, [R0,#-0x78] .text:0002C518 LDRB R2, [R1,#-4] .text:0002C51C MOV R1, R0 .text:0002C520 STR R2, [R1,#-0x108] .text:0002C524 B loc_2C604 .text:0002C528 ; --------------------------------------------------------------------------- .text:0002C528 .text:0002C528 loc_2C528 ; CODE XREF: vfwprintf+34D4j .text:0002C528 SUB R3, R11, #-var_1000 .text:0002C52C LDR R3, [R3,#-0x128] .text:0002C530 CMP R3, #0 .text:0002C534 BNE loc_2C558 .text:0002C538 SUB R4, R11, #-var_1000 .text:0002C53C LDR R5, [R4,#-0x78] .text:0002C540 ADD R5, R5, #4 .text:0002C544 STR R5, [R4,#-0x78] .text:0002C548 SUB R5, R5, #4 .text:0002C54C LDR R5, [R5] .text:0002C550 STR R5, [R4,#-0x108] .text:0002C554 B loc_2C604 .text:0002C558 ; --------------------------------------------------------------------------- .text:0002C558 .text:0002C558 loc_2C558 ; CODE XREF: vfwprintf+3508j .text:0002C558 SUB R12, R11, #-var_1000 .text:0002C55C LDR LR, [R12,#-0x78] .text:0002C560 ADD LR, LR, #4 .text:0002C564 STR LR, [R12,#-0x78] .text:0002C568 SUB LR, LR, #4 .text:0002C56C LDR R3, [LR],#4 .text:0002C570 MOV R0, R12 .text:0002C574 MOV R3, R3,LSL#16 .text:0002C578 MOV R3, R3,LSR#16 .text:0002C57C STR R3, [R0,#-0x108] .text:0002C580 B loc_2C604 .text:0002C584 ; --------------------------------------------------------------------------- .text:0002C584 .text:0002C584 loc_2C584 ; CODE XREF: vfwprintf+34C4j .text:0002C584 SUB R1, R11, #-var_1000 .text:0002C588 LDR R1, [R1,#-0x12C] .text:0002C58C CMP R1, #0 .text:0002C590 BEQ loc_2C5B0 .text:0002C594 LDR R3, [R3,#0x24] .text:0002C598 SUB R2, R11, #-var_1000 .text:0002C59C LDR R2, [R2,#-0xF4] .text:0002C5A0 LDRB R3, [R2,R3,LSL#3] .text:0002C5A4 SUB R2, R11, #-var_1000 .text:0002C5A8 STR R3, [R2,#-0x108] .text:0002C5AC B loc_2C604 .text:0002C5B0 ; --------------------------------------------------------------------------- .text:0002C5B0 .text:0002C5B0 loc_2C5B0 ; CODE XREF: vfwprintf+3564j .text:0002C5B0 SUB R4, R11, #-var_1000 .text:0002C5B4 LDR R4, [R4,#-0x128] .text:0002C5B8 CMP R4, #0 .text:0002C5BC BNE loc_2C5DC .text:0002C5C0 LDR R3, [R3,#0x24] .text:0002C5C4 SUB R5, R11, #-var_1000 .text:0002C5C8 LDR R5, [R5,#-0xF4] .text:0002C5CC LDR R3, [R5,R3,LSL#3] .text:0002C5D0 SUB R5, R11, #-var_1000 .text:0002C5D4 STR R3, [R5,#-0x108] .text:0002C5D8 B loc_2C604 .text:0002C5DC ; --------------------------------------------------------------------------- .text:0002C5DC .text:0002C5DC loc_2C5DC ; CODE XREF: vfwprintf+3590j .text:0002C5DC LDR R3, [R3,#0x24] .text:0002C5E0 SUB R12, R11, #-var_1000 .text:0002C5E4 LDR R12, [R12,#-0xF4] .text:0002C5E8 MOV R3, R3,LSL#3 .text:0002C5EC LDRB R1, [R3,R12] .text:0002C5F0 ADD R3, R3, R12 .text:0002C5F4 LDRB R2, [R3,#1] .text:0002C5F8 SUB R0, R11, #-var_1000 .text:0002C5FC ORR R2, R1, R2,LSL#8 .text:0002C600 STR R2, [R0,#-0x108] .text:0002C604 .text:0002C604 loc_2C604 ; CODE XREF: vfwprintf+327Cj .text:0002C604 ; vfwprintf+34F8j ... .text:0002C604 SUB R1, R11, #-var_1000 .text:0002C608 LDR R1, [R1,#-0x138] .text:0002C60C CMP R1, #0 .text:0002C610 MOVLT R3, #1 .text:0002C614 SUBLT R2, R11, #-var_1000 .text:0002C618 STRLT R3, [R2,#-0x138] .text:0002C61C MOVGE R5, #0x20 .text:0002C620 SUBGE R4, R11, #-var_1000 .text:0002C624 STRGE R5, [R4,#-0x140] .text:0002C628 SUB R12, R11, #-var_1000 .text:0002C62C LDR R12, [R12,#-0x138] .text:0002C630 CMP R12, #0 .text:0002C634 BNE loc_2C680 .text:0002C638 SUB LR, R11, #-var_1000 .text:0002C63C LDR LR, [LR,#-0x108] .text:0002C640 CMP LR, #0 .text:0002C644 BNE loc_2C680 .text:0002C648 SUB R0, R11, #-var_1000 .text:0002C64C LDR R7, [R0,#-0x88] .text:0002C650 MOV R1, R0 .text:0002C654 LDR R1, [R1,#-0x110] .text:0002C658 MOV R2, R0 .text:0002C65C LDR R2, [R2,#-0x10C] .text:0002C660 SUBS R3, R1, #0 .text:0002C664 MOVNE R3, #1 .text:0002C668 CMP R2, #8 .text:0002C66C MOVNE R3, #0 .text:0002C670 CMP R3, #0 .text:0002C674 MOVNE R3, #0x30 .text:0002C678 STRNE R3, [R7,#-4]! .text:0002C67C B loc_2C7E4 .text:0002C680 ; --------------------------------------------------------------------------- .text:0002C680 .text:0002C680 loc_2C680 ; CODE XREF: vfwprintf+3608j .text:0002C680 ; vfwprintf+3618j .text:0002C680 LDR R7, =_itowa_lower_digits .text:0002C684 SUB R3, R11, #-var_1000 .text:0002C688 LDR R4, [R3,#-0x108] .text:0002C68C LDR R3, =_itowa_upper_digits .text:0002C690 SUB R12, R11, #-var_1000 .text:0002C694 LDR R5, [R12,#-0x88] .text:0002C698 MOV LR, R12 .text:0002C69C LDR LR, [LR,#-0x144] .text:0002C6A0 MOV R0, R12 .text:0002C6A4 LDR R0, [R0,#-0x10C] .text:0002C6A8 CMP LR, #0x58 .text:0002C6AC MOVEQ R7, R3 .text:0002C6B0 CMP R0, #0xA .text:0002C6B4 BEQ loc_2C6DC .text:0002C6B8 BHI loc_2C6C8 .text:0002C6BC CMP R0, #8 .text:0002C6C0 BEQ loc_2C720 .text:0002C6C4 B loc_2C738 .text:0002C6C8 ; --------------------------------------------------------------------------- .text:0002C6C8 .text:0002C6C8 loc_2C6C8 ; CODE XREF: vfwprintf+368Cj .text:0002C6C8 SUB R2, R11, #-var_1000 .text:0002C6CC LDR R2, [R2,#-0x10C] .text:0002C6D0 CMP R2, #0x10 .text:0002C6D4 BEQ loc_2C708 .text:0002C6D8 B loc_2C738 .text:0002C6DC ; --------------------------------------------------------------------------- .text:0002C6DC .text:0002C6DC loc_2C6DC ; CODE XREF: vfwprintf+3688j .text:0002C6DC ; vfwprintf+36D4j .text:0002C6DC MOV R0, R4 .text:0002C6E0 MOV R1, #0xA .text:0002C6E4 BL __umodsi3 .text:0002C6E8 LDR R3, [R7,R0,LSL#2] .text:0002C6EC STR R3, [R5,#-4]! .text:0002C6F0 MOV R0, R4 .text:0002C6F4 MOV R1, #0xA .text:0002C6F8 BL __udivsi3 .text:0002C6FC SUBS R4, R0, #0 .text:0002C700 BNE loc_2C6DC .text:0002C704 B loc_2C76C .text:0002C708 ; --------------------------------------------------------------------------- .text:0002C708 .text:0002C708 loc_2C708 ; CODE XREF: vfwprintf+36A8j .text:0002C708 ; vfwprintf+36ECj .text:0002C708 AND R3, R4, #0xF .text:0002C70C LDR R2, [R7,R3,LSL#2] .text:0002C710 MOVS R4, R4,LSR#4 .text:0002C714 STR R2, [R5,#-4]! .text:0002C718 BNE loc_2C708 .text:0002C71C B loc_2C76C .text:0002C720 ; --------------------------------------------------------------------------- .text:0002C720 .text:0002C720 loc_2C720 ; CODE XREF: vfwprintf+3694j .text:0002C720 ; vfwprintf+3704j .text:0002C720 AND R3, R4, #7 .text:0002C724 LDR R2, [R7,R3,LSL#2] .text:0002C728 MOVS R4, R4,LSR#3 .text:0002C72C STR R2, [R5,#-4]! .text:0002C730 BNE loc_2C720 .text:0002C734 B loc_2C76C .text:0002C738 ; --------------------------------------------------------------------------- .text:0002C738 .text:0002C738 loc_2C738 ; CODE XREF: vfwprintf+3698j .text:0002C738 ; vfwprintf+36ACj ... .text:0002C738 MOV R0, R4 .text:0002C73C SUB R3, R11, #-var_1000 .text:0002C740 LDR R1, [R3,#-0x10C] .text:0002C744 BL __umodsi3 .text:0002C748 LDR R3, [R7,R0,LSL#2] .text:0002C74C STR R3, [R5,#-4]! .text:0002C750 MOV R0, R4 .text:0002C754 SUB R4, R11, #-var_1000 .text:0002C758 LDR R1, [R4,#-0x10C] .text:0002C75C BL __udivsi3 .text:0002C760 MOV R4, R0 .text:0002C764 CMP R4, #0 .text:0002C768 BNE loc_2C738 .text:0002C76C .text:0002C76C loc_2C76C ; CODE XREF: vfwprintf+36D8j .text:0002C76C ; vfwprintf+36F0j ... .text:0002C76C MOV R7, R5 .text:0002C770 SUB R5, R11, #-var_1000 .text:0002C774 LDR R12, [R5,#-0x120] .text:0002C778 LDR R5, [R5,#-0x80] .text:0002C77C CMP R12, #0 .text:0002C780 CMPNE R5, #0 .text:0002C784 BEQ loc_2C7AC .text:0002C788 MOV R0, R7 .text:0002C78C SUB R12, R11, #-var_1000 .text:0002C790 LDR R1, [R12,#-0x88] .text:0002C794 MOV LR, R12 .text:0002C798 LDR R2, [LR,#-0x80] .text:0002C79C MOV R4, R12 .text:0002C7A0 LDR R3, [R4,#-0x7C] .text:0002C7A4 BL group_number_1 .text:0002C7A8 MOV R7, R0 .text:0002C7AC .text:0002C7AC loc_2C7AC ; CODE XREF: vfwprintf+3758j .text:0002C7AC SUB R5, R11, #-var_1000 .text:0002C7B0 LDR R5, [R5,#-0x10C] .text:0002C7B4 SUB R12, R11, #-var_1000 .text:0002C7B8 LDR R12, [R12,#-0x13C] .text:0002C7BC CMP R5, #0xA .text:0002C7C0 MOVNE R3, #0 .text:0002C7C4 MOVEQ R3, #1 .text:0002C7C8 TST R12, R3 .text:0002C7CC BEQ loc_2C7E4 .text:0002C7D0 MOV R0, R7 .text:0002C7D4 SUB LR, R11, #-var_1000 .text:0002C7D8 LDR R1, [LR,#-0x88] .text:0002C7DC BL _i18n_number_rewrite_0 .text:0002C7E0 MOV R7, R0 .text:0002C7E4 .text:0002C7E4 loc_2C7E4 ; CODE XREF: vfwprintf+3490j .text:0002C7E4 ; vfwprintf+3650j ... .text:0002C7E4 SUB R0, R11, #-var_1000 .text:0002C7E8 LDR R0, [R0,#-0x88] .text:0002C7EC SUB R1, R11, #-var_1000 .text:0002C7F0 LDR R1, [R1,#-0x138] .text:0002C7F4 RSB R3, R7, R0 .text:0002C7F8 CMP R1, R3,ASR#2 .text:0002C7FC BGT loc_2C82C .text:0002C800 SUB R2, R11, #-var_1000 .text:0002C804 LDR R3, [R2,#-0x108] .text:0002C808 LDR R2, [R2,#-0x110] .text:0002C80C CMP R3, #0 .text:0002C810 CMPNE R2, #0 .text:0002C814 BEQ loc_2C82C .text:0002C818 SUB R3, R11, #-var_1000 .text:0002C81C LDR R3, [R3,#-0x10C] .text:0002C820 CMP R3, #8 .text:0002C824 MOVEQ R3, #0x30 .text:0002C828 STREQ R3, [R7,#-4]! .text:0002C82C .text:0002C82C loc_2C82C ; CODE XREF: vfwprintf+37D0j .text:0002C82C ; vfwprintf+37E8j .text:0002C82C SUB R4, R11, #-var_1000 .text:0002C830 SUB R5, R11, #-var_1000 .text:0002C834 LDR R4, [R4,#-0x88] .text:0002C838 SUB LR, R11, #-var_1000 .text:0002C83C LDR R5, [R5,#-0x138] .text:0002C840 RSB R3, R7, R4 .text:0002C844 MOV R2, R3,ASR#2 .text:0002C848 RSB R12, R2, R5 .text:0002C84C CMP R12, #0 .text:0002C850 MOVLT R12, #0 .text:0002C854 STR R12, [LR,#-0x138] .text:0002C858 MOV R0, LR .text:0002C85C LDR R0, [R0,#-0x118] .text:0002C860 MOV R4, R3 .text:0002C864 CMP R0, #0 .text:0002C868 BNE loc_2CB18 .text:0002C86C ADD R3, R2, R12 .text:0002C870 MOV R2, LR .text:0002C874 LDR R2, [R2,#-0x134] .text:0002C878 RSB R3, R3, R2 .text:0002C87C MOV R2, LR .text:0002C880 STR R3, [R2,#-0x134] .text:0002C884 MOV R3, R2 .text:0002C888 LDR R5, [R3,#-0x108] .text:0002C88C LDR R3, [R3,#-0x110] .text:0002C890 CMP R5, #0 .text:0002C894 CMPNE R3, #0 .text:0002C898 BEQ loc_2C8C0 .text:0002C89C MOV R5, R2 .text:0002C8A0 LDR R5, [R5,#-0x134] .text:0002C8A4 MOV R12, R2 .text:0002C8A8 LDR R12, [R12,#-0x10C] .text:0002C8AC SUB R3, R5, #2 .text:0002C8B0 CMP R12, #0x10 .text:0002C8B4 MOVEQ R5, R3 .text:0002C8B8 MOV R12, R2 .text:0002C8BC STR R5, [R12,#-0x134] .text:0002C8C0 .text:0002C8C0 loc_2C8C0 ; CODE XREF: vfwprintf+386Cj .text:0002C8C0 SUB LR, R11, #-var_1000 .text:0002C8C4 LDR R0, [LR,#-0x100] .text:0002C8C8 LDR LR, [LR,#-0x11C] .text:0002C8CC CMP LR, #0 .text:0002C8D0 CMPEQ R0, #0 .text:0002C8D4 BNE loc_2C8E8 .text:0002C8D8 SUB R0, R11, #-var_1000 .text:0002C8DC LDR R0, [R0,#-0x114] .text:0002C8E0 CMP R0, #0 .text:0002C8E4 BEQ loc_2C8FC .text:0002C8E8 .text:0002C8E8 loc_2C8E8 ; CODE XREF: vfwprintf+38A8j .text:0002C8E8 SUB R1, R11, #-var_1000 .text:0002C8EC LDR R1, [R1,#-0x134] .text:0002C8F0 SUB R2, R1, #1 .text:0002C8F4 SUB R1, R11, #-var_1000 .text:0002C8F8 STR R2, [R1,#-0x134] .text:0002C8FC .text:0002C8FC loc_2C8FC ; CODE XREF: vfwprintf+38B8j .text:0002C8FC SUB R2, R11, #-var_1000 .text:0002C900 LDR R2, [R2,#-0x140] .text:0002C904 CMP R2, #0x20 .text:0002C908 BNE loc_2C944 .text:0002C90C SUB R3, R11, #-var_1000 .text:0002C910 LDR R3, [R3,#-0x134] .text:0002C914 CMP R3, #0 .text:0002C918 BLE loc_2C938 .text:0002C91C MOV R0, R9 .text:0002C920 SUB R5, R11, #-var_1000 .text:0002C924 LDR R1, [R5,#-0x140] .text:0002C928 MOV R12, R5 .text:0002C92C LDR R2, [R12,#-0x134] .text:0002C930 BL _IO_wpadn .text:0002C934 ADD R10, R10, R0 .text:0002C938 .text:0002C938 loc_2C938 ; CODE XREF: vfwprintf+38ECj .text:0002C938 MOV R0, #0 .text:0002C93C SUB LR, R11, #-var_1000 .text:0002C940 STR R0, [LR,#-0x134] .text:0002C944 .text:0002C944 loc_2C944 ; CODE XREF: vfwprintf+38DCj .text:0002C944 SUB R1, R11, #-var_1000 .text:0002C948 LDR R1, [R1,#-0x100] .text:0002C94C CMP R1, #0 .text:0002C950 BEQ loc_2C988 .text:0002C954 LDR R1, [R9,#0x58] .text:0002C958 ADD R2, R1, #0x10 .text:0002C95C LDMIA R2, {R2,R3} .text:0002C960 CMP R2, R3 .text:0002C964 BCC loc_2C980 .text:0002C968 MOV R0, R9 .text:0002C96C MOV R1, #0x2D .text:0002C970 .text:0002C970 loc_2C970 ; CODE XREF: vfwprintf+3984j .text:0002C970 ; vfwprintf+39B8j .text:0002C970 BL __woverflow .text:0002C974 CMN R0, #1 .text:0002C978 BEQ loc_2AF38 .text:0002C97C B loc_2C9F4 .text:0002C980 ; --------------------------------------------------------------------------- .text:0002C980 .text:0002C980 loc_2C980 ; CODE XREF: vfwprintf+3938j .text:0002C980 MOV R3, #0x2D .text:0002C984 B loc_2C9EC .text:0002C988 ; --------------------------------------------------------------------------- .text:0002C988 .text:0002C988 loc_2C988 ; CODE XREF: vfwprintf+3924j .text:0002C988 SUB R2, R11, #-var_1000 .text:0002C98C LDR R2, [R2,#-0x11C] .text:0002C990 CMP R2, #0 .text:0002C994 BEQ loc_2C9BC .text:0002C998 LDR R1, [R9,#0x58] .text:0002C99C ADD R2, R1, #0x10 .text:0002C9A0 LDMIA R2, {R2,R3} .text:0002C9A4 CMP R2, R3 .text:0002C9A8 MOVCS R0, R9 .text:0002C9AC MOVCS R1, #0x2B .text:0002C9B0 BCS loc_2C970 .text:0002C9B4 MOV R3, #0x2B .text:0002C9B8 B loc_2C9EC .text:0002C9BC ; --------------------------------------------------------------------------- .text:0002C9BC .text:0002C9BC loc_2C9BC ; CODE XREF: vfwprintf+3968j .text:0002C9BC SUB R3, R11, #-var_1000 .text:0002C9C0 LDR R3, [R3,#-0x114] .text:0002C9C4 CMP R3, #0 .text:0002C9C8 BEQ loc_2C9F8 .text:0002C9CC LDR R1, [R9,#0x58] .text:0002C9D0 ADD R2, R1, #0x10 .text:0002C9D4 LDMIA R2, {R2,R3} .text:0002C9D8 CMP R2, R3 .text:0002C9DC MOVCS R0, R9 .text:0002C9E0 MOVCS R1, #0x20 .text:0002C9E4 BCS loc_2C970 .text:0002C9E8 MOV R3, #0x20 .text:0002C9EC .text:0002C9EC loc_2C9EC ; CODE XREF: vfwprintf+3958j .text:0002C9EC ; vfwprintf+398Cj .text:0002C9EC STR R3, [R2],#4 .text:0002C9F0 STR R2, [R1,#0x10] .text:0002C9F4 .text:0002C9F4 loc_2C9F4 ; CODE XREF: vfwprintf+3950j .text:0002C9F4 ADD R10, R10, #1 .text:0002C9F8 .text:0002C9F8 loc_2C9F8 ; CODE XREF: vfwprintf+399Cj .text:0002C9F8 SUB R5, R11, #-var_1000 .text:0002C9FC LDR R12, [R5,#-0x108] .text:0002CA00 LDR R5, [R5,#-0x110] .text:0002CA04 CMP R12, #0 .text:0002CA08 CMPNE R5, #0 .text:0002CA0C BEQ loc_2CAAC .text:0002CA10 SUB R12, R11, #-var_1000 .text:0002CA14 LDR R12, [R12,#-0x10C] .text:0002CA18 CMP R12, #0x10 .text:0002CA1C BNE loc_2CAAC .text:0002CA20 LDR R1, [R9,#0x58] .text:0002CA24 ADD R2, R1, #0x10 .text:0002CA28 LDMIA R2, {R2,R3} .text:0002CA2C CMP R2, R3 .text:0002CA30 BCC loc_2CA54 .text:0002CA34 MOV R0, R9 .text:0002CA38 MOV R1, #0x30 .text:0002CA3C BL __woverflow .text:0002CA40 CMN R0, #1 .text:0002CA44 BEQ loc_2AF38 .text:0002CA48 B loc_2CA60 .text:0002CA48 ; --------------------------------------------------------------------------- .text:0002CA4C off_2CA4C DCD _itowa_lower_digits ; DATA XREF: vfwprintf:loc_2C680r .text:0002CA50 off_2CA50 DCD _itowa_upper_digits ; DATA XREF: vfwprintf+3660r .text:0002CA54 ; --------------------------------------------------------------------------- .text:0002CA54 .text:0002CA54 loc_2CA54 ; CODE XREF: vfwprintf+3A04j .text:0002CA54 MOV R3, #0x30 .text:0002CA58 STR R3, [R2],#4 .text:0002CA5C STR R2, [R1,#0x10] .text:0002CA60 .text:0002CA60 loc_2CA60 ; CODE XREF: vfwprintf+3A1Cj .text:0002CA60 ADD R10, R10, #1 .text:0002CA64 LDR R1, [R9,#0x58] .text:0002CA68 ADD R2, R1, #0x10 .text:0002CA6C LDMIA R2, {R2,R3} .text:0002CA70 CMP R2, R3 .text:0002CA74 BCC loc_2CA90 .text:0002CA78 MOV R0, R9 .text:0002CA7C SUB LR, R11, #-var_1000 .text:0002CA80 LDR R1, [LR,#-0x144] .text:0002CA84 BL __woverflow .text:0002CA88 CMN R0, #1 .text:0002CA8C B loc_2CAA4 .text:0002CA90 ; --------------------------------------------------------------------------- .text:0002CA90 .text:0002CA90 loc_2CA90 ; CODE XREF: vfwprintf+3A48j .text:0002CA90 SUB R0, R11, #-var_1000 .text:0002CA94 LDR R0, [R0,#-0x144] .text:0002CA98 STR R0, [R2],#4 .text:0002CA9C CMN R0, #1 .text:0002CAA0 STR R2, [R1,#0x10] .text:0002CAA4 .text:0002CAA4 loc_2CAA4 ; CODE XREF: vfwprintf+3A60j .text:0002CAA4 BEQ loc_2AF38 .text:0002CAA8 ADD R10, R10, #1 .text:0002CAAC .text:0002CAAC loc_2CAAC ; CODE XREF: vfwprintf+39E0j .text:0002CAAC ; vfwprintf+39F0j .text:0002CAAC SUB R5, R11, #-var_1000 .text:0002CAB0 SUB R5, R5, #0x138 .text:0002CAB4 LDMIA R5, {R5,R12} .text:0002CAB8 ADD R12, R12, R5 .text:0002CABC SUB R5, R11, #-var_1000 .text:0002CAC0 CMP R12, #0 .text:0002CAC4 STR R12, [R5,#-0x134] .text:0002CAC8 BLE loc_2CAE4 .text:0002CACC MOV R0, R9 .text:0002CAD0 MOV R1, #0x30 .text:0002CAD4 MOV LR, R5 .text:0002CAD8 LDR R2, [LR,#-0x134] .text:0002CADC BL _IO_wpadn .text:0002CAE0 ADD R10, R10, R0 .text:0002CAE4 .text:0002CAE4 loc_2CAE4 ; CODE XREF: vfwprintf+3A9Cj .text:0002CAE4 MOV R0, R9 .text:0002CAE8 MOV R1, R7 .text:0002CAEC LDRB R3, [R9,#0x46] .text:0002CAF0 MOV R4, R4,ASR#2 .text:0002CAF4 MOV R3, R3,LSL#24 .text:0002CAF8 ADD R3, R9, R3,ASR#24 .text:0002CAFC LDR R12, [R3,#0x94] .text:0002CB00 MOV R2, R4 .text:0002CB04 MOV LR, PC .text:0002CB08 LDR PC, [R12,#0x1C] .text:0002CB0C CMP R0, R4 .text:0002CB10 BNE loc_2AF38 .text:0002CB14 B loc_2DA64 .text:0002CB18 ; --------------------------------------------------------------------------- .text:0002CB18 .text:0002CB18 loc_2CB18 ; CODE XREF: vfwprintf+383Cj .text:0002CB18 SUB R0, R11, #-var_1000 .text:0002CB1C LDR R0, [R0,#-0x100] .text:0002CB20 CMP R0, #0 .text:0002CB24 BEQ loc_2CB7C .text:0002CB28 LDR R1, [R9,#0x58] .text:0002CB2C ADD R2, R1, #0x10 .text:0002CB30 LDMIA R2, {R2,R3} .text:0002CB34 CMP R2, R3 .text:0002CB38 BCC loc_2CB54 .text:0002CB3C MOV R0, R9 .text:0002CB40 MOV R1, #0x2D .text:0002CB44 BL __woverflow .text:0002CB48 CMN R0, #1 .text:0002CB4C BEQ loc_2AF38 .text:0002CB50 B loc_2CB60 .text:0002CB54 ; --------------------------------------------------------------------------- .text:0002CB54 .text:0002CB54 loc_2CB54 ; CODE XREF: vfwprintf+3B0Cj .text:0002CB54 MOV R3, #0x2D .text:0002CB58 STR R3, [R2],#4 .text:0002CB5C STR R2, [R1,#0x10] .text:0002CB60 .text:0002CB60 loc_2CB60 ; CODE XREF: vfwprintf+3B24j .text:0002CB60 ADD R10, R10, #1 .text:0002CB64 SUB R1, R11, #-var_1000 .text:0002CB68 LDR R1, [R1,#-0x134] .text:0002CB6C SUB R2, R1, #1 .text:0002CB70 SUB R1, R11, #-var_1000 .text:0002CB74 STR R2, [R1,#-0x134] .text:0002CB78 B loc_2CC40 .text:0002CB7C ; --------------------------------------------------------------------------- .text:0002CB7C .text:0002CB7C loc_2CB7C ; CODE XREF: vfwprintf+3AF8j .text:0002CB7C SUB R2, R11, #-var_1000 .text:0002CB80 LDR R2, [R2,#-0x11C] .text:0002CB84 CMP R2, #0 .text:0002CB88 BEQ loc_2CBE0 .text:0002CB8C LDR R1, [R9,#0x58] .text:0002CB90 ADD R2, R1, #0x10 .text:0002CB94 LDMIA R2, {R2,R3} .text:0002CB98 CMP R2, R3 .text:0002CB9C BCC loc_2CBB8 .text:0002CBA0 MOV R0, R9 .text:0002CBA4 MOV R1, #0x2B .text:0002CBA8 BL __woverflow .text:0002CBAC CMN R0, #1 .text:0002CBB0 BEQ loc_2AF38 .text:0002CBB4 B loc_2CBC4 .text:0002CBB8 ; --------------------------------------------------------------------------- .text:0002CBB8 .text:0002CBB8 loc_2CBB8 ; CODE XREF: vfwprintf+3B70j .text:0002CBB8 MOV R3, #0x2B .text:0002CBBC STR R3, [R2],#4 .text:0002CBC0 STR R2, [R1,#0x10] .text:0002CBC4 .text:0002CBC4 loc_2CBC4 ; CODE XREF: vfwprintf+3B88j .text:0002CBC4 ADD R10, R10, #1 .text:0002CBC8 SUB R3, R11, #-var_1000 .text:0002CBCC LDR R3, [R3,#-0x134] .text:0002CBD0 SUB R5, R3, #1 .text:0002CBD4 SUB R3, R11, #-var_1000 .text:0002CBD8 STR R5, [R3,#-0x134] .text:0002CBDC B loc_2CC40 .text:0002CBE0 ; --------------------------------------------------------------------------- .text:0002CBE0 .text:0002CBE0 loc_2CBE0 ; CODE XREF: vfwprintf+3B5Cj .text:0002CBE0 SUB R5, R11, #-var_1000 .text:0002CBE4 LDR R5, [R5,#-0x114] .text:0002CBE8 CMP R5, #0 .text:0002CBEC BEQ loc_2CC40 .text:0002CBF0 LDR R1, [R9,#0x58] .text:0002CBF4 ADD R2, R1, #0x10 .text:0002CBF8 LDMIA R2, {R2,R3} .text:0002CBFC CMP R2, R3 .text:0002CC00 BCC loc_2CC1C .text:0002CC04 MOV R0, R9 .text:0002CC08 MOV R1, #0x20 .text:0002CC0C BL __woverflow .text:0002CC10 CMN R0, #1 .text:0002CC14 BEQ loc_2AF38 .text:0002CC18 B loc_2CC28 .text:0002CC1C ; --------------------------------------------------------------------------- .text:0002CC1C .text:0002CC1C loc_2CC1C ; CODE XREF: vfwprintf+3BD4j .text:0002CC1C MOV R3, #0x20 .text:0002CC20 STR R3, [R2],#4 .text:0002CC24 STR R2, [R1,#0x10] .text:0002CC28 .text:0002CC28 loc_2CC28 ; CODE XREF: vfwprintf+3BECj .text:0002CC28 ADD R10, R10, #1 .text:0002CC2C SUB R12, R11, #-var_1000 .text:0002CC30 LDR R12, [R12,#-0x134] .text:0002CC34 SUB LR, R12, #1 .text:0002CC38 SUB R12, R11, #-var_1000 .text:0002CC3C STR LR, [R12,#-0x134] .text:0002CC40 .text:0002CC40 loc_2CC40 ; CODE XREF: vfwprintf+3B4Cj .text:0002CC40 ; vfwprintf+3BB0j ... .text:0002CC40 SUB LR, R11, #-var_1000 .text:0002CC44 LDR R0, [LR,#-0x108] .text:0002CC48 LDR LR, [LR,#-0x110] .text:0002CC4C CMP R0, #0 .text:0002CC50 CMPNE LR, #0 .text:0002CC54 BEQ loc_2CD00 .text:0002CC58 SUB R0, R11, #-var_1000 .text:0002CC5C LDR R0, [R0,#-0x10C] .text:0002CC60 CMP R0, #0x10 .text:0002CC64 BNE loc_2CD00 .text:0002CC68 LDR R1, [R9,#0x58] .text:0002CC6C ADD R2, R1, #0x10 .text:0002CC70 LDMIA R2, {R2,R3} .text:0002CC74 CMP R2, R3 .text:0002CC78 BCC loc_2CC94 .text:0002CC7C MOV R0, R9 .text:0002CC80 MOV R1, #0x30 .text:0002CC84 BL __woverflow .text:0002CC88 CMN R0, #1 .text:0002CC8C BEQ loc_2AF38 .text:0002CC90 B loc_2CCA0 .text:0002CC94 ; --------------------------------------------------------------------------- .text:0002CC94 .text:0002CC94 loc_2CC94 ; CODE XREF: vfwprintf+3C4Cj .text:0002CC94 MOV R3, #0x30 .text:0002CC98 STR R3, [R2],#4 .text:0002CC9C STR R2, [R1,#0x10] .text:0002CCA0 .text:0002CCA0 loc_2CCA0 ; CODE XREF: vfwprintf+3C64j .text:0002CCA0 ADD R10, R10, #1 .text:0002CCA4 LDR R1, [R9,#0x58] .text:0002CCA8 ADD R2, R1, #0x10 .text:0002CCAC LDMIA R2, {R2,R3} .text:0002CCB0 CMP R2, R3 .text:0002CCB4 BCC loc_2CCD0 .text:0002CCB8 MOV R0, R9 .text:0002CCBC SUB R2, R11, #-var_1000 .text:0002CCC0 LDR R1, [R2,#-0x144] .text:0002CCC4 BL __woverflow .text:0002CCC8 CMN R0, #1 .text:0002CCCC B loc_2CCE4 .text:0002CCD0 ; --------------------------------------------------------------------------- .text:0002CCD0 .text:0002CCD0 loc_2CCD0 ; CODE XREF: vfwprintf+3C88j .text:0002CCD0 SUB R3, R11, #-var_1000 .text:0002CCD4 LDR R3, [R3,#-0x144] .text:0002CCD8 STR R3, [R2],#4 .text:0002CCDC CMN R3, #1 .text:0002CCE0 STR R2, [R1,#0x10] .text:0002CCE4 .text:0002CCE4 loc_2CCE4 ; CODE XREF: vfwprintf+3CA0j .text:0002CCE4 BEQ loc_2AF38 .text:0002CCE8 ADD R10, R10, #1 .text:0002CCEC SUB R12, R11, #-var_1000 .text:0002CCF0 LDR R12, [R12,#-0x134] .text:0002CCF4 SUB LR, R12, #2 .text:0002CCF8 SUB R12, R11, #-var_1000 .text:0002CCFC STR LR, [R12,#-0x134] .text:0002CD00 .text:0002CD00 loc_2CD00 ; CODE XREF: vfwprintf+3C28j .text:0002CD00 ; vfwprintf+3C38j .text:0002CD00 MOV R4, R4,ASR#2 .text:0002CD04 SUB LR, R11, #-var_1000 .text:0002CD08 LDR LR, [LR,#-0x138] .text:0002CD0C SUB R0, R11, #-var_1000 .text:0002CD10 LDR R0, [R0,#-0x134] .text:0002CD14 ADD R3, R4, LR .text:0002CD18 RSB R3, R3, R0 .text:0002CD1C SUB R0, R11, #-var_1000 .text:0002CD20 CMP LR, #0 .text:0002CD24 STR R3, [R0,#-0x134] .text:0002CD28 BLE loc_2CD44 .text:0002CD2C MOV R0, R9 .text:0002CD30 MOV R1, #0x30 .text:0002CD34 SUB R3, R11, #-var_1000 .text:0002CD38 LDR R2, [R3,#-0x138] .text:0002CD3C BL _IO_wpadn .text:0002CD40 ADD R10, R10, R0 .text:0002CD44 .text:0002CD44 loc_2CD44 ; CODE XREF: vfwprintf+3CFCj .text:0002CD44 MOV R0, R9 .text:0002CD48 LDRB R3, [R9,#0x46] .text:0002CD4C MOV R1, R7 .text:0002CD50 MOV R3, R3,LSL#24 .text:0002CD54 ADD R3, R9, R3,ASR#24 .text:0002CD58 LDR R12, [R3,#0x94] .text:0002CD5C MOV R2, R4 .text:0002CD60 MOV LR, PC .text:0002CD64 LDR PC, [R12,#0x1C] .text:0002CD68 CMP R0, R4 .text:0002CD6C BNE loc_2AF38 .text:0002CD70 ADD R10, R10, R0 .text:0002CD74 SUB R4, R11, #-var_1000 .text:0002CD78 LDR R4, [R4,#-0x134] .text:0002CD7C CMP R4, #0 .text:0002CD80 BLE loc_2DA68 .text:0002CD84 MOV R0, R9 .text:0002CD88 MOV R1, #0x20 .text:0002CD8C SUB R5, R11, #-var_1000 .text:0002CD90 LDR R2, [R5,#-0x134] .text:0002CD94 BL _IO_wpadn .text:0002CD98 B loc_2DA64 .text:0002CD9C ; --------------------------------------------------------------------------- .text:0002CD9C SUB R12, R11, #-var_1000 .text:0002CDA0 LDR R12, [R12,#-0x90] .text:0002CDA4 SUB R0, R11, #-var_1000 .text:0002CDA8 LDR R0, [R0,#-0xEC] .text:0002CDAC MOV R2, R12,LSL#1 .text:0002CDB0 ADD R3, R2, R12 .text:0002CDB4 ADD R1, R0, R3,LSL#4 .text:0002CDB8 CMP R1, #0 .text:0002CDBC SUB R3, R11, #-var_1000 .text:0002CDC0 STR R2, [R3,#-0x148] .text:0002CDC4 BNE loc_2CF74 .text:0002CDC8 SUB R0, R11, #-var_1000 .text:0002CDCC SUB R0, R0, #8 .text:0002CDD0 SUB R0, R0, #0xC .text:0002CDD4 MOV R2, #0x14 .text:0002CDD8 BL memset .text:0002CDDC SUB R4, R11, #-var_1000 .text:0002CDE0 LDR R5, [R4,#-0x138] .text:0002CDE4 STR R5, [R4,#-0x14] .text:0002CDE8 MOV R12, R4 .text:0002CDEC LDR LR, [R12,#-0x134] .text:0002CDF0 STR LR, [R12,#-0x10] .text:0002CDF4 MOV R0, R4 .text:0002CDF8 LDR R1, [R0,#-0x144] .text:0002CDFC STR R1, [R0,#-0xC] .text:0002CE00 LDR R5, [R4,#-0x140] .text:0002CE04 MOV R2, R0 .text:0002CE08 LDRB R3, [R2,#-8] .text:0002CE0C STR R5, [R4,#-4] .text:0002CE10 LDR R12, [R12,#-0x124] .text:0002CE14 MOV LR, R0 .text:0002CE18 LDR LR, [LR,#-0x128] .text:0002CE1C LDR R0, [R0,#-0x130] .text:0002CE20 SUB R5, R11, #-var_1000 .text:0002CE24 LDR R5, [R5,#-0x118] .text:0002CE28 CMP R12, #0 .text:0002CE2C ORRNE R3, R3, #1 .text:0002CE30 ANDEQ R3, R3, #0xFE .text:0002CE34 CMP LR, #0 .text:0002CE38 ORRNE R3, R3, #2 .text:0002CE3C ANDEQ R3, R3, #0xFD .text:0002CE40 AND R2, R0, #1 .text:0002CE44 CMP R2, #0 .text:0002CE48 ORRNE R3, R3, #4 .text:0002CE4C ANDEQ R3, R3, #0xFB .text:0002CE50 MOV R2, R4 .text:0002CE54 LDR R2, [R2,#-0x110] .text:0002CE58 SUB R12, R11, #-var_1000 .text:0002CE5C LDR R4, [R4,#-0x114] .text:0002CE60 SUB LR, R11, #-var_1000 .text:0002CE64 LDR R12, [R12,#-0x11C] .text:0002CE68 SUB R0, R11, #-var_1000 .text:0002CE6C LDR LR, [LR,#-0x120] .text:0002CE70 AND R1, R2, #1 .text:0002CE74 CMP R1, #0 .text:0002CE78 ORRNE R3, R3, #8 .text:0002CE7C ANDEQ R3, R3, #0xF7 .text:0002CE80 AND R2, R4, #1 .text:0002CE84 CMP R2, #0 .text:0002CE88 ORRNE R3, R3, #0x10 .text:0002CE8C ANDEQ R3, R3, #0xEF .text:0002CE90 AND R1, R5, #1 .text:0002CE94 CMP R1, #0 .text:0002CE98 ORRNE R3, R3, #0x20 .text:0002CE9C ANDEQ R3, R3, #0xDF .text:0002CEA0 AND R2, R12, #1 .text:0002CEA4 CMP R2, #0 .text:0002CEA8 ORRNE R3, R3, #0x40 .text:0002CEAC ANDEQ R3, R3, #0xBF .text:0002CEB0 AND R1, LR, #1 .text:0002CEB4 CMP R1, #0 .text:0002CEB8 ORRNE R3, R3, #0x80 .text:0002CEBC ANDEQ R3, R3, #0x7F .text:0002CEC0 STRB R3, [R0,#-8] .text:0002CEC4 MOV R1, R0 .text:0002CEC8 MOV R3, R0 .text:0002CECC LDR R3, [R3,#-0x124] .text:0002CED0 MOV R4, R0 .text:0002CED4 LDRB R2, [R1,#-7] .text:0002CED8 CMP R3, #0 .text:0002CEDC ORR R2, R2, #4 .text:0002CEE0 STRB R2, [R4,#-7] .text:0002CEE4 BEQ loc_2CF0C .text:0002CEE8 MOV R5, R0 .text:0002CEEC LDR R12, [R5,#-0x78] .text:0002CEF0 ADD R12, R12, #8 .text:0002CEF4 STR R12, [R5,#-0x78] .text:0002CEF8 SUB R3, R11, #-var_1000 .text:0002CEFC SUB R3, R3, #0x28 .text:0002CF00 SUB R12, R12, #8 .text:0002CF04 LDMIA R12!, {R1,R2} .text:0002CF08 B loc_2CF2C .text:0002CF0C ; --------------------------------------------------------------------------- .text:0002CF0C .text:0002CF0C loc_2CF0C ; CODE XREF: vfwprintf+3EB8j .text:0002CF0C SUB LR, R11, #-var_1000 .text:0002CF10 LDR R0, [LR,#-0x78] .text:0002CF14 ADD R0, R0, #8 .text:0002CF18 STR R0, [LR,#-0x78] .text:0002CF1C SUB R3, R11, #-var_1000 .text:0002CF20 SUB R3, R3, #0x28 .text:0002CF24 SUB R0, R0, #8 .text:0002CF28 LDMIA R0!, {R1,R2} .text:0002CF2C .text:0002CF2C loc_2CF2C ; CODE XREF: vfwprintf+3EDCj .text:0002CF2C SUB R3, R3, #0x38 .text:0002CF30 STMIA R3, {R1,R2} .text:0002CF34 SUB R2, R11, #-var_1000 .text:0002CF38 SUB R2, R2, #0x28 .text:0002CF3C SUB R2, R2, #0x38 .text:0002CF40 MOV R3, 0xFFFFEFC4 .text:0002CF48 MOV R0, R9 .text:0002CF4C SUB R1, R11, #-var_28 .text:0002CF50 STR R2, [R1,R3] .text:0002CF54 SUB R1, R11, #-var_1000 .text:0002CF58 SUB R1, R1, #8 .text:0002CF5C SUB R1, R1, #0xC .text:0002CF60 SUB R2, R11, #-var_1000 .text:0002CF64 SUB R2, R2, #0x28 .text:0002CF68 SUB R2, R2, #0x3C .text:0002CF6C BL __printf_fp .text:0002CF70 B loc_2CF9C .text:0002CF74 ; --------------------------------------------------------------------------- .text:0002CF74 .text:0002CF74 loc_2CF74 ; CODE XREF: vfwprintf+3D98j .text:0002CF74 SUB R2, R11, #-var_1000 .text:0002CF78 SUB R2, R2, #0x28 .text:0002CF7C LDR R3, [R1,#0x24] .text:0002CF80 SUB R4, R11, #-var_1000 .text:0002CF84 LDR R4, [R4,#-0xF4] .text:0002CF88 SUB R2, R2, #0x3C .text:0002CF8C ADD R3, R4, R3,LSL#3 .text:0002CF90 STR R3, [R2] .text:0002CF94 MOV R0, R9 .text:0002CF98 BL __printf_fp .text:0002CF9C .text:0002CF9C loc_2CF9C ; CODE XREF: vfwprintf+3F44j .text:0002CF9C CMP R0, #0 .text:0002CFA0 B loc_2DA60 .text:0002CFA4 ; --------------------------------------------------------------------------- .text:0002CFA4 SUB R5, R11, #-var_1000 .text:0002CFA8 SUB LR, R11, #-var_1000 .text:0002CFAC LDR R5, [R5,#-0x90] .text:0002CFB0 SUB R0, R11, #-var_1000 .text:0002CFB4 LDR LR, [LR,#-0xEC] .text:0002CFB8 MOV R2, R5,LSL#1 .text:0002CFBC ADD R3, R2, R5 .text:0002CFC0 ADD R1, LR, R3,LSL#4 .text:0002CFC4 CMP R1, #0 .text:0002CFC8 STR R2, [R0,#-0x148] .text:0002CFCC BNE loc_2D170 .text:0002CFD0 MOV R4, #0x80000000 .text:0002CFD4 MOV R4, R4,ASR#19 .text:0002CFD8 ADD R2, R11, R4 .text:0002CFDC SUB R0, R2, #0x28 .text:0002CFE0 MOV R2, #0x14 .text:0002CFE4 BL memset .text:0002CFE8 SUB R3, R11, #-var_1000 .text:0002CFEC LDR R5, [R3,#-0x138] .text:0002CFF0 SUB R3, R11, #-var_28 .text:0002CFF4 STR R5, [R3,R4] .text:0002CFF8 SUB R12, R11, #-var_1000 .text:0002CFFC LDR LR, [R12,#-0x134] .text:0002D000 STR LR, [R12,#-0x24] .text:0002D004 MOV R0, R12 .text:0002D008 LDR R1, [R0,#-0x144] .text:0002D00C STR R1, [R0,#-0x20] .text:0002D010 MOV R4, R0 .text:0002D014 LDR R5, [R4,#-0x140] .text:0002D018 MOV R2, R0 .text:0002D01C LDRB R3, [R2,#-0x1C] .text:0002D020 STR R5, [R4,#-0x18] .text:0002D024 LDR R12, [R12,#-0x124] .text:0002D028 MOV LR, R0 .text:0002D02C LDR LR, [LR,#-0x128] .text:0002D030 LDR R0, [R0,#-0x130] .text:0002D034 SUB R5, R11, #-var_1000 .text:0002D038 LDR R5, [R5,#-0x118] .text:0002D03C CMP R12, #0 .text:0002D040 ORRNE R3, R3, #1 .text:0002D044 ANDEQ R3, R3, #0xFE .text:0002D048 CMP LR, #0 .text:0002D04C ORRNE R3, R3, #2 .text:0002D050 ANDEQ R3, R3, #0xFD .text:0002D054 AND R2, R0, #1 .text:0002D058 CMP R2, #0 .text:0002D05C ORRNE R3, R3, #4 .text:0002D060 ANDEQ R3, R3, #0xFB .text:0002D064 MOV R2, R4 .text:0002D068 LDR R2, [R2,#-0x110] .text:0002D06C SUB R12, R11, #-var_1000 .text:0002D070 LDR R4, [R4,#-0x114] .text:0002D074 SUB LR, R11, #-var_1000 .text:0002D078 LDR R12, [R12,#-0x11C] .text:0002D07C SUB R0, R11, #-var_1000 .text:0002D080 LDR LR, [LR,#-0x120] .text:0002D084 AND R1, R2, #1 .text:0002D088 CMP R1, #0 .text:0002D08C ORRNE R3, R3, #8 .text:0002D090 ANDEQ R3, R3, #0xF7 .text:0002D094 AND R2, R4, #1 .text:0002D098 CMP R2, #0 .text:0002D09C ORRNE R3, R3, #0x10 .text:0002D0A0 ANDEQ R3, R3, #0xEF .text:0002D0A4 AND R1, R5, #1 .text:0002D0A8 CMP R1, #0 .text:0002D0AC ORRNE R3, R3, #0x20 .text:0002D0B0 ANDEQ R3, R3, #0xDF .text:0002D0B4 AND R2, R12, #1 .text:0002D0B8 CMP R2, #0 .text:0002D0BC ORRNE R3, R3, #0x40 .text:0002D0C0 ANDEQ R3, R3, #0xBF .text:0002D0C4 AND R1, LR, #1 .text:0002D0C8 CMP R1, #0 .text:0002D0CC ORRNE R3, R3, #0x80 .text:0002D0D0 ANDEQ R3, R3, #0x7F .text:0002D0D4 STRB R3, [R0,#-0x1C] .text:0002D0D8 MOV R1, R0 .text:0002D0DC MOV R3, R0 .text:0002D0E0 LDR R3, [R3,#-0x124] .text:0002D0E4 MOV R4, R0 .text:0002D0E8 LDRB R2, [R1,#-0x1B] .text:0002D0EC CMP R3, #0 .text:0002D0F0 ORR R2, R2, #4 .text:0002D0F4 STRB R2, [R4,#-0x1B] .text:0002D0F8 BEQ loc_2D124 .text:0002D0FC MOV R5, R0 .text:0002D100 LDR R12, [R5,#-0x78] .text:0002D104 ADD R12, R12, #8 .text:0002D108 STR R12, [R5,#-0x78] .text:0002D10C SUB R2, R11, #-var_1000 .text:0002D110 SUB R2, R2, #0x28 .text:0002D114 SUB R2, R2, #0x38 .text:0002D118 SUB R12, R12, #8 .text:0002D11C LDMIA R12!, {R3,R4} .text:0002D120 B loc_2D148 .text:0002D124 ; --------------------------------------------------------------------------- .text:0002D124 .text:0002D124 loc_2D124 ; CODE XREF: vfwprintf+40CCj .text:0002D124 SUB LR, R11, #-var_1000 .text:0002D128 LDR R0, [LR,#-0x78] .text:0002D12C ADD R0, R0, #8 .text:0002D130 STR R0, [LR,#-0x78] .text:0002D134 SUB R2, R11, #-var_1000 .text:0002D138 SUB R2, R2, #0x28 .text:0002D13C SUB R2, R2, #0x38 .text:0002D140 SUB R0, R0, #8 .text:0002D144 LDMIA R0!, {R3,R4} .text:0002D148 .text:0002D148 loc_2D148 ; CODE XREF: vfwprintf+40F4j .text:0002D148 MOV R1, R2 .text:0002D14C STMIA R2, {R3,R4} .text:0002D150 SUB R2, R11, #-var_1040 .text:0002D154 SUB R2, R2, #0x28 .text:0002D158 STR R1, [R2] .text:0002D15C MOV R0, R9 .text:0002D160 SUB R1, R11, #-var_1000 .text:0002D164 SUB R1, R1, #0x28 .text:0002D168 BL __printf_fphex .text:0002D16C B loc_2D194 .text:0002D170 ; --------------------------------------------------------------------------- .text:0002D170 .text:0002D170 loc_2D170 ; CODE XREF: vfwprintf+3FA0j .text:0002D170 LDR R3, [R1,#0x24] .text:0002D174 SUB R2, R11, #-var_1000 .text:0002D178 LDR R2, [R2,#-0xF4] .text:0002D17C ADD R3, R2, R3,LSL#3 .text:0002D180 SUB R2, R11, #-var_1040 .text:0002D184 SUB R2, R2, #0x28 .text:0002D188 STR R3, [R2] .text:0002D18C MOV R0, R9 .text:0002D190 BL __printf_fphex .text:0002D194 .text:0002D194 loc_2D194 ; CODE XREF: vfwprintf+4140j .text:0002D194 CMP R0, #0 .text:0002D198 B loc_2DA60 .text:0002D19C ; --------------------------------------------------------------------------- .text:0002D19C SUB R3, R11, #-var_1000 .text:0002D1A0 SUB R4, R11, #-var_1000 .text:0002D1A4 LDR R3, [R3,#-0x90] .text:0002D1A8 SUB R5, R11, #-var_1000 .text:0002D1AC LDR R4, [R4,#-0x90] .text:0002D1B0 SUB R12, R11, #-var_1000 .text:0002D1B4 LDR R5, [R5,#-0xEC] .text:0002D1B8 MOV R2, R3,LSL#1 .text:0002D1BC ADD R3, R2, R4 .text:0002D1C0 ADD R3, R5, R3,LSL#4 .text:0002D1C4 CMP R3, #0 .text:0002D1C8 STR R2, [R12,#-0x148] .text:0002D1CC BNE loc_2D1EC .text:0002D1D0 MOV LR, R12 .text:0002D1D4 LDR R0, [LR,#-0x78] .text:0002D1D8 ADD R0, R0, #4 .text:0002D1DC STR R0, [LR,#-0x78] .text:0002D1E0 SUB R0, R0, #4 .text:0002D1E4 LDR R2, [R0],#4 .text:0002D1E8 B loc_2D1FC .text:0002D1EC ; --------------------------------------------------------------------------- .text:0002D1EC .text:0002D1EC loc_2D1EC ; CODE XREF: vfwprintf+41A0j .text:0002D1EC LDR R3, [R3,#0x24] .text:0002D1F0 SUB R1, R11, #-var_1000 .text:0002D1F4 LDR R1, [R1,#-0xF4] .text:0002D1F8 LDR R2, [R1,R3,LSL#3] .text:0002D1FC .text:0002D1FC loc_2D1FC ; CODE XREF: vfwprintf+41BCj .text:0002D1FC CMP R2, #0 .text:0002D200 BEQ loc_2D244 .text:0002D204 MOV R4, #0x10 .text:0002D208 SUB R3, R11, #-var_1000 .text:0002D20C STR R4, [R3,#-0x10C] .text:0002D210 MOV R5, R3 .text:0002D214 STR R2, [R5,#-0x108] .text:0002D218 MOV LR, #0 .text:0002D21C MOV R12, R3 .text:0002D220 STR LR, [R12,#-0x100] .text:0002D224 MOV R1, #1 .text:0002D228 MOV R0, R3 .text:0002D22C STR R1, [R0,#-0x110] .text:0002D230 MOV R2, R0 .text:0002D234 STR LR, [R2,#-0x120] .text:0002D238 ADD R4, R4, #0x68 .text:0002D23C STR R4, [R3,#-0x144] .text:0002D240 B loc_2C604 .text:0002D244 ; --------------------------------------------------------------------------- .text:0002D244 .text:0002D244 loc_2D244 ; CODE XREF: vfwprintf+41D4j .text:0002D244 SUB R5, R11, #-var_1000 .text:0002D248 LDR R12, [R5,#-0x138] .text:0002D24C MOV R5, R12 .text:0002D250 CMP R5, #4 .text:0002D254 MOVLE R12, #5 .text:0002D258 SUB R5, R11, #-var_1000 .text:0002D25C STR R12, [R5,#-0x138] .text:0002D260 LDR R7, =dword_5743C .text:0002D264 MOV R12, R5 .text:0002D268 STR R2, [R12,#-0x130] .text:0002D26C B loc_2D6D0 .text:0002D270 ; --------------------------------------------------------------------------- .text:0002D270 SUB LR, R11, #-var_1000 .text:0002D274 SUB R1, R11, #-var_1000 .text:0002D278 LDR LR, [LR,#-0x90] .text:0002D27C SUB R4, R11, #-var_1000 .text:0002D280 LDR R1, [R1,#-0xEC] .text:0002D284 MOV R2, LR,LSL#1 .text:0002D288 ADD R3, R2, LR .text:0002D28C ADD R3, R1, R3,LSL#4 .text:0002D290 CMP R3, #0 .text:0002D294 STR R2, [R4,#-0x148] .text:0002D298 BNE loc_2D350 .text:0002D29C MOV R5, R4 .text:0002D2A0 LDR R5, [R5,#-0x124] .text:0002D2A4 CMP R5, #0 .text:0002D2A8 BEQ loc_2D2D4 .text:0002D2AC MOV R12, R4 .text:0002D2B0 LDR LR, [R12,#-0x78] .text:0002D2B4 ADD LR, LR, #4 .text:0002D2B8 STR LR, [R12,#-0x78] .text:0002D2BC SUB LR, LR, #4 .text:0002D2C0 LDR R2, [LR],#4 .text:0002D2C4 MOV R3, R10 .text:0002D2C8 MOV R4, R3,ASR#31 .text:0002D2CC STMIA R2, {R3,R4} .text:0002D2D0 B loc_2DA68 .text:0002D2D4 ; --------------------------------------------------------------------------- .text:0002D2D4 .text:0002D2D4 loc_2D2D4 ; CODE XREF: vfwprintf+427Cj .text:0002D2D4 SUB R0, R11, #-var_1000 .text:0002D2D8 LDR R0, [R0,#-0x12C] .text:0002D2DC CMP R0, #0 .text:0002D2E0 BEQ loc_2D304 .text:0002D2E4 SUB R1, R11, #-var_1000 .text:0002D2E8 LDR R2, [R1,#-0x78] .text:0002D2EC ADD R2, R2, #4 .text:0002D2F0 STR R2, [R1,#-0x78] .text:0002D2F4 SUB R2, R2, #4 .text:0002D2F8 LDR R3, [R2],#4 .text:0002D2FC STRB R10, [R3] .text:0002D300 B loc_2DA68 .text:0002D304 ; --------------------------------------------------------------------------- .text:0002D304 .text:0002D304 loc_2D304 ; CODE XREF: vfwprintf+42B4j .text:0002D304 SUB R3, R11, #-var_1000 .text:0002D308 LDR R3, [R3,#-0x128] .text:0002D30C CMP R3, #0 .text:0002D310 BNE loc_2D334 .text:0002D314 SUB R4, R11, #-var_1000 .text:0002D318 LDR R5, [R4,#-0x78] .text:0002D31C ADD R5, R5, #4 .text:0002D320 STR R5, [R4,#-0x78] .text:0002D324 SUB R5, R5, #4 .text:0002D328 LDR R3, [R5],#4 .text:0002D32C STR R10, [R3] .text:0002D330 B loc_2DA68 .text:0002D334 ; --------------------------------------------------------------------------- .text:0002D334 .text:0002D334 loc_2D334 ; CODE XREF: vfwprintf+42E4j .text:0002D334 SUB R12, R11, #-var_1000 .text:0002D338 LDR LR, [R12,#-0x78] .text:0002D33C ADD LR, LR, #4 .text:0002D340 STR LR, [R12,#-0x78] .text:0002D344 SUB LR, LR, #4 .text:0002D348 LDR R2, [LR],#4 .text:0002D34C B loc_2D3E0 .text:0002D350 ; --------------------------------------------------------------------------- .text:0002D350 .text:0002D350 loc_2D350 ; CODE XREF: vfwprintf+426Cj .text:0002D350 SUB R0, R11, #-var_1000 .text:0002D354 LDR R0, [R0,#-0x124] .text:0002D358 CMP R0, #0 .text:0002D35C BEQ loc_2D380 .text:0002D360 LDR R3, [R3,#0x24] .text:0002D364 SUB R1, R11, #-var_1000 .text:0002D368 LDR R1, [R1,#-0xF4] .text:0002D36C LDR R0, [R1,R3,LSL#3] .text:0002D370 MOV R1, R10 .text:0002D374 MOV R2, R1,ASR#31 .text:0002D378 STMIA R0, {R1,R2} .text:0002D37C B loc_2DA68 .text:0002D380 ; --------------------------------------------------------------------------- .text:0002D380 .text:0002D380 loc_2D380 ; CODE XREF: vfwprintf+4330j .text:0002D380 SUB R2, R11, #-var_1000 .text:0002D384 LDR R2, [R2,#-0x12C] .text:0002D388 CMP R2, #0 .text:0002D38C BEQ loc_2D3A8 .text:0002D390 LDR R3, [R3,#0x24] .text:0002D394 SUB R4, R11, #-var_1000 .text:0002D398 LDR R4, [R4,#-0xF4] .text:0002D39C LDR R2, [R4,R3,LSL#3] .text:0002D3A0 STRB R10, [R2] .text:0002D3A4 B loc_2DA68 .text:0002D3A8 ; --------------------------------------------------------------------------- .text:0002D3A8 .text:0002D3A8 loc_2D3A8 ; CODE XREF: vfwprintf+4360j .text:0002D3A8 SUB R5, R11, #-var_1000 .text:0002D3AC LDR R5, [R5,#-0x128] .text:0002D3B0 CMP R5, #0 .text:0002D3B4 BNE loc_2D3D0 .text:0002D3B8 LDR R3, [R3,#0x24] .text:0002D3BC SUB R12, R11, #-var_1000 .text:0002D3C0 LDR R12, [R12,#-0xF4] .text:0002D3C4 LDR R2, [R12,R3,LSL#3] .text:0002D3C8 STR R10, [R2] .text:0002D3CC B loc_2DA68 .text:0002D3D0 ; --------------------------------------------------------------------------- .text:0002D3D0 .text:0002D3D0 loc_2D3D0 ; CODE XREF: vfwprintf+4388j .text:0002D3D0 LDR R3, [R3,#0x24] .text:0002D3D4 SUB LR, R11, #-var_1000 .text:0002D3D8 LDR LR, [LR,#-0xF4] .text:0002D3DC LDR R2, [LR,R3,LSL#3] .text:0002D3E0 .text:0002D3E0 loc_2D3E0 ; CODE XREF: vfwprintf+4320j .text:0002D3E0 STRB R10, [R2] .text:0002D3E4 MOV R3, R10,ASR#8 .text:0002D3E8 STRB R3, [R2,#1] .text:0002D3EC B loc_2DA68 .text:0002D3F0 ; --------------------------------------------------------------------------- .text:0002D3F0 SUB R1, R11, #-var_1000 .text:0002D3F4 LDR R0, [R1,#-0x94] .text:0002D3F8 SUB R1, R11, #-var_FC0 .text:0002D3FC SUB R1, R1, #8 .text:0002D400 MOV R2, #0xFA0 .text:0002D404 BL strerror_r .text:0002D408 MOV R7, R0 .text:0002D40C MOV R3, #0 .text:0002D410 SUB R2, R11, #-var_1000 .text:0002D414 STR R3, [R2,#-0x130] .text:0002D418 B loc_2D6D0 .text:0002D41C ; --------------------------------------------------------------------------- .text:0002D41C SUB R4, R11, #-var_1000 .text:0002D420 LDR R4, [R4,#-0x130] .text:0002D424 CMP R4, #0 .text:0002D428 BNE loc_2D548 .text:0002D42C SUB R5, R11, #-var_1000 .text:0002D430 LDR R5, [R5,#-0x134] .text:0002D434 SUB R12, R5, #1 .text:0002D438 SUB R5, R11, #-var_1000 .text:0002D43C STR R12, [R5,#-0x134] .text:0002D440 MOV R12, R5 .text:0002D444 LDR R12, [R12,#-0x118] .text:0002D448 CMP R12, #0 .text:0002D44C BNE loc_2D478 .text:0002D450 MOV LR, R5 .text:0002D454 LDR LR, [LR,#-0x134] .text:0002D458 CMP LR, #0 .text:0002D45C BLE loc_2D478 .text:0002D460 MOV R0, R9 .text:0002D464 MOV R1, #0x20 .text:0002D468 MOV R3, R5 .text:0002D46C LDR R2, [R3,#-0x134] .text:0002D470 BL _IO_wpadn .text:0002D474 ADD R10, R10, R0 .text:0002D478 .text:0002D478 loc_2D478 ; CODE XREF: vfwprintf+4420j .text:0002D478 ; vfwprintf+4430j .text:0002D478 SUB R4, R11, #-var_1000 .text:0002D47C SUB R12, R11, #-var_1000 .text:0002D480 LDR R4, [R4,#-0x90] .text:0002D484 SUB LR, R11, #-var_1000 .text:0002D488 LDR R12, [R12,#-0xEC] .text:0002D48C MOV R2, R4,LSL#1 .text:0002D490 ADD R3, R2, R4 .text:0002D494 ADD R3, R12, R3,LSL#4 .text:0002D498 CMP R3, #0 .text:0002D49C STR R2, [LR,#-0x148] .text:0002D4A0 BNE loc_2D4D0 .text:0002D4A4 MOV R0, LR .text:0002D4A8 LDR R0, [R0,#-0x78] .text:0002D4AC ADD R1, R0, #4 .text:0002D4B0 MOV R0, LR .text:0002D4B4 STR R1, [R0,#-0x78] .text:0002D4B8 LDRB R0, [R1,#-4] .text:0002D4BC B loc_2D4E0 .text:0002D4C0 ; --------------------------------------------------------------------------- .text:0002D4C0 .text:0002D4C0 loc_2D4C0 ; CODE XREF: vfwprintf+44CCj .text:0002D4C0 MOV R0, R9 .text:0002D4C4 BL __woverflow .text:0002D4C8 CMN R0, #1 .text:0002D4CC B loc_2D508 .text:0002D4D0 ; --------------------------------------------------------------------------- .text:0002D4D0 .text:0002D4D0 loc_2D4D0 ; CODE XREF: vfwprintf+4474j .text:0002D4D0 LDR R3, [R3,#0x24] .text:0002D4D4 SUB R2, R11, #-var_1000 .text:0002D4D8 LDR R2, [R2,#-0xF4] .text:0002D4DC LDRB R0, [R2,R3,LSL#3] .text:0002D4E0 .text:0002D4E0 loc_2D4E0 ; CODE XREF: vfwprintf+4490j .text:0002D4E0 BL btowc .text:0002D4E4 LDR R12, [R9,#0x58] .text:0002D4E8 ADD R2, R12, #0x10 .text:0002D4EC LDMIA R2, {R2,R3} .text:0002D4F0 MOV R1, R0 .text:0002D4F4 CMP R2, R3 .text:0002D4F8 BCS loc_2D4C0 .text:0002D4FC STR R1, [R2],#4 .text:0002D500 CMN R1, #1 .text:0002D504 STR R2, [R12,#0x10] .text:0002D508 .text:0002D508 loc_2D508 ; CODE XREF: vfwprintf+44A0j .text:0002D508 BEQ loc_2AF38 .text:0002D50C ADD R10, R10, #1 .text:0002D510 SUB R3, R11, #-var_1000 .text:0002D514 LDR R3, [R3,#-0x118] .text:0002D518 CMP R3, #0 .text:0002D51C BEQ loc_2DA68 .text:0002D520 SUB R4, R11, #-var_1000 .text:0002D524 LDR R4, [R4,#-0x134] .text:0002D528 CMP R4, #0 .text:0002D52C BLE loc_2DA68 .text:0002D530 MOV R0, R9 .text:0002D534 MOV R1, #0x20 .text:0002D538 SUB R5, R11, #-var_1000 .text:0002D53C LDR R2, [R5,#-0x134] .text:0002D540 BL _IO_wpadn .text:0002D544 B loc_2DA64 .text:0002D548 ; --------------------------------------------------------------------------- .text:0002D548 .text:0002D548 loc_2D548 ; CODE XREF: vfwprintf+43FCj .text:0002D548 SUB R12, R11, #-var_1000 .text:0002D54C LDR R12, [R12,#-0x134] .text:0002D550 SUB LR, R12, #1 .text:0002D554 SUB R12, R11, #-var_1000 .text:0002D558 STR LR, [R12,#-0x134] .text:0002D55C MOV LR, R12 .text:0002D560 LDR LR, [LR,#-0x118] .text:0002D564 CMP LR, #0 .text:0002D568 BNE loc_2D594 .text:0002D56C MOV R0, R12 .text:0002D570 LDR R0, [R0,#-0x134] .text:0002D574 CMP R0, #0 .text:0002D578 BLE loc_2D594 .text:0002D57C MOV R0, R9 .text:0002D580 MOV R1, #0x20 .text:0002D584 MOV R3, R12 .text:0002D588 LDR R2, [R3,#-0x134] .text:0002D58C BL _IO_wpadn .text:0002D590 ADD R10, R10, R0 .text:0002D594 .text:0002D594 loc_2D594 ; CODE XREF: vfwprintf+453Cj .text:0002D594 ; vfwprintf+454Cj .text:0002D594 SUB R4, R11, #-var_1000 .text:0002D598 SUB R12, R11, #-var_1000 .text:0002D59C LDR R4, [R4,#-0x90] .text:0002D5A0 SUB LR, R11, #-var_1000 .text:0002D5A4 LDR R12, [R12,#-0xEC] .text:0002D5A8 MOV R2, R4,LSL#1 .text:0002D5AC ADD R3, R2, R4 .text:0002D5B0 ADD R1, R12, R3,LSL#4 .text:0002D5B4 CMP R1, #0 .text:0002D5B8 STR R2, [LR,#-0x148] .text:0002D5BC BNE loc_2D610 .text:0002D5C0 LDR R0, [R9,#0x58] .text:0002D5C4 ADD R2, R0, #0x10 .text:0002D5C8 LDMIA R2, {R2,R3} .text:0002D5CC CMP R2, R3 .text:0002D5D0 MOV R3, LR .text:0002D5D4 LDR R4, [R3,#-0x78] .text:0002D5D8 ADD R4, R4, #4 .text:0002D5DC STR R4, [R3,#-0x78] .text:0002D5E0 SUB R4, R4, #4 .text:0002D5E4 LDR R1, [R4],#4 .text:0002D5E8 BCC loc_2D5FC .text:0002D5EC .text:0002D5EC loc_2D5EC ; CODE XREF: vfwprintf+4604j .text:0002D5EC MOV R0, R9 .text:0002D5F0 BL __woverflow .text:0002D5F4 CMN R0, #1 .text:0002D5F8 B loc_2D640 .text:0002D5FC ; --------------------------------------------------------------------------- .text:0002D5FC .text:0002D5FC loc_2D5FC ; CODE XREF: vfwprintf+45BCj .text:0002D5FC STR R1, [R2],#4 .text:0002D600 CMN R1, #1 .text:0002D604 STR R2, [R0,#0x10] .text:0002D608 B loc_2D640 .text:0002D608 ; --------------------------------------------------------------------------- .text:0002D60C off_2D60C DCD dword_5743C ; DATA XREF: vfwprintf+4234r .text:0002D610 ; --------------------------------------------------------------------------- .text:0002D610 .text:0002D610 loc_2D610 ; CODE XREF: vfwprintf+4590j .text:0002D610 LDR R12, [R9,#0x58] .text:0002D614 LDR R2, [R1,#0x24] .text:0002D618 SUB R5, R11, #-var_1000 .text:0002D61C LDR R5, [R5,#-0xF4] .text:0002D620 ADD R0, R12, #0x10 .text:0002D624 LDMIA R0, {R0,R3} .text:0002D628 LDR R1, [R5,R2,LSL#3] .text:0002D62C CMP R0, R3 .text:0002D630 BCS loc_2D5EC .text:0002D634 STR R1, [R0],#4 .text:0002D638 CMN R1, #1 .text:0002D63C STR R0, [R12,#0x10] .text:0002D640 .text:0002D640 loc_2D640 ; CODE XREF: vfwprintf+45CCj .text:0002D640 ; vfwprintf+45DCj .text:0002D640 BEQ loc_2AF38 .text:0002D644 ADD R10, R10, #1 .text:0002D648 SUB R12, R11, #-var_1000 .text:0002D64C LDR R12, [R12,#-0x118] .text:0002D650 CMP R12, #0 .text:0002D654 BEQ loc_2DA68 .text:0002D658 SUB LR, R11, #-var_1000 .text:0002D65C LDR LR, [LR,#-0x134] .text:0002D660 CMP LR, #0 .text:0002D664 BLE loc_2DA68 .text:0002D668 MOV R0, R9 .text:0002D66C MOV R1, #0x20 .text:0002D670 SUB R3, R11, #-var_1000 .text:0002D674 LDR R2, [R3,#-0x134] .text:0002D678 BL _IO_wpadn .text:0002D67C B loc_2DA64 .text:0002D680 ; --------------------------------------------------------------------------- .text:0002D680 SUB R4, R11, #-var_1000 .text:0002D684 LDR R5, [R4,#-0x90] .text:0002D688 MOV R4, R5 .text:0002D68C ADD R3, R5, R4,LSL#1 .text:0002D690 SUB R5, R11, #-var_1000 .text:0002D694 LDR R5, [R5,#-0xEC] .text:0002D698 ADD R3, R5, R3,LSL#4 .text:0002D69C CMP R3, #0 .text:0002D6A0 BNE loc_2D6C0 .text:0002D6A4 SUB R12, R11, #-var_1000 .text:0002D6A8 LDR LR, [R12,#-0x78] .text:0002D6AC ADD LR, LR, #4 .text:0002D6B0 STR LR, [R12,#-0x78] .text:0002D6B4 SUB LR, LR, #4 .text:0002D6B8 LDR R7, [LR],#4 .text:0002D6BC B loc_2D6D0 .text:0002D6C0 ; --------------------------------------------------------------------------- .text:0002D6C0 .text:0002D6C0 loc_2D6C0 ; CODE XREF: vfwprintf+4674j .text:0002D6C0 LDR R3, [R3,#0x24] .text:0002D6C4 SUB R0, R11, #-var_1000 .text:0002D6C8 LDR R0, [R0,#-0xF4] .text:0002D6CC LDR R7, [R0,R3,LSL#3] .text:0002D6D0 .text:0002D6D0 loc_2D6D0 ; CODE XREF: vfwprintf+4240j .text:0002D6D0 ; vfwprintf+43ECj ... .text:0002D6D0 MOV R8, #0 .text:0002D6D4 CMP R7, R8 .text:0002D6D8 BNE loc_2D718 .text:0002D6DC SUB R1, R11, #-var_1000 .text:0002D6E0 LDR R1, [R1,#-0x138] .text:0002D6E4 CMP R1, #5 .text:0002D6E8 MOVLE R3, #0 .text:0002D6EC MOVGT R3, #1 .text:0002D6F0 CMN R1, #1 .text:0002D6F4 MOVNE R0, R3 .text:0002D6F8 MOVEQ R0, #1 .text:0002D6FC CMP R0, R8 .text:0002D700 MOVNE R5, #6 .text:0002D704 LDRNE R7, =null_0 .text:0002D708 BNE loc_2D81C .text:0002D70C MOV R5, R0 .text:0002D710 LDR R7, =dword_57454 .text:0002D714 B loc_2D81C .text:0002D718 ; --------------------------------------------------------------------------- .text:0002D718 .text:0002D718 loc_2D718 ; CODE XREF: vfwprintf+46ACj .text:0002D718 SUB R4, R11, #-var_1000 .text:0002D71C LDR R4, [R4,#-0x144] .text:0002D720 SUB R5, R11, #-var_1000 .text:0002D724 LDR R5, [R5,#-0x130] .text:0002D728 SUBS R3, R4, #0x53 .text:0002D72C MOVNE R3, #1 .text:0002D730 CMP R5, #0 .text:0002D734 MOVNE R3, #0 .text:0002D738 CMP R3, #0 .text:0002D73C BEQ loc_2D7EC .text:0002D740 MOV R3, 0xFFFFEFB4 .text:0002D748 SUB R12, R11, #-var_1000 .text:0002D74C LDR R12, [R12,#-0x138] .text:0002D750 SUB LR, R11, #-var_28 .text:0002D754 STR R7, [LR,R3] .text:0002D758 CMN R12, #1 .text:0002D75C BNE loc_2D770 .text:0002D760 MOV R0, R7 .text:0002D764 BL strlen .text:0002D768 MOV R5, R0 .text:0002D76C B loc_2D778 .text:0002D770 ; --------------------------------------------------------------------------- .text:0002D770 .text:0002D770 loc_2D770 ; CODE XREF: vfwprintf+4730j .text:0002D770 SUB R0, R11, #-var_1000 .text:0002D774 LDR R5, [R0,#-0x138] .text:0002D778 .text:0002D778 loc_2D778 ; CODE XREF: vfwprintf+4740j .text:0002D778 CMP R5, #0x2000 .text:0002D77C MOV R4, R5,LSL#2 .text:0002D780 BCC loc_2D794 .text:0002D784 MOV R0, R4 .text:0002D788 BL malloc .text:0002D78C SUBS R7, R0, #0 .text:0002D790 BNE loc_2D7A0 .text:0002D794 .text:0002D794 loc_2D794 ; CODE XREF: vfwprintf+4754j .text:0002D794 RSB SP, R4, SP .text:0002D798 ADD R7, SP, #0x1754+var_1750 .text:0002D79C B loc_2D7A4 .text:0002D7A0 ; --------------------------------------------------------------------------- .text:0002D7A0 .text:0002D7A0 loc_2D7A0 ; CODE XREF: vfwprintf+4764j .text:0002D7A0 MOV R8, #1 .text:0002D7A4 .text:0002D7A4 loc_2D7A4 ; CODE XREF: vfwprintf+4770j .text:0002D7A4 SUB R4, R11, #-var_1040 .text:0002D7A8 SUB R4, R4, #0x28 .text:0002D7AC SUB R4, R4, #8 .text:0002D7B0 MOV R0, R4 .text:0002D7B4 MOV R1, #0 .text:0002D7B8 MOV R2, #8 .text:0002D7BC BL memset .text:0002D7C0 MOV R0, R7 .text:0002D7C4 SUB R1, R11, #-var_1040 .text:0002D7C8 SUB R1, R1, #0x28 .text:0002D7CC SUB R1, R1, #0xC .text:0002D7D0 MOV R2, R5 .text:0002D7D4 MOV R3, R4 .text:0002D7D8 BL mbsrtowcs .text:0002D7DC MOV R5, R0 .text:0002D7E0 CMN R5, #1 .text:0002D7E4 BNE loc_2D81C .text:0002D7E8 B loc_2AF38 .text:0002D7EC ; --------------------------------------------------------------------------- .text:0002D7EC .text:0002D7EC loc_2D7EC ; CODE XREF: vfwprintf+4710j .text:0002D7EC SUB R1, R11, #-var_1000 .text:0002D7F0 LDR R1, [R1,#-0x138] .text:0002D7F4 CMN R1, #1 .text:0002D7F8 BEQ loc_2D810 .text:0002D7FC MOV R0, R7 .text:0002D800 SUB R2, R11, #-var_1000 .text:0002D804 LDR R1, [R2,#-0x138] .text:0002D808 BL wcsnlen .text:0002D80C B loc_2D818 .text:0002D810 ; --------------------------------------------------------------------------- .text:0002D810 .text:0002D810 loc_2D810 ; CODE XREF: vfwprintf+47CCj .text:0002D810 MOV R0, R7 .text:0002D814 BL wcslen .text:0002D818 .text:0002D818 loc_2D818 ; CODE XREF: vfwprintf+47E0j .text:0002D818 MOV R5, R0 .text:0002D81C .text:0002D81C loc_2D81C ; CODE XREF: vfwprintf+46DCj .text:0002D81C ; vfwprintf+46E8j ... .text:0002D81C SUB R3, R11, #-var_1000 .text:0002D820 LDR R3, [R3,#-0x134] .text:0002D824 SUBS R4, R3, R5 .text:0002D828 SUB R3, R11, #-var_1000 .text:0002D82C STR R4, [R3,#-0x134] .text:0002D830 BPL loc_2D87C .text:0002D834 MOV R0, R9 .text:0002D838 LDRB R3, [R9,#0x46] .text:0002D83C MOV R1, R7 .text:0002D840 MOV R3, R3,LSL#24 .text:0002D844 ADD R3, R9, R3,ASR#24 .text:0002D848 LDR R12, [R3,#0x94] .text:0002D84C MOV R2, R5 .text:0002D850 MOV LR, PC .text:0002D854 LDR PC, [R12,#0x1C] .text:0002D858 CMP R0, R5 .text:0002D85C BNE loc_2AF38 .text:0002D860 ADD R10, R10, R5 .text:0002D864 SUB R4, R11, #-var_1000 .text:0002D868 LDR R4, [R4,#-0x90] .text:0002D86C MOV R5, R4,LSL#1 .text:0002D870 SUB R4, R11, #-var_1000 .text:0002D874 STR R5, [R4,#-0x148] .text:0002D878 B loc_2DA68 .text:0002D87C ; --------------------------------------------------------------------------- .text:0002D87C .text:0002D87C loc_2D87C ; CODE XREF: vfwprintf+4804j .text:0002D87C SUB R12, R11, #-var_1000 .text:0002D880 LDR R12, [R12,#-0x118] .text:0002D884 CMP R12, #0 .text:0002D888 BNE loc_2D8B4 .text:0002D88C SUB LR, R11, #-var_1000 .text:0002D890 LDR LR, [LR,#-0x134] .text:0002D894 CMP LR, #0 .text:0002D898 BLE loc_2D8B4 .text:0002D89C MOV R0, R9 .text:0002D8A0 MOV R1, #0x20 .text:0002D8A4 SUB R3, R11, #-var_1000 .text:0002D8A8 LDR R2, [R3,#-0x134] .text:0002D8AC BL _IO_wpadn .text:0002D8B0 ADD R10, R10, R0 .text:0002D8B4 .text:0002D8B4 loc_2D8B4 ; CODE XREF: vfwprintf+485Cj .text:0002D8B4 ; vfwprintf+486Cj .text:0002D8B4 MOV R0, R9 .text:0002D8B8 LDRB R3, [R9,#0x46] .text:0002D8BC MOV R1, R7 .text:0002D8C0 MOV R3, R3,LSL#24 .text:0002D8C4 ADD R3, R9, R3,ASR#24 .text:0002D8C8 LDR R12, [R3,#0x94] .text:0002D8CC MOV R2, R5 .text:0002D8D0 MOV LR, PC .text:0002D8D4 LDR PC, [R12,#0x1C] .text:0002D8D8 CMP R0, R5 .text:0002D8DC BNE loc_2AF38 .text:0002D8E0 ADD R10, R10, R5 .text:0002D8E4 SUB R4, R11, #-var_1000 .text:0002D8E8 LDR R4, [R4,#-0x118] .text:0002D8EC CMP R4, #0 .text:0002D8F0 BEQ loc_2D91C .text:0002D8F4 SUB R5, R11, #-var_1000 .text:0002D8F8 LDR R5, [R5,#-0x134] .text:0002D8FC CMP R5, #0 .text:0002D900 BLE loc_2D91C .text:0002D904 MOV R0, R9 .text:0002D908 MOV R1, #0x20 .text:0002D90C SUB R12, R11, #-var_1000 .text:0002D910 LDR R2, [R12,#-0x134] .text:0002D914 BL _IO_wpadn .text:0002D918 ADD R10, R10, R0 .text:0002D91C .text:0002D91C loc_2D91C ; CODE XREF: vfwprintf+48C4j .text:0002D91C ; vfwprintf+48D4j .text:0002D91C SUB LR, R11, #-var_1000 .text:0002D920 LDR LR, [LR,#-0x90] .text:0002D924 CMP R8, #0 .text:0002D928 MOV R0, LR,LSL#1 .text:0002D92C SUB LR, R11, #-var_1000 .text:0002D930 STR R0, [LR,#-0x148] .text:0002D934 BEQ loc_2DA68 .text:0002D938 MOV R0, R7 .text:0002D93C BL free .text:0002D940 B loc_2DA68 .text:0002D944 ; --------------------------------------------------------------------------- .text:0002D944 .text:0002D944 loc_2D944 ; DATA XREF: vfwprintf:loc_2C0E4o .text:0002D944 ; vfwprintf:off_2C278o .text:0002D944 LDR R3, =__printf_function_table .text:0002D948 LDR R0, [R3] .text:0002D94C CMP R0, #0 .text:0002D950 BEQ loc_2D990 .text:0002D954 SUB R1, R11, #-var_1000 .text:0002D958 LDR R1, [R1,#-0x90] .text:0002D95C SUB R5, R11, #-var_1000 .text:0002D960 LDR R5, [R5,#-0xEC] .text:0002D964 MOV R3, R1,LSL#1 .text:0002D968 ADD R2, R3, R1 .text:0002D96C ADD R2, R5, R2,LSL#4 .text:0002D970 LDR R1, [R2,#8] .text:0002D974 SUB R12, R11, #-var_1000 .text:0002D978 STR R3, [R12,#-0x148] .text:0002D97C LDR R12, [R0,R1,LSL#2] .text:0002D980 B loc_2D9A8 .text:0002D980 ; --------------------------------------------------------------------------- .text:0002D984 off_2D984 DCD null_0 ; DATA XREF: vfwprintf+46D8r .text:0002D988 off_2D988 DCD dword_57454 ; DATA XREF: vfwprintf+46E4r .text:0002D98C off_2D98C DCD __printf_function_table ; DATA XREF: vfwprintf:loc_2D944r .text:0002D990 ; --------------------------------------------------------------------------- .text:0002D990 .text:0002D990 loc_2D990 ; CODE XREF: vfwprintf+4924j .text:0002D990 SUB LR, R11, #-var_1000 .text:0002D994 LDR LR, [LR,#-0x90] .text:0002D998 MOV R12, R0 .text:0002D99C MOV R0, LR,LSL#1 .text:0002D9A0 SUB LR, R11, #-var_1000 .text:0002D9A4 STR R0, [LR,#-0x148] .text:0002D9A8 .text:0002D9A8 loc_2D9A8 ; CODE XREF: vfwprintf+4954j .text:0002D9A8 SUB R1, R11, #-var_1000 .text:0002D9AC LDR R2, [R1,#-0x148] .text:0002D9B0 MOV R0, #0 .text:0002D9B4 LDR R1, [R1,#-0x90] .text:0002D9B8 CMP R12, R0 .text:0002D9BC ADD R3, R2, R1 .text:0002D9C0 SUB R2, R11, #-var_1000 .text:0002D9C4 LDR R2, [R2,#-0xEC] .text:0002D9C8 LDR R1, =printf_unknown_0 .text:0002D9CC ADD R3, R2, R3,LSL#4 .text:0002D9D0 MOVEQ R12, R1 .text:0002D9D4 LDR R2, [R3,#0x2C] .text:0002D9D8 SUB R3, R11, #-var_1000 .text:0002D9DC LDR R4, [R3,#-0x148] .text:0002D9E0 SUB SP, SP, R2,LSL#2 .text:0002D9E4 CMP R0, R2 .text:0002D9E8 ADD LR, SP, #0x1754+var_1750 .text:0002D9EC BCS loc_2DA30 .text:0002D9F0 .text:0002D9F0 loc_2D9F0 ; CODE XREF: vfwprintf+4A00j .text:0002D9F0 SUB R5, R11, #-var_1000 .text:0002D9F4 LDR R5, [R5,#-0x90] .text:0002D9F8 SUB R1, R11, #-var_1000 .text:0002D9FC LDR R1, [R1,#-0xEC] .text:0002DA00 ADD R3, R4, R5 .text:0002DA04 ADD R3, R1, R3,LSL#4 .text:0002DA08 LDR R2, [R3,#0x24] .text:0002DA0C SUB R5, R11, #-var_1000 .text:0002DA10 LDR R5, [R5,#-0xF4] .text:0002DA14 ADD R2, R2, R0 .text:0002DA18 ADD R2, R5, R2,LSL#3 .text:0002DA1C STR R2, [LR,R0,LSL#2] .text:0002DA20 LDR R1, [R3,#0x2C] .text:0002DA24 ADD R0, R0, #1 .text:0002DA28 CMP R0, R1 .text:0002DA2C BCC loc_2D9F0 .text:0002DA30 .text:0002DA30 loc_2DA30 ; CODE XREF: vfwprintf+49C0j .text:0002DA30 SUB R2, R11, #-var_1000 .text:0002DA34 LDR R3, [R2,#-0x148] .text:0002DA38 LDR R2, [R2,#-0x90] .text:0002DA3C MOV R0, R9 .text:0002DA40 ADD R1, R3, R2 .text:0002DA44 SUB R3, R11, #-var_1000 .text:0002DA48 LDR R3, [R3,#-0xEC] .text:0002DA4C MOV R2, LR .text:0002DA50 ADD R1, R3, R1,LSL#4 .text:0002DA54 MOV LR, PC .text:0002DA58 MOV PC, R12 .text:0002DA5C CMP R0, #0 .text:0002DA60 .text:0002DA60 loc_2DA60 ; CODE XREF: vfwprintf+3F74j .text:0002DA60 ; vfwprintf+416Cj .text:0002DA60 BLT loc_2AF38 .text:0002DA64 .text:0002DA64 loc_2DA64 ; CODE XREF: vfwprintf+3AE8j .text:0002DA64 ; vfwprintf+3D6Cj ... .text:0002DA64 ADD R10, R10, R0 .text:0002DA68 .text:0002DA68 loc_2DA68 ; CODE XREF: vfwprintf+3110j .text:0002DA68 ; vfwprintf+3D54j ... .text:0002DA68 SUB R5, R11, #-var_1000 .text:0002DA6C LDR R12, [R5,#-0x148] .text:0002DA70 LDR R5, [R5,#-0x90] .text:0002DA74 ADD R4, R12, R5 .text:0002DA78 SUB R12, R11, #-var_1000 .text:0002DA7C LDR R12, [R12,#-0xEC] .text:0002DA80 MOV R0, R9 .text:0002DA84 LDRB R3, [R9,#0x46] .text:0002DA88 ADD R4, R12, R4,LSL#4 .text:0002DA8C LDR R1, [R4,#0x14] .text:0002DA90 MOV R3, R3,LSL#24 .text:0002DA94 ADD LR, R4, #0x18 .text:0002DA98 LDMDA LR, {R2,LR} .text:0002DA9C SUB R2, LR, R2 .text:0002DAA0 ADD R3, R9, R3,ASR#24 .text:0002DAA4 LDR R12, [R3,#0x94] .text:0002DAA8 MOV R2, R2,ASR#2 .text:0002DAAC MOV LR, PC .text:0002DAB0 LDR PC, [R12,#0x1C] .text:0002DAB4 ADD R1, R4, #0x18 .text:0002DAB8 LDMDA R1, {R1,R3} .text:0002DABC SUB R3, R3, R1 .text:0002DAC0 CMP R0, R3,ASR#2 .text:0002DAC4 BNE loc_2AF38 .text:0002DAC8 ADD R10, R10, R0 .text:0002DACC ADD R3, R5, #1 .text:0002DAD0 SUB R2, R11, #-var_1000 .text:0002DAD4 STR R3, [R2,#-0x90] .text:0002DAD8 MOV R4, R2 .text:0002DADC LDR R4, [R4,#-0xE4] .text:0002DAE0 CMP R3, R4 .text:0002DAE4 BCC loc_2BEF4 .text:0002DAE8 .text:0002DAE8 loc_2DAE8 ; CODE XREF: vfwprintf+194j .text:0002DAE8 ; vfwprintf+1F10j ... .text:0002DAE8 LDR R3, [R9] .text:0002DAEC TST R3, #0x8000 .text:0002DAF0 BNE loc_2DAFC .text:0002DAF4 MOV R0, R9 .text:0002DAF8 BL funlockfile .text:0002DAFC .text:0002DAFC loc_2DAFC ; CODE XREF: vfwprintf+4AC4j .text:0002DAFC SUB R5, R11, #-var_1000 .text:0002DB00 LDR R5, [R5,#-0x98] .text:0002DB04 CMP R5, #0 .text:0002DB08 BEQ loc_2DB1C .text:0002DB0C SUB R0, R11, #-var_FD0 .text:0002DB10 SUB R0, R0, #8 .text:0002DB14 MOV R1, #0 .text:0002DB18 BL 0 .text:0002DB1C .text:0002DB1C loc_2DB1C ; CODE XREF: vfwprintf+4ADCj .text:0002DB1C MOV R0, R10 .text:0002DB20 .text:0002DB20 loc_2DB20 ; CODE XREF: vfwprintf+B4j .text:0002DB20 ; vfwprintf+2100j .text:0002DB20 B locret_2DB28 .text:0002DB20 ; --------------------------------------------------------------------------- .text:0002DB24 off_2DB24 DCD printf_unknown_0 ; DATA XREF: vfwprintf+499Cr .text:0002DB28 ; --------------------------------------------------------------------------- .text:0002DB28 .text:0002DB28 locret_2DB28 ; CODE XREF: vfwprintf:loc_2DB20j .text:0002DB28 LDMDB R11, {R4-R11,SP,PC} .text:0002DB28 ; End of function vfwprintf .text:0002DB28 .text:0002DB2C .text:0002DB2C ; =============== S U B R O U T I N E ======================================= .text:0002DB2C .text:0002DB2C ; Attributes: bp-based frame .text:0002DB2C .text:0002DB2C printf_unknown_0 ; DATA XREF: vfwprintf+499Co .text:0002DB2C ; vfwprintf:off_2DB24o .text:0002DB2C MOV R12, SP .text:0002DB30 STMFD SP!, {R4-R12,LR,PC} .text:0002DB34 MOV R8, R1 .text:0002DB38 LDR R3, [R8,#8] .text:0002DB3C SUB R11, R12, #4 .text:0002DB40 LDR R2, [R8,#4] .text:0002DB44 MOV R5, R0 .text:0002DB48 CMP R3, R2 .text:0002DB4C MOVLT R3, R2 .text:0002DB50 ADD R3, R3, #0x20 .text:0002DB54 MOV R3, R3,LSL#5 .text:0002DB58 SUB SP, SP, R3,LSR#3 .text:0002DB5C ADD R9, SP, R3,LSR#3 .text:0002DB60 LDR R1, [R5,#0x58] .text:0002DB64 ADD R2, R1, #0x10 .text:0002DB68 LDMIA R2, {R2,R3} .text:0002DB6C CMP R2, R3 .text:0002DB70 BCC loc_2DB88 .text:0002DB74 MOV R1, #0x25 .text:0002DB78 BL __woverflow .text:0002DB7C CMN R0, #1 .text:0002DB80 BEQ loc_2DE48 .text:0002DB84 B loc_2DB94 .text:0002DB88 ; --------------------------------------------------------------------------- .text:0002DB88 .text:0002DB88 loc_2DB88 ; CODE XREF: printf_unknown_0+44j .text:0002DB88 MOV R3, #0x25 .text:0002DB8C STR R3, [R2],#4 .text:0002DB90 STR R2, [R1,#0x10] .text:0002DB94 .text:0002DB94 loc_2DB94 ; CODE XREF: printf_unknown_0+58j .text:0002DB94 MOV R6, #1 .text:0002DB98 LDRB R3, [R8,#0xC] .text:0002DB9C TST R3, #8 .text:0002DBA0 BEQ loc_2DBE4 .text:0002DBA4 LDR R1, [R5,#0x58] .text:0002DBA8 ADD R2, R1, #0x10 .text:0002DBAC LDMIA R2, {R2,R3} .text:0002DBB0 CMP R2, R3 .text:0002DBB4 BCC loc_2DBD0 .text:0002DBB8 MOV R0, R5 .text:0002DBBC MOV R1, #0x23 .text:0002DBC0 BL __woverflow .text:0002DBC4 CMN R0, #1 .text:0002DBC8 BEQ loc_2DF1C .text:0002DBCC B loc_2DBDC .text:0002DBD0 ; --------------------------------------------------------------------------- .text:0002DBD0 .text:0002DBD0 loc_2DBD0 ; CODE XREF: printf_unknown_0+88j .text:0002DBD0 MOV R3, #0x23 .text:0002DBD4 STR R3, [R2],#4 .text:0002DBD8 STR R2, [R1,#0x10] .text:0002DBDC .text:0002DBDC loc_2DBDC ; CODE XREF: printf_unknown_0+A0j .text:0002DBDC MOV R6, #2 .text:0002DBE0 LDRB R3, [R8,#0xC] .text:0002DBE4 .text:0002DBE4 loc_2DBE4 ; CODE XREF: printf_unknown_0+74j .text:0002DBE4 MOVS R2, R3,LSR#7 .text:0002DBE8 BEQ loc_2DC2C .text:0002DBEC LDR R1, [R5,#0x58] .text:0002DBF0 ADD R2, R1, #0x10 .text:0002DBF4 LDMIA R2, {R2,R3} .text:0002DBF8 CMP R2, R3 .text:0002DBFC BCC loc_2DC18 .text:0002DC00 MOV R0, R5 .text:0002DC04 MOV R1, #0x27 .text:0002DC08 BL __woverflow .text:0002DC0C CMN R0, #1 .text:0002DC10 BEQ loc_2DF1C .text:0002DC14 B loc_2DC24 .text:0002DC18 ; --------------------------------------------------------------------------- .text:0002DC18 .text:0002DC18 loc_2DC18 ; CODE XREF: printf_unknown_0+D0j .text:0002DC18 MOV R3, #0x27 .text:0002DC1C STR R3, [R2],#4 .text:0002DC20 STR R2, [R1,#0x10] .text:0002DC24 .text:0002DC24 loc_2DC24 ; CODE XREF: printf_unknown_0+E8j .text:0002DC24 ADD R6, R6, #1 .text:0002DC28 LDRB R3, [R8,#0xC] .text:0002DC2C .text:0002DC2C loc_2DC2C ; CODE XREF: printf_unknown_0+BCj .text:0002DC2C AND R2, R3, #0xFF .text:0002DC30 TST R2, #0x40 .text:0002DC34 BEQ loc_2DC6C .text:0002DC38 LDR R1, [R5,#0x58] .text:0002DC3C ADD R2, R1, #0x10 .text:0002DC40 LDMIA R2, {R2,R3} .text:0002DC44 CMP R2, R3 .text:0002DC48 BCC loc_2DC64 .text:0002DC4C MOV R0, R5 .text:0002DC50 MOV R1, #0x2B .text:0002DC54 .text:0002DC54 loc_2DC54 ; CODE XREF: printf_unknown_0+160j .text:0002DC54 BL __woverflow .text:0002DC58 CMN R0, #1 .text:0002DC5C BEQ loc_2DF1C .text:0002DC60 B loc_2DC9C .text:0002DC64 ; --------------------------------------------------------------------------- .text:0002DC64 .text:0002DC64 loc_2DC64 ; CODE XREF: printf_unknown_0+11Cj .text:0002DC64 MOV R3, #0x2B .text:0002DC68 B loc_2DC94 .text:0002DC6C ; --------------------------------------------------------------------------- .text:0002DC6C .text:0002DC6C loc_2DC6C ; CODE XREF: printf_unknown_0+108j .text:0002DC6C TST R2, #0x10 .text:0002DC70 BEQ loc_2DCA4 .text:0002DC74 LDR R1, [R5,#0x58] .text:0002DC78 ADD R2, R1, #0x10 .text:0002DC7C LDMIA R2, {R2,R3} .text:0002DC80 CMP R2, R3 .text:0002DC84 MOVCS R0, R5 .text:0002DC88 MOVCS R1, #0x20 .text:0002DC8C BCS loc_2DC54 .text:0002DC90 MOV R3, #0x20 .text:0002DC94 .text:0002DC94 loc_2DC94 ; CODE XREF: printf_unknown_0+13Cj .text:0002DC94 STR R3, [R2],#4 .text:0002DC98 STR R2, [R1,#0x10] .text:0002DC9C .text:0002DC9C loc_2DC9C ; CODE XREF: printf_unknown_0+134j .text:0002DC9C ADD R6, R6, #1 .text:0002DCA0 LDRB R3, [R8,#0xC] .text:0002DCA4 .text:0002DCA4 loc_2DCA4 ; CODE XREF: printf_unknown_0+144j .text:0002DCA4 TST R3, #0x20 .text:0002DCA8 BEQ loc_2DCE8 .text:0002DCAC LDR R1, [R5,#0x58] .text:0002DCB0 ADD R2, R1, #0x10 .text:0002DCB4 LDMIA R2, {R2,R3} .text:0002DCB8 CMP R2, R3 .text:0002DCBC BCC loc_2DCD8 .text:0002DCC0 MOV R0, R5 .text:0002DCC4 MOV R1, #0x2D .text:0002DCC8 BL __woverflow .text:0002DCCC CMN R0, #1 .text:0002DCD0 BEQ loc_2DF1C .text:0002DCD4 B loc_2DCE4 .text:0002DCD8 ; --------------------------------------------------------------------------- .text:0002DCD8 .text:0002DCD8 loc_2DCD8 ; CODE XREF: printf_unknown_0+190j .text:0002DCD8 MOV R3, #0x2D .text:0002DCDC STR R3, [R2],#4 .text:0002DCE0 STR R2, [R1,#0x10] .text:0002DCE4 .text:0002DCE4 loc_2DCE4 ; CODE XREF: printf_unknown_0+1A8j .text:0002DCE4 ADD R6, R6, #1 .text:0002DCE8 .text:0002DCE8 loc_2DCE8 ; CODE XREF: printf_unknown_0+17Cj .text:0002DCE8 LDR R1, [R8,#0x10] .text:0002DCEC CMP R1, #0x30 .text:0002DCF0 BNE loc_2DD28 .text:0002DCF4 LDR R0, [R5,#0x58] .text:0002DCF8 ADD R2, R0, #0x10 .text:0002DCFC LDMIA R2, {R2,R3} .text:0002DD00 CMP R2, R3 .text:0002DD04 BCC loc_2DD1C .text:0002DD08 MOV R0, R5 .text:0002DD0C BL __woverflow .text:0002DD10 CMN R0, #1 .text:0002DD14 BEQ loc_2DF1C .text:0002DD18 B loc_2DD24 .text:0002DD1C ; --------------------------------------------------------------------------- .text:0002DD1C .text:0002DD1C loc_2DD1C ; CODE XREF: printf_unknown_0+1D8j .text:0002DD1C STR R1, [R2],#4 .text:0002DD20 STR R2, [R0,#0x10] .text:0002DD24 .text:0002DD24 loc_2DD24 ; CODE XREF: printf_unknown_0+1ECj .text:0002DD24 ADD R6, R6, #1 .text:0002DD28 .text:0002DD28 loc_2DD28 ; CODE XREF: printf_unknown_0+1C4j .text:0002DD28 LDRB R3, [R8,#0xD] .text:0002DD2C TST R3, #8 .text:0002DD30 BEQ loc_2DD70 .text:0002DD34 LDR R1, [R5,#0x58] .text:0002DD38 ADD R2, R1, #0x10 .text:0002DD3C LDMIA R2, {R2,R3} .text:0002DD40 CMP R2, R3 .text:0002DD44 BCC loc_2DD60 .text:0002DD48 MOV R0, R5 .text:0002DD4C MOV R1, #0x49 .text:0002DD50 BL __woverflow .text:0002DD54 CMN R0, #1 .text:0002DD58 BEQ loc_2DF1C .text:0002DD5C B loc_2DD6C .text:0002DD60 ; --------------------------------------------------------------------------- .text:0002DD60 .text:0002DD60 loc_2DD60 ; CODE XREF: printf_unknown_0+218j .text:0002DD60 MOV R3, #0x49 .text:0002DD64 STR R3, [R2],#4 .text:0002DD68 STR R2, [R1,#0x10] .text:0002DD6C .text:0002DD6C loc_2DD6C ; CODE XREF: printf_unknown_0+230j .text:0002DD6C ADD R6, R6, #1 .text:0002DD70 .text:0002DD70 loc_2DD70 ; CODE XREF: printf_unknown_0+204j .text:0002DD70 LDR R0, [R8,#4] .text:0002DD74 CMP R0, #0 .text:0002DD78 BEQ loc_2DE00 .text:0002DD7C MOV R4, R0 .text:0002DD80 MOV R7, R9 .text:0002DD84 LDR R10, =_itowa_lower_digits .text:0002DD88 .text:0002DD88 loc_2DD88 ; CODE XREF: printf_unknown_0+280j .text:0002DD88 MOV R0, R4 .text:0002DD8C MOV R1, #0xA .text:0002DD90 BL __umodsi3 .text:0002DD94 LDR R3, [R10,R0,LSL#2] .text:0002DD98 STR R3, [R7,#-4]! .text:0002DD9C MOV R0, R4 .text:0002DDA0 MOV R1, #0xA .text:0002DDA4 BL __udivsi3 .text:0002DDA8 SUBS R4, R0, #0 .text:0002DDAC BNE loc_2DD88 .text:0002DDB0 MOV R4, R7 .text:0002DDB4 CMP R4, R9 .text:0002DDB8 BCS loc_2DE00 .text:0002DDBC .text:0002DDBC loc_2DDBC ; CODE XREF: printf_unknown_0+2D0j .text:0002DDBC LDR R0, [R5,#0x58] .text:0002DDC0 ADD R2, R0, #0x10 .text:0002DDC4 LDMIA R2, {R2,R3} .text:0002DDC8 LDR R1, [R4],#4 .text:0002DDCC CMP R2, R3 .text:0002DDD0 BCC loc_2DDE4 .text:0002DDD4 MOV R0, R5 .text:0002DDD8 BL __woverflow .text:0002DDDC CMN R0, #1 .text:0002DDE0 B loc_2DDF0 .text:0002DDE4 ; --------------------------------------------------------------------------- .text:0002DDE4 .text:0002DDE4 loc_2DDE4 ; CODE XREF: printf_unknown_0+2A4j .text:0002DDE4 STR R1, [R2],#4 .text:0002DDE8 CMN R1, #1 .text:0002DDEC STR R2, [R0,#0x10] .text:0002DDF0 .text:0002DDF0 loc_2DDF0 ; CODE XREF: printf_unknown_0+2B4j .text:0002DDF0 BEQ loc_2DF1C .text:0002DDF4 ADD R6, R6, #1 .text:0002DDF8 CMP R4, R9 .text:0002DDFC BCC loc_2DDBC .text:0002DE00 .text:0002DE00 loc_2DE00 ; CODE XREF: printf_unknown_0+24Cj .text:0002DE00 ; printf_unknown_0+28Cj .text:0002DE00 LDR R3, [R8] .text:0002DE04 CMN R3, #1 .text:0002DE08 BEQ loc_2DED8 .text:0002DE0C LDR R1, [R5,#0x58] .text:0002DE10 ADD R2, R1, #0x10 .text:0002DE14 LDMIA R2, {R2,R3} .text:0002DE18 CMP R2, R3 .text:0002DE1C BCC loc_2DE38 .text:0002DE20 MOV R0, R5 .text:0002DE24 MOV R1, #0x2E .text:0002DE28 BL __woverflow .text:0002DE2C CMN R0, #1 .text:0002DE30 BEQ loc_2DE48 .text:0002DE34 B loc_2DE50 .text:0002DE38 ; --------------------------------------------------------------------------- .text:0002DE38 .text:0002DE38 loc_2DE38 ; CODE XREF: printf_unknown_0+2F0j .text:0002DE38 MOV R3, #0x2E .text:0002DE3C STR R3, [R2],#4 .text:0002DE40 STR R2, [R1,#0x10] .text:0002DE44 B loc_2DE50 .text:0002DE48 ; --------------------------------------------------------------------------- .text:0002DE48 .text:0002DE48 loc_2DE48 ; CODE XREF: printf_unknown_0+54j .text:0002DE48 ; printf_unknown_0+304j .text:0002DE48 MOV R6, R0 .text:0002DE4C B loc_2DF28 .text:0002DE50 ; --------------------------------------------------------------------------- .text:0002DE50 .text:0002DE50 loc_2DE50 ; CODE XREF: printf_unknown_0+308j .text:0002DE50 ; printf_unknown_0+318j .text:0002DE50 ADD R6, R6, #1 .text:0002DE54 LDR R4, [R8] .text:0002DE58 LDR R10, =_itowa_lower_digits .text:0002DE5C MOV R7, R9 .text:0002DE60 .text:0002DE60 loc_2DE60 ; CODE XREF: printf_unknown_0+358j .text:0002DE60 MOV R0, R4 .text:0002DE64 MOV R1, #0xA .text:0002DE68 BL __umodsi3 .text:0002DE6C LDR R3, [R10,R0,LSL#2] .text:0002DE70 STR R3, [R7,#-4]! .text:0002DE74 MOV R0, R4 .text:0002DE78 MOV R1, #0xA .text:0002DE7C BL __udivsi3 .text:0002DE80 SUBS R4, R0, #0 .text:0002DE84 BNE loc_2DE60 .text:0002DE88 MOV R4, R7 .text:0002DE8C CMP R4, R9 .text:0002DE90 BCS loc_2DED8 .text:0002DE94 .text:0002DE94 loc_2DE94 ; CODE XREF: printf_unknown_0+3A8j .text:0002DE94 LDR R0, [R5,#0x58] .text:0002DE98 ADD R2, R0, #0x10 .text:0002DE9C LDMIA R2, {R2,R3} .text:0002DEA0 LDR R1, [R4],#4 .text:0002DEA4 CMP R2, R3 .text:0002DEA8 BCC loc_2DEBC .text:0002DEAC MOV R0, R5 .text:0002DEB0 BL __woverflow .text:0002DEB4 CMN R0, #1 .text:0002DEB8 B loc_2DEC8 .text:0002DEBC ; --------------------------------------------------------------------------- .text:0002DEBC .text:0002DEBC loc_2DEBC ; CODE XREF: printf_unknown_0+37Cj .text:0002DEBC STR R1, [R2],#4 .text:0002DEC0 CMN R1, #1 .text:0002DEC4 STR R2, [R0,#0x10] .text:0002DEC8 .text:0002DEC8 loc_2DEC8 ; CODE XREF: printf_unknown_0+38Cj .text:0002DEC8 BEQ loc_2DF1C .text:0002DECC ADD R6, R6, #1 .text:0002DED0 CMP R4, R9 .text:0002DED4 BCC loc_2DE94 .text:0002DED8 .text:0002DED8 loc_2DED8 ; CODE XREF: printf_unknown_0+2DCj .text:0002DED8 ; printf_unknown_0+364j .text:0002DED8 LDR R1, [R8,#8] .text:0002DEDC CMP R1, #0 .text:0002DEE0 BEQ loc_2DF28 .text:0002DEE4 LDR R0, [R5,#0x58] .text:0002DEE8 ADD R2, R0, #0x10 .text:0002DEEC LDMIA R2, {R2,R3} .text:0002DEF0 CMP R2, R3 .text:0002DEF4 BCC loc_2DF0C .text:0002DEF8 MOV R0, R5 .text:0002DEFC BL __woverflow .text:0002DF00 CMN R0, #1 .text:0002DF04 BEQ loc_2DF1C .text:0002DF08 B loc_2DF24 .text:0002DF0C ; --------------------------------------------------------------------------- .text:0002DF0C .text:0002DF0C loc_2DF0C ; CODE XREF: printf_unknown_0+3C8j .text:0002DF0C STR R1, [R2],#4 .text:0002DF10 CMN R1, #1 .text:0002DF14 STR R2, [R0,#0x10] .text:0002DF18 BNE loc_2DF24 .text:0002DF1C .text:0002DF1C loc_2DF1C ; CODE XREF: printf_unknown_0+9Cj .text:0002DF1C ; printf_unknown_0+E4j ... .text:0002DF1C MOV R6, 0xFFFFFFFF .text:0002DF20 B loc_2DF28 .text:0002DF24 ; --------------------------------------------------------------------------- .text:0002DF24 .text:0002DF24 loc_2DF24 ; CODE XREF: printf_unknown_0+3DCj .text:0002DF24 ; printf_unknown_0+3ECj .text:0002DF24 ADD R6, R6, #1 .text:0002DF28 .text:0002DF28 loc_2DF28 ; CODE XREF: printf_unknown_0+320j .text:0002DF28 ; printf_unknown_0+3B4j ... .text:0002DF28 MOV R0, R6 .text:0002DF2C LDMDB R11, {R4-R11,SP,PC} .text:0002DF2C ; End of function printf_unknown_0 .text:0002DF2C .text:0002DF2C ; --------------------------------------------------------------------------- .text:0002DF30 off_2DF30 DCD _itowa_lower_digits ; DATA XREF: printf_unknown_0+258r .text:0002DF30 ; printf_unknown_0+32Cr .text:0002DF34 .text:0002DF34 ; =============== S U B R O U T I N E ======================================= .text:0002DF34 .text:0002DF34 ; Attributes: bp-based frame .text:0002DF34 .text:0002DF34 group_number_1 ; CODE XREF: vfwprintf+F3Cp .text:0002DF34 ; vfwprintf+11D8p ... .text:0002DF34 MOV R12, SP .text:0002DF38 STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:0002DF3C SUB R11, R12, #4 .text:0002DF40 MOV R5, R2 .text:0002DF44 MOV R12, R0 .text:0002DF48 MOV R7, R1 .text:0002DF4C LDRB R2, [R5] .text:0002DF50 MOV R8, R3 .text:0002DF54 CMP R2, #0 .text:0002DF58 CMPNE R2, #0xFF .text:0002DF5C LDMEQDB R11, {R4-R8,R11,SP,PC} .text:0002DF60 RSB R2, R12, R7 .text:0002DF64 BIC R2, R2, #3 .text:0002DF68 RSB SP, R2, SP .text:0002DF6C MOV R0, SP .text:0002DF70 MOV R6, SP .text:0002DF74 MOV R1, R12 .text:0002DF78 LDRB R4, [R5] .text:0002DF7C BL mempcpy .text:0002DF80 MOV R12, R7 .text:0002DF84 CMP R0, SP .text:0002DF88 BLS loc_2DFE4 .text:0002DF8C .text:0002DF8C loc_2DF8C ; CODE XREF: group_number_1+ACj .text:0002DF8C LDR R3, [R0,#-4]! .text:0002DF90 SUBS R4, R4, #1 .text:0002DF94 STR R3, [R12,#-4]! .text:0002DF98 BNE loc_2DFDC .text:0002DF9C CMP R0, R6 .text:0002DFA0 BLS loc_2DFDC .text:0002DFA4 STR R8, [R12,#-4]! .text:0002DFA8 LDRB R4, [R5] .text:0002DFAC LDRB R3, [R5,#1]! .text:0002DFB0 AND R3, R3, #0xFF .text:0002DFB4 CMP R3, #0 .text:0002DFB8 SUBEQ R5, R5, #1 .text:0002DFBC BEQ loc_2DFDC .text:0002DFC0 CMP R3, #0xFF .text:0002DFC4 BNE loc_2DFDC .text:0002DFC8 .text:0002DFC8 loc_2DFC8 ; CODE XREF: group_number_1+A0j .text:0002DFC8 LDR R3, [R0,#-4]! .text:0002DFCC CMP R0, R6 .text:0002DFD0 STR R3, [R12,#-4]! .text:0002DFD4 BHI loc_2DFC8 .text:0002DFD8 B loc_2DFE4 .text:0002DFDC ; --------------------------------------------------------------------------- .text:0002DFDC .text:0002DFDC loc_2DFDC ; CODE XREF: group_number_1+64j .text:0002DFDC ; group_number_1+6Cj ... .text:0002DFDC CMP R0, R6 .text:0002DFE0 BHI loc_2DF8C .text:0002DFE4 .text:0002DFE4 loc_2DFE4 ; CODE XREF: group_number_1+54j .text:0002DFE4 ; group_number_1+A4j .text:0002DFE4 MOV R0, R12 .text:0002DFE8 LDMDB R11, {R4-R8,R11,SP,PC} .text:0002DFE8 ; End of function group_number_1 .text:0002DFE8 .text:0002DFEC .text:0002DFEC ; =============== S U B R O U T I N E ======================================= .text:0002DFEC .text:0002DFEC ; Attributes: bp-based frame .text:0002DFEC .text:0002DFEC _IO_helper_overflow_0 .text:0002DFEC MOV R12, SP .text:0002DFF0 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0002DFF4 SUB R11, R12, #4 .text:0002DFF8 MOV R4, R0 .text:0002DFFC LDR R12, [R4,#0x154] .text:0002E000 LDR R3, [R4,#0x58] .text:0002E004 ADD R0, R3, #0x10 .text:0002E008 LDMDA R0, {R0,R2} .text:0002E00C SUB R2, R2, R0 .text:0002E010 MOV R5, R1 .text:0002E014 LDR R1, [R3,#0xC] .text:0002E018 MOVS R2, R2,ASR#2 .text:0002E01C BEQ loc_2E04C .text:0002E020 LDRB R3, [R12,#0x46] .text:0002E024 MOV R0, R12 .text:0002E028 MOV R3, R3,LSL#24 .text:0002E02C ADD R3, R12, R3,ASR#24 .text:0002E030 LDR R12, [R3,#0x94] .text:0002E034 MOV LR, PC .text:0002E038 LDR PC, [R12,#0x1C] .text:0002E03C LDR R2, [R4,#0x58] .text:0002E040 LDR R3, [R2,#0x10] .text:0002E044 SUB R3, R3, R0,LSL#2 .text:0002E048 STR R3, [R2,#0x10] .text:0002E04C .text:0002E04C loc_2E04C ; CODE XREF: _IO_helper_overflow_0+30j .text:0002E04C LDR R12, [R4,#0x58] .text:0002E050 ADD R2, R12, #0x10 .text:0002E054 LDMIA R2, {R2,R3} .text:0002E058 CMP R2, R3 .text:0002E05C BCC loc_2E070 .text:0002E060 MOV R0, R4 .text:0002E064 MOV R1, R5 .text:0002E068 BL __woverflow .text:0002E06C LDMDB R11, {R4,R5,R11,SP,PC} .text:0002E070 ; --------------------------------------------------------------------------- .text:0002E070 .text:0002E070 loc_2E070 ; CODE XREF: _IO_helper_overflow_0+70j .text:0002E070 STR R5, [R2],#4 .text:0002E074 MOV R0, R5 .text:0002E078 STR R2, [R12,#0x10] .text:0002E07C LDMDB R11, {R4,R5,R11,SP,PC} .text:0002E07C ; End of function _IO_helper_overflow_0 .text:0002E07C .text:0002E080 .text:0002E080 ; =============== S U B R O U T I N E ======================================= .text:0002E080 .text:0002E080 ; Attributes: bp-based frame .text:0002E080 .text:0002E080 buffered_vfprintf_0 ; CODE XREF: vfwprintf+B0p .text:0002E080 .text:0002E080 var_8100 = -0x8100 .text:0002E080 var_8000 = -0x8000 .text:0002E080 var_24 = -0x24 .text:0002E080 .text:0002E080 MOV R12, SP .text:0002E084 STMFD SP!, {R4-R8,R10-R12,LR,PC} .text:0002E088 SUB R11, R12, #4 .text:0002E08C MOV R6, 0xFFFF7E90 .text:0002E094 MOV R5, R0 .text:0002E098 MOV R10, R1 .text:0002E09C MOV R1, #1 .text:0002E0A0 MOV R7, R2 .text:0002E0A4 ADD R2, R11, R6 .text:0002E0A8 SUB R4, R2, #0x24 .text:0002E0AC SUB SP, SP, #0x8100 .text:0002E0B0 SUB SP, SP, #0x80 .text:0002E0B4 BL _IO_fwide .text:0002E0B8 CMP R0, #1 .text:0002E0BC MOVNE R0, 0xFFFFFFFF .text:0002E0C0 BNE loc_2E208 .text:0002E0C4 STR R5, [R4,#0x154] .text:0002E0C8 ADD R3, R4, #0x98 .text:0002E0CC STR R3, [R4,#0x58] .text:0002E0D0 SUB R1, R11, #-var_8000 .text:0002E0D4 SUB R1, R1, #0x24 .text:0002E0D8 STR R1, [R3,#0x10] .text:0002E0DC STR R1, [R3,#0xC] .text:0002E0E0 LDR R2, [R4,#0x58] .text:0002E0E4 SUB R3, R11, #-var_24 .text:0002E0E8 STR R3, [R2,#0x14] .text:0002E0EC SUB R1, R11, #-var_24 .text:0002E0F0 MOV R3, #0xF0000004 .text:0002E0F4 STR R0, [R4,#0x5C] .text:0002E0F8 ADD R3, R3, #0xBA00000 .text:0002E0FC ADD R3, R3, #0xD0000 .text:0002E100 STR R3, [R1,R6] .text:0002E104 MOV R8, #0 .text:0002E108 STRB R8, [R4,#0x46] .text:0002E10C LDR R3, =0 .text:0002E110 ADD R0, R4, #0x158 .text:0002E114 STR R0, [R4,#0x48] .text:0002E118 CMP R3, R8 .text:0002E11C BEQ loc_2E12C .text:0002E120 MOV R1, R8 .text:0002E124 MOV LR, PC .text:0002E128 MOV PC, R3 .text:0002E12C .text:0002E12C loc_2E12C ; CODE XREF: buffered_vfprintf_0+9Cj .text:0002E12C LDR R3, =_IO_helper_jumps_0 .text:0002E130 STR R3, [R4,#0x94] .text:0002E134 MOV R0, R4 .text:0002E138 MOV R1, R10 .text:0002E13C MOV R2, R7 .text:0002E140 BL vfwprintf .text:0002E144 LDR R3, =0 .text:0002E148 MOV R6, R0 .text:0002E14C SUBS R7, R3, #0 .text:0002E150 MOVNE R7, #1 .text:0002E154 CMP R7, #0 .text:0002E158 BEQ loc_2E178 .text:0002E15C SUB R0, R11, #-var_8100 .text:0002E160 SUB R0, R0, #0x24 .text:0002E164 SUB R0, R0, #0x80 .text:0002E168 LDR R1, =funlockfile .text:0002E16C MOV R2, R5 .text:0002E170 MOV LR, PC .text:0002E174 MOV PC, R3 .text:0002E178 .text:0002E178 loc_2E178 ; CODE XREF: buffered_vfprintf_0+D8j .text:0002E178 LDR R3, [R5] .text:0002E17C TST R3, #0x8000 .text:0002E180 BNE loc_2E18C .text:0002E184 MOV R0, R5 .text:0002E188 BL flockfile .text:0002E18C .text:0002E18C loc_2E18C ; CODE XREF: buffered_vfprintf_0+100j .text:0002E18C LDR R3, [R4,#0x58] .text:0002E190 ADD R1, R3, #0x10 .text:0002E194 LDMDA R1, {R1,R2} .text:0002E198 SUB R2, R2, R1 .text:0002E19C LDR R1, [R3,#0xC] .text:0002E1A0 MOV R4, R2,ASR#2 .text:0002E1A4 CMP R4, #0 .text:0002E1A8 BLE loc_2E1D4 .text:0002E1AC LDRB R3, [R5,#0x46] .text:0002E1B0 MOV R0, R5 .text:0002E1B4 MOV R3, R3,LSL#24 .text:0002E1B8 ADD R3, R5, R3,ASR#24 .text:0002E1BC LDR R12, [R3,#0x94] .text:0002E1C0 MOV R2, R4 .text:0002E1C4 MOV LR, PC .text:0002E1C8 LDR PC, [R12,#0x1C] .text:0002E1CC CMP R0, R4 .text:0002E1D0 MOVNE R6, 0xFFFFFFFF .text:0002E1D4 .text:0002E1D4 loc_2E1D4 ; CODE XREF: buffered_vfprintf_0+128j .text:0002E1D4 LDR R3, [R5] .text:0002E1D8 TST R3, #0x8000 .text:0002E1DC BNE loc_2E1E8 .text:0002E1E0 MOV R0, R5 .text:0002E1E4 BL funlockfile .text:0002E1E8 .text:0002E1E8 loc_2E1E8 ; CODE XREF: buffered_vfprintf_0+15Cj .text:0002E1E8 CMP R7, #0 .text:0002E1EC BEQ loc_2E204 .text:0002E1F0 SUB R0, R11, #-var_8100 .text:0002E1F4 SUB R0, R0, #0x24 .text:0002E1F8 SUB R0, R0, #0x80 .text:0002E1FC MOV R1, R8 .text:0002E200 BL 0 .text:0002E204 .text:0002E204 loc_2E204 ; CODE XREF: buffered_vfprintf_0+16Cj .text:0002E204 MOV R0, R6 .text:0002E208 .text:0002E208 loc_2E208 ; CODE XREF: buffered_vfprintf_0+40j .text:0002E208 B locret_2E21C .text:0002E208 ; --------------------------------------------------------------------------- .text:0002E20C off_2E20C DCD 0 ; DATA XREF: buffered_vfprintf_0+8Cr .text:0002E210 off_2E210 DCD _IO_helper_jumps_0 ; DATA XREF: buffered_vfprintf_0:loc_2E12Cr .text:0002E214 off_2E214 DCD 0 ; DATA XREF: buffered_vfprintf_0+C4r .text:0002E218 off_2E218 DCD funlockfile ; DATA XREF: buffered_vfprintf_0+E8r .text:0002E21C ; --------------------------------------------------------------------------- .text:0002E21C .text:0002E21C locret_2E21C ; CODE XREF: buffered_vfprintf_0:loc_2E208j .text:0002E21C LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0002E21C ; End of function buffered_vfprintf_0 .text:0002E21C .text:0002E220 .text:0002E220 ; =============== S U B R O U T I N E ======================================= .text:0002E220 .text:0002E220 ; Attributes: bp-based frame .text:0002E220 .text:0002E220 WEAK fclose .text:0002E220 fclose ; CODE XREF: read_alias_file+45Cp .text:0002E220 ; _IO_new_file_fopen+1F4p ... .text:0002E220 .text:0002E220 var_2C = -0x2C .text:0002E220 .text:0002E220 MOV R12, SP ; Alternative name is '__new_fclose' .text:0002E224 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0002E228 SUB R11, R12, #4 .text:0002E22C MOV R4, R0 .text:0002E230 SUB SP, SP, #0x10 .text:0002E234 LDR R3, [R4] .text:0002E238 MOV R6, #0 .text:0002E23C TST R3, #0x8000 .text:0002E240 BNE loc_2E250 .text:0002E244 LDR R3, =0 .text:0002E248 SUBS R6, R3, R6 .text:0002E24C MOVNE R6, #1 .text:0002E250 .text:0002E250 loc_2E250 ; CODE XREF: fclose+20j .text:0002E250 CMP R6, #0 .text:0002E254 BEQ loc_2E268 .text:0002E258 SUB R0, R11, #-var_2C .text:0002E25C LDR R1, =funlockfile .text:0002E260 MOV R2, R4 .text:0002E264 BL 0 .text:0002E268 .text:0002E268 loc_2E268 ; CODE XREF: fclose+34j .text:0002E268 LDR R3, [R4] .text:0002E26C TST R3, #0x8000 .text:0002E270 BNE loc_2E27C .text:0002E274 MOV R0, R4 .text:0002E278 BL flockfile .text:0002E27C .text:0002E27C loc_2E27C ; CODE XREF: fclose+50j .text:0002E27C LDR R3, [R4] .text:0002E280 TST R3, #0x2000 .text:0002E284 BEQ loc_2E2A0 .text:0002E288 MOV R0, R4 .text:0002E28C BL _IO_new_file_close_it .text:0002E290 MOV R7, R0 .text:0002E294 B loc_2E2AC .text:0002E294 ; --------------------------------------------------------------------------- .text:0002E298 dword_2E298 DCD 0 ; DATA XREF: fclose+24r .text:0002E29C off_2E29C DCD funlockfile ; DATA XREF: fclose+3Cr .text:0002E2A0 ; --------------------------------------------------------------------------- .text:0002E2A0 .text:0002E2A0 loc_2E2A0 ; CODE XREF: fclose+64j .text:0002E2A0 TST R3, #0x20 .text:0002E2A4 MOVEQ R7, #0 .text:0002E2A8 MOVNE R7, 0xFFFFFFFF .text:0002E2AC .text:0002E2AC loc_2E2AC ; CODE XREF: fclose+74j .text:0002E2AC LDRB R3, [R4,#0x46] .text:0002E2B0 MOV R0, R4 .text:0002E2B4 MOV R3, R3,LSL#24 .text:0002E2B8 ADD R3, R4, R3,ASR#24 .text:0002E2BC LDR R2, [R3,#0x94] .text:0002E2C0 MOV R1, #0 .text:0002E2C4 MOV LR, PC .text:0002E2C8 LDR PC, [R2,#8] .text:0002E2CC LDR R3, [R4] .text:0002E2D0 TST R3, #0x8000 .text:0002E2D4 BNE loc_2E2E0 .text:0002E2D8 MOV R0, R4 .text:0002E2DC BL funlockfile .text:0002E2E0 .text:0002E2E0 loc_2E2E0 ; CODE XREF: fclose+B4j .text:0002E2E0 LDR R3, [R4,#0x5C] .text:0002E2E4 CMP R3, #0 .text:0002E2E8 BLE loc_2E340 .text:0002E2EC LDR R5, [R4,#0x54] .text:0002E2F0 LDR R2, [R5,#0x24] .text:0002E2F4 LDR R3, [R2] .text:0002E2F8 CMP R3, #0 .text:0002E2FC BEQ loc_2E318 .text:0002E300 LDR R3, [R2,#8] .text:0002E304 SUB R3, R3, #1 .text:0002E308 STR R3, [R2,#8] .text:0002E30C LDR R0, [R5,#0x24] .text:0002E310 MOV R1, #1 .text:0002E314 BL __gconv_close_transform .text:0002E318 .text:0002E318 loc_2E318 ; CODE XREF: fclose+DCj .text:0002E318 LDR R2, [R5,#0x50] .text:0002E31C LDR R3, [R2] .text:0002E320 CMP R3, #0 .text:0002E324 BEQ loc_2E340 .text:0002E328 LDR R3, [R2,#8] .text:0002E32C SUB R3, R3, #1 .text:0002E330 STR R3, [R2,#8] .text:0002E334 LDR R0, [R5,#0x50] .text:0002E338 MOV R1, #1 .text:0002E33C BL __gconv_close_transform .text:0002E340 .text:0002E340 loc_2E340 ; CODE XREF: fclose+C8j .text:0002E340 ; fclose+104j .text:0002E340 CMP R6, #0 .text:0002E344 BEQ loc_2E354 .text:0002E348 SUB R0, R11, #-var_2C .text:0002E34C MOV R1, #0 .text:0002E350 BL 0 .text:0002E354 .text:0002E354 loc_2E354 ; CODE XREF: fclose+124j .text:0002E354 LDR R3, [R4,#0x24] .text:0002E358 CMP R3, #0 .text:0002E35C BEQ loc_2E368 .text:0002E360 MOV R0, R4 .text:0002E364 BL _IO_free_backup_area .text:0002E368 .text:0002E368 loc_2E368 ; CODE XREF: fclose+13Cj .text:0002E368 LDR R3, =stdin .text:0002E36C LDR R2, [R3] .text:0002E370 CMP R4, R2 .text:0002E374 BEQ loc_2E3A8 .text:0002E378 LDR R3, =stdout .text:0002E37C LDR R2, [R3] .text:0002E380 CMP R4, R2 .text:0002E384 BEQ loc_2E3A8 .text:0002E388 LDR R3, =stderr .text:0002E38C LDR R2, [R3] .text:0002E390 CMP R4, R2 .text:0002E394 BEQ loc_2E3A8 .text:0002E398 MOV R3, #0 .text:0002E39C STR R3, [R4] .text:0002E3A0 MOV R0, R4 .text:0002E3A4 BL free .text:0002E3A8 .text:0002E3A8 loc_2E3A8 ; CODE XREF: fclose+154j .text:0002E3A8 ; fclose+164j ... .text:0002E3A8 MOV R0, R7 .text:0002E3AC B locret_2E3BC .text:0002E3AC ; --------------------------------------------------------------------------- .text:0002E3B0 off_2E3B0 DCD stdin ; DATA XREF: fclose:loc_2E368r .text:0002E3B4 off_2E3B4 DCD stdout ; DATA XREF: fclose+158r .text:0002E3B8 off_2E3B8 DCD stderr ; DATA XREF: fclose+168r .text:0002E3BC ; --------------------------------------------------------------------------- .text:0002E3BC .text:0002E3BC locret_2E3BC ; CODE XREF: fclose+18Cj .text:0002E3BC LDMDB R11, {R4-R7,R11,SP,PC} .text:0002E3BC ; End of function fclose .text:0002E3BC .text:0002E3C0 .text:0002E3C0 ; =============== S U B R O U T I N E ======================================= .text:0002E3C0 .text:0002E3C0 ; Attributes: bp-based frame .text:0002E3C0 .text:0002E3C0 WEAK fopen .text:0002E3C0 fopen ; CODE XREF: read_alias_file+44p .text:0002E3C0 ; get_nprocs_conf+64p ... .text:0002E3C0 .text:0002E3C0 var_1C = -0x1C .text:0002E3C0 .text:0002E3C0 MOV R12, SP ; Alternative name is '_IO_fopen' .text:0002E3C4 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:0002E3C8 SUB R11, R12, #4 .text:0002E3CC MOV R6, R0 .text:0002E3D0 MOV R0, #0x16C .text:0002E3D4 MOV R5, R1 .text:0002E3D8 SUB SP, SP, #4 .text:0002E3DC BL malloc .text:0002E3E0 SUBS R4, R0, #0 .text:0002E3E4 BEQ loc_2E448 .text:0002E3E8 ADD R3, R4, #0x98 .text:0002E3EC STR R3, [R4,#0x48] .text:0002E3F0 LDR R2, =_IO_wfile_jumps .text:0002E3F4 STR R2, [SP,#0x1C+var_1C] .text:0002E3F8 MOV R0, R4 .text:0002E3FC MOV R1, #0 .text:0002E400 ADD R3, R4, #0xB0 .text:0002E404 MOV R2, R1 .text:0002E408 BL _IO_no_init .text:0002E40C LDR R3, =_IO_file_jumps .text:0002E410 STR R3, [R4,#0x94] .text:0002E414 MOV R0, R4 .text:0002E418 BL _IO_new_file_init .text:0002E41C MOV R0, R4 .text:0002E420 MOV R1, R6 .text:0002E424 MOV R2, R5 .text:0002E428 MOV R3, #1 .text:0002E42C BL _IO_new_file_fopen .text:0002E430 SUBS R5, R0, #0 .text:0002E434 MOV R0, R4 .text:0002E438 BNE loc_2E44C .text:0002E43C BL _IO_un_link .text:0002E440 MOV R0, R4 .text:0002E444 BL free .text:0002E448 .text:0002E448 loc_2E448 ; CODE XREF: fopen+24j .text:0002E448 MOV R0, #0 .text:0002E44C .text:0002E44C loc_2E44C ; CODE XREF: fopen+78j .text:0002E44C B locret_2E458 .text:0002E44C ; --------------------------------------------------------------------------- .text:0002E450 off_2E450 DCD _IO_wfile_jumps ; DATA XREF: fopen+30r .text:0002E454 off_2E454 DCD _IO_file_jumps ; DATA XREF: fopen+4Cr .text:0002E458 ; --------------------------------------------------------------------------- .text:0002E458 .text:0002E458 locret_2E458 ; CODE XREF: fopen:loc_2E44Cj .text:0002E458 LDMDB R11, {R4-R6,R11,SP,PC} .text:0002E458 ; End of function fopen .text:0002E458 .text:0002E45C .text:0002E45C ; =============== S U B R O U T I N E ======================================= .text:0002E45C .text:0002E45C ; Attributes: bp-based frame .text:0002E45C .text:0002E45C EXPORT _IO_padn .text:0002E45C _IO_padn ; CODE XREF: vfprintf+FD0p .text:0002E45C ; vfprintf+1104p ... .text:0002E45C .text:0002E45C var_2C = -0x2C .text:0002E45C .text:0002E45C MOV R12, SP .text:0002E460 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0002E464 SUB R11, R12, #4 .text:0002E468 MOV R6, #0 .text:0002E46C CMP R1, #0x20 .text:0002E470 MOV R5, R0 .text:0002E474 SUB SP, SP, #0x10 .text:0002E478 LDREQ R7, =blanks .text:0002E47C BEQ loc_2E4B4 .text:0002E480 CMP R1, #0x30 .text:0002E484 BNE loc_2E498 .text:0002E488 LDR R7, =zeroes .text:0002E48C B loc_2E4B4 .text:0002E48C ; --------------------------------------------------------------------------- .text:0002E490 off_2E490 DCD blanks ; DATA XREF: _IO_padn+1Cr .text:0002E494 off_2E494 DCD zeroes ; DATA XREF: _IO_padn+2Cr .text:0002E498 ; --------------------------------------------------------------------------- .text:0002E498 .text:0002E498 loc_2E498 ; CODE XREF: _IO_padn+28j .text:0002E498 MOV R4, #0xF .text:0002E49C SUB R3, R11, #-var_2C .text:0002E4A0 MOV R0, R3 .text:0002E4A4 .text:0002E4A4 loc_2E4A4 ; CODE XREF: _IO_padn+50j .text:0002E4A4 STRB R1, [R0,R4] .text:0002E4A8 SUBS R4, R4, #1 .text:0002E4AC BPL loc_2E4A4 .text:0002E4B0 MOV R7, R3 .text:0002E4B4 .text:0002E4B4 loc_2E4B4 ; CODE XREF: _IO_padn+20j .text:0002E4B4 ; _IO_padn+30j .text:0002E4B4 MOV R4, R2 .text:0002E4B8 CMP R4, #0xF .text:0002E4BC BLE loc_2E4FC .text:0002E4C0 .text:0002E4C0 loc_2E4C0 ; CODE XREF: _IO_padn+9Cj .text:0002E4C0 MOV R0, R5 .text:0002E4C4 LDRB R3, [R5,#0x46] .text:0002E4C8 MOV R1, R7 .text:0002E4CC MOV R3, R3,LSL#24 .text:0002E4D0 ADD R3, R5, R3,ASR#24 .text:0002E4D4 LDR R12, [R3,#0x94] .text:0002E4D8 MOV R2, #0x10 .text:0002E4DC MOV LR, PC .text:0002E4E0 LDR PC, [R12,#0x1C] .text:0002E4E4 ADD R6, R6, R0 .text:0002E4E8 CMP R0, #0x10 .text:0002E4EC BNE loc_2E52C .text:0002E4F0 SUB R4, R4, #0x10 .text:0002E4F4 CMP R4, #0xF .text:0002E4F8 BGT loc_2E4C0 .text:0002E4FC .text:0002E4FC loc_2E4FC ; CODE XREF: _IO_padn+60j .text:0002E4FC CMP R4, #0 .text:0002E500 BLE loc_2E52C .text:0002E504 MOV R0, R5 .text:0002E508 LDRB R3, [R5,#0x46] .text:0002E50C MOV R1, R7 .text:0002E510 MOV R3, R3,LSL#24 .text:0002E514 ADD R3, R5, R3,ASR#24 .text:0002E518 LDR R12, [R3,#0x94] .text:0002E51C MOV R2, R4 .text:0002E520 MOV LR, PC .text:0002E524 LDR PC, [R12,#0x1C] .text:0002E528 ADD R6, R6, R0 .text:0002E52C .text:0002E52C loc_2E52C ; CODE XREF: _IO_padn+90j .text:0002E52C ; _IO_padn+A4j .text:0002E52C MOV R0, R6 .text:0002E530 LDMDB R11, {R4-R7,R11,SP,PC} .text:0002E530 ; End of function _IO_padn .text:0002E530 .text:0002E534 .text:0002E534 ; =============== S U B R O U T I N E ======================================= .text:0002E534 .text:0002E534 ; Attributes: bp-based frame .text:0002E534 .text:0002E534 EXPORT _IO_wpadn .text:0002E534 _IO_wpadn ; CODE XREF: __printf_fp+304p .text:0002E534 ; __printf_fp+654p ... .text:0002E534 .text:0002E534 var_5C = -0x5C .text:0002E534 .text:0002E534 MOV R12, SP .text:0002E538 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0002E53C SUB R11, R12, #4 .text:0002E540 MOV R6, #0 .text:0002E544 CMP R1, #0x20 .text:0002E548 MOV R5, R0 .text:0002E54C SUB SP, SP, #0x40 .text:0002E550 LDREQ R7, =blanks_0 .text:0002E554 BEQ loc_2E58C .text:0002E558 CMP R1, #0x30 .text:0002E55C BNE loc_2E570 .text:0002E560 LDR R7, =zeroes_0 .text:0002E564 B loc_2E58C .text:0002E564 ; --------------------------------------------------------------------------- .text:0002E568 off_2E568 DCD blanks_0 ; DATA XREF: _IO_wpadn+1Cr .text:0002E56C off_2E56C DCD zeroes_0 ; DATA XREF: _IO_wpadn+2Cr .text:0002E570 ; --------------------------------------------------------------------------- .text:0002E570 .text:0002E570 loc_2E570 ; CODE XREF: _IO_wpadn+28j .text:0002E570 MOV R4, #0xF .text:0002E574 SUB R3, R11, #-var_5C .text:0002E578 MOV R0, R3 .text:0002E57C .text:0002E57C loc_2E57C ; CODE XREF: _IO_wpadn+50j .text:0002E57C STR R1, [R0,R4,LSL#2] .text:0002E580 SUBS R4, R4, #1 .text:0002E584 BPL loc_2E57C .text:0002E588 MOV R7, R3 .text:0002E58C .text:0002E58C loc_2E58C ; CODE XREF: _IO_wpadn+20j .text:0002E58C ; _IO_wpadn+30j .text:0002E58C MOV R4, R2 .text:0002E590 CMP R4, #0xF .text:0002E594 BLE loc_2E5D4 .text:0002E598 .text:0002E598 loc_2E598 ; CODE XREF: _IO_wpadn+9Cj .text:0002E598 MOV R0, R5 .text:0002E59C LDRB R3, [R5,#0x46] .text:0002E5A0 MOV R1, R7 .text:0002E5A4 MOV R3, R3,LSL#24 .text:0002E5A8 ADD R3, R5, R3,ASR#24 .text:0002E5AC LDR R12, [R3,#0x94] .text:0002E5B0 MOV R2, #0x10 .text:0002E5B4 MOV LR, PC .text:0002E5B8 LDR PC, [R12,#0x1C] .text:0002E5BC ADD R6, R6, R0 .text:0002E5C0 CMP R0, #0x10 .text:0002E5C4 BNE loc_2E604 .text:0002E5C8 SUB R4, R4, #0x10 .text:0002E5CC CMP R4, #0xF .text:0002E5D0 BGT loc_2E598 .text:0002E5D4 .text:0002E5D4 loc_2E5D4 ; CODE XREF: _IO_wpadn+60j .text:0002E5D4 CMP R4, #0 .text:0002E5D8 BLE loc_2E604 .text:0002E5DC MOV R0, R5 .text:0002E5E0 LDRB R3, [R5,#0x46] .text:0002E5E4 MOV R1, R7 .text:0002E5E8 MOV R3, R3,LSL#24 .text:0002E5EC ADD R3, R5, R3,ASR#24 .text:0002E5F0 LDR R12, [R3,#0x94] .text:0002E5F4 MOV R2, R4 .text:0002E5F8 MOV LR, PC .text:0002E5FC LDR PC, [R12,#0x1C] .text:0002E600 ADD R6, R6, R0 .text:0002E604 .text:0002E604 loc_2E604 ; CODE XREF: _IO_wpadn+90j .text:0002E604 ; _IO_wpadn+A4j .text:0002E604 MOV R0, R6 .text:0002E608 LDMDB R11, {R4-R7,R11,SP,PC} .text:0002E608 ; End of function _IO_wpadn .text:0002E608 .text:0002E60C .text:0002E60C ; =============== S U B R O U T I N E ======================================= .text:0002E60C .text:0002E60C ; Attributes: bp-based frame .text:0002E60C .text:0002E60C EXPORT _IO_least_wmarker .text:0002E60C _IO_least_wmarker ; CODE XREF: save_for_wbackup+14p .text:0002E60C MOV R12, SP .text:0002E610 STMFD SP!, {R11,R12,LR,PC} .text:0002E614 SUB R11, R12, #4 .text:0002E618 LDR R12, [R0,#0x30] .text:0002E61C LDR R3, [R0,#0x58] .text:0002E620 LDR R2, [R3,#8] .text:0002E624 CMP R12, #0 .text:0002E628 RSB R1, R2, R1 .text:0002E62C MOV R0, R1,ASR#2 .text:0002E630 LDMEQDB R11, {R11,SP,PC} .text:0002E634 .text:0002E634 loc_2E634 ; CODE XREF: _IO_least_wmarker+3Cj .text:0002E634 LDR R3, [R12,#8] .text:0002E638 LDR R12, [R12] .text:0002E63C CMP R3, R0 .text:0002E640 MOVLT R0, R3 .text:0002E644 CMP R12, #0 .text:0002E648 BNE loc_2E634 .text:0002E64C LDMDB R11, {R11,SP,PC} .text:0002E64C ; End of function _IO_least_wmarker .text:0002E64C .text:0002E650 .text:0002E650 ; =============== S U B R O U T I N E ======================================= .text:0002E650 .text:0002E650 ; Attributes: bp-based frame .text:0002E650 .text:0002E650 EXPORT _IO_switch_to_main_wget_area .text:0002E650 _IO_switch_to_main_wget_area ; CODE XREF: __wuflow+90p .text:0002E650 ; __wunderflow+8Cp ... .text:0002E650 MOV R12, SP .text:0002E654 STMFD SP!, {R11,R12,LR,PC} .text:0002E658 LDR R3, [R0] .text:0002E65C BIC R3, R3, #0x100 .text:0002E660 STR R3, [R0] .text:0002E664 LDR R2, [R0,#0x58] .text:0002E668 LDR R3, [R2,#0x28] .text:0002E66C SUB R11, R12, #4 .text:0002E670 LDR R12, [R2,#4] .text:0002E674 STR R3, [R2,#4] .text:0002E678 LDR R1, [R0,#0x58] .text:0002E67C STR R12, [R1,#0x28] .text:0002E680 LDR R3, [R0,#0x58] .text:0002E684 LDR R2, [R3,#0x20] .text:0002E688 LDR R12, [R3,#8] .text:0002E68C STR R2, [R3,#8] .text:0002E690 LDR R1, [R0,#0x58] .text:0002E694 STR R12, [R1,#0x20] .text:0002E698 LDR R2, [R0,#0x58] .text:0002E69C LDR R3, [R2,#8] .text:0002E6A0 STR R3, [R2] .text:0002E6A4 LDMDB R11, {R11,SP,PC} .text:0002E6A4 ; End of function _IO_switch_to_main_wget_area .text:0002E6A4 .text:0002E6A8 .text:0002E6A8 ; =============== S U B R O U T I N E ======================================= .text:0002E6A8 .text:0002E6A8 ; Attributes: bp-based frame .text:0002E6A8 .text:0002E6A8 EXPORT _IO_switch_to_wbackup_area .text:0002E6A8 _IO_switch_to_wbackup_area ; CODE XREF: _IO_wdefault_pbackfail+E8p .text:0002E6A8 ; _IO_seekwmark+60p .text:0002E6A8 MOV R12, SP .text:0002E6AC STMFD SP!, {R11,R12,LR,PC} .text:0002E6B0 LDR R3, [R0] .text:0002E6B4 ORR R3, R3, #0x100 .text:0002E6B8 STR R3, [R0] .text:0002E6BC LDR R2, [R0,#0x58] .text:0002E6C0 LDR R3, [R2,#0x28] .text:0002E6C4 SUB R11, R12, #4 .text:0002E6C8 LDR R12, [R2,#4] .text:0002E6CC STR R3, [R2,#4] .text:0002E6D0 LDR R1, [R0,#0x58] .text:0002E6D4 STR R12, [R1,#0x28] .text:0002E6D8 LDR R3, [R0,#0x58] .text:0002E6DC LDR R2, [R3,#0x20] .text:0002E6E0 LDR R12, [R3,#8] .text:0002E6E4 STR R2, [R3,#8] .text:0002E6E8 LDR R1, [R0,#0x58] .text:0002E6EC STR R12, [R1,#0x20] .text:0002E6F0 LDR R2, [R0,#0x58] .text:0002E6F4 LDR R3, [R2,#4] .text:0002E6F8 STR R3, [R2] .text:0002E6FC LDMDB R11, {R11,SP,PC} .text:0002E6FC ; End of function _IO_switch_to_wbackup_area .text:0002E6FC .text:0002E700 .text:0002E700 ; =============== S U B R O U T I N E ======================================= .text:0002E700 .text:0002E700 ; Attributes: bp-based frame .text:0002E700 .text:0002E700 EXPORT _IO_wsetb .text:0002E700 _IO_wsetb ; CODE XREF: _IO_wdoallocbuf+54p .text:0002E700 ; _IO_wdefault_setbuf+7Cp ... .text:0002E700 MOV R12, SP .text:0002E704 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0002E708 SUB R11, R12, #4 .text:0002E70C MOV R4, R0 .text:0002E710 MOV R5, R1 .text:0002E714 LDR R0, [R4,#0x58] .text:0002E718 MOV R7, R2 .text:0002E71C LDR R12, [R0,#0x18] .text:0002E720 MOV R6, R3 .text:0002E724 CMP R12, #0 .text:0002E728 BEQ loc_2E75C .text:0002E72C LDR R3, [R4] .text:0002E730 TST R3, #1 .text:0002E734 BNE loc_2E75C .text:0002E738 MOV R1, 0xFFF .text:0002E740 LDR R3, [R0,#0x1C] .text:0002E744 MOV R0, R12 .text:0002E748 RSB R3, R12, R3 .text:0002E74C ADD R1, R1, R3,ASR#2 .text:0002E750 BIC R1, R1, #0xFF0 .text:0002E754 BIC R1, R1, #0xF .text:0002E758 BL munmap .text:0002E75C .text:0002E75C loc_2E75C ; CODE XREF: _IO_wsetb+28j .text:0002E75C ; _IO_wsetb+34j .text:0002E75C LDR R3, [R4,#0x58] .text:0002E760 STR R5, [R3,#0x18] .text:0002E764 LDR R2, [R4,#0x58] .text:0002E768 CMP R6, #0 .text:0002E76C STR R7, [R2,#0x1C] .text:0002E770 LDRNE R3, [R4] .text:0002E774 BICNE R3, R3, #1 .text:0002E778 STRNE R3, [R4] .text:0002E77C LDREQ R3, [R4] .text:0002E780 ORREQ R3, R3, #1 .text:0002E784 STREQ R3, [R4] .text:0002E788 LDMDB R11, {R4-R7,R11,SP,PC} .text:0002E788 ; End of function _IO_wsetb .text:0002E788 .text:0002E78C .text:0002E78C ; =============== S U B R O U T I N E ======================================= .text:0002E78C .text:0002E78C ; Attributes: bp-based frame .text:0002E78C .text:0002E78C EXPORT _IO_wdefault_pbackfail .text:0002E78C _IO_wdefault_pbackfail .text:0002E78C MOV R12, SP .text:0002E790 STMFD SP!, {R4-R8,R10-R12,LR,PC} .text:0002E794 MOV R5, R0 .text:0002E798 LDR R3, [R5,#0x58] .text:0002E79C LDR R0, [R3] .text:0002E7A0 SUB R11, R12, #4 .text:0002E7A4 LDR R2, [R3,#8] .text:0002E7A8 MOV R10, R1 .text:0002E7AC CMP R0, R2 .text:0002E7B0 BLS loc_2E7D8 .text:0002E7B4 LDR R3, [R5] .text:0002E7B8 TST R3, #0x100 .text:0002E7BC BNE loc_2E7D8 .text:0002E7C0 LDR R2, [R5,#4] .text:0002E7C4 LDRB R3, [R2,#-1] .text:0002E7C8 CMP R3, R10 .text:0002E7CC SUBEQ R3, R2, #1 .text:0002E7D0 STREQ R3, [R5,#4] .text:0002E7D4 BEQ loc_2E918 .text:0002E7D8 .text:0002E7D8 loc_2E7D8 ; CODE XREF: _IO_wdefault_pbackfail+24j .text:0002E7D8 ; _IO_wdefault_pbackfail+30j .text:0002E7D8 LDR R3, [R5] .text:0002E7DC TST R3, #0x100 .text:0002E7E0 BNE loc_2E87C .text:0002E7E4 LDR R3, [R5,#0x58] .text:0002E7E8 LDR R1, [R3] .text:0002E7EC LDR R2, [R3,#8] .text:0002E7F0 CMP R1, R2 .text:0002E7F4 MOV R2, R3 .text:0002E7F8 BLS loc_2E820 .text:0002E7FC LDR R3, [R2,#0x20] .text:0002E800 CMP R3, #0 .text:0002E804 BEQ loc_2E820 .text:0002E808 MOV R0, R5 .text:0002E80C BL save_for_wbackup .text:0002E810 CMP R0, #0 .text:0002E814 BEQ loc_2E864 .text:0002E818 .text:0002E818 loc_2E818 ; CODE XREF: _IO_wdefault_pbackfail+B0j .text:0002E818 ; _IO_wdefault_pbackfail+124j .text:0002E818 MOV R0, 0xFFFFFFFF .text:0002E81C LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0002E820 ; --------------------------------------------------------------------------- .text:0002E820 .text:0002E820 loc_2E820 ; CODE XREF: _IO_wdefault_pbackfail+6Cj .text:0002E820 ; _IO_wdefault_pbackfail+78j .text:0002E820 LDR R3, [R2,#0x20] .text:0002E824 CMP R3, #0 .text:0002E828 BNE loc_2E864 .text:0002E82C MOV R4, #0x200 .text:0002E830 MOV R0, R4 .text:0002E834 BL malloc .text:0002E838 CMP R0, #0 .text:0002E83C BEQ loc_2E818 .text:0002E840 LDR R3, [R5,#0x58] .text:0002E844 STR R0, [R3,#0x20] .text:0002E848 LDR R1, [R5,#0x58] .text:0002E84C LDR R3, [R1,#0x20] .text:0002E850 ADD R3, R3, R4 .text:0002E854 STR R3, [R1,#0x28] .text:0002E858 LDR R2, [R5,#0x58] .text:0002E85C LDR R3, [R2,#0x28] .text:0002E860 STR R3, [R2,#0x24] .text:0002E864 .text:0002E864 loc_2E864 ; CODE XREF: _IO_wdefault_pbackfail+88j .text:0002E864 ; _IO_wdefault_pbackfail+9Cj .text:0002E864 LDR R2, [R5,#0x58] .text:0002E868 LDR R3, [R2] .text:0002E86C STR R3, [R2,#8] .text:0002E870 MOV R0, R5 .text:0002E874 BL _IO_switch_to_wbackup_area .text:0002E878 B loc_2E904 .text:0002E87C ; --------------------------------------------------------------------------- .text:0002E87C .text:0002E87C loc_2E87C ; CODE XREF: _IO_wdefault_pbackfail+54j .text:0002E87C LDR R2, [R5,#0x58] .text:0002E880 LDR R3, [R2] .text:0002E884 LDR R1, [R2,#8] .text:0002E888 CMP R3, R1 .text:0002E88C BHI loc_2E904 .text:0002E890 LDR R3, [R2,#4] .text:0002E894 RSB R3, R1, R3 .text:0002E898 MOV R6, R3,ASR#2 .text:0002E89C MOV R8, R6,LSL#3 .text:0002E8A0 MOV R0, R8 .text:0002E8A4 BL malloc .text:0002E8A8 MOV R4, R6,LSL#1 .text:0002E8AC SUBS R7, R0, #0 .text:0002E8B0 BEQ loc_2E818 .text:0002E8B4 RSB R4, R6, R4 .text:0002E8B8 ADD R4, R7, R4,LSL#2 .text:0002E8BC LDR R3, [R5,#0x58] .text:0002E8C0 MOV R0, R4 .text:0002E8C4 LDR R1, [R3,#8] .text:0002E8C8 MOV R2, R6 .text:0002E8CC BL wmemcpy .text:0002E8D0 LDR R3, [R5,#0x58] .text:0002E8D4 LDR R0, [R3,#8] .text:0002E8D8 BL free .text:0002E8DC LDR R3, [R5,#0x58] .text:0002E8E0 STR R7, [R3,#8] .text:0002E8E4 LDR R2, [R5,#0x58] .text:0002E8E8 STR R4, [R2] .text:0002E8EC LDR R1, [R5,#0x58] .text:0002E8F0 ADD R3, R7, R8 .text:0002E8F4 STR R3, [R1,#4] .text:0002E8F8 LDR R2, [R5,#0x58] .text:0002E8FC LDR R3, [R2] .text:0002E900 STR R3, [R2,#0x24] .text:0002E904 .text:0002E904 loc_2E904 ; CODE XREF: _IO_wdefault_pbackfail+ECj .text:0002E904 ; _IO_wdefault_pbackfail+100j .text:0002E904 LDR R3, [R5,#0x58] .text:0002E908 LDR R1, [R3] .text:0002E90C SUB R2, R1, #4 .text:0002E910 STR R2, [R3] .text:0002E914 STR R10, [R1,#-4] .text:0002E918 .text:0002E918 loc_2E918 ; CODE XREF: _IO_wdefault_pbackfail+48j .text:0002E918 MOV R0, R10 .text:0002E91C LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0002E91C ; End of function _IO_wdefault_pbackfail .text:0002E91C .text:0002E920 .text:0002E920 ; =============== S U B R O U T I N E ======================================= .text:0002E920 .text:0002E920 ; Attributes: bp-based frame .text:0002E920 .text:0002E920 EXPORT _IO_wdefault_finish .text:0002E920 _IO_wdefault_finish .text:0002E920 MOV R12, SP .text:0002E924 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0002E928 MOV R4, R0 .text:0002E92C LDR R1, [R4,#0x58] .text:0002E930 LDR R2, [R1,#0x18] .text:0002E934 SUB R11, R12, #4 .text:0002E938 CMP R2, #0 .text:0002E93C BEQ loc_2E97C .text:0002E940 LDR R3, [R4] .text:0002E944 ANDS R5, R3, #1 .text:0002E948 BNE loc_2E97C .text:0002E94C LDR R1, [R1,#0x1C] .text:0002E950 MOV R0, R2 .text:0002E954 RSB R1, R2, R1 .text:0002E958 BIC R1, R1, #3 .text:0002E95C ADD R1, R1, #0xFF0 .text:0002E960 ADD R1, R1, #0xF .text:0002E964 BIC R1, R1, #0xFF0 .text:0002E968 BIC R1, R1, #0xF .text:0002E96C BL munmap .text:0002E970 LDR R3, [R4,#0x58] .text:0002E974 STR R5, [R3,#0x1C] .text:0002E978 STR R5, [R3,#0x18] .text:0002E97C .text:0002E97C loc_2E97C ; CODE XREF: _IO_wdefault_finish+1Cj .text:0002E97C ; _IO_wdefault_finish+28j .text:0002E97C LDR R3, [R4,#0x30] .text:0002E980 LDR R5, =0 .text:0002E984 CMP R3, #0 .text:0002E988 BEQ loc_2E9A0 .text:0002E98C MOV R2, #0 .text:0002E990 .text:0002E990 loc_2E990 ; CODE XREF: _IO_wdefault_finish+7Cj .text:0002E990 STR R2, [R3,#4] .text:0002E994 LDR R3, [R3] .text:0002E998 CMP R3, #0 .text:0002E99C BNE loc_2E990 .text:0002E9A0 .text:0002E9A0 loc_2E9A0 ; CODE XREF: _IO_wdefault_finish+68j .text:0002E9A0 LDR R3, [R4,#0x24] .text:0002E9A4 CMP R3, #0 .text:0002E9A8 BEQ loc_2E9C0 .text:0002E9AC LDR R3, [R4,#0x58] .text:0002E9B0 LDR R0, [R3,#0x20] .text:0002E9B4 BL free .text:0002E9B8 MOV R3, #0 .text:0002E9BC STR R3, [R4,#0x24] .text:0002E9C0 .text:0002E9C0 loc_2E9C0 ; CODE XREF: _IO_wdefault_finish+88j .text:0002E9C0 CMP R5, #0 .text:0002E9C4 BEQ loc_2E9D4 .text:0002E9C8 LDR R0, [R4,#0x48] .text:0002E9CC MOV LR, PC .text:0002E9D0 MOV PC, R5 .text:0002E9D4 .text:0002E9D4 loc_2E9D4 ; CODE XREF: _IO_wdefault_finish+A4j .text:0002E9D4 MOV R0, R4 .text:0002E9D8 BL _IO_un_link .text:0002E9DC LDMDB R11, {R4,R5,R11,SP,PC} .text:0002E9DC ; End of function _IO_wdefault_finish .text:0002E9DC .text:0002E9DC ; --------------------------------------------------------------------------- .text:0002E9E0 dword_2E9E0 DCD 0 ; DATA XREF: _IO_wdefault_finish+60r .text:0002E9E4 .text:0002E9E4 ; =============== S U B R O U T I N E ======================================= .text:0002E9E4 .text:0002E9E4 ; Attributes: bp-based frame .text:0002E9E4 .text:0002E9E4 EXPORT _IO_wdefault_uflow .text:0002E9E4 _IO_wdefault_uflow .text:0002E9E4 MOV R12, SP .text:0002E9E8 STMFD SP!, {R4,R11,R12,LR,PC} .text:0002E9EC MOV R4, R0 .text:0002E9F0 LDRB R3, [R4,#0x46] .text:0002E9F4 SUB R11, R12, #4 .text:0002E9F8 MOV R3, R3,LSL#24 .text:0002E9FC ADD R3, R4, R3,ASR#24 .text:0002EA00 LDR R2, [R3,#0x94] .text:0002EA04 MOV LR, PC .text:0002EA08 LDR PC, [R2,#0x10] .text:0002EA0C CMN R0, #1 .text:0002EA10 LDMEQDB R11, {R4,R11,SP,PC} .text:0002EA14 LDR R2, [R4,#0x58] .text:0002EA18 LDR R3, [R2] .text:0002EA1C LDR R0, [R3],#4 .text:0002EA20 STR R3, [R2] .text:0002EA24 LDMDB R11, {R4,R11,SP,PC} .text:0002EA24 ; End of function _IO_wdefault_uflow .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 __woverflow .text:0002EA28 __woverflow ; CODE XREF: __printf_fp+364p .text:0002EA28 ; __printf_fp+3ECp ... .text:0002EA28 MOV R12, SP .text:0002EA2C STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0002EA30 SUB R11, R12, #4 .text:0002EA34 MOV R4, R0 .text:0002EA38 LDR R3, [R4,#0x5C] .text:0002EA3C MOV R5, R1 .text:0002EA40 CMP R3, #0 .text:0002EA44 BNE loc_2EA50 .text:0002EA48 MOV R1, #1 .text:0002EA4C BL _IO_fwide .text:0002EA50 .text:0002EA50 loc_2EA50 ; CODE XREF: __woverflow+1Cj .text:0002EA50 LDRB R3, [R4,#0x46] .text:0002EA54 MOV R0, R4 .text:0002EA58 MOV R3, R3,LSL#24 .text:0002EA5C ADD R3, R4, R3,ASR#24 .text:0002EA60 LDR R2, [R3,#0x94] .text:0002EA64 MOV R1, R5 .text:0002EA68 MOV LR, PC .text:0002EA6C LDR PC, [R2,#0xC] .text:0002EA70 LDMDB R11, {R4,R5,R11,SP,PC} .text:0002EA70 ; End of function __woverflow .text:0002EA70 .text:0002EA74 .text:0002EA74 ; =============== S U B R O U T I N E ======================================= .text:0002EA74 .text:0002EA74 ; Attributes: bp-based frame .text:0002EA74 .text:0002EA74 EXPORT __wuflow .text:0002EA74 __wuflow .text:0002EA74 MOV R12, SP .text:0002EA78 STMFD SP!, {R4,R11,R12,LR,PC} .text:0002EA7C MOV R4, R0 .text:0002EA80 LDR R3, [R4,#0x5C] .text:0002EA84 SUB R11, R12, #4 .text:0002EA88 CMP R3, #0 .text:0002EA8C BLT loc_2EB3C .text:0002EA90 BNE loc_2EAA4 .text:0002EA94 MOV R1, #1 .text:0002EA98 BL _IO_fwide .text:0002EA9C CMP R0, #1 .text:0002EAA0 BNE loc_2EB3C .text:0002EAA4 .text:0002EAA4 loc_2EAA4 ; CODE XREF: __wuflow+1Cj .text:0002EAA4 LDR R3, [R4,#0x5C] .text:0002EAA8 CMP R3, #0 .text:0002EAAC BNE loc_2EABC .text:0002EAB0 MOV R0, R4 .text:0002EAB4 MOV R1, #1 .text:0002EAB8 BL _IO_fwide .text:0002EABC .text:0002EABC loc_2EABC ; CODE XREF: __wuflow+38j .text:0002EABC LDR R3, [R4] .text:0002EAC0 TST R3, #0x800 .text:0002EAC4 BEQ loc_2EAD8 .text:0002EAC8 MOV R0, R4 .text:0002EACC BL _IO_switch_to_wget_mode .text:0002EAD0 CMN R0, #1 .text:0002EAD4 LDMEQDB R11, {R4,R11,SP,PC} .text:0002EAD8 .text:0002EAD8 loc_2EAD8 ; CODE XREF: __wuflow+50j .text:0002EAD8 LDR R1, [R4,#0x58] .text:0002EADC LDMIA R1, {R2,R3} .text:0002EAE0 CMP R2, R3 .text:0002EAE4 BCS loc_2EAF4 .text:0002EAE8 .text:0002EAE8 loc_2EAE8 ; CODE XREF: __wuflow+A0j .text:0002EAE8 LDR R0, [R2],#4 .text:0002EAEC STR R2, [R1] .text:0002EAF0 LDMDB R11, {R4,R11,SP,PC} .text:0002EAF4 ; --------------------------------------------------------------------------- .text:0002EAF4 .text:0002EAF4 loc_2EAF4 ; CODE XREF: __wuflow+70j .text:0002EAF4 LDR R3, [R4] .text:0002EAF8 TST R3, #0x100 .text:0002EAFC BEQ loc_2EB18 .text:0002EB00 MOV R0, R4 .text:0002EB04 BL _IO_switch_to_main_wget_area .text:0002EB08 LDR R1, [R4,#0x58] .text:0002EB0C LDMIA R1, {R2,R3} .text:0002EB10 CMP R2, R3 .text:0002EB14 BCC loc_2EAE8 .text:0002EB18 .text:0002EB18 loc_2EB18 ; CODE XREF: __wuflow+88j .text:0002EB18 LDR R3, [R4,#0x30] .text:0002EB1C CMP R3, #0 .text:0002EB20 BEQ loc_2EB44 .text:0002EB24 LDR R3, [R4,#0x58] .text:0002EB28 LDR R1, [R3,#4] .text:0002EB2C MOV R0, R4 .text:0002EB30 BL save_for_wbackup .text:0002EB34 CMP R0, #0 .text:0002EB38 BEQ loc_2EB5C .text:0002EB3C .text:0002EB3C loc_2EB3C ; CODE XREF: __wuflow+18j .text:0002EB3C ; __wuflow+2Cj .text:0002EB3C MOV R0, 0xFFFFFFFF .text:0002EB40 LDMDB R11, {R4,R11,SP,PC} .text:0002EB44 ; --------------------------------------------------------------------------- .text:0002EB44 .text:0002EB44 loc_2EB44 ; CODE XREF: __wuflow+ACj .text:0002EB44 LDR R3, [R4,#0x58] .text:0002EB48 LDR R2, [R3,#0x20] .text:0002EB4C CMP R2, #0 .text:0002EB50 BEQ loc_2EB5C .text:0002EB54 MOV R0, R4 .text:0002EB58 BL _IO_free_wbackup_area .text:0002EB5C .text:0002EB5C loc_2EB5C ; CODE XREF: __wuflow+C4j .text:0002EB5C ; __wuflow+DCj .text:0002EB5C LDRB R3, [R4,#0x46] .text:0002EB60 MOV R3, R3,LSL#24 .text:0002EB64 ADD R3, R4, R3,ASR#24 .text:0002EB68 LDR R2, [R3,#0x94] .text:0002EB6C MOV R0, R4 .text:0002EB70 MOV LR, PC .text:0002EB74 LDR PC, [R2,#0x14] .text:0002EB78 LDMDB R11, {R4,R11,SP,PC} .text:0002EB78 ; End of function __wuflow .text:0002EB78 .text:0002EB7C .text:0002EB7C ; =============== S U B R O U T I N E ======================================= .text:0002EB7C .text:0002EB7C ; Attributes: bp-based frame .text:0002EB7C .text:0002EB7C EXPORT __wunderflow .text:0002EB7C __wunderflow ; CODE XREF: _IO_wdefault_xsgetn+A8p .text:0002EB7C MOV R12, SP .text:0002EB80 STMFD SP!, {R4,R11,R12,LR,PC} .text:0002EB84 MOV R4, R0 .text:0002EB88 LDR R3, [R4,#0x5C] .text:0002EB8C SUB R11, R12, #4 .text:0002EB90 CMP R3, #0 .text:0002EB94 BLT loc_2EC40 .text:0002EB98 BNE loc_2EBAC .text:0002EB9C MOV R1, #1 .text:0002EBA0 BL _IO_fwide .text:0002EBA4 CMP R0, #1 .text:0002EBA8 BNE loc_2EC40 .text:0002EBAC .text:0002EBAC loc_2EBAC ; CODE XREF: __wunderflow+1Cj .text:0002EBAC LDR R3, [R4,#0x5C] .text:0002EBB0 CMP R3, #0 .text:0002EBB4 BNE loc_2EBC4 .text:0002EBB8 MOV R0, R4 .text:0002EBBC MOV R1, #1 .text:0002EBC0 BL _IO_fwide .text:0002EBC4 .text:0002EBC4 loc_2EBC4 ; CODE XREF: __wunderflow+38j .text:0002EBC4 LDR R3, [R4] .text:0002EBC8 TST R3, #0x800 .text:0002EBCC BEQ loc_2EBE0 .text:0002EBD0 MOV R0, R4 .text:0002EBD4 BL _IO_switch_to_wget_mode .text:0002EBD8 CMN R0, #1 .text:0002EBDC LDMEQDB R11, {R4,R11,SP,PC} .text:0002EBE0 .text:0002EBE0 loc_2EBE0 ; CODE XREF: __wunderflow+50j .text:0002EBE0 LDR R2, [R4,#0x58] .text:0002EBE4 LDMIA R2, {R0,R3} .text:0002EBE8 CMP R0, R3 .text:0002EBEC BCS loc_2EBF8 .text:0002EBF0 .text:0002EBF0 loc_2EBF0 ; CODE XREF: __wunderflow+9Cj .text:0002EBF0 LDR R0, [R0] .text:0002EBF4 LDMDB R11, {R4,R11,SP,PC} .text:0002EBF8 ; --------------------------------------------------------------------------- .text:0002EBF8 .text:0002EBF8 loc_2EBF8 ; CODE XREF: __wunderflow+70j .text:0002EBF8 LDR R3, [R4] .text:0002EBFC TST R3, #0x100 .text:0002EC00 BEQ loc_2EC1C .text:0002EC04 MOV R0, R4 .text:0002EC08 BL _IO_switch_to_main_wget_area .text:0002EC0C LDR R2, [R4,#0x58] .text:0002EC10 LDMIA R2, {R0,R3} .text:0002EC14 CMP R0, R3 .text:0002EC18 BCC loc_2EBF0 .text:0002EC1C .text:0002EC1C loc_2EC1C ; CODE XREF: __wunderflow+84j .text:0002EC1C LDR R3, [R4,#0x30] .text:0002EC20 CMP R3, #0 .text:0002EC24 BEQ loc_2EC48 .text:0002EC28 LDR R3, [R4,#0x58] .text:0002EC2C LDR R1, [R3,#4] .text:0002EC30 MOV R0, R4 .text:0002EC34 BL save_for_wbackup .text:0002EC38 CMP R0, #0 .text:0002EC3C BEQ loc_2EC5C .text:0002EC40 .text:0002EC40 loc_2EC40 ; CODE XREF: __wunderflow+18j .text:0002EC40 ; __wunderflow+2Cj .text:0002EC40 MOV R0, 0xFFFFFFFF .text:0002EC44 LDMDB R11, {R4,R11,SP,PC} .text:0002EC48 ; --------------------------------------------------------------------------- .text:0002EC48 .text:0002EC48 loc_2EC48 ; CODE XREF: __wunderflow+A8j .text:0002EC48 LDR R3, [R4,#0x24] .text:0002EC4C CMP R3, #0 .text:0002EC50 BEQ loc_2EC5C .text:0002EC54 MOV R0, R4 .text:0002EC58 BL _IO_free_wbackup_area .text:0002EC5C .text:0002EC5C loc_2EC5C ; CODE XREF: __wunderflow+C0j .text:0002EC5C ; __wunderflow+D4j .text:0002EC5C LDRB R3, [R4,#0x46] .text:0002EC60 MOV R3, R3,LSL#24 .text:0002EC64 ADD R3, R4, R3,ASR#24 .text:0002EC68 LDR R2, [R3,#0x94] .text:0002EC6C MOV R0, R4 .text:0002EC70 MOV LR, PC .text:0002EC74 LDR PC, [R2,#0x10] .text:0002EC78 LDMDB R11, {R4,R11,SP,PC} .text:0002EC78 ; End of function __wunderflow .text:0002EC78 .text:0002EC7C .text:0002EC7C ; =============== S U B R O U T I N E ======================================= .text:0002EC7C .text:0002EC7C ; Attributes: bp-based frame .text:0002EC7C .text:0002EC7C EXPORT _IO_wdefault_xsputn .text:0002EC7C _IO_wdefault_xsputn ; CODE XREF: _IO_wfile_xsputn+114p .text:0002EC7C MOV R12, SP .text:0002EC80 STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:0002EC84 SUB R11, R12, #4 .text:0002EC88 MOV R6, R1 .text:0002EC8C MOV R8, R2 .text:0002EC90 SUBS R5, R8, #0 .text:0002EC94 MOV R7, R0 .text:0002EC98 MOVEQ R0, R8 .text:0002EC9C LDMEQDB R11, {R4-R8,R11,SP,PC} .text:0002ECA0 .text:0002ECA0 loc_2ECA0 ; CODE XREF: _IO_wdefault_xsputn+B8j .text:0002ECA0 LDR R2, [R7,#0x58] .text:0002ECA4 ADD R1, R2, #0x14 .text:0002ECA8 LDMDA R1, {R1,R3} .text:0002ECAC SUB R3, R3, R1 .text:0002ECB0 LDR R0, [R2,#0x10] .text:0002ECB4 MOV R4, R3,ASR#2 .text:0002ECB8 CMP R4, #0 .text:0002ECBC BLE loc_2ED18 .text:0002ECC0 CMP R4, R5 .text:0002ECC4 MOVCS R4, R5 .text:0002ECC8 CMP R4, #0x14 .text:0002ECCC BLE loc_2ECE8 .text:0002ECD0 MOV R1, R6 .text:0002ECD4 MOV R2, R4 .text:0002ECD8 BL wmempcpy .text:0002ECDC LDR R3, [R7,#0x58] .text:0002ECE0 ADD R6, R6, R4,LSL#2 .text:0002ECE4 B loc_2ED10 .text:0002ECE8 ; --------------------------------------------------------------------------- .text:0002ECE8 .text:0002ECE8 loc_2ECE8 ; CODE XREF: _IO_wdefault_xsputn+50j .text:0002ECE8 CMP R4, #0 .text:0002ECEC MOVLE R4, #0 .text:0002ECF0 BLE loc_2ED14 .text:0002ECF4 SUBS R2, R4, #1 .text:0002ECF8 BMI loc_2ED0C .text:0002ECFC .text:0002ECFC loc_2ECFC ; CODE XREF: _IO_wdefault_xsputn+8Cj .text:0002ECFC LDR R3, [R6],#4 .text:0002ED00 SUBS R2, R2, #1 .text:0002ED04 STR R3, [R0],#4 .text:0002ED08 BPL loc_2ECFC .text:0002ED0C .text:0002ED0C loc_2ED0C ; CODE XREF: _IO_wdefault_xsputn+7Cj .text:0002ED0C LDR R3, [R7,#0x58] .text:0002ED10 .text:0002ED10 loc_2ED10 ; CODE XREF: _IO_wdefault_xsputn+68j .text:0002ED10 STR R0, [R3,#0x10] .text:0002ED14 .text:0002ED14 loc_2ED14 ; CODE XREF: _IO_wdefault_xsputn+74j .text:0002ED14 RSB R5, R4, R5 .text:0002ED18 .text:0002ED18 loc_2ED18 ; CODE XREF: _IO_wdefault_xsputn+40j .text:0002ED18 CMP R5, #0 .text:0002ED1C BEQ loc_2ED38 .text:0002ED20 LDR R1, [R6],#4 .text:0002ED24 MOV R0, R7 .text:0002ED28 BL __woverflow .text:0002ED2C CMN R0, #1 .text:0002ED30 SUBNE R5, R5, #1 .text:0002ED34 BNE loc_2ECA0 .text:0002ED38 .text:0002ED38 loc_2ED38 ; CODE XREF: _IO_wdefault_xsputn+A0j .text:0002ED38 RSB R0, R5, R8 .text:0002ED3C LDMDB R11, {R4-R8,R11,SP,PC} .text:0002ED3C ; End of function _IO_wdefault_xsputn .text:0002ED3C .text:0002ED40 .text:0002ED40 ; =============== S U B R O U T I N E ======================================= .text:0002ED40 .text:0002ED40 ; Attributes: bp-based frame .text:0002ED40 .text:0002ED40 EXPORT _IO_wdefault_xsgetn .text:0002ED40 _IO_wdefault_xsgetn .text:0002ED40 MOV R12, SP .text:0002ED44 STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:0002ED48 SUB R11, R12, #4 .text:0002ED4C MOV R7, R0 .text:0002ED50 MOV R8, R2 .text:0002ED54 MOV R5, R8 .text:0002ED58 MOV R6, R1 .text:0002ED5C .text:0002ED5C loc_2ED5C ; CODE XREF: _IO_wdefault_xsgetn+B0j .text:0002ED5C LDR R2, [R7,#0x58] .text:0002ED60 LDMIA R2, {R1,R3} .text:0002ED64 SUB R3, R3, R1 .text:0002ED68 LDR R1, [R2] .text:0002ED6C MOV R4, R3,ASR#2 .text:0002ED70 CMP R4, #0 .text:0002ED74 BLE loc_2EDDC .text:0002ED78 CMP R4, R5 .text:0002ED7C MOVCS R4, R5 .text:0002ED80 CMP R4, #0x14 .text:0002ED84 BLE loc_2EDAC .text:0002ED88 MOV R0, R6 .text:0002ED8C MOV R2, R4 .text:0002ED90 BL wmempcpy .text:0002ED94 LDR R2, [R7,#0x58] .text:0002ED98 LDR R3, [R2] .text:0002ED9C MOV R6, R0 .text:0002EDA0 ADD R3, R3, R4,LSL#2 .text:0002EDA4 STR R3, [R2] .text:0002EDA8 B loc_2EDD8 .text:0002EDAC ; --------------------------------------------------------------------------- .text:0002EDAC .text:0002EDAC loc_2EDAC ; CODE XREF: _IO_wdefault_xsgetn+44j .text:0002EDAC CMP R4, #0 .text:0002EDB0 MOVLE R4, #0 .text:0002EDB4 BLE loc_2EDD8 .text:0002EDB8 SUBS R0, R4, #1 .text:0002EDBC BMI loc_2EDD0 .text:0002EDC0 .text:0002EDC0 loc_2EDC0 ; CODE XREF: _IO_wdefault_xsgetn+8Cj .text:0002EDC0 LDR R3, [R1],#4 .text:0002EDC4 SUBS R0, R0, #1 .text:0002EDC8 STR R3, [R6],#4 .text:0002EDCC BPL loc_2EDC0 .text:0002EDD0 .text:0002EDD0 loc_2EDD0 ; CODE XREF: _IO_wdefault_xsgetn+7Cj .text:0002EDD0 LDR R3, [R7,#0x58] .text:0002EDD4 STR R1, [R3] .text:0002EDD8 .text:0002EDD8 loc_2EDD8 ; CODE XREF: _IO_wdefault_xsgetn+68j .text:0002EDD8 ; _IO_wdefault_xsgetn+74j .text:0002EDD8 RSB R5, R4, R5 .text:0002EDDC .text:0002EDDC loc_2EDDC ; CODE XREF: _IO_wdefault_xsgetn+34j .text:0002EDDC CMP R5, #0 .text:0002EDE0 BEQ loc_2EDF4 .text:0002EDE4 MOV R0, R7 .text:0002EDE8 BL __wunderflow .text:0002EDEC CMN R0, #1 .text:0002EDF0 BNE loc_2ED5C .text:0002EDF4 .text:0002EDF4 loc_2EDF4 ; CODE XREF: _IO_wdefault_xsgetn+A0j .text:0002EDF4 RSB R0, R5, R8 .text:0002EDF8 LDMDB R11, {R4-R8,R11,SP,PC} .text:0002EDF8 ; End of function _IO_wdefault_xsgetn .text:0002EDF8 .text:0002EDFC .text:0002EDFC ; =============== S U B R O U T I N E ======================================= .text:0002EDFC .text:0002EDFC ; Attributes: bp-based frame .text:0002EDFC .text:0002EDFC EXPORT _IO_wdoallocbuf .text:0002EDFC _IO_wdoallocbuf ; CODE XREF: _IO_wfile_underflow+1B4p .text:0002EDFC ; _IO_wfile_overflow+58p .text:0002EDFC MOV R12, SP .text:0002EE00 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0002EE04 MOV R4, R0 .text:0002EE08 LDR R2, [R4,#0x58] .text:0002EE0C LDR R5, [R2,#0x18] .text:0002EE10 SUB R11, R12, #4 .text:0002EE14 CMP R5, #0 .text:0002EE18 LDMNEDB R11, {R4,R5,R11,SP,PC} .text:0002EE1C LDR R3, [R4] .text:0002EE20 TST R3, #2 .text:0002EE24 BNE loc_2EE3C .text:0002EE28 LDR R3, [R2,#0xB8] .text:0002EE2C MOV LR, PC .text:0002EE30 LDR PC, [R3,#0x34] .text:0002EE34 CMN R0, #1 .text:0002EE38 LDMNEDB R11, {R4,R5,R11,SP,PC} .text:0002EE3C .text:0002EE3C loc_2EE3C ; CODE XREF: _IO_wdoallocbuf+28j .text:0002EE3C MOV R0, R4 .text:0002EE40 LDR R2, [R4,#0x58] .text:0002EE44 MOV R3, R5 .text:0002EE48 ADD R1, R2, #0xB4 .text:0002EE4C ADD R2, R2, #0xB8 .text:0002EE50 BL _IO_wsetb .text:0002EE54 LDMDB R11, {R4,R5,R11,SP,PC} .text:0002EE54 ; End of function _IO_wdoallocbuf .text:0002EE54 .text:0002EE58 .text:0002EE58 ; =============== S U B R O U T I N E ======================================= .text:0002EE58 .text:0002EE58 ; Attributes: bp-based frame .text:0002EE58 .text:0002EE58 EXPORT _IO_wdefault_setbuf .text:0002EE58 _IO_wdefault_setbuf ; CODE XREF: _IO_wfile_setbuf+10p .text:0002EE58 MOV R12, SP .text:0002EE5C STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:0002EE60 SUB R11, R12, #4 .text:0002EE64 MOV R4, R0 .text:0002EE68 LDRB R3, [R4,#0x46] .text:0002EE6C MOV R6, R1 .text:0002EE70 MOV R3, R3,LSL#24 .text:0002EE74 ADD R3, R4, R3,ASR#24 .text:0002EE78 LDR R1, [R3,#0x94] .text:0002EE7C MOV R5, R2 .text:0002EE80 MOV LR, PC .text:0002EE84 LDR PC, [R1,#0x30] .text:0002EE88 CMN R0, #1 .text:0002EE8C MOVEQ R0, #0 .text:0002EE90 LDMEQDB R11, {R4-R6,R11,SP,PC} .text:0002EE94 CMP R5, #0 .text:0002EE98 MOVNE R3, #0 .text:0002EE9C MOVEQ R3, #1 .text:0002EEA0 CMP R6, #0 .text:0002EEA4 MOVNE R12, R3 .text:0002EEA8 MOVEQ R12, #1 .text:0002EEAC CMP R12, #0 .text:0002EEB0 BEQ loc_2EEDC .text:0002EEB4 LDR R3, [R4] .text:0002EEB8 ORR R3, R3, #2 .text:0002EEBC STR R3, [R4] .text:0002EEC0 MOV R0, R4 .text:0002EEC4 LDR R2, [R4,#0x58] .text:0002EEC8 MOV R3, #0 .text:0002EECC ADD R1, R2, #0xB4 .text:0002EED0 ADD R2, R2, #0xB8 .text:0002EED4 BL _IO_wsetb .text:0002EED8 B loc_2EEFC .text:0002EEDC ; --------------------------------------------------------------------------- .text:0002EEDC .text:0002EEDC loc_2EEDC ; CODE XREF: _IO_wdefault_setbuf+58j .text:0002EEDC LDR R3, [R4] .text:0002EEE0 BIC R3, R3, #2 .text:0002EEE4 STR R3, [R4] .text:0002EEE8 MOV R0, R4 .text:0002EEEC MOV R1, R6 .text:0002EEF0 ADD R2, R1, R5,LSL#2 .text:0002EEF4 MOV R3, R12 .text:0002EEF8 BL _IO_wsetb .text:0002EEFC .text:0002EEFC loc_2EEFC ; CODE XREF: _IO_wdefault_setbuf+80j .text:0002EEFC LDR R3, [R4,#0x58] .text:0002EF00 MOV R1, #0 .text:0002EF04 STR R1, [R3,#0x14] .text:0002EF08 STR R1, [R3,#0x10] .text:0002EF0C STR R1, [R3,#0xC] .text:0002EF10 LDR R2, [R4,#0x58] .text:0002EF14 STR R1, [R2,#4] .text:0002EF18 STR R1, [R2] .text:0002EF1C MOV R0, R4 .text:0002EF20 STR R1, [R2,#8] .text:0002EF24 LDMDB R11, {R4-R6,R11,SP,PC} .text:0002EF24 ; End of function _IO_wdefault_setbuf .text:0002EF24 .text:0002EF28 .text:0002EF28 ; =============== S U B R O U T I N E ======================================= .text:0002EF28 .text:0002EF28 ; Attributes: bp-based frame .text:0002EF28 .text:0002EF28 EXPORT _IO_wdefault_doallocate .text:0002EF28 _IO_wdefault_doallocate .text:0002EF28 .text:0002EF28 var_1C = -0x1C .text:0002EF28 var_18 = -0x18 .text:0002EF28 .text:0002EF28 MOV R12, SP .text:0002EF2C STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0002EF30 SUB R11, R12, #4 .text:0002EF34 MOV R5, R0 .text:0002EF38 SUB SP, SP, #8 .text:0002EF3C MOV R4, 0xFFFFFFFF .text:0002EF40 STR R4, [SP,#0x1C+var_1C] .text:0002EF44 MOV R0, #0 .text:0002EF48 STR R0, [SP,#0x1C+var_18] .text:0002EF4C MOV R1, #0x2000 .text:0002EF50 MOV R2, #3 .text:0002EF54 MOV R3, #0x22 .text:0002EF58 BL mmap .text:0002EF5C MOV R1, R0 .text:0002EF60 CMP R1, R4 .text:0002EF64 BEQ loc_2EF80 .text:0002EF68 MOV R0, R5 .text:0002EF6C ADD R2, R1, #0x8000 .text:0002EF70 MOV R3, #1 .text:0002EF74 BL _IO_wsetb .text:0002EF78 MOV R0, #1 .text:0002EF7C B locret_2EF84 .text:0002EF80 ; --------------------------------------------------------------------------- .text:0002EF80 .text:0002EF80 loc_2EF80 ; CODE XREF: _IO_wdefault_doallocate+3Cj .text:0002EF80 MOV R0, R4 .text:0002EF84 .text:0002EF84 locret_2EF84 ; CODE XREF: _IO_wdefault_doallocate+54j .text:0002EF84 LDMDB R11, {R4,R5,R11,SP,PC} .text:0002EF84 ; End of function _IO_wdefault_doallocate .text:0002EF84 .text:0002EF88 .text:0002EF88 ; =============== S U B R O U T I N E ======================================= .text:0002EF88 .text:0002EF88 ; Attributes: bp-based frame .text:0002EF88 .text:0002EF88 EXPORT _IO_switch_to_wget_mode .text:0002EF88 _IO_switch_to_wget_mode ; CODE XREF: __wuflow+58p .text:0002EF88 ; __wunderflow+58p ... .text:0002EF88 MOV R12, SP .text:0002EF8C STMFD SP!, {R4,R11,R12,LR,PC} .text:0002EF90 MOV R4, R0 .text:0002EF94 LDR R1, [R4,#0x58] .text:0002EF98 LDR R2, [R1,#0x10] .text:0002EF9C LDR R3, [R1,#0xC] .text:0002EFA0 SUB R11, R12, #4 .text:0002EFA4 CMP R2, R3 .text:0002EFA8 BLS loc_2EFC4 .text:0002EFAC LDR R3, [R1,#0xB8] .text:0002EFB0 MOV R1, 0xFFFFFFFF .text:0002EFB4 MOV LR, PC .text:0002EFB8 LDR PC, [R3,#0xC] .text:0002EFBC CMN R0, #1 .text:0002EFC0 LDMEQDB R11, {R4,R11,SP,PC} .text:0002EFC4 .text:0002EFC4 loc_2EFC4 ; CODE XREF: _IO_switch_to_wget_mode+20j .text:0002EFC4 LDR R3, [R4] .text:0002EFC8 TST R3, #0x100 .text:0002EFCC LDRNE R2, [R4,#0x58] .text:0002EFD0 LDRNE R3, [R2,#0x24] .text:0002EFD4 STRNE R3, [R2,#8] .text:0002EFD8 BNE loc_2EFFC .text:0002EFDC LDR R3, [R4,#0x58] .text:0002EFE0 LDR R2, [R3,#0x18] .text:0002EFE4 STR R2, [R3,#8] .text:0002EFE8 LDR R2, [R4,#0x58] .text:0002EFEC LDR R1, [R2,#0x10] .text:0002EFF0 LDR R3, [R2,#4] .text:0002EFF4 CMP R1, R3 .text:0002EFF8 STRHI R1, [R2,#4] .text:0002EFFC .text:0002EFFC loc_2EFFC ; CODE XREF: _IO_switch_to_wget_mode+50j .text:0002EFFC LDR R2, [R4,#0x58] .text:0002F000 LDR R3, [R2,#0x10] .text:0002F004 STR R3, [R2] .text:0002F008 LDR R1, [R4,#0x58] .text:0002F00C LDR R3, [R1] .text:0002F010 STR R3, [R1,#0x14] .text:0002F014 STR R3, [R1,#0x10] .text:0002F018 STR R3, [R1,#0xC] .text:0002F01C LDR R2, [R4] .text:0002F020 MOV R0, #0 .text:0002F024 BIC R2, R2, #0x800 .text:0002F028 STR R2, [R4] .text:0002F02C LDMDB R11, {R4,R11,SP,PC} .text:0002F02C ; End of function _IO_switch_to_wget_mode .text:0002F02C .text:0002F030 .text:0002F030 ; =============== S U B R O U T I N E ======================================= .text:0002F030 .text:0002F030 ; Attributes: bp-based frame .text:0002F030 .text:0002F030 EXPORT _IO_free_wbackup_area .text:0002F030 _IO_free_wbackup_area ; CODE XREF: __wuflow+E4p .text:0002F030 ; __wunderflow+DCp ... .text:0002F030 MOV R12, SP .text:0002F034 STMFD SP!, {R4,R11,R12,LR,PC} .text:0002F038 MOV R4, R0 .text:0002F03C LDR R3, [R4] .text:0002F040 SUB R11, R12, #4 .text:0002F044 TST R3, #0x100 .text:0002F048 BEQ loc_2F050 .text:0002F04C BL _IO_switch_to_main_wget_area .text:0002F050 .text:0002F050 loc_2F050 ; CODE XREF: _IO_free_wbackup_area+18j .text:0002F050 LDR R3, [R4,#0x58] .text:0002F054 LDR R0, [R3,#0x20] .text:0002F058 BL free .text:0002F05C LDR R2, [R4,#0x58] .text:0002F060 MOV R1, #0 .text:0002F064 STR R1, [R2,#0x20] .text:0002F068 LDR R3, [R4,#0x58] .text:0002F06C STR R1, [R3,#0x28] .text:0002F070 LDR R2, [R4,#0x58] .text:0002F074 STR R1, [R2,#0x24] .text:0002F078 LDMDB R11, {R4,R11,SP,PC} .text:0002F078 ; End of function _IO_free_wbackup_area .text:0002F078 .text:0002F07C .text:0002F07C ; =============== S U B R O U T I N E ======================================= .text:0002F07C .text:0002F07C ; Attributes: bp-based frame .text:0002F07C .text:0002F07C save_for_wbackup ; CODE XREF: _IO_wdefault_pbackfail+80p .text:0002F07C ; __wuflow+BCp ... .text:0002F07C MOV R12, SP .text:0002F080 STMFD SP!, {R4-R12,LR,PC} .text:0002F084 SUB R11, R12, #4 .text:0002F088 MOV R7, R0 .text:0002F08C MOV R10, R1 .text:0002F090 BL _IO_least_wmarker .text:0002F094 LDR R3, [R7,#0x58] .text:0002F098 LDR R12, [R3,#8] .text:0002F09C LDR R1, [R3,#0x28] .text:0002F0A0 MOV R6, R0 .text:0002F0A4 LDR R0, [R3,#0x20] .text:0002F0A8 RSB R2, R12, R10 .text:0002F0AC RSB R5, R6, R2,ASR#2 .text:0002F0B0 RSB R3, R0, R1 .text:0002F0B4 MOV R3, R3,ASR#2 .text:0002F0B8 CMP R5, R3 .text:0002F0BC BLS loc_2F170 .text:0002F0C0 MOV R4, #0x64 .text:0002F0C4 ADD R0, R5, R4 .text:0002F0C8 MOV R0, R0,LSL#2 .text:0002F0CC BL malloc .text:0002F0D0 SUBS R8, R0, #0 .text:0002F0D4 MOVEQ R0, 0xFFFFFFFF .text:0002F0D8 LDMEQDB R11, {R4-R11,SP,PC} .text:0002F0DC CMP R6, #0 .text:0002F0E0 BGE loc_2F120 .text:0002F0E4 MOV R4, R4,LSL#2 .text:0002F0E8 LDR R3, [R7,#0x58] .text:0002F0EC ADD R0, R8, R4 .text:0002F0F0 LDR R1, [R3,#0x28] .text:0002F0F4 RSB R2, R6, #0 .text:0002F0F8 ADD R1, R1, R6,LSL#2 .text:0002F0FC BL wmempcpy .text:0002F100 LDR R3, [R7,#0x58] .text:0002F104 LDR R2, [R3,#8] .text:0002F108 MOV R9, R4 .text:0002F10C MOV R1, R2 .text:0002F110 RSB R2, R2, R10 .text:0002F114 MOV R2, R2,ASR#2 .text:0002F118 BL wmempcpy .text:0002F11C B loc_2F140 .text:0002F120 ; --------------------------------------------------------------------------- .text:0002F120 .text:0002F120 loc_2F120 ; CODE XREF: save_for_wbackup+64j .text:0002F120 MOV R3, R4,LSL#2 .text:0002F124 ADD R0, R8, R3 .text:0002F128 MOV R2, R5 .text:0002F12C LDR R12, [R7,#0x58] .text:0002F130 LDR R1, [R12,#8] .text:0002F134 MOV R9, R3 .text:0002F138 ADD R1, R1, R6,LSL#2 .text:0002F13C BL wmemcpy .text:0002F140 .text:0002F140 loc_2F140 ; CODE XREF: save_for_wbackup+A0j .text:0002F140 LDR R3, [R7,#0x58] .text:0002F144 LDR R0, [R3,#0x20] .text:0002F148 CMP R0, #0 .text:0002F14C BEQ loc_2F154 .text:0002F150 BL free .text:0002F154 .text:0002F154 loc_2F154 ; CODE XREF: save_for_wbackup+D0j .text:0002F154 LDR R3, [R7,#0x58] .text:0002F158 STR R8, [R3,#0x20] .text:0002F15C ADD R2, R8, R9 .text:0002F160 LDR R3, [R7,#0x58] .text:0002F164 ADD R2, R2, R5,LSL#2 .text:0002F168 STR R2, [R3,#0x28] .text:0002F16C B loc_2F1DC .text:0002F170 ; --------------------------------------------------------------------------- .text:0002F170 .text:0002F170 loc_2F170 ; CODE XREF: save_for_wbackup+40j .text:0002F170 RSB R4, R5, R3 .text:0002F174 CMP R6, #0 .text:0002F178 BGE loc_2F1C0 .text:0002F17C MOV R4, R4,LSL#2 .text:0002F180 ADD R0, R0, R4 .text:0002F184 MOV R5, R6,LSL#2 .text:0002F188 ADD R1, R1, R5 .text:0002F18C RSB R2, R6, #0 .text:0002F190 BL wmemmove .text:0002F194 LDR R3, [R7,#0x58] .text:0002F198 LDR R0, [R3,#0x20] .text:0002F19C MOV R9, R4 .text:0002F1A0 LDR R2, [R3,#8] .text:0002F1A4 ADD R0, R0, R4 .text:0002F1A8 RSB R0, R5, R0 .text:0002F1AC MOV R1, R2 .text:0002F1B0 RSB R2, R2, R10 .text:0002F1B4 MOV R2, R2,ASR#2 .text:0002F1B8 BL wmemcpy .text:0002F1BC B loc_2F1DC .text:0002F1C0 ; --------------------------------------------------------------------------- .text:0002F1C0 .text:0002F1C0 loc_2F1C0 ; CODE XREF: save_for_wbackup+FCj .text:0002F1C0 CMP R5, #0 .text:0002F1C4 MOV R9, R4,LSL#2 .text:0002F1C8 BEQ loc_2F1DC .text:0002F1CC ADD R0, R0, R9 .text:0002F1D0 ADD R1, R12, R6,LSL#2 .text:0002F1D4 MOV R2, R5 .text:0002F1D8 BL wmemcpy .text:0002F1DC .text:0002F1DC loc_2F1DC ; CODE XREF: save_for_wbackup+F0j .text:0002F1DC ; save_for_wbackup+140j ... .text:0002F1DC LDR R2, [R7,#0x58] .text:0002F1E0 LDR R3, [R2,#0x20] .text:0002F1E4 ADD R3, R3, R9 .text:0002F1E8 STR R3, [R2,#0x24] .text:0002F1EC LDR R2, [R7,#0x58] .text:0002F1F0 LDR R12, [R7,#0x30] .text:0002F1F4 LDR R3, [R2,#8] .text:0002F1F8 CMP R12, #0 .text:0002F1FC RSB R3, R3, R10 .text:0002F200 MOV R0, R3,ASR#2 .text:0002F204 BEQ loc_2F220 .text:0002F208 .text:0002F208 loc_2F208 ; CODE XREF: save_for_wbackup+1A0j .text:0002F208 LDR R3, [R12,#8] .text:0002F20C RSB R3, R0, R3 .text:0002F210 STR R3, [R12,#8] .text:0002F214 LDR R12, [R12] .text:0002F218 CMP R12, #0 .text:0002F21C BNE loc_2F208 .text:0002F220 .text:0002F220 loc_2F220 ; CODE XREF: save_for_wbackup+188j .text:0002F220 MOV R0, #0 .text:0002F224 LDMDB R11, {R4-R11,SP,PC} .text:0002F224 ; End of function save_for_wbackup .text:0002F224 .text:0002F228 .text:0002F228 ; =============== S U B R O U T I N E ======================================= .text:0002F228 .text:0002F228 ; Attributes: bp-based frame .text:0002F228 .text:0002F228 EXPORT _IO_sputbackwc .text:0002F228 _IO_sputbackwc .text:0002F228 MOV R12, SP .text:0002F22C STMFD SP!, {R4,R11,R12,LR,PC} .text:0002F230 SUB R11, R12, #4 .text:0002F234 MOV R4, R0 .text:0002F238 LDR R12, [R4,#0x58] .text:0002F23C LDR R2, [R12] .text:0002F240 LDR R3, [R12,#8] .text:0002F244 CMP R2, R3 .text:0002F248 BLS loc_2F264 .text:0002F24C LDR R3, [R2,#-4] .text:0002F250 CMP R3, R1 .text:0002F254 MOVEQ R0, R1 .text:0002F258 SUBEQ R3, R2, #4 .text:0002F25C STREQ R3, [R12] .text:0002F260 BEQ loc_2F280 .text:0002F264 .text:0002F264 loc_2F264 ; CODE XREF: _IO_sputbackwc+20j .text:0002F264 LDRB R3, [R4,#0x46] .text:0002F268 MOV R3, R3,LSL#24 .text:0002F26C ADD R3, R4, R3,ASR#24 .text:0002F270 LDR R2, [R3,#0x94] .text:0002F274 MOV R0, R4 .text:0002F278 MOV LR, PC .text:0002F27C LDR PC, [R2,#0x18] .text:0002F280 .text:0002F280 loc_2F280 ; CODE XREF: _IO_sputbackwc+38j .text:0002F280 CMN R0, #1 .text:0002F284 LDMEQDB R11, {R4,R11,SP,PC} .text:0002F288 LDR R3, [R4] .text:0002F28C BIC R3, R3, #0x10 .text:0002F290 STR R3, [R4] .text:0002F294 LDMDB R11, {R4,R11,SP,PC} .text:0002F294 ; End of function _IO_sputbackwc .text:0002F294 .text:0002F298 .text:0002F298 ; =============== S U B R O U T I N E ======================================= .text:0002F298 .text:0002F298 ; Attributes: bp-based frame .text:0002F298 .text:0002F298 EXPORT _IO_sungetwc .text:0002F298 _IO_sungetwc .text:0002F298 MOV R12, SP .text:0002F29C STMFD SP!, {R4,R11,R12,LR,PC} .text:0002F2A0 MOV R4, R0 .text:0002F2A4 LDR R2, [R4,#0x58] .text:0002F2A8 LDR R1, [R2] .text:0002F2AC LDR R3, [R2,#8] .text:0002F2B0 SUB R11, R12, #4 .text:0002F2B4 CMP R1, R3 .text:0002F2B8 BLS loc_2F2D4 .text:0002F2BC SUB R3, R1, #4 .text:0002F2C0 STR R3, [R2] .text:0002F2C4 LDR R2, [R4,#0x58] .text:0002F2C8 LDR R3, [R2] .text:0002F2CC LDR R0, [R3] .text:0002F2D0 B loc_2F2F4 .text:0002F2D4 ; --------------------------------------------------------------------------- .text:0002F2D4 .text:0002F2D4 loc_2F2D4 ; CODE XREF: _IO_sungetwc+20j .text:0002F2D4 LDRB R3, [R4,#0x46] .text:0002F2D8 MOV R0, R4 .text:0002F2DC MOV R3, R3,LSL#24 .text:0002F2E0 ADD R3, R4, R3,ASR#24 .text:0002F2E4 LDR R2, [R3,#0x94] .text:0002F2E8 MOV R1, 0xFFFFFFFF .text:0002F2EC MOV LR, PC .text:0002F2F0 LDR PC, [R2,#0x18] .text:0002F2F4 .text:0002F2F4 loc_2F2F4 ; CODE XREF: _IO_sungetwc+38j .text:0002F2F4 CMN R0, #1 .text:0002F2F8 LDMEQDB R11, {R4,R11,SP,PC} .text:0002F2FC LDR R3, [R4] .text:0002F300 BIC R3, R3, #0x10 .text:0002F304 STR R3, [R4] .text:0002F308 LDMDB R11, {R4,R11,SP,PC} .text:0002F308 ; End of function _IO_sungetwc .text:0002F308 .text:0002F30C .text:0002F30C ; =============== S U B R O U T I N E ======================================= .text:0002F30C .text:0002F30C ; Attributes: bp-based frame .text:0002F30C .text:0002F30C EXPORT _IO_adjust_wcolumn .text:0002F30C _IO_adjust_wcolumn .text:0002F30C MOV R12, SP .text:0002F310 STMFD SP!, {R11,R12,LR,PC} .text:0002F314 SUB R11, R12, #4 .text:0002F318 ADD R12, R1, R2,LSL#2 .text:0002F31C CMP R12, R1 .text:0002F320 MOV LR, R0 .text:0002F324 BLS loc_2F34C .text:0002F328 MOV R0, R12 .text:0002F32C .text:0002F32C loc_2F32C ; CODE XREF: _IO_adjust_wcolumn+3Cj .text:0002F32C LDR R3, [R12,#-4]! .text:0002F330 CMP R3, #0xA .text:0002F334 RSBEQ R0, R12, R0 .text:0002F338 MOVEQ R0, R0,ASR#2 .text:0002F33C SUBEQ R0, R0, #1 .text:0002F340 LDMEQDB R11, {R11,SP,PC} .text:0002F344 CMP R12, R1 .text:0002F348 BHI loc_2F32C .text:0002F34C .text:0002F34C loc_2F34C ; CODE XREF: _IO_adjust_wcolumn+18j .text:0002F34C ADD R0, LR, R2 .text:0002F350 LDMDB R11, {R11,SP,PC} .text:0002F350 ; End of function _IO_adjust_wcolumn .text:0002F350 .text:0002F354 .text:0002F354 ; =============== S U B R O U T I N E ======================================= .text:0002F354 .text:0002F354 ; Attributes: bp-based frame .text:0002F354 .text:0002F354 EXPORT _IO_init_wmarker .text:0002F354 _IO_init_wmarker .text:0002F354 MOV R12, SP .text:0002F358 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0002F35C MOV R5, R0 .text:0002F360 MOV R4, R1 .text:0002F364 STR R4, [R5,#4] .text:0002F368 LDR R3, [R4] .text:0002F36C SUB R11, R12, #4 .text:0002F370 TST R3, #0x800 .text:0002F374 BEQ loc_2F380 .text:0002F378 MOV R0, R4 .text:0002F37C BL _IO_switch_to_wget_mode .text:0002F380 .text:0002F380 loc_2F380 ; CODE XREF: _IO_init_wmarker+20j .text:0002F380 LDR R3, [R4] .text:0002F384 TST R3, #0x100 .text:0002F388 BEQ loc_2F3A4 .text:0002F38C LDR R2, [R4,#0x58] .text:0002F390 LDMIA R2, {R1,R3} .text:0002F394 SUB R3, R1, R3 .text:0002F398 MOV R3, R3,ASR#2 .text:0002F39C STR R3, [R5,#8] .text:0002F3A0 B loc_2F3BC .text:0002F3A4 ; --------------------------------------------------------------------------- .text:0002F3A4 .text:0002F3A4 loc_2F3A4 ; CODE XREF: _IO_init_wmarker+34j .text:0002F3A4 LDR R3, [R4,#0x58] .text:0002F3A8 LDR R2, [R3] .text:0002F3AC LDR R1, [R3,#8] .text:0002F3B0 RSB R2, R1, R2 .text:0002F3B4 MOV R2, R2,ASR#2 .text:0002F3B8 STR R2, [R5,#8] .text:0002F3BC .text:0002F3BC loc_2F3BC ; CODE XREF: _IO_init_wmarker+4Cj .text:0002F3BC LDR R3, [R4,#0x30] .text:0002F3C0 STR R3, [R5] .text:0002F3C4 STR R5, [R4,#0x30] .text:0002F3C8 LDMDB R11, {R4,R5,R11,SP,PC} .text:0002F3C8 ; End of function _IO_init_wmarker .text:0002F3C8 .text:0002F3CC .text:0002F3CC ; =============== S U B R O U T I N E ======================================= .text:0002F3CC .text:0002F3CC ; Attributes: bp-based frame .text:0002F3CC .text:0002F3CC EXPORT _IO_wmarker_delta .text:0002F3CC _IO_wmarker_delta .text:0002F3CC MOV R12, SP .text:0002F3D0 STMFD SP!, {R11,R12,LR,PC} .text:0002F3D4 LDR R2, [R0,#4] .text:0002F3D8 SUB R11, R12, #4 .text:0002F3DC CMP R2, #0 .text:0002F3E0 MOVEQ R0, 0xFFFFFFFF .text:0002F3E4 LDMEQDB R11, {R11,SP,PC} .text:0002F3E8 LDR R3, [R2] .text:0002F3EC TST R3, #0x100 .text:0002F3F0 LDRNE R3, [R2,#0x58] .text:0002F3F4 LDMNEIA R3, {R1,R2} .text:0002F3F8 SUBNE R2, R1, R2 .text:0002F3FC LDREQ R3, [R2,#0x58] .text:0002F400 LDREQ R2, [R3] .text:0002F404 LDREQ R1, [R3,#8] .text:0002F408 RSBEQ R2, R1, R2 .text:0002F40C MOV R2, R2,ASR#2 .text:0002F410 LDR R0, [R0,#8] .text:0002F414 RSB R0, R2, R0 .text:0002F418 LDMDB R11, {R11,SP,PC} .text:0002F418 ; End of function _IO_wmarker_delta .text:0002F418 .text:0002F41C .text:0002F41C ; =============== S U B R O U T I N E ======================================= .text:0002F41C .text:0002F41C ; Attributes: bp-based frame .text:0002F41C .text:0002F41C EXPORT _IO_seekwmark .text:0002F41C _IO_seekwmark .text:0002F41C MOV R12, SP .text:0002F420 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0002F424 MOV R5, R1 .text:0002F428 LDR R4, [R5,#4] .text:0002F42C SUB R11, R12, #4 .text:0002F430 CMP R4, R0 .text:0002F434 MOVNE R0, 0xFFFFFFFF .text:0002F438 LDMNEDB R11, {R4,R5,R11,SP,PC} .text:0002F43C LDR R3, [R5,#8] .text:0002F440 CMP R3, #0 .text:0002F444 BLT loc_2F46C .text:0002F448 LDR R3, [R4] .text:0002F44C TST R3, #0x100 .text:0002F450 BEQ loc_2F45C .text:0002F454 MOV R0, R4 .text:0002F458 BL _IO_switch_to_main_wget_area .text:0002F45C .text:0002F45C loc_2F45C ; CODE XREF: _IO_seekwmark+34j .text:0002F45C LDR R1, [R4,#0x58] .text:0002F460 LDR R2, [R5,#8] .text:0002F464 LDR R3, [R1,#8] .text:0002F468 B loc_2F48C .text:0002F46C ; --------------------------------------------------------------------------- .text:0002F46C .text:0002F46C loc_2F46C ; CODE XREF: _IO_seekwmark+28j .text:0002F46C LDR R3, [R4] .text:0002F470 TST R3, #0x100 .text:0002F474 BNE loc_2F480 .text:0002F478 MOV R0, R4 .text:0002F47C BL _IO_switch_to_wbackup_area .text:0002F480 .text:0002F480 loc_2F480 ; CODE XREF: _IO_seekwmark+58j .text:0002F480 LDR R1, [R4,#0x58] .text:0002F484 LDR R2, [R5,#8] .text:0002F488 LDR R3, [R1,#4] .text:0002F48C .text:0002F48C loc_2F48C ; CODE XREF: _IO_seekwmark+4Cj .text:0002F48C ADD R3, R3, R2,LSL#2 .text:0002F490 STR R3, [R1] .text:0002F494 MOV R0, #0 .text:0002F498 LDMDB R11, {R4,R5,R11,SP,PC} .text:0002F498 ; End of function _IO_seekwmark .text:0002F498 .text:0002F49C .text:0002F49C ; =============== S U B R O U T I N E ======================================= .text:0002F49C .text:0002F49C ; Attributes: bp-based frame .text:0002F49C .text:0002F49C EXPORT _IO_unsave_wmarkers .text:0002F49C _IO_unsave_wmarkers .text:0002F49C MOV R12, SP .text:0002F4A0 STMFD SP!, {R11,R12,LR,PC} .text:0002F4A4 LDR R3, [R0,#0x30] .text:0002F4A8 SUB R11, R12, #4 .text:0002F4AC CMP R3, #0 .text:0002F4B0 MOVNE R3, #0 .text:0002F4B4 STRNE R3, [R0,#0x30] .text:0002F4B8 LDR R3, [R0,#0x24] .text:0002F4BC CMP R3, #0 .text:0002F4C0 LDMEQDB R11, {R11,SP,PC} .text:0002F4C4 BL _IO_free_wbackup_area .text:0002F4C8 LDMDB R11, {R11,SP,PC} .text:0002F4C8 ; End of function _IO_unsave_wmarkers .text:0002F4C8 .text:0002F4CC .text:0002F4CC ; =============== S U B R O U T I N E ======================================= .text:0002F4CC .text:0002F4CC ; Attributes: bp-based frame .text:0002F4CC .text:0002F4CC EXPORT _IO_wfile_setbuf .text:0002F4CC _IO_wfile_setbuf .text:0002F4CC MOV R12, SP .text:0002F4D0 STMFD SP!, {R4,R11,R12,LR,PC} .text:0002F4D4 SUB R11, R12, #4 .text:0002F4D8 MOV R4, R0 .text:0002F4DC BL _IO_wdefault_setbuf .text:0002F4E0 CMP R0, #0 .text:0002F4E4 LDMEQDB R11, {R4,R11,SP,PC} .text:0002F4E8 LDR R2, [R4,#0x58] .text:0002F4EC LDR R3, [R2,#0x18] .text:0002F4F0 STR R3, [R2,#0x14] .text:0002F4F4 STR R3, [R2,#0x10] .text:0002F4F8 STR R3, [R2,#0xC] .text:0002F4FC LDR R1, [R4,#0x58] .text:0002F500 LDR R3, [R1,#0x18] .text:0002F504 STR R3, [R1,#8] .text:0002F508 LDR R2, [R4,#0x58] .text:0002F50C LDR R3, [R2,#0x18] .text:0002F510 STR R3, [R2] .text:0002F514 LDR R1, [R4,#0x58] .text:0002F518 LDR R3, [R1,#0x18] .text:0002F51C MOV R0, R4 .text:0002F520 STR R3, [R1,#4] .text:0002F524 LDMDB R11, {R4,R11,SP,PC} .text:0002F524 ; End of function _IO_wfile_setbuf .text:0002F524 .text:0002F528 .text:0002F528 ; =============== S U B R O U T I N E ======================================= .text:0002F528 .text:0002F528 ; Attributes: bp-based frame .text:0002F528 .text:0002F528 EXPORT _IO_wdo_write .text:0002F528 _IO_wdo_write ; CODE XREF: _IO_wfile_overflow+19Cp .text:0002F528 ; _IO_wfile_overflow+1F4p ... .text:0002F528 .text:0002F528 var_3C = -0x3C .text:0002F528 var_38 = -0x38 .text:0002F528 var_34 = -0x34 .text:0002F528 var_30 = -0x30 .text:0002F528 var_2C = -0x2C .text:0002F528 .text:0002F528 MOV R12, SP .text:0002F52C STMFD SP!, {R4-R12,LR,PC} .text:0002F530 SUB R11, R12, #4 .text:0002F534 MOV R6, R1 .text:0002F538 SUBS R7, R2, #0 .text:0002F53C MOV R4, R0 .text:0002F540 SUB SP, SP, #0x14 .text:0002F544 LDR R8, [R4,#0x54] .text:0002F548 BEQ loc_2F60C .text:0002F54C LDR R2, [R4,#0x18] .text:0002F550 LDR R3, [R4,#0x14] .text:0002F554 CMP R2, R3 .text:0002F558 BNE loc_2F578 .text:0002F55C LDR R1, [R4,#0x10] .text:0002F560 CMP R2, R1 .text:0002F564 BEQ loc_2F578 .text:0002F568 RSB R2, R1, R2 .text:0002F56C BL _IO_new_do_write .text:0002F570 CMN R0, #1 .text:0002F574 BEQ locret_2F674 .text:0002F578 .text:0002F578 loc_2F578 ; CODE XREF: _IO_wdo_write+30j .text:0002F578 ; _IO_wdo_write+3Cj .text:0002F578 SUB R9, R11, #-var_2C .text:0002F57C ADD R10, R4, #0x14 .text:0002F580 .text:0002F580 loc_2F580 ; CODE XREF: _IO_wdo_write+E0j .text:0002F580 STR R9, [SP,#0x3C+var_3C] .text:0002F584 STR R10, [SP,#0x3C+var_30] .text:0002F588 LDR R3, [R4,#0x14] .text:0002F58C STR R3, [SP,#0x3C+var_38] .text:0002F590 LDR R2, [R4,#0x20] .text:0002F594 STR R2, [SP,#0x3C+var_34] .text:0002F598 MOV R0, R8 .text:0002F59C ADD R3, R6, R7,LSL#2 .text:0002F5A0 LDR R1, [R4,#0x58] .text:0002F5A4 MOV R2, R6 .text:0002F5A8 ADD R1, R1, #0x2C .text:0002F5AC MOV LR, PC .text:0002F5B0 LDR PC, [R8,#4] .text:0002F5B4 LDR R1, [R4,#0x10] .text:0002F5B8 MOV R5, R0 .text:0002F5BC ADD R3, R4, #0x14 .text:0002F5C0 LDMDA R3, {R2,R3} .text:0002F5C4 SUB R2, R3, R2 .text:0002F5C8 MOV R0, R4 .text:0002F5CC BL _IO_new_do_write .text:0002F5D0 CMN R0, #1 .text:0002F5D4 BEQ locret_2F674 .text:0002F5D8 LDR R2, [R11,#var_2C] .text:0002F5DC CMP R5, #0 .text:0002F5E0 RSB R3, R6, R2 .text:0002F5E4 MOV R1, R3,ASR#2 .text:0002F5E8 RSB R7, R1, R7 .text:0002F5EC BEQ loc_2F600 .text:0002F5F0 CMP R5, #1 .text:0002F5F4 BNE loc_2F60C .text:0002F5F8 CMP R1, #0 .text:0002F5FC BEQ loc_2F60C .text:0002F600 .text:0002F600 loc_2F600 ; CODE XREF: _IO_wdo_write+C4j .text:0002F600 MOV R6, R2 .text:0002F604 CMP R7, #0 .text:0002F608 BNE loc_2F580 .text:0002F60C .text:0002F60C loc_2F60C ; CODE XREF: _IO_wdo_write+20j .text:0002F60C ; _IO_wdo_write+CCj ... .text:0002F60C LDR R2, [R4,#0x58] .text:0002F610 LDR R3, [R2,#0x18] .text:0002F614 STR R3, [R2,#8] .text:0002F618 LDR R1, [R4,#0x58] .text:0002F61C LDR R3, [R1,#0x18] .text:0002F620 STR R3, [R1] .text:0002F624 LDR R0, [R4,#0x58] .text:0002F628 LDR R3, [R0,#0x18] .text:0002F62C STR R3, [R0,#4] .text:0002F630 LDR R2, [R4,#0x58] .text:0002F634 LDR R1, [R2,#0x18] .text:0002F638 STR R1, [R2,#0x10] .text:0002F63C STR R1, [R2,#0xC] .text:0002F640 LDR R3, [R4] .text:0002F644 BIC R3, R3, #0x1FC .text:0002F648 BIC R3, R3, #1 .text:0002F64C MOV R3, R3,LSL#22 .text:0002F650 MOV R3, R3,LSR#22 .text:0002F654 CMP R3, #0 .text:0002F658 LDR R3, [R4,#0x58] .text:0002F65C LDRNE R2, [R3,#0x18] .text:0002F660 LDREQ R2, [R3,#0x1C] .text:0002F664 CMP R7, #0 .text:0002F668 MOVNE R0, 0xFFFFFFFF .text:0002F66C MOVEQ R0, #0 .text:0002F670 STR R2, [R3,#0x14] .text:0002F674 .text:0002F674 locret_2F674 ; CODE XREF: _IO_wdo_write+4Cj .text:0002F674 ; _IO_wdo_write+ACj .text:0002F674 LDMDB R11, {R4-R11,SP,PC} .text:0002F674 ; End of function _IO_wdo_write .text:0002F674 .text:0002F678 .text:0002F678 ; =============== S U B R O U T I N E ======================================= .text:0002F678 .text:0002F678 ; Attributes: bp-based frame .text:0002F678 .text:0002F678 EXPORT _IO_wfile_underflow .text:0002F678 _IO_wfile_underflow .text:0002F678 .text:0002F678 var_34 = -0x34 .text:0002F678 var_30 = -0x30 .text:0002F678 var_2C = -0x2C .text:0002F678 var_28 = -0x28 .text:0002F678 var_24 = -0x24 .text:0002F678 var_20 = -0x20 .text:0002F678 .text:0002F678 MOV R12, SP .text:0002F67C STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0002F680 MOV R5, R0 .text:0002F684 SUB SP, SP, #0x18 .text:0002F688 LDR R3, [R5] .text:0002F68C SUB R11, R12, #4 .text:0002F690 TST R3, #4 .text:0002F694 BEQ loc_2F6AC .text:0002F698 ORR R3, R3, #0x20 .text:0002F69C STR R3, [R5] .text:0002F6A0 BL __errno_location .text:0002F6A4 MOV R3, #9 .text:0002F6A8 B loc_2F910 .text:0002F6AC ; --------------------------------------------------------------------------- .text:0002F6AC .text:0002F6AC loc_2F6AC ; CODE XREF: _IO_wfile_underflow+1Cj .text:0002F6AC LDR R2, [R5,#0x58] .text:0002F6B0 LDMIA R2, {R0,R3} .text:0002F6B4 CMP R0, R3 .text:0002F6B8 LDRCC R0, [R0] .text:0002F6BC BCC locret_2FA2C .text:0002F6C0 LDMIB R5, {R3,R4} .text:0002F6C4 LDR R6, [R5,#0x54] .text:0002F6C8 CMP R3, R4 .text:0002F6CC BCS loc_2F79C .text:0002F6D0 MOV R0, R6 .text:0002F6D4 RSB R4, R3, R4 .text:0002F6D8 MOV LR, PC .text:0002F6DC LDR PC, [R6,#0x1C] .text:0002F6E0 CMP R4, R0 .text:0002F6E4 BCC loc_2F764 .text:0002F6E8 LDR R2, [R5,#4] .text:0002F6EC LDR R3, [R5,#0x58] .text:0002F6F0 STR R2, [R11,#var_20] .text:0002F6F4 ADD R1, R3, #0x34 .text:0002F6F8 ADD R0, R3, #0x2C .text:0002F6FC LDMIA R0, {R2,R3} .text:0002F700 STMIA R1, {R2,R3} .text:0002F704 SUB R2, R11, #-var_20 .text:0002F708 STR R2, [SP,#0x34+var_34] .text:0002F70C LDR R1, [R5,#0x58] .text:0002F710 LDR R3, [R1,#4] .text:0002F714 STR R3, [SP,#0x34+var_30] .text:0002F718 LDR R2, [R1,#0x1C] .text:0002F71C ADD R3, R1, #4 .text:0002F720 STR R3, [SP,#0x34+var_28] .text:0002F724 STR R2, [SP,#0x34+var_2C] .text:0002F728 LDR R2, [R5,#4] .text:0002F72C MOV R0, R6 .text:0002F730 LDR R3, [R5,#8] .text:0002F734 ADD R1, R1, #0x2C .text:0002F738 MOV LR, PC .text:0002F73C LDR PC, [R6,#0xC] .text:0002F740 LDR R3, [R11,#var_20] .text:0002F744 STR R3, [R5,#4] .text:0002F748 LDR R2, [R5,#0x58] .text:0002F74C LDMIA R2, {R1,R3} .text:0002F750 CMP R1, R3 .text:0002F754 LDRCC R0, [R1] .text:0002F758 BCC locret_2FA2C .text:0002F75C CMP R0, #2 .text:0002F760 BEQ loc_2F9D4 .text:0002F764 .text:0002F764 loc_2F764 ; CODE XREF: _IO_wfile_underflow+6Cj .text:0002F764 LDR R0, [R5,#0x1C] .text:0002F768 LDR R1, [R5,#4] .text:0002F76C ADD R3, R5, #8 .text:0002F770 LDMDA R3, {R2,R3} .text:0002F774 SUB R2, R3, R2 .text:0002F778 BL memmove .text:0002F77C ADD R2, R5, #8 .text:0002F780 LDMDA R2, {R2,R3} .text:0002F784 SUB R3, R3, R2 .text:0002F788 LDR R2, [R5,#0x1C] .text:0002F78C ADD R3, R2, R3 .text:0002F790 STMIB R5, {R2,R3} .text:0002F794 STR R2, [R5,#0xC] .text:0002F798 B loc_2F7AC .text:0002F79C ; --------------------------------------------------------------------------- .text:0002F79C .text:0002F79C loc_2F79C ; CODE XREF: _IO_wfile_underflow+54j .text:0002F79C LDR R3, [R5,#0x1C] .text:0002F7A0 STR R3, [R5,#8] .text:0002F7A4 STR R3, [R5,#4] .text:0002F7A8 STR R3, [R5,#0xC] .text:0002F7AC .text:0002F7AC loc_2F7AC ; CODE XREF: _IO_wfile_underflow+120j .text:0002F7AC LDR R3, [R5,#0x1C] .text:0002F7B0 CMP R3, #0 .text:0002F7B4 BNE loc_2F7EC .text:0002F7B8 LDR R0, [R5,#0x24] .text:0002F7BC CMP R0, #0 .text:0002F7C0 BEQ loc_2F7D4 .text:0002F7C4 BL free .text:0002F7C8 LDR R3, [R5] .text:0002F7CC BIC R3, R3, #0x100 .text:0002F7D0 STR R3, [R5] .text:0002F7D4 .text:0002F7D4 loc_2F7D4 ; CODE XREF: _IO_wfile_underflow+148j .text:0002F7D4 MOV R0, R5 .text:0002F7D8 BL _IO_doallocbuf .text:0002F7DC LDR R3, [R5,#0x1C] .text:0002F7E0 STR R3, [R5,#8] .text:0002F7E4 STR R3, [R5,#4] .text:0002F7E8 STR R3, [R5,#0xC] .text:0002F7EC .text:0002F7EC loc_2F7EC ; CODE XREF: _IO_wfile_underflow+13Cj .text:0002F7EC LDR R3, [R5,#0x1C] .text:0002F7F0 STR R3, [R5,#0x18] .text:0002F7F4 STR R3, [R5,#0x14] .text:0002F7F8 STR R3, [R5,#0x10] .text:0002F7FC LDR R0, [R5,#0x58] .text:0002F800 LDR R3, [R0,#0x18] .text:0002F804 CMP R3, #0 .text:0002F808 BNE loc_2F830 .text:0002F80C LDR R0, [R0,#0x20] .text:0002F810 CMP R0, #0 .text:0002F814 BEQ loc_2F828 .text:0002F818 BL free .text:0002F81C LDR R3, [R5] .text:0002F820 BIC R3, R3, #0x100 .text:0002F824 STR R3, [R5] .text:0002F828 .text:0002F828 loc_2F828 ; CODE XREF: _IO_wfile_underflow+19Cj .text:0002F828 MOV R0, R5 .text:0002F82C BL _IO_wdoallocbuf .text:0002F830 .text:0002F830 loc_2F830 ; CODE XREF: _IO_wfile_underflow+190j .text:0002F830 LDR R3, [R5] .text:0002F834 BIC R3, R3, #0x1FC .text:0002F838 BIC R3, R3, #1 .text:0002F83C MOV R3, R3,LSL#22 .text:0002F840 MOV R3, R3,LSR#22 .text:0002F844 CMP R3, #0 .text:0002F848 BEQ loc_2F850 .text:0002F84C BL _flushlbf .text:0002F850 .text:0002F850 loc_2F850 ; CODE XREF: _IO_wfile_underflow+1D0j .text:0002F850 MOV R0, R5 .text:0002F854 BL _IO_switch_to_get_mode .text:0002F858 LDR R3, [R5,#0x58] .text:0002F85C LDR R2, [R3,#0x18] .text:0002F860 STR R2, [R3] .text:0002F864 STR R2, [R3,#8] .text:0002F868 LDR R1, [R5,#0x58] .text:0002F86C LDR R3, [R1,#0x18] .text:0002F870 STR R3, [R1,#4] .text:0002F874 LDR R2, [R5,#0x58] .text:0002F878 LDR R3, [R2,#0x18] .text:0002F87C STR R3, [R2,#0x14] .text:0002F880 STR R3, [R2,#0x10] .text:0002F884 MOV R7, #0 .text:0002F888 STR R3, [R2,#0xC] .text:0002F88C .text:0002F88C loc_2F88C ; CODE XREF: _IO_wfile_underflow+39Cj .text:0002F88C LDR R1, [R5,#8] .text:0002F890 LDRB R3, [R5,#0x46] .text:0002F894 MOV R0, R5 .text:0002F898 LDR R2, [R5,#0x20] .text:0002F89C MOV R3, R3,LSL#24 .text:0002F8A0 ADD R3, R5, R3,ASR#24 .text:0002F8A4 LDR R12, [R3,#0x94] .text:0002F8A8 RSB R2, R1, R2 .text:0002F8AC MOV LR, PC .text:0002F8B0 LDR PC, [R12,#0x38] .text:0002F8B4 CMP R0, #0 .text:0002F8B8 BGT loc_2F8EC .text:0002F8BC MOVNE R2, #0 .text:0002F8C0 MOVEQ R2, #1 .text:0002F8C4 CMP R7, #0 .text:0002F8C8 MOVNE R3, #0 .text:0002F8CC MOVEQ R3, #1 .text:0002F8D0 ANDS R2, R2, R3 .text:0002F8D4 LDRNE R3, [R5] .text:0002F8D8 ORRNE R3, R3, #0x10 .text:0002F8DC LDREQ R3, [R5] .text:0002F8E0 MOVEQ R0, R2 .text:0002F8E4 ORREQ R3, R3, #0x20 .text:0002F8E8 STR R3, [R5] .text:0002F8EC .text:0002F8EC loc_2F8EC ; CODE XREF: _IO_wfile_underflow+240j .text:0002F8EC LDR R3, [R5,#8] .text:0002F8F0 CMP R0, #0 .text:0002F8F4 ADD R3, R3, R0 .text:0002F8F8 STR R3, [R5,#8] .text:0002F8FC BNE loc_2F91C .text:0002F900 CMP R7, #0 .text:0002F904 BEQ loc_2F914 .text:0002F908 BL __errno_location .text:0002F90C MOV R3, #0x54 .text:0002F910 .text:0002F910 loc_2F910 ; CODE XREF: _IO_wfile_underflow+30j .text:0002F910 STR R3, [R0] .text:0002F914 .text:0002F914 loc_2F914 ; CODE XREF: _IO_wfile_underflow+28Cj .text:0002F914 MOV R0, 0xFFFFFFFF .text:0002F918 B locret_2FA2C .text:0002F91C ; --------------------------------------------------------------------------- .text:0002F91C .text:0002F91C loc_2F91C ; CODE XREF: _IO_wfile_underflow+284j .text:0002F91C MOV R2, #0x4C .text:0002F920 LDR R3, [R5,R2] .text:0002F924 ADD R12, R5, R2 .text:0002F928 CMN R3, #1 .text:0002F92C BNE loc_2F93C .text:0002F930 LDR R3, [R12,#4] .text:0002F934 CMN R3, #1 .text:0002F938 BEQ loc_2F94C .text:0002F93C .text:0002F93C loc_2F93C ; CODE XREF: _IO_wfile_underflow+2B4j .text:0002F93C LDMIA R12, {R3,R4} .text:0002F940 ADDS R1, R3, R0 .text:0002F944 ADC R2, R4, R0,ASR#31 .text:0002F948 STMIA R12, {R1,R2} .text:0002F94C .text:0002F94C loc_2F94C ; CODE XREF: _IO_wfile_underflow+2C0j .text:0002F94C LDR R3, [R5,#0x58] .text:0002F950 ADD R1, R3, #0x34 .text:0002F954 ADD R0, R3, #0x2C .text:0002F958 LDMIA R0, {R2,R3} .text:0002F95C STMIA R1, {R2,R3} .text:0002F960 SUB R2, R11, #-var_24 .text:0002F964 STR R2, [SP,#0x34+var_34] .text:0002F968 LDR R2, [R5,#4] .text:0002F96C STR R2, [R5,#0xC] .text:0002F970 LDR R1, [R5,#0x58] .text:0002F974 LDR R3, [R1,#4] .text:0002F978 STR R3, [SP,#0x34+var_30] .text:0002F97C LDR R0, [R1,#0x1C] .text:0002F980 ADD R3, R1, #4 .text:0002F984 STR R3, [SP,#0x34+var_28] .text:0002F988 STR R0, [SP,#0x34+var_2C] .text:0002F98C ADD R1, R1, #0x2C .text:0002F990 LDR R3, [R5,#8] .text:0002F994 MOV R0, R6 .text:0002F998 MOV LR, PC .text:0002F99C LDR PC, [R6,#0xC] .text:0002F9A0 LDR R3, [R11,#var_24] .text:0002F9A4 STR R3, [R5,#4] .text:0002F9A8 LDR R1, [R5,#0x58] .text:0002F9AC LDR R2, [R1,#4] .text:0002F9B0 LDR R3, [R1,#0x18] .text:0002F9B4 CMP R2, R3 .text:0002F9B8 BNE loc_2FA24 .text:0002F9BC CMP R0, #2 .text:0002F9C0 BEQ loc_2F9D4 .text:0002F9C4 LDR R2, [R5,#8] .text:0002F9C8 LDR R3, [R5,#0x20] .text:0002F9CC CMP R2, R3 .text:0002F9D0 BNE loc_2F9F4 .text:0002F9D4 .text:0002F9D4 loc_2F9D4 ; CODE XREF: _IO_wfile_underflow+E8j .text:0002F9D4 ; _IO_wfile_underflow+348j .text:0002F9D4 BL __errno_location .text:0002F9D8 MOV R2, #0x54 .text:0002F9DC STR R2, [R0] .text:0002F9E0 LDR R3, [R5] .text:0002F9E4 MOV R0, 0xFFFFFFFF .text:0002F9E8 ORR R3, R3, #0x20 .text:0002F9EC STR R3, [R5] .text:0002F9F0 B locret_2FA2C .text:0002F9F4 ; --------------------------------------------------------------------------- .text:0002F9F4 .text:0002F9F4 loc_2F9F4 ; CODE XREF: _IO_wfile_underflow+358j .text:0002F9F4 CMP R0, #1 .text:0002F9F8 BEQ loc_2FA10 .text:0002F9FC LDR R0, =aStatus__codecv ; "status == __codecvt_partial" .text:0002FA00 LDR R1, =aWfileops_c ; "wfileops.c" .text:0002FA04 LDR R3, =a_io_wfile_unde ; "_IO_wfile_underflow" .text:0002FA08 MOV R2, #0x11C .text:0002FA0C BL __assert_fail .text:0002FA10 ; --------------------------------------------------------------------------- .text:0002FA10 .text:0002FA10 loc_2FA10 ; CODE XREF: _IO_wfile_underflow+380j .text:0002FA10 ADD R7, R7, #1 .text:0002FA14 B loc_2F88C .text:0002FA14 ; --------------------------------------------------------------------------- .text:0002FA18 off_2FA18 DCD aStatus__codecv ; DATA XREF: _IO_wfile_underflow+384r .text:0002FA18 ; "status == __codecvt_partial" .text:0002FA1C off_2FA1C DCD aWfileops_c ; DATA XREF: _IO_wfile_underflow+388r .text:0002FA1C ; "wfileops.c" .text:0002FA20 off_2FA20 DCD a_io_wfile_unde ; DATA XREF: _IO_wfile_underflow+38Cr .text:0002FA20 ; "_IO_wfile_underflow" .text:0002FA24 ; --------------------------------------------------------------------------- .text:0002FA24 .text:0002FA24 loc_2FA24 ; CODE XREF: _IO_wfile_underflow+340j .text:0002FA24 LDR R3, [R1] .text:0002FA28 LDR R0, [R3] .text:0002FA2C .text:0002FA2C locret_2FA2C ; CODE XREF: _IO_wfile_underflow+44j .text:0002FA2C ; _IO_wfile_underflow+E0j ... .text:0002FA2C LDMDB R11, {R4-R7,R11,SP,PC} .text:0002FA2C ; End of function _IO_wfile_underflow .text:0002FA2C .text:0002FA30 .text:0002FA30 ; =============== S U B R O U T I N E ======================================= .text:0002FA30 .text:0002FA30 ; Attributes: bp-based frame .text:0002FA30 .text:0002FA30 EXPORT _IO_wfile_overflow .text:0002FA30 _IO_wfile_overflow .text:0002FA30 MOV R12, SP .text:0002FA34 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0002FA38 SUB R11, R12, #4 .text:0002FA3C MOV R4, R0 .text:0002FA40 LDR R3, [R4] .text:0002FA44 MOV R5, R1 .text:0002FA48 TST R3, #8 .text:0002FA4C BEQ loc_2FA6C .text:0002FA50 ORR R3, R3, #0x20 .text:0002FA54 STR R3, [R4] .text:0002FA58 BL __errno_location .text:0002FA5C MOV R3, #9 .text:0002FA60 STR R3, [R0] .text:0002FA64 .text:0002FA64 loc_2FA64 ; CODE XREF: _IO_wfile_overflow+1FCj .text:0002FA64 ; _IO_wfile_overflow+280j .text:0002FA64 MOV R0, 0xFFFFFFFF .text:0002FA68 LDMDB R11, {R4,R5,R11,SP,PC} .text:0002FA6C ; --------------------------------------------------------------------------- .text:0002FA6C .text:0002FA6C loc_2FA6C ; CODE XREF: _IO_wfile_overflow+1Cj .text:0002FA6C TST R3, #0x800 .text:0002FA70 BNE loc_2FB80 .text:0002FA74 LDR R1, [R4,#0x58] .text:0002FA78 LDR R3, [R1,#0xC] .text:0002FA7C CMP R3, #0 .text:0002FA80 BNE loc_2FAD8 .text:0002FA84 MOV R0, R4 .text:0002FA88 BL _IO_wdoallocbuf .text:0002FA8C LDR R2, [R4,#0x58] .text:0002FA90 LDR R3, [R2,#0x18] .text:0002FA94 STR R3, [R2,#8] .text:0002FA98 LDR R1, [R4,#0x58] .text:0002FA9C LDR R3, [R1,#0x18] .text:0002FAA0 STR R3, [R1] .text:0002FAA4 LDR R0, [R4,#0x58] .text:0002FAA8 LDR R3, [R0,#0x18] .text:0002FAAC STR R3, [R0,#4] .text:0002FAB0 LDR R2, [R4,#0x10] .text:0002FAB4 CMP R2, #0 .text:0002FAB8 BNE loc_2FB00 .text:0002FABC MOV R0, R4 .text:0002FAC0 BL _IO_doallocbuf .text:0002FAC4 LDR R3, [R4,#0x1C] .text:0002FAC8 STR R3, [R4,#0xC] .text:0002FACC STR R3, [R4,#4] .text:0002FAD0 STR R3, [R4,#8] .text:0002FAD4 B loc_2FB00 .text:0002FAD8 ; --------------------------------------------------------------------------- .text:0002FAD8 .text:0002FAD8 loc_2FAD8 ; CODE XREF: _IO_wfile_overflow+50j .text:0002FAD8 LDR R2, [R1] .text:0002FADC LDR R3, [R1,#0x1C] .text:0002FAE0 CMP R2, R3 .text:0002FAE4 BNE loc_2FB00 .text:0002FAE8 LDR R3, [R4,#0x1C] .text:0002FAEC STR R3, [R4,#4] .text:0002FAF0 STR R3, [R4,#8] .text:0002FAF4 LDR R2, [R1,#0x18] .text:0002FAF8 STR R2, [R1] .text:0002FAFC STR R2, [R1,#4] .text:0002FB00 .text:0002FB00 loc_2FB00 ; CODE XREF: _IO_wfile_overflow+88j .text:0002FB00 ; _IO_wfile_overflow+A4j ... .text:0002FB00 LDR R2, [R4,#0x58] .text:0002FB04 LDR R3, [R2] .text:0002FB08 STR R3, [R2,#0x10] .text:0002FB0C LDR R1, [R4,#0x58] .text:0002FB10 LDR R3, [R1,#0x10] .text:0002FB14 STR R3, [R1,#0xC] .text:0002FB18 LDR R0, [R4,#0x58] .text:0002FB1C LDR R2, [R0,#0x1C] .text:0002FB20 STR R2, [R0,#0x14] .text:0002FB24 LDR R3, [R4,#0x58] .text:0002FB28 LDR R2, [R3,#4] .text:0002FB2C STR R2, [R3] .text:0002FB30 STR R2, [R3,#8] .text:0002FB34 LDR R1, [R4,#4] .text:0002FB38 STR R1, [R4,#0x14] .text:0002FB3C STR R1, [R4,#0x10] .text:0002FB40 LDR R3, [R4,#0x20] .text:0002FB44 LDR R2, [R4] .text:0002FB48 STR R3, [R4,#0x18] .text:0002FB4C ORR R2, R2, #0x800 .text:0002FB50 STR R2, [R4] .text:0002FB54 BIC R3, R2, #0x1FC .text:0002FB58 BIC R3, R3, #1 .text:0002FB5C LDR R1, [R4,#8] .text:0002FB60 MOV R3, R3,LSL#22 .text:0002FB64 STR R1, [R4,#4] .text:0002FB68 MOV R3, R3,LSR#22 .text:0002FB6C CMP R3, #0 .text:0002FB70 STR R1, [R4,#0xC] .text:0002FB74 LDRNE R2, [R4,#0x58] .text:0002FB78 LDRNE R3, [R2,#0x10] .text:0002FB7C STRNE R3, [R2,#0x14] .text:0002FB80 .text:0002FB80 loc_2FB80 ; CODE XREF: _IO_wfile_overflow+40j .text:0002FB80 CMN R5, #1 .text:0002FB84 BNE loc_2FBD4 .text:0002FB88 LDR R3, [R4,#0x5C] .text:0002FB8C CMP R3, #0 .text:0002FB90 BGT loc_2FBB0 .text:0002FB94 MOV R0, R4 .text:0002FB98 LDR R1, [R0,#0x10] .text:0002FB9C ADD R3, R0, #0x14 .text:0002FBA0 LDMDA R3, {R2,R3} .text:0002FBA4 SUB R2, R3, R2 .text:0002FBA8 BL _IO_new_do_write .text:0002FBAC LDMDB R11, {R4,R5,R11,SP,PC} .text:0002FBB0 ; --------------------------------------------------------------------------- .text:0002FBB0 .text:0002FBB0 loc_2FBB0 ; CODE XREF: _IO_wfile_overflow+160j .text:0002FBB0 LDR R3, [R4,#0x58] .text:0002FBB4 ADD R1, R3, #0x10 .text:0002FBB8 LDMDA R1, {R1,R2} .text:0002FBBC SUB R2, R2, R1 .text:0002FBC0 MOV R0, R4 .text:0002FBC4 LDR R1, [R3,#0xC] .text:0002FBC8 MOV R2, R2,ASR#2 .text:0002FBCC BL _IO_wdo_write .text:0002FBD0 LDMDB R11, {R4,R5,R11,SP,PC} .text:0002FBD4 ; --------------------------------------------------------------------------- .text:0002FBD4 .text:0002FBD4 loc_2FBD4 ; CODE XREF: _IO_wfile_overflow+154j .text:0002FBD4 LDR R2, [R4,#0x58] .text:0002FBD8 LDR R12, [R2,#0x10] .text:0002FBDC LDR R3, [R2,#0x1C] .text:0002FBE0 CMP R12, R3 .text:0002FBE4 BNE loc_2FC30 .text:0002FBE8 LDR R3, [R4,#0x5C] .text:0002FBEC CMP R3, #0 .text:0002FBF0 BGT loc_2FC10 .text:0002FBF4 LDR R1, [R4,#0x10] .text:0002FBF8 ADD R3, R4, #0x14 .text:0002FBFC LDMDA R3, {R2,R3} .text:0002FC00 SUB R2, R3, R2 .text:0002FC04 MOV R0, R4 .text:0002FC08 BL _IO_new_do_write .text:0002FC0C B loc_2FC28 .text:0002FC10 ; --------------------------------------------------------------------------- .text:0002FC10 .text:0002FC10 loc_2FC10 ; CODE XREF: _IO_wfile_overflow+1C0j .text:0002FC10 LDR R2, [R2,#0xC] .text:0002FC14 MOV R0, R4 .text:0002FC18 MOV R1, R2 .text:0002FC1C RSB R2, R2, R12 .text:0002FC20 MOV R2, R2,ASR#2 .text:0002FC24 BL _IO_wdo_write .text:0002FC28 .text:0002FC28 loc_2FC28 ; CODE XREF: _IO_wfile_overflow+1DCj .text:0002FC28 CMN R0, #1 .text:0002FC2C BEQ loc_2FA64 .text:0002FC30 .text:0002FC30 loc_2FC30 ; CODE XREF: _IO_wfile_overflow+1B4j .text:0002FC30 LDR R2, [R4,#0x58] .text:0002FC34 LDR R3, [R2,#0x10] .text:0002FC38 STR R5, [R3],#4 .text:0002FC3C STR R3, [R2,#0x10] .text:0002FC40 LDR R3, [R4] .text:0002FC44 TST R3, #2 .text:0002FC48 BNE loc_2FC64 .text:0002FC4C MOV R3, R3,LSR#9 .text:0002FC50 CMP R5, #0xA .text:0002FC54 ANDEQ R3, R3, #1 .text:0002FC58 MOVNE R3, #0 .text:0002FC5C CMP R3, #0 .text:0002FC60 BEQ loc_2FCB4 .text:0002FC64 .text:0002FC64 loc_2FC64 ; CODE XREF: _IO_wfile_overflow+218j .text:0002FC64 LDR R3, [R4,#0x5C] .text:0002FC68 CMP R3, #0 .text:0002FC6C BGT loc_2FC8C .text:0002FC70 MOV R0, R4 .text:0002FC74 LDR R1, [R0,#0x10] .text:0002FC78 ADD R3, R0, #0x14 .text:0002FC7C LDMDA R3, {R2,R3} .text:0002FC80 SUB R2, R3, R2 .text:0002FC84 BL _IO_new_do_write .text:0002FC88 B loc_2FCAC .text:0002FC8C ; --------------------------------------------------------------------------- .text:0002FC8C .text:0002FC8C loc_2FC8C ; CODE XREF: _IO_wfile_overflow+23Cj .text:0002FC8C LDR R3, [R4,#0x58] .text:0002FC90 ADD R1, R3, #0x10 .text:0002FC94 LDMDA R1, {R1,R2} .text:0002FC98 SUB R2, R2, R1 .text:0002FC9C MOV R0, R4 .text:0002FCA0 LDR R1, [R3,#0xC] .text:0002FCA4 MOV R2, R2,ASR#2 .text:0002FCA8 BL _IO_wdo_write .text:0002FCAC .text:0002FCAC loc_2FCAC ; CODE XREF: _IO_wfile_overflow+258j .text:0002FCAC CMN R0, #1 .text:0002FCB0 BEQ loc_2FA64 .text:0002FCB4 .text:0002FCB4 loc_2FCB4 ; CODE XREF: _IO_wfile_overflow+230j .text:0002FCB4 MOV R0, R5 .text:0002FCB8 LDMDB R11, {R4,R5,R11,SP,PC} .text:0002FCB8 ; End of function _IO_wfile_overflow .text:0002FCB8 .text:0002FCBC .text:0002FCBC ; =============== S U B R O U T I N E ======================================= .text:0002FCBC .text:0002FCBC ; Attributes: bp-based frame .text:0002FCBC .text:0002FCBC EXPORT _IO_wfile_sync .text:0002FCBC _IO_wfile_sync .text:0002FCBC .text:0002FCBC var_20 = -0x20 .text:0002FCBC .text:0002FCBC MOV R12, SP .text:0002FCC0 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0002FCC4 MOV R4, R0 .text:0002FCC8 SUB SP, SP, #4 .text:0002FCCC LDR R3, [R4,#0x58] .text:0002FCD0 SUB R11, R12, #4 .text:0002FCD4 ADD R2, R3, #0xC .text:0002FCD8 LDMIA R2, {R2,R12} .text:0002FCDC MOV R7, #0 .text:0002FCE0 CMP R12, R2 .text:0002FCE4 BLS loc_2FD3C .text:0002FCE8 LDR R3, [R4,#0x5C] .text:0002FCEC CMP R3, R7 .text:0002FCF0 BGT loc_2FD18 .text:0002FCF4 LDR R1, [R4,#0x10] .text:0002FCF8 ADD R0, R4, #0x14 .text:0002FCFC LDMDA R0, {R0,R2} .text:0002FD00 SUB R2, R2, R0 .text:0002FD04 MOV R0, R4 .text:0002FD08 BL _IO_new_do_write .text:0002FD0C CMP R0, R7 .text:0002FD10 BNE loc_2FD34 .text:0002FD14 B loc_2FD3C .text:0002FD18 ; --------------------------------------------------------------------------- .text:0002FD18 .text:0002FD18 loc_2FD18 ; CODE XREF: _IO_wfile_sync+34j .text:0002FD18 MOV R0, R4 .text:0002FD1C MOV R1, R2 .text:0002FD20 RSB R2, R2, R12 .text:0002FD24 MOV R2, R2,ASR#2 .text:0002FD28 BL _IO_wdo_write .text:0002FD2C CMP R0, #0 .text:0002FD30 BEQ loc_2FD3C .text:0002FD34 .text:0002FD34 loc_2FD34 ; CODE XREF: _IO_wfile_sync+54j .text:0002FD34 MOV R0, 0xFFFFFFFF .text:0002FD38 B locret_2FE34 .text:0002FD3C ; --------------------------------------------------------------------------- .text:0002FD3C .text:0002FD3C loc_2FD3C ; CODE XREF: _IO_wfile_sync+28j .text:0002FD3C ; _IO_wfile_sync+58j ... .text:0002FD3C LDR R3, [R4,#0x58] .text:0002FD40 LDMIA R3, {R1,R2} .text:0002FD44 SUB R2, R1, R2 .text:0002FD48 MOVS R5, R2,ASR#2 .text:0002FD4C BEQ loc_2FE1C .text:0002FD50 LDR R6, [R4,#0x54] .text:0002FD54 MOV R0, R6 .text:0002FD58 MOV LR, PC .text:0002FD5C LDR PC, [R6,#0x10] .text:0002FD60 CMP R0, #0 .text:0002FD64 MULGT R5, R0, R5 .text:0002FD68 BGT loc_2FDB8 .text:0002FD6C LDR R3, [R4,#0x58] .text:0002FD70 ADD R2, R3, #0x2C .text:0002FD74 ADD R3, R3, #0x34 .text:0002FD78 LDMIA R3, {R0,R1} .text:0002FD7C STMIA R2, {R0,R1} .text:0002FD80 STR R5, [SP,#0x20+var_20] .text:0002FD84 LDR R1, [R4,#0x58] .text:0002FD88 LDR R2, [R4,#0xC] .text:0002FD8C MOV R0, R6 .text:0002FD90 LDR R3, [R4,#8] .text:0002FD94 ADD R1, R1, #0x2C .text:0002FD98 MOV LR, PC .text:0002FD9C LDR PC, [R6,#0x18] .text:0002FDA0 LDR R2, [R4,#0xC] .text:0002FDA4 LDR R3, [R4,#8] .text:0002FDA8 RSB R3, R2, R3 .text:0002FDAC RSB R5, R3, R0 .text:0002FDB0 ADD R2, R2, R0 .text:0002FDB4 STR R2, [R4,#4] .text:0002FDB8 .text:0002FDB8 loc_2FDB8 ; CODE XREF: _IO_wfile_sync+ACj .text:0002FDB8 MOV R0, R4 .text:0002FDBC LDRB R3, [R4,#0x46] .text:0002FDC0 MOV R1, R5 .text:0002FDC4 MOV R2, R1,ASR#31 .text:0002FDC8 MOV R3, R3,LSL#24 .text:0002FDCC ADD R3, R4, R3,ASR#24 .text:0002FDD0 LDR R12, [R3,#0x94] .text:0002FDD4 MOV R3, #1 .text:0002FDD8 MOV LR, PC .text:0002FDDC LDR PC, [R12,#0x40] .text:0002FDE0 CMN R0, #1 .text:0002FDE4 BNE loc_2FDF0 .text:0002FDE8 CMN R1, #1 .text:0002FDEC BEQ loc_2FE08 .text:0002FDF0 .text:0002FDF0 loc_2FDF0 ; CODE XREF: _IO_wfile_sync+128j .text:0002FDF0 LDR R3, [R4,#0x58] .text:0002FDF4 LDR R2, [R3] .text:0002FDF8 STR R2, [R3,#4] .text:0002FDFC LDR R1, [R4,#4] .text:0002FE00 STR R1, [R4,#8] .text:0002FE04 B loc_2FE1C .text:0002FE08 ; --------------------------------------------------------------------------- .text:0002FE08 .text:0002FE08 loc_2FE08 ; CODE XREF: _IO_wfile_sync+130j .text:0002FE08 BL __errno_location .text:0002FE0C LDR R3, [R0] .text:0002FE10 CMP R3, #0x1D .text:0002FE14 MOVEQ R7, #0 .text:0002FE18 MOVNE R7, 0xFFFFFFFF .text:0002FE1C .text:0002FE1C loc_2FE1C ; CODE XREF: _IO_wfile_sync+90j .text:0002FE1C ; _IO_wfile_sync+148j .text:0002FE1C CMN R7, #1 .text:0002FE20 ADDNE R3, R4, #0x4C .text:0002FE24 MOVNE R2, 0xFFFFFFFF .text:0002FE28 MOVNE R1, 0xFFFFFFFF .text:0002FE2C STMNEIA R3, {R1,R2} .text:0002FE30 MOV R0, R7 .text:0002FE34 .text:0002FE34 locret_2FE34 ; CODE XREF: _IO_wfile_sync+7Cj .text:0002FE34 LDMDB R11, {R4-R7,R11,SP,PC} .text:0002FE34 ; End of function _IO_wfile_sync .text:0002FE34 .text:0002FE38 .text:0002FE38 ; =============== S U B R O U T I N E ======================================= .text:0002FE38 .text:0002FE38 ; Attributes: bp-based frame .text:0002FE38 .text:0002FE38 EXPORT _IO_wfile_seekoff .text:0002FE38 _IO_wfile_seekoff .text:0002FE38 .text:0002FE38 var_94 = -0x94 .text:0002FE38 var_90 = -0x90 .text:0002FE38 var_88 = -0x88 .text:0002FE38 var_78 = -0x78 .text:0002FE38 var_5C = -0x5C .text:0002FE38 arg_0 = 4 .text:0002FE38 .text:0002FE38 MOV R12, SP .text:0002FE3C STMFD SP!, {R4-R12,LR,PC} .text:0002FE40 SUB R11, R12, #4 .text:0002FE44 MOV R7, R0 .text:0002FE48 SUB SP, SP, #0x6C .text:0002FE4C LDR R0, [R7,#0x58] .text:0002FE50 SUB R4, R11, #-var_90 .text:0002FE54 STMIA R4, {R1,R2} .text:0002FE58 LDR R2, [R0,#8] .text:0002FE5C MOV R8, R3 .text:0002FE60 LDR R3, [R0,#4] .text:0002FE64 MOV R10, #0 .text:0002FE68 LDR R9, [R11,#arg_0] .text:0002FE6C CMP R2, R3 .text:0002FE70 BNE loc_2FE88 .text:0002FE74 ADD R2, R0, #0xC .text:0002FE78 LDMIA R2, {R2,R3} .text:0002FE7C CMP R2, R3 .text:0002FE80 MOVNE R10, #0 .text:0002FE84 MOVEQ R10, #1 .text:0002FE88 .text:0002FE88 loc_2FE88 ; CODE XREF: _IO_wfile_seekoff+38j .text:0002FE88 CMP R9, #0 .text:0002FE8C MOVEQ R8, #1 .text:0002FE90 MOVEQ R3, #0 .text:0002FE94 MOVEQ R2, #0 .text:0002FE98 SUBEQ R4, R11, #-var_90 .text:0002FE9C STMEQIA R4, {R2,R3} .text:0002FEA0 LDR R2, [R0,#0x10] .text:0002FEA4 LDR R3, [R0,#0xC] .text:0002FEA8 CMP R2, R3 .text:0002FEAC BHI loc_2FEBC .text:0002FEB0 LDR R3, [R7] .text:0002FEB4 TST R3, #0x800 .text:0002FEB8 BEQ loc_2FED4 .text:0002FEBC .text:0002FEBC loc_2FEBC ; CODE XREF: _IO_wfile_seekoff+74j .text:0002FEBC MOV R0, R7 .text:0002FEC0 BL _IO_switch_to_wget_mode .text:0002FEC4 CMP R0, #0 .text:0002FEC8 ADRNE R0, dword_30240 .text:0002FECC LDMNEIA R0, {R0,R1} .text:0002FED0 BNE locret_30404 .text:0002FED4 .text:0002FED4 loc_2FED4 ; CODE XREF: _IO_wfile_seekoff+80j .text:0002FED4 LDR R0, [R7,#0x58] .text:0002FED8 LDR R3, [R0,#0x18] .text:0002FEDC CMP R3, #0 .text:0002FEE0 BNE loc_2FF64 .text:0002FEE4 LDR R0, [R0,#8] .text:0002FEE8 CMP R0, #0 .text:0002FEEC BEQ loc_2FF00 .text:0002FEF0 BL free .text:0002FEF4 LDR R3, [R7] .text:0002FEF8 BIC R3, R3, #0x100 .text:0002FEFC STR R3, [R7] .text:0002FF00 .text:0002FF00 loc_2FF00 ; CODE XREF: _IO_wfile_seekoff+B4j .text:0002FF00 MOV R0, R7 .text:0002FF04 BL _IO_doallocbuf .text:0002FF08 LDR R2, [R7,#0x1C] .text:0002FF0C STR R2, [R7,#0x14] .text:0002FF10 STR R2, [R7,#0x10] .text:0002FF14 STR R2, [R7,#0x18] .text:0002FF18 STR R2, [R7,#0xC] .text:0002FF1C STR R2, [R7,#4] .text:0002FF20 STR R2, [R7,#8] .text:0002FF24 LDR R3, [R7,#0x58] .text:0002FF28 LDR R2, [R3,#0x18] .text:0002FF2C STR R2, [R3,#0x10] .text:0002FF30 STR R2, [R3,#0xC] .text:0002FF34 LDR R1, [R7,#0x58] .text:0002FF38 LDR R3, [R1,#0x18] .text:0002FF3C STR R3, [R1,#0x14] .text:0002FF40 LDR R2, [R7,#0x58] .text:0002FF44 LDR R3, [R2,#0x18] .text:0002FF48 STR R3, [R2,#8] .text:0002FF4C LDR R1, [R7,#0x58] .text:0002FF50 LDR R3, [R1,#0x18] .text:0002FF54 STR R3, [R1] .text:0002FF58 LDR R2, [R7,#0x58] .text:0002FF5C LDR R3, [R2,#0x18] .text:0002FF60 STR R3, [R2,#4] .text:0002FF64 .text:0002FF64 loc_2FF64 ; CODE XREF: _IO_wfile_seekoff+A8j .text:0002FF64 CMP R8, #1 .text:0002FF68 BEQ loc_2FF7C .text:0002FF6C BLE loc_300CC .text:0002FF70 CMP R8, #2 .text:0002FF74 BEQ loc_30074 .text:0002FF78 B loc_300CC .text:0002FF7C ; --------------------------------------------------------------------------- .text:0002FF7C .text:0002FF7C loc_2FF7C ; CODE XREF: _IO_wfile_seekoff+130j .text:0002FF7C LDR R4, [R7,#0x54] .text:0002FF80 MOV R0, R4 .text:0002FF84 MOV LR, PC .text:0002FF88 LDR PC, [R4,#0x10] .text:0002FF8C CMP R0, #0 .text:0002FF90 BLE loc_2FFC4 .text:0002FF94 LDR R3, [R7,#0x58] .text:0002FF98 LDMIA R3, {R2,R5} .text:0002FF9C SUB R2, R5, R2 .text:0002FFA0 MOV R2, R2,ASR#2 .text:0002FFA4 MUL R12, R0, R2 .text:0002FFA8 SUB R2, R11, #-var_90 .text:0002FFAC LDMIA R2, {R2,R3} .text:0002FFB0 SUBS R0, R2, R12 .text:0002FFB4 SBC R1, R3, R12,ASR#31 .text:0002FFB8 SUB R3, R11, #-var_90 .text:0002FFBC STMIA R3, {R0,R1} .text:0002FFC0 B loc_30034 .text:0002FFC4 ; --------------------------------------------------------------------------- .text:0002FFC4 .text:0002FFC4 loc_2FFC4 ; CODE XREF: _IO_wfile_seekoff+158j .text:0002FFC4 LDR R3, [R7,#0x58] .text:0002FFC8 ADD R0, R3, #0x2C .text:0002FFCC LDMIA R3, {R5,LR} .text:0002FFD0 SUB LR, R5, LR .text:0002FFD4 ADD R1, R3, #0x34 .text:0002FFD8 LDMIA R1, {R2,R3} .text:0002FFDC STMIA R0, {R2,R3} .text:0002FFE0 MOV R2, LR,ASR#2 .text:0002FFE4 STR R2, [SP,#0x94+var_94] .text:0002FFE8 LDR R1, [R7,#0x58] .text:0002FFEC LDR R2, [R7,#0xC] .text:0002FFF0 MOV R0, R4 .text:0002FFF4 LDR R3, [R7,#8] .text:0002FFF8 ADD R1, R1, #0x2C .text:0002FFFC MOV LR, PC .text:00030000 LDR PC, [R4,#0x18] .text:00030004 ADD R3, R7, #8 .text:00030008 LDMIA R3, {R3,LR} .text:0003000C SUB R4, R11, #-var_90 .text:00030010 LDMIA R4, {R4,R5} .text:00030014 RSB R3, LR, R3 .text:00030018 RSB R6, R0, R3 .text:0003001C SUBS R2, R4, R6 .text:00030020 SBC R3, R5, R6,ASR#31 .text:00030024 SUB R5, R11, #-var_90 .text:00030028 STMIA R5, {R2,R3} .text:0003002C ADD R2, LR, R0 .text:00030030 STR R2, [R7,#4] .text:00030034 .text:00030034 loc_30034 ; CODE XREF: _IO_wfile_seekoff+188j .text:00030034 MOV R2, #0x4C .text:00030038 LDR R3, [R7,R2] .text:0003003C ADD R2, R7, R2 .text:00030040 CMN R3, #1 .text:00030044 BNE loc_30054 .text:00030048 LDR R3, [R2,#4] .text:0003004C CMN R3, #1 .text:00030050 BEQ loc_30344 .text:00030054 .text:00030054 loc_30054 ; CODE XREF: _IO_wfile_seekoff+20Cj .text:00030054 LDMIA R2, {R3,R4} .text:00030058 SUB R5, R11, #-var_90 .text:0003005C LDMIA R5, {R1,R2} .text:00030060 MOV R8, #0 .text:00030064 ADDS R1, R1, R3 .text:00030068 ADC R2, R2, R4 .text:0003006C STMIA R5, {R1,R2} .text:00030070 B loc_300CC .text:00030074 ; --------------------------------------------------------------------------- .text:00030074 .text:00030074 loc_30074 ; CODE XREF: _IO_wfile_seekoff+13Cj .text:00030074 LDRB R3, [R7,#0x46] .text:00030078 MOV R0, R7 .text:0003007C MOV R3, R3,LSL#24 .text:00030080 ADD R3, R7, R3,ASR#24 .text:00030084 LDR R2, [R3,#0x94] .text:00030088 SUB R1, R11, #-var_88 .text:0003008C MOV LR, PC .text:00030090 LDR PC, [R2,#0x48] .text:00030094 CMP R0, #0 .text:00030098 BNE loc_30344 .text:0003009C LDR R3, [R11,#var_78] .text:000300A0 AND R3, R3, #0xF000 .text:000300A4 CMP R3, #0x8000 .text:000300A8 BNE loc_30344 .text:000300AC SUB R3, R11, #-var_5C .text:000300B0 LDMIA R3, {R1,R2} .text:000300B4 SUB R5, R11, #-var_90 .text:000300B8 LDMIA R5, {R3,R4} .text:000300BC MOV R8, R0 .text:000300C0 ADDS R3, R3, R1 .text:000300C4 ADC R4, R4, R2 .text:000300C8 STMIA R5, {R3,R4} .text:000300CC .text:000300CC loc_300CC ; CODE XREF: _IO_wfile_seekoff+134j .text:000300CC ; _IO_wfile_seekoff+140j ... .text:000300CC CMP R9, #0 .text:000300D0 BNE loc_300E0 .text:000300D4 SUB R12, R11, #-var_90 .text:000300D8 LDMIA R12, {R0,R1} .text:000300DC B locret_30404 .text:000300E0 ; --------------------------------------------------------------------------- .text:000300E0 .text:000300E0 loc_300E0 ; CODE XREF: _IO_wfile_seekoff+298j .text:000300E0 MOV R2, #0x4C .text:000300E4 LDR R3, [R7,R2] .text:000300E8 ADD R1, R7, R2 .text:000300EC CMN R3, #1 .text:000300F0 BNE loc_30104 .text:000300F4 LDR R3, [R1,#4] .text:000300F8 LDR R12, [R7] .text:000300FC CMN R3, #1 .text:00030100 BEQ loc_30188 .text:00030104 .text:00030104 loc_30104 ; CODE XREF: _IO_wfile_seekoff+2B8j .text:00030104 LDR R0, [R7,#0xC] .text:00030108 LDR R12, [R7] .text:0003010C CMP R0, #0 .text:00030110 BEQ loc_30188 .text:00030114 TST R12, #0x100 .text:00030118 BNE loc_30188 .text:0003011C LDMIA R1, {R1,R2} .text:00030120 SUB LR, R11, #-var_90 .text:00030124 LDMIA LR, {R4,R5} .text:00030128 LDR R3, [R7,#8] .text:0003012C SUBS R4, R4, R1 .text:00030130 SBC R5, R5, R2 .text:00030134 RSB R3, R0, R3 .text:00030138 MOV R2, R3 .text:0003013C MOV R3, R2,ASR#31 .text:00030140 ADDS R4, R4, R2 .text:00030144 ADC R5, R5, R3 .text:00030148 CMP R5, #0 .text:0003014C BLT loc_30188 .text:00030150 CMP R5, R3 .text:00030154 BGT loc_30188 .text:00030158 BNE loc_30164 .text:0003015C CMP R4, R2 .text:00030160 BHI loc_30188 .text:00030164 .text:00030164 loc_30164 ; CODE XREF: _IO_wfile_seekoff+320j .text:00030164 ADD R3, R0, R4 .text:00030168 STR R3, [R7,#4] .text:0003016C LDR R2, [R7,#0x1C] .text:00030170 STR R2, [R7,#0x14] .text:00030174 STR R2, [R7,#0x10] .text:00030178 STR R2, [R7,#0x18] .text:0003017C BIC R3, R12, #0x10 .text:00030180 STR R3, [R7] .text:00030184 B loc_303C8 .text:00030188 ; --------------------------------------------------------------------------- .text:00030188 .text:00030188 loc_30188 ; CODE XREF: _IO_wfile_seekoff+2C8j .text:00030188 ; _IO_wfile_seekoff+2D8j ... .text:00030188 TST R12, #4 .text:0003018C BNE loc_30344 .text:00030190 ADD R0, R7, #0x20 .text:00030194 LDMDA R0, {R0,R2} .text:00030198 SUB R2, R2, R0 .text:0003019C SUB R1, R11, #-var_90 .text:000301A0 LDMIA R1, {R4,R5} .text:000301A4 MOV R12, R1 .text:000301A8 LDMIA R12, {R8,R9} .text:000301AC RSB R3, R2, #0 .text:000301B0 AND R8, R8, R3 .text:000301B4 AND R9, R9, R3,ASR#31 .text:000301B8 SUBS R4, R4, R8 .text:000301BC SBC R5, R5, R9 .text:000301C0 MOV R3, R2,ASR#31 .text:000301C4 CMP R5, R3 .text:000301C8 BGT loc_301D8 .text:000301CC BNE loc_301E8 .text:000301D0 CMP R4, R2 .text:000301D4 BLS loc_301E8 .text:000301D8 .text:000301D8 loc_301D8 ; CODE XREF: _IO_wfile_seekoff+390j .text:000301D8 SUB LR, R11, #-var_90 .text:000301DC MOV R5, #0 .text:000301E0 MOV R4, #0 .text:000301E4 LDMIA LR, {R8,R9} .text:000301E8 .text:000301E8 loc_301E8 ; CODE XREF: _IO_wfile_seekoff+394j .text:000301E8 ; _IO_wfile_seekoff+39Cj .text:000301E8 MOV R0, R7 .text:000301EC MOV R2, R9 .text:000301F0 MOV R1, R8 .text:000301F4 LDRB R3, [R7,#0x46] .text:000301F8 MOV R6, #0x94 .text:000301FC MOV R3, R3,LSL#24 .text:00030200 ADD R3, R7, R3,ASR#24 .text:00030204 LDR R12, [R3,R6] .text:00030208 MOV R3, #0 .text:0003020C MOV LR, PC .text:00030210 LDR PC, [R12,#0x40] .text:00030214 MOV R9, R1 .text:00030218 MOV R8, R0 .text:0003021C CMP R9, #0 .text:00030220 MOVLT R1, 0xFFFFFFFF .text:00030224 MOVLT R0, 0xFFFFFFFF .text:00030228 BLT locret_30404 .text:0003022C ORR R0, R5, R4 .text:00030230 CMP R0, #0 .text:00030234 BNE loc_30248 .text:00030238 MOV R12, R0 .text:0003023C B loc_302F8 .text:0003023C ; --------------------------------------------------------------------------- .text:00030240 dword_30240 DCD 0xFFFFFFFF, 0 ; DATA XREF: _IO_wfile_seekoff+90o .text:00030248 ; --------------------------------------------------------------------------- .text:00030248 .text:00030248 loc_30248 ; CODE XREF: _IO_wfile_seekoff+3FCj .text:00030248 LDRB R3, [R7,#0x46] .text:0003024C CMP R10, #0 .text:00030250 LDR R1, [R7,#0x1C] .text:00030254 MOV R3, R3,LSL#24 .text:00030258 ADD R3, R7, R3,ASR#24 .text:0003025C LDR R12, [R3,R6] .text:00030260 LDREQ R3, [R7,#0x20] .text:00030264 RSBEQ R2, R1, R3 .text:00030268 MOVNE R2, R4 .text:0003026C MOV R0, R7 .text:00030270 MOV LR, PC .text:00030274 LDR PC, [R12,#0x38] .text:00030278 MOV R12, R0 .text:0003027C MOV R1, R12 .text:00030280 MOV R2, R1,ASR#31 .text:00030284 CMP R5, R2 .text:00030288 BGT loc_30298 .text:0003028C BNE loc_302F8 .text:00030290 CMP R4, R1 .text:00030294 BLS loc_302F8 .text:00030298 .text:00030298 loc_30298 ; CODE XREF: _IO_wfile_seekoff+450j .text:00030298 SUB R0, R11, #-var_90 .text:0003029C STMIA R0, {R4,R5} .text:000302A0 MOV R5, R0 .text:000302A4 MOV LR, R0 .text:000302A8 LDMIA R5, {R3,R4} .text:000302AC MOV R8, #1 .text:000302B0 SUBS R3, R3, R1 .text:000302B4 SBC R4, R4, R2 .text:000302B8 CMN R12, #1 .text:000302BC MOVNE R1, #0 .text:000302C0 MOVEQ R1, #1 .text:000302C4 MOV R2, #0 .text:000302C8 RSBS R5, R1, #0 .text:000302CC RSC R6, R2, #0 .text:000302D0 MOV R12, R0 .text:000302D4 LDMIA R12, {R1,R2} .text:000302D8 BIC R3, R3, R5 .text:000302DC BIC R4, R4, R6 .text:000302E0 AND R1, R1, R5 .text:000302E4 AND R2, R2, R6 .text:000302E8 ORR R1, R1, R3 .text:000302EC ORR R2, R2, R4 .text:000302F0 STMIA LR, {R1,R2} .text:000302F4 B loc_30344 .text:000302F8 ; --------------------------------------------------------------------------- .text:000302F8 .text:000302F8 loc_302F8 ; CODE XREF: _IO_wfile_seekoff+404j .text:000302F8 ; _IO_wfile_seekoff+454j ... .text:000302F8 LDR R1, [R7,#0x1C] .text:000302FC STR R1, [R7,#0xC] .text:00030300 ADD R3, R1, R4 .text:00030304 STR R3, [R7,#4] .text:00030308 ADD R2, R1, R12 .text:0003030C STR R2, [R7,#8] .text:00030310 STR R1, [R7,#0x14] .text:00030314 STR R1, [R7,#0x10] .text:00030318 STR R1, [R7,#0x18] .text:0003031C ADD R0, R7, #0x4C .text:00030320 ADDS R3, R8, R12 .text:00030324 ADC R4, R9, R12,ASR#31 .text:00030328 STMIA R0, {R3,R4} .text:0003032C LDR R2, [R7] .text:00030330 SUB R3, R11, #-var_90 .text:00030334 LDMIA R3, {R0,R1} .text:00030338 BIC R2, R2, #0x10 .text:0003033C STR R2, [R7] .text:00030340 B locret_30404 .text:00030344 ; --------------------------------------------------------------------------- .text:00030344 .text:00030344 loc_30344 ; CODE XREF: _IO_wfile_seekoff+218j .text:00030344 ; _IO_wfile_seekoff+260j ... .text:00030344 MOV R0, R7 .text:00030348 BL _IO_unsave_markers .text:0003034C MOV R0, R7 .text:00030350 LDRB R3, [R7,#0x46] .text:00030354 SUB R4, R11, #-var_90 .text:00030358 LDMIA R4, {R1,R2} .text:0003035C MOV R3, R3,LSL#24 .text:00030360 ADD R3, R7, R3,ASR#24 .text:00030364 LDR R12, [R3,#0x94] .text:00030368 MOV R3, R8 .text:0003036C MOV LR, PC .text:00030370 LDR PC, [R12,#0x40] .text:00030374 MOV R9, R1 .text:00030378 MOV R8, R0 .text:0003037C CMN R8, #1 .text:00030380 BNE loc_3038C .text:00030384 CMN R9, #1 .text:00030388 BEQ loc_303BC .text:0003038C .text:0003038C loc_3038C ; CODE XREF: _IO_wfile_seekoff+548j .text:0003038C LDR R3, [R7] .text:00030390 BIC R3, R3, #0x10 .text:00030394 STR R3, [R7] .text:00030398 ADD R2, R7, #0x4C .text:0003039C STMIA R2, {R8,R9} .text:000303A0 LDR R3, [R7,#0x1C] .text:000303A4 STR R3, [R7,#0xC] .text:000303A8 STR R3, [R7,#4] .text:000303AC STR R3, [R7,#8] .text:000303B0 STR R3, [R7,#0x14] .text:000303B4 STR R3, [R7,#0x10] .text:000303B8 STR R3, [R7,#0x18] .text:000303BC .text:000303BC loc_303BC ; CODE XREF: _IO_wfile_seekoff+550j .text:000303BC MOV R1, R9 .text:000303C0 MOV R0, R8 .text:000303C4 B locret_30404 .text:000303C8 ; --------------------------------------------------------------------------- .text:000303C8 .text:000303C8 loc_303C8 ; CODE XREF: _IO_wfile_seekoff+34Cj .text:000303C8 ADD R1, R7, #0x4C .text:000303CC LDR R3, [R1,#4] .text:000303D0 CMP R3, #0 .text:000303D4 BLT loc_303FC .text:000303D8 LDRB R3, [R7,#0x46] .text:000303DC MOV R0, R7 .text:000303E0 LDMIA R1, {R1,R2} .text:000303E4 MOV R3, R3,LSL#24 .text:000303E8 ADD R3, R7, R3,ASR#24 .text:000303EC LDR R12, [R3,#0x94] .text:000303F0 MOV R3, #0 .text:000303F4 MOV LR, PC .text:000303F8 LDR PC, [R12,#0x40] .text:000303FC .text:000303FC loc_303FC ; CODE XREF: _IO_wfile_seekoff+59Cj .text:000303FC SUB R5, R11, #-var_90 .text:00030400 LDMIA R5, {R0,R1} .text:00030404 .text:00030404 locret_30404 ; CODE XREF: _IO_wfile_seekoff+98j .text:00030404 ; _IO_wfile_seekoff+2A4j ... .text:00030404 LDMDB R11, {R4-R11,SP,PC} .text:00030404 ; End of function _IO_wfile_seekoff .text:00030404 .text:00030408 .text:00030408 ; =============== S U B R O U T I N E ======================================= .text:00030408 .text:00030408 ; Attributes: bp-based frame .text:00030408 .text:00030408 EXPORT _IO_wfile_xsputn .text:00030408 _IO_wfile_xsputn .text:00030408 MOV R12, SP .text:0003040C STMFD SP!, {R4-R8,R10-R12,LR,PC} .text:00030410 SUB R11, R12, #4 .text:00030414 MOV R5, R1 .text:00030418 MOV LR, R5 .text:0003041C MOV R6, R2 .text:00030420 MOV R8, R6 .text:00030424 MOV R10, #0 .text:00030428 CMP R6, R10 .text:0003042C MOV R7, R0 .text:00030430 MOVEQ R0, R6 .text:00030434 LDMEQDB R11, {R4-R8,R10,R11,SP,PC} .text:00030438 LDR R3, [R7] .text:0003043C LDR R2, [R7,#0x58] .text:00030440 AND R3, R3, #0xA00 .text:00030444 CMP R3, #0xA00 .text:00030448 ADD R0, R2, #0x14 .text:0003044C LDMDA R0, {R0,R1} .text:00030450 SUB R1, R1, R0 .text:00030454 MOV R12, R2 .text:00030458 LDR R2, [R2,#0x10] .text:0003045C MOV R4, R1,ASR#2 .text:00030460 BNE loc_304A0 .text:00030464 LDR R3, [R12,#0x1C] .text:00030468 RSB R3, R2, R3 .text:0003046C MOV R4, R3,ASR#2 .text:00030470 CMP R4, R6 .text:00030474 BCC loc_304A0 .text:00030478 ADD R2, LR, R6,LSL#2 .text:0003047C .text:0003047C loc_3047C ; CODE XREF: _IO_wfile_xsputn+84j .text:0003047C CMP R2, R5 .text:00030480 BLS loc_304A0 .text:00030484 LDR R3, [R2,#-4]! .text:00030488 CMP R3, #0xA .text:0003048C BNE loc_3047C .text:00030490 RSB R3, R5, R2 .text:00030494 MOV R3, R3,ASR#2 .text:00030498 ADD R4, R3, #1 .text:0003049C MOV R10, #1 .text:000304A0 .text:000304A0 loc_304A0 ; CODE XREF: _IO_wfile_xsputn+58j .text:000304A0 ; _IO_wfile_xsputn+6Cj ... .text:000304A0 CMP R4, #0 .text:000304A4 BEQ loc_30508 .text:000304A8 CMP R4, R6 .text:000304AC MOVCS R4, R6 .text:000304B0 CMP R4, #0x14 .text:000304B4 BLS loc_304DC .text:000304B8 MOV R1, R5 .text:000304BC LDR R0, [R12,#0x10] .text:000304C0 MOV R2, R4 .text:000304C4 BL wmempcpy .text:000304C8 ADD LR, R5, R4,LSL#2 .text:000304CC LDR R3, [R7,#0x58] .text:000304D0 RSB R1, R4, R6 .text:000304D4 STR R0, [R3,#0x10] .text:000304D8 B loc_30504 .text:000304DC ; --------------------------------------------------------------------------- .text:000304DC .text:000304DC loc_304DC ; CODE XREF: _IO_wfile_xsputn+ACj .text:000304DC SUBS R0, R4, #1 .text:000304E0 RSB R1, R4, R6 .text:000304E4 LDR R2, [R12,#0x10] .text:000304E8 BMI loc_304FC .text:000304EC .text:000304EC loc_304EC ; CODE XREF: _IO_wfile_xsputn+F0j .text:000304EC LDR R3, [LR],#4 .text:000304F0 SUBS R0, R0, #1 .text:000304F4 STR R3, [R2],#4 .text:000304F8 BPL loc_304EC .text:000304FC .text:000304FC loc_304FC ; CODE XREF: _IO_wfile_xsputn+E0j .text:000304FC LDR R3, [R7,#0x58] .text:00030500 STR R2, [R3,#0x10] .text:00030504 .text:00030504 loc_30504 ; CODE XREF: _IO_wfile_xsputn+D0j .text:00030504 MOV R8, R1 .text:00030508 .text:00030508 loc_30508 ; CODE XREF: _IO_wfile_xsputn+9Cj .text:00030508 CMP R8, #0 .text:0003050C BEQ loc_30524 .text:00030510 MOV R0, R7 .text:00030514 MOV R1, LR .text:00030518 MOV R2, R8 .text:0003051C BL _IO_wdefault_xsputn .text:00030520 RSB R8, R0, R8 .text:00030524 .text:00030524 loc_30524 ; CODE XREF: _IO_wfile_xsputn+104j .text:00030524 CMP R10, #0 .text:00030528 BEQ loc_30554 .text:0003052C LDR R3, [R7,#0x58] .text:00030530 ADD R2, R3, #0xC .text:00030534 LDMIA R2, {R2,R12} .text:00030538 CMP R12, R2 .text:0003053C BEQ loc_30554 .text:00030540 MOV R0, R7 .text:00030544 MOV R1, R2 .text:00030548 RSB R2, R2, R12 .text:0003054C MOV R2, R2,ASR#2 .text:00030550 BL _IO_wdo_write .text:00030554 .text:00030554 loc_30554 ; CODE XREF: _IO_wfile_xsputn+120j .text:00030554 ; _IO_wfile_xsputn+134j .text:00030554 RSB R0, R8, R6 .text:00030558 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:00030558 ; End of function _IO_wfile_xsputn .text:00030558 .text:0003055C .text:0003055C ; =============== S U B R O U T I N E ======================================= .text:0003055C .text:0003055C ; Attributes: bp-based frame .text:0003055C .text:0003055C EXPORT _IO_fwide .text:0003055C _IO_fwide ; CODE XREF: fwide+B4p .text:0003055C ; vfwprintf+48p ... .text:0003055C .text:0003055C var_28 = -0x28 .text:0003055C var_24 = -0x24 .text:0003055C .text:0003055C MOV R12, SP .text:00030560 STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:00030564 SUB R11, R12, #4 .text:00030568 CMP R1, #0 .text:0003056C MOVEQ R3, #0 .text:00030570 MOVNE R3, #1 .text:00030574 MOVGE R8, R3 .text:00030578 MOVLT R8, 0xFFFFFFFF .text:0003057C CMP R8, #0 .text:00030580 MOV R6, R0 .text:00030584 SUB SP, SP, #8 .text:00030588 LDREQ R0, [R6,#0x5C] .text:0003058C BEQ loc_30678 .text:00030590 LDR R7, [R6,#0x5C] .text:00030594 CMP R7, #0 .text:00030598 MOVNE R0, R7 .text:0003059C BNE loc_30678 .text:000305A0 CMP R8, #0 .text:000305A4 BLE loc_30670 .text:000305A8 LDR R3, [R6,#0x58] .text:000305AC ADD R4, R3, #0x3C .text:000305B0 STR R4, [R6,#0x54] .text:000305B4 LDR R2, [R3,#4] .text:000305B8 STR R2, [R3] .text:000305BC LDR R1, [R6,#0x58] .text:000305C0 LDR R3, [R1,#0xC] .text:000305C4 STR R3, [R1,#0x10] .text:000305C8 MOV R5, #8 .text:000305CC MOV R2, R5 .text:000305D0 LDR R0, [R6,#0x58] .text:000305D4 MOV R1, R7 .text:000305D8 ADD R0, R0, #0x2C .text:000305DC BL memset .text:000305E0 MOV R1, R7 .text:000305E4 LDR R0, [R6,#0x58] .text:000305E8 MOV R2, R5 .text:000305EC ADD R0, R0, #0x34 .text:000305F0 BL memset .text:000305F4 SUB R0, R11, #-var_28 .text:000305F8 BL __wcsmbs_clone_conv .text:000305FC MOV R0, R4 .text:00030600 LDR R1, =__libio_codecvt .text:00030604 MOV R2, #0x78 .text:00030608 BL memcpy .text:0003060C MOV R2, #1 .text:00030610 STR R2, [R4,#0x20] .text:00030614 LDR R1, [R11,#var_28] .text:00030618 STR R7, [R4,#0x34] .text:0003061C STR R2, [R4,#0x38] .text:00030620 STR R2, [R4,#0x30] .text:00030624 STR R1, [R4,#0x24] .text:00030628 LDR R3, [R6,#0x58] .text:0003062C STR R7, [R4,#0x48] .text:00030630 STR R2, [R4,#0x4C] .text:00030634 ADD R3, R3, #0x2C .text:00030638 STR R3, [R4,#0x3C] .text:0003063C LDR R1, [R11,#var_24] .text:00030640 STR R7, [R4,#0x60] .text:00030644 STR R2, [R4,#0x64] .text:00030648 STR R2, [R4,#0x5C] .text:0003064C STR R1, [R4,#0x50] .text:00030650 LDR R2, =libio_translit .text:00030654 LDR R3, [R6,#0x58] .text:00030658 STR R2, [R4,#0x74] .text:0003065C ADD R3, R3, #0x2C .text:00030660 STR R3, [R4,#0x68] .text:00030664 LDR R2, [R6,#0x58] .text:00030668 LDR R3, [R2,#0xB8] .text:0003066C STR R3, [R6,#0x94] .text:00030670 .text:00030670 loc_30670 ; CODE XREF: _IO_fwide+48j .text:00030670 MOV R0, R8 .text:00030674 STR R8, [R6,#0x5C] .text:00030678 .text:00030678 loc_30678 ; CODE XREF: _IO_fwide+30j .text:00030678 ; _IO_fwide+40j .text:00030678 B locret_30684 .text:00030678 ; --------------------------------------------------------------------------- .text:0003067C off_3067C DCD __libio_codecvt ; DATA XREF: _IO_fwide+A4r .text:00030680 off_30680 DCD libio_translit ; DATA XREF: _IO_fwide+F4r .text:00030684 ; --------------------------------------------------------------------------- .text:00030684 .text:00030684 locret_30684 ; CODE XREF: _IO_fwide:loc_30678j .text:00030684 LDMDB R11, {R4-R8,R11,SP,PC} .text:00030684 ; End of function _IO_fwide .text:00030684 .text:00030688 .text:00030688 ; =============== S U B R O U T I N E ======================================= .text:00030688 .text:00030688 ; Attributes: bp-based frame .text:00030688 .text:00030688 do_out .text:00030688 .text:00030688 var_38 = -0x38 .text:00030688 var_34 = -0x34 .text:00030688 var_30 = -0x30 .text:00030688 var_2C = -0x2C .text:00030688 var_28 = -0x28 .text:00030688 var_24 = -0x24 .text:00030688 arg_0 = 4 .text:00030688 arg_4 = 8 .text:00030688 arg_8 = 0xC .text:00030688 arg_C = 0x10 .text:00030688 .text:00030688 MOV R12, SP .text:0003068C STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:00030690 SUB R11, R12, #4 .text:00030694 SUB SP, SP, #0x18 .text:00030698 STR R2, [R11,#var_24] .text:0003069C MOV R4, R0 .text:000306A0 STR R1, [R4,#0x68] .text:000306A4 LDR R2, [R11,#arg_4] .text:000306A8 STR R2, [R4,#0x54] .text:000306AC LDR R1, [R11,#arg_8] .text:000306B0 STR R1, [R4,#0x58] .text:000306B4 LDR R7, [R11,#arg_0] .text:000306B8 LDR R5, [R4,#0x50] .text:000306BC LDR R0, [R5,#0x14] .text:000306C0 MOV R6, R3 .text:000306C4 LDR R8, [R11,#arg_C] .text:000306C8 BL _dl_mcount_wrapper_check .text:000306CC MOV R2, #0 .text:000306D0 STR R2, [SP,#0x38+var_38] .text:000306D4 SUB R3, R11, #-var_28 .text:000306D8 STR R3, [SP,#0x38+var_34] .text:000306DC STR R2, [SP,#0x38+var_30] .text:000306E0 STR R2, [SP,#0x38+var_2C] .text:000306E4 MOV R0, R5 .text:000306E8 ADD R1, R4, #0x54 .text:000306EC SUB R2, R11, #-var_24 .text:000306F0 MOV R3, R6 .text:000306F4 MOV LR, PC .text:000306F8 LDR PC, [R5,#0x14] .text:000306FC LDR R3, [R11,#var_24] .text:00030700 STR R3, [R7] .text:00030704 LDR R2, [R4,#0x54] .text:00030708 STR R2, [R8] .text:0003070C CMP R0, #7 ; switch 8 cases .text:00030710 LDRLS PC, [PC,R0,LSL#2] ; switch jump .text:00030714 B loc_30748 ; jumptable 00030710 default case .text:00030714 ; --------------------------------------------------------------------------- .text:00030718 DCD loc_30738 ; jump table for switch statement .text:00030718 DCD loc_30748 .text:00030718 DCD loc_30748 .text:00030718 DCD loc_30748 .text:00030718 DCD loc_30738 .text:00030718 DCD loc_30740 .text:00030718 DCD loc_30748 .text:00030718 DCD loc_30740 .text:00030738 ; --------------------------------------------------------------------------- .text:00030738 .text:00030738 loc_30738 ; CODE XREF: do_out+88j .text:00030738 ; DATA XREF: do_out+90o .text:00030738 MOV R0, #0 ; jumptable 00030710 cases 0,4 .text:0003073C B locret_3074C .text:00030740 ; --------------------------------------------------------------------------- .text:00030740 .text:00030740 loc_30740 ; CODE XREF: do_out+88j .text:00030740 ; DATA XREF: do_out+90o .text:00030740 MOV R0, #1 ; jumptable 00030710 cases 5,7 .text:00030744 B locret_3074C .text:00030748 ; --------------------------------------------------------------------------- .text:00030748 .text:00030748 loc_30748 ; CODE XREF: do_out+88j .text:00030748 ; do_out+8Cj .text:00030748 ; DATA XREF: ... .text:00030748 MOV R0, #2 ; jumptable 00030710 default case .text:0003074C .text:0003074C locret_3074C ; CODE XREF: do_out+B4j .text:0003074C ; do_out+BCj .text:0003074C LDMDB R11, {R4-R8,R11,SP,PC} .text:0003074C ; End of function do_out .text:0003074C .text:00030750 .text:00030750 ; =============== S U B R O U T I N E ======================================= .text:00030750 .text:00030750 ; Attributes: bp-based frame .text:00030750 .text:00030750 do_unshift .text:00030750 .text:00030750 var_2C = -0x2C .text:00030750 var_28 = -0x28 .text:00030750 var_24 = -0x24 .text:00030750 var_20 = -0x20 .text:00030750 var_1C = -0x1C .text:00030750 arg_0 = 4 .text:00030750 .text:00030750 MOV R12, SP .text:00030754 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:00030758 MOV R4, R0 .text:0003075C SUB SP, SP, #0x14 .text:00030760 STR R2, [R4,#0x54] .text:00030764 STR R3, [R4,#0x58] .text:00030768 STR R1, [R4,#0x68] .text:0003076C LDR R5, [R4,#0x50] .text:00030770 LDR R0, [R5,#0x14] .text:00030774 SUB R11, R12, #4 .text:00030778 LDR R6, [R11,#arg_0] .text:0003077C BL _dl_mcount_wrapper_check .text:00030780 MOV R2, #0 .text:00030784 STR R2, [SP,#0x2C+var_2C] .text:00030788 SUB R3, R11, #-var_1C .text:0003078C STR R3, [SP,#0x2C+var_28] .text:00030790 MOV R1, #1 .text:00030794 STR R1, [SP,#0x2C+var_24] .text:00030798 STR R2, [SP,#0x2C+var_20] .text:0003079C MOV R0, R5 .text:000307A0 ADD R1, R4, #0x54 .text:000307A4 MOV R3, R2 .text:000307A8 MOV LR, PC .text:000307AC LDR PC, [R5,#0x14] .text:000307B0 LDR R3, [R4,#0x54] .text:000307B4 STR R3, [R6] .text:000307B8 CMP R0, #7 ; switch 8 cases .text:000307BC LDRLS PC, [PC,R0,LSL#2] ; switch jump .text:000307C0 B loc_307F4 ; jumptable 000307BC default case .text:000307C0 ; --------------------------------------------------------------------------- .text:000307C4 DCD loc_307E4 ; jump table for switch statement .text:000307C4 DCD loc_307F4 .text:000307C4 DCD loc_307F4 .text:000307C4 DCD loc_307F4 .text:000307C4 DCD loc_307E4 .text:000307C4 DCD loc_307EC .text:000307C4 DCD loc_307F4 .text:000307C4 DCD loc_307EC .text:000307E4 ; --------------------------------------------------------------------------- .text:000307E4 .text:000307E4 loc_307E4 ; CODE XREF: do_unshift+6Cj .text:000307E4 ; DATA XREF: do_unshift+74o .text:000307E4 MOV R0, #0 ; jumptable 000307BC cases 0,4 .text:000307E8 B locret_307F8 .text:000307EC ; --------------------------------------------------------------------------- .text:000307EC .text:000307EC loc_307EC ; CODE XREF: do_unshift+6Cj .text:000307EC ; DATA XREF: do_unshift+74o .text:000307EC MOV R0, #1 ; jumptable 000307BC cases 5,7 .text:000307F0 B locret_307F8 .text:000307F4 ; --------------------------------------------------------------------------- .text:000307F4 .text:000307F4 loc_307F4 ; CODE XREF: do_unshift+6Cj .text:000307F4 ; do_unshift+70j .text:000307F4 ; DATA XREF: ... .text:000307F4 MOV R0, #2 ; jumptable 000307BC default case .text:000307F8 .text:000307F8 locret_307F8 ; CODE XREF: do_unshift+98j .text:000307F8 ; do_unshift+A0j .text:000307F8 LDMDB R11, {R4-R6,R11,SP,PC} .text:000307F8 ; End of function do_unshift .text:000307F8 .text:000307FC .text:000307FC ; =============== S U B R O U T I N E ======================================= .text:000307FC .text:000307FC ; Attributes: bp-based frame .text:000307FC .text:000307FC do_in .text:000307FC .text:000307FC var_38 = -0x38 .text:000307FC var_34 = -0x34 .text:000307FC var_30 = -0x30 .text:000307FC var_2C = -0x2C .text:000307FC var_28 = -0x28 .text:000307FC var_24 = -0x24 .text:000307FC arg_0 = 4 .text:000307FC arg_4 = 8 .text:000307FC arg_8 = 0xC .text:000307FC arg_C = 0x10 .text:000307FC .text:000307FC MOV R12, SP .text:00030800 STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:00030804 SUB R11, R12, #4 .text:00030808 SUB SP, SP, #0x18 .text:0003080C STR R2, [R11,#var_24] .text:00030810 MOV R4, R0 .text:00030814 STR R1, [R4,#0x3C] .text:00030818 LDR R2, [R11,#arg_4] .text:0003081C STR R2, [R4,#0x28] .text:00030820 LDR R1, [R11,#arg_8] .text:00030824 STR R1, [R4,#0x2C] .text:00030828 LDR R7, [R11,#arg_0] .text:0003082C LDR R5, [R4,#0x24] .text:00030830 LDR R0, [R5,#0x14] .text:00030834 MOV R6, R3 .text:00030838 LDR R8, [R11,#arg_C] .text:0003083C BL _dl_mcount_wrapper_check .text:00030840 MOV R2, #0 .text:00030844 STR R2, [SP,#0x38+var_38] .text:00030848 SUB R3, R11, #-var_28 .text:0003084C STR R3, [SP,#0x38+var_34] .text:00030850 STR R2, [SP,#0x38+var_30] .text:00030854 STR R2, [SP,#0x38+var_2C] .text:00030858 MOV R0, R5 .text:0003085C ADD R1, R4, #0x28 .text:00030860 SUB R2, R11, #-var_24 .text:00030864 MOV R3, R6 .text:00030868 MOV LR, PC .text:0003086C LDR PC, [R5,#0x14] .text:00030870 LDR R3, [R11,#var_24] .text:00030874 STR R3, [R7] .text:00030878 LDR R2, [R4,#0x28] .text:0003087C STR R2, [R8] .text:00030880 CMP R0, #7 ; switch 8 cases .text:00030884 LDRLS PC, [PC,R0,LSL#2] ; switch jump .text:00030888 B loc_308BC ; jumptable 00030884 default case .text:00030888 ; --------------------------------------------------------------------------- .text:0003088C DCD loc_308AC ; jump table for switch statement .text:0003088C DCD loc_308BC .text:0003088C DCD loc_308BC .text:0003088C DCD loc_308BC .text:0003088C DCD loc_308AC .text:0003088C DCD loc_308B4 .text:0003088C DCD loc_308BC .text:0003088C DCD loc_308B4 .text:000308AC ; --------------------------------------------------------------------------- .text:000308AC .text:000308AC loc_308AC ; CODE XREF: do_in+88j .text:000308AC ; DATA XREF: do_in+90o .text:000308AC MOV R0, #0 ; jumptable 00030884 cases 0,4 .text:000308B0 B locret_308C0 .text:000308B4 ; --------------------------------------------------------------------------- .text:000308B4 .text:000308B4 loc_308B4 ; CODE XREF: do_in+88j .text:000308B4 ; DATA XREF: do_in+90o .text:000308B4 MOV R0, #1 ; jumptable 00030884 cases 5,7 .text:000308B8 B locret_308C0 .text:000308BC ; --------------------------------------------------------------------------- .text:000308BC .text:000308BC loc_308BC ; CODE XREF: do_in+88j .text:000308BC ; do_in+8Cj .text:000308BC ; DATA XREF: ... .text:000308BC MOV R0, #2 ; jumptable 00030884 default case .text:000308C0 .text:000308C0 locret_308C0 ; CODE XREF: do_in+B4j .text:000308C0 ; do_in+BCj .text:000308C0 LDMDB R11, {R4-R8,R11,SP,PC} .text:000308C0 ; End of function do_in .text:000308C0 .text:000308C4 .text:000308C4 ; =============== S U B R O U T I N E ======================================= .text:000308C4 .text:000308C4 ; Attributes: bp-based frame .text:000308C4 .text:000308C4 do_encoding .text:000308C4 MOV R12, SP .text:000308C8 STMFD SP!, {R11,R12,LR,PC} .text:000308CC LDR R2, [R0,#0x24] .text:000308D0 LDR R1, [R2,#0x30] .text:000308D4 SUB R11, R12, #4 .text:000308D8 CMP R1, #0 .text:000308DC MOVNE R0, 0xFFFFFFFF .text:000308E0 LDMNEDB R11, {R11,SP,PC} .text:000308E4 LDR R3, [R2,#0x20] .text:000308E8 LDR R0, [R2,#0x24] .text:000308EC CMP R3, R0 .text:000308F0 MOVNE R0, R1 .text:000308F4 LDMDB R11, {R11,SP,PC} .text:000308F4 ; End of function do_encoding .text:000308F4 .text:000308F8 .text:000308F8 ; =============== S U B R O U T I N E ======================================= .text:000308F8 .text:000308F8 ; Attributes: bp-based frame .text:000308F8 .text:000308F8 do_always_noconv .text:000308F8 MOV R12, SP .text:000308FC STMFD SP!, {R11,R12,LR,PC} .text:00030900 SUB R11, R12, #4 .text:00030904 MOV R0, #0 .text:00030908 LDMDB R11, {R11,SP,PC} .text:00030908 ; End of function do_always_noconv .text:00030908 .text:0003090C .text:0003090C ; =============== S U B R O U T I N E ======================================= .text:0003090C .text:0003090C ; Attributes: bp-based frame .text:0003090C .text:0003090C do_length .text:0003090C .text:0003090C var_34 = -0x34 .text:0003090C var_30 = -0x30 .text:0003090C var_2C = -0x2C .text:0003090C var_28 = -0x28 .text:0003090C var_24 = -0x24 .text:0003090C var_20 = -0x20 .text:0003090C arg_0 = 4 .text:0003090C .text:0003090C MOV R12, SP .text:00030910 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:00030914 SUB R11, R12, #4 .text:00030918 MOV R7, R2 .text:0003091C SUB SP, SP, #0x18 .text:00030920 STR R7, [R11,#var_20] .text:00030924 LDR R12, [R11,#arg_0] .text:00030928 MOV R4, R0 .text:0003092C STR R1, [R4,#0x3C] .text:00030930 MOV R1, R12,LSL#5 .text:00030934 SUB SP, SP, R1,LSR#3 .text:00030938 ADD R2, SP, #0x34+var_24 .text:0003093C STR R2, [R4,#0x28] .text:00030940 ADD R2, R2, R12,LSL#2 .text:00030944 STR R2, [R4,#0x2C] .text:00030948 LDR R5, [R4,#0x24] .text:0003094C LDR R0, [R5,#0x14] .text:00030950 MOV R6, R3 .text:00030954 BL _dl_mcount_wrapper_check .text:00030958 MOV R2, #0 .text:0003095C STR R2, [SP,#0x34+var_34] .text:00030960 SUB R3, R11, #-var_24 .text:00030964 STR R3, [SP,#0x34+var_30] .text:00030968 STR R2, [SP,#0x34+var_2C] .text:0003096C STR R2, [SP,#0x34+var_28] .text:00030970 MOV R0, R5 .text:00030974 ADD R1, R4, #0x28 .text:00030978 SUB R2, R11, #-var_20 .text:0003097C MOV R3, R6 .text:00030980 MOV LR, PC .text:00030984 LDR PC, [R5,#0x14] .text:00030988 LDR R0, [R11,#var_20] .text:0003098C RSB R0, R7, R0 .text:00030990 LDMDB R11, {R4-R7,R11,SP,PC} .text:00030990 ; End of function do_length .text:00030990 .text:00030994 .text:00030994 ; =============== S U B R O U T I N E ======================================= .text:00030994 .text:00030994 ; Attributes: bp-based frame .text:00030994 .text:00030994 do_max_length .text:00030994 MOV R12, SP .text:00030998 STMFD SP!, {R11,R12,LR,PC} .text:0003099C LDR R3, [R0,#0x24] .text:000309A0 SUB R11, R12, #4 .text:000309A4 LDR R0, [R3,#0x24] .text:000309A8 LDMDB R11, {R11,SP,PC} .text:000309A8 ; End of function do_max_length .text:000309A8 .text:000309AC .text:000309AC ; =============== S U B R O U T I N E ======================================= .text:000309AC .text:000309AC ; Attributes: bp-based frame .text:000309AC .text:000309AC EXPORT fgets_unlocked .text:000309AC fgets_unlocked ; CODE XREF: read_alias_file+B0p .text:000309AC ; read_alias_file+444p ... .text:000309AC .text:000309AC var_20 = -0x20 .text:000309AC .text:000309AC MOV R12, SP .text:000309B0 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:000309B4 SUB R11, R12, #4 .text:000309B8 MOV R5, R0 .text:000309BC MOV R4, R2 .text:000309C0 SUBS R12, R1, #0 .text:000309C4 SUB SP, SP, #4 .text:000309C8 MOVLE R0, #0 .text:000309CC BLE locret_30A40 .text:000309D0 MOV R3, #1 .text:000309D4 STR R3, [SP,#0x20+var_20] .text:000309D8 LDR R2, [R4] .text:000309DC MOV R0, R4 .text:000309E0 BIC R3, R2, #0x20 .text:000309E4 STR R3, [R4] .text:000309E8 MOV R1, R5 .text:000309EC AND R7, R2, #0x20 .text:000309F0 SUB R2, R12, #1 .text:000309F4 MOV R3, #0xA .text:000309F8 BL _IO_getline .text:000309FC SUBS R6, R0, #0 .text:00030A00 BEQ loc_30A20 .text:00030A04 LDR R3, [R4] .text:00030A08 TST R3, #0x20 .text:00030A0C BEQ loc_30A28 .text:00030A10 BL __errno_location .text:00030A14 LDR R3, [R0] .text:00030A18 CMP R3, #0xB .text:00030A1C BEQ loc_30A28 .text:00030A20 .text:00030A20 loc_30A20 ; CODE XREF: fgets_unlocked+54j .text:00030A20 MOV R0, #0 .text:00030A24 B loc_30A34 .text:00030A28 ; --------------------------------------------------------------------------- .text:00030A28 .text:00030A28 loc_30A28 ; CODE XREF: fgets_unlocked+60j .text:00030A28 ; fgets_unlocked+70j .text:00030A28 MOV R0, R5 .text:00030A2C MOV R3, #0 .text:00030A30 STRB R3, [R5,R6] .text:00030A34 .text:00030A34 loc_30A34 ; CODE XREF: fgets_unlocked+78j .text:00030A34 LDR R3, [R4] .text:00030A38 ORR R3, R3, R7 .text:00030A3C STR R3, [R4] .text:00030A40 .text:00030A40 locret_30A40 ; CODE XREF: fgets_unlocked+20j .text:00030A40 LDMDB R11, {R4-R7,R11,SP,PC} .text:00030A40 ; End of function fgets_unlocked .text:00030A40 .text:00030A44 .text:00030A44 ; =============== S U B R O U T I N E ======================================= .text:00030A44 .text:00030A44 ; Attributes: bp-based frame .text:00030A44 .text:00030A44 EXPORT _IO_new_file_init .text:00030A44 _IO_new_file_init ; CODE XREF: fopen+58p .text:00030A44 MOV R12, SP ; Alternative name is '_IO_file_init' .text:00030A48 STMFD SP!, {R4,R11,R12,LR,PC} .text:00030A4C MOV R4, R0 .text:00030A50 ADD R1, R4, #0x4C .text:00030A54 MOV R3, 0xFFFFFFFF .text:00030A58 MOV R2, 0xFFFFFFFF .text:00030A5C STMIA R1, {R2,R3} .text:00030A60 LDR R3, [R4] .text:00030A64 ORR R3, R3, #0x2400 .text:00030A68 ORR R3, R3, #0xC .text:00030A6C STR R3, [R4] .text:00030A70 SUB R11, R12, #4 .text:00030A74 BL _IO_link_in .text:00030A78 MOV R3, 0xFFFFFFFF .text:00030A7C STR R3, [R4,#0x38] .text:00030A80 LDMDB R11, {R4,R11,SP,PC} .text:00030A80 ; End of function _IO_new_file_init .text:00030A80 .text:00030A84 .text:00030A84 ; =============== S U B R O U T I N E ======================================= .text:00030A84 .text:00030A84 ; Attributes: bp-based frame .text:00030A84 .text:00030A84 EXPORT _IO_new_file_close_it .text:00030A84 _IO_new_file_close_it ; CODE XREF: fclose+6Cp .text:00030A84 MOV R12, SP ; Alternative name is '_IO_file_close_it' .text:00030A88 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:00030A8C MOV R4, R0 .text:00030A90 LDR R0, [R4,#0x38] .text:00030A94 SUB R11, R12, #4 .text:00030A98 CMN R0, #1 .text:00030A9C LDMEQDB R11, {R4-R6,R11,SP,PC} .text:00030AA0 LDR R3, [R4,#0x5C] .text:00030AA4 CMP R3, #0 .text:00030AA8 BGT loc_30AC8 .text:00030AAC LDR R1, [R4,#0x10] .text:00030AB0 ADD R3, R4, #0x14 .text:00030AB4 LDMDA R3, {R2,R3} .text:00030AB8 SUB R2, R3, R2 .text:00030ABC MOV R0, R4 .text:00030AC0 BL _IO_new_do_write .text:00030AC4 B loc_30AE8 .text:00030AC8 ; --------------------------------------------------------------------------- .text:00030AC8 .text:00030AC8 loc_30AC8 ; CODE XREF: _IO_new_file_close_it+24j .text:00030AC8 LDR R3, [R4,#0x58] .text:00030ACC ADD R1, R3, #0x10 .text:00030AD0 LDMDA R1, {R1,R2} .text:00030AD4 SUB R2, R2, R1 .text:00030AD8 MOV R0, R4 .text:00030ADC LDR R1, [R3,#0xC] .text:00030AE0 MOV R2, R2,ASR#2 .text:00030AE4 BL _IO_wdo_write .text:00030AE8 .text:00030AE8 loc_30AE8 ; CODE XREF: _IO_new_file_close_it+40j .text:00030AE8 MOV R6, R0 .text:00030AEC MOV R0, R4 .text:00030AF0 BL _IO_unsave_markers .text:00030AF4 LDRB R3, [R4,#0x46] .text:00030AF8 MOV R3, R3,LSL#24 .text:00030AFC ADD R3, R4, R3,ASR#24 .text:00030B00 LDR R2, [R3,#0x94] .text:00030B04 MOV R0, R4 .text:00030B08 MOV LR, PC .text:00030B0C LDR PC, [R2,#0x44] .text:00030B10 LDR R3, [R4,#0x5C] .text:00030B14 MOV R5, R0 .text:00030B18 CMP R3, #0 .text:00030B1C BGT loc_30B54 .text:00030B20 MOV R0, R4 .text:00030B24 MOV R1, #0 .text:00030B28 MOV R2, R1 .text:00030B2C MOV R3, R1 .text:00030B30 BL _IO_setb .text:00030B34 MOV R3, #0 .text:00030B38 STR R3, [R4,#0xC] .text:00030B3C STR R3, [R4,#4] .text:00030B40 STR R3, [R4,#8] .text:00030B44 STR R3, [R4,#0x14] .text:00030B48 STR R3, [R4,#0x10] .text:00030B4C STR R3, [R4,#0x18] .text:00030B50 B loc_30B98 .text:00030B54 ; --------------------------------------------------------------------------- .text:00030B54 .text:00030B54 loc_30B54 ; CODE XREF: _IO_new_file_close_it+98j .text:00030B54 MOV R0, R4 .text:00030B58 MOV R1, #0 .text:00030B5C MOV R2, R1 .text:00030B60 MOV R3, R1 .text:00030B64 BL _IO_wsetb .text:00030B68 LDR R2, [R4,#0x58] .text:00030B6C MOV R0, #0 .text:00030B70 STR R0, [R2,#8] .text:00030B74 LDR R3, [R4,#0x58] .text:00030B78 STR R0, [R3] .text:00030B7C LDR R2, [R4,#0x58] .text:00030B80 STR R0, [R2,#4] .text:00030B84 LDR R1, [R4,#0x58] .text:00030B88 STR R0, [R1,#0x10] .text:00030B8C STR R0, [R1,#0xC] .text:00030B90 LDR R3, [R4,#0x58] .text:00030B94 STR R0, [R3,#0x14] .text:00030B98 .text:00030B98 loc_30B98 ; CODE XREF: _IO_new_file_close_it+CCj .text:00030B98 MOV R0, R4 .text:00030B9C BL _IO_un_link .text:00030BA0 MOV R3, 0xFFFFFFFF .text:00030BA4 STR R3, [R4,#0x38] .text:00030BA8 CMP R5, #0 .text:00030BAC LDR R2, =0xFBAD240C .text:00030BB0 MOVNE R0, R5 .text:00030BB4 MOVEQ R0, R6 .text:00030BB8 STR R2, [R4] .text:00030BBC ADD R3, R4, #0x4C .text:00030BC0 MOV R2, 0xFFFFFFFF .text:00030BC4 MOV R1, 0xFFFFFFFF .text:00030BC8 STMIA R3, {R1,R2} .text:00030BCC LDMDB R11, {R4-R6,R11,SP,PC} .text:00030BCC ; End of function _IO_new_file_close_it .text:00030BCC .text:00030BCC ; --------------------------------------------------------------------------- .text:00030BD0 dword_30BD0 DCD 0xFBAD240C ; DATA XREF: _IO_new_file_close_it+128r .text:00030BD4 .text:00030BD4 ; =============== S U B R O U T I N E ======================================= .text:00030BD4 .text:00030BD4 ; Attributes: bp-based frame .text:00030BD4 .text:00030BD4 WEAK _IO_new_file_finish .text:00030BD4 _IO_new_file_finish .text:00030BD4 MOV R12, SP .text:00030BD8 STMFD SP!, {R4,R11,R12,LR,PC} .text:00030BDC MOV R4, R0 .text:00030BE0 LDR R3, [R4,#0x38] .text:00030BE4 SUB R11, R12, #4 .text:00030BE8 CMN R3, #1 .text:00030BEC BEQ loc_30C5C .text:00030BF0 LDR R3, [R4,#0x5C] .text:00030BF4 CMP R3, #0 .text:00030BF8 BGT loc_30C14 .text:00030BFC LDR R1, [R4,#0x10] .text:00030C00 ADD R3, R4, #0x14 .text:00030C04 LDMDA R3, {R2,R3} .text:00030C08 SUB R2, R3, R2 .text:00030C0C BL _IO_new_do_write .text:00030C10 B loc_30C34 .text:00030C14 ; --------------------------------------------------------------------------- .text:00030C14 .text:00030C14 loc_30C14 ; CODE XREF: _IO_new_file_finish+24j .text:00030C14 LDR R3, [R4,#0x58] .text:00030C18 ADD R1, R3, #0x10 .text:00030C1C LDMDA R1, {R1,R2} .text:00030C20 SUB R2, R2, R1 .text:00030C24 MOV R0, R4 .text:00030C28 LDR R1, [R3,#0xC] .text:00030C2C MOV R2, R2,ASR#2 .text:00030C30 BL _IO_wdo_write .text:00030C34 .text:00030C34 loc_30C34 ; CODE XREF: _IO_new_file_finish+3Cj .text:00030C34 LDR R3, [R4] .text:00030C38 TST R3, #0x40 .text:00030C3C BNE loc_30C5C .text:00030C40 LDRB R3, [R4,#0x46] .text:00030C44 MOV R3, R3,LSL#24 .text:00030C48 ADD R3, R4, R3,ASR#24 .text:00030C4C LDR R2, [R3,#0x94] .text:00030C50 MOV R0, R4 .text:00030C54 MOV LR, PC .text:00030C58 LDR PC, [R2,#0x44] .text:00030C5C .text:00030C5C loc_30C5C ; CODE XREF: _IO_new_file_finish+18j .text:00030C5C ; _IO_new_file_finish+68j .text:00030C5C MOV R0, R4 .text:00030C60 MOV R1, #0 .text:00030C64 BL _IO_default_finish .text:00030C68 LDMDB R11, {R4,R11,SP,PC} .text:00030C68 ; End of function _IO_new_file_finish .text:00030C68 .text:00030C6C .text:00030C6C ; =============== S U B R O U T I N E ======================================= .text:00030C6C .text:00030C6C ; Attributes: bp-based frame .text:00030C6C .text:00030C6C EXPORT _IO_new_file_fopen .text:00030C6C _IO_new_file_fopen ; CODE XREF: fopen+6Cp .text:00030C6C .text:00030C6C var_30 = -0x30 .text:00030C6C var_2C = -0x2C .text:00030C6C var_28 = -0x28 .text:00030C6C .text:00030C6C MOV R12, SP ; Alternative name is '_IO_file_fopen' .text:00030C70 STMFD SP!, {R4-R8,R10-R12,LR,PC} .text:00030C74 SUB R11, R12, #4 .text:00030C78 MOV R8, R2 .text:00030C7C MOV R12, #0 .text:00030C80 MOV R6, #0x1B4 .text:00030C84 MOV R5, R0 .text:00030C88 ADD R6, R6, #2 .text:00030C8C SUB SP, SP, #0xC .text:00030C90 LDR R2, [R5,#0x38] .text:00030C94 MOV R0, R1 .text:00030C98 CMN R2, #1 .text:00030C9C MOVNE R0, #0 .text:00030CA0 BNE loc_30EE0 .text:00030CA4 LDRB R2, [R8] .text:00030CA8 CMP R2, #0x72 .text:00030CAC BEQ loc_30CCC .text:00030CB0 BGT loc_30CC0 .text:00030CB4 CMP R2, #0x61 .text:00030CB8 BEQ loc_30CE8 .text:00030CBC B loc_30CFC .text:00030CC0 ; --------------------------------------------------------------------------- .text:00030CC0 .text:00030CC0 loc_30CC0 ; CODE XREF: _IO_new_file_fopen+44j .text:00030CC0 CMP R2, #0x77 .text:00030CC4 BEQ loc_30CD8 .text:00030CC8 B loc_30CFC .text:00030CCC ; --------------------------------------------------------------------------- .text:00030CCC .text:00030CCC loc_30CCC ; CODE XREF: _IO_new_file_fopen+40j .text:00030CCC MOV R1, R12 .text:00030CD0 MOV R4, #8 .text:00030CD4 B loc_30D10 .text:00030CD8 ; --------------------------------------------------------------------------- .text:00030CD8 .text:00030CD8 loc_30CD8 ; CODE XREF: _IO_new_file_fopen+58j .text:00030CD8 MOV R1, #1 .text:00030CDC MOV R12, #0x240 .text:00030CE0 MOV R4, #4 .text:00030CE4 B loc_30D10 .text:00030CE8 ; --------------------------------------------------------------------------- .text:00030CE8 .text:00030CE8 loc_30CE8 ; CODE XREF: _IO_new_file_fopen+4Cj .text:00030CE8 MOV R1, #1 .text:00030CEC MOV R12, #0x440 .text:00030CF0 MOV R4, 0x1004 .text:00030CF8 B loc_30D10 .text:00030CFC ; --------------------------------------------------------------------------- .text:00030CFC .text:00030CFC loc_30CFC ; CODE XREF: _IO_new_file_fopen+50j .text:00030CFC ; _IO_new_file_fopen+5Cj .text:00030CFC BL __errno_location .text:00030D00 MOV R3, #0x16 .text:00030D04 STR R3, [R0] .text:00030D08 MOV R0, #0 .text:00030D0C B loc_30EE0 .text:00030D10 ; --------------------------------------------------------------------------- .text:00030D10 .text:00030D10 loc_30D10 ; CODE XREF: _IO_new_file_fopen+68j .text:00030D10 ; _IO_new_file_fopen+78j ... .text:00030D10 MOV LR, #1 .text:00030D14 LDR R10, =aCcs ; ",ccs=" .text:00030D18 B loc_30D20 .text:00030D1C ; --------------------------------------------------------------------------- .text:00030D1C .text:00030D1C loc_30D1C ; CODE XREF: _IO_new_file_fopen+C4j .text:00030D1C ; _IO_new_file_fopen+DCj ... .text:00030D1C ADD LR, LR, #1 .text:00030D20 .text:00030D20 loc_30D20 ; CODE XREF: _IO_new_file_fopen+ACj .text:00030D20 CMP LR, #3 .text:00030D24 BGT loc_30D6C .text:00030D28 LDRB R2, [R8,#1]! .text:00030D2C CMP R2, #0x62 .text:00030D30 BEQ loc_30D1C .text:00030D34 BGT loc_30D4C .text:00030D38 CMP R2, #0 .text:00030D3C BEQ loc_30D6C .text:00030D40 CMP R2, #0x2B .text:00030D44 BEQ loc_30D58 .text:00030D48 B loc_30D1C .text:00030D4C ; --------------------------------------------------------------------------- .text:00030D4C .text:00030D4C loc_30D4C ; CODE XREF: _IO_new_file_fopen+C8j .text:00030D4C CMP R2, #0x78 .text:00030D50 BEQ loc_30D64 .text:00030D54 B loc_30D1C .text:00030D58 ; --------------------------------------------------------------------------- .text:00030D58 .text:00030D58 loc_30D58 ; CODE XREF: _IO_new_file_fopen+D8j .text:00030D58 MOV R1, #2 .text:00030D5C AND R4, R4, #0x1000 .text:00030D60 B loc_30D1C .text:00030D64 ; --------------------------------------------------------------------------- .text:00030D64 .text:00030D64 loc_30D64 ; CODE XREF: _IO_new_file_fopen+E4j .text:00030D64 ORR R12, R12, #0x80 .text:00030D68 B loc_30D1C .text:00030D6C ; --------------------------------------------------------------------------- .text:00030D6C .text:00030D6C loc_30D6C ; CODE XREF: _IO_new_file_fopen+B8j .text:00030D6C ; _IO_new_file_fopen+D0j .text:00030D6C CMP R3, #0 .text:00030D70 ORR R1, R1, R12 .text:00030D74 BEQ loc_30D84 .text:00030D78 MOV R2, R6 .text:00030D7C BL open .text:00030D80 B loc_30D8C .text:00030D84 ; --------------------------------------------------------------------------- .text:00030D84 .text:00030D84 loc_30D84 ; CODE XREF: _IO_new_file_fopen+108j .text:00030D84 MOV R2, R6 .text:00030D88 BL open64 .text:00030D8C .text:00030D8C loc_30D8C ; CODE XREF: _IO_new_file_fopen+114j .text:00030D8C CMP R0, #0 .text:00030D90 BLT loc_30E14 .text:00030D94 BIC R2, R4, #0xFF0 .text:00030D98 BIC R2, R2, #3 .text:00030D9C MOV R2, R2,LSL#19 .text:00030DA0 MOV R2, R2,LSR#19 .text:00030DA4 LDR R3, [R5] .text:00030DA8 TST R4, #0x1000 .text:00030DAC STR R0, [R5,#0x38] .text:00030DB0 BIC R3, R3, #0x1000 .text:00030DB4 BIC R3, R3, #0xC .text:00030DB8 ORR R3, R3, R2 .text:00030DBC STR R3, [R5] .text:00030DC0 BEQ loc_30E1C .text:00030DC4 LDRB R3, [R5,#0x46] .text:00030DC8 MOV R3, R3,LSL#24 .text:00030DCC ADD R3, R5, R3,ASR#24 .text:00030DD0 LDR R12, [R3,#0x94] .text:00030DD4 MOV R2, #3 .text:00030DD8 STR R2, [SP,#0x30+var_30] .text:00030DDC MOV R0, R5 .text:00030DE0 MOV R2, #0 .text:00030DE4 MOV R1, #0 .text:00030DE8 MOV R3, #2 .text:00030DEC MOV LR, PC .text:00030DF0 LDR PC, [R12,#0x24] .text:00030DF4 CMN R0, #1 .text:00030DF8 BNE loc_30E1C .text:00030DFC CMN R1, #1 .text:00030E00 BNE loc_30E1C .text:00030E04 BL __errno_location .text:00030E08 LDR R3, [R0] .text:00030E0C CMP R3, #0x1D .text:00030E10 BEQ loc_30E1C .text:00030E14 .text:00030E14 loc_30E14 ; CODE XREF: _IO_new_file_fopen+124j .text:00030E14 MOV R7, #0 .text:00030E18 B loc_30E28 .text:00030E1C ; --------------------------------------------------------------------------- .text:00030E1C .text:00030E1C loc_30E1C ; CODE XREF: _IO_new_file_fopen+154j .text:00030E1C ; _IO_new_file_fopen+18Cj ... .text:00030E1C MOV R0, R5 .text:00030E20 MOV R7, R5 .text:00030E24 BL _IO_link_in .text:00030E28 .text:00030E28 loc_30E28 ; CODE XREF: _IO_new_file_fopen+1ACj .text:00030E28 MOV R0, R8 .text:00030E2C MOV R1, R10 .text:00030E30 BL strstr .text:00030E34 SUBS R1, R0, #0 .text:00030E38 BEQ loc_30EDC .text:00030E3C LDR R3, [R5,#0x58] .text:00030E40 CMP R3, #0 .text:00030E44 BEQ loc_30E5C .text:00030E48 SUB R0, R11, #-var_2C .text:00030E4C ADD R1, R1, #5 .text:00030E50 BL __wcsmbs_named_conv .text:00030E54 SUBS R6, R0, #0 .text:00030E58 BEQ loc_30E70 .text:00030E5C .text:00030E5C loc_30E5C ; CODE XREF: _IO_new_file_fopen+1D8j .text:00030E5C MOV R0, R7 .text:00030E60 BL fclose .text:00030E64 MOV R0, #0 .text:00030E68 B loc_30EE0 .text:00030E68 ; --------------------------------------------------------------------------- .text:00030E6C off_30E6C DCD aCcs ; DATA XREF: _IO_new_file_fopen+A8r .text:00030E6C ; ",ccs=" .text:00030E70 ; --------------------------------------------------------------------------- .text:00030E70 .text:00030E70 loc_30E70 ; CODE XREF: _IO_new_file_fopen+1ECj .text:00030E70 LDR R4, [R5,#0x58] .text:00030E74 ADD R4, R4, #0x3C .text:00030E78 STR R4, [R5,#0x54] .text:00030E7C MOV R2, #0x78 .text:00030E80 LDR R1, =__libio_codecvt .text:00030E84 MOV R0, R4 .text:00030E88 BL memcpy .text:00030E8C MOV R2, #1 .text:00030E90 STR R2, [R4,#0x20] .text:00030E94 LDR R1, [R11,#var_2C] .text:00030E98 STR R6, [R4,#0x34] .text:00030E9C STR R2, [R4,#0x38] .text:00030EA0 STR R2, [R4,#0x30] .text:00030EA4 STR R1, [R4,#0x24] .text:00030EA8 LDR R3, [R7,#0x58] .text:00030EAC STR R2, [R4,#0x4C] .text:00030EB0 ADD R3, R3, #0x2C .text:00030EB4 STR R3, [R4,#0x3C] .text:00030EB8 LDR R1, [R11,#var_28] .text:00030EBC STR R6, [R4,#0x60] .text:00030EC0 STR R2, [R4,#0x64] .text:00030EC4 STR R2, [R4,#0x5C] .text:00030EC8 STR R1, [R4,#0x50] .text:00030ECC LDR R3, [R7,#0x58] .text:00030ED0 ADD R3, R3, #0x2C .text:00030ED4 STR R3, [R4,#0x68] .text:00030ED8 STR R2, [R7,#0x5C] .text:00030EDC .text:00030EDC loc_30EDC ; CODE XREF: _IO_new_file_fopen+1CCj .text:00030EDC MOV R0, R7 .text:00030EE0 .text:00030EE0 loc_30EE0 ; CODE XREF: _IO_new_file_fopen+34j .text:00030EE0 ; _IO_new_file_fopen+A0j ... .text:00030EE0 B locret_30EE8 .text:00030EE0 ; --------------------------------------------------------------------------- .text:00030EE4 off_30EE4 DCD __libio_codecvt ; DATA XREF: _IO_new_file_fopen+214r .text:00030EE8 ; --------------------------------------------------------------------------- .text:00030EE8 .text:00030EE8 locret_30EE8 ; CODE XREF: _IO_new_file_fopen:loc_30EE0j .text:00030EE8 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:00030EE8 ; End of function _IO_new_file_fopen .text:00030EE8 .text:00030EEC .text:00030EEC ; =============== S U B R O U T I N E ======================================= .text:00030EEC .text:00030EEC ; Attributes: bp-based frame .text:00030EEC .text:00030EEC EXPORT _IO_new_file_attach .text:00030EEC _IO_new_file_attach .text:00030EEC .text:00030EEC var_14 = -0x14 .text:00030EEC .text:00030EEC MOV R12, SP ; Alternative name is '_IO_file_attach' .text:00030EF0 STMFD SP!, {R4,R11,R12,LR,PC} .text:00030EF4 MOV R4, R0 .text:00030EF8 SUB SP, SP, #4 .text:00030EFC LDR R3, [R4,#0x38] .text:00030F00 SUB R11, R12, #4 .text:00030F04 CMN R3, #1 .text:00030F08 MOVNE R0, #0 .text:00030F0C BNE locret_30F8C .text:00030F10 LDR R3, [R4] .text:00030F14 STR R1, [R4,#0x38] .text:00030F18 BIC R3, R3, #0xC .text:00030F1C ORR R3, R3, #0x40 .text:00030F20 STR R3, [R4] .text:00030F24 ADD R1, R4, #0x4C .text:00030F28 MOV R3, 0xFFFFFFFF .text:00030F2C MOV R2, 0xFFFFFFFF .text:00030F30 STMIA R1, {R2,R3} .text:00030F34 LDRB R3, [R4,#0x46] .text:00030F38 MOV R3, R3,LSL#24 .text:00030F3C ADD R3, R4, R3,ASR#24 .text:00030F40 LDR R12, [R3,#0x94] .text:00030F44 MOV R2, #3 .text:00030F48 STR R2, [SP,#0x14+var_14] .text:00030F4C MOV R0, R4 .text:00030F50 MOV R2, #0 .text:00030F54 MOV R1, #0 .text:00030F58 MOV R3, #1 .text:00030F5C MOV LR, PC .text:00030F60 LDR PC, [R12,#0x24] .text:00030F64 CMN R0, #1 .text:00030F68 BNE loc_30F88 .text:00030F6C CMN R1, #1 .text:00030F70 BNE loc_30F88 .text:00030F74 BL __errno_location .text:00030F78 LDR R3, [R0] .text:00030F7C MOV R0, #0 .text:00030F80 CMP R3, #0x1D .text:00030F84 BNE locret_30F8C .text:00030F88 .text:00030F88 loc_30F88 ; CODE XREF: _IO_new_file_attach+7Cj .text:00030F88 ; _IO_new_file_attach+84j .text:00030F88 MOV R0, R4 .text:00030F8C .text:00030F8C locret_30F8C ; CODE XREF: _IO_new_file_attach+20j .text:00030F8C ; _IO_new_file_attach+98j .text:00030F8C LDMDB R11, {R4,R11,SP,PC} .text:00030F8C ; End of function _IO_new_file_attach .text:00030F8C .text:00030F90 .text:00030F90 ; =============== S U B R O U T I N E ======================================= .text:00030F90 .text:00030F90 ; Attributes: bp-based frame .text:00030F90 .text:00030F90 WEAK _IO_new_file_setbuf .text:00030F90 _IO_new_file_setbuf .text:00030F90 MOV R12, SP .text:00030F94 STMFD SP!, {R4,R11,R12,LR,PC} .text:00030F98 SUB R11, R12, #4 .text:00030F9C MOV R4, R0 .text:00030FA0 BL _IO_default_setbuf .text:00030FA4 CMP R0, #0 .text:00030FA8 LDMEQDB R11, {R4,R11,SP,PC} .text:00030FAC LDR R3, [R4,#0x1C] .text:00030FB0 STR R3, [R4,#0x18] .text:00030FB4 STR R3, [R4,#0x14] .text:00030FB8 STR R3, [R4,#0x10] .text:00030FBC STR R3, [R4,#0xC] .text:00030FC0 STR R3, [R4,#4] .text:00030FC4 MOV R0, R4 .text:00030FC8 STR R3, [R4,#8] .text:00030FCC LDMDB R11, {R4,R11,SP,PC} .text:00030FCC ; End of function _IO_new_file_setbuf .text:00030FCC .text:00030FD0 .text:00030FD0 ; =============== S U B R O U T I N E ======================================= .text:00030FD0 .text:00030FD0 ; Attributes: bp-based frame .text:00030FD0 .text:00030FD0 EXPORT _IO_new_do_write .text:00030FD0 _IO_new_do_write ; CODE XREF: _IO_wdo_write+44p .text:00030FD0 ; _IO_wdo_write+A4p ... .text:00030FD0 MOV R12, SP ; Alternative name is '_IO_do_write' .text:00030FD4 STMFD SP!, {R4,R11,R12,LR,PC} .text:00030FD8 SUB R11, R12, #4 .text:00030FDC SUBS R4, R2, #0 .text:00030FE0 BEQ loc_30FF8 .text:00030FE4 MOV R2, R4 .text:00030FE8 BL new_do_write .text:00030FEC CMP R0, R4 .text:00030FF0 MOV R0, 0xFFFFFFFF .text:00030FF4 LDMNEDB R11, {R4,R11,SP,PC} .text:00030FF8 .text:00030FF8 loc_30FF8 ; CODE XREF: _IO_new_do_write+10j .text:00030FF8 MOV R0, #0 .text:00030FFC LDMDB R11, {R4,R11,SP,PC} .text:00030FFC ; End of function _IO_new_do_write .text:00030FFC .text:00031000 .text:00031000 ; =============== S U B R O U T I N E ======================================= .text:00031000 .text:00031000 ; Attributes: bp-based frame .text:00031000 .text:00031000 new_do_write ; CODE XREF: _IO_new_do_write+18p .text:00031000 ; _IO_new_file_xsputn+14Cp .text:00031000 MOV R12, SP .text:00031004 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:00031008 SUB R11, R12, #4 .text:0003100C MOV R4, R0 .text:00031010 MOV R6, R1 .text:00031014 LDR R3, [R4] .text:00031018 MOV R7, R2 .text:0003101C ANDS R5, R3, #0x1000 .text:00031020 ADDNE R3, R4, #0x4C .text:00031024 MOVNE R2, 0xFFFFFFFF .text:00031028 MOVNE R1, 0xFFFFFFFF .text:0003102C STMNEIA R3, {R1,R2} .text:00031030 BNE loc_31088 .text:00031034 LDR R3, [R4,#8] .text:00031038 LDR R1, [R4,#0x10] .text:0003103C CMP R3, R1 .text:00031040 BEQ loc_31088 .text:00031044 MOV R0, R4 .text:00031048 RSB R1, R3, R1 .text:0003104C LDRB R3, [R4,#0x46] .text:00031050 MOV R2, R1,ASR#31 .text:00031054 MOV R3, R3,LSL#24 .text:00031058 ADD R3, R4, R3,ASR#24 .text:0003105C LDR R12, [R3,#0x94] .text:00031060 MOV R3, #1 .text:00031064 MOV LR, PC .text:00031068 LDR PC, [R12,#0x40] .text:0003106C CMN R0, #1 .text:00031070 BNE loc_31080 .text:00031074 CMN R1, #1 .text:00031078 MOVEQ R0, R5 .text:0003107C LDMEQDB R11, {R4-R7,R11,SP,PC} .text:00031080 .text:00031080 loc_31080 ; CODE XREF: new_do_write+70j .text:00031080 ADD R3, R4, #0x4C .text:00031084 STMIA R3, {R0,R1} .text:00031088 .text:00031088 loc_31088 ; CODE XREF: new_do_write+30j .text:00031088 ; new_do_write+40j .text:00031088 MOV R0, R4 .text:0003108C LDRB R3, [R4,#0x46] .text:00031090 MOV R1, R6 .text:00031094 MOV R3, R3,LSL#24 .text:00031098 ADD R3, R4, R3,ASR#24 .text:0003109C LDR R12, [R3,#0x94] .text:000310A0 MOV R2, R7 .text:000310A4 MOV LR, PC .text:000310A8 LDR PC, [R12,#0x3C] .text:000310AC LDR R3, [R4,#0x44] .text:000310B0 MOV R5, R0 .text:000310B4 MOVS R3, R3,LSL#16 .text:000310B8 MOVEQ R2, #0 .text:000310BC MOVNE R2, #1 .text:000310C0 CMP R2, #0 .text:000310C4 CMPNE R5, #0 .text:000310C8 BEQ loc_310F8 .text:000310CC LDRB R0, [R4,#0x44] .text:000310D0 MOV R1, R6 .text:000310D4 LDRB R3, [R4,#0x45] .text:000310D8 MOV R2, R5 .text:000310DC ORR R0, R0, R3,LSL#8 .text:000310E0 SUB R0, R0, #1 .text:000310E4 BL _IO_adjust_column .text:000310E8 ADD R0, R0, #1 .text:000310EC STRB R0, [R4,#0x44] .text:000310F0 MOV R0, R0,ASR#8 .text:000310F4 STRB R0, [R4,#0x45] .text:000310F8 .text:000310F8 loc_310F8 ; CODE XREF: new_do_write+C8j .text:000310F8 LDR R2, [R4,#0x1C] .text:000310FC STR R2, [R4,#0xC] .text:00031100 STR R2, [R4,#4] .text:00031104 STR R2, [R4,#8] .text:00031108 LDR R3, [R4,#0x5C] .text:0003110C STR R2, [R4,#0x14] .text:00031110 CMP R3, #0 .text:00031114 STR R2, [R4,#0x10] .text:00031118 BGT loc_31138 .text:0003111C LDR R3, [R4] .text:00031120 BIC R3, R3, #0x1FC .text:00031124 BIC R3, R3, #1 .text:00031128 MOV R3, R3,LSL#22 .text:0003112C MOV R3, R3,LSR#22 .text:00031130 CMP R3, #0 .text:00031134 BNE loc_3113C .text:00031138 .text:00031138 loc_31138 ; CODE XREF: new_do_write+118j .text:00031138 LDR R2, [R4,#0x20] .text:0003113C .text:0003113C loc_3113C ; CODE XREF: new_do_write+134j .text:0003113C MOV R0, R5 .text:00031140 STR R2, [R4,#0x18] .text:00031144 LDMDB R11, {R4-R7,R11,SP,PC} .text:00031144 ; End of function new_do_write .text:00031144 .text:00031148 .text:00031148 ; =============== S U B R O U T I N E ======================================= .text:00031148 .text:00031148 ; Attributes: bp-based frame .text:00031148 .text:00031148 WEAK _IO_new_file_underflow .text:00031148 _IO_new_file_underflow .text:00031148 MOV R12, SP .text:0003114C STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:00031150 MOV R5, R0 .text:00031154 LDR R3, [R5] .text:00031158 SUB R11, R12, #4 .text:0003115C TST R3, #4 .text:00031160 BEQ loc_31180 .text:00031164 ORR R3, R3, #0x20 .text:00031168 STR R3, [R5] .text:0003116C BL __errno_location .text:00031170 MOV R3, #9 .text:00031174 STR R3, [R0] .text:00031178 MOV R0, 0xFFFFFFFF .text:0003117C LDMDB R11, {R4,R5,R11,SP,PC} .text:00031180 ; --------------------------------------------------------------------------- .text:00031180 .text:00031180 loc_31180 ; CODE XREF: _IO_new_file_underflow+18j .text:00031180 LDMIB R5, {R2,R3} .text:00031184 CMP R2, R3 .text:00031188 LDRCCB R0, [R2] .text:0003118C LDMCCDB R11, {R4,R5,R11,SP,PC} .text:00031190 LDR R3, [R5,#0x1C] .text:00031194 CMP R3, #0 .text:00031198 BNE loc_311C0 .text:0003119C LDR R0, [R5,#0x24] .text:000311A0 CMP R0, #0 .text:000311A4 BEQ loc_311B8 .text:000311A8 BL free .text:000311AC LDR R3, [R5] .text:000311B0 BIC R3, R3, #0x100 .text:000311B4 STR R3, [R5] .text:000311B8 .text:000311B8 loc_311B8 ; CODE XREF: _IO_new_file_underflow+5Cj .text:000311B8 MOV R0, R5 .text:000311BC BL _IO_doallocbuf .text:000311C0 .text:000311C0 loc_311C0 ; CODE XREF: _IO_new_file_underflow+50j .text:000311C0 LDR R3, [R5] .text:000311C4 BIC R3, R3, #0x1FC .text:000311C8 BIC R3, R3, #1 .text:000311CC MOV R3, R3,LSL#22 .text:000311D0 MOV R3, R3,LSR#22 .text:000311D4 CMP R3, #0 .text:000311D8 BEQ loc_311E0 .text:000311DC BL _flushlbf .text:000311E0 .text:000311E0 loc_311E0 ; CODE XREF: _IO_new_file_underflow+90j .text:000311E0 MOV R0, R5 .text:000311E4 BL _IO_switch_to_get_mode .text:000311E8 LDR R1, [R5,#0x1C] .text:000311EC STR R1, [R5,#4] .text:000311F0 STR R1, [R5,#0xC] .text:000311F4 STR R1, [R5,#8] .text:000311F8 STR R1, [R5,#0x18] .text:000311FC STR R1, [R5,#0x14] .text:00031200 STR R1, [R5,#0x10] .text:00031204 LDRB R3, [R5,#0x46] .text:00031208 MOV R0, R5 .text:0003120C LDR R2, [R5,#0x20] .text:00031210 MOV R3, R3,LSL#24 .text:00031214 ADD R3, R5, R3,ASR#24 .text:00031218 LDR R12, [R3,#0x94] .text:0003121C RSB R2, R1, R2 .text:00031220 MOV LR, PC .text:00031224 LDR PC, [R12,#0x38] .text:00031228 CMP R0, #0 .text:0003122C BGT loc_31248 .text:00031230 LDREQ R3, [R5] .text:00031234 ORREQ R3, R3, #0x10 .text:00031238 LDRNE R3, [R5] .text:0003123C MOVNE R0, #0 .text:00031240 ORRNE R3, R3, #0x20 .text:00031244 STR R3, [R5] .text:00031248 .text:00031248 loc_31248 ; CODE XREF: _IO_new_file_underflow+E4j .text:00031248 LDR R3, [R5,#8] .text:0003124C CMP R0, #0 .text:00031250 ADD R3, R3, R0 .text:00031254 STR R3, [R5,#8] .text:00031258 MOVEQ R0, 0xFFFFFFFF .text:0003125C LDMEQDB R11, {R4,R5,R11,SP,PC} .text:00031260 MOV R2, #0x4C .text:00031264 LDR R3, [R5,R2] .text:00031268 ADD R12, R5, R2 .text:0003126C CMN R3, #1 .text:00031270 BNE loc_31280 .text:00031274 LDR R3, [R12,#4] .text:00031278 CMN R3, #1 .text:0003127C BEQ loc_31290 .text:00031280 .text:00031280 loc_31280 ; CODE XREF: _IO_new_file_underflow+128j .text:00031280 LDMIA R12, {R3,R4} .text:00031284 ADDS R1, R3, R0 .text:00031288 ADC R2, R4, R0,ASR#31 .text:0003128C STMIA R12, {R1,R2} .text:00031290 .text:00031290 loc_31290 ; CODE XREF: _IO_new_file_underflow+134j .text:00031290 LDR R3, [R5,#4] .text:00031294 LDRB R0, [R3] .text:00031298 LDMDB R11, {R4,R5,R11,SP,PC} .text:00031298 ; End of function _IO_new_file_underflow .text:00031298 .text:0003129C .text:0003129C ; =============== S U B R O U T I N E ======================================= .text:0003129C .text:0003129C ; Attributes: bp-based frame .text:0003129C .text:0003129C WEAK _IO_new_file_overflow .text:0003129C _IO_new_file_overflow .text:0003129C MOV R12, SP .text:000312A0 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:000312A4 SUB R11, R12, #4 .text:000312A8 MOV R4, R0 .text:000312AC LDR R3, [R4] .text:000312B0 MOV R5, R1 .text:000312B4 TST R3, #8 .text:000312B8 BEQ loc_312D8 .text:000312BC ORR R3, R3, #0x20 .text:000312C0 STR R3, [R4] .text:000312C4 BL __errno_location .text:000312C8 MOV R3, #9 .text:000312CC STR R3, [R0] .text:000312D0 .text:000312D0 loc_312D0 ; CODE XREF: _IO_new_file_overflow+150j .text:000312D0 MOV R0, 0xFFFFFFFF .text:000312D4 LDMDB R11, {R4,R5,R11,SP,PC} .text:000312D8 ; --------------------------------------------------------------------------- .text:000312D8 .text:000312D8 loc_312D8 ; CODE XREF: _IO_new_file_overflow+1Cj .text:000312D8 TST R3, #0x800 .text:000312DC LDR R3, [R4,#0x10] .text:000312E0 BEQ loc_312EC .text:000312E4 CMP R3, #0 .text:000312E8 BNE loc_31374 .text:000312EC .text:000312EC loc_312EC ; CODE XREF: _IO_new_file_overflow+44j .text:000312EC CMP R3, #0 .text:000312F0 BNE loc_3130C .text:000312F4 MOV R0, R4 .text:000312F8 BL _IO_doallocbuf .text:000312FC LDR R3, [R4,#0x1C] .text:00031300 STR R3, [R4,#0xC] .text:00031304 STR R3, [R4,#4] .text:00031308 STR R3, [R4,#8] .text:0003130C .text:0003130C loc_3130C ; CODE XREF: _IO_new_file_overflow+54j .text:0003130C LDR R2, [R4,#4] .text:00031310 LDR R3, [R4,#0x20] .text:00031314 CMP R2, R3 .text:00031318 LDREQ R3, [R4,#0x1C] .text:0003131C STREQ R3, [R4,#4] .text:00031320 STREQ R3, [R4,#8] .text:00031324 LDR R1, [R4,#4] .text:00031328 STR R1, [R4,#0x14] .text:0003132C LDR R3, [R4,#0x20] .text:00031330 STR R3, [R4,#0x18] .text:00031334 LDR R2, [R4,#8] .text:00031338 STR R2, [R4,#4] .text:0003133C STR R2, [R4,#0xC] .text:00031340 LDR R3, [R4,#0x5C] .text:00031344 LDR R2, [R4] .text:00031348 STR R1, [R4,#0x10] .text:0003134C CMP R3, #0 .text:00031350 ORR R2, R2, #0x800 .text:00031354 STR R2, [R4] .text:00031358 BGT loc_31374 .text:0003135C BIC R3, R2, #0x1FC .text:00031360 BIC R3, R3, #1 .text:00031364 MOV R3, R3,LSL#22 .text:00031368 MOV R3, R3,LSR#22 .text:0003136C CMP R3, #0 .text:00031370 STRNE R1, [R4,#0x18] .text:00031374 .text:00031374 loc_31374 ; CODE XREF: _IO_new_file_overflow+4Cj .text:00031374 ; _IO_new_file_overflow+BCj .text:00031374 CMN R5, #1 .text:00031378 BNE loc_31398 .text:0003137C MOV R0, R4 .text:00031380 LDR R1, [R0,#0x10] .text:00031384 ADD R3, R0, #0x14 .text:00031388 LDMDA R3, {R2,R3} .text:0003138C SUB R2, R3, R2 .text:00031390 BL _IO_new_do_write .text:00031394 LDMDB R11, {R4,R5,R11,SP,PC} .text:00031398 ; --------------------------------------------------------------------------- .text:00031398 .text:00031398 loc_31398 ; CODE XREF: _IO_new_file_overflow+DCj .text:00031398 LDR R2, [R4,#0x14] .text:0003139C LDR R3, [R4,#0x20] .text:000313A0 CMP R2, R3 .text:000313A4 BNE loc_313F0 .text:000313A8 LDR R3, [R4,#0x5C] .text:000313AC CMP R3, #0 .text:000313B0 BGT loc_313C8 .text:000313B4 LDR R1, [R4,#0x10] .text:000313B8 MOV R0, R4 .text:000313BC RSB R2, R1, R2 .text:000313C0 BL _IO_new_do_write .text:000313C4 B loc_313E8 .text:000313C8 ; --------------------------------------------------------------------------- .text:000313C8 .text:000313C8 loc_313C8 ; CODE XREF: _IO_new_file_overflow+114j .text:000313C8 LDR R3, [R4,#0x58] .text:000313CC ADD R1, R3, #0x10 .text:000313D0 LDMDA R1, {R1,R2} .text:000313D4 SUB R2, R2, R1 .text:000313D8 MOV R0, R4 .text:000313DC LDR R1, [R3,#0xC] .text:000313E0 MOV R2, R2,ASR#2 .text:000313E4 BL _IO_wdo_write .text:000313E8 .text:000313E8 loc_313E8 ; CODE XREF: _IO_new_file_overflow+128j .text:000313E8 CMN R0, #1 .text:000313EC BEQ loc_312D0 .text:000313F0 .text:000313F0 loc_313F0 ; CODE XREF: _IO_new_file_overflow+108j .text:000313F0 LDR R2, [R4,#0x14] .text:000313F4 STRB R5, [R2],#1 .text:000313F8 LDR R3, [R4] .text:000313FC STR R2, [R4,#0x14] .text:00031400 TST R3, #2 .text:00031404 BNE loc_31420 .text:00031408 MOV R3, R3,LSR#9 .text:0003140C CMP R5, #0xA .text:00031410 ANDEQ R3, R3, #1 .text:00031414 MOVNE R3, #0 .text:00031418 CMP R3, #0 .text:0003141C BEQ loc_31438 .text:00031420 .text:00031420 loc_31420 ; CODE XREF: _IO_new_file_overflow+168j .text:00031420 LDR R1, [R4,#0x10] .text:00031424 MOV R0, R4 .text:00031428 RSB R2, R1, R2 .text:0003142C BL _IO_new_do_write .text:00031430 CMN R0, #1 .text:00031434 LDMEQDB R11, {R4,R5,R11,SP,PC} .text:00031438 .text:00031438 loc_31438 ; CODE XREF: _IO_new_file_overflow+180j .text:00031438 AND R0, R5, #0xFF .text:0003143C LDMDB R11, {R4,R5,R11,SP,PC} .text:0003143C ; End of function _IO_new_file_overflow .text:0003143C .text:00031440 .text:00031440 ; =============== S U B R O U T I N E ======================================= .text:00031440 .text:00031440 ; Attributes: bp-based frame .text:00031440 .text:00031440 WEAK _IO_new_file_sync .text:00031440 _IO_new_file_sync .text:00031440 MOV R12, SP .text:00031444 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:00031448 MOV R4, R0 .text:0003144C LDR R2, [R4,#0x14] .text:00031450 SUB R11, R12, #4 .text:00031454 LDR R1, [R4,#0x10] .text:00031458 MOV R5, #0 .text:0003145C CMP R2, R1 .text:00031460 BLS loc_314B4 .text:00031464 LDR R3, [R4,#0x5C] .text:00031468 CMP R3, R5 .text:0003146C BGT loc_31484 .text:00031470 RSB R2, R1, R2 .text:00031474 BL _IO_new_do_write .text:00031478 CMP R0, R5 .text:0003147C BNE loc_314AC .text:00031480 B loc_314B4 .text:00031484 ; --------------------------------------------------------------------------- .text:00031484 .text:00031484 loc_31484 ; CODE XREF: _IO_new_file_sync+2Cj .text:00031484 LDR R3, [R4,#0x58] .text:00031488 ADD R1, R3, #0x10 .text:0003148C LDMDA R1, {R1,R2} .text:00031490 SUB R2, R2, R1 .text:00031494 MOV R0, R4 .text:00031498 LDR R1, [R3,#0xC] .text:0003149C MOV R2, R2,ASR#2 .text:000314A0 BL _IO_wdo_write .text:000314A4 CMP R0, #0 .text:000314A8 BEQ loc_314B4 .text:000314AC .text:000314AC loc_314AC ; CODE XREF: _IO_new_file_sync+3Cj .text:000314AC MOV R0, 0xFFFFFFFF .text:000314B0 LDMDB R11, {R4,R5,R11,SP,PC} .text:000314B4 ; --------------------------------------------------------------------------- .text:000314B4 .text:000314B4 loc_314B4 ; CODE XREF: _IO_new_file_sync+20j .text:000314B4 ; _IO_new_file_sync+40j ... .text:000314B4 ADD R2, R4, #4 .text:000314B8 LDMIA R2, {R1,R2} .text:000314BC SUB R1, R1, R2 .text:000314C0 CMP R1, #0 .text:000314C4 BEQ loc_3151C .text:000314C8 MOV R0, R4 .text:000314CC LDRB R3, [R4,#0x46] .text:000314D0 MOV R2, R1,ASR#31 .text:000314D4 MOV R3, R3,LSL#24 .text:000314D8 ADD R3, R4, R3,ASR#24 .text:000314DC LDR R12, [R3,#0x94] .text:000314E0 MOV R3, #1 .text:000314E4 MOV LR, PC .text:000314E8 LDR PC, [R12,#0x40] .text:000314EC CMN R0, #1 .text:000314F0 BNE loc_314FC .text:000314F4 CMN R1, #1 .text:000314F8 BEQ loc_31508 .text:000314FC .text:000314FC loc_314FC ; CODE XREF: _IO_new_file_sync+B0j .text:000314FC LDR R3, [R4,#4] .text:00031500 STR R3, [R4,#8] .text:00031504 B loc_3151C .text:00031508 ; --------------------------------------------------------------------------- .text:00031508 .text:00031508 loc_31508 ; CODE XREF: _IO_new_file_sync+B8j .text:00031508 BL __errno_location .text:0003150C LDR R3, [R0] .text:00031510 CMP R3, #0x1D .text:00031514 MOVEQ R5, #0 .text:00031518 MOVNE R5, 0xFFFFFFFF .text:0003151C .text:0003151C loc_3151C ; CODE XREF: _IO_new_file_sync+84j .text:0003151C ; _IO_new_file_sync+C4j .text:0003151C CMN R5, #1 .text:00031520 ADDNE R3, R4, #0x4C .text:00031524 MOVNE R2, 0xFFFFFFFF .text:00031528 MOVNE R1, 0xFFFFFFFF .text:0003152C STMNEIA R3, {R1,R2} .text:00031530 MOV R0, R5 .text:00031534 LDMDB R11, {R4,R5,R11,SP,PC} .text:00031534 ; End of function _IO_new_file_sync .text:00031534 .text:00031538 .text:00031538 ; =============== S U B R O U T I N E ======================================= .text:00031538 .text:00031538 ; Attributes: bp-based frame .text:00031538 .text:00031538 WEAK _IO_new_file_seekoff .text:00031538 _IO_new_file_seekoff .text:00031538 .text:00031538 var_90 = -0x90 .text:00031538 var_88 = -0x88 .text:00031538 var_78 = -0x78 .text:00031538 var_5C = -0x5C .text:00031538 arg_0 = 4 .text:00031538 .text:00031538 MOV R12, SP .text:0003153C STMFD SP!, {R4-R12,LR,PC} .text:00031540 SUB R11, R12, #4 .text:00031544 SUB R4, R11, #-var_90 .text:00031548 SUB SP, SP, #0x68 .text:0003154C STMIA R4, {R1,R2} .text:00031550 MOV R7, R0 .text:00031554 LDR R2, [R7,#0xC] .text:00031558 MOV R8, R3 .text:0003155C LDR R3, [R7,#8] .text:00031560 MOV R10, #0 .text:00031564 LDR R5, [R11,#arg_0] .text:00031568 CMP R2, R3 .text:0003156C BNE loc_31584 .text:00031570 ADD R2, R7, #0x10 .text:00031574 LDMIA R2, {R2,R3} .text:00031578 CMP R2, R3 .text:0003157C MOVNE R10, #0 .text:00031580 MOVEQ R10, #1 .text:00031584 .text:00031584 loc_31584 ; CODE XREF: _IO_new_file_seekoff+34j .text:00031584 CMP R5, #0 .text:00031588 MOVEQ R8, #1 .text:0003158C MOVEQ R3, #0 .text:00031590 MOVEQ R2, #0 .text:00031594 SUBEQ R4, R11, #-var_90 .text:00031598 STMEQIA R4, {R2,R3} .text:0003159C LDR R2, [R7,#0x14] .text:000315A0 LDR R3, [R7,#0x10] .text:000315A4 CMP R2, R3 .text:000315A8 BHI loc_315B8 .text:000315AC LDR R3, [R7] .text:000315B0 TST R3, #0x800 .text:000315B4 BEQ loc_315C8 .text:000315B8 .text:000315B8 loc_315B8 ; CODE XREF: _IO_new_file_seekoff+70j .text:000315B8 MOV R0, R7 .text:000315BC BL _IO_switch_to_get_mode .text:000315C0 CMP R0, #0 .text:000315C4 BNE loc_31844 .text:000315C8 .text:000315C8 loc_315C8 ; CODE XREF: _IO_new_file_seekoff+7Cj .text:000315C8 LDR R3, [R7,#0x1C] .text:000315CC CMP R3, #0 .text:000315D0 BNE loc_31614 .text:000315D4 LDR R0, [R7,#0xC] .text:000315D8 CMP R0, #0 .text:000315DC BEQ loc_315F0 .text:000315E0 BL free .text:000315E4 LDR R3, [R7] .text:000315E8 BIC R3, R3, #0x100 .text:000315EC STR R3, [R7] .text:000315F0 .text:000315F0 loc_315F0 ; CODE XREF: _IO_new_file_seekoff+A4j .text:000315F0 MOV R0, R7 .text:000315F4 BL _IO_doallocbuf .text:000315F8 LDR R3, [R7,#0x1C] .text:000315FC STR R3, [R7,#0x14] .text:00031600 STR R3, [R7,#0x10] .text:00031604 STR R3, [R7,#0x18] .text:00031608 STR R3, [R7,#0xC] .text:0003160C STR R3, [R7,#4] .text:00031610 STR R3, [R7,#8] .text:00031614 .text:00031614 loc_31614 ; CODE XREF: _IO_new_file_seekoff+98j .text:00031614 CMP R8, #1 .text:00031618 BEQ loc_3162C .text:0003161C BLE loc_316E8 .text:00031620 CMP R8, #2 .text:00031624 BEQ loc_31690 .text:00031628 B loc_316E8 .text:0003162C ; --------------------------------------------------------------------------- .text:0003162C .text:0003162C loc_3162C ; CODE XREF: _IO_new_file_seekoff+E0j .text:0003162C ADD R12, R7, #8 .text:00031630 LDMDA R12, {R12,LR} .text:00031634 SUB LR, LR, R12 .text:00031638 MOV R2, #0x4C .text:0003163C LDR R6, [R7,R2] .text:00031640 SUB R3, R11, #-var_90 .text:00031644 LDMIA R3, {R3,R4} .text:00031648 ADD R2, R7, R2 .text:0003164C SUBS R0, R3, LR .text:00031650 SBC R1, R4, LR,ASR#31 .text:00031654 SUB R4, R11, #-var_90 .text:00031658 CMN R6, #1 .text:0003165C STMIA R4, {R0,R1} .text:00031660 BNE loc_31670 .text:00031664 LDR R3, [R2,#4] .text:00031668 CMN R3, #1 .text:0003166C BEQ loc_31958 .text:00031670 .text:00031670 loc_31670 ; CODE XREF: _IO_new_file_seekoff+128j .text:00031670 LDMIA R2, {R3,R4} .text:00031674 SUB R12, R11, #-var_90 .text:00031678 LDMIA R12, {R1,R2} .text:0003167C MOV R8, #0 .text:00031680 ADDS R1, R1, R3 .text:00031684 ADC R2, R2, R4 .text:00031688 STMIA R12, {R1,R2} .text:0003168C B loc_316E8 .text:00031690 ; --------------------------------------------------------------------------- .text:00031690 .text:00031690 loc_31690 ; CODE XREF: _IO_new_file_seekoff+ECj .text:00031690 LDRB R3, [R7,#0x46] .text:00031694 MOV R0, R7 .text:00031698 MOV R3, R3,LSL#24 .text:0003169C ADD R3, R7, R3,ASR#24 .text:000316A0 LDR R2, [R3,#0x94] .text:000316A4 SUB R1, R11, #-var_88 .text:000316A8 MOV LR, PC .text:000316AC LDR PC, [R2,#0x48] .text:000316B0 CMP R0, #0 .text:000316B4 BNE loc_31958 .text:000316B8 LDR R3, [R11,#var_78] .text:000316BC AND R3, R3, #0xF000 .text:000316C0 CMP R3, #0x8000 .text:000316C4 BNE loc_31958 .text:000316C8 SUB R3, R11, #-var_5C .text:000316CC LDMIA R3, {R1,R2} .text:000316D0 SUB R12, R11, #-var_90 .text:000316D4 LDMIA R12, {R3,R4} .text:000316D8 MOV R8, R0 .text:000316DC ADDS R3, R3, R1 .text:000316E0 ADC R4, R4, R2 .text:000316E4 STMIA R12, {R3,R4} .text:000316E8 .text:000316E8 loc_316E8 ; CODE XREF: _IO_new_file_seekoff+E4j .text:000316E8 ; _IO_new_file_seekoff+F0j ... .text:000316E8 CMP R5, #0 .text:000316EC BNE loc_316FC .text:000316F0 SUB R2, R11, #-var_90 .text:000316F4 LDMIA R2, {R0,R1} .text:000316F8 B locret_31A18 .text:000316FC ; --------------------------------------------------------------------------- .text:000316FC .text:000316FC loc_316FC ; CODE XREF: _IO_new_file_seekoff+1B4j .text:000316FC MOV R2, #0x4C .text:00031700 LDR R3, [R7,R2] .text:00031704 ADD R1, R7, R2 .text:00031708 CMN R3, #1 .text:0003170C BNE loc_31720 .text:00031710 LDR R3, [R1,#4] .text:00031714 LDR R0, [R7] .text:00031718 CMN R3, #1 .text:0003171C BEQ loc_317A8 .text:00031720 .text:00031720 loc_31720 ; CODE XREF: _IO_new_file_seekoff+1D4j .text:00031720 LDR R12, [R7,#0xC] .text:00031724 LDR R0, [R7] .text:00031728 CMP R12, #0 .text:0003172C BEQ loc_317A8 .text:00031730 TST R0, #0x100 .text:00031734 BNE loc_317A8 .text:00031738 LDMIA R1, {R1,R2} .text:0003173C SUB R3, R11, #-var_90 .text:00031740 LDMIA R3, {R4,R5} .text:00031744 LDR R3, [R7,#8] .text:00031748 SUBS R4, R4, R1 .text:0003174C SBC R5, R5, R2 .text:00031750 RSB R3, R12, R3 .text:00031754 MOV R2, R3 .text:00031758 MOV R3, R2,ASR#31 .text:0003175C ADDS R4, R4, R2 .text:00031760 ADC R5, R5, R3 .text:00031764 CMP R5, #0 .text:00031768 BLT loc_317A8 .text:0003176C CMP R5, R3 .text:00031770 BGT loc_317A8 .text:00031774 BNE loc_31780 .text:00031778 CMP R4, R2 .text:0003177C BHI loc_317A8 .text:00031780 .text:00031780 loc_31780 ; CODE XREF: _IO_new_file_seekoff+23Cj .text:00031780 BIC R3, R0, #0x10 .text:00031784 STR R3, [R7] .text:00031788 LDR R2, [R7,#0x1C] .text:0003178C STR R2, [R7,#0xC] .text:00031790 ADD R3, R2, R4 .text:00031794 STR R3, [R7,#4] .text:00031798 STR R2, [R7,#0x14] .text:0003179C STR R2, [R7,#0x10] .text:000317A0 STR R2, [R7,#0x18] .text:000317A4 B loc_319DC .text:000317A8 ; --------------------------------------------------------------------------- .text:000317A8 .text:000317A8 loc_317A8 ; CODE XREF: _IO_new_file_seekoff+1E4j .text:000317A8 ; _IO_new_file_seekoff+1F4j ... .text:000317A8 TST R0, #4 .text:000317AC BNE loc_31958 .text:000317B0 ADD R4, R7, #0x20 .text:000317B4 LDMDA R4, {R2,R4} .text:000317B8 SUB R2, R4, R2 .text:000317BC SUB R12, R11, #-var_90 .text:000317C0 LDMIA R12, {R4,R5} .text:000317C4 MOV R0, R12 .text:000317C8 LDMIA R0, {R8,R9} .text:000317CC RSB R3, R2, #0 .text:000317D0 AND R8, R8, R3 .text:000317D4 AND R9, R9, R3,ASR#31 .text:000317D8 SUBS R4, R4, R8 .text:000317DC SBC R5, R5, R9 .text:000317E0 MOV R3, R2,ASR#31 .text:000317E4 CMP R5, R3 .text:000317E8 BGT loc_317F8 .text:000317EC BNE loc_31808 .text:000317F0 CMP R4, R2 .text:000317F4 BLS loc_31808 .text:000317F8 .text:000317F8 loc_317F8 ; CODE XREF: _IO_new_file_seekoff+2B0j .text:000317F8 SUB R1, R11, #-var_90 .text:000317FC MOV R5, #0 .text:00031800 MOV R4, #0 .text:00031804 LDMIA R1, {R8,R9} .text:00031808 .text:00031808 loc_31808 ; CODE XREF: _IO_new_file_seekoff+2B4j .text:00031808 ; _IO_new_file_seekoff+2BCj .text:00031808 MOV R0, R7 .text:0003180C MOV R2, R9 .text:00031810 MOV R1, R8 .text:00031814 LDRB R3, [R7,#0x46] .text:00031818 MOV R6, #0x94 .text:0003181C MOV R3, R3,LSL#24 .text:00031820 ADD R3, R7, R3,ASR#24 .text:00031824 LDR R12, [R3,R6] .text:00031828 MOV R3, #0 .text:0003182C MOV LR, PC .text:00031830 LDR PC, [R12,#0x40] .text:00031834 MOV R9, R1 .text:00031838 MOV R8, R0 .text:0003183C CMP R9, #0 .text:00031840 BGE loc_31850 .text:00031844 .text:00031844 loc_31844 ; CODE XREF: _IO_new_file_seekoff+8Cj .text:00031844 MOV R1, 0xFFFFFFFF .text:00031848 MOV R0, 0xFFFFFFFF .text:0003184C B locret_31A18 .text:00031850 ; --------------------------------------------------------------------------- .text:00031850 .text:00031850 loc_31850 ; CODE XREF: _IO_new_file_seekoff+308j .text:00031850 ORR R0, R5, R4 .text:00031854 CMP R0, #0 .text:00031858 MOVEQ R12, R0 .text:0003185C BEQ loc_3190C .text:00031860 LDRB R3, [R7,#0x46] .text:00031864 CMP R10, #0 .text:00031868 LDR R1, [R7,#0x1C] .text:0003186C MOV R3, R3,LSL#24 .text:00031870 ADD R3, R7, R3,ASR#24 .text:00031874 LDR R12, [R3,R6] .text:00031878 LDREQ R3, [R7,#0x20] .text:0003187C RSBEQ R2, R1, R3 .text:00031880 MOVNE R2, R4 .text:00031884 MOV R0, R7 .text:00031888 MOV LR, PC .text:0003188C LDR PC, [R12,#0x38] .text:00031890 MOV R12, R0 .text:00031894 MOV R1, R12 .text:00031898 MOV R2, R1,ASR#31 .text:0003189C CMP R5, R2 .text:000318A0 BGT loc_318B0 .text:000318A4 BNE loc_3190C .text:000318A8 CMP R4, R1 .text:000318AC BLS loc_3190C .text:000318B0 .text:000318B0 loc_318B0 ; CODE XREF: _IO_new_file_seekoff+368j .text:000318B0 SUB R3, R11, #-var_90 .text:000318B4 STMIA R3, {R4,R5} .text:000318B8 MOV R0, R3 .text:000318BC LDMIA R0, {R3,R4} .text:000318C0 MOV R8, #1 .text:000318C4 SUBS R3, R3, R1 .text:000318C8 SBC R4, R4, R2 .text:000318CC CMN R12, #1 .text:000318D0 MOVNE R1, #0 .text:000318D4 MOVEQ R1, #1 .text:000318D8 MOV R2, #0 .text:000318DC RSBS R5, R1, #0 .text:000318E0 RSC R6, R2, #0 .text:000318E4 MOV R12, R0 .text:000318E8 LDMIA R12, {R1,R2} .text:000318EC BIC R3, R3, R5 .text:000318F0 BIC R4, R4, R6 .text:000318F4 AND R1, R1, R5 .text:000318F8 AND R2, R2, R6 .text:000318FC ORR R1, R1, R3 .text:00031900 ORR R2, R2, R4 .text:00031904 STMIA R0, {R1,R2} .text:00031908 B loc_31958 .text:0003190C ; --------------------------------------------------------------------------- .text:0003190C .text:0003190C loc_3190C ; CODE XREF: _IO_new_file_seekoff+324j .text:0003190C ; _IO_new_file_seekoff+36Cj ... .text:0003190C LDR R1, [R7,#0x1C] .text:00031910 STR R1, [R7,#0xC] .text:00031914 ADD R3, R1, R4 .text:00031918 STR R3, [R7,#4] .text:0003191C ADD R2, R1, R12 .text:00031920 STR R2, [R7,#8] .text:00031924 STR R1, [R7,#0x14] .text:00031928 STR R1, [R7,#0x10] .text:0003192C STR R1, [R7,#0x18] .text:00031930 ADD R0, R7, #0x4C .text:00031934 ADDS R3, R8, R12 .text:00031938 ADC R4, R9, R12,ASR#31 .text:0003193C STMIA R0, {R3,R4} .text:00031940 LDR R2, [R7] .text:00031944 SUB R3, R11, #-var_90 .text:00031948 LDMIA R3, {R0,R1} .text:0003194C BIC R2, R2, #0x10 .text:00031950 STR R2, [R7] .text:00031954 B locret_31A18 .text:00031958 ; --------------------------------------------------------------------------- .text:00031958 .text:00031958 loc_31958 ; CODE XREF: _IO_new_file_seekoff+134j .text:00031958 ; _IO_new_file_seekoff+17Cj ... .text:00031958 MOV R0, R7 .text:0003195C BL _IO_unsave_markers .text:00031960 MOV R0, R7 .text:00031964 LDRB R3, [R7,#0x46] .text:00031968 SUB R4, R11, #-var_90 .text:0003196C LDMIA R4, {R1,R2} .text:00031970 MOV R3, R3,LSL#24 .text:00031974 ADD R3, R7, R3,ASR#24 .text:00031978 LDR R12, [R3,#0x94] .text:0003197C MOV R3, R8 .text:00031980 MOV LR, PC .text:00031984 LDR PC, [R12,#0x40] .text:00031988 MOV R9, R1 .text:0003198C MOV R8, R0 .text:00031990 CMN R8, #1 .text:00031994 BNE loc_319A0 .text:00031998 CMN R9, #1 .text:0003199C BEQ loc_319D0 .text:000319A0 .text:000319A0 loc_319A0 ; CODE XREF: _IO_new_file_seekoff+45Cj .text:000319A0 LDR R3, [R7] .text:000319A4 BIC R3, R3, #0x10 .text:000319A8 STR R3, [R7] .text:000319AC ADD R2, R7, #0x4C .text:000319B0 STMIA R2, {R8,R9} .text:000319B4 LDR R3, [R7,#0x1C] .text:000319B8 STR R3, [R7,#0xC] .text:000319BC STR R3, [R7,#4] .text:000319C0 STR R3, [R7,#8] .text:000319C4 STR R3, [R7,#0x14] .text:000319C8 STR R3, [R7,#0x10] .text:000319CC STR R3, [R7,#0x18] .text:000319D0 .text:000319D0 loc_319D0 ; CODE XREF: _IO_new_file_seekoff+464j .text:000319D0 MOV R1, R9 .text:000319D4 MOV R0, R8 .text:000319D8 B locret_31A18 .text:000319DC ; --------------------------------------------------------------------------- .text:000319DC .text:000319DC loc_319DC ; CODE XREF: _IO_new_file_seekoff+26Cj .text:000319DC ADD R1, R7, #0x4C .text:000319E0 LDR R3, [R1,#4] .text:000319E4 CMP R3, #0 .text:000319E8 BLT loc_31A10 .text:000319EC LDRB R3, [R7,#0x46] .text:000319F0 MOV R0, R7 .text:000319F4 LDMIA R1, {R1,R2} .text:000319F8 MOV R3, R3,LSL#24 .text:000319FC ADD R3, R7, R3,ASR#24 .text:00031A00 LDR R12, [R3,#0x94] .text:00031A04 MOV R3, #0 .text:00031A08 MOV LR, PC .text:00031A0C LDR PC, [R12,#0x40] .text:00031A10 .text:00031A10 loc_31A10 ; CODE XREF: _IO_new_file_seekoff+4B0j .text:00031A10 SUB R12, R11, #-var_90 .text:00031A14 LDMIA R12, {R0,R1} .text:00031A18 .text:00031A18 locret_31A18 ; CODE XREF: _IO_new_file_seekoff+1C0j .text:00031A18 ; _IO_new_file_seekoff+314j ... .text:00031A18 LDMDB R11, {R4-R11,SP,PC} .text:00031A18 ; End of function _IO_new_file_seekoff .text:00031A18 .text:00031A1C .text:00031A1C ; =============== S U B R O U T I N E ======================================= .text:00031A1C .text:00031A1C ; Attributes: bp-based frame .text:00031A1C .text:00031A1C EXPORT _IO_file_read .text:00031A1C _IO_file_read .text:00031A1C MOV R12, SP .text:00031A20 STMFD SP!, {R11,R12,LR,PC} .text:00031A24 LDR R0, [R0,#0x38] .text:00031A28 SUB R11, R12, #4 .text:00031A2C BL read .text:00031A30 LDMDB R11, {R11,SP,PC} .text:00031A30 ; End of function _IO_file_read .text:00031A30 .text:00031A34 .text:00031A34 ; =============== S U B R O U T I N E ======================================= .text:00031A34 .text:00031A34 ; Attributes: bp-based frame .text:00031A34 .text:00031A34 EXPORT _IO_file_seek .text:00031A34 _IO_file_seek .text:00031A34 MOV R12, SP .text:00031A38 STMFD SP!, {R11,R12,LR,PC} .text:00031A3C LDR R0, [R0,#0x38] .text:00031A40 SUB R11, R12, #4 .text:00031A44 BL lseek64 .text:00031A48 LDMDB R11, {R11,SP,PC} .text:00031A48 ; End of function _IO_file_seek .text:00031A48 .text:00031A4C .text:00031A4C ; =============== S U B R O U T I N E ======================================= .text:00031A4C .text:00031A4C ; Attributes: bp-based frame .text:00031A4C .text:00031A4C EXPORT _IO_file_stat .text:00031A4C _IO_file_stat .text:00031A4C MOV R12, SP .text:00031A50 STMFD SP!, {R11,R12,LR,PC} .text:00031A54 SUB R11, R12, #4 .text:00031A58 MOV R2, R1 .text:00031A5C LDR R3, [R0,#0x38] .text:00031A60 MOV R0, #3 .text:00031A64 MOV R1, R3 .text:00031A68 BL __fxstat64 .text:00031A6C LDMDB R11, {R11,SP,PC} .text:00031A6C ; End of function _IO_file_stat .text:00031A6C .text:00031A70 .text:00031A70 ; =============== S U B R O U T I N E ======================================= .text:00031A70 .text:00031A70 ; Attributes: bp-based frame .text:00031A70 .text:00031A70 EXPORT _IO_file_close .text:00031A70 _IO_file_close .text:00031A70 MOV R12, SP .text:00031A74 STMFD SP!, {R11,R12,LR,PC} .text:00031A78 LDR R0, [R0,#0x38] .text:00031A7C SUB R11, R12, #4 .text:00031A80 BL close .text:00031A84 LDMDB R11, {R11,SP,PC} .text:00031A84 ; End of function _IO_file_close .text:00031A84 .text:00031A88 .text:00031A88 ; =============== S U B R O U T I N E ======================================= .text:00031A88 .text:00031A88 ; Attributes: bp-based frame .text:00031A88 .text:00031A88 WEAK _IO_new_file_write .text:00031A88 _IO_new_file_write .text:00031A88 MOV R12, SP .text:00031A8C STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:00031A90 SUB R11, R12, #4 .text:00031A94 MOV R6, R1 .text:00031A98 MOV R7, R2 .text:00031A9C MOV R4, R7 .text:00031AA0 MOV R5, R0 .text:00031AA4 B loc_31AB0 .text:00031AA8 ; --------------------------------------------------------------------------- .text:00031AA8 .text:00031AA8 loc_31AA8 ; CODE XREF: _IO_new_file_write+44j .text:00031AA8 RSB R4, R0, R4 .text:00031AAC ADD R6, R6, R0 .text:00031AB0 .text:00031AB0 loc_31AB0 ; CODE XREF: _IO_new_file_write+1Cj .text:00031AB0 CMP R4, #0 .text:00031AB4 BLE loc_31ADC .text:00031AB8 MOV R1, R6 .text:00031ABC LDR R0, [R5,#0x38] .text:00031AC0 MOV R2, R4 .text:00031AC4 BL write .text:00031AC8 CMP R0, #0 .text:00031ACC BGE loc_31AA8 .text:00031AD0 LDR R3, [R5] .text:00031AD4 ORR R3, R3, #0x20 .text:00031AD8 STR R3, [R5] .text:00031ADC .text:00031ADC loc_31ADC ; CODE XREF: _IO_new_file_write+2Cj .text:00031ADC ADD R0, R5, #0x4C .text:00031AE0 LDR R3, [R0,#4] .text:00031AE4 RSB R7, R4, R7 .text:00031AE8 CMP R3, #0 .text:00031AEC BLT loc_31B00 .text:00031AF0 LDMIA R0, {R3,R4} .text:00031AF4 ADDS R1, R3, R7 .text:00031AF8 ADC R2, R4, R7,ASR#31 .text:00031AFC STMIA R0, {R1,R2} .text:00031B00 .text:00031B00 loc_31B00 ; CODE XREF: _IO_new_file_write+64j .text:00031B00 MOV R0, R7 .text:00031B04 LDMDB R11, {R4-R7,R11,SP,PC} .text:00031B04 ; End of function _IO_new_file_write .text:00031B04 .text:00031B08 .text:00031B08 ; =============== S U B R O U T I N E ======================================= .text:00031B08 .text:00031B08 ; Attributes: bp-based frame .text:00031B08 .text:00031B08 EXPORT _IO_new_file_xsputn .text:00031B08 _IO_new_file_xsputn .text:00031B08 MOV R12, SP ; Alternative name is '_IO_file_xsputn' .text:00031B0C STMFD SP!, {R4-R12,LR,PC} .text:00031B10 SUB R11, R12, #4 .text:00031B14 MOV R6, R1 .text:00031B18 MOV R10, R6 .text:00031B1C MOV R8, R2 .text:00031B20 MOV R5, R8 .text:00031B24 MOV R9, #0 .text:00031B28 CMP R8, R9 .text:00031B2C MOV R7, R0 .text:00031B30 MOVEQ R0, R8 .text:00031B34 LDMEQDB R11, {R4-R11,SP,PC} .text:00031B38 LDR R3, [R7] .text:00031B3C ADD R2, R7, #0x18 .text:00031B40 LDMDA R2, {R2,R4} .text:00031B44 SUB R4, R4, R2 .text:00031B48 LDR R0, [R7,#0x14] .text:00031B4C AND R3, R3, #0xA00 .text:00031B50 CMP R3, #0xA00 .text:00031B54 BNE loc_31B8C .text:00031B58 LDR R3, [R7,#0x20] .text:00031B5C RSB R4, R0, R3 .text:00031B60 CMP R4, R8 .text:00031B64 BCC loc_31B8C .text:00031B68 ADD R2, R10, R8 .text:00031B6C .text:00031B6C loc_31B6C ; CODE XREF: _IO_new_file_xsputn+74j .text:00031B6C CMP R2, R6 .text:00031B70 BLS loc_31B8C .text:00031B74 LDRB R3, [R2,#-1]! .text:00031B78 CMP R3, #0xA .text:00031B7C BNE loc_31B6C .text:00031B80 RSB R3, R6, R2 .text:00031B84 ADD R4, R3, #1 .text:00031B88 MOV R9, #1 .text:00031B8C .text:00031B8C loc_31B8C ; CODE XREF: _IO_new_file_xsputn+4Cj .text:00031B8C ; _IO_new_file_xsputn+5Cj ... .text:00031B8C CMP R4, #0 .text:00031B90 BEQ loc_31BE0 .text:00031B94 CMP R4, R8 .text:00031B98 MOVCS R4, R8 .text:00031B9C CMP R4, #0x14 .text:00031BA0 BLS loc_31BBC .text:00031BA4 MOV R1, R6 .text:00031BA8 MOV R2, R4 .text:00031BAC ADD R10, R6, R4 .text:00031BB0 BL mempcpy .text:00031BB4 RSB R2, R4, R8 .text:00031BB8 B loc_31BD8 .text:00031BBC ; --------------------------------------------------------------------------- .text:00031BBC .text:00031BBC loc_31BBC ; CODE XREF: _IO_new_file_xsputn+98j .text:00031BBC SUBS R1, R4, #1 .text:00031BC0 RSB R2, R4, R8 .text:00031BC4 BMI loc_31BD8 .text:00031BC8 .text:00031BC8 loc_31BC8 ; CODE XREF: _IO_new_file_xsputn+CCj .text:00031BC8 LDRB R3, [R10],#1 .text:00031BCC SUBS R1, R1, #1 .text:00031BD0 STRB R3, [R0],#1 .text:00031BD4 BPL loc_31BC8 .text:00031BD8 .text:00031BD8 loc_31BD8 ; CODE XREF: _IO_new_file_xsputn+B0j .text:00031BD8 ; _IO_new_file_xsputn+BCj .text:00031BD8 STR R0, [R7,#0x14] .text:00031BDC MOV R5, R2 .text:00031BE0 .text:00031BE0 loc_31BE0 ; CODE XREF: _IO_new_file_xsputn+88j .text:00031BE0 ADD R3, R5, R9 .text:00031BE4 CMP R3, #0 .text:00031BE8 BEQ loc_31C84 .text:00031BEC LDRB R3, [R7,#0x46] .text:00031BF0 MOV R0, R7 .text:00031BF4 MOV R3, R3,LSL#24 .text:00031BF8 ADD R3, R7, R3,ASR#24 .text:00031BFC LDR R2, [R3,#0x94] .text:00031C00 MOV R1, 0xFFFFFFFF .text:00031C04 MOV LR, PC .text:00031C08 LDR PC, [R2,#0xC] .text:00031C0C CMN R0, #1 .text:00031C10 BNE loc_31C1C .text:00031C14 .text:00031C14 loc_31C14 ; CODE XREF: _IO_new_file_xsputn+15Cj .text:00031C14 RSB R0, R5, R8 .text:00031C18 LDMDB R11, {R4-R11,SP,PC} .text:00031C1C ; --------------------------------------------------------------------------- .text:00031C1C .text:00031C1C loc_31C1C ; CODE XREF: _IO_new_file_xsputn+108j .text:00031C1C ADD R3, R7, #0x20 .text:00031C20 LDMDA R3, {R1,R3} .text:00031C24 SUB R1, R3, R1 .text:00031C28 MOV R6, R5 .text:00031C2C CMP R1, #0x7F .text:00031C30 BLS loc_31C40 .text:00031C34 MOV R0, R5 .text:00031C38 BL __umodsi3 .text:00031C3C RSB R6, R0, R5 .text:00031C40 .text:00031C40 loc_31C40 ; CODE XREF: _IO_new_file_xsputn+128j .text:00031C40 CMP R6, #0 .text:00031C44 BEQ loc_31C68 .text:00031C48 MOV R0, R7 .text:00031C4C MOV R1, R10 .text:00031C50 MOV R2, R6 .text:00031C54 BL new_do_write .text:00031C58 MOV R4, R0 .text:00031C5C RSB R5, R4, R5 .text:00031C60 CMP R4, R6 .text:00031C64 BCC loc_31C14 .text:00031C68 .text:00031C68 loc_31C68 ; CODE XREF: _IO_new_file_xsputn+13Cj .text:00031C68 CMP R5, #0 .text:00031C6C BEQ loc_31C84 .text:00031C70 MOV R0, R7 .text:00031C74 ADD R1, R10, R6 .text:00031C78 MOV R2, R5 .text:00031C7C BL _IO_default_xsputn .text:00031C80 RSB R5, R0, R5 .text:00031C84 .text:00031C84 loc_31C84 ; CODE XREF: _IO_new_file_xsputn+E0j .text:00031C84 ; _IO_new_file_xsputn+164j .text:00031C84 RSB R0, R5, R8 .text:00031C88 LDMDB R11, {R4-R11,SP,PC} .text:00031C88 ; End of function _IO_new_file_xsputn .text:00031C88 .text:00031C8C .text:00031C8C ; =============== S U B R O U T I N E ======================================= .text:00031C8C .text:00031C8C ; Attributes: bp-based frame .text:00031C8C .text:00031C8C EXPORT _IO_file_xsgetn .text:00031C8C _IO_file_xsgetn .text:00031C8C MOV R12, SP .text:00031C90 STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:00031C94 SUB R11, R12, #4 .text:00031C98 MOV R7, R1 .text:00031C9C MOV R5, R0 .text:00031CA0 MOV R8, R2 .text:00031CA4 LDR R3, [R5,#0x1C] .text:00031CA8 MOV R6, R8 .text:00031CAC CMP R3, #0 .text:00031CB0 BNE loc_31CD8 .text:00031CB4 LDR R0, [R5,#0x24] .text:00031CB8 CMP R0, #0 .text:00031CBC BEQ loc_31CD0 .text:00031CC0 BL free .text:00031CC4 LDR R3, [R5] .text:00031CC8 BIC R3, R3, #0x100 .text:00031CCC STR R3, [R5] .text:00031CD0 .text:00031CD0 loc_31CD0 ; CODE XREF: _IO_file_xsgetn+30j .text:00031CD0 MOV R0, R5 .text:00031CD4 BL _IO_doallocbuf .text:00031CD8 .text:00031CD8 loc_31CD8 ; CODE XREF: _IO_file_xsgetn+24j .text:00031CD8 CMP R8, #0 .text:00031CDC BEQ loc_31E58 .text:00031CE0 .text:00031CE0 loc_31CE0 ; CODE XREF: _IO_file_xsgetn+1C8j .text:00031CE0 ADD R3, R5, #8 .text:00031CE4 LDMDA R3, {R3,R4} .text:00031CE8 SUB R4, R4, R3 .text:00031CEC LDR R1, [R5,#4] .text:00031CF0 CMP R6, R4 .text:00031CF4 BHI loc_31D18 .text:00031CF8 MOV R0, R7 .text:00031CFC MOV R2, R6 .text:00031D00 BL memcpy .text:00031D04 LDR R3, [R5,#4] .text:00031D08 ADD R3, R3, R6 .text:00031D0C MOV R6, #0 .text:00031D10 STR R3, [R5,#4] .text:00031D14 B loc_31E50 .text:00031D18 ; --------------------------------------------------------------------------- .text:00031D18 .text:00031D18 loc_31D18 ; CODE XREF: _IO_file_xsgetn+68j .text:00031D18 CMP R4, #0 .text:00031D1C BEQ loc_31D40 .text:00031D20 MOV R0, R7 .text:00031D24 MOV R2, R4 .text:00031D28 BL mempcpy .text:00031D2C MOV R7, R0 .text:00031D30 LDR R3, [R5,#4] .text:00031D34 RSB R6, R4, R6 .text:00031D38 ADD R3, R3, R4 .text:00031D3C STR R3, [R5,#4] .text:00031D40 .text:00031D40 loc_31D40 ; CODE XREF: _IO_file_xsgetn+90j .text:00031D40 LDR R3, [R5] .text:00031D44 TST R3, #0x100 .text:00031D48 BEQ loc_31D58 .text:00031D4C MOV R0, R5 .text:00031D50 BL _IO_switch_to_main_get_area .text:00031D54 B loc_31E50 .text:00031D58 ; --------------------------------------------------------------------------- .text:00031D58 .text:00031D58 loc_31D58 ; CODE XREF: _IO_file_xsgetn+BCj .text:00031D58 LDR R3, [R5,#0x1C] .text:00031D5C CMP R3, #0 .text:00031D60 MOV R1, R3 .text:00031D64 BEQ loc_31D8C .text:00031D68 LDR R3, [R5,#0x20] .text:00031D6C RSB R3, R1, R3 .text:00031D70 CMP R6, R3 .text:00031D74 BCS loc_31D8C .text:00031D78 MOV R0, R5 .text:00031D7C BL __underflow .text:00031D80 CMN R0, #1 .text:00031D84 BEQ loc_31E58 .text:00031D88 B loc_31E50 .text:00031D8C ; --------------------------------------------------------------------------- .text:00031D8C .text:00031D8C loc_31D8C ; CODE XREF: _IO_file_xsgetn+D8j .text:00031D8C ; _IO_file_xsgetn+E8j .text:00031D8C STR R1, [R5,#0xC] .text:00031D90 STR R1, [R5,#4] .text:00031D94 STR R1, [R5,#8] .text:00031D98 STR R1, [R5,#0x14] .text:00031D9C STR R1, [R5,#0x10] .text:00031DA0 MOV LR, R6 .text:00031DA4 CMP R1, #0 .text:00031DA8 STR R1, [R5,#0x18] .text:00031DAC BEQ loc_31DCC .text:00031DB0 LDR R3, [R5,#0x20] .text:00031DB4 RSB R1, R1, R3 .text:00031DB8 CMP R1, #0x7F .text:00031DBC BLS loc_31DCC .text:00031DC0 MOV R0, R6 .text:00031DC4 BL __umodsi3 .text:00031DC8 RSB LR, R0, R6 .text:00031DCC .text:00031DCC loc_31DCC ; CODE XREF: _IO_file_xsgetn+120j .text:00031DCC ; _IO_file_xsgetn+130j .text:00031DCC MOV R0, R5 .text:00031DD0 LDRB R3, [R5,#0x46] .text:00031DD4 MOV R1, R7 .text:00031DD8 MOV R3, R3,LSL#24 .text:00031DDC ADD R3, R5, R3,ASR#24 .text:00031DE0 LDR R12, [R3,#0x94] .text:00031DE4 MOV R2, LR .text:00031DE8 MOV LR, PC .text:00031DEC LDR PC, [R12,#0x38] .text:00031DF0 SUBS LR, R0, #0 .text:00031DF4 BGT loc_31E18 .text:00031DF8 LDREQ R3, [R5] .text:00031DFC ORREQ R3, R3, #0x10 .text:00031E00 STREQ R3, [R5] .text:00031E04 BEQ loc_31E58 .text:00031E08 LDR R3, [R5] .text:00031E0C ORR R3, R3, #0x20 .text:00031E10 STR R3, [R5] .text:00031E14 B loc_31E58 .text:00031E18 ; --------------------------------------------------------------------------- .text:00031E18 .text:00031E18 loc_31E18 ; CODE XREF: _IO_file_xsgetn+168j .text:00031E18 ADD R7, R7, LR .text:00031E1C MOV R2, #0x4C .text:00031E20 RSB R6, LR, R6 .text:00031E24 LDR R3, [R5,R2] .text:00031E28 ADD R0, R5, R2 .text:00031E2C CMN R3, #1 .text:00031E30 BNE loc_31E40 .text:00031E34 LDR R3, [R0,#4] .text:00031E38 CMN R3, #1 .text:00031E3C BEQ loc_31E50 .text:00031E40 .text:00031E40 loc_31E40 ; CODE XREF: _IO_file_xsgetn+1A4j .text:00031E40 LDMIA R0, {R3,R4} .text:00031E44 ADDS R1, R3, LR .text:00031E48 ADC R2, R4, LR,ASR#31 .text:00031E4C STMIA R0, {R1,R2} .text:00031E50 .text:00031E50 loc_31E50 ; CODE XREF: _IO_file_xsgetn+88j .text:00031E50 ; _IO_file_xsgetn+C8j ... .text:00031E50 CMP R6, #0 .text:00031E54 BNE loc_31CE0 .text:00031E58 .text:00031E58 loc_31E58 ; CODE XREF: _IO_file_xsgetn+50j .text:00031E58 ; _IO_file_xsgetn+F8j ... .text:00031E58 RSB R0, R6, R8 .text:00031E5C LDMDB R11, {R4-R8,R11,SP,PC} .text:00031E5C ; End of function _IO_file_xsgetn .text:00031E5C .text:00031E60 .text:00031E60 ; =============== S U B R O U T I N E ======================================= .text:00031E60 .text:00031E60 ; Attributes: bp-based frame .text:00031E60 .text:00031E60 EXPORT _IO_file_open .text:00031E60 _IO_file_open .text:00031E60 .text:00031E60 var_18 = -0x18 .text:00031E60 arg_0 = 4 .text:00031E60 arg_4 = 8 .text:00031E60 .text:00031E60 MOV R12, SP .text:00031E64 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:00031E68 SUB R11, R12, #4 .text:00031E6C MOV R4, R0 .text:00031E70 MOV R0, R1 .text:00031E74 MOV R1, R2 .text:00031E78 SUB SP, SP, #4 .text:00031E7C LDR R12, [R11,#arg_4] .text:00031E80 MOV R2, R3 .text:00031E84 LDR R5, [R11,#arg_0] .text:00031E88 CMP R12, #0 .text:00031E8C BEQ loc_31E98 .text:00031E90 BL open .text:00031E94 B loc_31E9C .text:00031E98 ; --------------------------------------------------------------------------- .text:00031E98 .text:00031E98 loc_31E98 ; CODE XREF: _IO_file_open+2Cj .text:00031E98 BL open64 .text:00031E9C .text:00031E9C loc_31E9C ; CODE XREF: _IO_file_open+34j .text:00031E9C CMP R0, #0 .text:00031EA0 MOVLT R0, #0 .text:00031EA4 BLT locret_31F38 .text:00031EA8 BIC R2, R5, #0xFF0 .text:00031EAC BIC R2, R2, #3 .text:00031EB0 MOV R2, R2,LSL#19 .text:00031EB4 MOV R2, R2,LSR#19 .text:00031EB8 LDR R3, [R4] .text:00031EBC TST R5, #0x1000 .text:00031EC0 STR R0, [R4,#0x38] .text:00031EC4 BIC R3, R3, #0x1000 .text:00031EC8 BIC R3, R3, #0xC .text:00031ECC ORR R3, R3, R2 .text:00031ED0 STR R3, [R4] .text:00031ED4 BEQ loc_31F2C .text:00031ED8 LDRB R3, [R4,#0x46] .text:00031EDC MOV R3, R3,LSL#24 .text:00031EE0 ADD R3, R4, R3,ASR#24 .text:00031EE4 LDR R12, [R3,#0x94] .text:00031EE8 MOV R2, #3 .text:00031EEC STR R2, [SP,#0x18+var_18] .text:00031EF0 MOV R0, R4 .text:00031EF4 MOV R2, #0 .text:00031EF8 MOV R1, #0 .text:00031EFC MOV R3, #2 .text:00031F00 MOV LR, PC .text:00031F04 LDR PC, [R12,#0x24] .text:00031F08 CMN R0, #1 .text:00031F0C BNE loc_31F2C .text:00031F10 CMN R1, #1 .text:00031F14 BNE loc_31F2C .text:00031F18 BL __errno_location .text:00031F1C LDR R3, [R0] .text:00031F20 MOV R0, #0 .text:00031F24 CMP R3, #0x1D .text:00031F28 BNE locret_31F38 .text:00031F2C .text:00031F2C loc_31F2C ; CODE XREF: _IO_file_open+74j .text:00031F2C ; _IO_file_open+ACj ... .text:00031F2C MOV R0, R4 .text:00031F30 BL _IO_link_in .text:00031F34 MOV R0, R4 .text:00031F38 .text:00031F38 locret_31F38 ; CODE XREF: _IO_file_open+44j .text:00031F38 ; _IO_file_open+C8j .text:00031F38 LDMDB R11, {R4,R5,R11,SP,PC} .text:00031F38 ; End of function _IO_file_open .text:00031F38 .text:00031F3C .text:00031F3C ; =============== S U B R O U T I N E ======================================= .text:00031F3C .text:00031F3C ; Attributes: bp-based frame .text:00031F3C .text:00031F3C WEAK strchr .text:00031F3C strchr ; CODE XREF: _dl_dst_count+130p .text:00031F3C ; expand_dynamic_string_token+20p ... .text:00031F3C MOV R12, SP .text:00031F40 STMFD SP!, {R4,R11,R12,LR,PC} .text:00031F44 SUB R11, R12, #4 .text:00031F48 MOV R3, R0 .text:00031F4C TST R3, #3 .text:00031F50 AND R1, R1, #0xFF .text:00031F54 BEQ loc_31F78 .text:00031F58 .text:00031F58 loc_31F58 ; CODE XREF: strchr+38j .text:00031F58 LDRB R0, [R3] .text:00031F5C CMP R0, R1 .text:00031F60 BEQ loc_3201C .text:00031F64 CMP R0, #0 .text:00031F68 LDMEQDB R11, {R4,R11,SP,PC} .text:00031F6C ADD R3, R3, #1 .text:00031F70 TST R3, #3 .text:00031F74 BNE loc_31F58 .text:00031F78 .text:00031F78 loc_31F78 ; CODE XREF: strchr+18j .text:00031F78 MOV R12, R3 .text:00031F7C MOV LR, 0x7EFEFEFF .text:00031F88 ORR R4, R1, R1,LSL#8 .text:00031F8C ORR R4, R4, R4,LSL#16 .text:00031F90 .text:00031F90 loc_31F90 ; CODE XREF: strchr+7Cj .text:00031F90 ; strchr+DCj .text:00031F90 LDR R2, [R12],#4 .text:00031F94 MVN R0, LR .text:00031F98 ADD R3, R2, LR .text:00031F9C EOR R3, R2, R3 .text:00031FA0 BICS R3, R0, R3 .text:00031FA4 BNE loc_31FBC .text:00031FA8 EOR R3, R2, R4 .text:00031FAC ADD R2, R3, LR .text:00031FB0 EOR R3, R3, R2 .text:00031FB4 BICS R3, R0, R3 .text:00031FB8 BEQ loc_31F90 .text:00031FBC .text:00031FBC loc_31FBC ; CODE XREF: strchr+68j .text:00031FBC LDRB R3, [R12,#-4] .text:00031FC0 SUB R0, R12, #4 .text:00031FC4 CMP R3, R1 .text:00031FC8 LDMEQDB R11, {R4,R11,SP,PC} .text:00031FCC CMP R3, #0 .text:00031FD0 BEQ loc_3201C .text:00031FD4 LDRB R3, [R12,#-3] .text:00031FD8 SUB R0, R12, #3 .text:00031FDC CMP R3, R1 .text:00031FE0 LDMEQDB R11, {R4,R11,SP,PC} .text:00031FE4 CMP R3, #0 .text:00031FE8 BEQ loc_3201C .text:00031FEC LDRB R3, [R12,#-2] .text:00031FF0 SUB R0, R12, #2 .text:00031FF4 CMP R3, R1 .text:00031FF8 LDMEQDB R11, {R4,R11,SP,PC} .text:00031FFC CMP R3, #0 .text:00032000 BEQ loc_3201C .text:00032004 MOV R0, R12 .text:00032008 LDRB R3, [R0,#-1]! .text:0003200C CMP R3, R1 .text:00032010 LDMEQDB R11, {R4,R11,SP,PC} .text:00032014 CMP R3, #0 .text:00032018 BNE loc_31F90 .text:0003201C .text:0003201C loc_3201C ; CODE XREF: strchr+24j .text:0003201C ; strchr+94j ... .text:0003201C MOV R0, R3 .text:00032020 LDMDB R11, {R4,R11,SP,PC} .text:00032020 ; End of function strchr .text:00032020 .text:00032024 .text:00032024 ; =============== S U B R O U T I N E ======================================= .text:00032024 .text:00032024 ; Attributes: bp-based frame .text:00032024 .text:00032024 EXPORT strcmp .text:00032024 strcmp ; CODE XREF: add_name_to_object+28p .text:00032024 ; _dl_map_object+4Cp ... .text:00032024 MOV R12, SP .text:00032028 STMFD SP!, {R11,R12,LR,PC} .text:0003202C SUB R11, R12, #4 .text:00032030 MOV R2, R0 .text:00032034 .text:00032034 loc_32034 ; CODE XREF: strcmp+24j .text:00032034 LDRB R0, [R2],#1 .text:00032038 LDRB R3, [R1],#1 .text:0003203C CMP R0, #0 .text:00032040 BEQ loc_32054 .text:00032044 CMP R0, R3 .text:00032048 BEQ loc_32034 .text:0003204C RSB R0, R3, R0 .text:00032050 LDMDB R11, {R11,SP,PC} .text:00032054 ; --------------------------------------------------------------------------- .text:00032054 .text:00032054 loc_32054 ; CODE XREF: strcmp+1Cj .text:00032054 RSB R0, R3, #0 .text:00032058 LDMDB R11, {R11,SP,PC} .text:00032058 ; End of function strcmp .text:00032058 .text:0003205C .text:0003205C ; =============== S U B R O U T I N E ======================================= .text:0003205C .text:0003205C ; Attributes: bp-based frame .text:0003205C .text:0003205C WEAK strdup .text:0003205C strdup ; CODE XREF: _nl_find_domain+F8p .text:0003205C ; get_proc_path+9Cp ... .text:0003205C MOV R12, SP .text:00032060 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:00032064 SUB R11, R12, #4 .text:00032068 MOV R5, R0 .text:0003206C BL strlen .text:00032070 ADD R4, R0, #1 .text:00032074 MOV R0, R4 .text:00032078 BL malloc .text:0003207C CMP R0, #0 .text:00032080 LDMEQDB R11, {R4,R5,R11,SP,PC} .text:00032084 MOV R1, R5 .text:00032088 MOV R2, R4 .text:0003208C BL memcpy .text:00032090 LDMDB R11, {R4,R5,R11,SP,PC} .text:00032090 ; End of function strdup .text:00032090 .text:00032094 .text:00032094 ; =============== S U B R O U T I N E ======================================= .text:00032094 .text:00032094 ; Attributes: bp-based frame .text:00032094 .text:00032094 WEAK strnlen .text:00032094 strnlen ; CODE XREF: vfprintf+18B0p .text:00032094 ; vfprintf+3C30p ... .text:00032094 MOV R12, SP .text:00032098 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0003209C SUB R11, R12, #4 .text:000320A0 MOV R5, R0 .text:000320A4 MOV R4, R1 .text:000320A8 MOV R1, #0 .text:000320AC MOV R2, R4 .text:000320B0 BL memchr .text:000320B4 CMP R0, #0 .text:000320B8 SUBNE R0, R0, R5 .text:000320BC MOVEQ R0, R4 .text:000320C0 LDMDB R11, {R4,R5,R11,SP,PC} .text:000320C0 ; End of function strnlen .text:000320C0 .text:000320C4 .text:000320C4 ; =============== S U B R O U T I N E ======================================= .text:000320C4 .text:000320C4 ; Attributes: bp-based frame .text:000320C4 .text:000320C4 EXPORT strncmp .text:000320C4 strncmp ; CODE XREF: _dl_dst_count+38p .text:000320C4 ; _dl_dst_count+54p ... .text:000320C4 MOV R12, SP .text:000320C8 STMFD SP!, {R4,R11,R12,LR,PC} .text:000320CC SUB R11, R12, #4 .text:000320D0 MOV LR, R0 .text:000320D4 MOV R0, #0 .text:000320D8 MOV R12, R0 .text:000320DC CMP R2, #3 .text:000320E0 BLS loc_3217C .text:000320E4 MOV R4, R2,LSR#2 .text:000320E8 .text:000320E8 loc_320E8 ; CODE XREF: strncmp+B0j .text:000320E8 LDRB R0, [LR],#1 .text:000320EC LDRB R12, [R1],#1 .text:000320F0 SUBS R3, R0, R12 .text:000320F4 MOVNE R3, #1 .text:000320F8 CMP R0, #0 .text:000320FC MOVEQ R3, #1 .text:00032100 CMP R3, #0 .text:00032104 BEQ loc_32110 .text:00032108 .text:00032108 loc_32108 ; CODE XREF: strncmp+68j .text:00032108 ; strncmp+88j ... .text:00032108 RSB R0, R12, R0 .text:0003210C LDMDB R11, {R4,R11,SP,PC} .text:00032110 ; --------------------------------------------------------------------------- .text:00032110 .text:00032110 loc_32110 ; CODE XREF: strncmp+40j .text:00032110 LDRB R0, [LR],#1 .text:00032114 LDRB R12, [R1],#1 .text:00032118 SUBS R3, R0, R12 .text:0003211C MOVNE R3, #1 .text:00032120 CMP R0, #0 .text:00032124 MOVEQ R3, #1 .text:00032128 CMP R3, #0 .text:0003212C BNE loc_32108 .text:00032130 LDRB R0, [LR],#1 .text:00032134 LDRB R12, [R1],#1 .text:00032138 SUBS R3, R0, R12 .text:0003213C MOVNE R3, #1 .text:00032140 CMP R0, #0 .text:00032144 MOVEQ R3, #1 .text:00032148 CMP R3, #0 .text:0003214C BNE loc_32108 .text:00032150 LDRB R0, [LR],#1 .text:00032154 LDRB R12, [R1],#1 .text:00032158 SUBS R3, R0, R12 .text:0003215C MOVNE R3, #1 .text:00032160 CMP R0, #0 .text:00032164 MOVEQ R3, #1 .text:00032168 CMP R3, #0 .text:0003216C BNE loc_32108 .text:00032170 SUBS R4, R4, #1 .text:00032174 BNE loc_320E8 .text:00032178 AND R2, R2, #3 .text:0003217C .text:0003217C loc_3217C ; CODE XREF: strncmp+1Cj .text:0003217C CMP R2, #0 .text:00032180 BEQ loc_321AC .text:00032184 .text:00032184 loc_32184 ; CODE XREF: strncmp+E4j .text:00032184 LDRB R0, [LR],#1 .text:00032188 LDRB R12, [R1],#1 .text:0003218C SUBS R3, R0, R12 .text:00032190 MOVNE R3, #1 .text:00032194 CMP R0, #0 .text:00032198 MOVEQ R3, #1 .text:0003219C CMP R3, #0 .text:000321A0 BNE loc_32108 .text:000321A4 SUBS R2, R2, #1 .text:000321A8 BNE loc_32184 .text:000321AC .text:000321AC loc_321AC ; CODE XREF: strncmp+BCj .text:000321AC RSB R0, R12, R0 .text:000321B0 LDMDB R11, {R4,R11,SP,PC} .text:000321B0 ; End of function strncmp .text:000321B0 .text:000321B4 .text:000321B4 ; =============== S U B R O U T I N E ======================================= .text:000321B4 .text:000321B4 ; Attributes: bp-based frame .text:000321B4 .text:000321B4 EXPORT strrchr .text:000321B4 strrchr ; CODE XREF: _dl_new_object+288p .text:000321B4 ; _dl_get_origin+54p ... .text:000321B4 MOV R12, SP ; Alternative name is 'rindex' .text:000321B8 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:000321BC SUB R11, R12, #4 .text:000321C0 MOV R4, R1 .text:000321C4 ANDS R4, R4, #0xFF .text:000321C8 BNE loc_321D8 .text:000321CC MOV R1, R4 .text:000321D0 BL rawmemchr .text:000321D4 LDMDB R11, {R4,R5,R11,SP,PC} .text:000321D8 ; --------------------------------------------------------------------------- .text:000321D8 .text:000321D8 loc_321D8 ; CODE XREF: strrchr+14j .text:000321D8 MOV R5, #0 .text:000321DC B loc_321E8 .text:000321E0 ; --------------------------------------------------------------------------- .text:000321E0 .text:000321E0 loc_321E0 ; CODE XREF: strrchr+40j .text:000321E0 MOV R5, R0 .text:000321E4 ADD R0, R5, #1 .text:000321E8 .text:000321E8 loc_321E8 ; CODE XREF: strrchr+28j .text:000321E8 MOV R1, R4 .text:000321EC BL strchr .text:000321F0 CMP R0, #0 .text:000321F4 BNE loc_321E0 .text:000321F8 MOV R0, R5 .text:000321FC LDMDB R11, {R4,R5,R11,SP,PC} .text:000321FC ; End of function strrchr .text:000321FC .text:00032200 .text:00032200 ; =============== S U B R O U T I N E ======================================= .text:00032200 .text:00032200 ; Attributes: bp-based frame .text:00032200 .text:00032200 EXPORT strpbrk .text:00032200 strpbrk ; CODE XREF: decompose_rpath+158p .text:00032200 ; _dl_init_paths+26Cp .text:00032200 MOV R12, SP .text:00032204 STMFD SP!, {R11,R12,LR,PC} .text:00032208 LDRB R3, [R0] .text:0003220C SUB R11, R12, #4 .text:00032210 CMP R3, #0 .text:00032214 BEQ loc_32250 .text:00032218 .text:00032218 loc_32218 ; CODE XREF: strpbrk+4Cj .text:00032218 MOV R2, R1 .text:0003221C LDRB R3, [R2] .text:00032220 CMP R3, #0 .text:00032224 BEQ loc_32244 .text:00032228 LDRB R12, [R0] .text:0003222C .text:0003222C loc_3222C ; CODE XREF: strpbrk+40j .text:0003222C ADD R2, R2, #1 .text:00032230 CMP R3, R12 .text:00032234 LDMEQDB R11, {R11,SP,PC} .text:00032238 LDRB R3, [R2] .text:0003223C CMP R3, #0 .text:00032240 BNE loc_3222C .text:00032244 .text:00032244 loc_32244 ; CODE XREF: strpbrk+24j .text:00032244 LDRB R3, [R0,#1]! .text:00032248 CMP R3, #0 .text:0003224C BNE loc_32218 .text:00032250 .text:00032250 loc_32250 ; CODE XREF: strpbrk+14j .text:00032250 MOV R0, #0 .text:00032254 LDMDB R11, {R11,SP,PC} .text:00032254 ; End of function strpbrk .text:00032254 .text:00032258 .text:00032258 ; =============== S U B R O U T I N E ======================================= .text:00032258 .text:00032258 ; Attributes: bp-based frame .text:00032258 .text:00032258 EXPORT strstr .text:00032258 strstr ; CODE XREF: decompose_rpath+50p .text:00032258 ; _nl_init_domain_conv+54p ... .text:00032258 MOV R12, SP .text:0003225C STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:00032260 LDRB R4, [R1] .text:00032264 SUB R11, R12, #4 .text:00032268 CMP R4, #0 .text:0003226C LDMEQDB R11, {R4,R5,R11,SP,PC} .text:00032270 SUB R0, R0, #1 .text:00032274 .text:00032274 loc_32274 ; CODE XREF: strstr+2Cj .text:00032274 LDRB LR, [R0,#1]! .text:00032278 CMP LR, #0 .text:0003227C BEQ loc_32334 .text:00032280 CMP LR, R4 .text:00032284 BNE loc_32274 .text:00032288 LDRB LR, [R1,#1]! .text:0003228C CMP LR, #0 .text:00032290 LDMEQDB R11, {R4,R5,R11,SP,PC} .text:00032294 ADD R1, R1, #1 .text:00032298 B loc_322C4 .text:0003229C ; --------------------------------------------------------------------------- .text:0003229C .text:0003229C loc_3229C ; CODE XREF: strstr+68j .text:0003229C ; strstr+D4j .text:0003229C LDRB R2, [R0,#1]! .text:000322A0 CMP R2, #0 .text:000322A4 BEQ loc_32334 .text:000322A8 CMP R2, R4 .text:000322AC BEQ loc_322C4 .text:000322B0 LDRB R2, [R0,#1]! .text:000322B4 CMP R2, #0 .text:000322B8 BEQ loc_32334 .text:000322BC .text:000322BC loc_322BC ; CODE XREF: strstr+7Cj .text:000322BC CMP R2, R4 .text:000322C0 BNE loc_3229C .text:000322C4 .text:000322C4 loc_322C4 ; CODE XREF: strstr+40j .text:000322C4 ; strstr+54j .text:000322C4 LDRB R2, [R0,#1]! .text:000322C8 CMP R2, #0 .text:000322CC BEQ loc_32334 .text:000322D0 CMP R2, LR .text:000322D4 BNE loc_322BC .text:000322D8 ADD R12, R0, #1 .text:000322DC LDRB R2, [R1] .text:000322E0 SUB R0, R0, #1 .text:000322E4 LDRB R3, [R12] .text:000322E8 MOV R5, R1 .text:000322EC CMP R3, R2 .text:000322F0 BNE loc_32324 .text:000322F4 .text:000322F4 loc_322F4 ; CODE XREF: strstr+C8j .text:000322F4 CMP R2, #0 .text:000322F8 LDMEQDB R11, {R4,R5,R11,SP,PC} .text:000322FC LDRB R2, [R1,#1]! .text:00032300 LDRB R3, [R12,#1]! .text:00032304 CMP R3, R2 .text:00032308 BNE loc_32324 .text:0003230C CMP R2, #0 .text:00032310 LDMEQDB R11, {R4,R5,R11,SP,PC} .text:00032314 LDRB R2, [R1,#1]! .text:00032318 LDRB R3, [R12,#1]! .text:0003231C CMP R3, R2 .text:00032320 BEQ loc_322F4 .text:00032324 .text:00032324 loc_32324 ; CODE XREF: strstr+98j .text:00032324 ; strstr+B0j .text:00032324 MOV R1, R5 .text:00032328 CMP R2, #0 .text:0003232C BNE loc_3229C .text:00032330 LDMDB R11, {R4,R5,R11,SP,PC} .text:00032334 ; --------------------------------------------------------------------------- .text:00032334 .text:00032334 loc_32334 ; CODE XREF: strstr+24j .text:00032334 ; strstr+4Cj ... .text:00032334 MOV R0, #0 .text:00032338 LDMDB R11, {R4,R5,R11,SP,PC} .text:00032338 ; End of function strstr .text:00032338 .text:0003233C .text:0003233C ; =============== S U B R O U T I N E ======================================= .text:0003233C .text:0003233C ; Attributes: bp-based frame .text:0003233C .text:0003233C WEAK memchr .text:0003233C memchr ; CODE XREF: strnlen+1Cp .text:0003233C ; argz_stringify+30p ... .text:0003233C MOV R12, SP ; Alternative name is '__memchr' .text:00032340 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:00032344 SUB R11, R12, #4 .text:00032348 SUBS R12, R2, #0 .text:0003234C AND R1, R1, #0xFF .text:00032350 BEQ loc_32374 .text:00032354 .text:00032354 loc_32354 ; CODE XREF: memchr+34j .text:00032354 TST R0, #3 .text:00032358 BEQ loc_32374 .text:0003235C LDRB R3, [R0] .text:00032360 CMP R3, R1 .text:00032364 LDMEQDB R11, {R4-R6,R11,SP,PC} .text:00032368 ADD R0, R0, #1 .text:0003236C SUBS R12, R12, #1 .text:00032370 BNE loc_32354 .text:00032374 .text:00032374 loc_32374 ; CODE XREF: memchr+14j .text:00032374 ; memchr+1Cj .text:00032374 MOV LR, R0 .text:00032378 MOV R4, 0x7EFEFEFF .text:00032384 ORR R5, R1, R1,LSL#8 .text:00032388 ORR R5, R5, R5,LSL#16 .text:0003238C CMP R12, #3 .text:00032390 BLS loc_323FC .text:00032394 MVN R6, R4 .text:00032398 .text:00032398 loc_32398 ; CODE XREF: memchr+BCj .text:00032398 LDR R3, [LR],#4 .text:0003239C EOR R3, R3, R5 .text:000323A0 ADD R2, R3, R4 .text:000323A4 EOR R3, R3, R2 .text:000323A8 BICS R3, R6, R3 .text:000323AC BEQ loc_323F0 .text:000323B0 LDRB R3, [LR,#-4] .text:000323B4 SUB R0, LR, #4 .text:000323B8 CMP R3, R1 .text:000323BC LDMEQDB R11, {R4-R6,R11,SP,PC} .text:000323C0 LDRB R3, [R0,#1] .text:000323C4 CMP R3, R1 .text:000323C8 SUBEQ R0, LR, #3 .text:000323CC LDMEQDB R11, {R4-R6,R11,SP,PC} .text:000323D0 LDRB R3, [R0,#2] .text:000323D4 CMP R3, R1 .text:000323D8 SUBEQ R0, LR, #2 .text:000323DC LDMEQDB R11, {R4-R6,R11,SP,PC} .text:000323E0 LDRB R3, [R0,#3] .text:000323E4 CMP R3, R1 .text:000323E8 SUBEQ R0, LR, #1 .text:000323EC LDMEQDB R11, {R4-R6,R11,SP,PC} .text:000323F0 .text:000323F0 loc_323F0 ; CODE XREF: memchr+70j .text:000323F0 SUB R12, R12, #4 .text:000323F4 CMP R12, #3 .text:000323F8 BHI loc_32398 .text:000323FC .text:000323FC loc_323FC ; CODE XREF: memchr+54j .text:000323FC MOV R0, LR .text:00032400 B loc_32414 .text:00032404 ; --------------------------------------------------------------------------- .text:00032404 .text:00032404 loc_32404 ; CODE XREF: memchr+E4j .text:00032404 LDRB R3, [R0] .text:00032408 CMP R3, R1 .text:0003240C LDMEQDB R11, {R4-R6,R11,SP,PC} .text:00032410 ADD R0, R0, #1 .text:00032414 .text:00032414 loc_32414 ; CODE XREF: memchr+C4j .text:00032414 MOV R3, R12 .text:00032418 SUB R12, R12, #1 .text:0003241C CMP R3, #0 .text:00032420 BNE loc_32404 .text:00032424 MOV R0, #0 .text:00032428 LDMDB R11, {R4-R6,R11,SP,PC} .text:00032428 ; End of function memchr .text:00032428 .text:0003242C .text:0003242C ; =============== S U B R O U T I N E ======================================= .text:0003242C .text:0003242C ; Attributes: bp-based frame .text:0003242C .text:0003242C WEAK memcmp .text:0003242C memcmp ; CODE XREF: decompose_rpath+208p .text:0003242C ; _dl_init_paths+318p ... .text:0003242C .text:0003242C var_78 = -0x78 .text:0003242C var_74 = -0x74 .text:0003242C var_70 = -0x70 .text:0003242C var_6C = -0x6C .text:0003242C var_68 = -0x68 .text:0003242C var_64 = -0x64 .text:0003242C var_60 = -0x60 .text:0003242C var_5C = -0x5C .text:0003242C var_58 = -0x58 .text:0003242C var_54 = -0x54 .text:0003242C var_50 = -0x50 .text:0003242C var_4C = -0x4C .text:0003242C var_48 = -0x48 .text:0003242C var_44 = -0x44 .text:0003242C var_40 = -0x40 .text:0003242C var_3C = -0x3C .text:0003242C var_38 = -0x38 .text:0003242C var_34 = -0x34 .text:0003242C var_30 = -0x30 .text:0003242C var_2C = -0x2C .text:0003242C .text:0003242C MOV R12, SP .text:00032430 STMFD SP!, {R4-R12,LR,PC} .text:00032434 SUB R11, R12, #4 .text:00032438 MOV R10, R2 .text:0003243C MOV R9, R0 .text:00032440 MOV R8, R1 .text:00032444 CMP R10, #0xF .text:00032448 SUB SP, SP, #0x50 .text:0003244C BLS loc_32810 .text:00032450 TST R8, #3 .text:00032454 BEQ loc_32474 .text:00032458 .text:00032458 loc_32458 ; CODE XREF: memcmp+44j .text:00032458 LDRB R12, [R9],#1 .text:0003245C LDRB R3, [R8],#1 .text:00032460 SUBS R0, R12, R3 .text:00032464 BNE locret_32834 .text:00032468 SUB R10, R10, #1 .text:0003246C TST R8, #3 .text:00032470 BNE loc_32458 .text:00032474 .text:00032474 loc_32474 ; CODE XREF: memcmp+28j .text:00032474 ANDS R3, R9, #3 .text:00032478 BNE loc_3261C .text:0003247C MOV R0, R9 .text:00032480 MOV R2, R8 .text:00032484 MOV R12, R10,LSR#2 .text:00032488 MOV R4, R12 .text:0003248C AND R3, R4, #3 .text:00032490 CMP R3, #3 ; switch 4 cases .text:00032494 LDRLS PC, [PC,R3,LSL#2] ; switch jump .text:00032498 B loc_324AC ; jumptable 00032494 default case .text:00032498 ; --------------------------------------------------------------------------- .text:0003249C DCD loc_324DC ; jump table for switch statement .text:0003249C DCD loc_324E8 .text:0003249C DCD loc_324AC .text:0003249C DCD loc_324C4 .text:000324AC ; --------------------------------------------------------------------------- .text:000324AC .text:000324AC loc_324AC ; CODE XREF: memcmp+68j .text:000324AC ; memcmp+6Cj .text:000324AC ; DATA XREF: ... .text:000324AC SUB R0, R9, #8 ; jumptable 00032494 default case .text:000324B0 SUB R2, R8, #8 .text:000324B4 LDR R1, [R9] .text:000324B8 ADD R4, R12, #2 .text:000324BC LDR LR, [R8] .text:000324C0 B loc_325A4 .text:000324C4 ; --------------------------------------------------------------------------- .text:000324C4 .text:000324C4 loc_324C4 ; CODE XREF: memcmp+68j .text:000324C4 ; DATA XREF: memcmp+70o .text:000324C4 MOV R0, R9 ; jumptable 00032494 case 3 .text:000324C8 MOV R2, R8 .text:000324CC LDR R3, [R0],#-4 .text:000324D0 ADD R4, R12, #1 .text:000324D4 LDR R12, [R2],#-4 .text:000324D8 B loc_3256C .text:000324DC ; --------------------------------------------------------------------------- .text:000324DC .text:000324DC loc_324DC ; CODE XREF: memcmp+68j .text:000324DC ; DATA XREF: memcmp+70o .text:000324DC LDR R1, [R9] ; jumptable 00032494 case 0 .text:000324E0 LDR LR, [R8] .text:000324E4 B loc_32534 .text:000324E8 ; --------------------------------------------------------------------------- .text:000324E8 .text:000324E8 loc_324E8 ; CODE XREF: memcmp+68j .text:000324E8 ; DATA XREF: memcmp+70o .text:000324E8 MOV R0, R9 ; jumptable 00032494 case 1 .text:000324EC MOV R2, R8 .text:000324F0 LDR R3, [R0],#4 .text:000324F4 SUB R4, R12, #1 .text:000324F8 LDR R12, [R2],#4 .text:000324FC .text:000324FC loc_324FC ; CODE XREF: memcmp+1BCj .text:000324FC LDR R1, [R0] .text:00032500 CMP R3, R12 .text:00032504 LDR LR, [R2] .text:00032508 BEQ loc_32534 .text:0003250C STR R3, [R11,#var_2C] .text:00032510 SUB R2, R11, #-var_2C .text:00032514 SUB LR, R11, #-var_30 .text:00032518 STR R12, [R11,#var_30] .text:0003251C .text:0003251C loc_3251C ; CODE XREF: memcmp+FCj .text:0003251C LDRB R3, [R2],#1 .text:00032520 LDRB R0, [LR],#1 .text:00032524 CMP R3, R0 .text:00032528 BEQ loc_3251C .text:0003252C RSB R0, R0, R3 .text:00032530 B loc_327F8 .text:00032534 ; --------------------------------------------------------------------------- .text:00032534 .text:00032534 loc_32534 ; CODE XREF: memcmp+B8j .text:00032534 ; memcmp+DCj .text:00032534 LDR R3, [R0,#4] .text:00032538 CMP R1, LR .text:0003253C LDR R12, [R2,#4] .text:00032540 BEQ loc_3256C .text:00032544 STR R1, [R11,#var_34] .text:00032548 SUB R2, R11, #-var_34 .text:0003254C SUB R12, R11, #-var_38 .text:00032550 STR LR, [R11,#var_38] .text:00032554 .text:00032554 loc_32554 ; CODE XREF: memcmp+134j .text:00032554 LDRB R3, [R2],#1 .text:00032558 LDRB R0, [R12],#1 .text:0003255C CMP R3, R0 .text:00032560 BEQ loc_32554 .text:00032564 RSB R0, R0, R3 .text:00032568 B loc_327F8 .text:0003256C ; --------------------------------------------------------------------------- .text:0003256C .text:0003256C loc_3256C ; CODE XREF: memcmp+ACj .text:0003256C ; memcmp+114j .text:0003256C LDR R1, [R0,#8] .text:00032570 CMP R3, R12 .text:00032574 LDR LR, [R2,#8] .text:00032578 BEQ loc_325A4 .text:0003257C STR R3, [R11,#var_3C] .text:00032580 SUB R2, R11, #-var_3C .text:00032584 SUB LR, R11, #-var_40 .text:00032588 STR R12, [R11,#var_40] .text:0003258C .text:0003258C loc_3258C ; CODE XREF: memcmp+16Cj .text:0003258C LDRB R3, [R2],#1 .text:00032590 LDRB R0, [LR],#1 .text:00032594 CMP R3, R0 .text:00032598 BEQ loc_3258C .text:0003259C RSB R0, R0, R3 .text:000325A0 B loc_327F8 .text:000325A4 ; --------------------------------------------------------------------------- .text:000325A4 .text:000325A4 loc_325A4 ; CODE XREF: memcmp+94j .text:000325A4 ; memcmp+14Cj .text:000325A4 LDR R3, [R0,#0xC] .text:000325A8 CMP R1, LR .text:000325AC LDR R12, [R2,#0xC] .text:000325B0 BEQ loc_325DC .text:000325B4 STR R1, [R11,#var_44] .text:000325B8 SUB R2, R11, #-var_44 .text:000325BC SUB R12, R11, #-var_48 .text:000325C0 STR LR, [R11,#var_48] .text:000325C4 .text:000325C4 loc_325C4 ; CODE XREF: memcmp+1A4j .text:000325C4 LDRB R3, [R2],#1 .text:000325C8 LDRB R0, [R12],#1 .text:000325CC CMP R3, R0 .text:000325D0 BEQ loc_325C4 .text:000325D4 RSB R0, R0, R3 .text:000325D8 B loc_327F8 .text:000325DC ; --------------------------------------------------------------------------- .text:000325DC .text:000325DC loc_325DC ; CODE XREF: memcmp+184j .text:000325DC ADD R0, R0, #0x10 .text:000325E0 ADD R2, R2, #0x10 .text:000325E4 SUBS R4, R4, #4 .text:000325E8 BNE loc_324FC .text:000325EC CMP R3, R12 .text:000325F0 BEQ loc_327F4 .text:000325F4 STR R3, [R11,#var_4C] .text:000325F8 SUB R4, R11, #-var_4C .text:000325FC SUB LR, R11, #-var_50 .text:00032600 STR R12, [R11,#var_50] .text:00032604 .text:00032604 loc_32604 ; CODE XREF: memcmp+1E4j .text:00032604 LDRB R3, [R4],#1 .text:00032608 LDRB R0, [LR],#1 .text:0003260C CMP R3, R0 .text:00032610 BEQ loc_32604 .text:00032614 RSB R0, R0, R3 .text:00032618 B loc_327F8 .text:0003261C ; --------------------------------------------------------------------------- .text:0003261C .text:0003261C loc_3261C ; CODE XREF: memcmp+4Cj .text:0003261C MOV LR, R8 .text:00032620 MOV R0, R10,LSR#2 .text:00032624 MOV R5, R0 .text:00032628 BIC R12, R9, #3 .text:0003262C MOV R6, R3,LSL#3 .text:00032630 RSB R7, R6, #0x20 .text:00032634 AND R3, R5, #3 .text:00032638 CMP R3, #3 ; switch 4 cases .text:0003263C LDRLS PC, [PC,R3,LSL#2] ; switch jump .text:00032640 B loc_32654 ; jumptable 0003263C default case .text:00032640 ; --------------------------------------------------------------------------- .text:00032644 DCD loc_32684 ; jump table for switch statement .text:00032644 DCD loc_32694 .text:00032644 DCD loc_32654 .text:00032644 DCD loc_3266C .text:00032654 ; --------------------------------------------------------------------------- .text:00032654 .text:00032654 loc_32654 ; CODE XREF: memcmp+210j .text:00032654 ; memcmp+214j .text:00032654 ; DATA XREF: ... .text:00032654 LDMIA R12, {R1,R4} ; jumptable 0003263C default case .text:00032658 SUB R12, R12, #4 .text:0003265C SUB LR, R8, #8 .text:00032660 ADD R5, R0, #2 .text:00032664 LDR R2, [R8] .text:00032668 B loc_3276C .text:0003266C ; --------------------------------------------------------------------------- .text:0003266C .text:0003266C loc_3266C ; CODE XREF: memcmp+210j .text:0003266C ; DATA XREF: memcmp+218o .text:0003266C LDR R2, [R12] ; jumptable 0003263C case 3 .text:00032670 MOV LR, R8 .text:00032674 LDR R1, [R12,#4] .text:00032678 ADD R5, R0, #1 .text:0003267C LDR R0, [LR],#-4 .text:00032680 B loc_3272C .text:00032684 ; --------------------------------------------------------------------------- .text:00032684 .text:00032684 loc_32684 ; CODE XREF: memcmp+210j .text:00032684 ; DATA XREF: memcmp+218o .text:00032684 LDR R1, [R12] ; jumptable 0003263C case 0 .text:00032688 LDR R2, [R12,#4]! .text:0003268C LDR R4, [R8] .text:00032690 B loc_326EC .text:00032694 ; --------------------------------------------------------------------------- .text:00032694 .text:00032694 loc_32694 ; CODE XREF: memcmp+210j .text:00032694 ; DATA XREF: memcmp+218o .text:00032694 LDR R4, [R12] ; jumptable 0003263C case 1 .text:00032698 MOV LR, R8 .text:0003269C LDR R1, [R12,#4] .text:000326A0 ADD R12, R12, #8 .text:000326A4 SUB R5, R0, #1 .text:000326A8 LDR R0, [LR],#4 .text:000326AC .text:000326AC loc_326AC ; CODE XREF: memcmp+38Cj .text:000326AC MOV R3, R1,LSL R7 .text:000326B0 ORR R3, R3, R4,LSR R6 .text:000326B4 LDR R2, [R12] .text:000326B8 CMP R3, R0 .text:000326BC LDR R4, [LR] .text:000326C0 BEQ loc_326EC .text:000326C4 STR R3, [R11,#var_54] .text:000326C8 SUB LR, R11, #-var_54 .text:000326CC SUB R12, R11, #-var_58 .text:000326D0 STR R0, [R11,#var_58] .text:000326D4 .text:000326D4 loc_326D4 ; CODE XREF: memcmp+2B4j .text:000326D4 LDRB R3, [LR],#1 .text:000326D8 LDRB R0, [R12],#1 .text:000326DC CMP R3, R0 .text:000326E0 BEQ loc_326D4 .text:000326E4 RSB R0, R0, R3 .text:000326E8 B loc_327F8 .text:000326EC ; --------------------------------------------------------------------------- .text:000326EC .text:000326EC loc_326EC ; CODE XREF: memcmp+264j .text:000326EC ; memcmp+294j .text:000326EC MOV R3, R2,LSL R7 .text:000326F0 ORR R3, R3, R1,LSR R6 .text:000326F4 LDR R1, [R12,#4] .text:000326F8 CMP R3, R4 .text:000326FC LDR R0, [LR,#4] .text:00032700 BEQ loc_3272C .text:00032704 STR R3, [R11,#var_5C] .text:00032708 SUB LR, R11, #-var_5C .text:0003270C SUB R12, R11, #-var_60 .text:00032710 STR R4, [R11,#var_60] .text:00032714 .text:00032714 loc_32714 ; CODE XREF: memcmp+2F4j .text:00032714 LDRB R3, [LR],#1 .text:00032718 LDRB R0, [R12],#1 .text:0003271C CMP R3, R0 .text:00032720 BEQ loc_32714 .text:00032724 RSB R0, R0, R3 .text:00032728 B loc_327F8 .text:0003272C ; --------------------------------------------------------------------------- .text:0003272C .text:0003272C loc_3272C ; CODE XREF: memcmp+254j .text:0003272C ; memcmp+2D4j .text:0003272C MOV R3, R1,LSL R7 .text:00032730 ORR R3, R3, R2,LSR R6 .text:00032734 LDR R4, [R12,#8] .text:00032738 CMP R3, R0 .text:0003273C LDR R2, [LR,#8] .text:00032740 BEQ loc_3276C .text:00032744 STR R3, [R11,#var_64] .text:00032748 SUB LR, R11, #-var_64 .text:0003274C SUB R12, R11, #-var_68 .text:00032750 STR R0, [R11,#var_68] .text:00032754 .text:00032754 loc_32754 ; CODE XREF: memcmp+334j .text:00032754 LDRB R3, [LR],#1 .text:00032758 LDRB R0, [R12],#1 .text:0003275C CMP R3, R0 .text:00032760 BEQ loc_32754 .text:00032764 RSB R0, R0, R3 .text:00032768 B loc_327F8 .text:0003276C ; --------------------------------------------------------------------------- .text:0003276C .text:0003276C loc_3276C ; CODE XREF: memcmp+23Cj .text:0003276C ; memcmp+314j .text:0003276C MOV R3, R4,LSL R7 .text:00032770 ORR R3, R3, R1,LSR R6 .text:00032774 LDR R1, [R12,#0xC] .text:00032778 CMP R3, R2 .text:0003277C LDR R0, [LR,#0xC] .text:00032780 BEQ loc_327AC .text:00032784 STR R3, [R11,#var_6C] .text:00032788 SUB LR, R11, #-var_6C .text:0003278C SUB R12, R11, #-var_70 .text:00032790 STR R2, [R11,#var_70] .text:00032794 .text:00032794 loc_32794 ; CODE XREF: memcmp+374j .text:00032794 LDRB R3, [LR],#1 .text:00032798 LDRB R0, [R12],#1 .text:0003279C CMP R3, R0 .text:000327A0 BEQ loc_32794 .text:000327A4 RSB R0, R0, R3 .text:000327A8 B loc_327F8 .text:000327AC ; --------------------------------------------------------------------------- .text:000327AC .text:000327AC loc_327AC ; CODE XREF: memcmp+354j .text:000327AC ADD R12, R12, #0x10 .text:000327B0 ADD LR, LR, #0x10 .text:000327B4 SUBS R5, R5, #4 .text:000327B8 BNE loc_326AC .text:000327BC MOV R3, R1,LSL R7 .text:000327C0 ORR R3, R3, R4,LSR R6 .text:000327C4 CMP R3, R0 .text:000327C8 BEQ loc_327F4 .text:000327CC STR R3, [R11,#var_74] .text:000327D0 SUB LR, R11, #-var_74 .text:000327D4 SUB R12, R11, #-var_78 .text:000327D8 STR R0, [R11,#var_78] .text:000327DC .text:000327DC loc_327DC ; CODE XREF: memcmp+3BCj .text:000327DC LDRB R3, [LR],#1 .text:000327E0 LDRB R0, [R12],#1 .text:000327E4 CMP R3, R0 .text:000327E8 BEQ loc_327DC .text:000327EC RSB R0, R0, R3 .text:000327F0 B loc_327F8 .text:000327F4 ; --------------------------------------------------------------------------- .text:000327F4 .text:000327F4 loc_327F4 ; CODE XREF: memcmp+1C4j .text:000327F4 ; memcmp+39Cj .text:000327F4 MOV R0, #0 .text:000327F8 .text:000327F8 loc_327F8 ; CODE XREF: memcmp+104j .text:000327F8 ; memcmp+13Cj ... .text:000327F8 CMP R0, #0 .text:000327FC BNE locret_32834 .text:00032800 BIC R3, R10, #3 .text:00032804 ADD R9, R9, R3 .text:00032808 ADD R8, R8, R3 .text:0003280C AND R10, R10, #3 .text:00032810 .text:00032810 loc_32810 ; CODE XREF: memcmp+20j .text:00032810 CMP R10, #0 .text:00032814 BEQ loc_32830 .text:00032818 .text:00032818 loc_32818 ; CODE XREF: memcmp+400j .text:00032818 LDRB R12, [R9],#1 .text:0003281C LDRB R3, [R8],#1 .text:00032820 SUBS R0, R12, R3 .text:00032824 BNE locret_32834 .text:00032828 SUBS R10, R10, #1 .text:0003282C BNE loc_32818 .text:00032830 .text:00032830 loc_32830 ; CODE XREF: memcmp+3E8j .text:00032830 MOV R0, #0 .text:00032834 .text:00032834 locret_32834 ; CODE XREF: memcmp+38j .text:00032834 ; memcmp+3D0j ... .text:00032834 LDMDB R11, {R4-R11,SP,PC} .text:00032834 ; End of function memcmp .text:00032834 .text:00032838 .text:00032838 ; =============== S U B R O U T I N E ======================================= .text:00032838 .text:00032838 ; Attributes: bp-based frame .text:00032838 .text:00032838 WEAK stpcpy .text:00032838 stpcpy ; CODE XREF: _dl_dst_substitute+160p .text:00032838 ; _dl_lookup_symbol+480p ... .text:00032838 MOV R12, SP ; Alternative name is '__stpcpy' .text:0003283C STMFD SP!, {R11,R12,LR,PC} .text:00032840 SUB R11, R12, #4 .text:00032844 .text:00032844 loc_32844 ; CODE XREF: stpcpy+1Cj .text:00032844 LDRB R3, [R1] .text:00032848 STRB R3, [R0],#1 .text:0003284C LDRB R2, [R1],#1 .text:00032850 CMP R2, #0 .text:00032854 BNE loc_32844 .text:00032858 SUB R0, R0, #1 .text:0003285C LDMDB R11, {R11,SP,PC} .text:0003285C ; End of function stpcpy .text:0003285C .text:00032860 .text:00032860 ; =============== S U B R O U T I N E ======================================= .text:00032860 .text:00032860 ; Attributes: bp-based frame .text:00032860 .text:00032860 WEAK strcasecmp .text:00032860 strcasecmp ; CODE XREF: alias_compare+14p .text:00032860 ; __gconv_open+148p ... .text:00032860 MOV R12, SP ; Alternative name is '__strcasecmp' .text:00032864 STMFD SP!, {R11,R12,LR,PC} .text:00032868 SUB R11, R12, #4 .text:0003286C MOV LR, R0 .text:00032870 CMP LR, R1 .text:00032874 MOVEQ R0, #0 .text:00032878 LDMEQDB R11, {R11,SP,PC} .text:0003287C LDR R3, =__ctype_tolower .text:00032880 LDR R12, [R3] .text:00032884 .text:00032884 loc_32884 ; CODE XREF: strcasecmp+40j .text:00032884 LDRB R3, [LR],#1 .text:00032888 LDRB R2, [R1],#1 .text:0003288C LDRB R0, [R12,R3,LSL#2] .text:00032890 LDRB R3, [R12,R2,LSL#2] .text:00032894 CMP R0, #0 .text:00032898 BEQ loc_328A4 .text:0003289C CMP R0, R3 .text:000328A0 BEQ loc_32884 .text:000328A4 .text:000328A4 loc_328A4 ; CODE XREF: strcasecmp+38j .text:000328A4 RSB R0, R3, R0 .text:000328A8 LDMDB R11, {R11,SP,PC} .text:000328A8 ; End of function strcasecmp .text:000328A8 .text:000328A8 ; --------------------------------------------------------------------------- .text:000328AC off_328AC DCD __ctype_tolower ; DATA XREF: strcasecmp+1Cr .text:000328B0 .text:000328B0 ; =============== S U B R O U T I N E ======================================= .text:000328B0 .text:000328B0 ; Attributes: bp-based frame .text:000328B0 .text:000328B0 WEAK rawmemchr .text:000328B0 rawmemchr ; CODE XREF: _dl_new_object+258p .text:000328B0 ; __dcigettext+244p ... .text:000328B0 MOV R12, SP .text:000328B4 STMFD SP!, {R4,R11,R12,LR,PC} .text:000328B8 SUB R11, R12, #4 .text:000328BC TST R0, #3 .text:000328C0 AND R1, R1, #0xFF .text:000328C4 BEQ loc_328E0 .text:000328C8 .text:000328C8 loc_328C8 ; CODE XREF: rawmemchr+2Cj .text:000328C8 LDRB R3, [R0] .text:000328CC CMP R3, R1 .text:000328D0 LDMEQDB R11, {R4,R11,SP,PC} .text:000328D4 ADD R0, R0, #1 .text:000328D8 TST R0, #3 .text:000328DC BNE loc_328C8 .text:000328E0 .text:000328E0 loc_328E0 ; CODE XREF: rawmemchr+14j .text:000328E0 MOV R12, R0 .text:000328E4 MOV LR, 0x7EFEFEFF .text:000328F0 ORR R4, R1, R1,LSL#8 .text:000328F4 ORR R4, R4, R4,LSL#16 .text:000328F8 .text:000328F8 loc_328F8 ; CODE XREF: rawmemchr+60j .text:000328F8 ; rawmemchr+98j .text:000328F8 LDR R3, [R12],#4 .text:000328FC EOR R3, R3, R4 .text:00032900 ADD R2, R3, LR .text:00032904 MVN R3, R3 .text:00032908 EOR R2, R2, R3 .text:0003290C BICS R2, R2, LR .text:00032910 BEQ loc_328F8 .text:00032914 LDRB R3, [R12,#-4] .text:00032918 SUB R0, R12, #4 .text:0003291C CMP R3, R1 .text:00032920 LDMEQDB R11, {R4,R11,SP,PC} .text:00032924 LDRB R3, [R0,#1] .text:00032928 CMP R3, R1 .text:0003292C SUBEQ R0, R12, #3 .text:00032930 LDMEQDB R11, {R4,R11,SP,PC} .text:00032934 LDRB R3, [R0,#2] .text:00032938 CMP R3, R1 .text:0003293C BEQ loc_32954 .text:00032940 LDRB R3, [R0,#3] .text:00032944 CMP R3, R1 .text:00032948 BNE loc_328F8 .text:0003294C SUB R0, R12, #1 .text:00032950 LDMDB R11, {R4,R11,SP,PC} .text:00032954 ; --------------------------------------------------------------------------- .text:00032954 .text:00032954 loc_32954 ; CODE XREF: rawmemchr+8Cj .text:00032954 SUB R0, R12, #2 .text:00032958 LDMDB R11, {R4,R11,SP,PC} .text:00032958 ; End of function rawmemchr .text:00032958 .text:0003295C .text:0003295C ; =============== S U B R O U T I N E ======================================= .text:0003295C .text:0003295C ; Attributes: bp-based frame .text:0003295C .text:0003295C WEAK argz_count .text:0003295C argz_count ; CODE XREF: _nl_make_l10nflist+2E4p .text:0003295C ; _nl_make_l10nflist+368p ... .text:0003295C MOV R12, SP ; Alternative name is '__argz_count' .text:00032960 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:00032964 SUB R11, R12, #4 .text:00032968 MOV R4, R0 .text:0003296C MOV R6, #0 .text:00032970 SUBS R5, R1, #0 .text:00032974 BEQ loc_32998 .text:00032978 .text:00032978 loc_32978 ; CODE XREF: argz_count+38j .text:00032978 MOV R0, R4 .text:0003297C BL strlen .text:00032980 ADD R3, R0, #1 .text:00032984 ADD R4, R4, R3 .text:00032988 ADD R6, R6, #1 .text:0003298C SUB R3, R5, #1 .text:00032990 SUBS R5, R3, R0 .text:00032994 BNE loc_32978 .text:00032998 .text:00032998 loc_32998 ; CODE XREF: argz_count+18j .text:00032998 MOV R0, R6 .text:0003299C LDMDB R11, {R4-R6,R11,SP,PC} .text:0003299C ; End of function argz_count .text:0003299C .text:000329A0 .text:000329A0 ; =============== S U B R O U T I N E ======================================= .text:000329A0 .text:000329A0 ; Attributes: bp-based frame .text:000329A0 .text:000329A0 WEAK argz_stringify .text:000329A0 argz_stringify ; CODE XREF: _nl_make_l10nflist+158p .text:000329A0 MOV R12, SP ; Alternative name is '__argz_stringify' .text:000329A4 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:000329A8 SUB R11, R12, #4 .text:000329AC MOV R5, R0 .text:000329B0 SUBS R4, R1, #0 .text:000329B4 MOV R6, R2 .text:000329B8 LDMEQDB R11, {R4-R6,R11,SP,PC} .text:000329BC B loc_329C4 .text:000329C0 ; --------------------------------------------------------------------------- .text:000329C0 .text:000329C0 loc_329C0 ; CODE XREF: argz_stringify+54j .text:000329C0 STRB R6, [R5],#1 .text:000329C4 .text:000329C4 loc_329C4 ; CODE XREF: argz_stringify+1Cj .text:000329C4 MOV R0, R5 .text:000329C8 MOV R1, #0 .text:000329CC MOV R2, R4 .text:000329D0 BL memchr .text:000329D4 CMP R0, #0 .text:000329D8 SUBNE R0, R0, R5 .text:000329DC MOVEQ R0, R4 .text:000329E0 ADD R5, R5, R0 .text:000329E4 RSB R4, R0, R4 .text:000329E8 MOV R3, R4 .text:000329EC SUB R4, R4, #1 .text:000329F0 CMP R3, #1 .text:000329F4 BHI loc_329C0 .text:000329F8 LDMDB R11, {R4-R6,R11,SP,PC} .text:000329F8 ; End of function argz_stringify .text:000329F8 .text:000329FC .text:000329FC ; =============== S U B R O U T I N E ======================================= .text:000329FC .text:000329FC ; Attributes: bp-based frame .text:000329FC .text:000329FC WEAK wcslen .text:000329FC wcslen ; CODE XREF: vfwprintf+1F48p .text:000329FC ; vfwprintf+47E8p ... .text:000329FC MOV R12, SP ; Alternative name is '__wcslen' .text:00032A00 STMFD SP!, {R11,R12,LR,PC} .text:00032A04 MOV R2, #0 .text:00032A08 LDR R3, [R0,R2,LSL#2] .text:00032A0C SUB R11, R12, #4 .text:00032A10 CMP R3, R2 .text:00032A14 BEQ loc_32A60 .text:00032A18 .text:00032A18 loc_32A18 ; CODE XREF: wcslen+60j .text:00032A18 ADD R2, R2, #1 .text:00032A1C LDR R3, [R0,R2,LSL#2] .text:00032A20 CMP R3, #0 .text:00032A24 BNE loc_32A30 .text:00032A28 .text:00032A28 loc_32A28 ; CODE XREF: wcslen+40j .text:00032A28 ; wcslen+50j .text:00032A28 MOV R0, R2 .text:00032A2C LDMDB R11, {R11,SP,PC} .text:00032A30 ; --------------------------------------------------------------------------- .text:00032A30 .text:00032A30 loc_32A30 ; CODE XREF: wcslen+28j .text:00032A30 ADD R2, R2, #1 .text:00032A34 LDR R3, [R0,R2,LSL#2] .text:00032A38 CMP R3, #0 .text:00032A3C BEQ loc_32A28 .text:00032A40 ADD R2, R2, #1 .text:00032A44 LDR R3, [R0,R2,LSL#2] .text:00032A48 CMP R3, #0 .text:00032A4C BEQ loc_32A28 .text:00032A50 ADD R2, R2, #1 .text:00032A54 LDR R3, [R0,R2,LSL#2] .text:00032A58 CMP R3, #0 .text:00032A5C BNE loc_32A18 .text:00032A60 .text:00032A60 loc_32A60 ; CODE XREF: wcslen+18j .text:00032A60 MOV R0, R2 .text:00032A64 LDMDB R11, {R11,SP,PC} .text:00032A64 ; End of function wcslen .text:00032A64 .text:00032A68 .text:00032A68 ; =============== S U B R O U T I N E ======================================= .text:00032A68 .text:00032A68 ; Attributes: bp-based frame .text:00032A68 .text:00032A68 WEAK wmemcpy .text:00032A68 wmemcpy ; CODE XREF: _IO_wdefault_pbackfail+140p .text:00032A68 ; save_for_wbackup+C0p ... .text:00032A68 MOV R12, SP ; Alternative name is '__wmemcpy' .text:00032A6C STMFD SP!, {R11,R12,LR,PC} .text:00032A70 SUB R11, R12, #4 .text:00032A74 MOV R2, R2,LSL#2 .text:00032A78 BL memcpy .text:00032A7C LDMDB R11, {R11,SP,PC} .text:00032A7C ; End of function wmemcpy .text:00032A7C .text:00032A80 .text:00032A80 ; =============== S U B R O U T I N E ======================================= .text:00032A80 .text:00032A80 ; Attributes: bp-based frame .text:00032A80 .text:00032A80 WEAK wmemmove .text:00032A80 wmemmove ; CODE XREF: group_number_0+48p .text:00032A80 ; save_for_wbackup+114p .text:00032A80 MOV R12, SP .text:00032A84 STMFD SP!, {R11,R12,LR,PC} .text:00032A88 SUB R11, R12, #4 .text:00032A8C MOV R2, R2,LSL#2 .text:00032A90 BL memmove .text:00032A94 LDMDB R11, {R11,SP,PC} .text:00032A94 ; End of function wmemmove .text:00032A94 .text:00032A98 .text:00032A98 ; =============== S U B R O U T I N E ======================================= .text:00032A98 .text:00032A98 ; Attributes: bp-based frame .text:00032A98 .text:00032A98 WEAK wmempcpy .text:00032A98 wmempcpy ; CODE XREF: _IO_wdefault_xsputn+5Cp .text:00032A98 ; _IO_wdefault_xsgetn+50p ... .text:00032A98 MOV R12, SP ; Alternative name is '__wmempcpy' .text:00032A9C STMFD SP!, {R11,R12,LR,PC} .text:00032AA0 SUB R11, R12, #4 .text:00032AA4 MOV R2, R2,LSL#2 .text:00032AA8 BL mempcpy .text:00032AAC LDMDB R11, {R11,SP,PC} .text:00032AAC ; End of function wmempcpy .text:00032AAC .text:00032AB0 .text:00032AB0 ; =============== S U B R O U T I N E ======================================= .text:00032AB0 .text:00032AB0 ; Attributes: bp-based frame .text:00032AB0 .text:00032AB0 WEAK btowc .text:00032AB0 btowc ; CODE XREF: vfwprintf+1C90p .text:00032AB0 ; vfwprintf:loc_2D4E0p .text:00032AB0 .text:00032AB0 var_60 = -0x60 .text:00032AB0 var_50 = -0x50 .text:00032AB0 var_4C = -0x4C .text:00032AB0 var_48 = -0x48 .text:00032AB0 var_44 = -0x44 .text:00032AB0 var_41 = -0x41 .text:00032AB0 var_40 = -0x40 .text:00032AB0 var_3C = -0x3C .text:00032AB0 var_38 = -0x38 .text:00032AB0 var_34 = -0x34 .text:00032AB0 var_30 = -0x30 .text:00032AB0 var_2C = -0x2C .text:00032AB0 var_28 = -0x28 .text:00032AB0 var_20 = -0x20 .text:00032AB0 .text:00032AB0 MOV R12, SP .text:00032AB4 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:00032AB8 SUB R11, R12, #4 .text:00032ABC MOV R4, R0 .text:00032AC0 ADD R3, R4, #0x80 .text:00032AC4 CMN R4, #1 .text:00032AC8 MOVNE R2, #0 .text:00032ACC MOVEQ R2, #1 .text:00032AD0 CMP R3, #0x180 .text:00032AD4 MOVCC R5, R2 .text:00032AD8 MOVCS R5, #1 .text:00032ADC CMP R5, #0 .text:00032AE0 SUB R3, R11, #-var_41 .text:00032AE4 SUB SP, SP, #0x44 .text:00032AE8 STR R3, [R11,#var_4C] .text:00032AEC MOVNE R0, 0xFFFFFFFF .text:00032AF0 BNE loc_32BAC .text:00032AF4 SUB R3, R11, #-var_48 .text:00032AF8 STR R3, [R11,#var_40] .text:00032AFC SUB R2, R11, #-var_44 .text:00032B00 STR R2, [R11,#var_3C] .text:00032B04 STR R5, [R11,#var_34] .text:00032B08 MOV R6, #1 .text:00032B0C STR R6, [R11,#var_30] .text:00032B10 STR R6, [R11,#var_38] .text:00032B14 SUB R0, R11, #-var_28 .text:00032B18 STR R0, [R11,#var_2C] .text:00032B1C STR R5, [R11,#var_20] .text:00032B20 MOV R1, R5 .text:00032B24 MOV R2, #8 .text:00032B28 SUB R7, R11, #-var_40 .text:00032B2C BL memset .text:00032B30 LDR R3, =__wcsmbs_last_locale .text:00032B34 LDR R2, =_nl_current_LC_CTYPE .text:00032B38 LDR R1, [R3] .text:00032B3C LDR R0, [R2] .text:00032B40 CMP R1, R0 .text:00032B44 BEQ loc_32B4C .text:00032B48 BL __wcsmbs_load_conv .text:00032B4C .text:00032B4C loc_32B4C ; CODE XREF: btowc+94j .text:00032B4C STRB R4, [R11,#var_41] .text:00032B50 LDR R4, =__wcsmbs_gconv_fcts .text:00032B54 LDR R3, [R4] .text:00032B58 LDR R0, [R3,#0x14] .text:00032B5C BL _dl_mcount_wrapper_check .text:00032B60 STR R5, [SP,#0x60+var_60] .text:00032B64 SUB R3, R11, #-var_50 .text:00032B68 STMFA SP, {R3,R5,R6} .text:00032B6C MOV R1, R7 .text:00032B70 LDR R3, [R11,#var_4C] .text:00032B74 SUB R2, R11, #-var_4C .text:00032B78 LDR R12, [R4] .text:00032B7C ADD R3, R3, #1 .text:00032B80 MOV R0, R12 .text:00032B84 MOV LR, PC .text:00032B88 LDR PC, [R12,#0x14] .text:00032B8C MOV R3, R0 .text:00032B90 CMP R0, #0 .text:00032B94 CMPNE R3, #5 .text:00032B98 BEQ loc_32BA8 .text:00032B9C CMP R3, #4 .text:00032BA0 MOVNE R3, 0xFFFFFFFF .text:00032BA4 STRNE R3, [R11,#var_48] .text:00032BA8 .text:00032BA8 loc_32BA8 ; CODE XREF: btowc+E8j .text:00032BA8 LDR R0, [R11,#var_48] .text:00032BAC .text:00032BAC loc_32BAC ; CODE XREF: btowc+40j .text:00032BAC B locret_32BBC .text:00032BAC ; --------------------------------------------------------------------------- .text:00032BB0 off_32BB0 DCD __wcsmbs_last_locale ; DATA XREF: btowc+80r .text:00032BB4 off_32BB4 DCD _nl_current_LC_CTYPE ; DATA XREF: btowc+84r .text:00032BB8 off_32BB8 DCD __wcsmbs_gconv_fcts ; DATA XREF: btowc+A0r .text:00032BBC ; --------------------------------------------------------------------------- .text:00032BBC .text:00032BBC locret_32BBC ; CODE XREF: btowc:loc_32BACj .text:00032BBC LDMDB R11, {R4-R7,R11,SP,PC} .text:00032BBC ; End of function btowc .text:00032BBC .text:00032BC0 .text:00032BC0 ; =============== S U B R O U T I N E ======================================= .text:00032BC0 .text:00032BC0 ; Attributes: bp-based frame .text:00032BC0 .text:00032BC0 WEAK mbrlen .text:00032BC0 mbrlen ; CODE XREF: vfprintf+138p .text:00032BC0 ; vfprintf+1BC4p ... .text:00032BC0 MOV R12, SP ; Alternative name is '__mbrlen' .text:00032BC4 STMFD SP!, {R4,R11,R12,LR,PC} .text:00032BC8 SUB R11, R12, #4 .text:00032BCC MOV R4, R0 .text:00032BD0 MOV R0, #0 .text:00032BD4 MOV LR, R1 .text:00032BD8 CMP R2, R0 .text:00032BDC LDR R12, =internal .text:00032BE0 MOV R1, R4 .text:00032BE4 MOVNE R3, R2 .text:00032BE8 MOVEQ R3, R12 .text:00032BEC MOV R2, LR .text:00032BF0 BL mbrtowc .text:00032BF4 LDMDB R11, {R4,R11,SP,PC} .text:00032BF4 ; End of function mbrlen .text:00032BF4 .text:00032BF4 ; --------------------------------------------------------------------------- .text:00032BF8 off_32BF8 DCD internal ; DATA XREF: mbrlen+1Cr .text:00032BFC .text:00032BFC ; =============== S U B R O U T I N E ======================================= .text:00032BFC .text:00032BFC ; Attributes: bp-based frame .text:00032BFC .text:00032BFC WEAK mbrtowc .text:00032BFC mbrtowc ; CODE XREF: _IO_vfscanf+EF0p .text:00032BFC ; _IO_vfscanf+15BCp ... .text:00032BFC .text:00032BFC var_68 = -0x68 .text:00032BFC var_58 = -0x58 .text:00032BFC var_54 = -0x54 .text:00032BFC var_50 = -0x50 .text:00032BFC var_4C = -0x4C .text:00032BFC var_48 = -0x48 .text:00032BFC var_44 = -0x44 .text:00032BFC var_40 = -0x40 .text:00032BFC var_3C = -0x3C .text:00032BFC var_38 = -0x38 .text:00032BFC var_2C = -0x2C .text:00032BFC .text:00032BFC MOV R12, SP ; Alternative name is '__mbrtowc' .text:00032C00 STMFD SP!, {R4-R12,LR,PC} .text:00032C04 SUB R11, R12, #4 .text:00032C08 MOV R6, #0 .text:00032C0C SUB SP, SP, #0x40 .text:00032C10 STR R6, [R11,#var_40] .text:00032C14 MOV R7, #1 .text:00032C18 STR R7, [R11,#var_3C] .text:00032C1C MOV R10, R2 .text:00032C20 STR R7, [R11,#var_44] .text:00032C24 SUB R12, R11, #-var_50 .text:00032C28 CMP R0, R6 .text:00032C2C MOVNE R5, R0 .text:00032C30 MOVEQ R5, R12 .text:00032C34 CMP R3, R6 .text:00032C38 LDR R2, =state_0 .text:00032C3C MOV R9, R6 .text:00032C40 STR R6, [R11,#var_2C] .text:00032C44 MOVEQ R3, R2 .text:00032C48 SUBS R8, R1, #0 .text:00032C4C STR R3, [R11,#var_38] .text:00032C50 MOVEQ R5, R12 .text:00032C54 MOVEQ R6, R7 .text:00032C58 MOVEQ R10, R7 .text:00032C5C LDREQ R8, =dword_5840C .text:00032C60 STR R5, [R11,#var_4C] .text:00032C64 LDR R3, =__wcsmbs_last_locale .text:00032C68 LDR R2, =_nl_current_LC_CTYPE .text:00032C6C LDR R1, [R3] .text:00032C70 LDR R0, [R2] .text:00032C74 ADD R3, R5, #4 .text:00032C78 STR R3, [R11,#var_48] .text:00032C7C CMP R1, R0 .text:00032C80 BEQ loc_32C88 .text:00032C84 BL __wcsmbs_load_conv .text:00032C88 .text:00032C88 loc_32C88 ; CODE XREF: mbrtowc+84j .text:00032C88 STR R8, [R11,#var_54] .text:00032C8C LDR R4, =__wcsmbs_gconv_fcts .text:00032C90 LDR R3, [R4] .text:00032C94 LDR R0, [R3,#0x14] .text:00032C98 BL _dl_mcount_wrapper_check .text:00032C9C STR R9, [SP,#0x68+var_68] .text:00032CA0 SUB R3, R11, #-var_58 .text:00032CA4 STMFA SP, {R3,R6,R7} .text:00032CA8 SUB R1, R11, #-var_4C .text:00032CAC LDR R3, [R11,#var_54] .text:00032CB0 SUB R2, R11, #-var_54 .text:00032CB4 LDR R12, [R4] .text:00032CB8 ADD R3, R3, R10 .text:00032CBC MOV R0, R12 .text:00032CC0 MOV LR, PC .text:00032CC4 LDR PC, [R12,#0x14] .text:00032CC8 MOV R3, R0 .text:00032CCC CMP R0, #0 .text:00032CD0 CMPNE R3, #4 .text:00032CD4 BEQ loc_32D00 .text:00032CD8 CMP R3, #6 .text:00032CDC CMPNE R3, #7 .text:00032CE0 BEQ loc_32D00 .text:00032CE4 CMP R3, #5 .text:00032CE8 BEQ loc_32D00 .text:00032CEC LDR R0, =aStatus__gconv_ ; "status == __GCONV_OK || status == __GCO"... .text:00032CF0 LDR R1, =aMbrtowc_c ; "mbrtowc.c" .text:00032CF4 LDR R3, =a__mbrtowc ; "__mbrtowc" .text:00032CF8 MOV R2, #0x54 .text:00032CFC BL __assert_fail .text:00032D00 ; --------------------------------------------------------------------------- .text:00032D00 .text:00032D00 loc_32D00 ; CODE XREF: mbrtowc+D8j .text:00032D00 ; mbrtowc+E4j ... .text:00032D00 CMP R3, #4 .text:00032D04 CMPNE R3, #0 .text:00032D08 BEQ loc_32D14 .text:00032D0C CMP R3, #5 .text:00032D10 BNE loc_32D80 .text:00032D14 .text:00032D14 loc_32D14 ; CODE XREF: mbrtowc+10Cj .text:00032D14 LDR R3, [R11,#var_4C] .text:00032D18 CMP R3, R5 .text:00032D1C BEQ loc_32D50 .text:00032D20 LDR R4, [R5] .text:00032D24 CMP R4, #0 .text:00032D28 BNE loc_32D50 .text:00032D2C LDR R0, [R11,#var_38] .text:00032D30 BL mbsinit .text:00032D34 CMP R0, #0 .text:00032D38 BNE loc_32D9C .text:00032D3C LDR R0, =a__mbsinitData_ ; "__mbsinit (data.__statep)" .text:00032D40 LDR R1, =aMbrtowc_c ; "mbrtowc.c" .text:00032D44 LDR R3, =a__mbrtowc ; "__mbrtowc" .text:00032D48 MOV R2, #0x5D .text:00032D4C BL __assert_fail .text:00032D50 ; --------------------------------------------------------------------------- .text:00032D50 .text:00032D50 loc_32D50 ; CODE XREF: mbrtowc+120j .text:00032D50 ; mbrtowc+12Cj .text:00032D50 LDR R3, [R11,#var_54] .text:00032D54 RSB R4, R8, R3 .text:00032D58 B loc_32D9C .text:00032D58 ; --------------------------------------------------------------------------- .text:00032D5C off_32D5C DCD state_0 ; DATA XREF: mbrtowc+3Cr .text:00032D60 off_32D60 DCD dword_5840C ; DATA XREF: mbrtowc+60r .text:00032D64 off_32D64 DCD __wcsmbs_last_locale ; DATA XREF: mbrtowc+68r .text:00032D68 off_32D68 DCD _nl_current_LC_CTYPE ; DATA XREF: mbrtowc+6Cr .text:00032D6C off_32D6C DCD __wcsmbs_gconv_fcts ; DATA XREF: mbrtowc+90r .text:00032D70 off_32D70 DCD aStatus__gconv_ ; DATA XREF: mbrtowc+F0r .text:00032D70 ; "status == __GCONV_OK || status == __GCO"... .text:00032D74 off_32D74 DCD aMbrtowc_c ; DATA XREF: mbrtowc+F4r .text:00032D74 ; mbrtowc+144r .text:00032D74 ; "mbrtowc.c" .text:00032D78 off_32D78 DCD a__mbrtowc ; DATA XREF: mbrtowc+F8r .text:00032D78 ; mbrtowc+148r .text:00032D78 ; "__mbrtowc" .text:00032D7C off_32D7C DCD a__mbsinitData_ ; DATA XREF: mbrtowc+140r .text:00032D7C ; "__mbsinit (data.__statep)" .text:00032D80 ; --------------------------------------------------------------------------- .text:00032D80 .text:00032D80 loc_32D80 ; CODE XREF: mbrtowc+114j .text:00032D80 CMP R3, #7 .text:00032D84 MOV R4, 0xFFFFFFFE .text:00032D88 BEQ loc_32D9C .text:00032D8C ADD R4, R4, #1 .text:00032D90 BL __errno_location .text:00032D94 MOV R3, #0x54 .text:00032D98 STR R3, [R0] .text:00032D9C .text:00032D9C loc_32D9C ; CODE XREF: mbrtowc+13Cj .text:00032D9C ; mbrtowc+15Cj ... .text:00032D9C MOV R0, R4 .text:00032DA0 LDMDB R11, {R4-R11,SP,PC} .text:00032DA0 ; End of function mbrtowc .text:00032DA0 .text:00032DA4 .text:00032DA4 ; =============== S U B R O U T I N E ======================================= .text:00032DA4 .text:00032DA4 ; Attributes: bp-based frame .text:00032DA4 .text:00032DA4 WEAK wcrtomb .text:00032DA4 wcrtomb ; CODE XREF: vfprintf+176Cp .text:00032DA4 ; vfprintf+3AC4p .text:00032DA4 .text:00032DA4 var_5C = -0x5C .text:00032DA4 var_50 = -0x50 .text:00032DA4 var_4C = -0x4C .text:00032DA4 var_48 = -0x48 .text:00032DA4 var_44 = -0x44 .text:00032DA4 var_40 = -0x40 .text:00032DA4 var_3C = -0x3C .text:00032DA4 var_38 = -0x38 .text:00032DA4 var_34 = -0x34 .text:00032DA4 var_30 = -0x30 .text:00032DA4 var_2C = -0x2C .text:00032DA4 var_20 = -0x20 .text:00032DA4 .text:00032DA4 MOV R12, SP .text:00032DA8 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:00032DAC SUB R11, R12, #4 .text:00032DB0 SUB SP, SP, #0x40 .text:00032DB4 STR R1, [R11,#var_48] .text:00032DB8 MOV R6, R0 .text:00032DBC MOV R4, R2 .text:00032DC0 BL __ctype_get_mb_cur_max .text:00032DC4 MOV R5, #0 .text:00032DC8 STR R5, [R11,#var_34] .text:00032DCC MOV R7, #1 .text:00032DD0 STR R7, [R11,#var_30] .text:00032DD4 STR R7, [R11,#var_38] .text:00032DD8 BIC R0, R0, #0xE0000000 .text:00032DDC ADD R0, R0, #3 .text:00032DE0 BIC R0, R0, #0xC0000003 .text:00032DE4 RSB SP, R0, SP .text:00032DE8 LDR R3, =state_1 .text:00032DEC CMP R4, R5 .text:00032DF0 STR R5, [R11,#var_20] .text:00032DF4 MOVEQ R4, R3 .text:00032DF8 CMP R6, R5 .text:00032DFC ADD R3, SP, #0x5C+var_4C .text:00032E00 STR R4, [R11,#var_2C] .text:00032E04 MOVEQ R6, R3 .text:00032E08 STREQ R5, [R11,#var_48] .text:00032E0C STR R6, [R11,#var_40] .text:00032E10 BL __ctype_get_mb_cur_max .text:00032E14 LDR R3, =__wcsmbs_last_locale .text:00032E18 LDR R2, =_nl_current_LC_CTYPE .text:00032E1C LDR R1, [R3] .text:00032E20 LDR R2, [R2] .text:00032E24 ADD R0, R6, R0 .text:00032E28 STR R0, [R11,#var_3C] .text:00032E2C CMP R1, R2 .text:00032E30 BEQ loc_32E3C .text:00032E34 MOV R0, R2 .text:00032E38 BL __wcsmbs_load_conv .text:00032E3C .text:00032E3C loc_32E3C ; CODE XREF: wcrtomb+8Cj .text:00032E3C LDR R3, [R11,#var_48] .text:00032E40 CMP R3, #0 .text:00032E44 BNE loc_32EA0 .text:00032E48 LDR R4, =__wcsmbs_gconv_fcts .text:00032E4C LDR R3, [R4,#(__wcsmbs_gconv_fcts+4 - 0x6B8AC)] .text:00032E50 LDR R0, [R3,#0x14] .text:00032E54 BL _dl_mcount_wrapper_check .text:00032E58 STR R5, [SP,#0x5C+var_5C] .text:00032E5C SUB R3, R11, #-var_44 .text:00032E60 STMFA SP, {R3,R7} .text:00032E64 STR R7, [SP,#0x5C+var_50] .text:00032E68 SUB R1, R11, #-var_40 .text:00032E6C MOV R2, R5 .text:00032E70 LDR R12, [R4,#(__wcsmbs_gconv_fcts+4 - 0x6B8AC)] .text:00032E74 MOV R3, R5 .text:00032E78 MOV R0, R12 .text:00032E7C MOV LR, PC .text:00032E80 LDR PC, [R12,#0x14] .text:00032E84 MOV R2, R0 .text:00032E88 CMP R2, #4 .text:00032E8C CMPNE R0, #0 .text:00032E90 LDREQ R3, [R11,#var_40] .text:00032E94 STREQB R5, [R3],#1 .text:00032E98 STREQ R3, [R11,#var_40] .text:00032E9C B loc_32EE8 .text:00032EA0 ; --------------------------------------------------------------------------- .text:00032EA0 .text:00032EA0 loc_32EA0 ; CODE XREF: wcrtomb+A0j .text:00032EA0 SUB R3, R11, #-var_48 .text:00032EA4 STR R3, [R11,#var_4C] .text:00032EA8 LDR R4, =__wcsmbs_gconv_fcts .text:00032EAC LDR R3, [R4,#(__wcsmbs_gconv_fcts+4 - 0x6B8AC)] .text:00032EB0 LDR R0, [R3,#0x14] .text:00032EB4 BL _dl_mcount_wrapper_check .text:00032EB8 STR R5, [SP,#0x5C+var_5C] .text:00032EBC SUB R3, R11, #-var_44 .text:00032EC0 STMFA SP, {R3,R5,R7} .text:00032EC4 SUB R1, R11, #-var_40 .text:00032EC8 LDR R3, [R11,#var_4C] .text:00032ECC SUB R2, R11, #-var_4C .text:00032ED0 LDR R12, [R4,#(__wcsmbs_gconv_fcts+4 - 0x6B8AC)] .text:00032ED4 ADD R3, R3, #4 .text:00032ED8 MOV R0, R12 .text:00032EDC MOV LR, PC .text:00032EE0 LDR PC, [R12,#0x14] .text:00032EE4 MOV R2, R0 .text:00032EE8 .text:00032EE8 loc_32EE8 ; CODE XREF: wcrtomb+F8j .text:00032EE8 CMP R2, #0 .text:00032EEC CMPNE R2, #4 .text:00032EF0 BEQ loc_32F1C .text:00032EF4 CMP R2, #6 .text:00032EF8 CMPNE R2, #7 .text:00032EFC BEQ loc_32F1C .text:00032F00 CMP R2, #5 .text:00032F04 BEQ loc_32F1C .text:00032F08 LDR R0, =aStatus__gcon_0 ; "status == __GCONV_OK || status == __GCO"... .text:00032F0C LDR R1, =aWcrtomb_c ; "wcrtomb.c" .text:00032F10 LDR R3, =a__wcrtomb ; "__wcrtomb" .text:00032F14 MOV R2, #0x61 .text:00032F18 BL __assert_fail .text:00032F1C ; --------------------------------------------------------------------------- .text:00032F1C .text:00032F1C loc_32F1C ; CODE XREF: wcrtomb+14Cj .text:00032F1C ; wcrtomb+158j ... .text:00032F1C CMP R2, #4 .text:00032F20 CMPNE R2, #0 .text:00032F24 BEQ loc_32F30 .text:00032F28 CMP R2, #5 .text:00032F2C BNE loc_32F58 .text:00032F30 .text:00032F30 loc_32F30 ; CODE XREF: wcrtomb+180j .text:00032F30 LDR R3, [R11,#var_40] .text:00032F34 RSB R4, R6, R3 .text:00032F38 B loc_32F68 .text:00032F38 ; --------------------------------------------------------------------------- .text:00032F3C off_32F3C DCD state_1 ; DATA XREF: wcrtomb+44r .text:00032F40 off_32F40 DCD __wcsmbs_last_locale ; DATA XREF: wcrtomb+70r .text:00032F44 off_32F44 DCD _nl_current_LC_CTYPE ; DATA XREF: wcrtomb+74r .text:00032F48 off_32F48 DCD __wcsmbs_gconv_fcts ; DATA XREF: wcrtomb+A4r .text:00032F48 ; wcrtomb+104r .text:00032F4C off_32F4C DCD aStatus__gcon_0 ; DATA XREF: wcrtomb+164r .text:00032F4C ; "status == __GCONV_OK || status == __GCO"... .text:00032F50 off_32F50 DCD aWcrtomb_c ; DATA XREF: wcrtomb+168r .text:00032F50 ; "wcrtomb.c" .text:00032F54 off_32F54 DCD a__wcrtomb ; DATA XREF: wcrtomb+16Cr .text:00032F54 ; "__wcrtomb" .text:00032F58 ; --------------------------------------------------------------------------- .text:00032F58 .text:00032F58 loc_32F58 ; CODE XREF: wcrtomb+188j .text:00032F58 MOV R4, 0xFFFFFFFF .text:00032F5C BL __errno_location .text:00032F60 MOV R3, #0x54 .text:00032F64 STR R3, [R0] .text:00032F68 .text:00032F68 loc_32F68 ; CODE XREF: wcrtomb+194j .text:00032F68 MOV R0, R4 .text:00032F6C LDMDB R11, {R4-R7,R11,SP,PC} .text:00032F6C ; End of function wcrtomb .text:00032F6C .text:00032F70 .text:00032F70 ; =============== S U B R O U T I N E ======================================= .text:00032F70 .text:00032F70 ; Attributes: bp-based frame .text:00032F70 .text:00032F70 WEAK mbsrtowcs .text:00032F70 mbsrtowcs ; CODE XREF: vfwprintf+1EFCp .text:00032F70 ; vfwprintf+47ACp .text:00032F70 .text:00032F70 var_170 = -0x170 .text:00032F70 var_164 = -0x164 .text:00032F70 var_160 = -0x160 .text:00032F70 var_15C = -0x15C .text:00032F70 var_158 = -0x158 .text:00032F70 var_154 = -0x154 .text:00032F70 var_14C = -0x14C .text:00032F70 var_4C = -0x4C .text:00032F70 var_48 = -0x48 .text:00032F70 var_44 = -0x44 .text:00032F70 var_40 = -0x40 .text:00032F70 var_3C = -0x3C .text:00032F70 var_38 = -0x38 .text:00032F70 var_2C = -0x2C .text:00032F70 .text:00032F70 MOV R12, SP ; Alternative name is '__mbsrtowcs' .text:00032F74 STMFD SP!, {R4-R12,LR,PC} .text:00032F78 SUB R11, R12, #4 .text:00032F7C MOV R10, #0 .text:00032F80 SUB SP, SP, #0x148 .text:00032F84 STR R10, [R11,#var_40] .text:00032F88 MOV R9, #1 .text:00032F8C STR R9, [R11,#var_3C] .text:00032F90 STR R9, [R11,#var_44] .text:00032F94 STR R10, [R11,#var_2C] .text:00032F98 LDR R5, =state_2 .text:00032F9C CMP R3, R10 .text:00032FA0 LDR R12, =__wcsmbs_last_locale .text:00032FA4 MOV R6, R0 .text:00032FA8 LDR LR, =_nl_current_LC_CTYPE .text:00032FAC MOV R8, R1 .text:00032FB0 LDR R4, [R12] .text:00032FB4 MOV R7, R2 .text:00032FB8 LDR LR, [LR] .text:00032FBC MOVEQ R3, R5 .text:00032FC0 STR R3, [R11,#var_38] .text:00032FC4 CMP R4, LR .text:00032FC8 BEQ loc_32FD4 .text:00032FCC MOV R0, LR .text:00032FD0 BL __wcsmbs_load_conv .text:00032FD4 .text:00032FD4 loc_32FD4 ; CODE XREF: mbsrtowcs+58j .text:00032FD4 LDR R3, =__wcsmbs_gconv_fcts .text:00032FD8 CMP R6, #0 .text:00032FDC LDR R5, [R3] .text:00032FE0 BNE loc_330B0 .text:00032FE4 LDR R0, [R8] .text:00032FE8 STR R0, [R11,#var_158] .text:00032FEC BL strlen .text:00032FF0 SUB R3, R11, #-var_158 .text:00032FF4 STR R3, [R11,#var_160] .text:00032FF8 LDR R1, [R11,#var_38] .text:00032FFC MOV R7, R6 .text:00033000 LDR LR, [R11,#var_158] .text:00033004 MOV R10, R7 .text:00033008 LDMIA R1, {R3,R4} .text:0003300C SUB R2, R11, #-var_154 .text:00033010 STMIA R2, {R3,R4} .text:00033014 SUB R12, R11, #-var_4C .text:00033018 SUB R9, R11, #-var_15C .text:0003301C SUB R6, R11, #-var_14C .text:00033020 STR R2, [R11,#var_38] .text:00033024 ADD R3, LR, R0 .text:00033028 ADD R8, R3, #1 .text:0003302C STR R12, [R11,#var_48] .text:00033030 .text:00033030 loc_33030 ; CODE XREF: mbsrtowcs+108j .text:00033030 STR R6, [R11,#var_4C] .text:00033034 LDR R0, [R5,#0x14] .text:00033038 BL _dl_mcount_wrapper_check .text:0003303C STR R10, [SP,#0x170+var_170] .text:00033040 STMFA SP, {R9,R10} .text:00033044 MOV R4, #1 .text:00033048 STR R4, [SP,#0x170+var_164] .text:0003304C MOV R0, R5 .text:00033050 SUB R1, R11, #-var_4C .text:00033054 LDR R2, [R11,#var_160] .text:00033058 MOV R3, R8 .text:0003305C MOV LR, PC .text:00033060 LDR PC, [R5,#0x14] .text:00033064 MOV R4, R0 .text:00033068 LDR R2, [R11,#var_4C] .text:0003306C CMP R4, #5 .text:00033070 RSB R3, R6, R2 .text:00033074 ADD R7, R7, R3,ASR#2 .text:00033078 BEQ loc_33030 .text:0003307C CMP R4, #4 .text:00033080 CMPNE R4, #0 .text:00033084 BNE loc_33180 .text:00033088 LDR R3, [R2,#-4] .text:0003308C CMP R3, #0 .text:00033090 BEQ loc_330A8 .text:00033094 LDR R0, =aWchar_tData___ ; "((wchar_t *) data.__outbuf)[-1] == L'\\0"... .text:00033098 LDR R1, =aMbsrtowcs_c ; "mbsrtowcs.c" .text:0003309C LDR R3, =a__mbsrtowcs ; "__mbsrtowcs" .text:000330A0 MOV R2, #0x5C .text:000330A4 BL __assert_fail .text:000330A8 ; --------------------------------------------------------------------------- .text:000330A8 .text:000330A8 loc_330A8 ; CODE XREF: mbsrtowcs+120j .text:000330A8 SUB R7, R7, #1 .text:000330AC B loc_33180 .text:000330B0 ; --------------------------------------------------------------------------- .text:000330B0 .text:000330B0 loc_330B0 ; CODE XREF: mbsrtowcs+70j .text:000330B0 LDR R4, [R8] .text:000330B4 BL __ctype_get_mb_cur_max .text:000330B8 MUL R1, R0, R7 .text:000330BC MOV R0, R4 .text:000330C0 BL strnlen .text:000330C4 STR R6, [R11,#var_4C] .text:000330C8 ADD R3, R6, R7,LSL#2 .text:000330CC STR R3, [R11,#var_48] .text:000330D0 LDR R4, [R8] .text:000330D4 ADD R4, R4, R0 .text:000330D8 LDR R0, [R5,#0x14] .text:000330DC ADD R4, R4, #1 .text:000330E0 BL _dl_mcount_wrapper_check .text:000330E4 STR R10, [SP,#0x170+var_170] .text:000330E8 SUB R3, R11, #-var_15C .text:000330EC STMFA SP, {R3,R10} .text:000330F0 STR R9, [SP,#0x170+var_164] .text:000330F4 MOV R0, R5 .text:000330F8 SUB R1, R11, #-var_4C .text:000330FC MOV R2, R8 .text:00033100 MOV R3, R4 .text:00033104 MOV LR, PC .text:00033108 LDR PC, [R5,#0x14] .text:0003310C MOV R4, R0 .text:00033110 LDR R3, [R11,#var_4C] .text:00033114 CMP R4, #4 .text:00033118 CMPNE R0, #0 .text:0003311C RSB R3, R6, R3 .text:00033120 MOV R7, R3,ASR#2 .text:00033124 BNE loc_33180 .text:00033128 ADD R3, R6, R7,LSL#2 .text:0003312C LDR R5, [R3,#-4] .text:00033130 CMP R5, #0 .text:00033134 BNE loc_33180 .text:00033138 CMP R7, #0 .text:0003313C BNE loc_33154 .text:00033140 LDR R0, =aResult0 ; "result > 0" .text:00033144 LDR R1, =aMbsrtowcs_c ; "mbsrtowcs.c" .text:00033148 LDR R3, =a__mbsrtowcs ; "__mbsrtowcs" .text:0003314C MOV R2, #0x7A .text:00033150 BL __assert_fail .text:00033154 ; --------------------------------------------------------------------------- .text:00033154 .text:00033154 loc_33154 ; CODE XREF: mbsrtowcs+1CCj .text:00033154 LDR R0, [R11,#var_38] .text:00033158 BL mbsinit .text:0003315C CMP R0, #0 .text:00033160 BNE loc_33178 .text:00033164 LDR R0, =a__mbsinitDat_0 ; "__mbsinit (data.__statep)" .text:00033168 LDR R1, =aMbsrtowcs_c ; "mbsrtowcs.c" .text:0003316C LDR R3, =a__mbsrtowcs ; "__mbsrtowcs" .text:00033170 MOV R2, #0x7B .text:00033174 BL __assert_fail .text:00033178 ; --------------------------------------------------------------------------- .text:00033178 .text:00033178 loc_33178 ; CODE XREF: mbsrtowcs+1F0j .text:00033178 SUB R7, R7, #1 .text:0003317C STR R5, [R8] .text:00033180 .text:00033180 loc_33180 ; CODE XREF: mbsrtowcs+114j .text:00033180 ; mbsrtowcs+13Cj ... .text:00033180 CMP R4, #0 .text:00033184 CMPNE R4, #4 .text:00033188 BEQ loc_331DC .text:0003318C CMP R4, #6 .text:00033190 CMPNE R4, #7 .text:00033194 BEQ loc_331DC .text:00033198 CMP R4, #5 .text:0003319C BEQ loc_331DC .text:000331A0 LDR R0, =aStatus__gcon_1 ; "status == __GCONV_OK || status == __GCO"... .text:000331A4 LDR R1, =aMbsrtowcs_c ; "mbsrtowcs.c" .text:000331A8 LDR R3, =a__mbsrtowcs ; "__mbsrtowcs" .text:000331AC MOV R2, #0x86 .text:000331B0 BL __assert_fail .text:000331B0 ; --------------------------------------------------------------------------- .text:000331B4 off_331B4 DCD state_2 ; DATA XREF: mbsrtowcs+28r .text:000331B8 off_331B8 DCD __wcsmbs_last_locale ; DATA XREF: mbsrtowcs+30r .text:000331BC off_331BC DCD _nl_current_LC_CTYPE ; DATA XREF: mbsrtowcs+38r .text:000331C0 off_331C0 DCD __wcsmbs_gconv_fcts ; DATA XREF: mbsrtowcs:loc_32FD4r .text:000331C4 off_331C4 DCD aWchar_tData___ ; DATA XREF: mbsrtowcs+124r .text:000331C4 ; "((wchar_t *) data.__outbuf)[-1] == L'\\0"... .text:000331C8 off_331C8 DCD aMbsrtowcs_c ; DATA XREF: mbsrtowcs+128r .text:000331C8 ; mbsrtowcs+1D4r ... .text:000331C8 ; "mbsrtowcs.c" .text:000331CC off_331CC DCD a__mbsrtowcs ; DATA XREF: mbsrtowcs+12Cr .text:000331CC ; mbsrtowcs+1D8r ... .text:000331CC ; "__mbsrtowcs" .text:000331D0 off_331D0 DCD aResult0 ; DATA XREF: mbsrtowcs+1D0r .text:000331D0 ; "result > 0" .text:000331D4 off_331D4 DCD a__mbsinitDat_0 ; DATA XREF: mbsrtowcs+1F4r .text:000331D4 ; "__mbsinit (data.__statep)" .text:000331D8 off_331D8 DCD aStatus__gcon_1 ; DATA XREF: mbsrtowcs+230r .text:000331D8 ; "status == __GCONV_OK || status == __GCO"... .text:000331DC ; --------------------------------------------------------------------------- .text:000331DC .text:000331DC loc_331DC ; CODE XREF: mbsrtowcs+218j .text:000331DC ; mbsrtowcs+224j ... .text:000331DC CMP R4, #0 .text:000331E0 CMPNE R4, #5 .text:000331E4 BEQ loc_33204 .text:000331E8 CMP R4, #4 .text:000331EC CMPNE R4, #7 .text:000331F0 BEQ loc_33204 .text:000331F4 MOV R7, 0xFFFFFFFF .text:000331F8 BL __errno_location .text:000331FC MOV R3, #0x54 .text:00033200 STR R3, [R0] .text:00033204 .text:00033204 loc_33204 ; CODE XREF: mbsrtowcs+274j .text:00033204 ; mbsrtowcs+280j .text:00033204 MOV R0, R7 .text:00033208 LDMDB R11, {R4-R11,SP,PC} .text:00033208 ; End of function mbsrtowcs .text:00033208 .text:0003320C .text:0003320C ; =============== S U B R O U T I N E ======================================= .text:0003320C .text:0003320C ; Attributes: bp-based frame .text:0003320C .text:0003320C WEAK wcsrtombs .text:0003320C wcsrtombs ; CODE XREF: vfprintf+19E4p .text:0003320C ; vfprintf+1A0Cp ... .text:0003320C .text:0003320C var_178 = -0x178 .text:0003320C var_170 = -0x170 .text:0003320C var_16C = -0x16C .text:0003320C var_168 = -0x168 .text:0003320C var_164 = -0x164 .text:0003320C var_160 = -0x160 .text:0003320C var_15C = -0x15C .text:0003320C var_158 = -0x158 .text:0003320C var_154 = -0x154 .text:0003320C var_14C = -0x14C .text:0003320C var_4C = -0x4C .text:0003320C var_48 = -0x48 .text:0003320C var_44 = -0x44 .text:0003320C var_40 = -0x40 .text:0003320C var_3C = -0x3C .text:0003320C var_38 = -0x38 .text:0003320C var_2C = -0x2C .text:0003320C .text:0003320C MOV R12, SP ; Alternative name is '__wcsrtombs' .text:00033210 STMFD SP!, {R4-R12,LR,PC} .text:00033214 SUB R11, R12, #4 .text:00033218 MOV R8, #0 .text:0003321C SUB SP, SP, #0x150 .text:00033220 STR R8, [R11,#var_40] .text:00033224 MOV R4, #1 .text:00033228 STR R4, [R11,#var_3C] .text:0003322C STR R4, [R11,#var_44] .text:00033230 STR R8, [R11,#var_2C] .text:00033234 LDR R5, =state_3 .text:00033238 LDR R12, =__wcsmbs_last_locale .text:0003323C CMP R3, R8 .text:00033240 LDR LR, =_nl_current_LC_CTYPE .text:00033244 MOV R7, R0 .text:00033248 LDR R4, [R12] .text:0003324C MOV R10, R1 .text:00033250 LDR LR, [LR] .text:00033254 MOVEQ R3, R5 .text:00033258 STR R3, [R11,#var_38] .text:0003325C CMP R4, LR .text:00033260 MOV R4, R2 .text:00033264 BEQ loc_33270 .text:00033268 MOV R0, LR .text:0003326C BL __wcsmbs_load_conv .text:00033270 .text:00033270 loc_33270 ; CODE XREF: wcsrtombs+58j .text:00033270 LDR R3, =__wcsmbs_gconv_fcts .text:00033274 CMP R7, #0 .text:00033278 LDR R6, [R3,#(__wcsmbs_gconv_fcts+4 - 0x6B8AC)] .text:0003327C BNE loc_33358 .text:00033280 LDR R0, [R10] .text:00033284 BL wcslen .text:00033288 LDR R1, [R10] .text:0003328C SUB R5, R11, #-var_158 .text:00033290 STR R5, [R11,#var_164] .text:00033294 SUB R3, R11, #-var_14C .text:00033298 STR R3, [R11,#var_168] .text:0003329C STR R1, [R11,#var_158] .text:000332A0 LDR R2, [R11,#var_38] .text:000332A4 MOV R8, R7 .text:000332A8 LDMIA R2, {R4,R5} .text:000332AC SUB R3, R11, #-var_154 .text:000332B0 STMIA R3, {R4,R5} .text:000332B4 MOV R9, R8 .text:000332B8 SUB R12, R11, #-var_4C .text:000332BC SUB R10, R11, #-var_15C .text:000332C0 STR R3, [R11,#var_38] .text:000332C4 ADD R1, R1, R0,LSL#2 .text:000332C8 ADD R7, R1, #4 .text:000332CC STR R12, [R11,#var_48] .text:000332D0 .text:000332D0 loc_332D0 ; CODE XREF: wcsrtombs+114j .text:000332D0 LDR R5, [R11,#var_168] .text:000332D4 STR R5, [R11,#var_4C] .text:000332D8 LDR R0, [R6,#0x14] .text:000332DC BL _dl_mcount_wrapper_check .text:000332E0 STMEA SP, {R9,R10} .text:000332E4 STR R9, [SP,#0x178+var_170] .text:000332E8 MOV R12, #1 .text:000332EC STR R12, [SP,#0x178+var_16C] .text:000332F0 MOV R0, R6 .text:000332F4 SUB R1, R11, #-var_4C .text:000332F8 LDR R2, [R11,#var_164] .text:000332FC MOV R3, R7 .text:00033300 MOV LR, PC .text:00033304 LDR PC, [R6,#0x14] .text:00033308 LDR R2, [R11,#var_4C] .text:0003330C MOV R5, R0 .text:00033310 LDR R1, [R11,#var_168] .text:00033314 CMP R5, #5 .text:00033318 RSB R3, R1, R2 .text:0003331C ADD R8, R8, R3 .text:00033320 BEQ loc_332D0 .text:00033324 CMP R5, #4 .text:00033328 CMPNE R5, #0 .text:0003332C BNE loc_3341C .text:00033330 LDRB R3, [R2,#-1] .text:00033334 CMP R3, #0 .text:00033338 BEQ loc_33350 .text:0003333C LDR R0, =aData___outbuf1 ; "data.__outbuf[-1] == '\\0'" .text:00033340 LDR R1, =aWcsrtombs_c ; "wcsrtombs.c" .text:00033344 LDR R3, =a__wcsrtombs ; "__wcsrtombs" .text:00033348 MOV R2, #0x5E .text:0003334C BL __assert_fail .text:00033350 ; --------------------------------------------------------------------------- .text:00033350 .text:00033350 loc_33350 ; CODE XREF: wcsrtombs+12Cj .text:00033350 SUB R8, R8, #1 .text:00033354 B loc_3341C .text:00033358 ; --------------------------------------------------------------------------- .text:00033358 .text:00033358 loc_33358 ; CODE XREF: wcsrtombs+70j .text:00033358 LDR R0, [R10] .text:0003335C MOV R1, R4 .text:00033360 BL wcsnlen .text:00033364 STR R7, [R11,#var_4C] .text:00033368 ADD R3, R7, R4 .text:0003336C STR R3, [R11,#var_48] .text:00033370 LDR R4, [R10] .text:00033374 ADD R4, R4, R0,LSL#2 .text:00033378 LDR R0, [R6,#0x14] .text:0003337C ADD R4, R4, #4 .text:00033380 BL _dl_mcount_wrapper_check .text:00033384 STR R8, [SP,#0x178+var_178] .text:00033388 SUB R3, R11, #-var_160 .text:0003338C STMFA SP, {R3,R8} .text:00033390 MOV R3, #1 .text:00033394 STR R3, [SP,#0x178+var_16C] .text:00033398 MOV R0, R6 .text:0003339C SUB R1, R11, #-var_4C .text:000333A0 MOV R2, R10 .text:000333A4 MOV R3, R4 .text:000333A8 MOV LR, PC .text:000333AC LDR PC, [R6,#0x14] .text:000333B0 MOV R5, R0 .text:000333B4 LDR R3, [R11,#var_4C] .text:000333B8 CMP R5, #4 .text:000333BC CMPNE R0, #0 .text:000333C0 RSB R8, R7, R3 .text:000333C4 BNE loc_3341C .text:000333C8 LDRB R4, [R3,#-1] .text:000333CC CMP R4, #0 .text:000333D0 BNE loc_3341C .text:000333D4 CMP R3, R7 .text:000333D8 BNE loc_333F0 .text:000333DC LDR R0, =aData___outbufU ; "data.__outbuf != (unsigned char *) dst" .text:000333E0 LDR R1, =aWcsrtombs_c ; "wcsrtombs.c" .text:000333E4 LDR R3, =a__wcsrtombs ; "__wcsrtombs" .text:000333E8 MOV R2, #0x7B .text:000333EC BL __assert_fail .text:000333F0 ; --------------------------------------------------------------------------- .text:000333F0 .text:000333F0 loc_333F0 ; CODE XREF: wcsrtombs+1CCj .text:000333F0 LDR R0, [R11,#var_38] .text:000333F4 BL mbsinit .text:000333F8 CMP R0, #0 .text:000333FC BNE loc_33414 .text:00033400 LDR R0, =a__mbsinitDat_1 ; "__mbsinit (data.__statep)" .text:00033404 LDR R1, =aWcsrtombs_c ; "wcsrtombs.c" .text:00033408 LDR R3, =a__wcsrtombs ; "__wcsrtombs" .text:0003340C MOV R2, #0x7C .text:00033410 BL __assert_fail .text:00033414 ; --------------------------------------------------------------------------- .text:00033414 .text:00033414 loc_33414 ; CODE XREF: wcsrtombs+1F0j .text:00033414 SUB R8, R8, #1 .text:00033418 STR R4, [R10] .text:0003341C .text:0003341C loc_3341C ; CODE XREF: wcsrtombs+120j .text:0003341C ; wcsrtombs+148j ... .text:0003341C CMP R5, #0 .text:00033420 CMPNE R5, #4 .text:00033424 BEQ loc_33478 .text:00033428 CMP R5, #6 .text:0003342C CMPNE R5, #7 .text:00033430 BEQ loc_33478 .text:00033434 CMP R5, #5 .text:00033438 BEQ loc_33478 .text:0003343C LDR R0, =aStatus__gcon_2 ; "status == __GCONV_OK || status == __GCO"... .text:00033440 LDR R1, =aWcsrtombs_c ; "wcsrtombs.c" .text:00033444 LDR R3, =a__wcsrtombs ; "__wcsrtombs" .text:00033448 MOV R2, #0x87 .text:0003344C BL __assert_fail .text:0003344C ; --------------------------------------------------------------------------- .text:00033450 off_33450 DCD state_3 ; DATA XREF: wcsrtombs+28r .text:00033454 off_33454 DCD __wcsmbs_last_locale ; DATA XREF: wcsrtombs+2Cr .text:00033458 off_33458 DCD _nl_current_LC_CTYPE ; DATA XREF: wcsrtombs+34r .text:0003345C off_3345C DCD __wcsmbs_gconv_fcts ; DATA XREF: wcsrtombs:loc_33270r .text:00033460 off_33460 DCD aData___outbuf1 ; DATA XREF: wcsrtombs+130r .text:00033460 ; "data.__outbuf[-1] == '\\0'" .text:00033464 off_33464 DCD aWcsrtombs_c ; DATA XREF: wcsrtombs+134r .text:00033464 ; wcsrtombs+1D4r ... .text:00033464 ; "wcsrtombs.c" .text:00033468 off_33468 DCD a__wcsrtombs ; DATA XREF: wcsrtombs+138r .text:00033468 ; wcsrtombs+1D8r ... .text:00033468 ; "__wcsrtombs" .text:0003346C off_3346C DCD aData___outbufU ; DATA XREF: wcsrtombs+1D0r .text:0003346C ; "data.__outbuf != (unsigned char *) dst" .text:00033470 off_33470 DCD a__mbsinitDat_1 ; DATA XREF: wcsrtombs+1F4r .text:00033470 ; "__mbsinit (data.__statep)" .text:00033474 off_33474 DCD aStatus__gcon_2 ; DATA XREF: wcsrtombs+230r .text:00033474 ; "status == __GCONV_OK || status == __GCO"... .text:00033478 ; --------------------------------------------------------------------------- .text:00033478 .text:00033478 loc_33478 ; CODE XREF: wcsrtombs+218j .text:00033478 ; wcsrtombs+224j ... .text:00033478 CMP R5, #0 .text:0003347C CMPNE R5, #5 .text:00033480 BEQ loc_3349C .text:00033484 CMP R5, #4 .text:00033488 BEQ loc_3349C .text:0003348C MOV R8, 0xFFFFFFFF .text:00033490 BL __errno_location .text:00033494 MOV R3, #0x54 .text:00033498 STR R3, [R0] .text:0003349C .text:0003349C loc_3349C ; CODE XREF: wcsrtombs+274j .text:0003349C ; wcsrtombs+27Cj .text:0003349C MOV R0, R8 .text:000334A0 LDMDB R11, {R4-R11,SP,PC} .text:000334A0 ; End of function wcsrtombs .text:000334A0 .text:000334A4 .text:000334A4 ; =============== S U B R O U T I N E ======================================= .text:000334A4 .text:000334A4 ; Attributes: bp-based frame .text:000334A4 .text:000334A4 WEAK mbsnrtowcs .text:000334A4 mbsnrtowcs ; CODE XREF: vfprintf+1908p .text:000334A4 ; vfprintf+3C8Cp .text:000334A4 .text:000334A4 var_16C = -0x16C .text:000334A4 var_160 = -0x160 .text:000334A4 var_15C = -0x15C .text:000334A4 var_158 = -0x158 .text:000334A4 var_154 = -0x154 .text:000334A4 var_150 = -0x150 .text:000334A4 var_14C = -0x14C .text:000334A4 var_4C = -0x4C .text:000334A4 var_48 = -0x48 .text:000334A4 var_44 = -0x44 .text:000334A4 var_40 = -0x40 .text:000334A4 var_3C = -0x3C .text:000334A4 var_38 = -0x38 .text:000334A4 var_2C = -0x2C .text:000334A4 arg_0 = 4 .text:000334A4 .text:000334A4 MOV R12, SP ; Alternative name is '__mbsnrtowcs' .text:000334A8 STMFD SP!, {R4-R12,LR,PC} .text:000334AC SUB R11, R12, #4 .text:000334B0 MOV R4, #0 .text:000334B4 SUB SP, SP, #0x144 .text:000334B8 STR R4, [R11,#var_40] .text:000334BC MOV R12, #1 .text:000334C0 STR R12, [R11,#var_3C] .text:000334C4 STR R12, [R11,#var_44] .text:000334C8 MOV R6, R0 .text:000334CC LDR LR, =state_4 .text:000334D0 MOV R10, R1 .text:000334D4 LDR R12, [R11,#arg_0] .text:000334D8 MOV R7, R3 .text:000334DC STR R4, [R11,#var_2C] .text:000334E0 CMP R12, R4 .text:000334E4 MOVEQ R12, LR .text:000334E8 CMP R2, #0 .text:000334EC STR R12, [R11,#var_38] .text:000334F0 MOVEQ R0, R4 .text:000334F4 BEQ locret_3370C .text:000334F8 LDR R0, [R10] .text:000334FC SUB R1, R2, #1 .text:00033500 BL strnlen .text:00033504 LDR R3, =__wcsmbs_last_locale .text:00033508 LDR R2, =_nl_current_LC_CTYPE .text:0003350C LDR R1, [R3] .text:00033510 LDR R2, [R2] .text:00033514 LDR R3, [R10] .text:00033518 CMP R1, R2 .text:0003351C ADD R3, R3, R0 .text:00033520 ADD R9, R3, #1 .text:00033524 BEQ loc_33530 .text:00033528 MOV R0, R2 .text:0003352C BL __wcsmbs_load_conv .text:00033530 .text:00033530 loc_33530 ; CODE XREF: mbsnrtowcs+80j .text:00033530 LDR R3, =__wcsmbs_gconv_fcts .text:00033534 CMP R6, #0 .text:00033538 LDR R5, [R3] .text:0003353C BNE loc_335D4 .text:00033540 SUB R3, R11, #-var_4C .text:00033544 STR R3, [R11,#var_48] .text:00033548 SUB R3, R11, #-var_150 .text:0003354C STR R3, [R11,#var_15C] .text:00033550 SUB R12, R11, #-var_154 .text:00033554 STR R12, [R11,#var_158] .text:00033558 MOV R7, R6 .text:0003355C SUB R6, R11, #-var_14C .text:00033560 MOV R8, R7 .text:00033564 LDR R3, [R10] .text:00033568 MOV R10, #1 .text:0003356C STR R3, [R11,#var_150] .text:00033570 .text:00033570 loc_33570 ; CODE XREF: mbsnrtowcs+110j .text:00033570 STR R6, [R11,#var_4C] .text:00033574 LDR R0, [R5,#0x14] .text:00033578 BL _dl_mcount_wrapper_check .text:0003357C STR R8, [SP,#0x16C+var_16C] .text:00033580 LDR R3, [R11,#var_158] .text:00033584 STMFA SP, {R3,R8,R10} .text:00033588 MOV R0, R5 .text:0003358C SUB R1, R11, #-var_4C .text:00033590 LDR R2, [R11,#var_15C] .text:00033594 MOV R3, R9 .text:00033598 MOV LR, PC .text:0003359C LDR PC, [R5,#0x14] .text:000335A0 MOV R4, R0 .text:000335A4 LDR R2, [R11,#var_4C] .text:000335A8 CMP R4, #5 .text:000335AC RSB R3, R6, R2 .text:000335B0 ADD R7, R7, R3,ASR#2 .text:000335B4 BEQ loc_33570 .text:000335B8 CMP R4, #4 .text:000335BC CMPNE R4, #0 .text:000335C0 BNE loc_33688 .text:000335C4 LDR R3, [R2,#-4] .text:000335C8 CMP R3, #0 .text:000335CC SUBEQ R7, R7, #1 .text:000335D0 B loc_33688 .text:000335D4 ; --------------------------------------------------------------------------- .text:000335D4 .text:000335D4 loc_335D4 ; CODE XREF: mbsnrtowcs+98j .text:000335D4 STR R6, [R11,#var_4C] .text:000335D8 ADD R3, R6, R7,LSL#2 .text:000335DC STR R3, [R11,#var_48] .text:000335E0 LDR R0, [R5,#0x14] .text:000335E4 BL _dl_mcount_wrapper_check .text:000335E8 STR R4, [SP,#0x16C+var_16C] .text:000335EC SUB R3, R11, #-var_154 .text:000335F0 STMFA SP, {R3,R4} .text:000335F4 MOV R12, #1 .text:000335F8 STR R12, [SP,#0x16C+var_160] .text:000335FC MOV R0, R5 .text:00033600 SUB R1, R11, #-var_4C .text:00033604 MOV R2, R10 .text:00033608 MOV R3, R9 .text:0003360C MOV LR, PC .text:00033610 LDR PC, [R5,#0x14] .text:00033614 MOV R4, R0 .text:00033618 LDR R3, [R11,#var_4C] .text:0003361C CMP R4, #4 .text:00033620 CMPNE R0, #0 .text:00033624 RSB R3, R6, R3 .text:00033628 MOV R7, R3,ASR#2 .text:0003362C BNE loc_33688 .text:00033630 CMP R7, #0 .text:00033634 BNE loc_3364C .text:00033638 LDR R0, =aResult0_0 ; "result > 0" .text:0003363C LDR R1, =aMbsnrtowcs_c ; "mbsnrtowcs.c" .text:00033640 LDR R3, =a__mbsnrtowcs ; "__mbsnrtowcs" .text:00033644 MOV R2, #0x72 .text:00033648 BL __assert_fail .text:0003364C ; --------------------------------------------------------------------------- .text:0003364C .text:0003364C loc_3364C ; CODE XREF: mbsnrtowcs+190j .text:0003364C ADD R3, R6, R7,LSL#2 .text:00033650 LDR R5, [R3,#-4] .text:00033654 CMP R5, #0 .text:00033658 BNE loc_33688 .text:0003365C LDR R0, [R11,#var_38] .text:00033660 BL mbsinit .text:00033664 CMP R0, #0 .text:00033668 BNE loc_33680 .text:0003366C LDR R0, =a__mbsinitDat_2 ; "__mbsinit (data.__statep)" .text:00033670 LDR R1, =aMbsnrtowcs_c ; "mbsnrtowcs.c" .text:00033674 LDR R3, =a__mbsnrtowcs ; "__mbsnrtowcs" .text:00033678 MOV R2, #0x75 .text:0003367C BL __assert_fail .text:00033680 ; --------------------------------------------------------------------------- .text:00033680 .text:00033680 loc_33680 ; CODE XREF: mbsnrtowcs+1C4j .text:00033680 SUB R7, R7, #1 .text:00033684 STR R5, [R10] .text:00033688 .text:00033688 loc_33688 ; CODE XREF: mbsnrtowcs+11Cj .text:00033688 ; mbsnrtowcs+12Cj ... .text:00033688 CMP R4, #0 .text:0003368C CMPNE R4, #4 .text:00033690 BEQ loc_336E0 .text:00033694 CMP R4, #6 .text:00033698 CMPNE R4, #7 .text:0003369C BEQ loc_336E0 .text:000336A0 CMP R4, #5 .text:000336A4 BEQ loc_336E0 .text:000336A8 LDR R0, =aStatus__gcon_3 ; "status == __GCONV_OK || status == __GCO"... .text:000336AC LDR R1, =aMbsnrtowcs_c ; "mbsnrtowcs.c" .text:000336B0 LDR R3, =a__mbsnrtowcs ; "__mbsnrtowcs" .text:000336B4 MOV R2, #0x80 .text:000336B8 BL __assert_fail .text:000336B8 ; --------------------------------------------------------------------------- .text:000336BC off_336BC DCD state_4 ; DATA XREF: mbsnrtowcs+28r .text:000336C0 off_336C0 DCD __wcsmbs_last_locale ; DATA XREF: mbsnrtowcs+60r .text:000336C4 off_336C4 DCD _nl_current_LC_CTYPE ; DATA XREF: mbsnrtowcs+64r .text:000336C8 off_336C8 DCD __wcsmbs_gconv_fcts ; DATA XREF: mbsnrtowcs:loc_33530r .text:000336CC off_336CC DCD aResult0_0 ; DATA XREF: mbsnrtowcs+194r .text:000336CC ; "result > 0" .text:000336D0 off_336D0 DCD aMbsnrtowcs_c ; DATA XREF: mbsnrtowcs+198r .text:000336D0 ; mbsnrtowcs+1CCr ... .text:000336D0 ; "mbsnrtowcs.c" .text:000336D4 off_336D4 DCD a__mbsnrtowcs ; DATA XREF: mbsnrtowcs+19Cr .text:000336D4 ; mbsnrtowcs+1D0r ... .text:000336D4 ; "__mbsnrtowcs" .text:000336D8 off_336D8 DCD a__mbsinitDat_2 ; DATA XREF: mbsnrtowcs+1C8r .text:000336D8 ; "__mbsinit (data.__statep)" .text:000336DC off_336DC DCD aStatus__gcon_3 ; DATA XREF: mbsnrtowcs+204r .text:000336DC ; "status == __GCONV_OK || status == __GCO"... .text:000336E0 ; --------------------------------------------------------------------------- .text:000336E0 .text:000336E0 loc_336E0 ; CODE XREF: mbsnrtowcs+1ECj .text:000336E0 ; mbsnrtowcs+1F8j ... .text:000336E0 CMP R4, #0 .text:000336E4 CMPNE R4, #5 .text:000336E8 BEQ loc_33708 .text:000336EC CMP R4, #4 .text:000336F0 CMPNE R4, #7 .text:000336F4 BEQ loc_33708 .text:000336F8 MOV R7, 0xFFFFFFFF .text:000336FC BL __errno_location .text:00033700 MOV R3, #0x54 .text:00033704 STR R3, [R0] .text:00033708 .text:00033708 loc_33708 ; CODE XREF: mbsnrtowcs+244j .text:00033708 ; mbsnrtowcs+250j .text:00033708 MOV R0, R7 .text:0003370C .text:0003370C locret_3370C ; CODE XREF: mbsnrtowcs+50j .text:0003370C LDMDB R11, {R4-R11,SP,PC} .text:0003370C ; End of function mbsnrtowcs .text:0003370C .text:00033710 .text:00033710 ; =============== S U B R O U T I N E ======================================= .text:00033710 .text:00033710 ; Attributes: bp-based frame .text:00033710 .text:00033710 WEAK wcsnlen .text:00033710 wcsnlen ; CODE XREF: vfwprintf+1F30p .text:00033710 ; vfwprintf+47DCp ... .text:00033710 MOV R12, SP ; Alternative name is '__wcsnlen' .text:00033714 STMFD SP!, {R11,R12,LR,PC} .text:00033718 SUB R11, R12, #4 .text:0003371C MOV R12, #0 .text:00033720 LDR R3, [R0,R12,LSL#2] .text:00033724 CMP R3, R12 .text:00033728 CMPNE R1, R12 .text:0003372C BEQ loc_337A0 .text:00033730 .text:00033730 loc_33730 ; CODE XREF: wcsnlen+8Cj .text:00033730 ADD R12, R12, #1 .text:00033734 LDR R3, [R0,R12,LSL#2] .text:00033738 CMP R3, #0 .text:0003373C BEQ loc_33748 .text:00033740 SUBS R1, R1, #1 .text:00033744 BNE loc_33750 .text:00033748 .text:00033748 loc_33748 ; CODE XREF: wcsnlen+2Cj .text:00033748 ; wcsnlen+4Cj ... .text:00033748 MOV R0, R12 .text:0003374C LDMDB R11, {R11,SP,PC} .text:00033750 ; --------------------------------------------------------------------------- .text:00033750 .text:00033750 loc_33750 ; CODE XREF: wcsnlen+34j .text:00033750 ADD R12, R12, #1 .text:00033754 LDR R3, [R0,R12,LSL#2] .text:00033758 CMP R3, #0 .text:0003375C BEQ loc_33748 .text:00033760 SUBS R1, R1, #1 .text:00033764 BEQ loc_33748 .text:00033768 ADD R12, R12, #1 .text:0003376C LDR R3, [R0,R12,LSL#2] .text:00033770 CMP R3, #0 .text:00033774 BEQ loc_33748 .text:00033778 SUBS R1, R1, #1 .text:0003377C BEQ loc_33748 .text:00033780 ADD R12, R12, #1 .text:00033784 SUBS R1, R1, #1 .text:00033788 LDR R2, [R0,R12,LSL#2] .text:0003378C MOVEQ R3, #0 .text:00033790 MOVNE R3, #1 .text:00033794 CMP R3, #0 .text:00033798 CMPNE R2, #0 .text:0003379C BNE loc_33730 .text:000337A0 .text:000337A0 loc_337A0 ; CODE XREF: wcsnlen+1Cj .text:000337A0 MOV R0, R12 .text:000337A4 LDMDB R11, {R11,SP,PC} .text:000337A4 ; End of function wcsnlen .text:000337A4 .text:000337A8 .text:000337A8 ; =============== S U B R O U T I N E ======================================= .text:000337A8 .text:000337A8 ; Attributes: bp-based frame .text:000337A8 .text:000337A8 WEAK wcschrnul .text:000337A8 wcschrnul ; CODE XREF: vfwprintf+E0p .text:000337A8 ; vfwprintf+2084p ... .text:000337A8 MOV R12, SP .text:000337AC STMFD SP!, {R11,R12,LR,PC} .text:000337B0 LDR R3, [R0] .text:000337B4 SUB R11, R12, #4 .text:000337B8 CMP R3, #0 .text:000337BC LDMEQDB R11, {R11,SP,PC} .text:000337C0 CMP R3, R1 .text:000337C4 LDMEQDB R11, {R11,SP,PC} .text:000337C8 .text:000337C8 loc_337C8 ; CODE XREF: wcschrnul+30j .text:000337C8 LDR R3, [R0,#4]! .text:000337CC CMP R3, #0 .text:000337D0 LDMEQDB R11, {R11,SP,PC} .text:000337D4 CMP R3, R1 .text:000337D8 BNE loc_337C8 .text:000337DC LDMDB R11, {R11,SP,PC} .text:000337DC ; End of function wcschrnul .text:000337DC .text:000337E0 .text:000337E0 ; =============== S U B R O U T I N E ======================================= .text:000337E0 .text:000337E0 ; Attributes: bp-based frame .text:000337E0 .text:000337E0 EXPORT __wcsmbs_load_conv .text:000337E0 __wcsmbs_load_conv ; CODE XREF: btowc+98p .text:000337E0 ; mbrtowc+88p ... .text:000337E0 .text:000337E0 var_40 = -0x40 .text:000337E0 var_3C = -0x3C .text:000337E0 var_38 = -0x38 .text:000337E0 var_34 = -0x34 .text:000337E0 var_30 = -0x30 .text:000337E0 var_2C = -0x2C .text:000337E0 .text:000337E0 MOV R12, SP .text:000337E4 STMFD SP!, {R4-R12,LR,PC} .text:000337E8 SUB R11, R12, #4 .text:000337EC LDR R3, =0 .text:000337F0 MOV R8, R0 .text:000337F4 CMP R3, #0 .text:000337F8 SUB SP, SP, #0x18 .text:000337FC BEQ loc_3380C .text:00033800 LDR R0, =lock_2 .text:00033804 MOV LR, PC .text:00033808 MOV PC, R3 .text:0003380C .text:0003380C loc_3380C ; CODE XREF: __wcsmbs_load_conv+1Cj .text:0003380C LDR R2, =__wcsmbs_last_locale .text:00033810 LDR R3, [R2] .text:00033814 CMP R3, R8 .text:00033818 BEQ loc_33AA4 .text:0003381C LDR R2, [R8] .text:00033820 LDR R3, =_nl_C_name .text:00033824 CMP R2, R3 .text:00033828 BNE loc_33844 .text:0003382C .text:0003382C loc_3382C ; CODE XREF: __wcsmbs_load_conv+274j .text:0003382C ; __wcsmbs_load_conv+284j .text:0003382C LDR R3, =to_wc .text:00033830 LDR R1, =__wcsmbs_gconv_fcts .text:00033834 STR R3, [R1] .text:00033838 LDR R2, =to_mb .text:0003383C STR R2, [R1,#(__wcsmbs_gconv_fcts+4 - 0x6B8AC)] .text:00033840 B loc_33A9C .text:00033844 ; --------------------------------------------------------------------------- .text:00033844 .text:00033844 loc_33844 ; CODE XREF: __wcsmbs_load_conv+48j .text:00033844 LDR R2, =__wcsmbs_gconv_fcts .text:00033848 MOV R1, #1 .text:0003384C LDR R0, [R2,#(__wcsmbs_gconv_fcts+4 - 0x6B8AC)] .text:00033850 MOV R6, #0 .text:00033854 BL __gconv_close_transform .text:00033858 LDR R3, =__wcsmbs_gconv_fcts .text:0003385C LDR R0, [R3] .text:00033860 MOV R1, #1 .text:00033864 BL __gconv_close_transform .text:00033868 LDR R5, [R8,#0x58] .text:0003386C LDR R10, [R8,#0x14] .text:00033870 MOV R4, R5 .text:00033874 CMP R10, R6 .text:00033878 BEQ loc_33894 .text:0003387C LDR R0, =aTranslit_0 ; "TRANSLIT" .text:00033880 CMP R0, R6 .text:00033884 BEQ loc_33894 .text:00033888 BL strlen .text:0003388C MOV LR, R0 .text:00033890 B loc_33898 .text:00033894 ; --------------------------------------------------------------------------- .text:00033894 .text:00033894 loc_33894 ; CODE XREF: __wcsmbs_load_conv+98j .text:00033894 ; __wcsmbs_load_conv+A4j .text:00033894 MOV LR, #0 .text:00033898 .text:00033898 loc_33898 ; CODE XREF: __wcsmbs_load_conv+B0j .text:00033898 ADD R2, LR, #3 .text:0003389C SUB R9, R11, #-var_2C .text:000338A0 LDRB R3, [R5] .text:000338A4 SUB R1, R11, #-var_30 .text:000338A8 STR R1, [R11,#var_3C] .text:000338AC CMP R3, #0 .text:000338B0 BEQ loc_338C8 .text:000338B4 .text:000338B4 loc_338B4 ; CODE XREF: __wcsmbs_load_conv+E4j .text:000338B4 CMP R3, #0x2F .text:000338B8 ADDEQ R6, R6, #1 .text:000338BC LDRB R3, [R4,#1]! .text:000338C0 CMP R3, #0 .text:000338C4 BNE loc_338B4 .text:000338C8 .text:000338C8 loc_338C8 ; CODE XREF: __wcsmbs_load_conv+D0j .text:000338C8 RSB R3, R5, R4 .text:000338CC ADD R3, R3, R2 .text:000338D0 ADD R3, R3, #3 .text:000338D4 BIC R3, R3, #3 .text:000338D8 RSB SP, R3, SP .text:000338DC MOV R4, R5 .text:000338E0 ADD R7, SP, #0x40+var_3C .text:000338E4 LDRB R3, [R4] .text:000338E8 MOV R0, R7 .text:000338EC CMP R3, #0 .text:000338F0 BEQ loc_33914 .text:000338F4 LDR R12, =__ctype_toupper .text:000338F8 .text:000338F8 loc_338F8 ; CODE XREF: __wcsmbs_load_conv+130j .text:000338F8 LDRB R1, [R4] .text:000338FC LDR R3, [R12] .text:00033900 LDRB R2, [R3,R1,LSL#2] .text:00033904 STRB R2, [R0],#1 .text:00033908 LDRB R3, [R4,#1]! .text:0003390C CMP R3, #0 .text:00033910 BNE loc_338F8 .text:00033914 .text:00033914 loc_33914 ; CODE XREF: __wcsmbs_load_conv+110j .text:00033914 CMP R6, #1 .text:00033918 BHI loc_33944 .text:0003391C CMP R6, #0 .text:00033920 MOV R3, #0x2F .text:00033924 STRB R3, [R0],#1 .text:00033928 BNE loc_33944 .text:0003392C CMP R10, #0 .text:00033930 STRB R3, [R0],#1 .text:00033934 BEQ loc_33944 .text:00033938 LDR R1, =aTranslit_0 ; "TRANSLIT" .text:0003393C MOV R2, LR .text:00033940 BL mempcpy .text:00033944 .text:00033944 loc_33944 ; CODE XREF: __wcsmbs_load_conv+138j .text:00033944 ; __wcsmbs_load_conv+148j ... .text:00033944 MOV R4, #0 .text:00033948 STRB R4, [R0] .text:0003394C STR R4, [SP,#0x40+var_40] .text:00033950 LDR R0, =aInternal ; "INTERNAL" .text:00033954 MOV R1, R7 .text:00033958 LDR R3, [R11,#var_3C] .text:0003395C MOV R2, R9 .text:00033960 BL __gconv_find_transform .text:00033964 CMP R0, #0 .text:00033968 BNE loc_339BC .text:0003396C LDR R12, [R11,#var_30] .text:00033970 MOV LR, R0 .text:00033974 LDR R3, [R11,#var_2C] .text:00033978 CMP R0, R12 .text:0003397C MOV R1, R12 .text:00033980 BCS loc_339A0 .text:00033984 ADD R2, R3, #0x30 .text:00033988 .text:00033988 loc_33988 ; CODE XREF: __wcsmbs_load_conv+1BCj .text:00033988 LDR R3, [R2],#0x38 .text:0003398C ADD LR, LR, #1 .text:00033990 CMP R3, #0 .text:00033994 ADDNE R0, R0, #1 .text:00033998 CMP LR, R12 .text:0003399C BCC loc_33988 .text:000339A0 .text:000339A0 loc_339A0 ; CODE XREF: __wcsmbs_load_conv+1A0j .text:000339A0 CMP R0, #1 .text:000339A4 BLS loc_339B8 .text:000339A8 LDR R0, [R11,#var_2C] .text:000339AC BL __gconv_close_transform .text:000339B0 MOV R3, #0 .text:000339B4 STR R3, [R11,#var_2C] .text:000339B8 .text:000339B8 loc_339B8 ; CODE XREF: __wcsmbs_load_conv+1C4j .text:000339B8 LDR R4, [R11,#var_2C] .text:000339BC .text:000339BC loc_339BC ; CODE XREF: __wcsmbs_load_conv+188j .text:000339BC CMP R4, #0 .text:000339C0 BEQ loc_33A40 .text:000339C4 MOV R5, #0 .text:000339C8 STR R5, [SP,#0x40+var_40] .text:000339CC MOV R0, R7 .text:000339D0 SUB R2, R11, #-var_34 .text:000339D4 LDR R1, =aInternal ; "INTERNAL" .text:000339D8 SUB R3, R11, #-var_38 .text:000339DC BL __gconv_find_transform .text:000339E0 CMP R0, #0 .text:000339E4 MOVNE R3, R5 .text:000339E8 BNE loc_33A44 .text:000339EC LDR R12, [R11,#var_38] .text:000339F0 MOV LR, R0 .text:000339F4 LDR R3, [R11,#var_34] .text:000339F8 CMP R0, R12 .text:000339FC MOV R1, R12 .text:00033A00 BCS loc_33A20 .text:00033A04 ADD R2, R3, #0x30 .text:00033A08 .text:00033A08 loc_33A08 ; CODE XREF: __wcsmbs_load_conv+23Cj .text:00033A08 LDR R3, [R2],#0x38 .text:00033A0C ADD LR, LR, #1 .text:00033A10 CMP R3, #0 .text:00033A14 ADDNE R0, R0, #1 .text:00033A18 CMP LR, R12 .text:00033A1C BCC loc_33A08 .text:00033A20 .text:00033A20 loc_33A20 ; CODE XREF: __wcsmbs_load_conv+220j .text:00033A20 CMP R0, #1 .text:00033A24 BLS loc_33A38 .text:00033A28 LDR R0, [R11,#var_34] .text:00033A2C BL __gconv_close_transform .text:00033A30 MOV R3, #0 .text:00033A34 STR R3, [R11,#var_34] .text:00033A38 .text:00033A38 loc_33A38 ; CODE XREF: __wcsmbs_load_conv+244j .text:00033A38 LDR R3, [R11,#var_34] .text:00033A3C B loc_33A44 .text:00033A40 ; --------------------------------------------------------------------------- .text:00033A40 .text:00033A40 loc_33A40 ; CODE XREF: __wcsmbs_load_conv+1E0j .text:00033A40 MOV R3, R4 .text:00033A44 .text:00033A44 loc_33A44 ; CODE XREF: __wcsmbs_load_conv+208j .text:00033A44 ; __wcsmbs_load_conv+25Cj .text:00033A44 CMP R3, #0 .text:00033A48 CMPNE R4, #0 .text:00033A4C BNE loc_33A90 .text:00033A50 CMP R4, #0 .text:00033A54 BEQ loc_3382C .text:00033A58 MOV R0, R4 .text:00033A5C MOV R1, #1 .text:00033A60 BL __gconv_close_transform .text:00033A64 B loc_3382C .text:00033A64 ; --------------------------------------------------------------------------- .text:00033A68 off_33A68 DCD 0 ; DATA XREF: __wcsmbs_load_conv+Cr .text:00033A6C off_33A6C DCD lock_2 ; DATA XREF: __wcsmbs_load_conv+20r .text:00033A70 off_33A70 DCD __wcsmbs_last_locale .text:00033A70 ; DATA XREF: __wcsmbs_load_conv:loc_3380Cr .text:00033A74 off_33A74 DCD _nl_C_name ; DATA XREF: __wcsmbs_load_conv+40r .text:00033A78 off_33A78 DCD to_wc ; DATA XREF: __wcsmbs_load_conv:loc_3382Cr .text:00033A7C off_33A7C DCD __wcsmbs_gconv_fcts ; DATA XREF: __wcsmbs_load_conv+50r .text:00033A7C ; __wcsmbs_load_conv:loc_33844r ... .text:00033A80 off_33A80 DCD to_mb ; DATA XREF: __wcsmbs_load_conv+58r .text:00033A84 off_33A84 DCD aTranslit_0 ; DATA XREF: __wcsmbs_load_conv+9Cr .text:00033A84 ; __wcsmbs_load_conv+158r .text:00033A84 ; "TRANSLIT" .text:00033A88 off_33A88 DCD __ctype_toupper ; DATA XREF: __wcsmbs_load_conv+114r .text:00033A8C off_33A8C DCD aInternal ; DATA XREF: __wcsmbs_load_conv+170r .text:00033A8C ; __wcsmbs_load_conv+1F4r .text:00033A8C ; "INTERNAL" .text:00033A90 ; --------------------------------------------------------------------------- .text:00033A90 .text:00033A90 loc_33A90 ; CODE XREF: __wcsmbs_load_conv+26Cj .text:00033A90 LDR R2, =__wcsmbs_gconv_fcts .text:00033A94 STR R3, [R2,#(__wcsmbs_gconv_fcts+4 - 0x6B8AC)] .text:00033A98 STR R4, [R2] .text:00033A9C .text:00033A9C loc_33A9C ; CODE XREF: __wcsmbs_load_conv+60j .text:00033A9C LDR R3, =__wcsmbs_last_locale .text:00033AA0 STR R8, [R3] .text:00033AA4 .text:00033AA4 loc_33AA4 ; CODE XREF: __wcsmbs_load_conv+38j .text:00033AA4 LDR R1, =0 .text:00033AA8 CMP R1, #0 .text:00033AAC BEQ locret_33AD0 .text:00033AB0 LDR R0, =lock_2 .text:00033AB4 MOV LR, PC .text:00033AB8 MOV PC, R1 .text:00033ABC B locret_33AD0 .text:00033ABC ; --------------------------------------------------------------------------- .text:00033AC0 off_33AC0 DCD __wcsmbs_gconv_fcts ; DATA XREF: __wcsmbs_load_conv:loc_33A90r .text:00033AC4 off_33AC4 DCD __wcsmbs_last_locale .text:00033AC4 ; DATA XREF: __wcsmbs_load_conv:loc_33A9Cr .text:00033AC8 off_33AC8 DCD 0 ; DATA XREF: __wcsmbs_load_conv:loc_33AA4r .text:00033ACC off_33ACC DCD lock_2 ; DATA XREF: __wcsmbs_load_conv+2D0r .text:00033AD0 ; --------------------------------------------------------------------------- .text:00033AD0 .text:00033AD0 locret_33AD0 ; CODE XREF: __wcsmbs_load_conv+2CCj .text:00033AD0 ; __wcsmbs_load_conv+2DCj .text:00033AD0 LDMDB R11, {R4-R11,SP,PC} .text:00033AD0 ; End of function __wcsmbs_load_conv .text:00033AD0 .text:00033AD4 .text:00033AD4 ; =============== S U B R O U T I N E ======================================= .text:00033AD4 .text:00033AD4 ; Attributes: bp-based frame .text:00033AD4 .text:00033AD4 EXPORT __wcsmbs_clone_conv .text:00033AD4 __wcsmbs_clone_conv ; CODE XREF: _IO_fwide+9Cp .text:00033AD4 MOV R12, SP .text:00033AD8 STMFD SP!, {R4,R11,R12,LR,PC} .text:00033ADC LDR R3, =__wcsmbs_last_locale .text:00033AE0 LDR R2, =_nl_current_LC_CTYPE .text:00033AE4 LDR R1, [R3] .text:00033AE8 SUB R11, R12, #4 .text:00033AEC LDR R2, [R2] .text:00033AF0 MOV R4, R0 .text:00033AF4 CMP R1, R2 .text:00033AF8 BEQ loc_33B04 .text:00033AFC MOV R0, R2 .text:00033B00 BL __wcsmbs_load_conv .text:00033B04 .text:00033B04 loc_33B04 ; CODE XREF: __wcsmbs_clone_conv+24j .text:00033B04 LDR R3, =0 .text:00033B08 CMP R3, #0 .text:00033B0C BEQ loc_33B1C .text:00033B10 LDR R0, =lock_2 .text:00033B14 MOV LR, PC .text:00033B18 MOV PC, R3 .text:00033B1C .text:00033B1C loc_33B1C ; CODE XREF: __wcsmbs_clone_conv+38j .text:00033B1C LDR R3, =__wcsmbs_gconv_fcts .text:00033B20 LDMIA R3, {R1,R2} .text:00033B24 STMIA R4, {R1,R2} .text:00033B28 LDR R2, [R4] .text:00033B2C LDR R3, [R2] .text:00033B30 CMP R3, #0 .text:00033B34 LDRNE R3, [R2,#8] .text:00033B38 ADDNE R3, R3, #1 .text:00033B3C STRNE R3, [R2,#8] .text:00033B40 LDR R0, [R4,#4] .text:00033B44 LDR R3, [R0] .text:00033B48 CMP R3, #0 .text:00033B4C LDRNE R3, [R0,#8] .text:00033B50 ADDNE R3, R3, #1 .text:00033B54 STRNE R3, [R0,#8] .text:00033B58 LDR R3, =0 .text:00033B5C CMP R3, #0 .text:00033B60 LDMEQDB R11, {R4,R11,SP,PC} .text:00033B64 LDR R0, =lock_2 .text:00033B68 MOV LR, PC .text:00033B6C MOV PC, R3 .text:00033B70 LDMDB R11, {R4,R11,SP,PC} .text:00033B70 ; End of function __wcsmbs_clone_conv .text:00033B70 .text:00033B70 ; --------------------------------------------------------------------------- .text:00033B74 off_33B74 DCD __wcsmbs_last_locale ; DATA XREF: __wcsmbs_clone_conv+8r .text:00033B78 off_33B78 DCD _nl_current_LC_CTYPE ; DATA XREF: __wcsmbs_clone_conv+Cr .text:00033B7C off_33B7C DCD 0 ; DATA XREF: __wcsmbs_clone_conv:loc_33B04r .text:00033B80 off_33B80 DCD lock_2 ; DATA XREF: __wcsmbs_clone_conv+3Cr .text:00033B80 ; __wcsmbs_clone_conv+90r .text:00033B84 off_33B84 DCD __wcsmbs_gconv_fcts ; DATA XREF: __wcsmbs_clone_conv:loc_33B1Cr .text:00033B88 off_33B88 DCD 0 ; DATA XREF: __wcsmbs_clone_conv+84r .text:00033B8C .text:00033B8C ; =============== S U B R O U T I N E ======================================= .text:00033B8C .text:00033B8C ; Attributes: bp-based frame .text:00033B8C .text:00033B8C EXPORT __wcsmbs_named_conv .text:00033B8C __wcsmbs_named_conv ; CODE XREF: _IO_new_file_fopen+1E4p .text:00033B8C .text:00033B8C var_2C = -0x2C .text:00033B8C var_28 = -0x28 .text:00033B8C var_24 = -0x24 .text:00033B8C var_20 = -0x20 .text:00033B8C var_1C = -0x1C .text:00033B8C .text:00033B8C MOV R12, SP .text:00033B90 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:00033B94 SUB R11, R12, #4 .text:00033B98 MOV R5, #0 .text:00033B9C SUB SP, SP, #0x14 .text:00033BA0 STR R5, [SP,#0x2C+var_2C] .text:00033BA4 MOV R6, R1 .text:00033BA8 SUB R2, R11, #-var_1C .text:00033BAC MOV R4, R0 .text:00033BB0 LDR R0, =aInternal ; "INTERNAL" .text:00033BB4 SUB R3, R11, #-var_20 .text:00033BB8 BL __gconv_find_transform .text:00033BBC CMP R0, #0 .text:00033BC0 MOVNE R3, R5 .text:00033BC4 BNE loc_33C18 .text:00033BC8 LDR R12, [R11,#var_20] .text:00033BCC MOV LR, R0 .text:00033BD0 LDR R3, [R11,#var_1C] .text:00033BD4 CMP R0, R12 .text:00033BD8 MOV R1, R12 .text:00033BDC BCS loc_33BFC .text:00033BE0 ADD R2, R3, #0x30 .text:00033BE4 .text:00033BE4 loc_33BE4 ; CODE XREF: __wcsmbs_named_conv+6Cj .text:00033BE4 LDR R3, [R2],#0x38 .text:00033BE8 ADD LR, LR, #1 .text:00033BEC CMP R3, #0 .text:00033BF0 ADDNE R0, R0, #1 .text:00033BF4 CMP LR, R12 .text:00033BF8 BCC loc_33BE4 .text:00033BFC .text:00033BFC loc_33BFC ; CODE XREF: __wcsmbs_named_conv+50j .text:00033BFC CMP R0, #1 .text:00033C00 BLS loc_33C14 .text:00033C04 LDR R0, [R11,#var_1C] .text:00033C08 BL __gconv_close_transform .text:00033C0C MOV R3, #0 .text:00033C10 STR R3, [R11,#var_1C] .text:00033C14 .text:00033C14 loc_33C14 ; CODE XREF: __wcsmbs_named_conv+74j .text:00033C14 LDR R3, [R11,#var_1C] .text:00033C18 .text:00033C18 loc_33C18 ; CODE XREF: __wcsmbs_named_conv+38j .text:00033C18 CMP R3, #0 .text:00033C1C STR R3, [R4] .text:00033C20 BEQ loc_33CB4 .text:00033C24 MOV R5, #0 .text:00033C28 STR R5, [SP,#0x2C+var_2C] .text:00033C2C MOV R0, R6 .text:00033C30 SUB R2, R11, #-var_24 .text:00033C34 LDR R1, =aInternal ; "INTERNAL" .text:00033C38 SUB R3, R11, #-var_28 .text:00033C3C BL __gconv_find_transform .text:00033C40 CMP R0, #0 .text:00033C44 MOVNE R3, R5 .text:00033C48 BNE loc_33C9C .text:00033C4C LDR R12, [R11,#var_28] .text:00033C50 MOV LR, R0 .text:00033C54 LDR R3, [R11,#var_24] .text:00033C58 CMP R0, R12 .text:00033C5C MOV R1, R12 .text:00033C60 BCS loc_33C80 .text:00033C64 ADD R2, R3, #0x30 .text:00033C68 .text:00033C68 loc_33C68 ; CODE XREF: __wcsmbs_named_conv+F0j .text:00033C68 LDR R3, [R2],#0x38 .text:00033C6C ADD LR, LR, #1 .text:00033C70 CMP R3, #0 .text:00033C74 ADDNE R0, R0, #1 .text:00033C78 CMP LR, R12 .text:00033C7C BCC loc_33C68 .text:00033C80 .text:00033C80 loc_33C80 ; CODE XREF: __wcsmbs_named_conv+D4j .text:00033C80 CMP R0, #1 .text:00033C84 BLS loc_33C98 .text:00033C88 LDR R0, [R11,#var_24] .text:00033C8C BL __gconv_close_transform .text:00033C90 MOV R3, #0 .text:00033C94 STR R3, [R11,#var_24] .text:00033C98 .text:00033C98 loc_33C98 ; CODE XREF: __wcsmbs_named_conv+F8j .text:00033C98 LDR R3, [R11,#var_24] .text:00033C9C .text:00033C9C loc_33C9C ; CODE XREF: __wcsmbs_named_conv+BCj .text:00033C9C CMP R3, #0 .text:00033CA0 STR R3, [R4,#4] .text:00033CA4 BNE loc_33CB4 .text:00033CA8 LDR R0, [R4] .text:00033CAC MOV R1, #1 .text:00033CB0 BL __gconv_close_transform .text:00033CB4 .text:00033CB4 loc_33CB4 ; CODE XREF: __wcsmbs_named_conv+94j .text:00033CB4 ; __wcsmbs_named_conv+118j .text:00033CB4 LDR R2, [R4] .text:00033CB8 CMP R2, #0 .text:00033CBC BEQ loc_33CCC .text:00033CC0 LDR R3, [R4,#4] .text:00033CC4 CMP R3, #0 .text:00033CC8 BNE loc_33CD8 .text:00033CCC .text:00033CCC loc_33CCC ; CODE XREF: __wcsmbs_named_conv+130j .text:00033CCC MOV R0, #1 .text:00033CD0 B locret_33D08 .text:00033CD0 ; --------------------------------------------------------------------------- .text:00033CD4 off_33CD4 DCD aInternal ; DATA XREF: __wcsmbs_named_conv+24r .text:00033CD4 ; __wcsmbs_named_conv+A8r .text:00033CD4 ; "INTERNAL" .text:00033CD8 ; --------------------------------------------------------------------------- .text:00033CD8 .text:00033CD8 loc_33CD8 ; CODE XREF: __wcsmbs_named_conv+13Cj .text:00033CD8 LDR R3, [R2] .text:00033CDC CMP R3, #0 .text:00033CE0 LDRNE R3, [R2,#8] .text:00033CE4 ADDNE R3, R3, #1 .text:00033CE8 STRNE R3, [R2,#8] .text:00033CEC LDR R0, [R4,#4] .text:00033CF0 LDR R3, [R0] .text:00033CF4 CMP R3, #0 .text:00033CF8 LDRNE R3, [R0,#8] .text:00033CFC ADDNE R3, R3, #1 .text:00033D00 STRNE R3, [R0,#8] .text:00033D04 MOV R0, #0 .text:00033D08 .text:00033D08 locret_33D08 ; CODE XREF: __wcsmbs_named_conv+144j .text:00033D08 LDMDB R11, {R4-R6,R11,SP,PC} .text:00033D08 ; End of function __wcsmbs_named_conv .text:00033D08 .text:00033D08 ; --------------------------------------------------------------------------- .text:00033D0C ALIGN 0x10 .text:00033D10 .text:00033D10 ; =============== S U B R O U T I N E ======================================= .text:00033D10 .text:00033D10 .text:00033D10 WEAK getpid .text:00033D10 getpid ; CODE XREF: _dl_debug_vdprintf+6Cp .text:00033D10 ; raise+10p ... .text:00033D10 SVC 0x900014 .text:00033D14 CMN R0, #0x1000 .text:00033D18 MOVCC PC, LR .text:00033D1C B __syscall_error .text:00033D1C ; End of function getpid .text:00033D1C .text:00033D20 .text:00033D20 ; =============== S U B R O U T I N E ======================================= .text:00033D20 .text:00033D20 ; Attributes: bp-based frame .text:00033D20 .text:00033D20 WEAK getuid .text:00033D20 getuid ; CODE XREF: __libc_init_secure+18p .text:00033D20 MOV R12, SP ; Alternative name is '__getuid' .text:00033D24 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:00033D28 LDR R6, =__libc_missing_32bit_uids .text:00033D2C LDR R3, [R6] .text:00033D30 SUB R11, R12, #4 .text:00033D34 CMP R3, #0 .text:00033D38 BGT loc_33D94 .text:00033D3C BL __errno_location .text:00033D40 LDR R5, [R0] .text:00033D44 SVC 0x9000C7 .text:00033D48 MOV R4, R0 .text:00033D4C CMN R4, #0x1000 .text:00033D50 BLS loc_33D64 .text:00033D54 BL __errno_location .text:00033D58 RSB R3, R4, #0 .text:00033D5C MOV R4, 0xFFFFFFFF .text:00033D60 STR R3, [R0] .text:00033D64 .text:00033D64 loc_33D64 ; CODE XREF: getuid+30j .text:00033D64 CMP R4, #0 .text:00033D68 BEQ loc_33D7C .text:00033D6C BL __errno_location .text:00033D70 LDR R3, [R0] .text:00033D74 CMP R3, #0x26 .text:00033D78 BEQ loc_33D84 .text:00033D7C .text:00033D7C loc_33D7C ; CODE XREF: getuid+48j .text:00033D7C MOV R0, R4 .text:00033D80 LDMDB R11, {R4-R6,R11,SP,PC} .text:00033D84 ; --------------------------------------------------------------------------- .text:00033D84 .text:00033D84 loc_33D84 ; CODE XREF: getuid+58j .text:00033D84 BL __errno_location .text:00033D88 STR R5, [R0] .text:00033D8C MOV R3, #1 .text:00033D90 STR R3, [R6] .text:00033D94 .text:00033D94 loc_33D94 ; CODE XREF: getuid+18j .text:00033D94 SVC 0x900018 .text:00033D98 MOV R4, R0 .text:00033D9C CMN R4, #0x1000 .text:00033DA0 BLS loc_33DB4 .text:00033DA4 BL __errno_location .text:00033DA8 RSB R3, R4, #0 .text:00033DAC MOV R4, 0xFFFFFFFF .text:00033DB0 STR R3, [R0] .text:00033DB4 .text:00033DB4 loc_33DB4 ; CODE XREF: getuid+80j .text:00033DB4 MOV R0, R4 .text:00033DB8 LDMDB R11, {R4-R6,R11,SP,PC} .text:00033DB8 ; End of function getuid .text:00033DB8 .text:00033DB8 ; --------------------------------------------------------------------------- .text:00033DBC off_33DBC DCD __libc_missing_32bit_uids ; DATA XREF: getuid+8r .text:00033DC0 .text:00033DC0 ; =============== S U B R O U T I N E ======================================= .text:00033DC0 .text:00033DC0 ; Attributes: bp-based frame .text:00033DC0 .text:00033DC0 WEAK geteuid .text:00033DC0 geteuid ; CODE XREF: __libc_init_secure+10p .text:00033DC0 MOV R12, SP ; Alternative name is '__geteuid' .text:00033DC4 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:00033DC8 LDR R6, =__libc_missing_32bit_uids .text:00033DCC LDR R3, [R6] .text:00033DD0 SUB R11, R12, #4 .text:00033DD4 CMP R3, #0 .text:00033DD8 BGT loc_33E34 .text:00033DDC BL __errno_location .text:00033DE0 LDR R5, [R0] .text:00033DE4 SVC 0x9000C9 .text:00033DE8 MOV R4, R0 .text:00033DEC CMN R4, #0x1000 .text:00033DF0 BLS loc_33E04 .text:00033DF4 BL __errno_location .text:00033DF8 RSB R3, R4, #0 .text:00033DFC MOV R4, 0xFFFFFFFF .text:00033E00 STR R3, [R0] .text:00033E04 .text:00033E04 loc_33E04 ; CODE XREF: geteuid+30j .text:00033E04 CMP R4, #0 .text:00033E08 BEQ loc_33E1C .text:00033E0C BL __errno_location .text:00033E10 LDR R3, [R0] .text:00033E14 CMP R3, #0x26 .text:00033E18 BEQ loc_33E24 .text:00033E1C .text:00033E1C loc_33E1C ; CODE XREF: geteuid+48j .text:00033E1C MOV R0, R4 .text:00033E20 LDMDB R11, {R4-R6,R11,SP,PC} .text:00033E24 ; --------------------------------------------------------------------------- .text:00033E24 .text:00033E24 loc_33E24 ; CODE XREF: geteuid+58j .text:00033E24 BL __errno_location .text:00033E28 STR R5, [R0] .text:00033E2C MOV R3, #1 .text:00033E30 STR R3, [R6] .text:00033E34 .text:00033E34 loc_33E34 ; CODE XREF: geteuid+18j .text:00033E34 SVC 0x900031 .text:00033E38 MOV R4, R0 .text:00033E3C CMN R4, #0x1000 .text:00033E40 BLS loc_33E54 .text:00033E44 BL __errno_location .text:00033E48 RSB R3, R4, #0 .text:00033E4C MOV R4, 0xFFFFFFFF .text:00033E50 STR R3, [R0] .text:00033E54 .text:00033E54 loc_33E54 ; CODE XREF: geteuid+80j .text:00033E54 MOV R0, R4 .text:00033E58 LDMDB R11, {R4-R6,R11,SP,PC} .text:00033E58 ; End of function geteuid .text:00033E58 .text:00033E58 ; --------------------------------------------------------------------------- .text:00033E5C off_33E5C DCD __libc_missing_32bit_uids ; DATA XREF: geteuid+8r .text:00033E60 .text:00033E60 ; =============== S U B R O U T I N E ======================================= .text:00033E60 .text:00033E60 ; Attributes: bp-based frame .text:00033E60 .text:00033E60 WEAK getgid .text:00033E60 getgid ; CODE XREF: __libc_init_secure+2Cp .text:00033E60 MOV R12, SP ; Alternative name is '__getgid' .text:00033E64 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:00033E68 LDR R6, =__libc_missing_32bit_uids .text:00033E6C LDR R3, [R6] .text:00033E70 SUB R11, R12, #4 .text:00033E74 CMP R3, #0 .text:00033E78 BGT loc_33ED4 .text:00033E7C BL __errno_location .text:00033E80 LDR R5, [R0] .text:00033E84 SVC 0x9000C8 .text:00033E88 MOV R4, R0 .text:00033E8C CMN R4, #0x1000 .text:00033E90 BLS loc_33EA4 .text:00033E94 BL __errno_location .text:00033E98 RSB R3, R4, #0 .text:00033E9C MOV R4, 0xFFFFFFFF .text:00033EA0 STR R3, [R0] .text:00033EA4 .text:00033EA4 loc_33EA4 ; CODE XREF: getgid+30j .text:00033EA4 CMP R4, #0 .text:00033EA8 BEQ loc_33EBC .text:00033EAC BL __errno_location .text:00033EB0 LDR R3, [R0] .text:00033EB4 CMP R3, #0x26 .text:00033EB8 BEQ loc_33EC4 .text:00033EBC .text:00033EBC loc_33EBC ; CODE XREF: getgid+48j .text:00033EBC MOV R0, R4 .text:00033EC0 LDMDB R11, {R4-R6,R11,SP,PC} .text:00033EC4 ; --------------------------------------------------------------------------- .text:00033EC4 .text:00033EC4 loc_33EC4 ; CODE XREF: getgid+58j .text:00033EC4 BL __errno_location .text:00033EC8 STR R5, [R0] .text:00033ECC MOV R3, #1 .text:00033ED0 STR R3, [R6] .text:00033ED4 .text:00033ED4 loc_33ED4 ; CODE XREF: getgid+18j .text:00033ED4 SVC 0x90002F .text:00033ED8 MOV R4, R0 .text:00033EDC CMN R4, #0x1000 .text:00033EE0 BLS loc_33EF4 .text:00033EE4 BL __errno_location .text:00033EE8 RSB R3, R4, #0 .text:00033EEC MOV R4, 0xFFFFFFFF .text:00033EF0 STR R3, [R0] .text:00033EF4 .text:00033EF4 loc_33EF4 ; CODE XREF: getgid+80j .text:00033EF4 MOV R0, R4 .text:00033EF8 LDMDB R11, {R4-R6,R11,SP,PC} .text:00033EF8 ; End of function getgid .text:00033EF8 .text:00033EF8 ; --------------------------------------------------------------------------- .text:00033EFC off_33EFC DCD __libc_missing_32bit_uids ; DATA XREF: getgid+8r .text:00033F00 .text:00033F00 ; =============== S U B R O U T I N E ======================================= .text:00033F00 .text:00033F00 ; Attributes: bp-based frame .text:00033F00 .text:00033F00 WEAK getegid .text:00033F00 getegid ; CODE XREF: __libc_init_secure+24p .text:00033F00 MOV R12, SP ; Alternative name is '__getegid' .text:00033F04 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:00033F08 LDR R6, =__libc_missing_32bit_uids .text:00033F0C LDR R3, [R6] .text:00033F10 SUB R11, R12, #4 .text:00033F14 CMP R3, #0 .text:00033F18 BGT loc_33F74 .text:00033F1C BL __errno_location .text:00033F20 LDR R5, [R0] .text:00033F24 SVC 0x9000CA .text:00033F28 MOV R4, R0 .text:00033F2C CMN R4, #0x1000 .text:00033F30 BLS loc_33F44 .text:00033F34 BL __errno_location .text:00033F38 RSB R3, R4, #0 .text:00033F3C MOV R4, 0xFFFFFFFF .text:00033F40 STR R3, [R0] .text:00033F44 .text:00033F44 loc_33F44 ; CODE XREF: getegid+30j .text:00033F44 CMP R4, #0 .text:00033F48 BEQ loc_33F5C .text:00033F4C BL __errno_location .text:00033F50 LDR R3, [R0] .text:00033F54 CMP R3, #0x26 .text:00033F58 BEQ loc_33F64 .text:00033F5C .text:00033F5C loc_33F5C ; CODE XREF: getegid+48j .text:00033F5C MOV R0, R4 .text:00033F60 LDMDB R11, {R4-R6,R11,SP,PC} .text:00033F64 ; --------------------------------------------------------------------------- .text:00033F64 .text:00033F64 loc_33F64 ; CODE XREF: getegid+58j .text:00033F64 BL __errno_location .text:00033F68 STR R5, [R0] .text:00033F6C MOV R3, #1 .text:00033F70 STR R3, [R6] .text:00033F74 .text:00033F74 loc_33F74 ; CODE XREF: getegid+18j .text:00033F74 SVC 0x900032 .text:00033F78 MOV R4, R0 .text:00033F7C CMN R4, #0x1000 .text:00033F80 BLS loc_33F94 .text:00033F84 BL __errno_location .text:00033F88 RSB R3, R4, #0 .text:00033F8C MOV R4, 0xFFFFFFFF .text:00033F90 STR R3, [R0] .text:00033F94 .text:00033F94 loc_33F94 ; CODE XREF: getegid+80j .text:00033F94 MOV R0, R4 .text:00033F98 LDMDB R11, {R4-R6,R11,SP,PC} .text:00033F98 ; End of function getegid .text:00033F98 .text:00033F98 ; --------------------------------------------------------------------------- .text:00033F9C off_33F9C DCD __libc_missing_32bit_uids ; DATA XREF: getegid+8r .text:00033FA0 .text:00033FA0 ; =============== S U B R O U T I N E ======================================= .text:00033FA0 .text:00033FA0 ; Attributes: bp-based frame .text:00033FA0 .text:00033FA0 WEAK sysconf .text:00033FA0 sysconf ; CODE XREF: qsort+6Cp .text:00033FA0 ; qsort+98p .text:00033FA0 MOV R12, SP ; Alternative name is '__sysconf' .text:00033FA4 STMFD SP!, {R11,R12,LR,PC} .text:00033FA8 SUB R11, R12, #4 .text:00033FAC CMP R0, #0xB3 ; switch 180 cases .text:00033FB0 LDRLS PC, [PC,R0,LSL#2] ; switch jump .text:00033FB4 B loc_34288 ; jumptable 00033FB0 default case .text:00033FB4 ; --------------------------------------------------------------------------- .text:00033FB8 DCD loc_3429C, loc_342A4, loc_342B0, loc_342B8, loc_342C0 ; jump table for switch statement .text:00033FB8 DCD loc_342C8, loc_342D0, loc_342D8, loc_342D8, loc_342D8 .text:00033FB8 DCD loc_342D8, loc_342D8, loc_342D8, loc_34294, loc_342D8 .text:00033FB8 DCD loc_342D8, loc_342D8, loc_342D8, loc_342D8, loc_342D8 .text:00033FB8 DCD loc_34294, loc_342D8, loc_342D8, loc_34294, loc_34294 .text:00033FB8 DCD loc_342F8, loc_34294, loc_34294, loc_34294, loc_342E0 .text:00033FB8 DCD loc_342F0, loc_342B8, loc_34294, loc_34294, loc_34294 .text:00033FB8 DCD loc_34300, loc_34308, loc_34310, loc_34308, loc_34318 .text:00033FB8 DCD loc_34320, loc_34288, loc_342B8, loc_34310, loc_34328 .text:00033FB8 DCD loc_34310, loc_34334, loc_342D8, loc_342D8, loc_34294 .text:00033FB8 DCD loc_34288, loc_342D8, loc_342D8, loc_34294, loc_34294 .text:00033FB8 DCD loc_34294, loc_34294, loc_34294, loc_342D8, loc_342D8 .text:00033FB8 DCD loc_34294, loc_34294, loc_34294, loc_34294, loc_34294 .text:00033FB8 DCD loc_34294, loc_34294, loc_342D8, loc_342D8, loc_34344 .text:00033FB8 DCD loc_34344, loc_3434C, loc_3434C, loc_34354, loc_34344 .text:00033FB8 DCD loc_3435C, loc_34344, loc_342D8, loc_342D8, loc_342D8 .text:00033FB8 DCD loc_34294, loc_34294, loc_34294, loc_34364, loc_3436C .text:00033FB8 DCD loc_34374, loc_3437C, loc_34384, loc_3438C, loc_34394 .text:00033FB8 DCD loc_34354, loc_342D8, loc_342D8, loc_342D8, loc_342D8 .text:00033FB8 DCD loc_34294, loc_34334, loc_34294, loc_342D8, loc_342D8 .text:00033FB8 DCD loc_342D8, loc_3439C, loc_34320, loc_343A4, loc_34384 .text:00033FB8 DCD loc_343AC, loc_342B8, loc_342B8, loc_342C8, loc_342F8 .text:00033FB8 DCD loc_34328, loc_343B4, loc_343BC, loc_34328, loc_343C4 .text:00033FB8 DCD loc_34320, loc_34294, loc_34294, loc_343D0, loc_343DC .text:00033FB8 DCD loc_34310, loc_34384, loc_34384, loc_34384, loc_34384 .text:00033FB8 DCD loc_342D8, loc_342D8, loc_34294, loc_34294, loc_342D8 .text:00033FB8 DCD loc_342D8, loc_342D8, loc_34294, loc_343E4, loc_34294 .text:00033FB8 DCD loc_34294, loc_34294, loc_34294, loc_34294, loc_34294 .text:00033FB8 DCD loc_34294, loc_34294, loc_34294, loc_34294, loc_34294 .text:00033FB8 DCD loc_34294, loc_34294, loc_34294, loc_34294, loc_34294 .text:00033FB8 DCD loc_34294, loc_34294, loc_34294, loc_343E4, loc_343E4 .text:00033FB8 DCD loc_342D8, loc_34294, loc_342D8, loc_34294, loc_343E4 .text:00033FB8 DCD loc_34294, loc_34294, loc_34294, loc_34294, loc_343E4 .text:00033FB8 DCD loc_34294, loc_34294, loc_34294, loc_34294, loc_34294 .text:00033FB8 DCD loc_34294, loc_34288, loc_34294, loc_34294, loc_343F0 .text:00033FB8 DCD loc_34294, loc_342D8, loc_342D8, loc_34294, loc_34294 .text:00034288 ; --------------------------------------------------------------------------- .text:00034288 .text:00034288 loc_34288 ; CODE XREF: sysconf+10j .text:00034288 ; sysconf+14j .text:00034288 ; DATA XREF: ... .text:00034288 BL __errno_location ; jumptable 00033FB0 default case .text:0003428C MOV R3, #0x16 .text:00034290 STR R3, [R0] .text:00034294 .text:00034294 loc_34294 ; CODE XREF: sysconf+10j .text:00034294 ; DATA XREF: sysconf+18o .text:00034294 MOV R0, 0xFFFFFFFF ; jumptable 00033FB0 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:00034298 LDMDB R11, {R11,SP,PC} .text:0003429C ; --------------------------------------------------------------------------- .text:0003429C .text:0003429C loc_3429C ; CODE XREF: sysconf+10j .text:0003429C ; DATA XREF: sysconf+18o .text:0003429C MOV R0, #0x20000 ; jumptable 00033FB0 case 0 .text:000342A0 LDMDB R11, {R11,SP,PC} .text:000342A4 ; --------------------------------------------------------------------------- .text:000342A4 .text:000342A4 loc_342A4 ; CODE XREF: sysconf+10j .text:000342A4 ; DATA XREF: sysconf+18o .text:000342A4 MOV R0, 0x3E7 ; jumptable 00033FB0 case 1 .text:000342AC LDMDB R11, {R11,SP,PC} .text:000342B0 ; --------------------------------------------------------------------------- .text:000342B0 .text:000342B0 loc_342B0 ; CODE XREF: sysconf+10j .text:000342B0 ; DATA XREF: sysconf+18o .text:000342B0 BL __getclktck ; jumptable 00033FB0 case 2 .text:000342B4 LDMDB R11, {R11,SP,PC} .text:000342B8 ; --------------------------------------------------------------------------- .text:000342B8 .text:000342B8 loc_342B8 ; CODE XREF: sysconf+10j .text:000342B8 ; DATA XREF: sysconf+18o .text:000342B8 MOV R0, #0x20 ; jumptable 00033FB0 cases 3,31,42,106,107 .text:000342BC LDMDB R11, {R11,SP,PC} .text:000342C0 ; --------------------------------------------------------------------------- .text:000342C0 .text:000342C0 loc_342C0 ; CODE XREF: sysconf+10j .text:000342C0 ; DATA XREF: sysconf+18o .text:000342C0 BL getdtablesize ; jumptable 00033FB0 case 4 .text:000342C4 LDMDB R11, {R11,SP,PC} .text:000342C8 ; --------------------------------------------------------------------------- .text:000342C8 .text:000342C8 loc_342C8 ; CODE XREF: sysconf+10j .text:000342C8 ; DATA XREF: sysconf+18o .text:000342C8 MOV R0, #0x10 ; jumptable 00033FB0 cases 5,108 .text:000342CC LDMDB R11, {R11,SP,PC} .text:000342D0 ; --------------------------------------------------------------------------- .text:000342D0 .text:000342D0 loc_342D0 ; CODE XREF: sysconf+10j .text:000342D0 ; DATA XREF: sysconf+18o .text:000342D0 BL __tzname_max ; jumptable 00033FB0 case 6 .text:000342D4 LDMDB R11, {R11,SP,PC} .text:000342D8 ; --------------------------------------------------------------------------- .text:000342D8 .text:000342D8 loc_342D8 ; CODE XREF: sysconf+10j .text:000342D8 ; DATA XREF: sysconf+18o .text:000342D8 MOV R0, #1 ; jumptable 00033FB0 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:000342DC LDMDB R11, {R11,SP,PC} .text:000342E0 ; --------------------------------------------------------------------------- .text:000342E0 .text:000342E0 loc_342E0 ; CODE XREF: sysconf+10j .text:000342E0 ; DATA XREF: sysconf+18o .text:000342E0 MOV R0, 0x30B52 ; jumptable 00033FB0 case 29 .text:000342EC LDMDB R11, {R11,SP,PC} .text:000342F0 ; --------------------------------------------------------------------------- .text:000342F0 .text:000342F0 loc_342F0 ; CODE XREF: sysconf+10j .text:000342F0 ; DATA XREF: sysconf+18o .text:000342F0 BL getpagesize ; jumptable 00033FB0 case 30 .text:000342F4 LDMDB R11, {R11,SP,PC} .text:000342F8 ; --------------------------------------------------------------------------- .text:000342F8 .text:000342F8 loc_342F8 ; CODE XREF: sysconf+10j .text:000342F8 ; DATA XREF: sysconf+18o .text:000342F8 MOV R0, #0x14 ; jumptable 00033FB0 cases 25,109 .text:000342FC LDMDB R11, {R11,SP,PC} .text:00034300 ; --------------------------------------------------------------------------- .text:00034300 .text:00034300 loc_34300 ; CODE XREF: sysconf+10j .text:00034300 ; DATA XREF: sysconf+18o .text:00034300 MOV R0, #0x100 ; jumptable 00033FB0 case 35 .text:00034304 LDMDB R11, {R11,SP,PC} .text:00034308 ; --------------------------------------------------------------------------- .text:00034308 .text:00034308 loc_34308 ; CODE XREF: sysconf+10j .text:00034308 ; DATA XREF: sysconf+18o .text:00034308 MOV R0, #0x63 ; jumptable 00033FB0 cases 36,38 .text:0003430C LDMDB R11, {R11,SP,PC} .text:00034310 ; --------------------------------------------------------------------------- .text:00034310 .text:00034310 loc_34310 ; CODE XREF: sysconf+10j .text:00034310 ; DATA XREF: sysconf+18o .text:00034310 MOV R0, #0x800 ; jumptable 00033FB0 cases 37,43,45,120 .text:00034314 LDMDB R11, {R11,SP,PC} .text:00034318 ; --------------------------------------------------------------------------- .text:00034318 .text:00034318 loc_34318 ; CODE XREF: sysconf+10j .text:00034318 ; DATA XREF: sysconf+18o .text:00034318 MOV R0, #0x3E8 ; jumptable 00033FB0 case 39 .text:0003431C LDMDB R11, {R11,SP,PC} .text:00034320 ; --------------------------------------------------------------------------- .text:00034320 .text:00034320 loc_34320 ; CODE XREF: sysconf+10j .text:00034320 ; DATA XREF: sysconf+18o .text:00034320 MOV R0, #0xFF ; jumptable 00033FB0 cases 40,102,115 .text:00034324 LDMDB R11, {R11,SP,PC} .text:00034328 ; --------------------------------------------------------------------------- .text:00034328 .text:00034328 loc_34328 ; CODE XREF: sysconf+10j .text:00034328 ; DATA XREF: sysconf+18o .text:00034328 MOV R0, 0x7FFF ; jumptable 00033FB0 cases 44,110,113 .text:00034330 LDMDB R11, {R11,SP,PC} .text:00034334 ; --------------------------------------------------------------------------- .text:00034334 .text:00034334 loc_34334 ; CODE XREF: sysconf+10j .text:00034334 ; DATA XREF: sysconf+18o .text:00034334 MOV R0, 0x30A29 ; jumptable 00033FB0 cases 46,96 .text:00034340 LDMDB R11, {R11,SP,PC} .text:00034344 ; --------------------------------------------------------------------------- .text:00034344 .text:00034344 loc_34344 ; CODE XREF: sysconf+10j .text:00034344 ; DATA XREF: sysconf+18o .text:00034344 MOV R0, #0x400 ; jumptable 00033FB0 cases 69,70,74,76 .text:00034348 LDMDB R11, {R11,SP,PC} .text:0003434C ; --------------------------------------------------------------------------- .text:0003434C .text:0003434C loc_3434C ; CODE XREF: sysconf+10j .text:0003434C ; DATA XREF: sysconf+18o .text:0003434C MOV R0, #9 ; jumptable 00033FB0 cases 71,72 .text:00034350 LDMDB R11, {R11,SP,PC} .text:00034354 ; --------------------------------------------------------------------------- .text:00034354 .text:00034354 loc_34354 ; CODE XREF: sysconf+10j .text:00034354 ; DATA XREF: sysconf+18o .text:00034354 MOV R0, #4 ; jumptable 00033FB0 cases 73,90 .text:00034358 LDMDB R11, {R11,SP,PC} .text:0003435C ; --------------------------------------------------------------------------- .text:0003435C .text:0003435C loc_3435C ; CODE XREF: sysconf+10j .text:0003435C ; DATA XREF: sysconf+18o .text:0003435C MOV R0, #0x4000 ; jumptable 00033FB0 case 75 .text:00034360 LDMDB R11, {R11,SP,PC} .text:00034364 ; --------------------------------------------------------------------------- .text:00034364 .text:00034364 loc_34364 ; CODE XREF: sysconf+10j .text:00034364 ; DATA XREF: sysconf+18o .text:00034364 BL get_nprocs_conf ; jumptable 00033FB0 case 83 .text:00034368 LDMDB R11, {R11,SP,PC} .text:0003436C ; --------------------------------------------------------------------------- .text:0003436C .text:0003436C loc_3436C ; CODE XREF: sysconf+10j .text:0003436C ; DATA XREF: sysconf+18o .text:0003436C BL get_nprocs_conf ; jumptable 00033FB0 case 84 .text:00034370 LDMDB R11, {R11,SP,PC} .text:00034374 ; --------------------------------------------------------------------------- .text:00034374 .text:00034374 loc_34374 ; CODE XREF: sysconf+10j .text:00034374 ; DATA XREF: sysconf+18o .text:00034374 BL get_phys_pages ; jumptable 00033FB0 case 85 .text:00034378 LDMDB R11, {R11,SP,PC} .text:0003437C ; --------------------------------------------------------------------------- .text:0003437C .text:0003437C loc_3437C ; CODE XREF: sysconf+10j .text:0003437C ; DATA XREF: sysconf+18o .text:0003437C BL get_avphys_pages ; jumptable 00033FB0 case 86 .text:00034380 LDMDB R11, {R11,SP,PC} .text:00034384 ; --------------------------------------------------------------------------- .text:00034384 .text:00034384 loc_34384 ; CODE XREF: sysconf+10j .text:00034384 ; DATA XREF: sysconf+18o .text:00034384 MOV R0, 0x7FFFFFFF ; jumptable 00033FB0 cases 87,104,121-124 .text:00034388 LDMDB R11, {R11,SP,PC} .text:0003438C ; --------------------------------------------------------------------------- .text:0003438C .text:0003438C loc_3438C ; CODE XREF: sysconf+10j .text:0003438C ; DATA XREF: sysconf+18o .text:0003438C MOV R0, #0x2000 ; jumptable 00033FB0 case 88 .text:00034390 LDMDB R11, {R11,SP,PC} .text:00034394 ; --------------------------------------------------------------------------- .text:00034394 .text:00034394 loc_34394 ; CODE XREF: sysconf+10j .text:00034394 ; DATA XREF: sysconf+18o .text:00034394 MOV R0, #0x1F4 ; jumptable 00033FB0 case 89 .text:00034398 LDMDB R11, {R11,SP,PC} .text:0003439C ; --------------------------------------------------------------------------- .text:0003439C .text:0003439C loc_3439C ; CODE XREF: sysconf+10j .text:0003439C ; DATA XREF: sysconf+18o .text:0003439C MOV R0, #8 ; jumptable 00033FB0 case 101 .text:000343A0 LDMDB R11, {R11,SP,PC} .text:000343A4 ; --------------------------------------------------------------------------- .text:000343A4 .text:000343A4 loc_343A4 ; CODE XREF: sysconf+10j .text:000343A4 ; DATA XREF: sysconf+18o .text:000343A4 MOV R0, #0 ; jumptable 00033FB0 case 103 .text:000343A8 LDMDB R11, {R11,SP,PC} .text:000343AC ; --------------------------------------------------------------------------- .text:000343AC .text:000343AC loc_343AC ; CODE XREF: sysconf+10j .text:000343AC ; DATA XREF: sysconf+18o .text:000343AC MOV R0, #0x80000000 ; jumptable 00033FB0 case 105 .text:000343B0 LDMDB R11, {R11,SP,PC} .text:000343B4 ; --------------------------------------------------------------------------- .text:000343B4 .text:000343B4 loc_343B4 ; CODE XREF: sysconf+10j .text:000343B4 ; DATA XREF: sysconf+18o .text:000343B4 MOV R0, #0x7F ; jumptable 00033FB0 case 111 .text:000343B8 LDMDB R11, {R11,SP,PC} .text:000343BC ; --------------------------------------------------------------------------- .text:000343BC .text:000343BC loc_343BC ; CODE XREF: sysconf+10j .text:000343BC ; DATA XREF: sysconf+18o .text:000343BC MOV R0, 0xFFFFFF80 ; jumptable 00033FB0 case 112 .text:000343C0 LDMDB R11, {R11,SP,PC} .text:000343C4 ; --------------------------------------------------------------------------- .text:000343C4 .text:000343C4 loc_343C4 ; CODE XREF: sysconf+10j .text:000343C4 ; DATA XREF: sysconf+18o .text:000343C4 MOV R0, #0x80000000 ; jumptable 00033FB0 case 114 .text:000343C8 MOV R0, R0,ASR#16 .text:000343CC LDMDB R11, {R11,SP,PC} .text:000343D0 ; --------------------------------------------------------------------------- .text:000343D0 .text:000343D0 loc_343D0 ; CODE XREF: sysconf+10j .text:000343D0 ; DATA XREF: sysconf+18o .text:000343D0 MOV R0, 0xFFFF ; jumptable 00033FB0 case 118 .text:000343D8 LDMDB R11, {R11,SP,PC} .text:000343DC ; --------------------------------------------------------------------------- .text:000343DC .text:000343DC loc_343DC ; CODE XREF: sysconf+10j .text:000343DC ; DATA XREF: sysconf+18o .text:000343DC MOV R0, #0x1000 ; jumptable 00033FB0 case 119 .text:000343E0 LDMDB R11, {R11,SP,PC} .text:000343E4 ; --------------------------------------------------------------------------- .text:000343E4 .text:000343E4 loc_343E4 ; CODE XREF: sysconf+10j .text:000343E4 ; DATA XREF: sysconf+18o .text:000343E4 MOV R0, 0x310D0 ; jumptable 00033FB0 cases 133,153,154,159,164 .text:000343EC LDMDB R11, {R11,SP,PC} .text:000343F0 ; --------------------------------------------------------------------------- .text:000343F0 .text:000343F0 loc_343F0 ; CODE XREF: sysconf+10j .text:000343F0 ; DATA XREF: sysconf+18o .text:000343F0 MOV R0, 0xFFFFFFFF ; jumptable 00033FB0 case 174 .text:000343F4 LDMDB R11, {R11,SP,PC} .text:000343F4 ; End of function sysconf .text:000343F4 .text:000343F8 .text:000343F8 ; =============== S U B R O U T I N E ======================================= .text:000343F8 .text:000343F8 ; Attributes: bp-based frame .text:000343F8 .text:000343F8 EXPORT __getopt_clean_environment .text:000343F8 __getopt_clean_environment ; CODE XREF: init+88p .text:000343F8 .text:000343F8 var_88 = -0x88 .text:000343F8 var_40 = -0x40 .text:000343F8 .text:000343F8 MOV R12, SP .text:000343FC STMFD SP!, {R4-R8,R10-R12,LR,PC} .text:00034400 SUB R11, R12, #4 .text:00034404 MOV R10, R0 .text:00034408 LDR LR, =envvar_tail.60 ; "_GNU_nonoption_argv_flags_=" .text:0003440C SUB SP, SP, #0x64 .text:00034410 LDMIA LR!, {R0-R3} ; "_GNU_nonoption_argv_flags_=" .text:00034414 SUB R12, R11, #-var_40 .text:00034418 STMIA R12!, {R0-R3} .text:0003441C LDMIA LR, {R0-R2} .text:00034420 STMIA R12, {R0-R2} .text:00034424 SUB R7, R11, #-var_40 .text:00034428 MOV R5, R7 .text:0003442C LDR R6, =_itoa_lower_digits .text:00034430 BL getpid .text:00034434 MOV R4, R0 .text:00034438 SUB R8, R11, #-var_88 .text:0003443C .text:0003443C loc_3443C ; CODE XREF: __getopt_clean_environment+68j .text:0003443C MOV R0, R4 .text:00034440 MOV R1, #0xA .text:00034444 BL __umodsi3 .text:00034448 LDRB R3, [R6,R0] .text:0003444C STRB R3, [R5,#-1]! .text:00034450 MOV R0, R4 .text:00034454 MOV R1, #0xA .text:00034458 BL __udivsi3 .text:0003445C SUBS R4, R0, #0 .text:00034460 BNE loc_3443C .text:00034464 MOV R7, R5 .text:00034468 MOV R3, #0x5F .text:0003446C STRB R3, [R7,#-1]! .text:00034470 MOV R4, R10 .text:00034474 SUB R2, R7, #0x63 .text:00034478 LDR R3, [R4] .text:0003447C RSB R6, R2, R8 .text:00034480 CMP R3, #0 .text:00034484 BEQ locret_344E8 .text:00034488 LDR R8, =__getopt_nonoption_flags .text:0003448C .text:0003448C loc_3448C ; CODE XREF: __getopt_clean_environment:loc_344E4j .text:0003448C MOV R5, R4 .text:00034490 MOV R1, R7 .text:00034494 LDR R0, [R5],#4 .text:00034498 MOV R2, R6 .text:0003449C BL strncmp .text:000344A0 CMP R0, #0 .text:000344A4 BNE loc_344C8 .text:000344A8 MOV R0, R4 .text:000344AC LDR R3, [R0] .text:000344B0 ADD R3, R3, R6 .text:000344B4 STR R3, [R8] .text:000344B8 .text:000344B8 loc_344B8 ; CODE XREF: __getopt_clean_environment+CCj .text:000344B8 LDR R3, [R0,#4] .text:000344BC CMP R3, #0 .text:000344C0 STR R3, [R0],#4 .text:000344C4 BNE loc_344B8 .text:000344C8 .text:000344C8 loc_344C8 ; CODE XREF: __getopt_clean_environment+ACj .text:000344C8 MOV R4, R5 .text:000344CC LDR R3, [R4] .text:000344D0 CMP R3, #0 .text:000344D4 B loc_344E4 .text:000344D4 ; --------------------------------------------------------------------------- .text:000344D8 off_344D8 DCD envvar_tail.60 ; DATA XREF: __getopt_clean_environment+10r .text:000344D8 ; "_GNU_nonoption_argv_flags_=" .text:000344DC off_344DC DCD _itoa_lower_digits ; DATA XREF: __getopt_clean_environment+34r .text:000344E0 off_344E0 DCD __getopt_nonoption_flags .text:000344E0 ; DATA XREF: __getopt_clean_environment+90r .text:000344E4 ; --------------------------------------------------------------------------- .text:000344E4 .text:000344E4 loc_344E4 ; CODE XREF: __getopt_clean_environment+DCj .text:000344E4 BNE loc_3448C .text:000344E8 .text:000344E8 locret_344E8 ; CODE XREF: __getopt_clean_environment+8Cj .text:000344E8 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:000344E8 ; End of function __getopt_clean_environment .text:000344E8 .text:000344EC .text:000344EC ; =============== S U B R O U T I N E ======================================= .text:000344EC .text:000344EC ; Attributes: bp-based frame .text:000344EC .text:000344EC WEAK __xstat64 .text:000344EC __xstat64 ; CODE XREF: open_path+180p .text:000344EC ; opendir+60p .text:000344EC .text:000344EC var_68 = -0x68 .text:000344EC var_67 = -0x67 .text:000344EC var_64 = -0x64 .text:000344EC var_60 = -0x60 .text:000344EC var_5F = -0x5F .text:000344EC var_5E = -0x5E .text:000344EC var_5D = -0x5D .text:000344EC var_5C = -0x5C .text:000344EC var_5B = -0x5B .text:000344EC var_5A = -0x5A .text:000344EC var_59 = -0x59 .text:000344EC var_58 = -0x58 .text:000344EC var_57 = -0x57 .text:000344EC var_54 = -0x54 .text:000344EC var_50 = -0x50 .text:000344EC var_4C = -0x4C .text:000344EC var_48 = -0x48 .text:000344EC var_40 = -0x40 .text:000344EC var_38 = -0x38 .text:000344EC .text:000344EC MOV R12, SP .text:000344F0 STMFD SP!, {R4-R12,LR,PC} .text:000344F4 SUB R11, R12, #4 .text:000344F8 MOV R10, R0 .text:000344FC LDR R9, =__have_no_stat64 .text:00034500 MOV R4, R1 .text:00034504 LDR R3, [R9] .text:00034508 MOV R5, R2 .text:0003450C CMP R3, #0 .text:00034510 SUB SP, SP, #0x40 .text:00034514 BNE loc_345A4 .text:00034518 BL __errno_location .text:0003451C MOV R1, R5 .text:00034520 LDR R8, [R0] .text:00034524 MOV R0, R4 .text:00034528 SVC 0x9000C3 .text:0003452C MOV R7, R0 .text:00034530 CMN R7, #0x1000 .text:00034534 BLS loc_34548 .text:00034538 BL __errno_location .text:0003453C RSB R3, R7, #0 .text:00034540 MOV R7, 0xFFFFFFFF .text:00034544 STR R3, [R0] .text:00034548 .text:00034548 loc_34548 ; CODE XREF: __xstat64+48j .text:00034548 MOV R6, R7 .text:0003454C CMN R6, #1 .text:00034550 BNE loc_34564 .text:00034554 BL __errno_location .text:00034558 LDR R3, [R0] .text:0003455C CMP R3, #0x26 .text:00034560 BEQ loc_34594 .text:00034564 .text:00034564 loc_34564 ; CODE XREF: __xstat64+64j .text:00034564 CMP R6, #0 .text:00034568 BNE loc_3458C .text:0003456C LDR R0, [R5,#0xC] .text:00034570 MOV R2, #0x58 .text:00034574 LDR R3, [R5,R2] .text:00034578 ADD R1, R5, R2 .text:0003457C CMP R0, R3 .text:00034580 MOVNE R3, R0 .text:00034584 MOVNE R4, #0 .text:00034588 STMNEIA R1, {R3,R4} .text:0003458C .text:0003458C loc_3458C ; CODE XREF: __xstat64+7Cj .text:0003458C MOV R0, R7 .text:00034590 B locret_346E0 .text:00034594 ; --------------------------------------------------------------------------- .text:00034594 .text:00034594 loc_34594 ; CODE XREF: __xstat64+74j .text:00034594 BL __errno_location .text:00034598 STR R8, [R0] .text:0003459C MOV R3, #1 .text:000345A0 STR R3, [R9] .text:000345A4 .text:000345A4 loc_345A4 ; CODE XREF: __xstat64+28j .text:000345A4 SUB R1, R11, #-var_68 .text:000345A8 MOV R0, R4 .text:000345AC SVC 0x90006A .text:000345B0 MOV R4, R0 .text:000345B4 CMN R4, #0x1000 .text:000345B8 BLS loc_345CC .text:000345BC BL __errno_location .text:000345C0 RSB R3, R4, #0 .text:000345C4 MOV R4, 0xFFFFFFFF .text:000345C8 STR R3, [R0] .text:000345CC .text:000345CC loc_345CC ; CODE XREF: __xstat64+CCj .text:000345CC SUBS R6, R4, #0 .text:000345D0 BNE loc_346DC .text:000345D4 CMP R10, #1 .text:000345D8 BEQ loc_346C0 .text:000345DC CMP R10, #3 .text:000345E0 BNE loc_346C0 .text:000345E4 LDRB R1, [R11,#var_68] .text:000345E8 LDRB R2, [R11,#var_67] .text:000345EC ORR R3, R1, R2,LSL#8 .text:000345F0 MOV R4, #0 .text:000345F4 STMIA R5, {R3,R4} .text:000345F8 STR R6, [R5,#8] .text:000345FC LDR R1, [R11,#var_64] .text:00034600 ADD R2, R5, #0x58 .text:00034604 MOV R3, R1 .text:00034608 MOV R4, #0 .text:0003460C STMIA R2, {R3,R4} .text:00034610 STR R1, [R5,#0xC] .text:00034614 LDRB R3, [R11,#var_60] .text:00034618 LDRB R2, [R11,#var_5F] .text:0003461C ORR R3, R3, R2,LSL#8 .text:00034620 STR R3, [R5,#0x10] .text:00034624 LDRB R3, [R11,#var_5D] .text:00034628 LDRB R2, [R11,#var_5E] .text:0003462C ORR R2, R2, R3,LSL#8 .text:00034630 STR R2, [R5,#0x14] .text:00034634 LDRB R2, [R11,#var_5B] .text:00034638 LDRB R3, [R11,#var_5C] .text:0003463C ORR R3, R3, R2,LSL#8 .text:00034640 STR R3, [R5,#0x18] .text:00034644 LDRB R2, [R11,#var_5A] .text:00034648 LDRB R12, [R11,#var_58] .text:0003464C LDRB R0, [R11,#var_57] .text:00034650 LDRB R1, [R11,#var_59] .text:00034654 ORR R3, R12, R0,LSL#8 .text:00034658 ORR R2, R2, R1,LSL#8 .text:0003465C STR R2, [R5,#0x1C] .text:00034660 MOV R4, #0 .text:00034664 ADD R2, R5, #0x20 .text:00034668 STMIA R2, {R3,R4} .text:0003466C STR R6, [R5,#0x28] .text:00034670 LDR R3, [R11,#var_54] .text:00034674 ADD R1, R5, #0x2C .text:00034678 MOV R4, #0 .text:0003467C STMIA R1, {R3,R4} .text:00034680 LDR R2, [R11,#var_50] .text:00034684 STR R2, [R5,#0x34] .text:00034688 LDR R3, [R11,#var_4C] .text:0003468C ADD R1, R5, #0x38 .text:00034690 MOV R4, #0 .text:00034694 STMIA R1, {R3,R4} .text:00034698 LDR R2, [R11,#var_48] .text:0003469C STR R6, [R5,#0x44] .text:000346A0 STR R2, [R5,#0x40] .text:000346A4 LDR R3, [R11,#var_40] .text:000346A8 STR R3, [R5,#0x48] .text:000346AC STR R6, [R5,#0x4C] .text:000346B0 STR R6, [R5,#0x54] .text:000346B4 LDR R3, [R11,#var_38] .text:000346B8 STR R3, [R5,#0x50] .text:000346BC B loc_346D8 .text:000346C0 ; --------------------------------------------------------------------------- .text:000346C0 .text:000346C0 loc_346C0 ; CODE XREF: __xstat64+ECj .text:000346C0 ; __xstat64+F4j .text:000346C0 MOV R6, 0xFFFFFFFF .text:000346C4 BL __errno_location .text:000346C8 MOV R3, #0x16 .text:000346CC STR R3, [R0] .text:000346D0 B loc_346DC .text:000346D0 ; --------------------------------------------------------------------------- .text:000346D4 off_346D4 DCD __have_no_stat64 ; DATA XREF: __xstat64+10r .text:000346D8 ; --------------------------------------------------------------------------- .text:000346D8 .text:000346D8 loc_346D8 ; CODE XREF: __xstat64+1D0j .text:000346D8 MOV R6, #0 .text:000346DC .text:000346DC loc_346DC ; CODE XREF: __xstat64+E4j .text:000346DC ; __xstat64+1E4j .text:000346DC MOV R0, R6 .text:000346E0 .text:000346E0 locret_346E0 ; CODE XREF: __xstat64+A4j .text:000346E0 LDMDB R11, {R4-R11,SP,PC} .text:000346E0 ; End of function __xstat64 .text:000346E0 .text:000346E4 .text:000346E4 ; =============== S U B R O U T I N E ======================================= .text:000346E4 .text:000346E4 ; Attributes: bp-based frame .text:000346E4 .text:000346E4 WEAK open64 .text:000346E4 open64 ; CODE XREF: _IO_new_file_fopen+11Cp .text:000346E4 ; _IO_file_open:loc_31E98p ... .text:000346E4 .text:000346E4 varg_r1 = 4 .text:000346E4 varg_r2 = 8 .text:000346E4 varg_r3 = 0xC .text:000346E4 .text:000346E4 MOV R12, SP ; Alternative name is '__open64' .text:000346E8 STMFD SP!, {R1-R3} .text:000346EC STMFD SP!, {R11,R12,LR,PC} .text:000346F0 SUB R11, R12, #0x10 .text:000346F4 LDR R1, [R11,#varg_r1] .text:000346F8 MOV R2, #0 .text:000346FC TST R1, #0x40 .text:00034700 LDRNE R2, [R11,#varg_r2] .text:00034704 ORR R1, R1, #0x20000 .text:00034708 BL open .text:0003470C LDMDB R11, {R11,SP,PC} .text:0003470C ; End of function open64 .text:0003470C .text:00034710 .text:00034710 ; =============== S U B R O U T I N E ======================================= .text:00034710 .text:00034710 .text:00034710 WEAK lseek .text:00034710 lseek ; CODE XREF: _dl_map_object_from_fd+1ECp .text:00034710 ; open_verify+298p ... .text:00034710 SVC 0x900013 ; Alternative name is '__lseek' .text:00034714 CMN R0, #0x1000 .text:00034718 MOVCC PC, LR .text:0003471C B __syscall_error .text:0003471C ; End of function lseek .text:0003471C .text:00034720 .text:00034720 ; =============== S U B R O U T I N E ======================================= .text:00034720 .text:00034720 .text:00034720 WEAK access .text:00034720 access ; CODE XREF: non_dynamic_init+108p .text:00034720 SVC 0x900021 ; Alternative name is '__access' .text:00034724 CMN R0, #0x1000 .text:00034728 MOVCC PC, LR .text:0003472C B __syscall_error .text:0003472C ; End of function access .text:0003472C .text:00034730 .text:00034730 ; =============== S U B R O U T I N E ======================================= .text:00034730 .text:00034730 ; Attributes: bp-based frame .text:00034730 .text:00034730 WEAK getcwd .text:00034730 getcwd ; CODE XREF: _dl_new_object+218p .text:00034730 ; __dcigettext+1E8p ... .text:00034730 MOV R12, SP .text:00034734 STMFD SP!, {R4-R12,LR,PC} .text:00034738 SUB R11, R12, #4 .text:0003473C MOV R6, R0 .text:00034740 LDR R2, =no_syscall_getcwd .text:00034744 MOV R7, R1 .text:00034748 LDR R3, [R2] .text:0003474C MOV R8, R7 .text:00034750 CMP R3, #0 .text:00034754 BEQ loc_34770 .text:00034758 LDR R3, =have_new_dcache .text:0003475C LDR R2, [R3] .text:00034760 CMP R2, #0 .text:00034764 BNE loc_34770 .text:00034768 BL generic_getcwd .text:0003476C LDMDB R11, {R4-R11,SP,PC} .text:00034770 ; --------------------------------------------------------------------------- .text:00034770 .text:00034770 loc_34770 ; CODE XREF: getcwd+24j .text:00034770 ; getcwd+34j .text:00034770 CMP R7, #0 .text:00034774 BNE loc_3479C .text:00034778 CMP R6, #0 .text:0003477C BEQ loc_34794 .text:00034780 BL __errno_location .text:00034784 MOV R3, #0x16 .text:00034788 STR R3, [R0] .text:0003478C .text:0003478C loc_3478C ; CODE XREF: getcwd+84j .text:0003478C ; getcwd+144j ... .text:0003478C MOV R0, #0 .text:00034790 LDMDB R11, {R4-R11,SP,PC} .text:00034794 ; --------------------------------------------------------------------------- .text:00034794 .text:00034794 loc_34794 ; CODE XREF: getcwd+4Cj .text:00034794 MOV R8, 0xFFF .text:0003479C .text:0003479C loc_3479C ; CODE XREF: getcwd+44j .text:0003479C CMP R6, #0 .text:000347A0 BNE loc_347B8 .text:000347A4 MOV R0, R8 .text:000347A8 BL malloc .text:000347AC SUBS R5, R0, #0 .text:000347B0 BNE loc_347BC .text:000347B4 B loc_3478C .text:000347B8 ; --------------------------------------------------------------------------- .text:000347B8 .text:000347B8 loc_347B8 ; CODE XREF: getcwd+70j .text:000347B8 MOV R5, R6 .text:000347BC .text:000347BC loc_347BC ; CODE XREF: getcwd+80j .text:000347BC BL __errno_location .text:000347C0 LDR R3, =no_syscall_getcwd .text:000347C4 LDR R10, [R3] .text:000347C8 LDR R9, [R0] .text:000347CC CMP R10, #0 .text:000347D0 BNE loc_3488C .text:000347D4 MOV R1, R8 .text:000347D8 MOV R0, R5 .text:000347DC SVC 0x9000B7 .text:000347E0 MOV R4, R0 .text:000347E4 CMN R4, #0x1000 .text:000347E8 BLS loc_347FC .text:000347EC BL __errno_location .text:000347F0 RSB R3, R4, #0 .text:000347F4 MOV R4, 0xFFFFFFFF .text:000347F8 STR R3, [R0] .text:000347FC .text:000347FC loc_347FC ; CODE XREF: getcwd+B8j .text:000347FC CMP R4, #0 .text:00034800 BLT loc_34830 .text:00034804 CMP R6, #0 .text:00034808 CMPEQ R7, #0 .text:0003480C BNE loc_34820 .text:00034810 MOV R0, R5 .text:00034814 MOV R1, R4 .text:00034818 .text:00034818 loc_34818 ; CODE XREF: getcwd+1C0j .text:00034818 BL realloc .text:0003481C MOV R6, R0 .text:00034820 .text:00034820 loc_34820 ; CODE XREF: getcwd+DCj .text:00034820 ; getcwd+1B4j .text:00034820 CMP R6, #0 .text:00034824 MOVNE R0, R6 .text:00034828 MOVEQ R0, R5 .text:0003482C LDMDB R11, {R4-R11,SP,PC} .text:00034830 ; --------------------------------------------------------------------------- .text:00034830 .text:00034830 loc_34830 ; CODE XREF: getcwd+D0j .text:00034830 BL __errno_location .text:00034834 LDR R3, [R0] .text:00034838 CMP R3, #0x26 .text:0003483C BNE loc_34858 .text:00034840 LDR R3, =no_syscall_getcwd .text:00034844 MOV R2, #1 .text:00034848 STR R2, [R3] .text:0003484C LDR R3, =have_new_dcache .text:00034850 STR R2, [R3] .text:00034854 B loc_34884 .text:00034858 ; --------------------------------------------------------------------------- .text:00034858 .text:00034858 loc_34858 ; CODE XREF: getcwd+10Cj .text:00034858 BL __errno_location .text:0003485C LDR R3, [R0] .text:00034860 CMP R3, #0x22 .text:00034864 BNE loc_34870 .text:00034868 CMP R6, #0 .text:0003486C BEQ loc_34884 .text:00034870 .text:00034870 loc_34870 ; CODE XREF: getcwd+134j .text:00034870 CMP R6, #0 .text:00034874 BNE loc_3478C .text:00034878 MOV R0, R5 .text:0003487C BL free .text:00034880 B loc_3478C .text:00034884 ; --------------------------------------------------------------------------- .text:00034884 .text:00034884 loc_34884 ; CODE XREF: getcwd+124j .text:00034884 ; getcwd+13Cj .text:00034884 BL __errno_location .text:00034888 STR R9, [R0] .text:0003488C .text:0003488C loc_3488C ; CODE XREF: getcwd+A0j .text:0003488C MOV R1, R5 .text:00034890 SUB R4, R8, #1 .text:00034894 LDR R0, =aProcSelfCwd ; "/proc/self/cwd" .text:00034898 MOV R2, R4 .text:0003489C BL readlink .text:000348A0 MOV R1, R0 .text:000348A4 CMN R1, #1 .text:000348A8 BEQ loc_34900 .text:000348AC LDRB R3, [R5] .text:000348B0 CMP R3, #0x2F .text:000348B4 BNE loc_348F4 .text:000348B8 CMP R1, R4 .text:000348BC BCC loc_348D4 .text:000348C0 CMP R6, #0 .text:000348C4 BNE loc_3478C .text:000348C8 MOV R0, R5 .text:000348CC BL free .text:000348D0 B loc_3478C .text:000348D4 ; --------------------------------------------------------------------------- .text:000348D4 .text:000348D4 loc_348D4 ; CODE XREF: getcwd+18Cj .text:000348D4 CMP R6, #0 .text:000348D8 CMPEQ R7, #0 .text:000348DC MOV R3, #0 .text:000348E0 STRB R3, [R5,R1] .text:000348E4 BNE loc_34820 .text:000348E8 MOV R0, R5 .text:000348EC ADD R1, R1, #1 .text:000348F0 B loc_34818 .text:000348F4 ; --------------------------------------------------------------------------- .text:000348F4 .text:000348F4 loc_348F4 ; CODE XREF: getcwd+184j .text:000348F4 LDR R2, =have_new_dcache .text:000348F8 MOV R3, #0 .text:000348FC STR R3, [R2] .text:00034900 .text:00034900 loc_34900 ; CODE XREF: getcwd+178j .text:00034900 BL __errno_location .text:00034904 LDR R3, [R0] .text:00034908 CMP R3, #0xD .text:0003490C BEQ loc_34928 .text:00034910 BL __errno_location .text:00034914 LDR R3, [R0] .text:00034918 CMP R3, #0x24 .text:0003491C LDRNE R2, =have_new_dcache .text:00034920 MOVNE R3, #0 .text:00034924 STRNE R3, [R2] .text:00034928 .text:00034928 loc_34928 ; CODE XREF: getcwd+1DCj .text:00034928 BL __errno_location .text:0003492C CMP R7, #0 .text:00034930 STR R9, [R0] .text:00034934 BNE loc_34944 .text:00034938 MOV R0, R5 .text:0003493C MOV R5, R7 .text:00034940 BL free .text:00034944 .text:00034944 loc_34944 ; CODE XREF: getcwd+204j .text:00034944 MOV R0, R5 .text:00034948 MOV R1, R7 .text:0003494C BL generic_getcwd .text:00034950 MOV R4, R0 .text:00034954 CMP R4, #0 .text:00034958 CMPEQ R6, #0 .text:0003495C BNE loc_34970 .text:00034960 CMP R7, #0 .text:00034964 BEQ loc_34970 .text:00034968 MOV R0, R5 .text:0003496C BL free .text:00034970 .text:00034970 loc_34970 ; CODE XREF: getcwd+22Cj .text:00034970 ; getcwd+234j .text:00034970 MOV R0, R4 .text:00034974 LDMDB R11, {R4-R11,SP,PC} .text:00034974 ; End of function getcwd .text:00034974 .text:00034974 ; --------------------------------------------------------------------------- .text:00034978 off_34978 DCD no_syscall_getcwd ; DATA XREF: getcwd+10r .text:00034978 ; getcwd+90r ... .text:0003497C off_3497C DCD have_new_dcache ; DATA XREF: getcwd+28r .text:0003497C ; getcwd+11Cr ... .text:00034980 off_34980 DCD aProcSelfCwd ; DATA XREF: getcwd+164r .text:00034980 ; "/proc/self/cwd" .text:00034984 .text:00034984 ; =============== S U B R O U T I N E ======================================= .text:00034984 .text:00034984 ; Attributes: bp-based frame .text:00034984 .text:00034984 generic_getcwd ; CODE XREF: getcwd+38p .text:00034984 ; getcwd+21Cp .text:00034984 .text:00034984 var_C0 = -0xC0 .text:00034984 var_BC = -0xBC .text:00034984 var_B8 = -0xB8 .text:00034984 var_B4 = -0xB4 .text:00034984 var_B0 = -0xB0 .text:00034984 var_AC = -0xAC .text:00034984 var_A8 = -0xA8 .text:00034984 var_A4 = -0xA4 .text:00034984 var_A0 = -0xA0 .text:00034984 var_9C = -0x9C .text:00034984 var_98 = -0x98 .text:00034984 var_94 = -0x94 .text:00034984 var_90 = -0x90 .text:00034984 var_8C = -0x8C .text:00034984 var_88 = -0x88 .text:00034984 var_84 = -0x84 .text:00034984 var_80 = -0x80 .text:00034984 var_74 = -0x74 .text:00034984 var_28 = -0x28 .text:00034984 .text:00034984 MOV R12, SP .text:00034988 STMFD SP!, {R4-R12,LR,PC} .text:0003498C SUB R11, R12, #4 .text:00034990 MOV R2, #0xE0 .text:00034994 SUB SP, SP, #0x98 .text:00034998 STR R2, [R11,#var_94] .text:0003499C LDR R3, =byte_589E9 .text:000349A0 STR R3, [R11,#var_8C] .text:000349A4 STR R0, [R11,#var_84] .text:000349A8 STR R1, [R11,#var_88] .text:000349AC BL __errno_location .text:000349B0 SUB R1, R11, #-var_8C .text:000349B4 LDMIA R1, {R1,R12} .text:000349B8 SUB R1, R1, #0xE1 .text:000349BC STR R1, [R11,#var_90] .text:000349C0 CMP R12, #0 .text:000349C4 STR R12, [R11,#var_B4] .text:000349C8 LDR R0, [R0] .text:000349CC STR R0, [R11,#var_B0] .text:000349D0 BNE loc_349F8 .text:000349D4 LDR R2, [R11,#var_84] .text:000349D8 CMP R2, #0 .text:000349DC BEQ loc_349F0 .text:000349E0 BL __errno_location .text:000349E4 MOV R3, #0x16 .text:000349E8 STR R3, [R0] .text:000349EC B loc_34EB0 .text:000349F0 ; --------------------------------------------------------------------------- .text:000349F0 .text:000349F0 loc_349F0 ; CODE XREF: generic_getcwd+58j .text:000349F0 MOV R3, #0x1000 .text:000349F4 STR R3, [R11,#var_B4] .text:000349F8 .text:000349F8 loc_349F8 ; CODE XREF: generic_getcwd+4Cj .text:000349F8 LDR R12, [R11,#var_84] .text:000349FC CMP R12, #0 .text:00034A00 BNE loc_34A1C .text:00034A04 LDR R0, [R11,#var_B4] .text:00034A08 BL malloc .text:00034A0C CMP R0, #0 .text:00034A10 STR R0, [R11,#var_A8] .text:00034A14 BNE loc_34A24 .text:00034A18 B loc_34EB4 .text:00034A1C ; --------------------------------------------------------------------------- .text:00034A1C .text:00034A1C loc_34A1C ; CODE XREF: generic_getcwd+7Cj .text:00034A1C LDR R1, [R11,#var_84] .text:00034A20 STR R1, [R11,#var_A8] .text:00034A24 .text:00034A24 loc_34A24 ; CODE XREF: generic_getcwd+90j .text:00034A24 LDR R2, [R11,#var_A8] .text:00034A28 LDR R3, [R11,#var_B4] .text:00034A2C ADD R2, R2, R3 .text:00034A30 STR R2, [R11,#var_AC] .text:00034A34 MOV R3, #0 .text:00034A38 STRB R3, [R2,#-1]! .text:00034A3C STR R2, [R11,#var_AC] .text:00034A40 MOV R0, #3 .text:00034A44 SUB R4, R11, #-var_80 .text:00034A48 LDR R1, =a_ ; "." .text:00034A4C MOV R2, R4 .text:00034A50 BL _lxstat .text:00034A54 CMP R0, #0 .text:00034A58 BLT loc_34E9C .text:00034A5C LDR R12, [R11,#var_74] .text:00034A60 SUB R4, R11, #-var_80 .text:00034A64 LDMIA R4, {R6,R7} .text:00034A68 STR R12, [R11,#var_A4] .text:00034A6C MOV R0, #3 .text:00034A70 LDR R1, =asc_589F0 ; "/" .text:00034A74 MOV R2, R4 .text:00034A78 BL _lxstat .text:00034A7C CMP R0, #0 .text:00034A80 BLT loc_34E9C .text:00034A84 LDMIA R4, {R2,R3} .text:00034A88 SUB R12, R11, #-var_A0 .text:00034A8C STMIB R12, {R2,R3} .text:00034A90 LDR R1, [R11,#var_74] .text:00034A94 STR R1, [R11,#var_A0] .text:00034A98 B loc_34D94 .text:00034A9C ; --------------------------------------------------------------------------- .text:00034A9C .text:00034A9C loc_34A9C ; CODE XREF: generic_getcwd+440j .text:00034A9C LDR R2, [R11,#var_8C] .text:00034AA0 LDR R3, [R11,#var_90] .text:00034AA4 CMP R2, R3 .text:00034AA8 BNE loc_34B30 .text:00034AAC LDR R12, =dots.120 ; "../../../../../../../../../../../../../"... .text:00034AB0 CMP R3, R12 .text:00034AB4 BNE loc_34AE8 .text:00034AB8 LDR R1, [R11,#var_94] .text:00034ABC MOV R4, R1,LSL#1 .text:00034AC0 ORR R0, R4, #1 .text:00034AC4 BL malloc .text:00034AC8 SUBS R5, R0, #0 .text:00034ACC BEQ loc_34E84 .text:00034AD0 LDR R1, [R11,#var_90] .text:00034AD4 LDR R2, [R11,#var_94] .text:00034AD8 MOV R0, R5 .text:00034ADC BL mempcpy .text:00034AE0 STR R0, [R11,#var_8C] .text:00034AE4 B loc_34B10 .text:00034AE8 ; --------------------------------------------------------------------------- .text:00034AE8 .text:00034AE8 loc_34AE8 ; CODE XREF: generic_getcwd+130j .text:00034AE8 LDR R2, [R11,#var_94] .text:00034AEC LDR R0, [R11,#var_90] .text:00034AF0 MOV R4, R2,LSL#1 .text:00034AF4 ORR R1, R4, #1 .text:00034AF8 BL realloc .text:00034AFC SUBS R5, R0, #0 .text:00034B00 BEQ loc_34E84 .text:00034B04 LDR R3, [R11,#var_94] .text:00034B08 ADD R3, R5, R3 .text:00034B0C STR R3, [R11,#var_8C] .text:00034B10 .text:00034B10 loc_34B10 ; CODE XREF: generic_getcwd+160j .text:00034B10 LDR R2, [R11,#var_94] .text:00034B14 STR R4, [R11,#var_94] .text:00034B18 STR R5, [R11,#var_90] .text:00034B1C LDR R0, [R11,#var_8C] .text:00034B20 MOV R1, R5 .text:00034B24 BL mempcpy .text:00034B28 MOV R3, #0 .text:00034B2C STRB R3, [R0] .text:00034B30 .text:00034B30 loc_34B30 ; CODE XREF: generic_getcwd+124j .text:00034B30 LDR R12, [R11,#var_8C] .text:00034B34 SUB R12, R12, #3 .text:00034B38 STR R12, [R11,#var_8C] .text:00034B3C MOV R0, #3 .text:00034B40 SUB R2, R11, #-var_80 .text:00034B44 MOV R1, R12 .text:00034B48 BL _lxstat .text:00034B4C CMP R0, #0 .text:00034B50 BLT loc_34E84 .text:00034B54 SUB R3, R11, #-var_80 .text:00034B58 LDMIA R3, {R8,R9} .text:00034B5C MOV R1, #0 .text:00034B60 STR R1, [R11,#var_C0] .text:00034B64 LDR R2, [R11,#var_74] .text:00034B68 CMP R8, R6 .text:00034B6C STR R2, [R11,#var_BC] .text:00034B70 BNE loc_34B7C .text:00034B74 CMP R9, R7 .text:00034B78 BEQ loc_34B84 .text:00034B7C .text:00034B7C loc_34B7C ; CODE XREF: generic_getcwd+1ECj .text:00034B7C MOV R3, #1 .text:00034B80 STR R3, [R11,#var_C0] .text:00034B84 .text:00034B84 loc_34B84 ; CODE XREF: generic_getcwd+1F4j .text:00034B84 LDR R0, [R11,#var_8C] .text:00034B88 BL opendir .text:00034B8C CMP R0, #0 .text:00034B90 STR R0, [R11,#var_B8] .text:00034B94 BEQ loc_34E84 .text:00034B98 BL __errno_location .text:00034B9C MOV R3, #0 .text:00034BA0 STR R3, [R0] .text:00034BA4 SUB R1, R11, #-var_94 .text:00034BA8 LDMIA R1, {R1,R12} .text:00034BAC LDR R3, [R11,#var_8C] .text:00034BB0 ADD R2, R12, R1 .text:00034BB4 RSB R10, R3, R2 .text:00034BB8 B loc_34CB0 .text:00034BB8 ; --------------------------------------------------------------------------- .text:00034BBC off_34BBC DCD byte_589E9 ; DATA XREF: generic_getcwd+18r .text:00034BC0 off_34BC0 DCD a_ ; DATA XREF: generic_getcwd+C4r .text:00034BC0 ; "." .text:00034BC4 off_34BC4 DCD asc_589F0 ; DATA XREF: generic_getcwd+ECr .text:00034BC4 ; "/" .text:00034BC8 off_34BC8 DCD dots.120 ; DATA XREF: generic_getcwd+128r .text:00034BC8 ; "../../../../../../../../../../../../../"... .text:00034BCC ; --------------------------------------------------------------------------- .text:00034BCC .text:00034BCC loc_34BCC ; CODE XREF: generic_getcwd+338j .text:00034BCC LDRB R3, [R4,#0xB] .text:00034BD0 CMP R3, #0x2E .text:00034BD4 BNE loc_34BF4 .text:00034BD8 LDRB R3, [R4,#0xC] .text:00034BDC CMP R3, #0 .text:00034BE0 BEQ loc_34CB0 .text:00034BE4 LDR R3, [R4,#0xC] .text:00034BE8 MOV R3, R3,LSL#16 .text:00034BEC CMP R3, #0x2E0000 .text:00034BF0 BEQ loc_34CB0 .text:00034BF4 .text:00034BF4 loc_34BF4 ; CODE XREF: generic_getcwd+250j .text:00034BF4 LDR R12, [R11,#var_C0] .text:00034BF8 CMP R12, #0 .text:00034BFC BNE loc_34C10 .text:00034C00 LDR R3, [R4] .text:00034C04 LDR R1, [R11,#var_A4] .text:00034C08 CMP R3, R1 .text:00034C0C BNE loc_34CB0 .text:00034C10 .text:00034C10 loc_34C10 ; CODE XREF: generic_getcwd+278j .text:00034C10 LDRB R3, [R4,#8] .text:00034C14 MOV R2, R10 .text:00034C18 LDRB R0, [R4,#9] .text:00034C1C MOV R5, SP .text:00034C20 LDR R1, [R11,#var_8C] .text:00034C24 ORR R3, R3, R0,LSL#8 .text:00034C28 SUB R3, R3, #0xA .text:00034C2C ADD R3, R10, R3 .text:00034C30 BIC R3, R3, #0xE0000000 .text:00034C34 ADD R3, R3, #3 .text:00034C38 BIC R3, R3, #0xC0000003 .text:00034C3C RSB SP, R3, SP .text:00034C40 MOV R0, SP .text:00034C44 BL mempcpy .text:00034C48 MOV R3, #0x2F .text:00034C4C STRB R3, [R0],#1 .text:00034C50 ADD R1, R4, #0xB .text:00034C54 BL strcpy .text:00034C58 MOV R0, #3 .text:00034C5C MOV R1, SP .text:00034C60 SUB R2, R11, #-var_80 .text:00034C64 BL _lxstat .text:00034C68 CMP R0, #0 .text:00034C6C BLT loc_34CAC .text:00034C70 MOV R2, 0xFFFFFFA8 .text:00034C74 SUB R12, R11, #-var_28 .text:00034C78 LDR R3, [R12,R2] .text:00034C7C ADD R2, R2, R11 .text:00034C80 CMP R3, R6 .text:00034C84 SUB R3, R2, #0x28 .text:00034C88 BNE loc_34CAC .text:00034C8C LDR R3, [R3,#4] .text:00034C90 CMP R3, R7 .text:00034C94 BNE loc_34CAC .text:00034C98 LDR R3, [R11,#var_74] .text:00034C9C LDR R1, [R11,#var_A4] .text:00034CA0 MOV SP, R5 .text:00034CA4 CMP R3, R1 .text:00034CA8 BEQ loc_34CC0 .text:00034CAC .text:00034CAC loc_34CAC ; CODE XREF: generic_getcwd+2E8j .text:00034CAC ; generic_getcwd+304j ... .text:00034CAC MOV SP, R5 .text:00034CB0 .text:00034CB0 loc_34CB0 ; CODE XREF: generic_getcwd+234j .text:00034CB0 ; generic_getcwd+25Cj ... .text:00034CB0 LDR R0, [R11,#var_B8] .text:00034CB4 BL readdir .text:00034CB8 SUBS R4, R0, #0 .text:00034CBC BNE loc_34BCC .text:00034CC0 .text:00034CC0 loc_34CC0 ; CODE XREF: generic_getcwd+324j .text:00034CC0 CMP R4, #0 .text:00034CC4 BEQ loc_34E64 .text:00034CC8 ADD R10, R4, #0xB .text:00034CCC MOV R0, R10 .text:00034CD0 BL strlen .text:00034CD4 SUB R2, R11, #-var_AC .text:00034CD8 LDMIA R2, {R2,R3} .text:00034CDC MOV R6, R0 .text:00034CE0 RSB R7, R3, R2 .text:00034CE4 CMP R7, R6 .text:00034CE8 BHI loc_34D50 .text:00034CEC LDR R12, [R11,#var_88] .text:00034CF0 CMP R12, #0 .text:00034CF4 BNE loc_34E30 .text:00034CF8 LDR R5, [R11,#var_B4] .text:00034CFC CMP R5, R6 .text:00034D00 MOVCS R3, R5 .text:00034D04 MOVCC R3, R6 .text:00034D08 MOV R3, R3,LSL#1 .text:00034D0C STR R3, [R11,#var_B4] .text:00034D10 LDR R0, [R11,#var_A8] .text:00034D14 MOV R1, R3 .text:00034D18 BL realloc .text:00034D1C SUBS R4, R0, #0 .text:00034D20 BEQ loc_34E48 .text:00034D24 LDR R1, [R11,#var_B4] .text:00034D28 LDR R3, [R11,#var_A8] .text:00034D2C LDR R12, [R11,#var_AC] .text:00034D30 ADD R0, R4, R1 .text:00034D34 ADD R2, R3, R5 .text:00034D38 RSB R2, R12, R2 .text:00034D3C RSB R0, R2, R0 .text:00034D40 ADD R1, R4, R7 .text:00034D44 BL memcpy .text:00034D48 STR R0, [R11,#var_AC] .text:00034D4C STR R4, [R11,#var_A8] .text:00034D50 .text:00034D50 loc_34D50 ; CODE XREF: generic_getcwd+364j .text:00034D50 LDR R1, [R11,#var_AC] .text:00034D54 RSB R1, R6, R1 .text:00034D58 STR R1, [R11,#var_AC] .text:00034D5C MOV R2, R6 .text:00034D60 MOV R0, R1 .text:00034D64 MOV R1, R10 .text:00034D68 BL memcpy .text:00034D6C LDR R2, [R11,#var_AC] .text:00034D70 MOV R3, #0x2F .text:00034D74 STRB R3, [R2,#-1]! .text:00034D78 LDR R3, [R11,#var_BC] .text:00034D7C STR R3, [R11,#var_A4] .text:00034D80 STR R2, [R11,#var_AC] .text:00034D84 LDR R0, [R11,#var_B8] .text:00034D88 MOV R7, R9 .text:00034D8C MOV R6, R8 .text:00034D90 BL closedir .text:00034D94 .text:00034D94 loc_34D94 ; CODE XREF: generic_getcwd+114j .text:00034D94 LDR R12, [R11,#var_9C] .text:00034D98 MOV R3, #0 .text:00034D9C CMP R6, R12 .text:00034DA0 BNE loc_34DB0 .text:00034DA4 LDR R1, [R11,#var_98] .text:00034DA8 CMP R7, R1 .text:00034DAC BEQ loc_34DB4 .text:00034DB0 .text:00034DB0 loc_34DB0 ; CODE XREF: generic_getcwd+41Cj .text:00034DB0 MOV R3, #1 .text:00034DB4 .text:00034DB4 loc_34DB4 ; CODE XREF: generic_getcwd+428j .text:00034DB4 SUB R2, R11, #-var_A4 .text:00034DB8 LDMIA R2, {R2,R12} .text:00034DBC CMP R2, R12 .text:00034DC0 CMPEQ R3, #0 .text:00034DC4 BNE loc_34A9C .text:00034DC8 LDR R1, [R11,#var_B4] .text:00034DCC LDR R2, [R11,#var_A8] .text:00034DD0 LDR R12, [R11,#var_AC] .text:00034DD4 SUB R3, R1, #1 .text:00034DD8 ADD R3, R2, R3 .text:00034DDC CMP R12, R3 .text:00034DE0 MOVEQ R3, #0x2F .text:00034DE4 STREQB R3, [R12,#-1]! .text:00034DE8 STREQ R12, [R11,#var_AC] .text:00034DEC LDR R1, [R11,#var_90] .text:00034DF0 LDR R2, =dots.120 ; "../../../../../../../../../../../../../"... .text:00034DF4 CMP R1, R2 .text:00034DF8 BEQ loc_34E04 .text:00034DFC MOV R0, R1 .text:00034E00 BL free .text:00034E04 .text:00034E04 loc_34E04 ; CODE XREF: generic_getcwd+474j .text:00034E04 LDR R0, [R11,#var_A8] .text:00034E08 LDR R3, [R11,#var_B4] .text:00034E0C LDR R1, [R11,#var_AC] .text:00034E10 ADD R2, R0, R3 .text:00034E14 RSB R2, R1, R2 .text:00034E18 BL memmove .text:00034E1C BL __errno_location .text:00034E20 LDR R12, [R11,#var_B0] .text:00034E24 STR R12, [R0] .text:00034E28 LDR R0, [R11,#var_A8] .text:00034E2C B loc_34EB4 .text:00034E30 ; --------------------------------------------------------------------------- .text:00034E30 .text:00034E30 loc_34E30 ; CODE XREF: generic_getcwd+370j .text:00034E30 LDR R0, [R11,#var_B8] .text:00034E34 BL closedir .text:00034E38 BL __errno_location .text:00034E3C MOV R3, #0x22 .text:00034E40 STR R3, [R0] .text:00034E44 B loc_34E84 .text:00034E48 ; --------------------------------------------------------------------------- .text:00034E48 .text:00034E48 loc_34E48 ; CODE XREF: generic_getcwd+39Cj .text:00034E48 LDR R0, [R11,#var_B8] .text:00034E4C BL closedir .text:00034E50 BL __errno_location .text:00034E54 MOV R3, #0xC .text:00034E58 STR R3, [R0] .text:00034E5C B loc_34E84 .text:00034E5C ; --------------------------------------------------------------------------- .text:00034E60 off_34E60 DCD dots.120 ; DATA XREF: generic_getcwd+46Cr .text:00034E60 ; "../../../../../../../../../../../../../"... .text:00034E64 ; --------------------------------------------------------------------------- .text:00034E64 .text:00034E64 loc_34E64 ; CODE XREF: generic_getcwd+340j .text:00034E64 BL __errno_location .text:00034E68 LDR R4, [R0] .text:00034E6C LDR R0, [R11,#var_B8] .text:00034E70 BL closedir .text:00034E74 CMP R4, #0 .text:00034E78 MOVEQ R4, #2 .text:00034E7C BL __errno_location .text:00034E80 STR R4, [R0] .text:00034E84 .text:00034E84 loc_34E84 ; CODE XREF: generic_getcwd+148j .text:00034E84 ; generic_getcwd+17Cj ... .text:00034E84 LDR R1, [R11,#var_90] .text:00034E88 LDR R2, =dots.120 ; "../../../../../../../../../../../../../"... .text:00034E8C CMP R1, R2 .text:00034E90 BEQ loc_34E9C .text:00034E94 MOV R0, R1 .text:00034E98 BL free .text:00034E9C .text:00034E9C loc_34E9C ; CODE XREF: generic_getcwd+D4j .text:00034E9C ; generic_getcwd+FCj ... .text:00034E9C LDR R3, [R11,#var_84] .text:00034EA0 CMP R3, #0 .text:00034EA4 BNE loc_34EB0 .text:00034EA8 LDR R0, [R11,#var_A8] .text:00034EAC BL free .text:00034EB0 .text:00034EB0 loc_34EB0 ; CODE XREF: generic_getcwd+68j .text:00034EB0 ; generic_getcwd+520j .text:00034EB0 MOV R0, #0 .text:00034EB4 .text:00034EB4 loc_34EB4 ; CODE XREF: generic_getcwd+94j .text:00034EB4 ; generic_getcwd+4A8j .text:00034EB4 B locret_34EBC .text:00034EB4 ; --------------------------------------------------------------------------- .text:00034EB8 off_34EB8 DCD dots.120 ; DATA XREF: generic_getcwd+504r .text:00034EB8 ; "../../../../../../../../../../../../../"... .text:00034EBC ; --------------------------------------------------------------------------- .text:00034EBC .text:00034EBC locret_34EBC ; CODE XREF: generic_getcwd:loc_34EB4j .text:00034EBC LDMDB R11, {R4-R11,SP,PC} .text:00034EBC ; End of function generic_getcwd .text:00034EBC .text:00034EC0 .text:00034EC0 ; =============== S U B R O U T I N E ======================================= .text:00034EC0 .text:00034EC0 .text:00034EC0 WEAK readlink .text:00034EC0 readlink ; CODE XREF: _dl_get_origin+28p .text:00034EC0 ; getcwd+16Cp .text:00034EC0 SVC 0x900055 ; Alternative name is '__readlink' .text:00034EC4 CMN R0, #0x1000 .text:00034EC8 MOVCC PC, LR .text:00034ECC B __syscall_error .text:00034ECC ; End of function readlink .text:00034ECC .text:00034ED0 .text:00034ED0 ; =============== S U B R O U T I N E ======================================= .text:00034ED0 .text:00034ED0 ; Attributes: bp-based frame .text:00034ED0 .text:00034ED0 WEAK brk .text:00034ED0 brk ; CODE XREF: sbrk+38p .text:00034ED0 ; sbrk+58p .text:00034ED0 MOV R12, SP .text:00034ED4 STMFD SP!, {R11,R12,LR,PC} .text:00034ED8 SUB R11, R12, #4 .text:00034EDC MOV R1, R0 .text:00034EE0 MOV R0, R1 .text:00034EE4 SVC 0x90002D .text:00034EE8 MOV R3, R0 .text:00034EEC LDR R2, =__curbrk .text:00034EF0 CMP R3, R1 .text:00034EF4 STR R3, [R2] .text:00034EF8 MOVCS R0, #0 .text:00034EFC LDMCSDB R11, {R11,SP,PC} .text:00034F00 BL __errno_location .text:00034F04 MOV R3, #0xC .text:00034F08 STR R3, [R0] .text:00034F0C MOV R0, 0xFFFFFFFF .text:00034F10 LDMDB R11, {R11,SP,PC} .text:00034F10 ; End of function brk .text:00034F10 .text:00034F10 ; --------------------------------------------------------------------------- .text:00034F14 off_34F14 DCD __curbrk ; DATA XREF: brk+1Cr .text:00034F18 .text:00034F18 ; =============== S U B R O U T I N E ======================================= .text:00034F18 .text:00034F18 ; Attributes: bp-based frame .text:00034F18 .text:00034F18 WEAK writev .text:00034F18 writev ; CODE XREF: _dl_debug_vdprintf+48Cp .text:00034F18 MOV R12, SP ; Alternative name is '__writev' .text:00034F1C STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:00034F20 SUB R11, R12, #4 .text:00034F24 MOV R6, R0 .text:00034F28 MOV R7, R1 .text:00034F2C MOV R5, R2 .text:00034F30 BL __errno_location .text:00034F34 MOV R2, R5 .text:00034F38 MOV R1, R7 .text:00034F3C LDR R8, [R0] .text:00034F40 MOV R0, R6 .text:00034F44 SVC 0x900092 .text:00034F48 MOV R4, R0 .text:00034F4C CMN R4, #0x1000 .text:00034F50 BLS loc_34F64 .text:00034F54 BL __errno_location .text:00034F58 RSB R3, R4, #0 .text:00034F5C MOV R4, 0xFFFFFFFF .text:00034F60 STR R3, [R0] .text:00034F64 .text:00034F64 loc_34F64 ; CODE XREF: writev+38j .text:00034F64 CMP R4, #0 .text:00034F68 BGE loc_34F84 .text:00034F6C BL __errno_location .text:00034F70 LDR R3, [R0] .text:00034F74 CMP R3, #0x16 .text:00034F78 BNE loc_34F84 .text:00034F7C CMP R5, #8 .text:00034F80 BGT loc_34F8C .text:00034F84 .text:00034F84 loc_34F84 ; CODE XREF: writev+50j .text:00034F84 ; writev+60j .text:00034F84 MOV R0, R4 .text:00034F88 LDMDB R11, {R4-R8,R11,SP,PC} .text:00034F8C ; --------------------------------------------------------------------------- .text:00034F8C .text:00034F8C loc_34F8C ; CODE XREF: writev+68j .text:00034F8C BL __errno_location .text:00034F90 STR R8, [R0] .text:00034F94 MOV R0, R6 .text:00034F98 MOV R1, R7 .text:00034F9C MOV R2, R5 .text:00034FA0 BL __atomic_writev_replacement .text:00034FA4 LDMDB R11, {R4-R8,R11,SP,PC} .text:00034FA4 ; End of function writev .text:00034FA4 .text:00034FA8 .text:00034FA8 ; =============== S U B R O U T I N E ======================================= .text:00034FA8 .text:00034FA8 ; Attributes: bp-based frame .text:00034FA8 .text:00034FA8 __atomic_writev_replacement ; CODE XREF: writev+88p .text:00034FA8 .text:00034FA8 var_30 = -0x30 .text:00034FA8 var_2C = -0x2C .text:00034FA8 .text:00034FA8 MOV R12, SP .text:00034FAC STMFD SP!, {R4-R12,LR,PC} .text:00034FB0 SUB R11, R12, #4 .text:00034FB4 MOV R8, #0 .text:00034FB8 MOV R9, R2 .text:00034FBC CMP R8, R9 .text:00034FC0 MOV R10, R1 .text:00034FC4 SUB SP, SP, #8 .text:00034FC8 STR R0, [R11,#var_2C] .text:00034FCC BGE loc_34FEC .text:00034FD0 MOV R2, R10 .text:00034FD4 MOV R5, R9 .text:00034FD8 .text:00034FD8 loc_34FD8 ; CODE XREF: __atomic_writev_replacement+40j .text:00034FD8 LDR R3, [R2,#4] .text:00034FDC ADD R2, R2, #8 .text:00034FE0 SUBS R5, R5, #1 .text:00034FE4 ADD R8, R8, R3 .text:00034FE8 BNE loc_34FD8 .text:00034FEC .text:00034FEC loc_34FEC ; CODE XREF: __atomic_writev_replacement+24j .text:00034FEC ADD R3, R8, #3 .text:00034FF0 BIC R3, R3, #3 .text:00034FF4 RSB SP, R3, SP .text:00034FF8 STR SP, [R11,#var_30] .text:00034FFC MOV R6, R8 .text:00035000 MOV R0, SP .text:00035004 MOV R5, #0 .text:00035008 MOV R7, R10 .text:0003500C B loc_35018 .text:00035010 ; --------------------------------------------------------------------------- .text:00035010 .text:00035010 loc_35010 ; CODE XREF: __atomic_writev_replacement+94j .text:00035010 ADD R7, R7, #8 .text:00035014 ADD R5, R5, #1 .text:00035018 .text:00035018 loc_35018 ; CODE XREF: __atomic_writev_replacement+64j .text:00035018 CMP R5, R9 .text:0003501C BGE loc_35040 .text:00035020 LDR R4, [R7,#4] .text:00035024 LDR R1, [R10,R5,LSL#3] .text:00035028 CMP R4, R6 .text:0003502C MOVCS R4, R6 .text:00035030 MOV R2, R4 .text:00035034 BL mempcpy .text:00035038 SUBS R6, R6, R4 .text:0003503C BNE loc_35010 .text:00035040 .text:00035040 loc_35040 ; CODE XREF: __atomic_writev_replacement+74j .text:00035040 LDR R0, [R11,#var_2C] .text:00035044 LDR R1, [R11,#var_30] .text:00035048 MOV R2, R8 .text:0003504C BL write .text:00035050 LDMDB R11, {R4-R11,SP,PC} .text:00035050 ; End of function __atomic_writev_replacement .text:00035050 .text:00035054 .text:00035054 ; =============== S U B R O U T I N E ======================================= .text:00035054 .text:00035054 ; Attributes: bp-based frame .text:00035054 .text:00035054 WEAK getdtablesize .text:00035054 getdtablesize ; CODE XREF: sysconf:loc_342C0p .text:00035054 .text:00035054 var_14 = -0x14 .text:00035054 .text:00035054 MOV R12, SP .text:00035058 STMFD SP!, {R11,R12,LR,PC} .text:0003505C SUB R11, R12, #4 .text:00035060 MOV R0, #7 .text:00035064 SUB R1, R11, #-var_14 .text:00035068 SUB SP, SP, #8 .text:0003506C BL getrlimit .text:00035070 LDR R3, [R11,#var_14] .text:00035074 CMP R0, #0 .text:00035078 MOVGE R0, R3 .text:0003507C MOVLT R0, #0x100 .text:00035080 LDMDB R11, {R11,SP,PC} .text:00035080 ; End of function getdtablesize .text:00035080 .text:00035084 .text:00035084 ; =============== S U B R O U T I N E ======================================= .text:00035084 .text:00035084 ; Attributes: bp-based frame .text:00035084 .text:00035084 maybe_split_for_insert ; CODE XREF: tsearch+C4p .text:00035084 ; tsearch+134p .text:00035084 .text:00035084 arg_0 = 4 .text:00035084 arg_4 = 8 .text:00035084 .text:00035084 MOV R12, SP .text:00035088 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0003508C SUB R11, R12, #4 .text:00035090 MOV R5, R2 .text:00035094 LDR R12, [R11,#arg_4] .text:00035098 MOV R4, R3 .text:0003509C CMP R12, #1 .text:000350A0 LDR R0, [R0] .text:000350A4 BEQ loc_350D8 .text:000350A8 LDR R3, [R0,#8] .text:000350AC CMP R3, #0 .text:000350B0 LDMEQDB R11, {R4,R5,R11,SP,PC} .text:000350B4 LDR R2, [R0,#4] .text:000350B8 CMP R2, #0 .text:000350BC LDMEQDB R11, {R4,R5,R11,SP,PC} .text:000350C0 LDRB R3, [R3,#0xC] .text:000350C4 TST R3, #1 .text:000350C8 LDMEQDB R11, {R4,R5,R11,SP,PC} .text:000350CC LDRB R3, [R2,#0xC] .text:000350D0 TST R3, #1 .text:000350D4 LDMEQDB R11, {R4,R5,R11,SP,PC} .text:000350D8 .text:000350D8 loc_350D8 ; CODE XREF: maybe_split_for_insert+20j .text:000350D8 LDR R2, [R0,#8] .text:000350DC LDRB R3, [R0,#0xC] .text:000350E0 CMP R2, #0 .text:000350E4 ORR R3, R3, #1 .text:000350E8 STRB R3, [R0,#0xC] .text:000350EC LDRNEB R3, [R2,#0xC] .text:000350F0 ANDNE R3, R3, #0xFE .text:000350F4 STRNEB R3, [R2,#0xC] .text:000350F8 LDR R2, [R0,#4] .text:000350FC CMP R2, #0 .text:00035100 LDRNEB R3, [R2,#0xC] .text:00035104 ANDNE R3, R3, #0xFE .text:00035108 STRNEB R3, [R2,#0xC] .text:0003510C CMP R1, #0 .text:00035110 LDMEQDB R11, {R4,R5,R11,SP,PC} .text:00035114 LDR R1, [R1] .text:00035118 LDRB LR, [R1,#0xC] .text:0003511C TST LR, #1 .text:00035120 LDMEQDB R11, {R4,R5,R11,SP,PC} .text:00035124 LDR R3, [R11,#arg_0] .text:00035128 CMP R4, #0 .text:0003512C MOVLE R2, #0 .text:00035130 MOVGT R2, #1 .text:00035134 LDR R12, [R5] .text:00035138 CMP R3, #0 .text:0003513C MOVLE R3, #0 .text:00035140 MOVGT R3, #1 .text:00035144 CMP R2, R3 .text:00035148 BEQ loc_351B0 .text:0003514C ORR R3, LR, #1 .text:00035150 STRB R3, [R1,#0xC] .text:00035154 LDRB R2, [R12,#0xC] .text:00035158 ORR R2, R2, #1 .text:0003515C STRB R2, [R12,#0xC] .text:00035160 LDRB R3, [R0,#0xC] .text:00035164 CMP R4, #0 .text:00035168 AND R3, R3, #0xFE .text:0003516C STRB R3, [R0,#0xC] .text:00035170 BGE loc_35190 .text:00035174 LDR R3, [R0,#8] .text:00035178 STR R3, [R1,#4] .text:0003517C STR R1, [R0,#8] .text:00035180 LDR R3, [R0,#4] .text:00035184 STR R3, [R12,#8] .text:00035188 STR R12, [R0,#4] .text:0003518C B loc_351A8 .text:00035190 ; --------------------------------------------------------------------------- .text:00035190 .text:00035190 loc_35190 ; CODE XREF: maybe_split_for_insert+ECj .text:00035190 LDR R3, [R0,#4] .text:00035194 STR R3, [R1,#8] .text:00035198 STR R1, [R0,#4] .text:0003519C LDR R3, [R0,#8] .text:000351A0 STR R3, [R12,#4] .text:000351A4 STR R12, [R0,#8] .text:000351A8 .text:000351A8 loc_351A8 ; CODE XREF: maybe_split_for_insert+108j .text:000351A8 STR R0, [R5] .text:000351AC LDMDB R11, {R4,R5,R11,SP,PC} .text:000351B0 ; --------------------------------------------------------------------------- .text:000351B0 .text:000351B0 loc_351B0 ; CODE XREF: maybe_split_for_insert+C4j .text:000351B0 STR R1, [R5] .text:000351B4 LDRB R3, [R1,#0xC] .text:000351B8 AND R3, R3, #0xFE .text:000351BC STRB R3, [R1,#0xC] .text:000351C0 LDRB R2, [R12,#0xC] .text:000351C4 CMP R4, #0 .text:000351C8 ORR R2, R2, #1 .text:000351CC STRB R2, [R12,#0xC] .text:000351D0 LDRLT R3, [R1,#8] .text:000351D4 STRLT R3, [R12,#4] .text:000351D8 STRLT R12, [R1,#8] .text:000351DC LDRGE R3, [R1,#4] .text:000351E0 STRGE R3, [R12,#8] .text:000351E4 STRGE R12, [R1,#4] .text:000351E8 LDMDB R11, {R4,R5,R11,SP,PC} .text:000351E8 ; End of function maybe_split_for_insert .text:000351E8 .text:000351EC .text:000351EC ; =============== S U B R O U T I N E ======================================= .text:000351EC .text:000351EC ; Attributes: bp-based frame .text:000351EC .text:000351EC WEAK tsearch .text:000351EC tsearch ; CODE XREF: __dcigettext+534p .text:000351EC ; __add_to_environ+1D0p ... .text:000351EC .text:000351EC var_38 = -0x38 .text:000351EC var_34 = -0x34 .text:000351EC var_30 = -0x30 .text:000351EC var_2C = -0x2C .text:000351EC .text:000351EC MOV R12, SP ; Alternative name is '__tsearch' .text:000351F0 STMFD SP!, {R4-R12,LR,PC} .text:000351F4 SUB R11, R12, #4 .text:000351F8 MOV R8, #0 .text:000351FC MOV R12, R8 .text:00035200 MOV R7, R8 .text:00035204 MOV R10, R7 .text:00035208 MOV R5, R7 .text:0003520C SUBS R6, R1, #0 .text:00035210 MOV R9, R0 .text:00035214 SUB SP, SP, #0x10 .text:00035218 STR R2, [R11,#var_2C] .text:0003521C BNE loc_35230 .text:00035220 MOV R0, R7 .text:00035224 B locret_35328 .text:00035228 ; --------------------------------------------------------------------------- .text:00035228 .text:00035228 loc_35228 ; CODE XREF: tsearch+A4j .text:00035228 MOV R0, R4 .text:0003522C B locret_35328 .text:00035230 ; --------------------------------------------------------------------------- .text:00035230 .text:00035230 loc_35230 ; CODE XREF: tsearch+30j .text:00035230 LDR R2, [R6] .text:00035234 CMP R2, #0 .text:00035238 LDRNEB R3, [R2,#0xC] .text:0003523C ANDNE R3, R3, #0xFE .text:00035240 STRNEB R3, [R2,#0xC] .text:00035244 MOV R4, R6 .text:00035248 B loc_35260 .text:0003524C ; --------------------------------------------------------------------------- .text:0003524C .text:0003524C loc_3524C ; CODE XREF: tsearch+DCj .text:0003524C MOV R12, R8 .text:00035250 MOV R8, R6 .text:00035254 MOV R6, R4 .text:00035258 MOV R5, R10 .text:0003525C MOV R10, R7 .text:00035260 .text:00035260 loc_35260 ; CODE XREF: tsearch+5Cj .text:00035260 LDR R3, [R4] .text:00035264 CMP R3, #0 .text:00035268 BEQ loc_352CC .text:0003526C LDR R4, [R6] .text:00035270 LDR R1, [R4] .text:00035274 STR R12, [R11,#var_30] .text:00035278 LDR R3, [R11,#var_2C] .text:0003527C MOV R0, R9 .text:00035280 MOV LR, PC .text:00035284 MOV PC, R3 .text:00035288 SUBS R7, R0, #0 .text:0003528C LDR R12, [R11,#var_30] .text:00035290 BEQ loc_35228 .text:00035294 STR R5, [SP,#0x38+var_38] .text:00035298 MOV R3, #0 .text:0003529C STR R3, [SP,#0x38+var_34] .text:000352A0 MOV R0, R6 .text:000352A4 MOV R1, R8 .text:000352A8 MOV R2, R12 .text:000352AC MOV R3, R10 .text:000352B0 BL maybe_split_for_insert .text:000352B4 CMP R7, #0 .text:000352B8 ADDGE R4, R4, #8 .text:000352BC ADDLT R4, R4, #4 .text:000352C0 LDR R3, [R4] .text:000352C4 CMP R3, #0 .text:000352C8 BNE loc_3524C .text:000352CC .text:000352CC loc_352CC ; CODE XREF: tsearch+7Cj .text:000352CC MOV R0, #0x10 .text:000352D0 BL malloc .text:000352D4 SUBS R5, R0, #0 .text:000352D8 BEQ loc_352FC .text:000352DC STR R5, [R4] .text:000352E0 STR R9, [R5] .text:000352E4 MOV R2, #0 .text:000352E8 STR R2, [R5,#8] .text:000352EC STR R2, [R5,#4] .text:000352F0 LDRB R3, [R5,#0xC] .text:000352F4 ORR R3, R3, #1 .text:000352F8 STRB R3, [R5,#0xC] .text:000352FC .text:000352FC loc_352FC ; CODE XREF: tsearch+ECj .text:000352FC CMP R4, R6 .text:00035300 BEQ loc_35324 .text:00035304 STR R10, [SP,#0x38+var_38] .text:00035308 MOV R3, #1 .text:0003530C STR R3, [SP,#0x38+var_34] .text:00035310 MOV R0, R4 .text:00035314 MOV R1, R6 .text:00035318 MOV R2, R8 .text:0003531C MOV R3, R7 .text:00035320 BL maybe_split_for_insert .text:00035324 .text:00035324 loc_35324 ; CODE XREF: tsearch+114j .text:00035324 MOV R0, R5 .text:00035328 .text:00035328 locret_35328 ; CODE XREF: tsearch+38j .text:00035328 ; tsearch+40j .text:00035328 LDMDB R11, {R4-R11,SP,PC} .text:00035328 ; End of function tsearch .text:00035328 .text:0003532C .text:0003532C ; =============== S U B R O U T I N E ======================================= .text:0003532C .text:0003532C ; Attributes: bp-based frame .text:0003532C .text:0003532C WEAK tfind .text:0003532C tfind ; CODE XREF: __dcigettext+ACp .text:0003532C ; __add_to_environ+164p ... .text:0003532C MOV R12, SP ; Alternative name is '__tfind' .text:00035330 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:00035334 SUB R11, R12, #4 .text:00035338 CMP R1, #0 .text:0003533C MOV R6, R0 .text:00035340 MOV R5, R2 .text:00035344 BNE loc_35380 .text:00035348 MOV R0, R1 .text:0003534C LDMDB R11, {R4-R6,R11,SP,PC} .text:00035350 ; --------------------------------------------------------------------------- .text:00035350 .text:00035350 loc_35350 ; CODE XREF: tfind+44j .text:00035350 MOV R0, R4 .text:00035354 LDMDB R11, {R4-R6,R11,SP,PC} .text:00035358 ; --------------------------------------------------------------------------- .text:00035358 .text:00035358 loc_35358 ; CODE XREF: tfind+5Cj .text:00035358 LDR R4, [R1] .text:0003535C LDR R1, [R4] .text:00035360 MOV R0, R6 .text:00035364 MOV LR, PC .text:00035368 MOV PC, R5 .text:0003536C CMP R0, #0 .text:00035370 BEQ loc_35350 .text:00035374 CMP R0, #0 .text:00035378 ADDGE R1, R4, #8 .text:0003537C ADDLT R1, R4, #4 .text:00035380 .text:00035380 loc_35380 ; CODE XREF: tfind+18j .text:00035380 LDR R3, [R1] .text:00035384 CMP R3, #0 .text:00035388 BNE loc_35358 .text:0003538C MOV R0, #0 .text:00035390 LDMDB R11, {R4-R6,R11,SP,PC} .text:00035390 ; End of function tfind .text:00035390 .text:00035394 .text:00035394 ; =============== S U B R O U T I N E ======================================= .text:00035394 .text:00035394 ; Attributes: bp-based frame .text:00035394 .text:00035394 WEAK tdelete .text:00035394 tdelete .text:00035394 .text:00035394 var_34 = -0x34 .text:00035394 var_30 = -0x30 .text:00035394 var_2C = -0x2C .text:00035394 .text:00035394 MOV R12, SP ; Alternative name is '__tdelete' .text:00035398 STMFD SP!, {R4-R12,LR,PC} .text:0003539C SUB R11, R12, #4 .text:000353A0 MOV R3, #0x28 .text:000353A4 MOV R5, #0 .text:000353A8 SUBS R6, R1, #0 .text:000353AC MOV R9, R2 .text:000353B0 SUB SP, SP, #0xC .text:000353B4 STR R3, [R11,#var_34] .text:000353B8 SUB SP, SP, #0xA0 .text:000353BC MOV R10, SP .text:000353C0 STR R0, [R11,#var_2C] .text:000353C4 BEQ loc_353D4 .text:000353C8 LDR R4, [R6] .text:000353CC CMP R4, #0 .text:000353D0 BNE loc_353DC .text:000353D4 .text:000353D4 loc_353D4 ; CODE XREF: tdelete+30j .text:000353D4 MOV R0, R5 .text:000353D8 B locret_357E8 .text:000353DC ; --------------------------------------------------------------------------- .text:000353DC .text:000353DC loc_353DC ; CODE XREF: tdelete+3Cj .text:000353DC ADD R8, R5, #0x53 .text:000353E0 B loc_3543C .text:000353E4 ; --------------------------------------------------------------------------- .text:000353E4 .text:000353E4 loc_353E4 ; CODE XREF: tdelete+C0j .text:000353E4 LDR R3, [R11,#var_34] .text:000353E8 CMP R5, R3 .text:000353EC BNE loc_35414 .text:000353F0 ADD R3, R5, #0x14 .text:000353F4 STR R3, [R11,#var_34] .text:000353F8 BIC R3, R8, #3 .text:000353FC RSB SP, R3, SP .text:00035400 MOV R0, SP .text:00035404 MOV R1, R10 .text:00035408 MOV R2, R5,LSL#2 .text:0003540C BL memcpy .text:00035410 MOV R10, R0 .text:00035414 .text:00035414 loc_35414 ; CODE XREF: tdelete+58j .text:00035414 STR R6, [R10,R5,LSL#2] .text:00035418 ADD R8, R8, #4 .text:0003541C LDR R4, [R6] .text:00035420 CMP R7, #0 .text:00035424 ADDGE R6, R4, #8 .text:00035428 ADDLT R6, R4, #4 .text:0003542C LDR R0, [R6] .text:00035430 ADD R5, R5, #1 .text:00035434 CMP R0, #0 .text:00035438 BEQ locret_357E8 .text:0003543C .text:0003543C loc_3543C ; CODE XREF: tdelete+4Cj .text:0003543C LDR R3, [R6] .text:00035440 LDR R0, [R11,#var_2C] .text:00035444 LDR R1, [R3] .text:00035448 MOV LR, PC .text:0003544C MOV PC, R9 .text:00035450 SUBS R7, R0, #0 .text:00035454 BNE loc_353E4 .text:00035458 LDR R9, [R6] .text:0003545C LDR R1, [R9,#8] .text:00035460 LDR R12, [R9,#4] .text:00035464 STR R4, [R11,#var_30] .text:00035468 CMP R1, #0 .text:0003546C CMPNE R12, #0 .text:00035470 MOVEQ R7, R9 .text:00035474 BEQ loc_354E4 .text:00035478 MOV R8, R6 .text:0003547C ADD R7, R9, #8 .text:00035480 MOV R3, R5,LSL#2 .text:00035484 ADD R4, R3, #0x53 .text:00035488 B loc_35490 .text:0003548C ; --------------------------------------------------------------------------- .text:0003548C .text:0003548C loc_3548C ; CODE XREF: tdelete+148j .text:0003548C ADD R7, R0, #4 .text:00035490 .text:00035490 loc_35490 ; CODE XREF: tdelete+F4j .text:00035490 LDR R3, [R11,#var_34] .text:00035494 CMP R5, R3 .text:00035498 BNE loc_354C0 .text:0003549C ADD R3, R5, #0x14 .text:000354A0 STR R3, [R11,#var_34] .text:000354A4 BIC R3, R4, #3 .text:000354A8 RSB SP, R3, SP .text:000354AC MOV R0, SP .text:000354B0 MOV R1, R10 .text:000354B4 MOV R2, R5,LSL#2 .text:000354B8 BL memcpy .text:000354BC MOV R10, R0 .text:000354C0 .text:000354C0 loc_354C0 ; CODE XREF: tdelete+104j .text:000354C0 STR R8, [R10,R5,LSL#2] .text:000354C4 MOV R8, R7 .text:000354C8 LDR R0, [R8] .text:000354CC ADD R4, R4, #4 .text:000354D0 LDR R3, [R0,#4] .text:000354D4 ADD R5, R5, #1 .text:000354D8 CMP R3, #0 .text:000354DC BNE loc_3548C .text:000354E0 MOV R7, R0 .text:000354E4 .text:000354E4 loc_354E4 ; CODE XREF: tdelete+E0j .text:000354E4 LDR R1, [R7,#4] .text:000354E8 CMP R1, #0 .text:000354EC LDREQ R1, [R7,#8] .text:000354F0 CMP R5, #0 .text:000354F4 STREQ R1, [R6] .text:000354F8 BEQ loc_35518 .text:000354FC ADD R3, R10, R5,LSL#2 .text:00035500 LDR R2, [R3,#-4] .text:00035504 LDR R12, [R2] .text:00035508 LDR R3, [R12,#8] .text:0003550C CMP R7, R3 .text:00035510 STREQ R1, [R12,#8] .text:00035514 STRNE R1, [R12,#4] .text:00035518 .text:00035518 loc_35518 ; CODE XREF: tdelete+164j .text:00035518 CMP R7, R9 .text:0003551C LDRNE R3, [R7] .text:00035520 STRNE R3, [R9] .text:00035524 LDRB R3, [R7,#0xC] .text:00035528 TST R3, #1 .text:0003552C BNE loc_357DC .text:00035530 B loc_357B0 .text:00035534 ; --------------------------------------------------------------------------- .text:00035534 .text:00035534 loc_35534 ; CODE XREF: tdelete+428j .text:00035534 ; tdelete+434j .text:00035534 ADD R3, R10, R5,LSL#2 .text:00035538 LDR R0, [R3,#-4] .text:0003553C LDR R4, [R0] .text:00035540 LDR R3, [R4,#4] .text:00035544 CMP R1, R3 .text:00035548 BNE loc_35668 .text:0003554C LDR R12, [R4,#8] .text:00035550 CMP R12, #0 .text:00035554 BEQ loc_35598 .text:00035558 LDRB R3, [R12,#0xC] .text:0003555C TST R3, #1 .text:00035560 BEQ loc_35598 .text:00035564 AND R3, R3, #0xFE .text:00035568 STRB R3, [R12,#0xC] .text:0003556C LDRB R2, [R4,#0xC] .text:00035570 ORR R2, R2, #1 .text:00035574 STRB R2, [R4,#0xC] .text:00035578 LDR R3, [R12,#4] .text:0003557C STR R3, [R4,#8] .text:00035580 STR R4, [R12,#4] .text:00035584 STR R12, [R0] .text:00035588 ADD R0, R12, #4 .text:0003558C STR R0, [R10,R5,LSL#2] .text:00035590 ADD R5, R5, #1 .text:00035594 LDR R12, [R4,#8] .text:00035598 .text:00035598 loc_35598 ; CODE XREF: tdelete+1C0j .text:00035598 ; tdelete+1CCj .text:00035598 LDR R3, [R12,#4] .text:0003559C CMP R3, #0 .text:000355A0 MOV R1, R3 .text:000355A4 BEQ loc_355B8 .text:000355A8 LDRB R3, [R1,#0xC] .text:000355AC LDR LR, [R12,#8] .text:000355B0 TST R3, #1 .text:000355B4 BNE loc_355D4 .text:000355B8 .text:000355B8 loc_355B8 ; CODE XREF: tdelete+210j .text:000355B8 LDR R3, [R12,#8] .text:000355BC CMP R3, #0 .text:000355C0 MOV LR, R3 .text:000355C4 BEQ loc_356EC .text:000355C8 LDRB R3, [LR,#0xC] .text:000355CC TST R3, #1 .text:000355D0 BEQ loc_356EC .text:000355D4 .text:000355D4 loc_355D4 ; CODE XREF: tdelete+220j .text:000355D4 CMP LR, #0 .text:000355D8 BEQ loc_355E8 .text:000355DC LDRB R3, [LR,#0xC] .text:000355E0 TST R3, #1 .text:000355E4 BNE loc_35620 .text:000355E8 .text:000355E8 loc_355E8 ; CODE XREF: tdelete+244j .text:000355E8 LDRB R2, [R4,#0xC] .text:000355EC LDRB R3, [R1,#0xC] .text:000355F0 AND R2, R2, #1 .text:000355F4 CMP R2, #0 .text:000355F8 ORRNE R3, R3, #1 .text:000355FC ANDEQ R3, R3, #0xFE .text:00035600 STRB R3, [R1,#0xC] .text:00035604 LDR R2, [R1,#4] .text:00035608 STR R2, [R4,#8] .text:0003560C LDR R3, [R1,#8] .text:00035610 STR R3, [R12,#4] .text:00035614 STMIB R1, {R4,R12} .text:00035618 STR R1, [R0] .text:0003561C B loc_3574C .text:00035620 ; --------------------------------------------------------------------------- .text:00035620 .text:00035620 loc_35620 ; CODE XREF: tdelete+250j .text:00035620 LDRB R3, [R4,#0xC] .text:00035624 LDRB R2, [R12,#0xC] .text:00035628 AND R3, R3, #1 .text:0003562C CMP R3, #0 .text:00035630 ORRNE R2, R2, #1 .text:00035634 ANDEQ R2, R2, #0xFE .text:00035638 STRB R2, [R12,#0xC] .text:0003563C LDRB R3, [R4,#0xC] .text:00035640 AND R3, R3, #0xFE .text:00035644 STRB R3, [R4,#0xC] .text:00035648 LDR R1, [R12,#8] .text:0003564C LDRB R3, [R1,#0xC] .text:00035650 AND R3, R3, #0xFE .text:00035654 STRB R3, [R1,#0xC] .text:00035658 LDR R2, [R12,#4] .text:0003565C STR R2, [R4,#8] .text:00035660 STR R4, [R12,#4] .text:00035664 B loc_357A0 .text:00035668 ; --------------------------------------------------------------------------- .text:00035668 .text:00035668 loc_35668 ; CODE XREF: tdelete+1B4j .text:00035668 SUBS R12, R3, #0 .text:0003566C BEQ loc_356B0 .text:00035670 LDRB R3, [R12,#0xC] .text:00035674 TST R3, #1 .text:00035678 BEQ loc_356B0 .text:0003567C AND R3, R3, #0xFE .text:00035680 STRB R3, [R12,#0xC] .text:00035684 LDRB R2, [R4,#0xC] .text:00035688 ORR R2, R2, #1 .text:0003568C STRB R2, [R4,#0xC] .text:00035690 LDR R3, [R12,#8] .text:00035694 STR R3, [R4,#4] .text:00035698 STR R4, [R12,#8] .text:0003569C STR R12, [R0] .text:000356A0 ADD R0, R12, #8 .text:000356A4 STR R0, [R10,R5,LSL#2] .text:000356A8 ADD R5, R5, #1 .text:000356AC LDR R12, [R4,#4] .text:000356B0 .text:000356B0 loc_356B0 ; CODE XREF: tdelete+2D8j .text:000356B0 ; tdelete+2E4j .text:000356B0 LDR R3, [R12,#8] .text:000356B4 CMP R3, #0 .text:000356B8 MOV LR, R3 .text:000356BC BEQ loc_356D0 .text:000356C0 LDRB R3, [LR,#0xC] .text:000356C4 LDR R1, [R12,#4] .text:000356C8 TST R3, #1 .text:000356CC BNE loc_35700 .text:000356D0 .text:000356D0 loc_356D0 ; CODE XREF: tdelete+328j .text:000356D0 LDR R3, [R12,#4] .text:000356D4 CMP R3, #0 .text:000356D8 MOV R1, R3 .text:000356DC BEQ loc_356EC .text:000356E0 LDRB R3, [R1,#0xC] .text:000356E4 TST R3, #1 .text:000356E8 BNE loc_35700 .text:000356EC .text:000356EC loc_356EC ; CODE XREF: tdelete+230j .text:000356EC ; tdelete+23Cj ... .text:000356EC LDRB R3, [R12,#0xC] .text:000356F0 MOV R1, R4 .text:000356F4 ORR R3, R3, #1 .text:000356F8 STRB R3, [R12,#0xC] .text:000356FC B loc_357AC .text:00035700 ; --------------------------------------------------------------------------- .text:00035700 .text:00035700 loc_35700 ; CODE XREF: tdelete+338j .text:00035700 ; tdelete+354j .text:00035700 CMP R1, #0 .text:00035704 BEQ loc_35714 .text:00035708 LDRB R3, [R1,#0xC] .text:0003570C TST R3, #1 .text:00035710 BNE loc_3575C .text:00035714 .text:00035714 loc_35714 ; CODE XREF: tdelete+370j .text:00035714 LDRB R2, [R4,#0xC] .text:00035718 LDRB R3, [LR,#0xC] .text:0003571C AND R2, R2, #1 .text:00035720 CMP R2, #0 .text:00035724 ORRNE R3, R3, #1 .text:00035728 ANDEQ R3, R3, #0xFE .text:0003572C STRB R3, [LR,#0xC] .text:00035730 LDR R2, [LR,#8] .text:00035734 STR R2, [R4,#4] .text:00035738 LDR R3, [LR,#4] .text:0003573C STR R3, [R12,#8] .text:00035740 STR R12, [LR,#4] .text:00035744 STR R4, [LR,#8] .text:00035748 STR LR, [R0] .text:0003574C .text:0003574C loc_3574C ; CODE XREF: tdelete+288j .text:0003574C LDRB R3, [R4,#0xC] .text:00035750 AND R3, R3, #0xFE .text:00035754 STRB R3, [R4,#0xC] .text:00035758 B loc_357A4 .text:0003575C ; --------------------------------------------------------------------------- .text:0003575C .text:0003575C loc_3575C ; CODE XREF: tdelete+37Cj .text:0003575C LDRB R3, [R4,#0xC] .text:00035760 LDRB R2, [R12,#0xC] .text:00035764 AND R3, R3, #1 .text:00035768 CMP R3, #0 .text:0003576C ORRNE R2, R2, #1 .text:00035770 ANDEQ R2, R2, #0xFE .text:00035774 STRB R2, [R12,#0xC] .text:00035778 LDRB R3, [R4,#0xC] .text:0003577C AND R3, R3, #0xFE .text:00035780 STRB R3, [R4,#0xC] .text:00035784 LDR R1, [R12,#4] .text:00035788 LDRB R3, [R1,#0xC] .text:0003578C AND R3, R3, #0xFE .text:00035790 STRB R3, [R1,#0xC] .text:00035794 LDR R2, [R12,#8] .text:00035798 STR R2, [R4,#4] .text:0003579C STR R4, [R12,#8] .text:000357A0 .text:000357A0 loc_357A0 ; CODE XREF: tdelete+2D0j .text:000357A0 STR R12, [R0] .text:000357A4 .text:000357A4 loc_357A4 ; CODE XREF: tdelete+3C4j .text:000357A4 MOV R5, #1 .text:000357A8 MOV R1, #0 .text:000357AC .text:000357AC loc_357AC ; CODE XREF: tdelete+368j .text:000357AC SUB R5, R5, #1 .text:000357B0 .text:000357B0 loc_357B0 ; CODE XREF: tdelete+19Cj .text:000357B0 CMP R5, #0 .text:000357B4 BLE loc_357CC .text:000357B8 CMP R1, #0 .text:000357BC BEQ loc_35534 .text:000357C0 LDRB R3, [R1,#0xC] .text:000357C4 TST R3, #1 .text:000357C8 BEQ loc_35534 .text:000357CC .text:000357CC loc_357CC ; CODE XREF: tdelete+420j .text:000357CC CMP R1, #0 .text:000357D0 LDRNEB R3, [R1,#0xC] .text:000357D4 ANDNE R3, R3, #0xFE .text:000357D8 STRNEB R3, [R1,#0xC] .text:000357DC .text:000357DC loc_357DC ; CODE XREF: tdelete+198j .text:000357DC MOV R0, R7 .text:000357E0 BL free .text:000357E4 LDR R0, [R11,#var_30] .text:000357E8 .text:000357E8 locret_357E8 ; CODE XREF: tdelete+44j .text:000357E8 ; tdelete+A4j .text:000357E8 LDMDB R11, {R4-R11,SP,PC} .text:000357E8 ; End of function tdelete .text:000357E8 .text:000357EC .text:000357EC ; =============== S U B R O U T I N E ======================================= .text:000357EC .text:000357EC ; Attributes: bp-based frame .text:000357EC .text:000357EC trecurse ; CODE XREF: trecurse+68p .text:000357EC ; trecurse+94p ... .text:000357EC MOV R12, SP .text:000357F0 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:000357F4 SUB R11, R12, #4 .text:000357F8 MOV R4, R0 .text:000357FC MOV R6, R1 .text:00035800 LDR R3, [R4,#4] .text:00035804 MOV R5, R2 .text:00035808 CMP R3, #0 .text:0003580C BNE loc_3582C .text:00035810 LDR R3, [R4,#8] .text:00035814 CMP R3, #0 .text:00035818 BNE loc_3582C .text:0003581C MOV R1, #3 .text:00035820 MOV LR, PC .text:00035824 MOV PC, R6 .text:00035828 LDMDB R11, {R4-R6,R11,SP,PC} .text:0003582C ; --------------------------------------------------------------------------- .text:0003582C .text:0003582C loc_3582C ; CODE XREF: trecurse+20j .text:0003582C ; trecurse+2Cj .text:0003582C MOV R0, R4 .text:00035830 MOV R1, #0 .text:00035834 MOV R2, R5 .text:00035838 MOV LR, PC .text:0003583C MOV PC, R6 .text:00035840 LDR R0, [R4,#4] .text:00035844 CMP R0, #0 .text:00035848 BEQ loc_35858 .text:0003584C MOV R1, R6 .text:00035850 ADD R2, R5, #1 .text:00035854 BL trecurse .text:00035858 .text:00035858 loc_35858 ; CODE XREF: trecurse+5Cj .text:00035858 MOV R0, R4 .text:0003585C MOV R1, #1 .text:00035860 MOV R2, R5 .text:00035864 MOV LR, PC .text:00035868 MOV PC, R6 .text:0003586C LDR R0, [R4,#8] .text:00035870 CMP R0, #0 .text:00035874 BEQ loc_35884 .text:00035878 MOV R1, R6 .text:0003587C ADD R2, R5, #1 .text:00035880 BL trecurse .text:00035884 .text:00035884 loc_35884 ; CODE XREF: trecurse+88j .text:00035884 MOV R0, R4 .text:00035888 MOV R1, #2 .text:0003588C MOV R2, R5 .text:00035890 MOV LR, PC .text:00035894 MOV PC, R6 .text:00035898 LDMDB R11, {R4-R6,R11,SP,PC} .text:00035898 ; End of function trecurse .text:00035898 .text:0003589C .text:0003589C ; =============== S U B R O U T I N E ======================================= .text:0003589C .text:0003589C ; Attributes: bp-based frame .text:0003589C .text:0003589C WEAK twalk .text:0003589C twalk ; CODE XREF: __gconv_release_shlib+20p .text:0003589C MOV R12, SP .text:000358A0 STMFD SP!, {R11,R12,LR,PC} .text:000358A4 SUB R11, R12, #4 .text:000358A8 CMP R0, #0 .text:000358AC CMPNE R1, #0 .text:000358B0 LDMEQDB R11, {R11,SP,PC} .text:000358B4 MOV R2, #0 .text:000358B8 BL trecurse .text:000358BC LDMDB R11, {R11,SP,PC} .text:000358BC ; End of function twalk .text:000358BC .text:000358C0 .text:000358C0 ; =============== S U B R O U T I N E ======================================= .text:000358C0 .text:000358C0 ; Attributes: bp-based frame .text:000358C0 .text:000358C0 tdestroy_recurse ; CODE XREF: tdestroy_recurse+20p .text:000358C0 ; tdestroy_recurse+34p ... .text:000358C0 MOV R12, SP .text:000358C4 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:000358C8 SUB R11, R12, #4 .text:000358CC MOV R5, R0 .text:000358D0 LDR R0, [R5,#4] .text:000358D4 MOV R4, R1 .text:000358D8 CMP R0, #0 .text:000358DC BEQ loc_358E4 .text:000358E0 BL tdestroy_recurse .text:000358E4 .text:000358E4 loc_358E4 ; CODE XREF: tdestroy_recurse+1Cj .text:000358E4 LDR R0, [R5,#8] .text:000358E8 CMP R0, #0 .text:000358EC BEQ loc_358F8 .text:000358F0 MOV R1, R4 .text:000358F4 BL tdestroy_recurse .text:000358F8 .text:000358F8 loc_358F8 ; CODE XREF: tdestroy_recurse+2Cj .text:000358F8 LDR R0, [R5] .text:000358FC MOV LR, PC .text:00035900 MOV PC, R4 .text:00035904 MOV R0, R5 .text:00035908 BL free .text:0003590C LDMDB R11, {R4,R5,R11,SP,PC} .text:0003590C ; End of function tdestroy_recurse .text:0003590C .text:00035910 .text:00035910 ; =============== S U B R O U T I N E ======================================= .text:00035910 .text:00035910 ; Attributes: bp-based frame .text:00035910 .text:00035910 WEAK tdestroy .text:00035910 tdestroy ; CODE XREF: free_mem+84p .text:00035910 ; free_mem_2+1Cp ... .text:00035910 MOV R12, SP .text:00035914 STMFD SP!, {R11,R12,LR,PC} .text:00035918 SUB R11, R12, #4 .text:0003591C CMP R0, #0 .text:00035920 LDMEQDB R11, {R11,SP,PC} .text:00035924 BL tdestroy_recurse .text:00035928 LDMDB R11, {R11,SP,PC} .text:00035928 ; End of function tdestroy .text:00035928 .text:0003592C .text:0003592C ; =============== S U B R O U T I N E ======================================= .text:0003592C .text:0003592C ; Attributes: bp-based frame .text:0003592C .text:0003592C get_proc_path ; CODE XREF: get_nprocs_conf+24p .text:0003592C ; phys_pages_info+3Cp .text:0003592C .text:0003592C var_38 = -0x38 .text:0003592C var_34 = -0x34 .text:0003592C var_30 = -0x30 .text:0003592C .text:0003592C MOV R12, SP .text:00035930 STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:00035934 SUB R11, R12, #4 .text:00035938 MOV R8, R0 .text:0003593C MOV R6, #0 .text:00035940 LDR R4, =aR_0 ; "r" .text:00035944 MOV R7, R1 .text:00035948 LDR R0, =aEtcMtab ; "/etc/mtab" .text:0003594C MOV R1, R4 .text:00035950 SUB SP, SP, #0x18 .text:00035954 BL setmntent .text:00035958 SUBS R5, R0, #0 .text:0003595C BNE loc_35970 .text:00035960 LDR R0, =aEtcFstab ; "/etc/fstab" .text:00035964 MOV R1, R4 .text:00035968 BL setmntent .text:0003596C MOV R5, R0 .text:00035970 .text:00035970 loc_35970 ; CODE XREF: get_proc_path+30j .text:00035970 CMP R5, #0 .text:00035974 BEQ loc_359B8 .text:00035978 SUB R4, R11, #-var_38 .text:0003597C B loc_35994 .text:00035980 ; --------------------------------------------------------------------------- .text:00035980 .text:00035980 loc_35980 ; CODE XREF: get_proc_path+80j .text:00035980 LDR R0, [R11,#var_30] .text:00035984 LDR R1, =aProc ; "proc" .text:00035988 BL strcmp .text:0003598C CMP R0, #0 .text:00035990 BEQ loc_359DC .text:00035994 .text:00035994 loc_35994 ; CODE XREF: get_proc_path+50j .text:00035994 MOV R0, R5 .text:00035998 MOV R1, R4 .text:0003599C MOV R2, R8 .text:000359A0 MOV R3, R7 .text:000359A4 BL getmntent_r .text:000359A8 CMP R0, #0 .text:000359AC BNE loc_35980 .text:000359B0 .text:000359B0 loc_359B0 ; CODE XREF: get_proc_path+B4j .text:000359B0 MOV R0, R5 .text:000359B4 BL endmntent .text:000359B8 .text:000359B8 loc_359B8 ; CODE XREF: get_proc_path+48j .text:000359B8 CMP R6, #0 .text:000359BC LDR R0, =path_proc ; "/proc" .text:000359C0 BEQ loc_35A34 .text:000359C4 MOV R0, R6 .text:000359C8 BL strdup .text:000359CC CMP R0, #0 .text:000359D0 BNE loc_359F8 .text:000359D4 MOV R0, R6 .text:000359D8 B loc_35A34 .text:000359DC ; --------------------------------------------------------------------------- .text:000359DC .text:000359DC loc_359DC ; CODE XREF: get_proc_path+64j .text:000359DC LDR R6, [R11,#var_34] .text:000359E0 B loc_359B0 .text:000359E0 ; --------------------------------------------------------------------------- .text:000359E4 off_359E4 DCD aR_0 ; DATA XREF: get_proc_path+14r .text:000359E4 ; "r" .text:000359E8 off_359E8 DCD aEtcMtab ; DATA XREF: get_proc_path+1Cr .text:000359E8 ; "/etc/mtab" .text:000359EC off_359EC DCD aEtcFstab ; DATA XREF: get_proc_path+34r .text:000359EC ; "/etc/fstab" .text:000359F0 off_359F0 DCD aProc ; DATA XREF: get_proc_path+58r .text:000359F0 ; "proc" .text:000359F4 off_359F4 DCD path_proc ; DATA XREF: get_proc_path+90r .text:000359F4 ; "/proc" .text:000359F8 ; --------------------------------------------------------------------------- .text:000359F8 .text:000359F8 loc_359F8 ; CODE XREF: get_proc_path+A4j .text:000359F8 MOV R3, #0 .text:000359FC LDR R4, =mount_proc .text:00035A00 .text:00035A00 loc_35A00 ; CODE XREF: get_proc_path+F0j .text:00035A00 LDR R1, [R4] .text:00035A04 MOV R2, #0 .text:00035A08 CMP R1, R3 .text:00035A0C BNE loc_35A24 .text:00035A10 SWP R2, R0, [R4] .text:00035A14 CMP R1, R2 .text:00035A18 SWPNE R1, R2, [R4] .text:00035A1C BNE loc_35A00 .text:00035A20 MOV R2, #1 .text:00035A24 .text:00035A24 loc_35A24 ; CODE XREF: get_proc_path+E0j .text:00035A24 CMP R2, R3 .text:00035A28 BNE loc_35A30 .text:00035A2C BL free .text:00035A30 .text:00035A30 loc_35A30 ; CODE XREF: get_proc_path+FCj .text:00035A30 LDR R0, [R4] .text:00035A34 .text:00035A34 loc_35A34 ; CODE XREF: get_proc_path+94j .text:00035A34 ; get_proc_path+ACj .text:00035A34 B locret_35A3C .text:00035A34 ; --------------------------------------------------------------------------- .text:00035A38 off_35A38 DCD mount_proc ; DATA XREF: get_proc_path+D0r .text:00035A3C ; --------------------------------------------------------------------------- .text:00035A3C .text:00035A3C locret_35A3C ; CODE XREF: get_proc_path:loc_35A34j .text:00035A3C LDMDB R11, {R4-R8,R11,SP,PC} .text:00035A3C ; End of function get_proc_path .text:00035A3C .text:00035A40 .text:00035A40 ; =============== S U B R O U T I N E ======================================= .text:00035A40 .text:00035A40 ; Attributes: bp-based frame .text:00035A40 .text:00035A40 WEAK get_nprocs_conf .text:00035A40 get_nprocs_conf ; CODE XREF: sysconf:loc_34364p .text:00035A40 ; sysconf:loc_3436Cp .text:00035A40 .text:00035A40 var_2000 = -0x2000 .text:00035A40 .text:00035A40 MOV R12, SP .text:00035A44 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:00035A48 SUB R11, R12, #4 .text:00035A4C MOV R5, #1 .text:00035A50 SUB R4, R11, #-var_2000 .text:00035A54 SUB R4, R4, #0x1C .text:00035A58 MOV R0, R4 .text:00035A5C MOV R1, #0x2000 .text:00035A60 SUB SP, SP, #0x2000 .text:00035A64 BL get_proc_path .text:00035A68 SUBS R6, R0, #0 .text:00035A6C MOV R7, R4 .text:00035A70 BEQ loc_35AF8 .text:00035A74 MOV R0, R6 .text:00035A78 BL strlen .text:00035A7C ADD R0, R0, #0xC .text:00035A80 BIC R0, R0, #3 .text:00035A84 RSB SP, R0, SP .text:00035A88 MOV R0, SP .text:00035A8C MOV R1, R6 .text:00035A90 BL stpcpy .text:00035A94 LDR R1, =aCpuinfo ; "/cpuinfo" .text:00035A98 BL stpcpy .text:00035A9C LDR R1, =aR_0 ; "r" .text:00035AA0 MOV R0, SP .text:00035AA4 BL fopen .text:00035AA8 SUBS R4, R0, #0 .text:00035AAC BEQ loc_35AF8 .text:00035AB0 SUB R5, R5, #1 .text:00035AB4 B loc_35AD8 .text:00035AB4 ; --------------------------------------------------------------------------- .text:00035AB8 off_35AB8 DCD aCpuinfo ; DATA XREF: get_nprocs_conf+54r .text:00035AB8 ; "/cpuinfo" .text:00035ABC off_35ABC DCD aR_0 ; DATA XREF: get_nprocs_conf+5Cr .text:00035ABC ; "r" .text:00035AC0 ; --------------------------------------------------------------------------- .text:00035AC0 .text:00035AC0 loc_35AC0 ; CODE XREF: get_nprocs_conf+ACj .text:00035AC0 MOV R0, R7 .text:00035AC4 LDR R1, =aProcessor ; "processor" .text:00035AC8 MOV R2, #9 .text:00035ACC BL strncmp .text:00035AD0 CMP R0, #0 .text:00035AD4 ADDEQ R5, R5, #1 .text:00035AD8 .text:00035AD8 loc_35AD8 ; CODE XREF: get_nprocs_conf+74j .text:00035AD8 MOV R0, R7 .text:00035ADC MOV R1, #0x2000 .text:00035AE0 MOV R2, R4 .text:00035AE4 BL fgets_unlocked .text:00035AE8 CMP R0, #0 .text:00035AEC BNE loc_35AC0 .text:00035AF0 MOV R0, R4 .text:00035AF4 BL fclose .text:00035AF8 .text:00035AF8 loc_35AF8 ; CODE XREF: get_nprocs_conf+30j .text:00035AF8 ; get_nprocs_conf+6Cj .text:00035AF8 MOV R0, R5 .text:00035AFC B locret_35B04 .text:00035AFC ; --------------------------------------------------------------------------- .text:00035B00 off_35B00 DCD aProcessor ; DATA XREF: get_nprocs_conf+84r .text:00035B00 ; "processor" .text:00035B04 ; --------------------------------------------------------------------------- .text:00035B04 .text:00035B04 locret_35B04 ; CODE XREF: get_nprocs_conf+BCj .text:00035B04 LDMDB R11, {R4-R7,R11,SP,PC} .text:00035B04 ; End of function get_nprocs_conf .text:00035B04 .text:00035B08 .text:00035B08 ; =============== S U B R O U T I N E ======================================= .text:00035B08 .text:00035B08 ; Attributes: bp-based frame .text:00035B08 .text:00035B08 phys_pages_info ; CODE XREF: get_phys_pages+10p .text:00035B08 ; get_avphys_pages+10p .text:00035B08 .text:00035B08 var_2000 = -0x2000 .text:00035B08 var_24 = -0x24 .text:00035B08 .text:00035B08 MOV R12, SP .text:00035B0C STMFD SP!, {R4-R8,R10-R12,LR,PC} .text:00035B10 SUB R11, R12, #4 .text:00035B14 MOV R7, 0xFFFFDFFC .text:00035B1C MOV R3, 0xFFFFFFFF .text:00035B20 SUB R2, R11, #-var_24 .text:00035B24 MOV R10, R0 .text:00035B28 SUB SP, SP, #0x2000 .text:00035B2C SUB SP, SP, #4 .text:00035B30 STR R3, [R2,R7] .text:00035B34 SUB R4, R11, #-var_2000 .text:00035B38 SUB R4, R4, #0x24 .text:00035B3C MOV R0, R4 .text:00035B40 MOV R1, #0x2000 .text:00035B44 BL get_proc_path .text:00035B48 SUB R5, R11, #-var_2000 .text:00035B4C SUB R5, R5, #0x24 .text:00035B50 SUB R5, R5, #4 .text:00035B54 SUBS R6, R0, #0 .text:00035B58 MOV R8, R4 .text:00035B5C BEQ loc_35C04 .text:00035B60 MOV R0, R6 .text:00035B64 BL strlen .text:00035B68 ADD R0, R0, #0xC .text:00035B6C BIC R0, R0, #3 .text:00035B70 RSB SP, R0, SP .text:00035B74 MOV R0, SP .text:00035B78 MOV R1, R6 .text:00035B7C BL stpcpy .text:00035B80 LDR R1, =aMeminfo ; "/meminfo" .text:00035B84 BL stpcpy .text:00035B88 LDR R1, =aR_0 ; "r" .text:00035B8C MOV R0, SP .text:00035B90 BL fopen .text:00035B94 SUBS R4, R0, #0 .text:00035B98 BEQ loc_35C04 .text:00035B9C MOV R3, #0 .text:00035BA0 SUB R2, R11, #-var_24 .text:00035BA4 STR R3, [R2,R7] .text:00035BA8 .text:00035BA8 loc_35BA8 ; CODE XREF: phys_pages_info+CCj .text:00035BA8 MOV R0, R8 .text:00035BAC MOV R1, #0x2000 .text:00035BB0 MOV R2, R4 .text:00035BB4 BL fgets_unlocked .text:00035BB8 CMP R0, #0 .text:00035BBC BEQ loc_35BFC .text:00035BC0 MOV R0, R8 .text:00035BC4 MOV R1, R10 .text:00035BC8 MOV R2, R5 .text:00035BCC BL sscanf .text:00035BD0 CMP R0, #1 .text:00035BD4 BNE loc_35BA8 .text:00035BD8 BL getpagesize .text:00035BDC ADD R3, R0, #0x3FC .text:00035BE0 ADD R3, R3, #3 .text:00035BE4 CMP R0, #0 .text:00035BE8 MOVGE R1, R0,ASR#10 .text:00035BEC MOVLT R1, R3,ASR#10 .text:00035BF0 LDR R0, [R5] .text:00035BF4 BL __divsi3 .text:00035BF8 STR R0, [R5] .text:00035BFC .text:00035BFC loc_35BFC ; CODE XREF: phys_pages_info+B4j .text:00035BFC MOV R0, R4 .text:00035C00 BL fclose .text:00035C04 .text:00035C04 loc_35C04 ; CODE XREF: phys_pages_info+54j .text:00035C04 ; phys_pages_info+90j .text:00035C04 LDR R3, [R5] .text:00035C08 CMN R3, #1 .text:00035C0C BNE loc_35C1C .text:00035C10 BL __errno_location .text:00035C14 MOV R3, #0x26 .text:00035C18 STR R3, [R0] .text:00035C1C .text:00035C1C loc_35C1C ; CODE XREF: phys_pages_info+104j .text:00035C1C LDR R0, [R5] .text:00035C20 B locret_35C2C .text:00035C20 ; --------------------------------------------------------------------------- .text:00035C24 off_35C24 DCD aMeminfo ; DATA XREF: phys_pages_info+78r .text:00035C24 ; "/meminfo" .text:00035C28 off_35C28 DCD aR_0 ; DATA XREF: phys_pages_info+80r .text:00035C28 ; "r" .text:00035C2C ; --------------------------------------------------------------------------- .text:00035C2C .text:00035C2C locret_35C2C ; CODE XREF: phys_pages_info+118j .text:00035C2C LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:00035C2C ; End of function phys_pages_info .text:00035C2C .text:00035C30 .text:00035C30 ; =============== S U B R O U T I N E ======================================= .text:00035C30 .text:00035C30 ; Attributes: bp-based frame .text:00035C30 .text:00035C30 WEAK get_phys_pages .text:00035C30 get_phys_pages ; CODE XREF: sysconf:loc_34374p .text:00035C30 MOV R12, SP ; Alternative name is '__get_phys_pages' .text:00035C34 STMFD SP!, {R11,R12,LR,PC} .text:00035C38 LDR R0, =aMemtotalLdKb ; "MemTotal: %ld kB" .text:00035C3C SUB R11, R12, #4 .text:00035C40 BL phys_pages_info .text:00035C44 LDMDB R11, {R11,SP,PC} .text:00035C44 ; End of function get_phys_pages .text:00035C44 .text:00035C44 ; --------------------------------------------------------------------------- .text:00035C48 off_35C48 DCD aMemtotalLdKb ; DATA XREF: get_phys_pages+8r .text:00035C48 ; "MemTotal: %ld kB" .text:00035C4C .text:00035C4C ; =============== S U B R O U T I N E ======================================= .text:00035C4C .text:00035C4C ; Attributes: bp-based frame .text:00035C4C .text:00035C4C WEAK get_avphys_pages .text:00035C4C get_avphys_pages ; CODE XREF: sysconf:loc_3437Cp .text:00035C4C MOV R12, SP ; Alternative name is '__get_avphys_pages' .text:00035C50 STMFD SP!, {R11,R12,LR,PC} .text:00035C54 LDR R0, =aMemfreeLdKb ; "MemFree: %ld kB" .text:00035C58 SUB R11, R12, #4 .text:00035C5C BL phys_pages_info .text:00035C60 LDMDB R11, {R11,SP,PC} .text:00035C60 ; End of function get_avphys_pages .text:00035C60 .text:00035C60 ; --------------------------------------------------------------------------- .text:00035C64 off_35C64 DCD aMemfreeLdKb ; DATA XREF: get_avphys_pages+8r .text:00035C64 ; "MemFree: %ld kB" .text:00035C68 .text:00035C68 ; =============== S U B R O U T I N E ======================================= .text:00035C68 .text:00035C68 ; Attributes: bp-based frame .text:00035C68 .text:00035C68 free_mem_3 .text:00035C68 MOV R12, SP .text:00035C6C STMFD SP!, {R11,R12,LR,PC} .text:00035C70 LDR R3, =mount_proc .text:00035C74 LDR R0, [R3] .text:00035C78 SUB R11, R12, #4 .text:00035C7C BL free .text:00035C80 LDMDB R11, {R11,SP,PC} .text:00035C80 ; End of function free_mem_3 .text:00035C80 .text:00035C80 ; --------------------------------------------------------------------------- .text:00035C84 off_35C84 DCD mount_proc ; DATA XREF: free_mem_3+8r .text:00035C88 .text:00035C88 ; =============== S U B R O U T I N E ======================================= .text:00035C88 .text:00035C88 ; Attributes: bp-based frame .text:00035C88 .text:00035C88 EXPORT __getclktck .text:00035C88 __getclktck ; CODE XREF: sysconf:loc_342B0p .text:00035C88 MOV R12, SP .text:00035C8C STMFD SP!, {R11,R12,LR,PC} .text:00035C90 LDR R3, =_dl_clktck .text:00035C94 LDR R0, [R3] .text:00035C98 SUB R11, R12, #4 .text:00035C9C CMP R0, #0 .text:00035CA0 MOVEQ R0, #0x64 .text:00035CA4 LDMDB R11, {R11,SP,PC} .text:00035CA4 ; End of function __getclktck .text:00035CA4 .text:00035CA4 ; --------------------------------------------------------------------------- .text:00035CA8 off_35CA8 DCD _dl_clktck ; DATA XREF: __getclktck+8r .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 __init_misc .text:00035CAC MOV R12, SP .text:00035CB0 STMFD SP!, {R4,R11,R12,LR,PC} .text:00035CB4 SUB R11, R12, #4 .text:00035CB8 SUBS R4, R1, #0 .text:00035CBC LDMEQDB R11, {R4,R11,SP,PC} .text:00035CC0 LDR R0, [R4] .text:00035CC4 CMP R0, #0 .text:00035CC8 LDMEQDB R11, {R4,R11,SP,PC} .text:00035CCC MOV R1, #0x2F .text:00035CD0 BL strrchr .text:00035CD4 CMP R0, #0 .text:00035CD8 LDREQ R2, =program_invocation_short_name .text:00035CDC LDREQ R3, [R4] .text:00035CE0 LDRNE R2, =program_invocation_short_name .text:00035CE4 ADDNE R3, R0, #1 .text:00035CE8 STR R3, [R2] .text:00035CEC LDR R2, =program_invocation_name .text:00035CF0 LDR R3, [R4] .text:00035CF4 STR R3, [R2] .text:00035CF8 LDMDB R11, {R4,R11,SP,PC} .text:00035CF8 ; End of function __init_misc .text:00035CF8 .text:00035CF8 ; --------------------------------------------------------------------------- .text:00035CFC off_35CFC DCD program_invocation_short_name .text:00035CFC ; DATA XREF: __init_misc+2Cr .text:00035CFC ; __init_misc+34r .text:00035D00 off_35D00 DCD program_invocation_name ; DATA XREF: __init_misc+40r .text:00035D04 .text:00035D04 ; =============== S U B R O U T I N E ======================================= .text:00035D04 .text:00035D04 ; Attributes: bp-based frame .text:00035D04 .text:00035D04 WEAK lseek64 .text:00035D04 lseek64 ; CODE XREF: _IO_file_seek+10p .text:00035D04 ; __getdents+160p ... .text:00035D04 .text:00035D04 var_24 = -0x24 .text:00035D04 var_20 = -0x20 .text:00035D04 .text:00035D04 MOV R12, SP ; Alternative name is '__libc_lseek64' .text:00035D08 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:00035D0C SUB R11, R12, #4 .text:00035D10 MOV R7, R2 .text:00035D14 MOV R6, R1 .text:00035D18 MOV R4, R7 .text:00035D1C MOV R1, R4 .text:00035D20 MOV R4, R3 .text:00035D24 SUB R3, R11, #-var_24 .text:00035D28 MOV R2, R6 .text:00035D2C SUB SP, SP, #8 .text:00035D30 SVC 0x90008C .text:00035D34 MOV R7, R0 .text:00035D38 CMN R7, #0x1000 .text:00035D3C BLS loc_35D50 .text:00035D40 BL __errno_location .text:00035D44 RSB R3, R7, #0 .text:00035D48 MOV R7, 0xFFFFFFFF .text:00035D4C STR R3, [R0] .text:00035D50 .text:00035D50 loc_35D50 ; CODE XREF: lseek64+38j .text:00035D50 SUB R3, R11, #-var_20 .text:00035D54 LDMDA R3, {R5,R6} .text:00035D58 SUBS R3, R7, #0 .text:00035D5C MOVNE R3, #1 .text:00035D60 MOV R4, #0 .text:00035D64 RSBS R1, R3, #0 .text:00035D68 RSC R2, R4, #0 .text:00035D6C AND R3, R1, R7 .text:00035D70 AND R4, R2, R7,ASR#31 .text:00035D74 BIC R5, R5, R1 .text:00035D78 BIC R6, R6, R2 .text:00035D7C MOV R1, R4 .text:00035D80 MOV R0, R3 .text:00035D84 ORR R0, R0, R5 .text:00035D88 ORR R1, R1, R6 .text:00035D8C LDMDB R11, {R4-R7,R11,SP,PC} .text:00035D8C ; End of function lseek64 .text:00035D8C .text:00035D90 .text:00035D90 ; =============== S U B R O U T I N E ======================================= .text:00035D90 .text:00035D90 ; Attributes: bp-based frame .text:00035D90 .text:00035D90 EXPORT _dl_mcount_wrapper .text:00035D90 _dl_mcount_wrapper .text:00035D90 .text:00035D90 var_4 = -4 .text:00035D90 .text:00035D90 MOV R12, SP .text:00035D94 STMFD SP!, {R11,R12,LR,PC} .text:00035D98 SUB R11, R12, #4 .text:00035D9C MOV R1, R0 .text:00035DA0 LDR R0, [R11,#var_4] .text:00035DA4 BL _dl_mcount .text:00035DA8 LDMDB R11, {R11,SP,PC} .text:00035DA8 ; End of function _dl_mcount_wrapper .text:00035DA8 .text:00035DAC .text:00035DAC ; =============== S U B R O U T I N E ======================================= .text:00035DAC .text:00035DAC ; Attributes: bp-based frame .text:00035DAC .text:00035DAC EXPORT _dl_mcount_wrapper_check .text:00035DAC _dl_mcount_wrapper_check ; CODE XREF: do_out+40p .text:00035DAC ; do_unshift+2Cp ... .text:00035DAC .text:00035DAC var_4 = -4 .text:00035DAC .text:00035DAC MOV R12, SP .text:00035DB0 STMFD SP!, {R11,R12,LR,PC} .text:00035DB4 LDR R3, =_dl_profile_map .text:00035DB8 SUB R11, R12, #4 .text:00035DBC LDR R2, [R3] .text:00035DC0 MOV R1, R0 .text:00035DC4 CMP R2, #0 .text:00035DC8 LDMEQDB R11, {R11,SP,PC} .text:00035DCC LDR R0, [R11,#var_4] .text:00035DD0 BL _dl_mcount .text:00035DD4 LDMDB R11, {R11,SP,PC} .text:00035DD4 ; End of function _dl_mcount_wrapper_check .text:00035DD4 .text:00035DD4 ; --------------------------------------------------------------------------- .text:00035DD8 off_35DD8 DCD _dl_profile_map ; DATA XREF: _dl_mcount_wrapper_check+8r .text:00035DDC .text:00035DDC ; =============== S U B R O U T I N E ======================================= .text:00035DDC .text:00035DDC ; Attributes: bp-based frame .text:00035DDC .text:00035DDC EXPORT __gconv_open .text:00035DDC __gconv_open ; CODE XREF: _nl_init_domain_conv+288p .text:00035DDC .text:00035DDC var_88 = -0x88 .text:00035DDC var_84 = -0x84 .text:00035DDC var_64 = -0x64 .text:00035DDC var_60 = -0x60 .text:00035DDC var_5C = -0x5C .text:00035DDC var_58 = -0x58 .text:00035DDC var_54 = -0x54 .text:00035DDC var_50 = -0x50 .text:00035DDC var_4C = -0x4C .text:00035DDC var_48 = -0x48 .text:00035DDC var_44 = -0x44 .text:00035DDC var_40 = -0x40 .text:00035DDC var_3C = -0x3C .text:00035DDC var_38 = -0x38 .text:00035DDC var_34 = -0x34 .text:00035DDC var_30 = -0x30 .text:00035DDC var_2C = -0x2C .text:00035DDC .text:00035DDC MOV R12, SP .text:00035DE0 STMFD SP!, {R4-R12,LR,PC} .text:00035DE4 SUB R11, R12, #4 .text:00035DE8 SUB SP, SP, #0x40 .text:00035DEC STR R1, [R11,#var_3C] .text:00035DF0 MOV R9, R0 .text:00035DF4 MOV R0, #0 .text:00035DF8 STR R0, [R11,#var_48] .text:00035DFC STR R0, [R11,#var_4C] .text:00035E00 STR R0, [R11,#var_54] .text:00035E04 STR R0, [R11,#var_58] .text:00035E08 STR R2, [R11,#var_40] .text:00035E0C STR R3, [R11,#var_44] .text:00035E10 MOV R0, R9 .text:00035E14 MOV R1, #0x2F .text:00035E18 BL strchr .text:00035E1C SUBS R4, R0, #0 .text:00035E20 BEQ loc_35E34 .text:00035E24 ADD R0, R4, #1 .text:00035E28 MOV R1, #0x2F .text:00035E2C BL strchr .text:00035E30 MOV R4, R0 .text:00035E34 .text:00035E34 loc_35E34 ; CODE XREF: __gconv_open+44j .text:00035E34 CMP R4, #0 .text:00035E38 SUB R10, R11, #-var_30 .text:00035E3C SUB R8, R11, #-var_34 .text:00035E40 BEQ loc_360A8 .text:00035E44 LDRB R3, [R4,#1]! .text:00035E48 CMP R3, #0 .text:00035E4C BEQ loc_360A8 .text:00035E50 RSB R2, R9, R4 .text:00035E54 ADD R3, R2, #4 .text:00035E58 BIC R3, R3, #3 .text:00035E5C RSB SP, R3, SP .text:00035E60 LDR R1, [R11,#var_48] .text:00035E64 ADD R0, SP, #0x68+var_64 .text:00035E68 STRB R1, [R0,R2] .text:00035E6C MOV R1, R9 .text:00035E70 BL memcpy .text:00035E74 MOV R9, R0 .text:00035E78 MOV R0, R4 .text:00035E7C BL strlen .text:00035E80 MOV R2, R0 .text:00035E84 ADD R3, R2, #4 .text:00035E88 BIC R3, R3, #3 .text:00035E8C RSB SP, R3, SP .text:00035E90 ADD R0, SP, #0x68+var_64 .text:00035E94 MOV R1, R4 .text:00035E98 ADD R2, R2, #1 .text:00035E9C BL memcpy .text:00035EA0 LDR R3, [R11,#var_2C] .text:00035EA4 CMP R0, #0 .text:00035EA8 MOVNE R1, R0 .text:00035EAC MOVEQ R1, R3 .text:00035EB0 LDRB R2, [R1] .text:00035EB4 CMP R2, #0x2C .text:00035EB8 SUB R2, R11, #-var_2C .text:00035EBC BNE loc_35ECC .text:00035EC0 .text:00035EC0 loc_35EC0 ; CODE XREF: __gconv_open+ECj .text:00035EC0 LDRB R3, [R1,#1]! .text:00035EC4 CMP R3, #0x2C .text:00035EC8 BEQ loc_35EC0 .text:00035ECC .text:00035ECC loc_35ECC ; CODE XREF: __gconv_open+E0j .text:00035ECC LDRB R3, [R1] .text:00035ED0 MOV R0, #0 .text:00035ED4 CMP R3, R0 .text:00035ED8 BEQ loc_35F14 .text:00035EDC MOV R0, R1 .text:00035EE0 CMP R3, #0x2C .text:00035EE4 BEQ loc_35F00 .text:00035EE8 .text:00035EE8 loc_35EE8 ; CODE XREF: __gconv_open+120j .text:00035EE8 LDRB R3, [R1,#1]! .text:00035EEC AND R3, R3, #0xFF .text:00035EF0 CMP R3, #0 .text:00035EF4 BEQ loc_35F00 .text:00035EF8 CMP R3, #0x2C .text:00035EFC BNE loc_35EE8 .text:00035F00 .text:00035F00 loc_35F00 ; CODE XREF: __gconv_open+108j .text:00035F00 ; __gconv_open+118j .text:00035F00 LDRB R3, [R1] .text:00035F04 CMP R3, #0 .text:00035F08 MOVNE R3, #0 .text:00035F0C STRNEB R3, [R1],#1 .text:00035F10 STR R1, [R2] .text:00035F14 .text:00035F14 loc_35F14 ; CODE XREF: __gconv_open+FCj .text:00035F14 SUBS R6, R0, #0 .text:00035F18 BEQ loc_360A8 .text:00035F1C .text:00035F1C loc_35F1C ; CODE XREF: __gconv_open+2C8j .text:00035F1C LDR R1, =aTranslit_1 ; "TRANSLIT" .text:00035F20 MOV R0, R6 .text:00035F24 BL strcasecmp .text:00035F28 CMP R0, #0 .text:00035F2C BNE loc_35FB4 .text:00035F30 LDR R1, [R11,#var_58] .text:00035F34 MOV R5, R0 .text:00035F38 CMP R1, #0 .text:00035F3C BEQ loc_35F6C .text:00035F40 LDR R3, [R1,#0x10] .text:00035F44 LDR R2, =__gconv_transliterate .text:00035F48 CMP R3, R2 .text:00035F4C BEQ loc_35F6C .text:00035F50 .text:00035F50 loc_35F50 ; CODE XREF: __gconv_open+18Cj .text:00035F50 MOV R5, R1 .text:00035F54 LDR R1, [R5,#4] .text:00035F58 CMP R1, #0 .text:00035F5C BEQ loc_35F6C .text:00035F60 LDR R3, [R1,#0x10] .text:00035F64 CMP R3, R2 .text:00035F68 BNE loc_35F50 .text:00035F6C .text:00035F6C loc_35F6C ; CODE XREF: __gconv_open+160j .text:00035F6C ; __gconv_open+170j ... .text:00035F6C CMP R1, #0 .text:00035F70 BNE loc_3603C .text:00035F74 SUB SP, SP, #0x20 .text:00035F78 ADD R4, SP, #0x88+var_84 .text:00035F7C MOV R0, R4 .text:00035F80 MOV R2, #0x20 .text:00035F84 BL memset .text:00035F88 MOV R3, #1 .text:00035F8C STR R3, [R4,#0xC] .text:00035F90 LDR R2, =internal_trans_names.84 .text:00035F94 STR R2, [R4,#8] .text:00035F98 LDR R3, =__gconv_transliterate .text:00035F9C CMP R5, #0 .text:00035FA0 STR R3, [R4,#0x10] .text:00035FA4 STREQ R4, [R11,#var_58] .text:00035FA8 BEQ loc_3603C .text:00035FAC STR R4, [R5,#4] .text:00035FB0 B loc_3603C .text:00035FB4 ; --------------------------------------------------------------------------- .text:00035FB4 .text:00035FB4 loc_35FB4 ; CODE XREF: __gconv_open+150j .text:00035FB4 LDR R1, =aIgnore ; "IGNORE" .text:00035FB8 MOV R0, R6 .text:00035FBC BL strcasecmp .text:00035FC0 CMP R0, #0 .text:00035FC4 LDREQ R2, [R11,#var_54] .text:00035FC8 ORREQ R2, R2, #2 .text:00035FCC STREQ R2, [R11,#var_54] .text:00035FD0 BEQ loc_3603C .text:00035FD4 LDR R4, [R11,#var_58] .text:00035FD8 MOV R7, #0 .text:00035FDC B loc_35FE8 .text:00035FE0 ; --------------------------------------------------------------------------- .text:00035FE0 .text:00035FE0 loc_35FE0 ; CODE XREF: __gconv_open+21Cj .text:00035FE0 ; __gconv_open+22Cj .text:00035FE0 MOV R7, R4 .text:00035FE4 LDR R4, [R7,#4] .text:00035FE8 .text:00035FE8 loc_35FE8 ; CODE XREF: __gconv_open+200j .text:00035FE8 CMP R4, #0 .text:00035FEC BEQ loc_3600C .text:00035FF0 LDR R1, [R4] .text:00035FF4 CMP R1, #0 .text:00035FF8 BEQ loc_35FE0 .text:00035FFC MOV R0, R6 .text:00036000 BL strcasecmp .text:00036004 CMP R0, #0 .text:00036008 BNE loc_35FE0 .text:0003600C .text:0003600C loc_3600C ; CODE XREF: __gconv_open+210j .text:0003600C CMP R4, #0 .text:00036010 BNE loc_3603C .text:00036014 SUB SP, SP, #0x20 .text:00036018 ADD R5, SP, #0x88+var_84 .text:0003601C MOV R0, R5 .text:00036020 MOV R1, R4 .text:00036024 MOV R2, #0x20 .text:00036028 BL memset .text:0003602C CMP R7, #0 .text:00036030 STR R6, [SP,#0x88+var_84] .text:00036034 STREQ R5, [R11,#var_58] .text:00036038 STRNE R5, [R7,#4] .text:0003603C .text:0003603C loc_3603C ; CODE XREF: __gconv_open+194j .text:0003603C ; __gconv_open+1CCj ... .text:0003603C LDR R2, [R11,#var_2C] .text:00036040 LDRB R3, [R2] .text:00036044 CMP R3, #0x2C .text:00036048 BNE loc_36058 .text:0003604C .text:0003604C loc_3604C ; CODE XREF: __gconv_open+278j .text:0003604C LDRB R3, [R2,#1]! .text:00036050 CMP R3, #0x2C .text:00036054 BEQ loc_3604C .text:00036058 .text:00036058 loc_36058 ; CODE XREF: __gconv_open+26Cj .text:00036058 LDRB R3, [R2] .text:0003605C MOV R1, #0 .text:00036060 CMP R3, R1 .text:00036064 BEQ loc_360A0 .text:00036068 MOV R1, R2 .text:0003606C CMP R3, #0x2C .text:00036070 BEQ loc_3608C .text:00036074 .text:00036074 loc_36074 ; CODE XREF: __gconv_open+2ACj .text:00036074 LDRB R3, [R2,#1]! .text:00036078 AND R3, R3, #0xFF .text:0003607C CMP R3, #0 .text:00036080 BEQ loc_3608C .text:00036084 CMP R3, #0x2C .text:00036088 BNE loc_36074 .text:0003608C .text:0003608C loc_3608C ; CODE XREF: __gconv_open+294j .text:0003608C ; __gconv_open+2A4j .text:0003608C LDRB R3, [R2] .text:00036090 CMP R3, #0 .text:00036094 MOVNE R3, #0 .text:00036098 STRNEB R3, [R2],#1 .text:0003609C STR R2, [R11,#var_2C] .text:000360A0 .text:000360A0 loc_360A0 ; CODE XREF: __gconv_open+288j .text:000360A0 SUBS R6, R1, #0 .text:000360A4 BNE loc_35F1C .text:000360A8 .text:000360A8 loc_360A8 ; CODE XREF: __gconv_open+64j .text:000360A8 ; __gconv_open+70j ... .text:000360A8 LDR R0, [R11,#var_3C] .text:000360AC MOV R1, #0x2F .text:000360B0 BL strchr .text:000360B4 CMP R0, #0 .text:000360B8 BEQ loc_36108 .text:000360BC ADD R0, R0, #1 .text:000360C0 MOV R1, #0x2F .text:000360C4 BL strchr .text:000360C8 CMP R0, #0 .text:000360CC BEQ loc_36108 .text:000360D0 LDRB R3, [R0,#1]! .text:000360D4 CMP R3, #0 .text:000360D8 BEQ loc_36108 .text:000360DC LDR R3, [R11,#var_3C] .text:000360E0 RSB R2, R3, R0 .text:000360E4 ADD R3, R2, #4 .text:000360E8 BIC R3, R3, #3 .text:000360EC RSB SP, R3, SP .text:000360F0 ADD R0, SP, #0x88+var_84 .text:000360F4 MOV R3, #0 .text:000360F8 STRB R3, [R0,R2] .text:000360FC LDR R1, [R11,#var_3C] .text:00036100 BL memcpy .text:00036104 STR R0, [R11,#var_3C] .text:00036108 .text:00036108 loc_36108 ; CODE XREF: __gconv_open+2DCj .text:00036108 ; __gconv_open+2F0j ... .text:00036108 LDR R0, [R11,#var_44] .text:0003610C STR R0, [SP,#0x88+var_88] .text:00036110 MOV R2, R10 .text:00036114 MOV R3, R8 .text:00036118 LDR R1, [R11,#var_3C] .text:0003611C MOV R0, R9 .text:00036120 BL __gconv_find_transform .text:00036124 CMP R0, #0 .text:00036128 STR R0, [R11,#var_50] .text:0003612C BNE loc_364B8 .text:00036130 LDR R4, [R11,#var_58] .text:00036134 MOV R5, R0 .text:00036138 CMP R4, #0 .text:0003613C BEQ loc_36180 .text:00036140 .text:00036140 loc_36140 ; CODE XREF: __gconv_open+3A0j .text:00036140 LDR R3, [R4] .text:00036144 CMP R3, #0 .text:00036148 BEQ loc_3615C .text:0003614C MOV R0, R4 .text:00036150 BL __gconv_translit_find .text:00036154 CMP R0, #0 .text:00036158 BNE loc_36164 .text:0003615C .text:0003615C loc_3615C ; CODE XREF: __gconv_open+36Cj .text:0003615C MOV R5, R4 .text:00036160 B loc_36174 .text:00036164 ; --------------------------------------------------------------------------- .text:00036164 .text:00036164 loc_36164 ; CODE XREF: __gconv_open+37Cj .text:00036164 CMP R5, #0 .text:00036168 LDR R3, [R4,#4] .text:0003616C STRNE R3, [R5,#4] .text:00036170 STREQ R3, [R11,#var_58] .text:00036174 .text:00036174 loc_36174 ; CODE XREF: __gconv_open+384j .text:00036174 LDR R4, [R4,#4] .text:00036178 CMP R4, #0 .text:0003617C BNE loc_36140 .text:00036180 .text:00036180 loc_36180 ; CODE XREF: __gconv_open+360j .text:00036180 LDR R0, [R11,#var_34] .text:00036184 ADD R0, R0, R0,LSL#3 .text:00036188 MOV R0, R0,LSL#2 .text:0003618C ADD R0, R0, #8 .text:00036190 BL malloc .text:00036194 CMP R0, #0 .text:00036198 STR R0, [R11,#var_48] .text:0003619C BNE loc_361D4 .text:000361A0 MOV R1, #3 .text:000361A4 STR R1, [R11,#var_50] .text:000361A8 B loc_363D4 .text:000361AC ; --------------------------------------------------------------------------- .text:000361AC .text:000361AC loc_361AC ; CODE XREF: __gconv_open+4E8j .text:000361AC MOV R2, #3 .text:000361B0 STR R2, [R11,#var_50] .text:000361B4 B loc_363E0 .text:000361B8 ; --------------------------------------------------------------------------- .text:000361B8 .text:000361B8 loc_361B8 ; CODE XREF: __gconv_open+5ACj .text:000361B8 MOV R3, #3 .text:000361BC STR R3, [R11,#var_50] .text:000361C0 B loc_363E0 .text:000361C0 ; --------------------------------------------------------------------------- .text:000361C4 off_361C4 DCD aTranslit_1 ; DATA XREF: __gconv_open:loc_35F1Cr .text:000361C4 ; "TRANSLIT" .text:000361C8 off_361C8 DCD __gconv_transliterate ; DATA XREF: __gconv_open+168r .text:000361C8 ; __gconv_open+1BCr .text:000361CC off_361CC DCD internal_trans_names.84 ; DATA XREF: __gconv_open+1B4r .text:000361D0 off_361D0 DCD aIgnore ; DATA XREF: __gconv_open:loc_35FB4r .text:000361D0 ; "IGNORE" .text:000361D4 ; --------------------------------------------------------------------------- .text:000361D4 .text:000361D4 loc_361D4 ; CODE XREF: __gconv_open+3C0j .text:000361D4 LDR R3, [R11,#var_30] .text:000361D8 LDR R0, [R11,#var_48] .text:000361DC STR R3, [R0,#4] .text:000361E0 LDR R2, [R11,#var_34] .text:000361E4 STR R2, [R0] .text:000361E8 MOV R1, #0 .text:000361EC STR R1, [R11,#var_4C] .text:000361F0 ADD R4, R0, #8 .text:000361F4 LDR R2, [R11,#var_34] .text:000361F8 MOV R0, R4 .text:000361FC ADD R2, R2, R2,LSL#3 .text:00036200 MOV R2, R2,LSL#2 .text:00036204 BL memset .text:00036208 LDR R3, [R11,#var_34] .text:0003620C LDR R1, [R11,#var_4C] .text:00036210 STR R4, [R11,#var_5C] .text:00036214 CMP R1, R3 .text:00036218 BCS loc_363D4 .text:0003621C LDR R2, [R11,#var_48] .text:00036220 MOV R9, R1 .text:00036224 STR R1, [R11,#var_60] .text:00036228 MOV R10, R4 .text:0003622C ADD R2, R2, #0x20 .text:00036230 STR R2, [R11,#var_64] .text:00036234 .text:00036234 loc_36234 ; CODE XREF: __gconv_open+5F4j .text:00036234 LDR R4, [R11,#var_58] .text:00036238 LDR R0, [R11,#var_48] .text:0003623C LDR R1, [R11,#var_64] .text:00036240 CMP R4, #0 .text:00036244 ADD R3, R0, #0x1C .text:00036248 STR R1, [R3,R9] .text:0003624C BEQ loc_36334 .text:00036250 .text:00036250 loc_36250 ; CODE XREF: __gconv_open+554j .text:00036250 LDR R3, [R4,#0xC] .text:00036254 MOV R5, #0 .text:00036258 CMP R5, R3 .text:0003625C BCS loc_36328 .text:00036260 MOV R8, R10 .text:00036264 LDR R6, [R11,#var_60] .text:00036268 .text:00036268 loc_36268 ; CODE XREF: __gconv_open+548j .text:00036268 LDR R3, [R11,#var_30] .text:0003626C LDR R2, [R4,#8] .text:00036270 ADD R3, R6, R3 .text:00036274 LDR R0, [R3,#0xC] .text:00036278 LDR R1, [R2,R5,LSL#2] .text:0003627C BL strcasecmp .text:00036280 SUBS R7, R0, #0 .text:00036284 BNE loc_36318 .text:00036288 LDR R2, [R4,#0x18] .text:0003628C STR R7, [R11,#var_38] .text:00036290 CMP R2, #0 .text:00036294 BEQ loc_362B8 .text:00036298 LDR R3, [R11,#var_30] .text:0003629C ADD R3, R6, R3 .text:000362A0 LDR R1, [R3,#0x10] .text:000362A4 SUB R0, R11, #-var_38 .text:000362A8 MOV LR, PC .text:000362AC MOV PC, R2 .text:000362B0 CMP R0, #0 .text:000362B4 BNE loc_36328 .text:000362B8 .text:000362B8 loc_362B8 ; CODE XREF: __gconv_open+4B8j .text:000362B8 MOV R0, #0x14 .text:000362BC BL malloc .text:000362C0 CMP R0, #0 .text:000362C4 BEQ loc_361AC .text:000362C8 LDR R3, [R4,#0x10] .text:000362CC STR R3, [R0] .text:000362D0 LDR R2, [R4,#0x14] .text:000362D4 STR R2, [R0,#4] .text:000362D8 LDR R3, [R4,#0x1C] .text:000362DC STR R3, [R0,#8] .text:000362E0 LDR R2, [R11,#var_38] .text:000362E4 STR R7, [R0,#0x10] .text:000362E8 STR R2, [R0,#0xC] .text:000362EC LDR R3, [R8,#0x20] .text:000362F0 ADD R1, R8, #0x20 .text:000362F4 CMP R3, #0 .text:000362F8 BEQ loc_36310 .text:000362FC .text:000362FC loc_362FC ; CODE XREF: __gconv_open+530j .text:000362FC LDR R3, [R1] .text:00036300 LDR R2, [R3,#0x10] .text:00036304 ADD R1, R3, #0x10 .text:00036308 CMP R2, #0 .text:0003630C BNE loc_362FC .text:00036310 .text:00036310 loc_36310 ; CODE XREF: __gconv_open+51Cj .text:00036310 STR R0, [R1] .text:00036314 B loc_36328 .text:00036318 ; --------------------------------------------------------------------------- .text:00036318 .text:00036318 loc_36318 ; CODE XREF: __gconv_open+4A8j .text:00036318 LDR R3, [R4,#0xC] .text:0003631C ADD R5, R5, #1 .text:00036320 CMP R5, R3 .text:00036324 BCC loc_36268 .text:00036328 .text:00036328 loc_36328 ; CODE XREF: __gconv_open+480j .text:00036328 ; __gconv_open+4D8j ... .text:00036328 LDR R4, [R4,#4] .text:0003632C CMP R4, #0 .text:00036330 BNE loc_36250 .text:00036334 .text:00036334 loc_36334 ; CODE XREF: __gconv_open+470j .text:00036334 LDR R3, [R11,#var_34] .text:00036338 LDR R2, [R11,#var_4C] .text:0003633C SUB R3, R3, #1 .text:00036340 CMP R2, R3 .text:00036344 LDRCS R0, [R11,#var_54] .text:00036348 ORRCS R3, R0, #1 .text:0003634C STRCS R3, [R10,#8] .text:00036350 BCS loc_363D4 .text:00036354 LDR R1, [R11,#var_54] .text:00036358 STR R1, [R10,#8] .text:0003635C LDR R2, [R11,#var_30] .text:00036360 LDR R3, [R11,#var_60] .text:00036364 ADD R2, R3, R2 .text:00036368 LDR R3, [R2,#0x2C] .text:0003636C RSB R3, R3, R3,LSL#8 .text:00036370 MOV R4, R3,LSL#5 .text:00036374 MOV R0, R4 .text:00036378 BL malloc .text:0003637C LDR R1, [R11,#var_5C] .text:00036380 CMP R0, #0 .text:00036384 STR R0, [R9,R1] .text:00036388 BEQ loc_361B8 .text:0003638C LDR R2, [R11,#var_48] .text:00036390 ADD R3, R2, #0xC .text:00036394 ADD R2, R0, R4 .text:00036398 STR R2, [R3,R9] .text:0003639C SUB R0, R11, #-var_64 .text:000363A0 LDMIA R0, {R0,R3} .text:000363A4 ADD R3, R3, #0x38 .text:000363A8 STR R3, [R11,#var_60] .text:000363AC ADD R0, R0, #0x24 .text:000363B0 STR R0, [R11,#var_64] .text:000363B4 ADD R10, R10, #0x24 .text:000363B8 LDR R1, [R11,#var_4C] .text:000363BC ADD R9, R9, #0x24 .text:000363C0 LDR R3, [R11,#var_34] .text:000363C4 ADD R1, R1, #1 .text:000363C8 STR R1, [R11,#var_4C] .text:000363CC CMP R1, R3 .text:000363D0 BCC loc_36234 .text:000363D4 .text:000363D4 loc_363D4 ; CODE XREF: __gconv_open+3CCj .text:000363D4 ; __gconv_open+43Cj ... .text:000363D4 LDR R2, [R11,#var_50] .text:000363D8 CMP R2, #0 .text:000363DC BEQ loc_364B8 .text:000363E0 .text:000363E0 loc_363E0 ; CODE XREF: __gconv_open+3D8j .text:000363E0 ; __gconv_open+3E4j .text:000363E0 BL __errno_location .text:000363E4 LDR R3, [R11,#var_48] .text:000363E8 LDR R8, [R0] .text:000363EC CMP R3, #0 .text:000363F0 BEQ loc_364A4 .text:000363F4 LDR R3, [R11,#var_4C] .text:000363F8 MOV R0, R3 .text:000363FC SUB R0, R0, #1 .text:00036400 CMP R3, #0 .text:00036404 STR R0, [R11,#var_4C] .text:00036408 BEQ loc_36494 .text:0003640C LDR R1, [R11,#var_48] .text:00036410 ADD R1, R1, #8 .text:00036414 STR R1, [R11,#var_5C] .text:00036418 .text:00036418 loc_36418 ; CODE XREF: __gconv_open+6B4j .text:00036418 LDR R2, [R11,#var_4C] .text:0003641C LDR R0, [R11,#var_48] .text:00036420 MOV R1, R2,LSL#3 .text:00036424 ADD R2, R1, R2 .text:00036428 ADD R3, R0, #0x28 .text:0003642C LDR R5, [R3,R2,LSL#2] .text:00036430 MOV R6, R1 .text:00036434 LDR R1, [R11,#var_4C] .text:00036438 CMP R5, #0 .text:0003643C SUB R7, R1, #1 .text:00036440 BEQ loc_36474 .text:00036444 .text:00036444 loc_36444 ; CODE XREF: __gconv_open+694j .text:00036444 MOV R4, R5 .text:00036448 LDR R3, [R4,#8] .text:0003644C LDR R5, [R5,#0x10] .text:00036450 CMP R3, #0 .text:00036454 BEQ loc_36464 .text:00036458 LDR R0, [R4,#0xC] .text:0003645C MOV LR, PC .text:00036460 MOV PC, R3 .text:00036464 .text:00036464 loc_36464 ; CODE XREF: __gconv_open+678j .text:00036464 MOV R0, R4 .text:00036468 BL free .text:0003646C CMP R5, #0 .text:00036470 BNE loc_36444 .text:00036474 .text:00036474 loc_36474 ; CODE XREF: __gconv_open+664j .text:00036474 LDR R4, [R11,#var_4C] .text:00036478 LDR R2, [R11,#var_5C] .text:0003647C ADD R3, R6, R4 .text:00036480 LDR R0, [R2,R3,LSL#2] .text:00036484 STR R7, [R11,#var_4C] .text:00036488 BL free .text:0003648C CMP R4, #0 .text:00036490 BNE loc_36418 .text:00036494 .text:00036494 loc_36494 ; CODE XREF: __gconv_open+62Cj .text:00036494 LDR R0, [R11,#var_48] .text:00036498 MOV R3, #0 .text:0003649C STR R3, [R11,#var_48] .text:000364A0 BL free .text:000364A4 .text:000364A4 loc_364A4 ; CODE XREF: __gconv_open+614j .text:000364A4 LDR R0, [R11,#var_30] .text:000364A8 LDR R1, [R11,#var_34] .text:000364AC BL __gconv_close_transform .text:000364B0 BL __errno_location .text:000364B4 STR R8, [R0] .text:000364B8 .text:000364B8 loc_364B8 ; CODE XREF: __gconv_open+350j .text:000364B8 ; __gconv_open+600j .text:000364B8 LDR R2, [R11,#var_48] .text:000364BC LDR R1, [R11,#var_40] .text:000364C0 LDR R0, [R11,#var_50] .text:000364C4 STR R2, [R1] .text:000364C8 LDMDB R11, {R4-R11,SP,PC} .text:000364C8 ; End of function __gconv_open .text:000364C8 .text:000364CC .text:000364CC ; =============== S U B R O U T I N E ======================================= .text:000364CC .text:000364CC ; Attributes: bp-based frame .text:000364CC .text:000364CC EXPORT __gconv .text:000364CC __gconv ; CODE XREF: _nl_find_msg+418p .text:000364CC .text:000364CC var_40 = -0x40 .text:000364CC var_3C = -0x3C .text:000364CC var_38 = -0x38 .text:000364CC var_34 = -0x34 .text:000364CC var_30 = -0x30 .text:000364CC var_2C = -0x2C .text:000364CC arg_0 = 4 .text:000364CC arg_4 = 8 .text:000364CC .text:000364CC MOV R12, SP .text:000364D0 STMFD SP!, {R4-R12,LR,PC} .text:000364D4 SUB R11, R12, #4 .text:000364D8 MOV R4, R0 .text:000364DC CMN R4, #1 .text:000364E0 MOV R7, R1 .text:000364E4 MOV R9, R2 .text:000364E8 MOV R6, R3 .text:000364EC SUB SP, SP, #0x18 .text:000364F0 MOVEQ R0, #8 .text:000364F4 BEQ locret_36688 .text:000364F8 LDR R1, [R11,#arg_4] .text:000364FC LDR R3, [R4] .text:00036500 CMP R1, #0 .text:00036504 SUB R3, R3, #1 .text:00036508 STR R3, [R11,#var_2C] .text:0003650C BNE loc_36524 .text:00036510 LDR R0, =aIrreversibleVo ; "irreversible != ((void *)0)" .text:00036514 LDR R1, =aGconv_c ; "gconv.c" .text:00036518 LDR R3, =a__gconv ; "__gconv" .text:0003651C MOV R2, #0x2A .text:00036520 BL __assert_fail .text:00036524 ; --------------------------------------------------------------------------- .text:00036524 .text:00036524 loc_36524 ; CODE XREF: __gconv+40j .text:00036524 LDR R2, [R11,#arg_4] .text:00036528 MOV R8, #0 .text:0003652C STR R8, [R2] .text:00036530 CMP R6, #0 .text:00036534 MOV R0, R8 .text:00036538 LDR R3, [R11,#var_2C] .text:0003653C ADD R10, R4, #8 .text:00036540 MOV R2, R3,LSL#3 .text:00036544 ADD R3, R2, R3 .text:00036548 MOV R1, R3,LSL#2 .text:0003654C STR R2, [R11,#var_30] .text:00036550 LDRNE R0, [R6] .text:00036554 STR R0, [R10,R1] .text:00036558 CMP R7, #0 .text:0003655C LDR R3, [R11,#arg_0] .text:00036560 ADD R2, R4, #0xC .text:00036564 STR R3, [R2,R1] .text:00036568 BEQ loc_3657C .text:0003656C LDR R3, [R7] .text:00036570 CMP R3, #0 .text:00036574 MOV R5, R3 .text:00036578 BNE loc_365B8 .text:0003657C .text:0003657C loc_3657C ; CODE XREF: __gconv+9Cj .text:0003657C LDR R3, [R4,#4] .text:00036580 LDR R0, [R3,#0x14] .text:00036584 BL _dl_mcount_wrapper_check .text:00036588 STR R8, [SP,#0x40+var_40] .text:0003658C LDR R1, [R11,#arg_4] .text:00036590 MOV R3, #1 .text:00036594 STMFA SP, {R1,R3,R8} .text:00036598 MOV R2, R8 .text:0003659C MOV R3, R2 .text:000365A0 LDR R12, [R4,#4] .text:000365A4 MOV R1, R10 .text:000365A8 MOV R0, R12 .text:000365AC MOV LR, PC .text:000365B0 LDR PC, [R12,#0x14] .text:000365B4 B loc_36660 .text:000365B8 ; --------------------------------------------------------------------------- .text:000365B8 .text:000365B8 loc_365B8 ; CODE XREF: __gconv+ACj .text:000365B8 CMP R6, #0 .text:000365BC BEQ loc_365CC .text:000365C0 LDR R3, [R6] .text:000365C4 CMP R3, #0 .text:000365C8 BNE loc_365E0 .text:000365CC .text:000365CC loc_365CC ; CODE XREF: __gconv+F0j .text:000365CC LDR R0, =aOutbufVoid0Out ; "outbuf != ((void *)0) && *outbuf != ((v"... .text:000365D0 LDR R1, =aGconv_c ; "gconv.c" .text:000365D4 LDR R3, =a__gconv ; "__gconv" .text:000365D8 MOV R2, #0x39 .text:000365DC BL __assert_fail .text:000365E0 ; --------------------------------------------------------------------------- .text:000365E0 .text:000365E0 loc_365E0 ; CODE XREF: __gconv+FCj .text:000365E0 LDR R2, [R4,#4] .text:000365E4 B loc_3660C .text:000365E4 ; --------------------------------------------------------------------------- .text:000365E8 off_365E8 DCD aIrreversibleVo ; DATA XREF: __gconv+44r .text:000365E8 ; "irreversible != ((void *)0)" .text:000365EC off_365EC DCD aGconv_c ; DATA XREF: __gconv+48r .text:000365EC ; __gconv+104r .text:000365EC ; "gconv.c" .text:000365F0 off_365F0 DCD a__gconv ; DATA XREF: __gconv+4Cr .text:000365F0 ; __gconv+108r .text:000365F0 ; "__gconv" .text:000365F4 off_365F4 DCD aOutbufVoid0Out ; DATA XREF: __gconv:loc_365CCr .text:000365F4 ; "outbuf != ((void *)0) && *outbuf != ((v"... .text:000365F8 ; --------------------------------------------------------------------------- .text:000365F8 .text:000365F8 loc_365F8 ; CODE XREF: __gconv+190j .text:000365F8 LDR R2, [R4,#4] .text:000365FC LDR R3, [R2,#0x20] .text:00036600 ADD R3, R5, R3 .text:00036604 CMP R3, R9 .text:00036608 BHI loc_36660 .text:0003660C .text:0003660C loc_3660C ; CODE XREF: __gconv+118j .text:0003660C LDR R0, [R2,#0x14] .text:00036610 BL _dl_mcount_wrapper_check .text:00036614 MOV R3, #0 .text:00036618 STR R3, [SP,#0x40+var_40] .text:0003661C LDR R2, [R11,#arg_4] .text:00036620 STR R3, [SP,#0x40+var_38] .text:00036624 STR R3, [SP,#0x40+var_34] .text:00036628 STR R2, [SP,#0x40+var_3C] .text:0003662C MOV R1, R10 .text:00036630 MOV R3, R9 .text:00036634 LDR R12, [R4,#4] .text:00036638 MOV R2, R7 .text:0003663C MOV R0, R12 .text:00036640 MOV LR, PC .text:00036644 LDR PC, [R12,#0x14] .text:00036648 CMP R0, #4 .text:0003664C BNE loc_36660 .text:00036650 LDR R3, [R7] .text:00036654 CMP R5, R3 .text:00036658 MOV R5, R3 .text:0003665C BNE loc_365F8 .text:00036660 .text:00036660 loc_36660 ; CODE XREF: __gconv+E8j .text:00036660 ; __gconv+13Cj ... .text:00036660 CMP R6, #0 .text:00036664 BEQ locret_36688 .text:00036668 LDR R3, [R6] .text:0003666C CMP R3, #0 .text:00036670 BEQ locret_36688 .text:00036674 SUB R1, R11, #-var_30 .text:00036678 LDMIA R1, {R1,R2} .text:0003667C ADD R3, R1, R2 .text:00036680 LDR R2, [R10,R3,LSL#2] .text:00036684 STR R2, [R6] .text:00036688 .text:00036688 locret_36688 ; CODE XREF: __gconv+28j .text:00036688 ; __gconv+198j ... .text:00036688 LDMDB R11, {R4-R11,SP,PC} .text:00036688 ; End of function __gconv .text:00036688 .text:0003668C .text:0003668C ; =============== S U B R O U T I N E ======================================= .text:0003668C .text:0003668C ; Attributes: bp-based frame .text:0003668C .text:0003668C EXPORT __gconv_close .text:0003668C __gconv_close ; CODE XREF: _nl_free_domain_conv+30p .text:0003668C MOV R12, SP .text:00036690 STMFD SP!, {R4-R12,LR,PC} .text:00036694 SUB R11, R12, #4 .text:00036698 MOV R8, R0 .text:0003669C LDR R9, [R8,#4] .text:000366A0 ADD R6, R8, #8 .text:000366A4 LDR R10, [R8] .text:000366A8 .text:000366A8 loc_366A8 ; CODE XREF: __gconv_close+84j .text:000366A8 LDR R4, [R6,#0x20] .text:000366AC ADD R7, R6, #0x24 .text:000366B0 CMP R4, #0 .text:000366B4 BEQ loc_366E8 .text:000366B8 .text:000366B8 loc_366B8 ; CODE XREF: __gconv_close+58j .text:000366B8 MOV R5, R4 .text:000366BC LDR R3, [R5,#8] .text:000366C0 LDR R4, [R4,#0x10] .text:000366C4 CMP R3, #0 .text:000366C8 BEQ loc_366D8 .text:000366CC LDR R0, [R5,#0xC] .text:000366D0 MOV LR, PC .text:000366D4 MOV PC, R3 .text:000366D8 .text:000366D8 loc_366D8 ; CODE XREF: __gconv_close+3Cj .text:000366D8 MOV R0, R5 .text:000366DC BL free .text:000366E0 CMP R4, #0 .text:000366E4 BNE loc_366B8 .text:000366E8 .text:000366E8 loc_366E8 ; CODE XREF: __gconv_close+28j .text:000366E8 LDR R3, [R6,#8] .text:000366EC TST R3, #1 .text:000366F0 BNE loc_36704 .text:000366F4 LDR R0, [R6] .text:000366F8 CMP R0, #0 .text:000366FC BEQ loc_36704 .text:00036700 BL free .text:00036704 .text:00036704 loc_36704 ; CODE XREF: __gconv_close+64j .text:00036704 ; __gconv_close+70j .text:00036704 LDR R3, [R6,#8] .text:00036708 MOV R6, R7 .text:0003670C TST R3, #1 .text:00036710 BEQ loc_366A8 .text:00036714 MOV R0, R8 .text:00036718 BL free .text:0003671C MOV R0, R9 .text:00036720 MOV R1, R10 .text:00036724 BL __gconv_close_transform .text:00036728 LDMDB R11, {R4-R11,SP,PC} .text:00036728 ; End of function __gconv_close .text:00036728 .text:0003672C .text:0003672C ; =============== S U B R O U T I N E ======================================= .text:0003672C .text:0003672C ; Attributes: bp-based frame .text:0003672C .text:0003672C upstr .text:0003672C MOV R12, SP .text:00036730 STMFD SP!, {R4,R11,R12,LR,PC} .text:00036734 SUB R11, R12, #4 .text:00036738 MOV LR, R1 .text:0003673C MOV R12, R0 .text:00036740 LDR R4, =__ctype_toupper .text:00036744 .text:00036744 loc_36744 ; CODE XREF: upstr+2Cj .text:00036744 LDRB R3, [LR],#1 .text:00036748 LDR R2, [R4] .text:0003674C LDR R1, [R2,R3,LSL#2] .text:00036750 TST R1, #0xFF .text:00036754 STRB R1, [R12],#1 .text:00036758 BNE loc_36744 .text:0003675C LDMDB R11, {R4,R11,SP,PC} .text:0003675C ; End of function upstr .text:0003675C .text:0003675C ; --------------------------------------------------------------------------- .text:00036760 off_36760 DCD __ctype_toupper ; DATA XREF: upstr+14r .text:00036764 .text:00036764 ; =============== S U B R O U T I N E ======================================= .text:00036764 .text:00036764 ; Attributes: bp-based frame .text:00036764 .text:00036764 EXPORT __gconv_alias_compare .text:00036764 __gconv_alias_compare ; DATA XREF: do_lookup_alias+18o .text:00036764 ; do_lookup_alias:off_372ECo ... .text:00036764 MOV R12, SP .text:00036768 STMFD SP!, {R11,R12,LR,PC} .text:0003676C LDR R0, [R0] .text:00036770 LDR R1, [R1] .text:00036774 SUB R11, R12, #4 .text:00036778 BL strcmp .text:0003677C LDMDB R11, {R11,SP,PC} .text:0003677C ; End of function __gconv_alias_compare .text:0003677C .text:00036780 .text:00036780 ; =============== S U B R O U T I N E ======================================= .text:00036780 .text:00036780 ; Attributes: bp-based frame .text:00036780 .text:00036780 derivation_compare ; DATA XREF: derivation_lookup+28o .text:00036780 ; derivation_lookup:off_3681Co ... .text:00036780 MOV R12, SP .text:00036784 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:00036788 MOV R5, R0 .text:0003678C LDR R0, [R5] .text:00036790 MOV R4, R1 .text:00036794 LDR R1, [R4] .text:00036798 SUB R11, R12, #4 .text:0003679C BL strcmp .text:000367A0 CMP R0, #0 .text:000367A4 LDMNEDB R11, {R4,R5,R11,SP,PC} .text:000367A8 LDR R0, [R5,#4] .text:000367AC LDR R1, [R4,#4] .text:000367B0 BL strcmp .text:000367B4 LDMDB R11, {R4,R5,R11,SP,PC} .text:000367B4 ; End of function derivation_compare .text:000367B4 .text:000367B8 .text:000367B8 ; =============== S U B R O U T I N E ======================================= .text:000367B8 .text:000367B8 ; Attributes: bp-based frame .text:000367B8 .text:000367B8 derivation_lookup ; CODE XREF: find_derivation+54p .text:000367B8 .text:000367B8 var_28 = -0x28 .text:000367B8 var_24 = -0x24 .text:000367B8 var_20 = -0x20 .text:000367B8 var_1C = -0x1C .text:000367B8 .text:000367B8 MOV R12, SP .text:000367BC STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:000367C0 SUB R11, R12, #4 .text:000367C4 SUB SP, SP, #0x10 .text:000367C8 STR R0, [R11,#var_28] .text:000367CC STR R1, [R11,#var_24] .text:000367D0 MOV R4, #0 .text:000367D4 STR R4, [R11,#var_20] .text:000367D8 STR R4, [R11,#var_1C] .text:000367DC MOV R5, R2 .text:000367E0 LDR R2, =derivation_compare .text:000367E4 MOV R6, R3 .text:000367E8 LDR R1, =known_derivations .text:000367EC SUB R0, R11, #-var_28 .text:000367F0 BL tfind .text:000367F4 CMP R0, #0 .text:000367F8 BEQ loc_36824 .text:000367FC LDR R3, [R0] .text:00036800 LDR R2, [R3,#8] .text:00036804 STR R2, [R5] .text:00036808 LDR R3, [R0] .text:0003680C LDR R2, [R3,#0xC] .text:00036810 MOV R0, R4 .text:00036814 STR R2, [R6] .text:00036818 B locret_36828 .text:00036818 ; --------------------------------------------------------------------------- .text:0003681C off_3681C DCD derivation_compare ; DATA XREF: derivation_lookup+28r .text:00036820 off_36820 DCD known_derivations ; DATA XREF: derivation_lookup+30r .text:00036824 ; --------------------------------------------------------------------------- .text:00036824 .text:00036824 loc_36824 ; CODE XREF: derivation_lookup+40j .text:00036824 MOV R0, #1 .text:00036828 .text:00036828 locret_36828 ; CODE XREF: derivation_lookup+60j .text:00036828 LDMDB R11, {R4-R6,R11,SP,PC} .text:00036828 ; End of function derivation_lookup .text:00036828 .text:0003682C .text:0003682C ; =============== S U B R O U T I N E ======================================= .text:0003682C .text:0003682C ; Attributes: bp-based frame .text:0003682C .text:0003682C add_derivation ; CODE XREF: find_derivation+57Cp .text:0003682C MOV R12, SP .text:00036830 STMFD SP!, {R4-R12,LR,PC} .text:00036834 SUB R11, R12, #4 .text:00036838 MOV R7, R0 .text:0003683C MOV R8, R1 .text:00036840 MOV R10, R2 .text:00036844 MOV R9, R3 .text:00036848 BL strlen .text:0003684C ADD R5, R0, #1 .text:00036850 MOV R0, R8 .text:00036854 BL strlen .text:00036858 MOV R3, R0 .text:0003685C ADD R0, R3, #0x11 .text:00036860 ADD R0, R5, R0 .text:00036864 ADD R6, R3, #1 .text:00036868 BL malloc .text:0003686C SUBS R4, R0, #0 .text:00036870 LDMEQDB R11, {R4-R11,SP,PC} .text:00036874 ADD R0, R4, #0x10 .text:00036878 STR R0, [R4] .text:0003687C MOV R1, R7 .text:00036880 MOV R2, R5 .text:00036884 BL mempcpy .text:00036888 MOV R1, R8 .text:0003688C MOV R2, R6 .text:00036890 BL memcpy .text:00036894 STMIB R4, {R0,R10} .text:00036898 STR R9, [R4,#0xC] .text:0003689C LDR R1, =known_derivations .text:000368A0 LDR R2, =derivation_compare .text:000368A4 MOV R0, R4 .text:000368A8 BL tsearch .text:000368AC CMP R0, #0 .text:000368B0 LDMNEDB R11, {R4-R11,SP,PC} .text:000368B4 MOV R0, R4 .text:000368B8 BL free .text:000368BC LDMDB R11, {R4-R11,SP,PC} .text:000368BC ; End of function add_derivation .text:000368BC .text:000368BC ; --------------------------------------------------------------------------- .text:000368C0 off_368C0 DCD known_derivations ; DATA XREF: add_derivation+70r .text:000368C4 off_368C4 DCD derivation_compare ; DATA XREF: add_derivation+74r .text:000368C8 .text:000368C8 ; =============== S U B R O U T I N E ======================================= .text:000368C8 .text:000368C8 ; Attributes: bp-based frame .text:000368C8 .text:000368C8 free_derivation ; DATA XREF: free_mem_4+48o .text:000368C8 ; .text:off_376B0o .text:000368C8 MOV R12, SP .text:000368CC STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:000368D0 SUB R11, R12, #4 .text:000368D4 MOV R4, R0 .text:000368D8 LDR R3, [R4,#0xC] .text:000368DC MOV R6, #0 .text:000368E0 CMP R6, R3 .text:000368E4 BCS loc_36938 .text:000368E8 MOV R5, R6 .text:000368EC .text:000368EC loc_368EC ; CODE XREF: free_derivation+6Cj .text:000368EC LDR R3, [R4,#8] .text:000368F0 ADD R0, R5, R3 .text:000368F4 LDR R2, [R0,#8] .text:000368F8 CMP R2, #0 .text:000368FC BLE loc_36924 .text:00036900 LDR R0, [R0,#0x1C] .text:00036904 CMP R0, #0 .text:00036908 BEQ loc_36924 .text:0003690C BL _dl_mcount_wrapper_check .text:00036910 LDR R3, [R4,#8] .text:00036914 ADD R3, R5, R3 .text:00036918 MOV R0, R3 .text:0003691C MOV LR, PC .text:00036920 LDR PC, [R3,#0x1C] .text:00036924 .text:00036924 loc_36924 ; CODE XREF: free_derivation+34j .text:00036924 ; free_derivation+40j .text:00036924 ADD R5, R5, #0x38 .text:00036928 LDR R3, [R4,#0xC] .text:0003692C ADD R6, R6, #1 .text:00036930 CMP R6, R3 .text:00036934 BCC loc_368EC .text:00036938 .text:00036938 loc_36938 ; CODE XREF: free_derivation+1Cj .text:00036938 LDR R3, [R4,#8] .text:0003693C LDR R0, [R3,#0xC] .text:00036940 BL free .text:00036944 ADD R2, R4, #8 .text:00036948 LDMIA R2, {R2,R3} .text:0003694C RSB R3, R3, R3,LSL#3 .text:00036950 ADD R2, R2, R3,LSL#3 .text:00036954 LDR R0, [R2,#-0x28] .text:00036958 BL free .text:0003695C LDR R0, [R4,#8] .text:00036960 BL free .text:00036964 MOV R0, R4 .text:00036968 BL free .text:0003696C LDMDB R11, {R4-R6,R11,SP,PC} .text:0003696C ; End of function free_derivation .text:0003696C .text:00036970 .text:00036970 ; =============== S U B R O U T I N E ======================================= .text:00036970 .text:00036970 ; Attributes: bp-based frame .text:00036970 .text:00036970 gen_steps ; CODE XREF: find_derivation+520p .text:00036970 .text:00036970 var_38 = -0x38 .text:00036970 var_34 = -0x34 .text:00036970 var_30 = -0x30 .text:00036970 var_2C = -0x2C .text:00036970 arg_0 = 4 .text:00036970 .text:00036970 MOV R12, SP .text:00036974 STMFD SP!, {R4-R12,LR,PC} .text:00036978 SUB R11, R12, #4 .text:0003697C MOV R5, R0 .text:00036980 MOV R6, R5 .text:00036984 SUB SP, SP, #0x10 .text:00036988 LDR R1, [R6,#0x14] .text:0003698C MOV R0, #3 .text:00036990 STR R0, [R11,#var_34] .text:00036994 STR R2, [R11,#var_2C] .text:00036998 LDR R9, [R11,#arg_0] .text:0003699C MOV R7, #0 .text:000369A0 STR R3, [R11,#var_30] .text:000369A4 CMP R1, R7 .text:000369A8 BEQ loc_369C0 .text:000369AC .text:000369AC loc_369AC ; CODE XREF: gen_steps+4Cj .text:000369AC LDR R6, [R6,#0x14] .text:000369B0 LDR R3, [R6,#0x14] .text:000369B4 ADD R7, R7, #1 .text:000369B8 CMP R3, #0 .text:000369BC BNE loc_369AC .text:000369C0 .text:000369C0 loc_369C0 ; CODE XREF: gen_steps+38j .text:000369C0 RSB R0, R7, R7,LSL#3 .text:000369C4 MOV R0, R0,LSL#3 .text:000369C8 BL malloc .text:000369CC MOV R4, R7 .text:000369D0 SUBS R10, R0, #0 .text:000369D4 BEQ loc_36BC4 .text:000369D8 MOV R1, #0 .text:000369DC STR R1, [R11,#var_34] .text:000369E0 STR R1, [R11,#var_38] .text:000369E4 MOV R6, R5 .text:000369E8 STR R7, [R9] .text:000369EC SUB R7, R7, #1 .text:000369F0 CMP R4, R1 .text:000369F4 BEQ loc_36AE8 .text:000369F8 RSB R3, R7, R7,LSL#3 .text:000369FC ADD R4, R10, R3,LSL#3 .text:00036A00 .text:00036A00 loc_36A00 ; CODE XREF: gen_steps+174j .text:00036A00 CMP R7, #0 .text:00036A04 BNE loc_36A14 .text:00036A08 LDR R0, [R11,#var_2C] .text:00036A0C BL strdup .text:00036A10 B loc_36A1C .text:00036A14 ; --------------------------------------------------------------------------- .text:00036A14 .text:00036A14 loc_36A14 ; CODE XREF: gen_steps+94j .text:00036A14 LDR R3, [R6,#0x14] .text:00036A18 LDR R0, [R3] .text:00036A1C .text:00036A1C loc_36A1C ; CODE XREF: gen_steps+A0j .text:00036A1C STR R0, [R4,#0xC] .text:00036A20 ADD R3, R7, #1 .text:00036A24 LDR R2, [R9] .text:00036A28 MOV R5, R4 .text:00036A2C CMP R3, R2 .text:00036A30 BNE loc_36A40 .text:00036A34 LDR R0, [R6] .text:00036A38 BL strdup .text:00036A3C B loc_36A44 .text:00036A40 ; --------------------------------------------------------------------------- .text:00036A40 .text:00036A40 loc_36A40 ; CODE XREF: gen_steps+C0j .text:00036A40 LDR R0, [R4,#0x44] .text:00036A44 .text:00036A44 loc_36A44 ; CODE XREF: gen_steps+CCj .text:00036A44 STR R0, [R5,#0x10] .text:00036A48 LDR R3, [R6,#0x10] .text:00036A4C LDR R0, [R3,#0x10] .text:00036A50 LDRB R2, [R0] .text:00036A54 CMP R2, #0x2F .text:00036A58 BNE loc_36A90 .text:00036A5C BL __gconv_find_shlib .text:00036A60 CMP R0, #0 .text:00036A64 BEQ loc_36BAC .text:00036A68 STR R0, [R4] .text:00036A6C LDR R3, [R0] .text:00036A70 STR R3, [R4,#4] .text:00036A74 LDR R2, [R0,#0xC] .text:00036A78 STR R2, [R4,#0x14] .text:00036A7C LDR R3, [R0,#0x10] .text:00036A80 STR R3, [R4,#0x18] .text:00036A84 LDR R2, [R0,#0x14] .text:00036A88 STR R2, [R4,#0x1C] .text:00036A8C B loc_36A98 .text:00036A90 ; --------------------------------------------------------------------------- .text:00036A90 .text:00036A90 loc_36A90 ; CODE XREF: gen_steps+E8j .text:00036A90 MOV R1, R4 .text:00036A94 BL __gconv_get_builtin_trans .text:00036A98 .text:00036A98 loc_36A98 ; CODE XREF: gen_steps+11Cj .text:00036A98 MOV R5, #1 .text:00036A9C STR R5, [R4,#8] .text:00036AA0 LDR R0, [R4,#0x18] .text:00036AA4 MOV R8, #0 .text:00036AA8 STR R8, [R4,#0x34] .text:00036AAC CMP R0, R8 .text:00036AB0 BEQ loc_36AD0 .text:00036AB4 BL _dl_mcount_wrapper_check .text:00036AB8 MOV R0, R4 .text:00036ABC MOV LR, PC .text:00036AC0 LDR PC, [R4,#0x18] .text:00036AC4 CMP R0, #0 .text:00036AC8 STR R0, [R11,#var_34] .text:00036ACC BNE loc_36B94 .text:00036AD0 .text:00036AD0 loc_36AD0 ; CODE XREF: gen_steps+140j .text:00036AD0 SUB R4, R4, #0x38 .text:00036AD4 MOV R3, R7 .text:00036AD8 SUB R7, R7, #1 .text:00036ADC CMP R3, #0 .text:00036AE0 LDR R6, [R6,#0x14] .text:00036AE4 BNE loc_36A00 .text:00036AE8 .text:00036AE8 loc_36AE8 ; CODE XREF: gen_steps+84j .text:00036AE8 ; gen_steps+238j ... .text:00036AE8 LDR R2, [R11,#var_38] .text:00036AEC CMP R2, #0 .text:00036AF0 BEQ loc_36BB8 .text:00036AF4 LDR R3, [R9] .text:00036AF8 ADD R7, R7, #1 .text:00036AFC CMP R7, R3 .text:00036B00 BCS loc_36B64 .text:00036B04 RSB R3, R7, R7,LSL#3 .text:00036B08 ADD R4, R10, R3,LSL#3 .text:00036B0C .text:00036B0C loc_36B0C ; CODE XREF: gen_steps+1F0j .text:00036B0C LDR R3, [R4,#8] .text:00036B10 SUB R5, R3, #1 .text:00036B14 CMP R5, #0 .text:00036B18 STR R5, [R4,#8] .text:00036B1C BNE loc_36B50 .text:00036B20 LDR R0, [R4,#0x1C] .text:00036B24 CMP R0, #0 .text:00036B28 BEQ loc_36B3C .text:00036B2C BL _dl_mcount_wrapper_check .text:00036B30 MOV R0, R4 .text:00036B34 MOV LR, PC .text:00036B38 LDR PC, [R4,#0x1C] .text:00036B3C .text:00036B3C loc_36B3C ; CODE XREF: gen_steps+1B8j .text:00036B3C LDR R0, [R4] .text:00036B40 CMP R0, #0 .text:00036B44 BEQ loc_36B50 .text:00036B48 BL __gconv_release_shlib .text:00036B4C STR R5, [R4] .text:00036B50 .text:00036B50 loc_36B50 ; CODE XREF: gen_steps+1ACj .text:00036B50 ; gen_steps+1D4j .text:00036B50 ADD R4, R4, #0x38 .text:00036B54 LDR R3, [R9] .text:00036B58 ADD R7, R7, #1 .text:00036B5C CMP R7, R3 .text:00036B60 BCC loc_36B0C .text:00036B64 .text:00036B64 loc_36B64 ; CODE XREF: gen_steps+190j .text:00036B64 MOV R0, R10 .text:00036B68 BL free .text:00036B6C MOV R3, #0 .text:00036B70 STR R3, [R9] .text:00036B74 LDR R0, [R11,#var_34] .text:00036B78 MOV R1, R0 .text:00036B7C CMP R1, R3 .text:00036B80 MOVEQ R0, #1 .text:00036B84 STR R0, [R11,#var_34] .text:00036B88 LDR R2, [R11,#var_30] .text:00036B8C STR R3, [R2] .text:00036B90 B loc_36BD0 .text:00036B94 ; --------------------------------------------------------------------------- .text:00036B94 .text:00036B94 loc_36B94 ; CODE XREF: gen_steps+15Cj .text:00036B94 SUB R7, R7, #1 .text:00036B98 STR R5, [R11,#var_38] .text:00036B9C RSB R3, R7, R7,LSL#3 .text:00036BA0 ADD R3, R10, R3,LSL#3 .text:00036BA4 STR R8, [R3,#0x1C] .text:00036BA8 B loc_36AE8 .text:00036BAC ; --------------------------------------------------------------------------- .text:00036BAC .text:00036BAC loc_36BAC ; CODE XREF: gen_steps+F4j .text:00036BAC MOV R3, #1 .text:00036BB0 STR R3, [R11,#var_38] .text:00036BB4 B loc_36AE8 .text:00036BB8 ; --------------------------------------------------------------------------- .text:00036BB8 .text:00036BB8 loc_36BB8 ; CODE XREF: gen_steps+180j .text:00036BB8 LDR R0, [R11,#var_30] .text:00036BBC STR R10, [R0] .text:00036BC0 B loc_36BD0 .text:00036BC4 ; --------------------------------------------------------------------------- .text:00036BC4 .text:00036BC4 loc_36BC4 ; CODE XREF: gen_steps+64j .text:00036BC4 STR R10, [R9] .text:00036BC8 LDR R1, [R11,#var_30] .text:00036BCC STR R10, [R1] .text:00036BD0 .text:00036BD0 loc_36BD0 ; CODE XREF: gen_steps+220j .text:00036BD0 ; gen_steps+250j .text:00036BD0 LDR R0, [R11,#var_34] .text:00036BD4 LDMDB R11, {R4-R11,SP,PC} .text:00036BD4 ; End of function gen_steps .text:00036BD4 .text:00036BD8 .text:00036BD8 ; =============== S U B R O U T I N E ======================================= .text:00036BD8 .text:00036BD8 ; Attributes: bp-based frame .text:00036BD8 .text:00036BD8 increment_counter ; CODE XREF: find_derivation+70p .text:00036BD8 .text:00036BD8 var_2C = -0x2C .text:00036BD8 .text:00036BD8 MOV R12, SP .text:00036BDC STMFD SP!, {R4-R12,LR,PC} .text:00036BE0 SUB R11, R12, #4 .text:00036BE4 MOV R6, R1 .text:00036BE8 MOV R3, #0 .text:00036BEC MOV R9, R6 .text:00036BF0 SUB R6, R6, #1 .text:00036BF4 CMP R9, R3 .text:00036BF8 MOV R10, R0 .text:00036BFC SUB SP, SP, #4 .text:00036C00 STR R3, [R11,#var_2C] .text:00036C04 BEQ loc_36D24 .text:00036C08 RSB R3, R6, R6,LSL#3 .text:00036C0C MOV R5, R3,LSL#3 .text:00036C10 ADD R4, R5, R10 .text:00036C14 MOV R8, R5 .text:00036C18 .text:00036C18 loc_36C18 ; CODE XREF: increment_counter+148j .text:00036C18 LDR R3, [R4,#8] .text:00036C1C MOV R7, R4 .text:00036C20 ADD R3, R3, #1 .text:00036C24 CMP R3, #1 .text:00036C28 STR R3, [R4,#8] .text:00036C2C BNE loc_36D08 .text:00036C30 LDR R0, [R4,#4] .text:00036C34 CMP R0, #0 .text:00036C38 BEQ loc_36CEC .text:00036C3C BL __gconv_find_shlib .text:00036C40 CMP R0, #0 .text:00036C44 STR R0, [R10,R5] .text:00036C48 BNE loc_36CCC .text:00036C4C ADD R8, R8, #0x38 .text:00036C50 ADD R6, R6, #1 .text:00036C54 LDR R3, [R4,#8] .text:00036C58 CMP R6, R9 .text:00036C5C SUB R3, R3, #1 .text:00036C60 STR R3, [R4,#8] .text:00036C64 BCS loc_36CC0 .text:00036C68 ADD R4, R8, R10 .text:00036C6C .text:00036C6C loc_36C6C ; CODE XREF: increment_counter+E4j .text:00036C6C LDR R3, [R4,#8] .text:00036C70 SUB R5, R3, #1 .text:00036C74 CMP R5, #0 .text:00036C78 STR R5, [R4,#8] .text:00036C7C BNE loc_36CB0 .text:00036C80 LDR R0, [R4,#0x1C] .text:00036C84 CMP R0, #0 .text:00036C88 BEQ loc_36C9C .text:00036C8C BL _dl_mcount_wrapper_check .text:00036C90 MOV R0, R4 .text:00036C94 MOV LR, PC .text:00036C98 LDR PC, [R4,#0x1C] .text:00036C9C .text:00036C9C loc_36C9C ; CODE XREF: increment_counter+B0j .text:00036C9C LDR R0, [R4] .text:00036CA0 CMP R0, #0 .text:00036CA4 BEQ loc_36CB0 .text:00036CA8 BL __gconv_release_shlib .text:00036CAC STR R5, [R4] .text:00036CB0 .text:00036CB0 loc_36CB0 ; CODE XREF: increment_counter+A4j .text:00036CB0 ; increment_counter+CCj .text:00036CB0 ADD R4, R4, #0x38 .text:00036CB4 ADD R6, R6, #1 .text:00036CB8 CMP R6, R9 .text:00036CBC BCC loc_36C6C .text:00036CC0 .text:00036CC0 loc_36CC0 ; CODE XREF: increment_counter+8Cj .text:00036CC0 MOV R3, #1 .text:00036CC4 STR R3, [R11,#var_2C] .text:00036CC8 B loc_36D24 .text:00036CCC ; --------------------------------------------------------------------------- .text:00036CCC .text:00036CCC loc_36CCC ; CODE XREF: increment_counter+70j .text:00036CCC LDR R3, [R0,#0xC] .text:00036CD0 STR R3, [R4,#0x14] .text:00036CD4 LDR R2, [R10,R5] .text:00036CD8 LDR R3, [R2,#0x10] .text:00036CDC STR R3, [R4,#0x18] .text:00036CE0 LDR R2, [R10,R5] .text:00036CE4 LDR R3, [R2,#0x14] .text:00036CE8 STR R3, [R4,#0x1C] .text:00036CEC .text:00036CEC loc_36CEC ; CODE XREF: increment_counter+60j .text:00036CEC LDR R0, [R7,#0x18] .text:00036CF0 CMP R0, #0 .text:00036CF4 BEQ loc_36D08 .text:00036CF8 BL _dl_mcount_wrapper_check .text:00036CFC MOV R0, R7 .text:00036D00 MOV LR, PC .text:00036D04 LDR PC, [R7,#0x18] .text:00036D08 .text:00036D08 loc_36D08 ; CODE XREF: increment_counter+54j .text:00036D08 ; increment_counter+11Cj .text:00036D08 SUB R5, R5, #0x38 .text:00036D0C SUB R4, R4, #0x38 .text:00036D10 SUB R8, R8, #0x38 .text:00036D14 MOV R3, R6 .text:00036D18 SUB R6, R6, #1 .text:00036D1C CMP R3, #0 .text:00036D20 BNE loc_36C18 .text:00036D24 .text:00036D24 loc_36D24 ; CODE XREF: increment_counter+2Cj .text:00036D24 ; increment_counter+F0j .text:00036D24 LDR R0, [R11,#var_2C] .text:00036D28 LDMDB R11, {R4-R11,SP,PC} .text:00036D28 ; End of function increment_counter .text:00036D28 .text:00036D2C .text:00036D2C ; =============== S U B R O U T I N E ======================================= .text:00036D2C .text:00036D2C ; Attributes: bp-based frame .text:00036D2C .text:00036D2C find_derivation ; CODE XREF: __gconv_find_transform+184p .text:00036D2C .text:00036D2C var_84 = -0x84 .text:00036D2C var_6C = -0x6C .text:00036D2C var_68 = -0x68 .text:00036D2C var_50 = -0x50 .text:00036D2C var_4C = -0x4C .text:00036D2C var_48 = -0x48 .text:00036D2C var_44 = -0x44 .text:00036D2C var_40 = -0x40 .text:00036D2C var_3C = -0x3C .text:00036D2C var_38 = -0x38 .text:00036D2C var_34 = -0x34 .text:00036D2C var_30 = -0x30 .text:00036D2C var_2C = -0x2C .text:00036D2C arg_0 = 4 .text:00036D2C arg_4 = 8 .text:00036D2C .text:00036D2C MOV R12, SP .text:00036D30 STMFD SP!, {R4-R12,LR,PC} .text:00036D34 SUB R11, R12, #4 .text:00036D38 MOV R12, #0 .text:00036D3C SUB SP, SP, #0x28 .text:00036D40 STR R12, [R11,#var_40] .text:00036D44 MOV LR, 0x7FFFFFFF .text:00036D48 STR LR, [R11,#var_48] .text:00036D4C STR LR, [R11,#var_44] .text:00036D50 STR R0, [R11,#var_2C] .text:00036D54 STR R2, [R11,#var_34] .text:00036D58 STR R3, [R11,#var_38] .text:00036D5C STR R1, [R11,#var_30] .text:00036D60 CMP R3, R12 .text:00036D64 MOV R0, R3 .text:00036D68 MOVEQ R0, R2 .text:00036D6C LDR R2, [R11,#var_2C] .text:00036D70 CMP R1, R12 .text:00036D74 LDR R3, [R11,#arg_4] .text:00036D78 MOVEQ R1, R2 .text:00036D7C LDR R2, [R11,#arg_0] .text:00036D80 BL derivation_lookup .text:00036D84 CMP R0, #0 .text:00036D88 STR R0, [R11,#var_4C] .text:00036D8C BNE loc_36DA4 .text:00036D90 LDMIB R11, {R3,R12} .text:00036D94 LDR R0, [R3] .text:00036D98 LDR R1, [R12] .text:00036D9C BL increment_counter .text:00036DA0 B locret_372B0 .text:00036DA4 ; --------------------------------------------------------------------------- .text:00036DA4 .text:00036DA4 loc_36DA4 ; CODE XREF: find_derivation+60j .text:00036DA4 LDR LR, [R11,#var_38] .text:00036DA8 CMP LR, #0 .text:00036DAC BEQ loc_36E28 .text:00036DB0 SUB SP, SP, #0x1C .text:00036DB4 STR LR, [SP,#0x6C+var_68] .text:00036DB8 MOV R0, LR .text:00036DBC ADD R5, SP, #0x6C+var_68 .text:00036DC0 BL strlen .text:00036DC4 STR R0, [R5,#4] .text:00036DC8 LDR R0, [R11,#var_40] .text:00036DCC STR R0, [R5,#0xC] .text:00036DD0 STR R0, [R5,#8] .text:00036DD4 STR R0, [R5,#0x10] .text:00036DD8 STR R0, [R5,#0x14] .text:00036DDC STR R0, [R5,#0x18] .text:00036DE0 LDR R1, [R11,#var_34] .text:00036DE4 SUB SP, SP, #0x1C .text:00036DE8 STR R1, [SP,#0x88+var_84] .text:00036DEC ADD R4, SP, #0x88+var_84 .text:00036DF0 MOV R0, R1 .text:00036DF4 BL strlen .text:00036DF8 STR R0, [R4,#4] .text:00036DFC LDR R2, [R11,#var_40] .text:00036E00 STR R2, [R4,#0xC] .text:00036E04 STR R2, [R4,#8] .text:00036E08 STR R2, [R4,#0x10] .text:00036E0C STR R2, [R4,#0x14] .text:00036E10 STR R2, [R4,#0x18] .text:00036E14 ADD R3, SP, #0x88+var_6C .text:00036E18 STR R3, [R11,#var_3C] .text:00036E1C MOV R9, R5 .text:00036E20 STR R4, [R9,#0x18] .text:00036E24 B loc_36E68 .text:00036E28 ; --------------------------------------------------------------------------- .text:00036E28 .text:00036E28 loc_36E28 ; CODE XREF: find_derivation+80j .text:00036E28 LDR R12, [R11,#var_34] .text:00036E2C SUB SP, SP, #0x1C .text:00036E30 STR R12, [SP,#0x6C+var_68] .text:00036E34 ADD R4, SP, #0x6C+var_68 .text:00036E38 MOV R0, R12 .text:00036E3C BL strlen .text:00036E40 STR R0, [R4,#4] .text:00036E44 LDR LR, [R11,#var_38] .text:00036E48 STR LR, [R4,#0xC] .text:00036E4C STR LR, [R4,#8] .text:00036E50 STR LR, [R4,#0x10] .text:00036E54 STR LR, [R4,#0x14] .text:00036E58 ADD R0, SP, #0x6C+var_50 .text:00036E5C STR R0, [R11,#var_3C] .text:00036E60 MOV R9, R4 .text:00036E64 STR LR, [R4,#0x18] .text:00036E68 .text:00036E68 loc_36E68 ; CODE XREF: find_derivation+F8j .text:00036E68 SUBS R10, R9, #0 .text:00036E6C BEQ loc_371D0 .text:00036E70 .text:00036E70 loc_36E70 ; CODE XREF: find_derivation+4A0j .text:00036E70 LDR R3, [R10,#0xC] .text:00036E74 LDR R1, [R11,#var_44] .text:00036E78 CMP R3, R1 .text:00036E7C BGT loc_371C4 .text:00036E80 BNE loc_36E94 .text:00036E84 LDR R3, [R10,#8] .text:00036E88 LDR R2, [R11,#var_48] .text:00036E8C CMP R3, R2 .text:00036E90 BGE loc_371C4 .text:00036E94 .text:00036E94 loc_36E94 ; CODE XREF: find_derivation+154j .text:00036E94 LDR R3, =__gconv_modules_db .text:00036E98 LDR R4, [R3] .text:00036E9C .text:00036E9C loc_36E9C ; CODE XREF: find_derivation+48Cj .text:00036E9C ; find_derivation+494j .text:00036E9C CMP R4, #0 .text:00036EA0 BEQ loc_371C4 .text:00036EA4 LDR R0, [R10] .text:00036EA8 LDR R1, [R4] .text:00036EAC BL strcmp .text:00036EB0 CMP R0, #0 .text:00036EB4 BNE loc_371B4 .text:00036EB8 MOV R8, R4 .text:00036EBC .text:00036EBC loc_36EBC ; CODE XREF: find_derivation+480j .text:00036EBC LDR R0, [R8,#4] .text:00036EC0 LDRB R3, [R0] .text:00036EC4 MOV R12, #1 .text:00036EC8 SUB R2, R3, #0x2D .text:00036ECC CMP R3, #0x2D .text:00036ED0 MOVNE R12, #0 .text:00036ED4 ANDEQ R12, R12, #1 .text:00036ED8 MOV R3, R12 .text:00036EDC CMP R3, #0 .text:00036EE0 MOV R3, R0 .text:00036EE4 LDRNEB R2, [R3,#1] .text:00036EE8 CMP R2, #0 .text:00036EEC BNE loc_36F08 .text:00036EF0 SUB R4, R11, #-var_30 .text:00036EF4 LDMIA R4, {R4,LR} .text:00036EF8 MOV R0, R4 .text:00036EFC CMP R0, #0 .text:00036F00 MOVEQ R4, LR .text:00036F04 B loc_36F0C .text:00036F08 ; --------------------------------------------------------------------------- .text:00036F08 .text:00036F08 loc_36F08 ; CODE XREF: find_derivation+1C0j .text:00036F08 MOV R4, R0 .text:00036F0C .text:00036F0C loc_36F0C ; CODE XREF: find_derivation+1D8j .text:00036F0C LDR LR, [R8,#8] .text:00036F10 LDR R12, [R10,#0xC] .text:00036F14 LDR R2, [R8,#0xC] .text:00036F18 LDR R1, [R11,#var_2C] .text:00036F1C MOV R0, R4 .text:00036F20 LDR R3, [R10,#8] .text:00036F24 ADD R6, LR, R12 .text:00036F28 ADD R7, R2, R3 .text:00036F2C BL strcmp .text:00036F30 CMP R0, #0 .text:00036F34 BEQ loc_36F54 .text:00036F38 LDR R1, [R11,#var_30] .text:00036F3C CMP R1, #0 .text:00036F40 BEQ loc_37024 .text:00036F44 MOV R0, R4 .text:00036F48 BL strcmp .text:00036F4C CMP R0, #0 .text:00036F50 BNE loc_37024 .text:00036F54 .text:00036F54 loc_36F54 ; CODE XREF: find_derivation+208j .text:00036F54 LDR R5, [R11,#var_40] .text:00036F58 CMP R5, #0 .text:00036F5C BEQ loc_36F80 .text:00036F60 .text:00036F60 loc_36F60 ; CODE XREF: find_derivation+250j .text:00036F60 LDR R1, [R5] .text:00036F64 MOV R0, R4 .text:00036F68 BL strcmp .text:00036F6C CMP R0, #0 .text:00036F70 BEQ loc_36F80 .text:00036F74 LDR R5, [R5,#0x18] .text:00036F78 CMP R5, #0 .text:00036F7C BNE loc_36F60 .text:00036F80 .text:00036F80 loc_36F80 ; CODE XREF: find_derivation+230j .text:00036F80 ; find_derivation+244j .text:00036F80 CMP R5, #0 .text:00036F84 BNE loc_36FC8 .text:00036F88 SUB SP, SP, #0x1C .text:00036F8C STR R4, [SP,#0x88+var_84] .text:00036F90 MOV R0, R4 .text:00036F94 ADD R4, SP, #0x88+var_84 .text:00036F98 BL strlen .text:00036F9C STR R0, [R4,#4] .text:00036FA0 STR R6, [R4,#0xC] .text:00036FA4 STR R7, [R4,#8] .text:00036FA8 STR R8, [R4,#0x10] .text:00036FAC STR R10, [R4,#0x14] .text:00036FB0 STR R5, [R4,#0x18] .text:00036FB4 LDR R2, [R11,#var_40] .text:00036FB8 MOV R5, R4 .text:00036FBC STR R2, [R5,#0x18] .text:00036FC0 STR R5, [R11,#var_40] .text:00036FC4 B loc_36FF4 .text:00036FC8 ; --------------------------------------------------------------------------- .text:00036FC8 .text:00036FC8 loc_36FC8 ; CODE XREF: find_derivation+258j .text:00036FC8 LDR R3, [R5,#0xC] .text:00036FCC CMP R3, R6 .text:00036FD0 BGT loc_36FE4 .text:00036FD4 BNE loc_36FF4 .text:00036FD8 LDR R3, [R5,#8] .text:00036FDC CMP R3, R7 .text:00036FE0 BLE loc_36FF4 .text:00036FE4 .text:00036FE4 loc_36FE4 ; CODE XREF: find_derivation+2A4j .text:00036FE4 STR R8, [R5,#0x10] .text:00036FE8 STR R10, [R5,#0x14] .text:00036FEC STR R6, [R5,#0xC] .text:00036FF0 STR R7, [R5,#8] .text:00036FF4 .text:00036FF4 loc_36FF4 ; CODE XREF: find_derivation+298j .text:00036FF4 ; find_derivation+2A8j ... .text:00036FF4 LDR R3, [R11,#var_44] .text:00036FF8 CMP R6, R3 .text:00036FFC BLT loc_37018 .text:00037000 LDR R12, [R11,#var_48] .text:00037004 MOVNE R3, #0 .text:00037008 MOVEQ R3, #1 .text:0003700C CMP R3, #0 .text:00037010 CMPNE R7, R12 .text:00037014 BGE loc_371A4 .text:00037018 .text:00037018 loc_37018 ; CODE XREF: find_derivation+2D0j .text:00037018 STR R6, [R11,#var_44] .text:0003701C STR R7, [R11,#var_48] .text:00037020 B loc_371A4 .text:00037024 ; --------------------------------------------------------------------------- .text:00037024 .text:00037024 loc_37024 ; CODE XREF: find_derivation+214j .text:00037024 ; find_derivation+224j .text:00037024 LDR LR, [R11,#var_44] .text:00037028 CMP R6, LR .text:0003702C BLT loc_37048 .text:00037030 LDR R0, [R11,#var_48] .text:00037034 MOVNE R3, #0 .text:00037038 MOVEQ R3, #1 .text:0003703C CMP R3, #0 .text:00037040 CMPNE R7, R0 .text:00037044 BGE loc_371A4 .text:00037048 .text:00037048 loc_37048 ; CODE XREF: find_derivation+300j .text:00037048 SUBS R5, R9, #0 .text:0003704C BEQ loc_37070 .text:00037050 .text:00037050 loc_37050 ; CODE XREF: find_derivation+340j .text:00037050 LDR R1, [R5] .text:00037054 MOV R0, R4 .text:00037058 BL strcmp .text:0003705C CMP R0, #0 .text:00037060 BEQ loc_37070 .text:00037064 LDR R5, [R5,#0x18] .text:00037068 CMP R5, #0 .text:0003706C BNE loc_37050 .text:00037070 .text:00037070 loc_37070 ; CODE XREF: find_derivation+320j .text:00037070 ; find_derivation+334j .text:00037070 CMP R5, #0 .text:00037074 BNE loc_370B8 .text:00037078 SUB SP, SP, #0x1C .text:0003707C STR R4, [SP,#0x88+var_84] .text:00037080 MOV R0, R4 .text:00037084 ADD R4, SP, #0x88+var_84 .text:00037088 BL strlen .text:0003708C STR R0, [R4,#4] .text:00037090 STR R6, [R4,#0xC] .text:00037094 STR R7, [R4,#8] .text:00037098 STR R8, [R4,#0x10] .text:0003709C STR R10, [R4,#0x14] .text:000370A0 STR R5, [R4,#0x18] .text:000370A4 LDR R1, [R11,#var_3C] .text:000370A8 STR R4, [R1] .text:000370AC ADD R2, SP, #0x88+var_6C .text:000370B0 STR R2, [R11,#var_3C] .text:000370B4 B loc_371A4 .text:000370B8 ; --------------------------------------------------------------------------- .text:000370B8 .text:000370B8 loc_370B8 ; CODE XREF: find_derivation+348j .text:000370B8 LDR R3, [R5,#0xC] .text:000370BC CMP R3, R6 .text:000370C0 BGT loc_370D4 .text:000370C4 BNE loc_371A4 .text:000370C8 LDR R3, [R5,#8] .text:000370CC CMP R3, R7 .text:000370D0 BLE loc_371A4 .text:000370D4 .text:000370D4 loc_370D4 ; CODE XREF: find_derivation+394j .text:000370D4 STR R8, [R5,#0x10] .text:000370D8 STR R10, [R5,#0x14] .text:000370DC SUBS R5, R9, #0 .text:000370E0 BEQ loc_37140 .text:000370E4 .text:000370E4 loc_370E4 ; CODE XREF: find_derivation+410j .text:000370E4 LDR R2, [R5,#0x10] .text:000370E8 CMP R2, #0 .text:000370EC BEQ loc_37134 .text:000370F0 LDR R0, [R5,#0x14] .text:000370F4 LDR LR, [R2,#8] .text:000370F8 LDR R3, [R0,#0x10] .text:000370FC LDR R12, [R2,#0xC] .text:00037100 CMP R3, #0 .text:00037104 BEQ loc_3712C .text:00037108 .text:00037108 loc_37108 ; CODE XREF: find_derivation+3FCj .text:00037108 LDR R3, [R0,#0x10] .text:0003710C LDR R0, [R0,#0x14] .text:00037110 LDR R2, [R3,#8] .text:00037114 LDR R1, [R3,#0xC] .text:00037118 LDR R3, [R0,#0x10] .text:0003711C ADD LR, LR, R2 .text:00037120 ADD R12, R12, R1 .text:00037124 CMP R3, #0 .text:00037128 BNE loc_37108 .text:0003712C .text:0003712C loc_3712C ; CODE XREF: find_derivation+3D8j .text:0003712C STR LR, [R5,#0xC] .text:00037130 STR R12, [R5,#8] .text:00037134 .text:00037134 loc_37134 ; CODE XREF: find_derivation+3C0j .text:00037134 LDR R5, [R5,#0x18] .text:00037138 CMP R5, #0 .text:0003713C BNE loc_370E4 .text:00037140 .text:00037140 loc_37140 ; CODE XREF: find_derivation+3B4j .text:00037140 LDR R5, [R11,#var_40] .text:00037144 CMP R5, #0 .text:00037148 BEQ loc_371A4 .text:0003714C .text:0003714C loc_3714C ; CODE XREF: find_derivation+474j .text:0003714C LDR R1, [R5,#0x10] .text:00037150 LDR R0, [R5,#0x14] .text:00037154 LDR R2, [R1,#8] .text:00037158 LDR R3, [R0,#0xC] .text:0003715C ADD R12, R2, R3 .text:00037160 STR R12, [R5,#0xC] .text:00037164 LDR LR, [R11,#var_44] .text:00037168 LDR R2, [R1,#0xC] .text:0003716C LDR R3, [R0,#8] .text:00037170 CMP R12, LR .text:00037174 ADD R2, R2, R3 .text:00037178 STR R2, [R5,#8] .text:0003717C BLT loc_37190 .text:00037180 BNE loc_37198 .text:00037184 LDR R0, [R11,#var_48] .text:00037188 CMP R2, R0 .text:0003718C BGE loc_37198 .text:00037190 .text:00037190 loc_37190 ; CODE XREF: find_derivation+450j .text:00037190 STR R12, [R11,#var_44] .text:00037194 STR R2, [R11,#var_48] .text:00037198 .text:00037198 loc_37198 ; CODE XREF: find_derivation+454j .text:00037198 ; find_derivation+460j .text:00037198 LDR R5, [R5,#0x18] .text:0003719C CMP R5, #0 .text:000371A0 BNE loc_3714C .text:000371A4 .text:000371A4 loc_371A4 ; CODE XREF: find_derivation+2E8j .text:000371A4 ; find_derivation+2F4j ... .text:000371A4 LDR R8, [R8,#0x18] .text:000371A8 CMP R8, #0 .text:000371AC BNE loc_36EBC .text:000371B0 B loc_371C4 .text:000371B4 ; --------------------------------------------------------------------------- .text:000371B4 .text:000371B4 loc_371B4 ; CODE XREF: find_derivation+188j .text:000371B4 LDRLT R4, [R4,#0x14] .text:000371B8 BLT loc_36E9C .text:000371BC LDR R4, [R4,#0x1C] .text:000371C0 B loc_36E9C .text:000371C4 ; --------------------------------------------------------------------------- .text:000371C4 .text:000371C4 loc_371C4 ; CODE XREF: find_derivation+150j .text:000371C4 ; find_derivation+164j ... .text:000371C4 LDR R10, [R10,#0x18] .text:000371C8 CMP R10, #0 .text:000371CC BNE loc_36E70 .text:000371D0 .text:000371D0 loc_371D0 ; CODE XREF: find_derivation+140j .text:000371D0 LDR R1, [R11,#var_40] .text:000371D4 CMP R1, #0 .text:000371D8 BEQ loc_3725C .text:000371DC LDR R1, [R1,#0x18] .text:000371E0 CMP R1, #0 .text:000371E4 BEQ loc_37214 .text:000371E8 LDR R12, [R11,#var_40] .text:000371EC LDR R2, [R1,#0xC] .text:000371F0 LDR R3, [R12,#0xC] .text:000371F4 CMP R2, R3 .text:000371F8 BLT loc_37210 .text:000371FC BNE loc_37214 .text:00037200 LDR R2, [R1,#8] .text:00037204 LDR R3, [R12,#8] .text:00037208 CMP R2, R3 .text:0003720C BGE loc_37214 .text:00037210 .text:00037210 loc_37210 ; CODE XREF: find_derivation+4CCj .text:00037210 STR R1, [R11,#var_40] .text:00037214 .text:00037214 loc_37214 ; CODE XREF: find_derivation+4B8j .text:00037214 ; find_derivation+4D0j ... .text:00037214 LDR LR, [R11,#arg_4] .text:00037218 STR LR, [SP,#0x6C+var_6C] .text:0003721C LDR R0, [R11,#var_40] .text:00037220 SUB R1, R11, #-var_30 .text:00037224 LDMIA R1, {R1,R2} .text:00037228 LDR R12, [R11,#var_34] .text:0003722C MOV R3, R1 .text:00037230 CMP R3, #0 .text:00037234 MOVEQ R1, R2 .text:00037238 LDR R2, [R11,#var_38] .text:0003723C LDR R3, [R11,#arg_0] .text:00037240 MOV LR, R2 .text:00037244 CMP LR, #0 .text:00037248 MOVEQ R2, R12 .text:0003724C BL gen_steps .text:00037250 STR R0, [R11,#var_4C] .text:00037254 B loc_37270 .text:00037254 ; --------------------------------------------------------------------------- .text:00037258 off_37258 DCD __gconv_modules_db ; DATA XREF: find_derivation:loc_36E94r .text:0003725C ; --------------------------------------------------------------------------- .text:0003725C .text:0003725C loc_3725C ; CODE XREF: find_derivation+4ACj .text:0003725C LDR R1, [R11,#var_40] .text:00037260 LDR R0, [R11,#arg_0] .text:00037264 STR R1, [R0] .text:00037268 LDR R2, [R11,#arg_4] .text:0003726C STR R1, [R2] .text:00037270 .text:00037270 loc_37270 ; CODE XREF: find_derivation+528j .text:00037270 LDR R3, [R11,#arg_0] .text:00037274 SUB R0, R11, #-var_38 .text:00037278 LDMIA R0, {R0,R12} .text:0003727C LDR R1, [R11,#arg_4] .text:00037280 LDR R2, [R3] .text:00037284 MOV LR, R0 .text:00037288 LDR R3, [R1] .text:0003728C CMP LR, #0 .text:00037290 LDR R1, [R11,#var_30] .text:00037294 MOVEQ R0, R12 .text:00037298 LDR R12, [R11,#var_2C] .text:0003729C MOV LR, R1 .text:000372A0 CMP LR, #0 .text:000372A4 MOVEQ R1, R12 .text:000372A8 BL add_derivation .text:000372AC LDR R0, [R11,#var_4C] .text:000372B0 .text:000372B0 locret_372B0 ; CODE XREF: find_derivation+74j .text:000372B0 LDMDB R11, {R4-R11,SP,PC} .text:000372B0 ; End of function find_derivation .text:000372B0 .text:000372B4 .text:000372B4 ; =============== S U B R O U T I N E ======================================= .text:000372B4 .text:000372B4 ; Attributes: bp-based frame .text:000372B4 .text:000372B4 do_lookup_alias ; CODE XREF: __gconv_lookup_alias+50p .text:000372B4 ; __gconv_find_transform+A4p ... .text:000372B4 .text:000372B4 var_14 = -0x14 .text:000372B4 .text:000372B4 MOV R12, SP .text:000372B8 STMFD SP!, {R11,R12,LR,PC} .text:000372BC SUB R11, R12, #4 .text:000372C0 SUB SP, SP, #8 .text:000372C4 STR R0, [R11,#var_14] .text:000372C8 LDR R1, =__gconv_alias_db .text:000372CC LDR R2, =__gconv_alias_compare .text:000372D0 SUB R0, R11, #-var_14 .text:000372D4 BL tfind .text:000372D8 CMP R0, #0 .text:000372DC LDRNE R3, [R0] .text:000372E0 LDRNE R0, [R3,#4] .text:000372E4 B locret_372F0 .text:000372E4 ; --------------------------------------------------------------------------- .text:000372E8 off_372E8 DCD __gconv_alias_db ; DATA XREF: do_lookup_alias+14r .text:000372EC off_372EC DCD __gconv_alias_compare ; DATA XREF: do_lookup_alias+18r .text:000372F0 ; --------------------------------------------------------------------------- .text:000372F0 .text:000372F0 locret_372F0 ; CODE XREF: do_lookup_alias+30j .text:000372F0 LDMDB R11, {R11,SP,PC} .text:000372F0 ; End of function do_lookup_alias .text:000372F0 .text:000372F4 .text:000372F4 ; =============== S U B R O U T I N E ======================================= .text:000372F4 .text:000372F4 ; Attributes: bp-based frame .text:000372F4 .text:000372F4 EXPORT __gconv_lookup_alias .text:000372F4 __gconv_lookup_alias ; CODE XREF: _nl_find_locale+500p .text:000372F4 ; _nl_find_locale+514p .text:000372F4 MOV R12, SP .text:000372F8 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:000372FC SUB R11, R12, #4 .text:00037300 MOV R5, R0 .text:00037304 LDR R3, =0 .text:00037308 CMP R3, #0 .text:0003730C BEQ loc_37324 .text:00037310 LDR R0, =once .text:00037314 LDR R1, =__gconv_read_conf .text:00037318 MOV LR, PC .text:0003731C MOV PC, R3 .text:00037320 B loc_37340 .text:00037324 ; --------------------------------------------------------------------------- .text:00037324 .text:00037324 loc_37324 ; CODE XREF: __gconv_lookup_alias+18j .text:00037324 LDR R4, =once .text:00037328 LDR R3, [R4] .text:0003732C CMP R3, #0 .text:00037330 BNE loc_37340 .text:00037334 BL __gconv_read_conf .text:00037338 MOV R3, #1 .text:0003733C STR R3, [R4] .text:00037340 .text:00037340 loc_37340 ; CODE XREF: __gconv_lookup_alias+2Cj .text:00037340 ; __gconv_lookup_alias+3Cj .text:00037340 MOV R0, R5 .text:00037344 BL do_lookup_alias .text:00037348 CMP R0, #0 .text:0003734C MOVEQ R0, R5 .text:00037350 LDMDB R11, {R4,R5,R11,SP,PC} .text:00037350 ; End of function __gconv_lookup_alias .text:00037350 .text:00037350 ; --------------------------------------------------------------------------- .text:00037354 off_37354 DCD 0 ; DATA XREF: __gconv_lookup_alias+10r .text:00037358 off_37358 DCD once ; DATA XREF: __gconv_lookup_alias+1Cr .text:00037358 ; __gconv_lookup_alias:loc_37324r .text:0003735C off_3735C DCD __gconv_read_conf ; DATA XREF: __gconv_lookup_alias+20r .text:00037360 .text:00037360 ; =============== S U B R O U T I N E ======================================= .text:00037360 .text:00037360 ; Attributes: bp-based frame .text:00037360 .text:00037360 EXPORT __gconv_find_transform .text:00037360 __gconv_find_transform ; CODE XREF: __wcsmbs_load_conv+180p .text:00037360 ; __wcsmbs_load_conv+1FCp ... .text:00037360 .text:00037360 var_30 = -0x30 .text:00037360 var_2C = -0x2C .text:00037360 arg_0 = 4 .text:00037360 .text:00037360 MOV R12, SP .text:00037364 STMFD SP!, {R4-R12,LR,PC} .text:00037368 SUB R11, R12, #4 .text:0003736C MOV R8, #0 .text:00037370 MOV R7, R8 .text:00037374 MOV R5, R0 .text:00037378 MOV R6, R1 .text:0003737C MOV R10, R2 .text:00037380 MOV R9, R3 .text:00037384 SUB SP, SP, #8 .text:00037388 LDR R3, =0 .text:0003738C CMP R3, R8 .text:00037390 BNE loc_373DC .text:00037394 LDR R4, =once .text:00037398 LDR R3, [R4] .text:0003739C CMP R3, R8 .text:000373A0 BNE loc_373B0 .text:000373A4 BL __gconv_read_conf .text:000373A8 MOV R3, #1 .text:000373AC STR R3, [R4] .text:000373B0 .text:000373B0 loc_373B0 ; CODE XREF: __gconv_find_transform+40j .text:000373B0 ; __gconv_find_transform+8Cj .text:000373B0 LDR R3, =0 .text:000373B4 CMP R3, #0 .text:000373B8 BEQ loc_373C8 .text:000373BC LDR R0, =lock_3 .text:000373C0 MOV LR, PC .text:000373C4 MOV PC, R3 .text:000373C8 .text:000373C8 loc_373C8 ; CODE XREF: __gconv_find_transform+58j .text:000373C8 LDR R3, =__gconv_modules_db .text:000373CC LDR R2, [R3] .text:000373D0 CMP R2, #0 .text:000373D4 BNE loc_373F0 .text:000373D8 B loc_3748C .text:000373DC ; --------------------------------------------------------------------------- .text:000373DC .text:000373DC loc_373DC ; CODE XREF: __gconv_find_transform+30j .text:000373DC LDR R0, =once .text:000373E0 LDR R1, =__gconv_read_conf .text:000373E4 MOV LR, PC .text:000373E8 MOV PC, R3 .text:000373EC B loc_373B0 .text:000373F0 ; --------------------------------------------------------------------------- .text:000373F0 .text:000373F0 loc_373F0 ; CODE XREF: __gconv_find_transform+74j .text:000373F0 LDR R3, =__gconv_alias_db .text:000373F4 LDR R2, [R3] .text:000373F8 CMP R2, #0 .text:000373FC BEQ loc_37418 .text:00037400 MOV R0, R6 .text:00037404 BL do_lookup_alias .text:00037408 MOV R8, R0 .text:0003740C MOV R0, R5 .text:00037410 BL do_lookup_alias .text:00037414 MOV R7, R0 .text:00037418 .text:00037418 loc_37418 ; CODE XREF: __gconv_find_transform+9Cj .text:00037418 LDR R3, [R11,#arg_0] .text:0003741C TST R3, #1 .text:00037420 BEQ loc_374CC .text:00037424 MOV R0, R5 .text:00037428 MOV R1, R6 .text:0003742C BL strcmp .text:00037430 CMP R0, #0 .text:00037434 BEQ loc_3748C .text:00037438 CMP R7, #0 .text:0003743C BEQ loc_37454 .text:00037440 MOV R0, R7 .text:00037444 MOV R1, R6 .text:00037448 BL strcmp .text:0003744C CMP R0, #0 .text:00037450 BEQ loc_3748C .text:00037454 .text:00037454 loc_37454 ; CODE XREF: __gconv_find_transform+DCj .text:00037454 CMP R8, #0 .text:00037458 BEQ loc_374CC .text:0003745C MOV R0, R5 .text:00037460 MOV R1, R8 .text:00037464 BL strcmp .text:00037468 CMP R0, #0 .text:0003746C BEQ loc_3748C .text:00037470 CMP R7, #0 .text:00037474 BEQ loc_374CC .text:00037478 MOV R0, R7 .text:0003747C MOV R1, R8 .text:00037480 BL strcmp .text:00037484 CMP R0, #0 .text:00037488 BNE loc_374CC .text:0003748C .text:0003748C loc_3748C ; CODE XREF: __gconv_find_transform+78j .text:0003748C ; __gconv_find_transform+D4j ... .text:0003748C LDR R3, =0 .text:00037490 CMP R3, #0 .text:00037494 BEQ loc_374A4 .text:00037498 LDR R0, =lock_3 .text:0003749C MOV LR, PC .text:000374A0 MOV PC, R3 .text:000374A4 .text:000374A4 loc_374A4 ; CODE XREF: __gconv_find_transform+134j .text:000374A4 MOV R0, #1 .text:000374A8 B loc_3751C .text:000374A8 ; --------------------------------------------------------------------------- .text:000374AC off_374AC DCD 0 ; DATA XREF: __gconv_find_transform+28r .text:000374B0 off_374B0 DCD once ; DATA XREF: __gconv_find_transform+34r .text:000374B0 ; __gconv_find_transform:loc_373DCr .text:000374B4 off_374B4 DCD 0 ; DATA XREF: __gconv_find_transform:loc_373B0r .text:000374B8 off_374B8 DCD lock_3 ; DATA XREF: __gconv_find_transform+5Cr .text:000374B8 ; __gconv_find_transform+138r .text:000374BC off_374BC DCD __gconv_modules_db ; DATA XREF: __gconv_find_transform:loc_373C8r .text:000374C0 off_374C0 DCD __gconv_read_conf ; DATA XREF: __gconv_find_transform+80r .text:000374C4 off_374C4 DCD __gconv_alias_db ; DATA XREF: __gconv_find_transform:loc_373F0r .text:000374C8 off_374C8 DCD 0 ; DATA XREF: __gconv_find_transform:loc_3748Cr .text:000374CC ; --------------------------------------------------------------------------- .text:000374CC .text:000374CC loc_374CC ; CODE XREF: __gconv_find_transform+C0j .text:000374CC ; __gconv_find_transform+F8j ... .text:000374CC STR R10, [SP,#0x30+var_30] .text:000374D0 STR R9, [SP,#0x30+var_2C] .text:000374D4 MOV R0, R5 .text:000374D8 MOV R1, R7 .text:000374DC MOV R2, R6 .text:000374E0 MOV R3, R8 .text:000374E4 BL find_derivation .text:000374E8 LDR R3, =0 .text:000374EC MOV R4, R0 .text:000374F0 CMP R3, #0 .text:000374F4 BEQ loc_37504 .text:000374F8 LDR R0, =lock_3 .text:000374FC MOV LR, PC .text:00037500 MOV PC, R3 .text:00037504 .text:00037504 loc_37504 ; CODE XREF: __gconv_find_transform+194j .text:00037504 SUBS R0, R4, #0 .text:00037508 BNE loc_3751C .text:0003750C LDR R3, [R10] .text:00037510 CMP R3, #0 .text:00037514 MOVNE R0, #0 .text:00037518 MOVEQ R0, #1 .text:0003751C .text:0003751C loc_3751C ; CODE XREF: __gconv_find_transform+148j .text:0003751C ; __gconv_find_transform+1A8j .text:0003751C B locret_37528 .text:0003751C ; --------------------------------------------------------------------------- .text:00037520 off_37520 DCD 0 ; DATA XREF: __gconv_find_transform+188r .text:00037524 off_37524 DCD lock_3 ; DATA XREF: __gconv_find_transform+198r .text:00037528 ; --------------------------------------------------------------------------- .text:00037528 .text:00037528 locret_37528 ; CODE XREF: __gconv_find_transform:loc_3751Cj .text:00037528 LDMDB R11, {R4-R11,SP,PC} .text:00037528 ; End of function __gconv_find_transform .text:00037528 .text:0003752C .text:0003752C ; =============== S U B R O U T I N E ======================================= .text:0003752C .text:0003752C ; Attributes: bp-based frame .text:0003752C .text:0003752C EXPORT __gconv_close_transform .text:0003752C __gconv_close_transform ; CODE XREF: fclose+F4p .text:0003752C ; fclose+11Cp ... .text:0003752C MOV R12, SP .text:00037530 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:00037534 SUB R11, R12, #4 .text:00037538 MOV R6, R1 .text:0003753C LDR R3, =0 .text:00037540 MOV R4, R0 .text:00037544 CMP R3, #0 .text:00037548 BEQ loc_37558 .text:0003754C LDR R0, =lock_3 .text:00037550 MOV LR, PC .text:00037554 MOV PC, R3 .text:00037558 .text:00037558 loc_37558 ; CODE XREF: __gconv_close_transform+1Cj .text:00037558 MOV R3, R6 .text:0003755C SUB R6, R6, #1 .text:00037560 CMP R3, #0 .text:00037564 LDR R7, =0 .text:00037568 BEQ loc_375CC .text:0003756C RSB R3, R6, R6,LSL#3 .text:00037570 ADD R4, R4, R3,LSL#3 .text:00037574 .text:00037574 loc_37574 ; CODE XREF: __gconv_close_transform+9Cj .text:00037574 LDR R3, [R4,#8] .text:00037578 SUB R5, R3, #1 .text:0003757C CMP R5, #0 .text:00037580 STR R5, [R4,#8] .text:00037584 BNE loc_375B8 .text:00037588 LDR R0, [R4,#0x1C] .text:0003758C CMP R0, #0 .text:00037590 BEQ loc_375A4 .text:00037594 BL _dl_mcount_wrapper_check .text:00037598 MOV R0, R4 .text:0003759C MOV LR, PC .text:000375A0 LDR PC, [R4,#0x1C] .text:000375A4 .text:000375A4 loc_375A4 ; CODE XREF: __gconv_close_transform+64j .text:000375A4 LDR R0, [R4] .text:000375A8 CMP R0, #0 .text:000375AC BEQ loc_375B8 .text:000375B0 BL __gconv_release_shlib .text:000375B4 STR R5, [R4] .text:000375B8 .text:000375B8 loc_375B8 ; CODE XREF: __gconv_close_transform+58j .text:000375B8 ; __gconv_close_transform+80j .text:000375B8 SUB R4, R4, #0x38 .text:000375BC MOV R3, R6 .text:000375C0 SUB R6, R6, #1 .text:000375C4 CMP R3, #0 .text:000375C8 BNE loc_37574 .text:000375CC .text:000375CC loc_375CC ; CODE XREF: __gconv_close_transform+3Cj .text:000375CC CMP R7, #0 .text:000375D0 BEQ loc_375E0 .text:000375D4 LDR R0, =lock_3 .text:000375D8 MOV LR, PC .text:000375DC MOV PC, R7 .text:000375E0 .text:000375E0 loc_375E0 ; CODE XREF: __gconv_close_transform+A4j .text:000375E0 MOV R0, #0 .text:000375E4 LDMDB R11, {R4-R7,R11,SP,PC} .text:000375E4 ; End of function __gconv_close_transform .text:000375E4 .text:000375E4 ; --------------------------------------------------------------------------- .text:000375E8 off_375E8 DCD 0 ; DATA XREF: __gconv_close_transform+10r .text:000375EC off_375EC DCD lock_3 ; DATA XREF: __gconv_close_transform+20r .text:000375EC ; __gconv_close_transform+A8r .text:000375F0 dword_375F0 DCD 0 ; DATA XREF: __gconv_close_transform+38r .text:000375F4 .text:000375F4 ; =============== S U B R O U T I N E ======================================= .text:000375F4 .text:000375F4 ; Attributes: bp-based frame .text:000375F4 .text:000375F4 free_modules_db ; CODE XREF: free_modules_db+1Cp .text:000375F4 ; free_modules_db+2Cp ... .text:000375F4 MOV R12, SP .text:000375F8 STMFD SP!, {R4,R11,R12,LR,PC} .text:000375FC MOV R4, R0 .text:00037600 LDR R0, [R4,#0x14] .text:00037604 SUB R11, R12, #4 .text:00037608 CMP R0, #0 .text:0003760C BEQ loc_37614 .text:00037610 BL free_modules_db .text:00037614 .text:00037614 loc_37614 ; CODE XREF: free_modules_db+18j .text:00037614 LDR R0, [R4,#0x1C] .text:00037618 CMP R0, #0 .text:0003761C BEQ loc_37624 .text:00037620 BL free_modules_db .text:00037624 .text:00037624 loc_37624 ; CODE XREF: free_modules_db+28j .text:00037624 ; free_modules_db+50j .text:00037624 MOV R0, R4 .text:00037628 LDR R3, [R0,#0x10] .text:0003762C LDRB R2, [R3] .text:00037630 LDR R4, [R4,#0x18] .text:00037634 CMP R2, #0x2F .text:00037638 BNE loc_37640 .text:0003763C BL free .text:00037640 .text:00037640 loc_37640 ; CODE XREF: free_modules_db+44j .text:00037640 CMP R4, #0 .text:00037644 BNE loc_37624 .text:00037648 LDMDB R11, {R4,R11,SP,PC} .text:00037648 ; End of function free_modules_db .text:00037648 .text:0003764C .text:0003764C ; =============== S U B R O U T I N E ======================================= .text:0003764C .text:0003764C ; Attributes: bp-based frame .text:0003764C .text:0003764C free_mem_4 .text:0003764C MOV R12, SP .text:00037650 STMFD SP!, {R11,R12,LR,PC} .text:00037654 LDR R3, =__gconv_alias_db .text:00037658 LDR R0, [R3] .text:0003765C SUB R11, R12, #4 .text:00037660 CMP R0, #0 .text:00037664 BEQ loc_37670 .text:00037668 LDR R1, =free .text:0003766C BL tdestroy .text:00037670 .text:00037670 loc_37670 ; CODE XREF: free_mem_4+18j .text:00037670 LDR R3, =__gconv_modules_db .text:00037674 LDR R0, [R3] .text:00037678 CMP R0, #0 .text:0003767C BEQ loc_37684 .text:00037680 BL free_modules_db .text:00037684 .text:00037684 loc_37684 ; CODE XREF: free_mem_4+30j .text:00037684 LDR R3, =known_derivations .text:00037688 LDR R0, [R3] .text:0003768C CMP R0, #0 .text:00037690 LDMEQDB R11, {R11,SP,PC} .text:00037694 LDR R1, =free_derivation .text:00037698 BL tdestroy .text:0003769C LDMDB R11, {R11,SP,PC} .text:0003769C ; End of function free_mem_4 .text:0003769C .text:0003769C ; --------------------------------------------------------------------------- .text:000376A0 off_376A0 DCD __gconv_alias_db ; DATA XREF: free_mem_4+8r .text:000376A4 off_376A4 DCD free ; DATA XREF: free_mem_4+1Cr .text:000376A8 off_376A8 DCD __gconv_modules_db ; DATA XREF: free_mem_4:loc_37670r .text:000376AC off_376AC DCD known_derivations ; DATA XREF: free_mem_4:loc_37684r .text:000376B0 off_376B0 DCD free_derivation ; DATA XREF: free_mem_4+48r .text:000376B4 .text:000376B4 ; =============== S U B R O U T I N E ======================================= .text:000376B4 .text:000376B4 ; Attributes: bp-based frame .text:000376B4 .text:000376B4 detect_conflict ; CODE XREF: read_conf_file+288p .text:000376B4 ; __gconv_read_conf+3ACp .text:000376B4 MOV R12, SP .text:000376B8 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:000376BC LDR R3, =__gconv_modules_db .text:000376C0 SUB R11, R12, #4 .text:000376C4 LDR R4, [R3] .text:000376C8 MOV R5, R0 .text:000376CC .text:000376CC loc_376CC ; CODE XREF: detect_conflict+3Cj .text:000376CC ; detect_conflict+44j .text:000376CC CMP R4, #0 .text:000376D0 BEQ loc_376FC .text:000376D4 LDR R1, [R4] .text:000376D8 MOV R0, R5 .text:000376DC BL strcmp .text:000376E0 CMP R0, #0 .text:000376E4 MOVEQ R0, #1 .text:000376E8 LDMEQDB R11, {R4,R5,R11,SP,PC} .text:000376EC LDRLT R4, [R4,#0x14] .text:000376F0 BLT loc_376CC .text:000376F4 LDR R4, [R4,#0x1C] .text:000376F8 B loc_376CC .text:000376FC ; --------------------------------------------------------------------------- .text:000376FC .text:000376FC loc_376FC ; CODE XREF: detect_conflict+1Cj .text:000376FC SUBS R0, R4, #0 .text:00037700 MOVNE R0, #1 .text:00037704 LDMDB R11, {R4,R5,R11,SP,PC} .text:00037704 ; End of function detect_conflict .text:00037704 .text:00037704 ; --------------------------------------------------------------------------- .text:00037708 off_37708 DCD __gconv_modules_db ; DATA XREF: detect_conflict+8r .text:0003770C .text:0003770C ; =============== S U B R O U T I N E ======================================= .text:0003770C .text:0003770C ; Attributes: bp-based frame .text:0003770C .text:0003770C add_module ; CODE XREF: read_conf_file+35Cp .text:0003770C .text:0003770C var_40 = -0x40 .text:0003770C var_3C = -0x3C .text:0003770C var_38 = -0x38 .text:0003770C var_34 = -0x34 .text:0003770C var_2C = -0x2C .text:0003770C arg_4 = 8 .text:0003770C .text:0003770C MOV R12, SP .text:00037710 STMFD SP!, {R4-R12,LR,PC} .text:00037714 SUB R11, R12, #4 .text:00037718 MOV R4, R0 .text:0003771C LDR R3, =__ctype_b .text:00037720 SUB SP, SP, #0x18 .text:00037724 LDRB R0, [R4] .text:00037728 MOV R10, R2 .text:0003772C LDR LR, [R3] .text:00037730 MOV R0, R0,LSL#1 .text:00037734 ADD R0, R0, LR .text:00037738 LDRB R12, [R0,#1] .text:0003773C MOV R7, R3 .text:00037740 STR R1, [R11,#var_38] .text:00037744 TST R12, #0x20 .text:00037748 BEQ loc_37768 .text:0003774C MOV R1, LR .text:00037750 .text:00037750 loc_37750 ; CODE XREF: add_module+58j .text:00037750 LDRB R3, [R4,#1]! .text:00037754 MOV R3, R3,LSL#1 .text:00037758 ADD R3, R3, R1 .text:0003775C LDRB R2, [R3,#1] .text:00037760 TST R2, #0x20 .text:00037764 BNE loc_37750 .text:00037768 .text:00037768 loc_37768 ; CODE XREF: add_module+3Cj .text:00037768 MOV R6, R4 .text:0003776C LDRB R3, [R6] .text:00037770 CMP R3, #0 .text:00037774 BEQ loc_377CC .text:00037778 MOV R0, R3 .text:0003777C LDR R2, [R7] .text:00037780 MOV R3, R0,LSL#1 .text:00037784 ADD R3, R3, R2 .text:00037788 LDRB R1, [R3,#1] .text:0003778C TST R1, #0x20 .text:00037790 BNE loc_377CC .text:00037794 LDR R12, =__ctype_toupper .text:00037798 .text:00037798 loc_37798 ; CODE XREF: add_module+BCj .text:00037798 LDR R3, [R12] .text:0003779C LDR R2, [R3,R0,LSL#2] .text:000377A0 STRB R2, [R4] .text:000377A4 LDRB R3, [R4,#1]! .text:000377A8 CMP R3, #0 .text:000377AC BEQ loc_377CC .text:000377B0 LDRB R0, [R4] .text:000377B4 LDR R2, [R7] .text:000377B8 MOV R3, R0,LSL#1 .text:000377BC ADD R3, R3, R2 .text:000377C0 LDRB R1, [R3,#1] .text:000377C4 TST R1, #0x20 .text:000377C8 BEQ loc_37798 .text:000377CC .text:000377CC loc_377CC ; CODE XREF: add_module+68j .text:000377CC ; add_module+84j ... .text:000377CC LDRB R3, [R4] .text:000377D0 CMP R3, #0 .text:000377D4 BEQ locret_37B4C .text:000377D8 MOV R3, #0 .text:000377DC STRB R3, [R4],#1 .text:000377E0 MOV R5, R4 .text:000377E4 MOV R9, R5 .text:000377E8 LDRB R3, [R9] .text:000377EC LDR R1, [R7] .text:000377F0 B loc_377F8 .text:000377F4 ; --------------------------------------------------------------------------- .text:000377F4 .text:000377F4 loc_377F4 ; CODE XREF: add_module+FCj .text:000377F4 LDRB R3, [R4,#1]! .text:000377F8 .text:000377F8 loc_377F8 ; CODE XREF: add_module+E4j .text:000377F8 MOV R3, R3,LSL#1 .text:000377FC ADD R3, R3, R1 .text:00037800 LDRB R2, [R3,#1] .text:00037804 TST R2, #0x20 .text:00037808 BNE loc_377F4 .text:0003780C LDRB R3, [R4] .text:00037810 CMP R3, #0 .text:00037814 BEQ loc_3786C .text:00037818 MOV R0, R3 .text:0003781C LDR R3, [R7] .text:00037820 MOV R2, R0,LSL#1 .text:00037824 ADD R2, R2, R3 .text:00037828 LDRB R1, [R2,#1] .text:0003782C TST R1, #0x20 .text:00037830 BNE loc_3786C .text:00037834 LDR R12, =__ctype_toupper .text:00037838 .text:00037838 loc_37838 ; CODE XREF: add_module+15Cj .text:00037838 LDR R3, [R12] .text:0003783C LDR R2, [R3,R0,LSL#2] .text:00037840 STRB R2, [R5],#1 .text:00037844 LDRB R3, [R4,#1]! .text:00037848 CMP R3, #0 .text:0003784C BEQ loc_3786C .text:00037850 LDRB R0, [R4] .text:00037854 LDR R3, [R7] .text:00037858 MOV R2, R0,LSL#1 .text:0003785C ADD R2, R2, R3 .text:00037860 LDRB R1, [R2,#1] .text:00037864 TST R1, #0x20 .text:00037868 BEQ loc_37838 .text:0003786C .text:0003786C loc_3786C ; CODE XREF: add_module+108j .text:0003786C ; add_module+124j ... .text:0003786C LDRB R3, [R4] .text:00037870 CMP R3, #0 .text:00037874 BEQ locret_37B4C .text:00037878 MOV R3, #0 .text:0003787C STRB R3, [R5],#1 .text:00037880 LDR R2, =__ctype_b .text:00037884 LDR R12, [R2] .text:00037888 .text:00037888 loc_37888 ; CODE XREF: add_module+190j .text:00037888 LDRB R1, [R4,#1]! .text:0003788C MOV R0, R1,LSL#1 .text:00037890 ADD R3, R0, R12 .text:00037894 LDRB R2, [R3,#1] .text:00037898 TST R2, #0x20 .text:0003789C BNE loc_37888 .text:000378A0 MOV R12, R1 .text:000378A4 CMP R1, #0 .text:000378A8 MOV R8, R5 .text:000378AC BEQ loc_378E8 .text:000378B0 LDR R3, [R7] .text:000378B4 ADD R3, R0, R3 .text:000378B8 B loc_378DC .text:000378BC ; --------------------------------------------------------------------------- .text:000378BC .text:000378BC loc_378BC ; CODE XREF: add_module+1D8j .text:000378BC STRB R12, [R5],#1 .text:000378C0 LDRB R12, [R4,#1]! .text:000378C4 CMP R12, #0 .text:000378C8 BEQ loc_378E8 .text:000378CC LDRB R3, [R4] .text:000378D0 LDR R1, [R7] .text:000378D4 MOV R3, R3,LSL#1 .text:000378D8 ADD R3, R3, R1 .text:000378DC .text:000378DC loc_378DC ; CODE XREF: add_module+1ACj .text:000378DC LDRB R2, [R3,#1] .text:000378E0 TST R2, #0x20 .text:000378E4 BEQ loc_378BC .text:000378E8 .text:000378E8 loc_378E8 ; CODE XREF: add_module+1A0j .text:000378E8 ; add_module+1BCj .text:000378E8 LDRB R3, [R4] .text:000378EC CMP R3, #0 .text:000378F0 MOVEQ R2, #1 .text:000378F4 STREQ R2, [R11,#var_3C] .text:000378F8 STREQB R3, [R5],#1 .text:000378FC BEQ loc_3792C .text:00037900 MOV R3, #0 .text:00037904 STRB R3, [R5],#1 .text:00037908 MOV R0, R4 .text:0003790C SUB R1, R11, #-var_2C .text:00037910 MOV R2, #0xA .text:00037914 BL __strtol_internal .text:00037918 LDR R3, [R11,#var_2C] .text:0003791C CMP R4, R3 .text:00037920 CMPNE R0, #0 .text:00037924 MOVLE R0, #1 .text:00037928 STR R0, [R11,#var_3C] .text:0003792C .text:0003792C loc_3792C ; CODE XREF: add_module+1F0j .text:0003792C LDRB R3, [R8] .text:00037930 CMP R3, #0 .text:00037934 BEQ locret_37B4C .text:00037938 CMP R3, #0x2F .text:0003793C MOVEQ R10, #0 .text:00037940 MOV R7, #0 .text:00037944 RSB R3, R8, R5 .text:00037948 CMP R3, #3 .text:0003794C STR R3, [R11,#var_40] .text:00037950 BLE loc_3796C .text:00037954 SUB R0, R5, #4 .text:00037958 LDR R1, =gconv_module_ext .text:0003795C MOV R2, #4 .text:00037960 BL memcmp .text:00037964 CMP R0, R7 .text:00037968 BEQ loc_37970 .text:0003796C .text:0003796C loc_3796C ; CODE XREF: add_module+244j .text:0003796C MOV R7, #3 .text:00037970 .text:00037970 loc_37970 ; CODE XREF: add_module+25Cj .text:00037970 MOV R0, R6 .text:00037974 MOV R1, #0 .text:00037978 RSB R4, R6, R9 .text:0003797C MOV R2, R4 .text:00037980 BL memchr .text:00037984 SUBS R2, R0, #0 .text:00037988 SUBNE R2, R2, R6 .text:0003798C MOVEQ R2, R4 .text:00037990 ADD R3, R2, #4 .text:00037994 BIC R3, R3, #3 .text:00037998 RSB SP, R3, SP .text:0003799C MOV R1, #0 .text:000379A0 STRB R1, [SP,R2] .text:000379A4 MOV R0, SP .text:000379A8 MOV R1, R6 .text:000379AC BL memcpy .text:000379B0 STR R0, [R11,#var_34] .text:000379B4 LDR R1, =__gconv_alias_db .text:000379B8 LDR R2, =__gconv_alias_compare .text:000379BC SUB R0, R11, #-var_34 .text:000379C0 BL tfind .text:000379C4 CMP R0, #0 .text:000379C8 BNE locret_37B4C .text:000379CC MOV R0, #1 .text:000379D0 RSB R1, R6, R5 .text:000379D4 ADD R3, R10, #0x20 .text:000379D8 ADD R1, R1, R3 .text:000379DC ADD R1, R1, R7 .text:000379E0 BL calloc .text:000379E4 SUBS R5, R0, #0 .text:000379E8 BEQ locret_37B4C .text:000379EC ADD R0, R5, #0x20 .text:000379F0 STR R0, [R5] .text:000379F4 MOV R1, R6 .text:000379F8 MOV R2, R4 .text:000379FC BL mempcpy .text:00037A00 STR R0, [R5,#4] .text:00037A04 MOV R1, R9 .text:00037A08 RSB R2, R1, R8 .text:00037A0C BL mempcpy .text:00037A10 LDR R3, [R11,#var_3C] .text:00037A14 STR R3, [R5,#8] .text:00037A18 LDR R3, [R11,#arg_4] .text:00037A1C STR R0, [R5,#0x10] .text:00037A20 CMP R10, #0 .text:00037A24 STR R3, [R5,#0xC] .text:00037A28 BEQ loc_37A38 .text:00037A2C LDR R1, [R11,#var_38] .text:00037A30 MOV R2, R10 .text:00037A34 BL mempcpy .text:00037A38 .text:00037A38 loc_37A38 ; CODE XREF: add_module+31Cj .text:00037A38 LDR R2, [R11,#var_40] .text:00037A3C MOV R1, R8 .text:00037A40 BL mempcpy .text:00037A44 CMP R7, #0 .text:00037A48 BEQ loc_37A5C .text:00037A4C SUB R0, R0, #1 .text:00037A50 LDR R1, =gconv_module_ext .text:00037A54 MOV R2, #4 .text:00037A58 BL memcpy .text:00037A5C .text:00037A5C loc_37A5C ; CODE XREF: add_module+33Cj .text:00037A5C LDR R6, =__gconv_modules_db .text:00037A60 B loc_37B3C .text:00037A64 ; --------------------------------------------------------------------------- .text:00037A64 .text:00037A64 loc_37A64 ; CODE XREF: add_module+438j .text:00037A64 LDR R4, [R6] .text:00037A68 LDR R0, [R5] .text:00037A6C LDR R1, [R4] .text:00037A70 BL strcmp .text:00037A74 CMP R0, #0 .text:00037A78 BNE loc_37B30 .text:00037A7C B loc_37AA8 .text:00037A7C ; --------------------------------------------------------------------------- .text:00037A80 off_37A80 DCD __ctype_b ; DATA XREF: add_module+10r .text:00037A80 ; add_module+174r .text:00037A84 off_37A84 DCD __ctype_toupper ; DATA XREF: add_module+88r .text:00037A84 ; add_module+128r .text:00037A88 off_37A88 DCD gconv_module_ext ; DATA XREF: add_module+24Cr .text:00037A88 ; add_module+344r .text:00037A8C off_37A8C DCD __gconv_alias_db ; DATA XREF: add_module+2A8r .text:00037A90 off_37A90 DCD __gconv_alias_compare ; DATA XREF: add_module+2ACr .text:00037A94 off_37A94 DCD __gconv_modules_db ; DATA XREF: add_module:loc_37A5Cr .text:00037A98 ; --------------------------------------------------------------------------- .text:00037A98 .text:00037A98 loc_37A98 ; CODE XREF: add_module+3ACj .text:00037A98 ; add_module+3C0j .text:00037A98 ADD R6, R4, #0x18 .text:00037A9C LDR R4, [R4,#0x18] .text:00037AA0 CMP R4, #0 .text:00037AA4 BEQ loc_37AD0 .text:00037AA8 .text:00037AA8 loc_37AA8 ; CODE XREF: add_module+370j .text:00037AA8 LDR R0, [R5] .text:00037AAC LDR R1, [R4] .text:00037AB0 BL strcmp .text:00037AB4 CMP R0, #0 .text:00037AB8 BNE loc_37A98 .text:00037ABC LDR R0, [R5,#4] .text:00037AC0 LDR R1, [R4,#4] .text:00037AC4 BL strcmp .text:00037AC8 CMP R0, #0 .text:00037ACC BNE loc_37A98 .text:00037AD0 .text:00037AD0 loc_37AD0 ; CODE XREF: add_module+398j .text:00037AD0 CMP R4, #0 .text:00037AD4 BEQ loc_37B48 .text:00037AD8 LDR R2, [R5,#8] .text:00037ADC LDR R3, [R4,#8] .text:00037AE0 CMP R2, R3 .text:00037AE4 BLT loc_37AFC .text:00037AE8 BNE loc_37B24 .text:00037AEC LDR R2, [R5,#0xC] .text:00037AF0 LDR R3, [R4,#0xC] .text:00037AF4 CMP R2, R3 .text:00037AF8 BGE loc_37B24 .text:00037AFC .text:00037AFC loc_37AFC ; CODE XREF: add_module+3D8j .text:00037AFC LDR R3, [R4,#0x14] .text:00037B00 STR R3, [R5,#0x14] .text:00037B04 LDR R2, [R4,#0x1C] .text:00037B08 STR R2, [R5,#0x1C] .text:00037B0C LDR R3, [R4,#0x18] .text:00037B10 STR R3, [R5,#0x18] .text:00037B14 STR R5, [R6] .text:00037B18 MOV R0, R4 .text:00037B1C BL free .text:00037B20 B locret_37B4C .text:00037B24 ; --------------------------------------------------------------------------- .text:00037B24 .text:00037B24 loc_37B24 ; CODE XREF: add_module+3DCj .text:00037B24 ; add_module+3ECj .text:00037B24 MOV R0, R5 .text:00037B28 BL free .text:00037B2C B locret_37B4C .text:00037B30 ; --------------------------------------------------------------------------- .text:00037B30 .text:00037B30 loc_37B30 ; CODE XREF: add_module+36Cj .text:00037B30 CMP R0, #0 .text:00037B34 ADDGE R6, R4, #0x1C .text:00037B38 ADDLT R6, R4, #0x14 .text:00037B3C .text:00037B3C loc_37B3C ; CODE XREF: add_module+354j .text:00037B3C LDR R3, [R6] .text:00037B40 CMP R3, #0 .text:00037B44 BNE loc_37A64 .text:00037B48 .text:00037B48 loc_37B48 ; CODE XREF: add_module+3C8j .text:00037B48 STR R5, [R6] .text:00037B4C .text:00037B4C locret_37B4C ; CODE XREF: add_module+C8j .text:00037B4C ; add_module+168j ... .text:00037B4C LDMDB R11, {R4-R11,SP,PC} .text:00037B4C ; End of function add_module .text:00037B4C .text:00037B50 .text:00037B50 ; =============== S U B R O U T I N E ======================================= .text:00037B50 .text:00037B50 ; Attributes: bp-based frame .text:00037B50 .text:00037B50 read_conf_file ; CODE XREF: __gconv_read_conf+B8p .text:00037B50 .text:00037B50 var_44 = -0x44 .text:00037B50 var_40 = -0x40 .text:00037B50 var_3C = -0x3C .text:00037B50 var_38 = -0x38 .text:00037B50 var_34 = -0x34 .text:00037B50 var_30 = -0x30 .text:00037B50 var_2C = -0x2C .text:00037B50 arg_0 = 4 .text:00037B50 .text:00037B50 MOV R12, SP .text:00037B54 STMFD SP!, {R4-R12,LR,PC} .text:00037B58 SUB R11, R12, #4 .text:00037B5C SUB SP, SP, #0x1C .text:00037B60 STR R1, [R11,#var_34] .text:00037B64 STR R2, [R11,#var_38] .text:00037B68 STR R3, [R11,#var_3C] .text:00037B6C LDR R1, =aR_2 ; "r" .text:00037B70 BL fopen .text:00037B74 MOV R3, #0 .text:00037B78 STR R3, [R11,#var_2C] .text:00037B7C SUBS R9, R0, #0 .text:00037B80 STR R3, [R11,#var_30] .text:00037B84 BEQ locret_37EF8 .text:00037B88 LDR R10, =__ctype_b .text:00037B8C B loc_37EB0 .text:00037B90 ; --------------------------------------------------------------------------- .text:00037B90 .text:00037B90 loc_37B90 ; CODE XREF: read_conf_file+388j .text:00037B90 LDR R5, [R11,#var_2C] .text:00037B94 MOV R1, #0x23 .text:00037B98 MOV R0, R5 .text:00037B9C BL strchr .text:00037BA0 SUBS LR, R0, #0 .text:00037BA4 STRNEB R4, [LR] .text:00037BA8 BNE loc_37BBC .text:00037BAC ADD R0, R6, R5 .text:00037BB0 LDRB R3, [R0,#-1] .text:00037BB4 CMP R3, #0xA .text:00037BB8 STREQB LR, [R0,#-1] .text:00037BBC .text:00037BBC loc_37BBC ; CODE XREF: read_conf_file+58j .text:00037BBC LDR R3, =__ctype_b .text:00037BC0 LDRB R2, [R5] .text:00037BC4 LDR R12, [R3] .text:00037BC8 MOV R2, R2,LSL#1 .text:00037BCC ADD R2, R2, R12 .text:00037BD0 LDRB R1, [R2,#1] .text:00037BD4 MOV R8, R3 .text:00037BD8 TST R1, #0x20 .text:00037BDC BEQ loc_37BFC .text:00037BE0 MOV R1, R12 .text:00037BE4 .text:00037BE4 loc_37BE4 ; CODE XREF: read_conf_file+A8j .text:00037BE4 LDRB R3, [R5,#1]! .text:00037BE8 MOV R3, R3,LSL#1 .text:00037BEC ADD R3, R3, R1 .text:00037BF0 LDRB R2, [R3,#1] .text:00037BF4 TST R2, #0x20 .text:00037BF8 BNE loc_37BE4 .text:00037BFC .text:00037BFC loc_37BFC ; CODE XREF: read_conf_file+8Cj .text:00037BFC CMP R5, LR .text:00037C00 BEQ loc_37EB0 .text:00037C04 LDRB R3, [R5] .text:00037C08 MOV R6, R5 .text:00037C0C CMP R3, #0 .text:00037C10 BEQ loc_37C44 .text:00037C14 LDR R1, [R10] .text:00037C18 B loc_37C30 .text:00037C1C ; --------------------------------------------------------------------------- .text:00037C1C .text:00037C1C loc_37C1C ; CODE XREF: read_conf_file+F0j .text:00037C1C LDRB R3, [R5,#1]! .text:00037C20 CMP R3, #0 .text:00037C24 BEQ loc_37C44 .text:00037C28 LDRB R3, [R5] .text:00037C2C LDR R1, [R8] .text:00037C30 .text:00037C30 loc_37C30 ; CODE XREF: read_conf_file+C8j .text:00037C30 MOV R3, R3,LSL#1 .text:00037C34 ADD R3, R3, R1 .text:00037C38 LDRB R2, [R3,#1] .text:00037C3C TST R2, #0x20 .text:00037C40 BEQ loc_37C1C .text:00037C44 .text:00037C44 loc_37C44 ; CODE XREF: read_conf_file+C0j .text:00037C44 ; read_conf_file+D4j .text:00037C44 RSB R3, R6, R5 .text:00037C48 CMP R3, #5 .text:00037C4C MOV R4, R3 .text:00037C50 BNE loc_37E60 .text:00037C54 MOV R0, R6 .text:00037C58 LDR R1, =aAlias ; "alias" .text:00037C5C MOV R2, R4 .text:00037C60 BL memcmp .text:00037C64 CMP R0, #0 .text:00037C68 BNE loc_37E60 .text:00037C6C MOV R12, R5 .text:00037C70 LDRB R3, [R12] .text:00037C74 LDR R1, [R10] .text:00037C78 MOV R3, R3,LSL#1 .text:00037C7C ADD R3, R3, R1 .text:00037C80 LDRB R2, [R3,#1] .text:00037C84 TST R2, #0x20 .text:00037C88 BEQ loc_37CA8 .text:00037C8C LDR R1, [R8] .text:00037C90 .text:00037C90 loc_37C90 ; CODE XREF: read_conf_file+154j .text:00037C90 LDRB R3, [R12,#1]! .text:00037C94 MOV R3, R3,LSL#1 .text:00037C98 ADD R3, R3, R1 .text:00037C9C LDRB R2, [R3,#1] .text:00037CA0 TST R2, #0x20 .text:00037CA4 BNE loc_37C90 .text:00037CA8 .text:00037CA8 loc_37CA8 ; CODE XREF: read_conf_file+138j .text:00037CA8 MOV R6, R12 .text:00037CAC LDRB R3, [R6] .text:00037CB0 MOV R4, R6 .text:00037CB4 CMP R3, #0 .text:00037CB8 BEQ loc_37D10 .text:00037CBC MOV R0, R3 .text:00037CC0 LDR R2, [R10] .text:00037CC4 MOV R3, R0,LSL#1 .text:00037CC8 ADD R3, R3, R2 .text:00037CCC LDRB R1, [R3,#1] .text:00037CD0 TST R1, #0x20 .text:00037CD4 BNE loc_37D10 .text:00037CD8 LDR LR, =__ctype_toupper .text:00037CDC .text:00037CDC loc_37CDC ; CODE XREF: read_conf_file+1BCj .text:00037CDC LDR R3, [LR] .text:00037CE0 LDR R2, [R3,R0,LSL#2] .text:00037CE4 STRB R2, [R4],#1 .text:00037CE8 LDRB R3, [R12,#1]! .text:00037CEC CMP R3, #0 .text:00037CF0 BEQ loc_37D10 .text:00037CF4 LDRB R0, [R12] .text:00037CF8 LDR R2, [R8] .text:00037CFC MOV R3, R0,LSL#1 .text:00037D00 ADD R3, R3, R2 .text:00037D04 LDRB R1, [R3,#1] .text:00037D08 TST R1, #0x20 .text:00037D0C BEQ loc_37CDC .text:00037D10 .text:00037D10 loc_37D10 ; CODE XREF: read_conf_file+168j .text:00037D10 ; read_conf_file+184j ... .text:00037D10 LDRB R3, [R12] .text:00037D14 CMP R3, #0 .text:00037D18 BEQ loc_37EB0 .text:00037D1C MOV R3, #0 .text:00037D20 STRB R3, [R4],#1 .text:00037D24 ADD R7, R12, #1 .text:00037D28 LDRB R3, [R7] .text:00037D2C LDR R2, [R10] .text:00037D30 MOV R3, R3,LSL#1 .text:00037D34 ADD R3, R3, R2 .text:00037D38 LDRB R1, [R3,#1] .text:00037D3C MOV R12, R7 .text:00037D40 TST R1, #0x20 .text:00037D44 BEQ loc_37D64 .text:00037D48 LDR R1, [R8] .text:00037D4C .text:00037D4C loc_37D4C ; CODE XREF: read_conf_file+210j .text:00037D4C LDRB R3, [R12,#1]! .text:00037D50 MOV R3, R3,LSL#1 .text:00037D54 ADD R3, R3, R1 .text:00037D58 LDRB R2, [R3,#1] .text:00037D5C TST R2, #0x20 .text:00037D60 BNE loc_37D4C .text:00037D64 .text:00037D64 loc_37D64 ; CODE XREF: read_conf_file+1F4j .text:00037D64 LDRB R3, [R12] .text:00037D68 CMP R3, #0 .text:00037D6C BEQ loc_37DC4 .text:00037D70 MOV R0, R3 .text:00037D74 LDR R3, [R10] .text:00037D78 MOV R2, R0,LSL#1 .text:00037D7C ADD R2, R2, R3 .text:00037D80 LDRB R1, [R2,#1] .text:00037D84 TST R1, #0x20 .text:00037D88 BNE loc_37DC4 .text:00037D8C LDR LR, =__ctype_toupper .text:00037D90 .text:00037D90 loc_37D90 ; CODE XREF: read_conf_file+270j .text:00037D90 LDR R3, [LR] .text:00037D94 LDR R2, [R3,R0,LSL#2] .text:00037D98 STRB R2, [R4],#1 .text:00037D9C LDRB R3, [R12,#1]! .text:00037DA0 CMP R3, #0 .text:00037DA4 BEQ loc_37DC4 .text:00037DA8 LDRB R0, [R12] .text:00037DAC LDR R3, [R8] .text:00037DB0 MOV R2, R0,LSL#1 .text:00037DB4 ADD R2, R2, R3 .text:00037DB8 LDRB R1, [R2,#1] .text:00037DBC TST R1, #0x20 .text:00037DC0 BEQ loc_37D90 .text:00037DC4 .text:00037DC4 loc_37DC4 ; CODE XREF: read_conf_file+21Cj .text:00037DC4 ; read_conf_file+238j ... .text:00037DC4 CMP R7, R4 .text:00037DC8 BEQ loc_37EB0 .text:00037DCC MOV R3, #0 .text:00037DD0 STRB R3, [R4],#1 .text:00037DD4 MOV R0, R6 .text:00037DD8 BL detect_conflict .text:00037DDC CMP R0, #0 .text:00037DE0 BNE loc_37EB0 .text:00037DE4 RSB R5, R6, R4 .text:00037DE8 ADD R0, R5, #8 .text:00037DEC BL malloc .text:00037DF0 SUBS R4, R0, #0 .text:00037DF4 BEQ loc_37EB0 .text:00037DF8 ADD R0, R4, #8 .text:00037DFC MOV R1, R6 .text:00037E00 MOV R2, R5 .text:00037E04 BL memcpy .text:00037E08 STR R0, [R4] .text:00037E0C RSB R3, R6, R7 .text:00037E10 ADD R0, R0, R3 .text:00037E14 STR R0, [R4,#4] .text:00037E18 LDR R1, =__gconv_alias_db .text:00037E1C LDR R2, =__gconv_alias_compare .text:00037E20 MOV R0, R4 .text:00037E24 BL tsearch .text:00037E28 CMP R0, #0 .text:00037E2C BEQ loc_37E3C .text:00037E30 LDR R3, [R0] .text:00037E34 CMP R3, R4 .text:00037E38 BEQ loc_37EB0 .text:00037E3C .text:00037E3C loc_37E3C ; CODE XREF: read_conf_file+2DCj .text:00037E3C MOV R0, R4 .text:00037E40 BL free .text:00037E44 B loc_37EB0 .text:00037E44 ; --------------------------------------------------------------------------- .text:00037E48 off_37E48 DCD aR_2 ; DATA XREF: read_conf_file+1Cr .text:00037E48 ; "r" .text:00037E4C off_37E4C DCD __ctype_b ; DATA XREF: read_conf_file+38r .text:00037E4C ; read_conf_file:loc_37BBCr .text:00037E50 off_37E50 DCD aAlias ; DATA XREF: read_conf_file+108r .text:00037E50 ; "alias" .text:00037E54 off_37E54 DCD __ctype_toupper ; DATA XREF: read_conf_file+188r .text:00037E54 ; read_conf_file+23Cr .text:00037E58 off_37E58 DCD __gconv_alias_db ; DATA XREF: read_conf_file+2C8r .text:00037E5C off_37E5C DCD __gconv_alias_compare ; DATA XREF: read_conf_file+2CCr .text:00037E60 ; --------------------------------------------------------------------------- .text:00037E60 .text:00037E60 loc_37E60 ; CODE XREF: read_conf_file+100j .text:00037E60 ; read_conf_file+118j .text:00037E60 CMP R4, #6 .text:00037E64 BNE loc_37EB0 .text:00037E68 MOV R0, R6 .text:00037E6C LDR R1, =aModule ; "module" .text:00037E70 MOV R2, R4 .text:00037E74 BL memcmp .text:00037E78 CMP R0, #0 .text:00037E7C BNE loc_37EB0 .text:00037E80 LDR R3, [R11,#arg_0] .text:00037E84 STR R3, [SP,#0x44+var_44] .text:00037E88 LDR R2, =modcounter.168 .text:00037E8C LDR R3, [R2] .text:00037E90 STR R3, [SP,#0x44+var_40] .text:00037E94 ADD R3, R3, #1 .text:00037E98 STR R3, [R2] .text:00037E9C LDR R1, [R11,#var_34] .text:00037EA0 LDR R2, [R11,#var_38] .text:00037EA4 LDR R3, [R11,#var_3C] .text:00037EA8 MOV R0, R5 .text:00037EAC BL add_module .text:00037EB0 .text:00037EB0 loc_37EB0 ; CODE XREF: read_conf_file+3Cj .text:00037EB0 ; read_conf_file+B0j ... .text:00037EB0 LDR R3, [R9] .text:00037EB4 MOV R4, R3,LSR#4 .text:00037EB8 ANDS R4, R4, #1 .text:00037EBC BNE loc_37EDC .text:00037EC0 SUB R0, R11, #-var_2C .text:00037EC4 SUB R1, R11, #-var_30 .text:00037EC8 MOV R2, #0xA .text:00037ECC MOV R3, R9 .text:00037ED0 BL getdelim .text:00037ED4 SUBS R6, R0, #0 .text:00037ED8 BGE loc_37B90 .text:00037EDC .text:00037EDC loc_37EDC ; CODE XREF: read_conf_file+36Cj .text:00037EDC LDR R0, [R11,#var_2C] .text:00037EE0 BL free .text:00037EE4 MOV R0, R9 .text:00037EE8 BL fclose .text:00037EEC B locret_37EF8 .text:00037EEC ; --------------------------------------------------------------------------- .text:00037EF0 off_37EF0 DCD aModule ; DATA XREF: read_conf_file+31Cr .text:00037EF0 ; "module" .text:00037EF4 off_37EF4 DCD modcounter.168 ; DATA XREF: read_conf_file+338r .text:00037EF8 ; --------------------------------------------------------------------------- .text:00037EF8 .text:00037EF8 locret_37EF8 ; CODE XREF: read_conf_file+34j .text:00037EF8 ; read_conf_file+39Cj .text:00037EF8 LDMDB R11, {R4-R11,SP,PC} .text:00037EF8 ; End of function read_conf_file .text:00037EF8 .text:00037EFC .text:00037EFC ; =============== S U B R O U T I N E ======================================= .text:00037EFC .text:00037EFC ; Attributes: bp-based frame .text:00037EFC .text:00037EFC EXPORT __gconv_get_path .text:00037EFC __gconv_get_path ; CODE XREF: __gconv_read_conf+38p .text:00037EFC ; __gconv_translit_find+F0p .text:00037EFC .text:00037EFC var_30 = -0x30 .text:00037EFC var_2C = -0x2C .text:00037EFC .text:00037EFC MOV R12, SP .text:00037F00 STMFD SP!, {R4-R12,LR,PC} .text:00037F04 LDR R3, =0 .text:00037F08 SUB R11, R12, #4 .text:00037F0C CMP R3, #0 .text:00037F10 SUB SP, SP, #8 .text:00037F14 BEQ loc_37F24 .text:00037F18 LDR R0, =lock.172 .text:00037F1C MOV LR, PC .text:00037F20 MOV PC, R3 .text:00037F24 .text:00037F24 loc_37F24 ; CODE XREF: __gconv_get_path+18j .text:00037F24 LDR R3, =__gconv_path_elem .text:00037F28 LDR R6, [R3] .text:00037F2C CMP R6, #0 .text:00037F30 BNE loc_38240 .text:00037F34 LDR R0, =aGconv_path ; "GCONV_PATH" .text:00037F38 BL getenv .text:00037F3C SUBS R4, R0, #0 .text:00037F40 BNE loc_37F84 .text:00037F44 MOV R8, R6 .text:00037F48 STR R8, [R11,#var_30] .text:00037F4C LDR R4, =default_gconv_path ; "/usr/local/arm/2.95.3/arm-linux/lib/gco"... .text:00037F50 MOV R7, #0x2A .text:00037F54 MOV R0, R4 .text:00037F58 BL strlen .text:00037F5C MOV R2, R0 .text:00037F60 ADD R3, R2, #4 .text:00037F64 BIC R3, R3, #3 .text:00037F68 RSB SP, R3, SP .text:00037F6C MOV R0, SP .text:00037F70 MOV R1, R4 .text:00037F74 ADD R2, R2, #1 .text:00037F78 BL memcpy .text:00037F7C STR R0, [R11,#var_2C] .text:00037F80 B loc_37FE0 .text:00037F84 ; --------------------------------------------------------------------------- .text:00037F84 .text:00037F84 loc_37F84 ; CODE XREF: __gconv_get_path+44j .text:00037F84 MOV R0, R4 .text:00037F88 BL strlen .text:00037F8C MOV R2, R0 .text:00037F90 ADD R3, R2, #0x2E .text:00037F94 BIC R3, R3, #3 .text:00037F98 RSB SP, R3, SP .text:00037F9C STR SP, [R11,#var_2C] .text:00037FA0 ADD R7, R2, #0x2B .text:00037FA4 MOV R0, SP .text:00037FA8 MOV R1, R4 .text:00037FAC BL mempcpy .text:00037FB0 LDR R1, =asc_590A8 ; ":" .text:00037FB4 MOV R2, #1 .text:00037FB8 BL mempcpy .text:00037FBC LDR R1, =default_gconv_path ; "/usr/local/arm/2.95.3/arm-linux/lib/gco"... .text:00037FC0 MOV R2, #0x2A .text:00037FC4 BL mempcpy .text:00037FC8 MOV R0, R6 .text:00037FCC MOV R1, R0 .text:00037FD0 BL getcwd .text:00037FD4 MOV R8, R0 .text:00037FD8 BL strlen .text:00037FDC STR R0, [R11,#var_30] .text:00037FE0 .text:00037FE0 loc_37FE0 ; CODE XREF: __gconv_get_path+84j .text:00037FE0 MOV R5, #0 .text:00037FE4 MOV R1, #0x3A .text:00037FE8 LDR R0, [R11,#var_2C] .text:00037FEC MOV R4, #1 .text:00037FF0 BL strchr .text:00037FF4 LDR R2, [R11,#var_30] .text:00037FF8 CMP R0, #0 .text:00037FFC ADD R6, R2, R4 .text:00038000 BEQ loc_38028 .text:00038004 .text:00038004 loc_38004 ; CODE XREF: __gconv_get_path+128j .text:00038004 ADD R3, R5, #1 .text:00038008 CMP R0, R3 .text:0003800C ADDNE R4, R4, #1 .text:00038010 MOV R5, R0 .text:00038014 ADD R0, R5, #1 .text:00038018 MOV R1, #0x3A .text:0003801C BL strchr .text:00038020 CMP R0, #0 .text:00038024 BNE loc_38004 .text:00038028 .text:00038028 loc_38028 ; CODE XREF: __gconv_get_path+104j .text:00038028 ADD R3, R4, #1 .text:0003802C ADD R3, R7, R3,LSL#3 .text:00038030 ADD R3, R3, R4 .text:00038034 SUB R2, R4, #1 .text:00038038 MLA R0, R6, R2, R3 .text:0003803C BL malloc .text:00038040 SUBS R6, R0, #0 .text:00038044 BEQ loc_3821C .text:00038048 MOV R7, #0 .text:0003804C LDR R12, [R11,#var_2C] .text:00038050 LDR R3, =__gconv_max_path_elem_len .text:00038054 MOV R2, R4,LSL#3 .text:00038058 STR R7, [R3] .text:0003805C ADD R2, R2, #8 .text:00038060 ADD R0, R6, R2 .text:00038064 CMP R12, R7 .text:00038068 MOVEQ R12, R7 .text:0003806C LDRB R1, [R12] .text:00038070 SUB R2, R11, #-var_2C .text:00038074 CMP R1, #0x3A .text:00038078 BNE loc_38088 .text:0003807C .text:0003807C loc_3807C ; CODE XREF: __gconv_get_path+188j .text:0003807C LDRB R3, [R12,#1]! .text:00038080 CMP R3, #0x3A .text:00038084 BEQ loc_3807C .text:00038088 .text:00038088 loc_38088 ; CODE XREF: __gconv_get_path+17Cj .text:00038088 LDRB R3, [R12] .text:0003808C MOV R1, #0 .text:00038090 CMP R3, R1 .text:00038094 BEQ loc_380D0 .text:00038098 MOV R1, R12 .text:0003809C CMP R3, #0x3A .text:000380A0 BEQ loc_380BC .text:000380A4 .text:000380A4 loc_380A4 ; CODE XREF: __gconv_get_path+1BCj .text:000380A4 LDRB R3, [R12,#1]! .text:000380A8 AND R3, R3, #0xFF .text:000380AC CMP R3, #0 .text:000380B0 BEQ loc_380BC .text:000380B4 CMP R3, #0x3A .text:000380B8 BNE loc_380A4 .text:000380BC .text:000380BC loc_380BC ; CODE XREF: __gconv_get_path+1A4j .text:000380BC ; __gconv_get_path+1B4j .text:000380BC LDRB R3, [R12] .text:000380C0 CMP R3, #0 .text:000380C4 MOVNE R3, #0 .text:000380C8 STRNEB R3, [R12],#1 .text:000380CC STR R12, [R2] .text:000380D0 .text:000380D0 loc_380D0 ; CODE XREF: __gconv_get_path+198j .text:000380D0 SUBS R4, R1, #0 .text:000380D4 BNE loc_380F0 .text:000380D8 LDR R0, =aElemVoid0 ; "elem != ((void *)0)" .text:000380DC LDR R1, =aGconv_conf_c ; "gconv_conf.c" .text:000380E0 MOV R2, #0x1E0 .text:000380E4 LDR R3, =a__gconv_get_pa ; "__gconv_get_path" .text:000380E8 ADD R2, R2, #2 .text:000380EC BL __assert_fail .text:000380F0 ; --------------------------------------------------------------------------- .text:000380F0 .text:000380F0 loc_380F0 ; CODE XREF: __gconv_get_path+1D8j .text:000380F0 MOV R9, #0 .text:000380F4 MOV R5, R7,LSL#3 .text:000380F8 MOV R10, #0x2F .text:000380FC .text:000380FC loc_380FC ; CODE XREF: __gconv_get_path+310j .text:000380FC STR R0, [R5,R6] .text:00038100 LDRB R3, [R4] .text:00038104 CMP R3, #0x2F .text:00038108 BEQ loc_38164 .text:0003810C CMP R8, #0 .text:00038110 BNE loc_38154 .text:00038114 LDR R0, =aCwdVoid0 ; "cwd != ((void *)0)" .text:00038118 LDR R1, =aGconv_conf_c ; "gconv_conf.c" .text:0003811C LDR R3, =a__gconv_get_pa ; "__gconv_get_path" .text:00038120 MOV R2, #0x1E8 .text:00038124 BL __assert_fail .text:00038124 ; --------------------------------------------------------------------------- .text:00038128 off_38128 DCD 0 ; DATA XREF: __gconv_get_path+8r .text:0003812C off_3812C DCD lock.172 ; DATA XREF: __gconv_get_path+1Cr .text:00038130 off_38130 DCD __gconv_path_elem ; DATA XREF: __gconv_get_path:loc_37F24r .text:00038134 off_38134 DCD aGconv_path ; DATA XREF: __gconv_get_path+38r .text:00038134 ; "GCONV_PATH" .text:00038138 off_38138 DCD default_gconv_path ; DATA XREF: __gconv_get_path+50r .text:00038138 ; __gconv_get_path+C0r .text:00038138 ; "/usr/local/arm/2.95.3/arm-linux/lib/gco"... .text:0003813C off_3813C DCD asc_590A8 ; DATA XREF: __gconv_get_path+B4r .text:0003813C ; ":" .text:00038140 off_38140 DCD __gconv_max_path_elem_len .text:00038140 ; DATA XREF: __gconv_get_path+154r .text:00038144 off_38144 DCD aElemVoid0 ; DATA XREF: __gconv_get_path+1DCr .text:00038144 ; "elem != ((void *)0)" .text:00038148 off_38148 DCD aGconv_conf_c ; DATA XREF: __gconv_get_path+1E0r .text:00038148 ; __gconv_get_path+21Cr .text:00038148 ; "gconv_conf.c" .text:0003814C off_3814C DCD a__gconv_get_pa ; DATA XREF: __gconv_get_path+1E8r .text:0003814C ; __gconv_get_path+220r .text:0003814C ; "__gconv_get_path" .text:00038150 off_38150 DCD aCwdVoid0 ; DATA XREF: __gconv_get_path+218r .text:00038150 ; "cwd != ((void *)0)" .text:00038154 ; --------------------------------------------------------------------------- .text:00038154 .text:00038154 loc_38154 ; CODE XREF: __gconv_get_path+214j .text:00038154 LDR R2, [R11,#var_30] .text:00038158 MOV R1, R8 .text:0003815C BL mempcpy .text:00038160 STRB R10, [R0],#1 .text:00038164 .text:00038164 loc_38164 ; CODE XREF: __gconv_get_path+20Cj .text:00038164 MOV R1, R4 .text:00038168 BL stpcpy .text:0003816C LDRB R3, [R0,#-1] .text:00038170 CMP R3, #0x2F .text:00038174 STRNEB R10, [R0],#1 .text:00038178 LDR R3, [R5,R6] .text:0003817C ADD R2, R5, R6 .text:00038180 RSB R1, R3, R0 .text:00038184 STR R1, [R2,#4] .text:00038188 LDR R2, =__gconv_max_path_elem_len .text:0003818C LDR R3, [R2] .text:00038190 CMP R1, R3 .text:00038194 STRHI R1, [R2] .text:00038198 STRB R9, [R0],#1 .text:0003819C LDR R2, [R11,#var_2C] .text:000381A0 ADD R5, R5, #8 .text:000381A4 LDRB R3, [R2] .text:000381A8 ADD R7, R7, #1 .text:000381AC CMP R3, #0x3A .text:000381B0 BNE loc_381C0 .text:000381B4 .text:000381B4 loc_381B4 ; CODE XREF: __gconv_get_path+2C0j .text:000381B4 LDRB R3, [R2,#1]! .text:000381B8 CMP R3, #0x3A .text:000381BC BEQ loc_381B4 .text:000381C0 .text:000381C0 loc_381C0 ; CODE XREF: __gconv_get_path+2B4j .text:000381C0 MOV R1, #0 .text:000381C4 LDRB R3, [R2] .text:000381C8 MOV R12, R7,LSL#3 .text:000381CC CMP R3, R1 .text:000381D0 BEQ loc_38208 .text:000381D4 MOV R1, R2 .text:000381D8 CMP R3, #0x3A .text:000381DC BEQ loc_381F8 .text:000381E0 .text:000381E0 loc_381E0 ; CODE XREF: __gconv_get_path+2F8j .text:000381E0 LDRB R3, [R2,#1]! .text:000381E4 AND R3, R3, #0xFF .text:000381E8 CMP R3, #0 .text:000381EC BEQ loc_381F8 .text:000381F0 CMP R3, #0x3A .text:000381F4 BNE loc_381E0 .text:000381F8 .text:000381F8 loc_381F8 ; CODE XREF: __gconv_get_path+2E0j .text:000381F8 ; __gconv_get_path+2F0j .text:000381F8 LDRB R3, [R2] .text:000381FC CMP R3, #0 .text:00038200 STRNEB R9, [R2],#1 .text:00038204 STR R2, [R11,#var_2C] .text:00038208 .text:00038208 loc_38208 ; CODE XREF: __gconv_get_path+2D4j .text:00038208 SUBS R4, R1, #0 .text:0003820C BNE loc_380FC .text:00038210 STR R4, [R12,R6] .text:00038214 ADD R3, R12, R6 .text:00038218 STR R4, [R3,#4] .text:0003821C .text:0003821C loc_3821C ; CODE XREF: __gconv_get_path+148j .text:0003821C LDR R3, =empty_path_elem .text:00038220 CMP R6, #0 .text:00038224 LDR R2, =__gconv_path_elem .text:00038228 MOVNE R3, R6 .text:0003822C CMP R8, #0 .text:00038230 STR R3, [R2] .text:00038234 BEQ loc_38240 .text:00038238 MOV R0, R8 .text:0003823C BL free .text:00038240 .text:00038240 loc_38240 ; CODE XREF: __gconv_get_path+34j .text:00038240 ; __gconv_get_path+338j .text:00038240 LDR R3, =0 .text:00038244 CMP R3, #0 .text:00038248 BEQ locret_38270 .text:0003824C LDR R0, =lock.172 .text:00038250 MOV LR, PC .text:00038254 MOV PC, R3 .text:00038258 B locret_38270 .text:00038258 ; --------------------------------------------------------------------------- .text:0003825C off_3825C DCD __gconv_max_path_elem_len .text:0003825C ; DATA XREF: __gconv_get_path+28Cr .text:00038260 off_38260 DCD empty_path_elem ; DATA XREF: __gconv_get_path:loc_3821Cr .text:00038264 off_38264 DCD __gconv_path_elem ; DATA XREF: __gconv_get_path+328r .text:00038268 off_38268 DCD 0 ; DATA XREF: __gconv_get_path:loc_38240r .text:0003826C off_3826C DCD lock.172 ; DATA XREF: __gconv_get_path+350r .text:00038270 ; --------------------------------------------------------------------------- .text:00038270 .text:00038270 locret_38270 ; CODE XREF: __gconv_get_path+34Cj .text:00038270 ; __gconv_get_path+35Cj .text:00038270 LDMDB R11, {R4-R11,SP,PC} .text:00038270 ; End of function __gconv_get_path .text:00038270 .text:00038274 .text:00038274 ; =============== S U B R O U T I N E ======================================= .text:00038274 .text:00038274 ; Attributes: bp-based frame .text:00038274 .text:00038274 EXPORT __gconv_read_conf .text:00038274 __gconv_read_conf ; CODE XREF: __gconv_lookup_alias+40p .text:00038274 ; __gconv_find_transform+44p .text:00038274 ; DATA XREF: ... .text:00038274 .text:00038274 var_44 = -0x44 .text:00038274 var_40 = -0x40 .text:00038274 var_3C = -0x3C .text:00038274 var_38 = -0x38 .text:00038274 var_30 = -0x30 .text:00038274 var_2C = -0x2C .text:00038274 .text:00038274 MOV R12, SP .text:00038278 STMFD SP!, {R4-R12,LR,PC} .text:0003827C SUB R11, R12, #4 .text:00038280 MOV R4, #0 .text:00038284 SUB SP, SP, #0x1C .text:00038288 STR R4, [R11,#var_2C] .text:0003828C STR R4, [R11,#var_30] .text:00038290 LDR R5, =__gconv_path_elem .text:00038294 BL __errno_location .text:00038298 LDR R3, [R5] .text:0003829C LDR R0, [R0] .text:000382A0 CMP R3, R4 .text:000382A4 STR R0, [R11,#var_3C] .text:000382A8 BNE loc_382B0 .text:000382AC BL __gconv_get_path .text:000382B0 .text:000382B0 loc_382B0 ; CODE XREF: __gconv_read_conf+34j .text:000382B0 LDR R3, [R5] .text:000382B4 LDR R2, [R3] .text:000382B8 MOV R10, R4 .text:000382BC LDR R9, =__ctype_b .text:000382C0 CMP R2, #0 .text:000382C4 SUB R2, R11, #-var_38 .text:000382C8 STR R2, [R11,#var_40] .text:000382CC BEQ loc_38344 .text:000382D0 MOV R8, R5 .text:000382D4 MOV R7, R10 .text:000382D8 .text:000382D8 loc_382D8 ; CODE XREF: __gconv_read_conf+CCj .text:000382D8 LDR R1, [R8] .text:000382DC ADD R2, R7, R1 .text:000382E0 LDR R4, [R2,#4] .text:000382E4 LDR R6, [R7,R1] .text:000382E8 ADD R3, R4, #0x11 .text:000382EC BIC R3, R3, #3 .text:000382F0 RSB SP, R3, SP .text:000382F4 ADD R5, SP, #0x44+var_40 .text:000382F8 MOV R0, R5 .text:000382FC MOV R1, R6 .text:00038300 MOV R2, R4 .text:00038304 BL mempcpy .text:00038308 LDR R1, =gconv_conf_filename ; "gconv-modules" .text:0003830C MOV R2, #0xE .text:00038310 BL mempcpy .text:00038314 SUB R3, R11, #-var_30 .text:00038318 STR R3, [SP,#0x44+var_44] .text:0003831C MOV R0, R5 .text:00038320 MOV R1, R6 .text:00038324 MOV R2, R4 .text:00038328 SUB R3, R11, #-var_2C .text:0003832C BL read_conf_file .text:00038330 LDR R2, [R8] .text:00038334 ADD R7, R7, #8 .text:00038338 LDR R3, [R7,R2] .text:0003833C CMP R3, #0 .text:00038340 BNE loc_382D8 .text:00038344 .text:00038344 loc_38344 ; CODE XREF: __gconv_read_conf+58j .text:00038344 MOV R10, #0 .text:00038348 .text:00038348 loc_38348 ; CODE XREF: __gconv_read_conf+200j .text:00038348 LDR R2, =builtin_modules .text:0003834C MOV R4, R10,LSL#5 .text:00038350 LDR R3, [R2,R4] .text:00038354 STR R3, [R11,#var_38] .text:00038358 LDR R0, [R11,#var_40] .text:0003835C LDR R1, =__gconv_alias_db .text:00038360 LDR R2, =__gconv_alias_compare .text:00038364 BL tfind .text:00038368 CMP R0, #0 .text:0003836C ADD R7, R10, #1 .text:00038370 BNE loc_3846C .text:00038374 LDR R6, =__gconv_modules_db .text:00038378 LDR R3, [R6] .text:0003837C CMP R3, #0 .text:00038380 LDR R3, =builtin_modules .text:00038384 ADD R5, R4, R3 .text:00038388 BEQ loc_38468 .text:0003838C .text:0003838C loc_3838C ; CODE XREF: __gconv_read_conf+1F0j .text:0003838C LDR R4, [R6] .text:00038390 LDR R0, [R5] .text:00038394 LDR R1, [R4] .text:00038398 BL strcmp .text:0003839C CMP R0, #0 .text:000383A0 BNE loc_38450 .text:000383A4 B loc_383B8 .text:000383A8 ; --------------------------------------------------------------------------- .text:000383A8 .text:000383A8 loc_383A8 ; CODE XREF: __gconv_read_conf+154j .text:000383A8 ; __gconv_read_conf+168j .text:000383A8 ADD R6, R4, #0x18 .text:000383AC LDR R4, [R4,#0x18] .text:000383B0 CMP R4, #0 .text:000383B4 BEQ loc_383E0 .text:000383B8 .text:000383B8 loc_383B8 ; CODE XREF: __gconv_read_conf+130j .text:000383B8 LDR R0, [R5] .text:000383BC LDR R1, [R4] .text:000383C0 BL strcmp .text:000383C4 CMP R0, #0 .text:000383C8 BNE loc_383A8 .text:000383CC LDR R0, [R5,#4] .text:000383D0 LDR R1, [R4,#4] .text:000383D4 BL strcmp .text:000383D8 CMP R0, #0 .text:000383DC BNE loc_383A8 .text:000383E0 .text:000383E0 loc_383E0 ; CODE XREF: __gconv_read_conf+140j .text:000383E0 CMP R4, #0 .text:000383E4 BEQ loc_38468 .text:000383E8 LDR R2, [R5,#8] .text:000383EC LDR R3, [R4,#8] .text:000383F0 CMP R2, R3 .text:000383F4 BLT loc_3840C .text:000383F8 BNE loc_3846C .text:000383FC LDR R2, [R5,#0xC] .text:00038400 LDR R3, [R4,#0xC] .text:00038404 CMP R2, R3 .text:00038408 BGE loc_3846C .text:0003840C .text:0003840C loc_3840C ; CODE XREF: __gconv_read_conf+180j .text:0003840C LDR R3, [R4,#0x14] .text:00038410 STR R3, [R5,#0x14] .text:00038414 LDR R2, [R4,#0x1C] .text:00038418 STR R2, [R5,#0x1C] .text:0003841C LDR R3, [R4,#0x18] .text:00038420 STR R3, [R5,#0x18] .text:00038424 STR R5, [R6] .text:00038428 MOV R0, R4 .text:0003842C BL free .text:00038430 B loc_3846C .text:00038430 ; --------------------------------------------------------------------------- .text:00038434 off_38434 DCD __gconv_path_elem ; DATA XREF: __gconv_read_conf+1Cr .text:00038438 off_38438 DCD __ctype_b ; DATA XREF: __gconv_read_conf+48r .text:0003843C off_3843C DCD gconv_conf_filename ; DATA XREF: __gconv_read_conf+94r .text:0003843C ; "gconv-modules" .text:00038440 off_38440 DCD builtin_modules ; DATA XREF: __gconv_read_conf:loc_38348r .text:00038440 ; __gconv_read_conf+10Cr .text:00038444 off_38444 DCD __gconv_alias_db ; DATA XREF: __gconv_read_conf+E8r .text:00038448 off_38448 DCD __gconv_alias_compare ; DATA XREF: __gconv_read_conf+ECr .text:0003844C off_3844C DCD __gconv_modules_db ; DATA XREF: __gconv_read_conf+100r .text:00038450 ; --------------------------------------------------------------------------- .text:00038450 .text:00038450 loc_38450 ; CODE XREF: __gconv_read_conf+12Cj .text:00038450 CMP R0, #0 .text:00038454 ADDGE R6, R4, #0x1C .text:00038458 ADDLT R6, R4, #0x14 .text:0003845C LDR R3, [R6] .text:00038460 CMP R3, #0 .text:00038464 BNE loc_3838C .text:00038468 .text:00038468 loc_38468 ; CODE XREF: __gconv_read_conf+114j .text:00038468 ; __gconv_read_conf+170j .text:00038468 STR R5, [R6] .text:0003846C .text:0003846C loc_3846C ; CODE XREF: __gconv_read_conf+FCj .text:0003846C ; __gconv_read_conf+184j ... .text:0003846C MOV R10, R7 .text:00038470 CMP R10, #0xC .text:00038474 BLS loc_38348 .text:00038478 MOV R10, #0x23 .text:0003847C LDR R8, =__ctype_b .text:00038480 .text:00038480 loc_38480 ; CODE XREF: __gconv_read_conf+41Cj .text:00038480 LDR R2, =builtin_aliases .text:00038484 SUB R10, R10, #1 .text:00038488 LDR R4, [R2,R10,LSL#2] .text:0003848C MOV R0, R4 .text:00038490 BL strlen .text:00038494 MOV R2, R0 .text:00038498 ADD R3, R2, #4 .text:0003849C BIC R3, R3, #3 .text:000384A0 RSB SP, R3, SP .text:000384A4 ADD R0, SP, #0x44+var_40 .text:000384A8 MOV R1, R4 .text:000384AC ADD R2, R2, #1 .text:000384B0 BL memcpy .text:000384B4 MOV R12, R0 .text:000384B8 LDRB R3, [R12] .text:000384BC LDR R1, [R8] .text:000384C0 MOV R3, R3,LSL#1 .text:000384C4 ADD R3, R3, R1 .text:000384C8 LDRB R2, [R3,#1] .text:000384CC TST R2, #0x20 .text:000384D0 BEQ loc_384F0 .text:000384D4 LDR R1, [R9] .text:000384D8 .text:000384D8 loc_384D8 ; CODE XREF: __gconv_read_conf+278j .text:000384D8 LDRB R3, [R12,#1]! .text:000384DC MOV R3, R3,LSL#1 .text:000384E0 ADD R3, R3, R1 .text:000384E4 LDRB R2, [R3,#1] .text:000384E8 TST R2, #0x20 .text:000384EC BNE loc_384D8 .text:000384F0 .text:000384F0 loc_384F0 ; CODE XREF: __gconv_read_conf+25Cj .text:000384F0 MOV R6, R12 .text:000384F4 LDRB R3, [R6] .text:000384F8 MOV R4, R6 .text:000384FC CMP R3, #0 .text:00038500 BEQ loc_38558 .text:00038504 MOV R0, R3 .text:00038508 LDR R2, [R8] .text:0003850C MOV R3, R0,LSL#1 .text:00038510 ADD R3, R3, R2 .text:00038514 LDRB R1, [R3,#1] .text:00038518 TST R1, #0x20 .text:0003851C BNE loc_38558 .text:00038520 LDR LR, =__ctype_toupper .text:00038524 .text:00038524 loc_38524 ; CODE XREF: __gconv_read_conf+2E0j .text:00038524 LDR R3, [LR] .text:00038528 LDR R2, [R3,R0,LSL#2] .text:0003852C STRB R2, [R4],#1 .text:00038530 LDRB R3, [R12,#1]! .text:00038534 CMP R3, #0 .text:00038538 BEQ loc_38558 .text:0003853C LDRB R0, [R12] .text:00038540 LDR R2, [R9] .text:00038544 MOV R3, R0,LSL#1 .text:00038548 ADD R3, R3, R2 .text:0003854C LDRB R1, [R3,#1] .text:00038550 TST R1, #0x20 .text:00038554 BEQ loc_38524 .text:00038558 .text:00038558 loc_38558 ; CODE XREF: __gconv_read_conf+28Cj .text:00038558 ; __gconv_read_conf+2A8j ... .text:00038558 LDRB R3, [R12] .text:0003855C CMP R3, #0 .text:00038560 BEQ loc_3868C .text:00038564 MOV R3, #0 .text:00038568 STRB R3, [R4],#1 .text:0003856C ADD R7, R12, #1 .text:00038570 LDRB R3, [R7] .text:00038574 LDR R2, [R8] .text:00038578 MOV R3, R3,LSL#1 .text:0003857C ADD R3, R3, R2 .text:00038580 LDRB R1, [R3,#1] .text:00038584 MOV R12, R7 .text:00038588 TST R1, #0x20 .text:0003858C BEQ loc_385AC .text:00038590 LDR R1, [R9] .text:00038594 .text:00038594 loc_38594 ; CODE XREF: __gconv_read_conf+334j .text:00038594 LDRB R3, [R12,#1]! .text:00038598 MOV R3, R3,LSL#1 .text:0003859C ADD R3, R3, R1 .text:000385A0 LDRB R2, [R3,#1] .text:000385A4 TST R2, #0x20 .text:000385A8 BNE loc_38594 .text:000385AC .text:000385AC loc_385AC ; CODE XREF: __gconv_read_conf+318j .text:000385AC LDRB R3, [R12] .text:000385B0 CMP R3, #0 .text:000385B4 BEQ loc_3860C .text:000385B8 MOV R0, R3 .text:000385BC LDR R3, [R8] .text:000385C0 MOV R2, R0,LSL#1 .text:000385C4 ADD R2, R2, R3 .text:000385C8 LDRB R1, [R2,#1] .text:000385CC TST R1, #0x20 .text:000385D0 BNE loc_3860C .text:000385D4 LDR LR, =__ctype_toupper .text:000385D8 .text:000385D8 loc_385D8 ; CODE XREF: __gconv_read_conf+394j .text:000385D8 LDR R3, [LR] .text:000385DC LDR R2, [R3,R0,LSL#2] .text:000385E0 STRB R2, [R4],#1 .text:000385E4 LDRB R3, [R12,#1]! .text:000385E8 CMP R3, #0 .text:000385EC BEQ loc_3860C .text:000385F0 LDRB R0, [R12] .text:000385F4 LDR R3, [R9] .text:000385F8 MOV R2, R0,LSL#1 .text:000385FC ADD R2, R2, R3 .text:00038600 LDRB R1, [R2,#1] .text:00038604 TST R1, #0x20 .text:00038608 BEQ loc_385D8 .text:0003860C .text:0003860C loc_3860C ; CODE XREF: __gconv_read_conf+340j .text:0003860C ; __gconv_read_conf+35Cj ... .text:0003860C CMP R7, R4 .text:00038610 BEQ loc_3868C .text:00038614 MOV R3, #0 .text:00038618 STRB R3, [R4],#1 .text:0003861C MOV R0, R6 .text:00038620 BL detect_conflict .text:00038624 CMP R0, #0 .text:00038628 BNE loc_3868C .text:0003862C RSB R5, R6, R4 .text:00038630 ADD R0, R5, #8 .text:00038634 BL malloc .text:00038638 SUBS R4, R0, #0 .text:0003863C BEQ loc_3868C .text:00038640 ADD R0, R4, #8 .text:00038644 MOV R1, R6 .text:00038648 MOV R2, R5 .text:0003864C BL memcpy .text:00038650 STR R0, [R4] .text:00038654 RSB R3, R6, R7 .text:00038658 ADD R0, R0, R3 .text:0003865C STR R0, [R4,#4] .text:00038660 LDR R1, =__gconv_alias_db .text:00038664 LDR R2, =__gconv_alias_compare .text:00038668 MOV R0, R4 .text:0003866C BL tsearch .text:00038670 CMP R0, #0 .text:00038674 BEQ loc_38684 .text:00038678 LDR R3, [R0] .text:0003867C CMP R3, R4 .text:00038680 BEQ loc_3868C .text:00038684 .text:00038684 loc_38684 ; CODE XREF: __gconv_read_conf+400j .text:00038684 MOV R0, R4 .text:00038688 BL free .text:0003868C .text:0003868C loc_3868C ; CODE XREF: __gconv_read_conf+2ECj .text:0003868C ; __gconv_read_conf+39Cj ... .text:0003868C CMP R10, #0 .text:00038690 BNE loc_38480 .text:00038694 BL __errno_location .text:00038698 LDR R3, [R11,#var_3C] .text:0003869C STR R3, [R0] .text:000386A0 B locret_386B8 .text:000386A0 ; --------------------------------------------------------------------------- .text:000386A4 off_386A4 DCD __ctype_b ; DATA XREF: __gconv_read_conf+208r .text:000386A8 off_386A8 DCD builtin_aliases ; DATA XREF: __gconv_read_conf:loc_38480r .text:000386AC off_386AC DCD __ctype_toupper ; DATA XREF: __gconv_read_conf+2ACr .text:000386AC ; __gconv_read_conf+360r .text:000386B0 off_386B0 DCD __gconv_alias_db ; DATA XREF: __gconv_read_conf+3ECr .text:000386B4 off_386B4 DCD __gconv_alias_compare ; DATA XREF: __gconv_read_conf+3F0r .text:000386B8 ; --------------------------------------------------------------------------- .text:000386B8 .text:000386B8 locret_386B8 ; CODE XREF: __gconv_read_conf+42Cj .text:000386B8 LDMDB R11, {R4-R11,SP,PC} .text:000386B8 ; End of function __gconv_read_conf .text:000386B8 .text:000386BC .text:000386BC ; =============== S U B R O U T I N E ======================================= .text:000386BC .text:000386BC ; Attributes: bp-based frame .text:000386BC .text:000386BC free_mem_5 .text:000386BC MOV R12, SP .text:000386C0 STMFD SP!, {R11,R12,LR,PC} .text:000386C4 LDR R3, =__gconv_path_elem .text:000386C8 LDR R0, [R3] .text:000386CC SUB R11, R12, #4 .text:000386D0 CMP R0, #0 .text:000386D4 LDMEQDB R11, {R11,SP,PC} .text:000386D8 LDR R3, =empty_path_elem .text:000386DC CMP R0, R3 .text:000386E0 LDMEQDB R11, {R11,SP,PC} .text:000386E4 BL free .text:000386E8 LDMDB R11, {R11,SP,PC} .text:000386E8 ; End of function free_mem_5 .text:000386E8 .text:000386E8 ; --------------------------------------------------------------------------- .text:000386EC off_386EC DCD __gconv_path_elem ; DATA XREF: free_mem_5+8r .text:000386F0 off_386F0 DCD empty_path_elem ; DATA XREF: free_mem_5+1Cr .text:000386F4 .text:000386F4 ; =============== S U B R O U T I N E ======================================= .text:000386F4 .text:000386F4 ; Attributes: bp-based frame .text:000386F4 .text:000386F4 EXPORT __gconv_get_builtin_trans .text:000386F4 __gconv_get_builtin_trans ; CODE XREF: gen_steps+124p .text:000386F4 MOV R12, SP .text:000386F8 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:000386FC SUB R11, R12, #4 .text:00038700 MOV R7, R0 .text:00038704 MOV R5, R1 .text:00038708 MOV R4, #0 .text:0003870C LDR R6, =map .text:00038710 .text:00038710 loc_38710 ; CODE XREF: __gconv_get_builtin_trans+38j .text:00038710 LDR R1, [R6,R4,LSL#5] .text:00038714 MOV R0, R7 .text:00038718 BL strcmp .text:0003871C CMP R0, #0 .text:00038720 BEQ loc_38730 .text:00038724 ADD R4, R4, #1 .text:00038728 CMP R4, #0xC .text:0003872C BLS loc_38710 .text:00038730 .text:00038730 loc_38730 ; CODE XREF: __gconv_get_builtin_trans+2Cj .text:00038730 CMP R4, #0xC .text:00038734 BLS loc_3874C .text:00038738 LDR R0, =aCntSizeofMapSi ; "cnt < sizeof (map) / sizeof (map[0])" .text:0003873C LDR R1, =aGconv_builtin_ ; "gconv_builtin.c" .text:00038740 LDR R3, =a__gconv_get_bu ; "__gconv_get_builtin_trans" .text:00038744 MOV R2, #0x49 .text:00038748 BL __assert_fail .text:0003874C ; --------------------------------------------------------------------------- .text:0003874C .text:0003874C loc_3874C ; CODE XREF: __gconv_get_builtin_trans+40j .text:0003874C MOV R1, R4,LSL#5 .text:00038750 ADD R3, R6, #4 .text:00038754 LDR R2, [R3,R1] .text:00038758 STR R2, [R5,#0x14] .text:0003875C ADD R3, R6, #8 .text:00038760 LDR R2, [R3,R1] .text:00038764 STR R2, [R5,#0x18] .text:00038768 ADD R3, R6, #0xC .text:0003876C LDR R2, [R3,R1] .text:00038770 MOV R0, #0 .text:00038774 STR R0, [R5] .text:00038778 STR R0, [R5,#4] .text:0003877C STR R2, [R5,#0x1C] .text:00038780 ADD R3, R6, #0x10 .text:00038784 LDR R2, [R3,R1] .text:00038788 STR R2, [R5,#0x20] .text:0003878C ADD R3, R6, #0x14 .text:00038790 LDR R2, [R3,R1] .text:00038794 STR R2, [R5,#0x24] .text:00038798 ADD R3, R6, #0x18 .text:0003879C LDR R2, [R3,R1] .text:000387A0 STR R2, [R5,#0x28] .text:000387A4 ADD R3, R6, #0x1C .text:000387A8 LDR R2, [R3,R1] .text:000387AC STR R0, [R5,#0x30] .text:000387B0 STR R2, [R5,#0x2C] .text:000387B4 LDMDB R11, {R4-R7,R11,SP,PC} .text:000387B4 ; End of function __gconv_get_builtin_trans .text:000387B4 .text:000387B4 ; --------------------------------------------------------------------------- .text:000387B8 off_387B8 DCD map ; DATA XREF: __gconv_get_builtin_trans+18r .text:000387BC off_387BC DCD aCntSizeofMapSi ; DATA XREF: __gconv_get_builtin_trans+44r .text:000387BC ; "cnt < sizeof (map) / sizeof (map[0])" .text:000387C0 off_387C0 DCD aGconv_builtin_ ; DATA XREF: __gconv_get_builtin_trans+48r .text:000387C0 ; "gconv_builtin.c" .text:000387C4 off_387C4 DCD a__gconv_get_bu ; DATA XREF: __gconv_get_builtin_trans+4Cr .text:000387C4 ; "__gconv_get_builtin_trans" .text:000387C8 .text:000387C8 ; =============== S U B R O U T I N E ======================================= .text:000387C8 .text:000387C8 ; Attributes: bp-based frame .text:000387C8 .text:000387C8 EXPORT __gconv_transform_internal_ucs4 .text:000387C8 __gconv_transform_internal_ucs4 .text:000387C8 .text:000387C8 var_58 = -0x58 .text:000387C8 var_4C = -0x4C .text:000387C8 var_48 = -0x48 .text:000387C8 var_44 = -0x44 .text:000387C8 var_40 = -0x40 .text:000387C8 var_3C = -0x3C .text:000387C8 var_38 = -0x38 .text:000387C8 var_34 = -0x34 .text:000387C8 var_30 = -0x30 .text:000387C8 var_2C = -0x2C .text:000387C8 arg_0 = 4 .text:000387C8 arg_4 = 8 .text:000387C8 arg_8 = 0xC .text:000387C8 arg_C = 0x10 .text:000387C8 .text:000387C8 MOV R12, SP .text:000387CC STMFD SP!, {R4-R12,LR,PC} .text:000387D0 SUB R11, R12, #4 .text:000387D4 MOV R7, R1 .text:000387D8 SUB SP, SP, #0x30 .text:000387DC LDR R1, [R7,#8] .text:000387E0 MOV R12, #0 .text:000387E4 STR R12, [R11,#var_3C] .text:000387E8 MOV R6, R2 .text:000387EC ADD R0, R0, #0x38 .text:000387F0 STR R0, [R11,#var_34] .text:000387F4 MOV R9, R3 .text:000387F8 ADD R2, R7, #0x24 .text:000387FC STR R2, [R11,#var_38] .text:00038800 TST R1, #1 .text:00038804 LDREQ R3, [R0,#0x14] .text:00038808 STREQ R3, [R11,#var_3C] .text:0003880C LDR R3, [R11,#arg_8] .text:00038810 CMP R3, #0 .text:00038814 BEQ loc_3889C .text:00038818 LDR R12, [R11,#arg_0] .text:0003881C MOV R8, #0 .text:00038820 CMP R12, R8 .text:00038824 BEQ loc_3883C .text:00038828 LDR R0, =aOutbufstartVoi ; "outbufstart == ((void *)0)" .text:0003882C LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:00038830 LDR R3, =a__gconv_transf ; "__gconv_transform_internal_ucs4" .text:00038834 MOV R2, #0x130 .text:00038838 BL __assert_fail .text:0003883C ; --------------------------------------------------------------------------- .text:0003883C .text:0003883C loc_3883C ; CODE XREF: __gconv_transform_internal_ucs4+5Cj .text:0003883C MOV R1, R8 .text:00038840 LDR R0, [R7,#0x14] .text:00038844 MOV R2, #8 .text:00038848 BL memset .text:0003884C LDR R3, [R7,#8] .text:00038850 TST R3, #1 .text:00038854 BNE loc_38CF4 .text:00038858 LDR R0, [R11,#var_3C] .text:0003885C BL _dl_mcount_wrapper_check .text:00038860 STR R8, [SP,#0x58+var_58] .text:00038864 LDR R2, [R11,#arg_4] .text:00038868 MOV R3, #1 .text:0003886C STMFA SP, {R2,R3} .text:00038870 LDR R3, [R11,#arg_C] .text:00038874 STR R3, [SP,#0x58+var_4C] .text:00038878 LDR R0, [R11,#var_34] .text:0003887C LDR R1, [R11,#var_38] .text:00038880 MOV R2, R8 .text:00038884 LDR R12, [R11,#var_3C] .text:00038888 MOV R3, R2 .text:0003888C MOV LR, PC .text:00038890 MOV PC, R12 .text:00038894 MOV R8, R0 .text:00038898 B loc_38CF4 .text:0003889C ; --------------------------------------------------------------------------- .text:0003889C .text:0003889C loc_3889C ; CODE XREF: __gconv_transform_internal_ucs4+4Cj .text:0003889C LDR R2, [R11,#arg_0] .text:000388A0 LDR R10, [R6] .text:000388A4 CMP R2, #0 .text:000388A8 LDREQ R3, [R7] .text:000388AC LDRNE R12, [R11,#arg_0] .text:000388B0 LDRNE R3, [R12] .text:000388B4 STR R3, [R11,#var_2C] .text:000388B8 SUB R3, R11, #-var_2C .text:000388BC STR R3, [R11,#var_48] .text:000388C0 LDR R2, [R11,#arg_C] .text:000388C4 LDR R12, [R7,#4] .text:000388C8 CMP R2, #0 .text:000388CC STR R12, [R11,#var_40] .text:000388D0 BEQ loc_389C8 .text:000388D4 LDR LR, [R7,#0x14] .text:000388D8 LDR R3, [LR] .text:000388DC ANDS R3, R3, #7 .text:000388E0 BEQ loc_389C8 .text:000388E4 LDR R2, [R11,#arg_0] .text:000388E8 CMP R2, #0 .text:000388EC BEQ loc_38908 .text:000388F0 LDR R0, =aOutbufstartVoi ; "outbufstart == ((void *)0)" .text:000388F4 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:000388F8 MOV R2, #0x168 .text:000388FC LDR R3, =a__gconv_transf ; "__gconv_transform_internal_ucs4" .text:00038900 ADD R2, R2, #2 .text:00038904 BL __assert_fail .text:00038908 ; --------------------------------------------------------------------------- .text:00038908 .text:00038908 loc_38908 ; CODE XREF: __gconv_transform_internal_ucs4+124j .text:00038908 LDR R0, [R6] .text:0003890C MOV R12, R3 .text:00038910 LDR R4, [R11,#var_48] .text:00038914 CMP R12, #3 .text:00038918 CMPLS R0, R9 .text:0003891C BCS loc_38944 .text:00038920 .text:00038920 loc_38920 ; CODE XREF: __gconv_transform_internal_ucs4+178j .text:00038920 ADD R3, LR, R12 .text:00038924 LDRB R2, [R0],#1 .text:00038928 ADD R12, R12, #1 .text:0003892C MOV R1, R0 .text:00038930 STRB R2, [R3,#4] .text:00038934 CMP R12, #3 .text:00038938 CMPLS R0, R9 .text:0003893C STR R1, [R6] .text:00038940 BCC loc_38920 .text:00038944 .text:00038944 loc_38944 ; CODE XREF: __gconv_transform_internal_ucs4+154j .text:00038944 CMP R12, #3 .text:00038948 BHI loc_38964 .text:0003894C LDR R3, [LR] .text:00038950 MOV R8, #7 .text:00038954 BIC R3, R3, #7 .text:00038958 ORR R3, R3, R12 .text:0003895C STR R3, [LR] .text:00038960 B loc_389B0 .text:00038964 ; --------------------------------------------------------------------------- .text:00038964 .text:00038964 loc_38964 ; CODE XREF: __gconv_transform_internal_ucs4+180j .text:00038964 LDR R2, [R4] .text:00038968 LDRB R3, [LR,#7] .text:0003896C STRB R3, [R2] .text:00038970 LDR R1, [R4] .text:00038974 LDRB R3, [LR,#6] .text:00038978 STRB R3, [R1,#1] .text:0003897C LDR R2, [R4] .text:00038980 LDRB R3, [LR,#5] .text:00038984 STRB R3, [R2,#2] .text:00038988 LDR R1, [R4] .text:0003898C LDRB R2, [LR,#4] .text:00038990 STRB R2, [R1,#3] .text:00038994 LDR R3, [R4] .text:00038998 ADD R3, R3, #4 .text:0003899C STR R3, [R4] .text:000389A0 LDR R2, [LR] .text:000389A4 MOV R8, #0 .text:000389A8 BIC R2, R2, #7 .text:000389AC STR R2, [LR] .text:000389B0 .text:000389B0 loc_389B0 ; CODE XREF: __gconv_transform_internal_ucs4+198j .text:000389B0 CMP R8, #0 .text:000389B4 BEQ loc_389C8 .text:000389B8 B loc_38CF4 .text:000389BC ; --------------------------------------------------------------------------- .text:000389BC .text:000389BC loc_389BC ; CODE XREF: __gconv_transform_internal_ucs4+3D8j .text:000389BC LDR R3, [R11,#var_2C] .text:000389C0 STR R3, [R7] .text:000389C4 B loc_38C3C .text:000389C8 ; --------------------------------------------------------------------------- .text:000389C8 .text:000389C8 loc_389C8 ; CODE XREF: __gconv_transform_internal_ucs4+108j .text:000389C8 ; __gconv_transform_internal_ucs4+118j ... .text:000389C8 MOV R12, #0 .text:000389CC TST R10, #3 .text:000389D0 STR R12, [R11,#var_44] .text:000389D4 BNE loc_389F0 .text:000389D8 LDR R3, [R7,#8] .text:000389DC TST R3, #1 .text:000389E0 BEQ loc_389F8 .text:000389E4 LDR R3, [R11,#var_2C] .text:000389E8 TST R3, #3 .text:000389EC BEQ loc_389F8 .text:000389F0 .text:000389F0 loc_389F0 ; CODE XREF: __gconv_transform_internal_ucs4+20Cj .text:000389F0 MOV R2, #1 .text:000389F4 STR R2, [R11,#var_44] .text:000389F8 .text:000389F8 loc_389F8 ; CODE XREF: __gconv_transform_internal_ucs4+218j .text:000389F8 ; __gconv_transform_internal_ucs4+224j ... .text:000389F8 LDR R10, [R6] .text:000389FC LDR R3, [R11,#var_44] .text:00038A00 LDR R5, [R11,#var_2C] .text:00038A04 CMP R3, #0 .text:00038A08 BNE loc_38A90 .text:00038A0C MOV R4, R10 .text:00038A10 LDR R2, [R11,#var_40] .text:00038A14 MOV R12, R5 .text:00038A18 LDR R0, [R11,#var_44] .text:00038A1C RSB R3, R5, R2 .text:00038A20 RSB R2, R10, R9 .text:00038A24 CMP R3, R2 .text:00038A28 MOVGE R3, R2 .text:00038A2C CMP R3, #0 .text:00038A30 ADDLT R3, R3, #3 .text:00038A34 MOV LR, R3,ASR#2 .text:00038A38 CMP R0, LR .text:00038A3C BCS loc_38A6C .text:00038A40 .text:00038A40 loc_38A40 ; CODE XREF: __gconv_transform_internal_ucs4+2A0j .text:00038A40 ADD R0, R0, #1 .text:00038A44 LDR R3, [R4],#4 .text:00038A48 CMP R0, LR .text:00038A4C AND R2, R3, #0xFF0000 .text:00038A50 MOV R2, R2,LSR#8 .text:00038A54 ORR R2, R2, R3,LSR#24 .text:00038A58 AND R1, R3, #0xFF00 .text:00038A5C ORR R2, R2, R1,LSL#8 .text:00038A60 ORR R2, R2, R3,LSL#24 .text:00038A64 STR R2, [R12],#4 .text:00038A68 BCC loc_38A40 .text:00038A6C .text:00038A6C loc_38A6C ; CODE XREF: __gconv_transform_internal_ucs4+274j .text:00038A6C STR R4, [R6] .text:00038A70 LDR R3, [R11,#var_48] .text:00038A74 STR R12, [R3] .text:00038A78 LDR R3, [R6] .text:00038A7C CMP R3, R9 .text:00038A80 BEQ loc_38B0C .text:00038A84 ADD R3, R12, #4 .text:00038A88 LDR R12, [R11,#var_40] .text:00038A8C B loc_38B28 .text:00038A90 ; --------------------------------------------------------------------------- .text:00038A90 .text:00038A90 loc_38A90 ; CODE XREF: __gconv_transform_internal_ucs4+240j .text:00038A90 MOV R1, R10 .text:00038A94 MOV R0, R5 .text:00038A98 LDR R2, [R11,#var_40] .text:00038A9C MOV R12, #0 .text:00038AA0 RSB R3, R5, R2 .text:00038AA4 RSB R2, R10, R9 .text:00038AA8 CMP R3, R2 .text:00038AAC MOVGE R3, R2 .text:00038AB0 CMP R3, R12 .text:00038AB4 ADDLT R3, R3, #3 .text:00038AB8 MOV LR, R3,ASR#2 .text:00038ABC CMP R12, LR .text:00038AC0 BCS loc_38AF4 .text:00038AC4 .text:00038AC4 loc_38AC4 ; CODE XREF: __gconv_transform_internal_ucs4+328j .text:00038AC4 LDRB R3, [R1,#3] .text:00038AC8 STRB R3, [R0] .text:00038ACC LDRB R2, [R1,#2] .text:00038AD0 STRB R2, [R0,#1] .text:00038AD4 LDRB R3, [R1,#1] .text:00038AD8 STRB R3, [R0,#2] .text:00038ADC ADD R12, R12, #1 .text:00038AE0 CMP R12, LR .text:00038AE4 LDRB R3, [R1],#4 .text:00038AE8 STRB R3, [R0,#3] .text:00038AEC ADD R0, R0, #4 .text:00038AF0 BCC loc_38AC4 .text:00038AF4 .text:00038AF4 loc_38AF4 ; CODE XREF: __gconv_transform_internal_ucs4+2F8j .text:00038AF4 STR R1, [R6] .text:00038AF8 LDR R3, [R11,#var_48] .text:00038AFC STR R0, [R3] .text:00038B00 LDR R3, [R6] .text:00038B04 CMP R3, R9 .text:00038B08 BNE loc_38B20 .text:00038B0C .text:00038B0C loc_38B0C ; CODE XREF: __gconv_transform_internal_ucs4+2B8j .text:00038B0C MOV R0, #4 .text:00038B10 B loc_38B34 .text:00038B10 ; --------------------------------------------------------------------------- .text:00038B14 off_38B14 DCD aOutbufstartVoi ; DATA XREF: __gconv_transform_internal_ucs4+60r .text:00038B14 ; __gconv_transform_internal_ucs4+128r .text:00038B14 ; "outbufstart == ((void *)0)" .text:00038B18 off_38B18 DCD a__IconvSkeleto ; DATA XREF: __gconv_transform_internal_ucs4+64r .text:00038B18 ; __gconv_transform_internal_ucs4+12Cr .text:00038B18 ; "../iconv/skeleton.c" .text:00038B1C off_38B1C DCD a__gconv_transf ; DATA XREF: __gconv_transform_internal_ucs4+68r .text:00038B1C ; __gconv_transform_internal_ucs4+134r .text:00038B1C ; "__gconv_transform_internal_ucs4" .text:00038B20 ; --------------------------------------------------------------------------- .text:00038B20 .text:00038B20 loc_38B20 ; CODE XREF: __gconv_transform_internal_ucs4+340j .text:00038B20 LDR R12, [R11,#var_40] .text:00038B24 ADD R3, R0, #4 .text:00038B28 .text:00038B28 loc_38B28 ; CODE XREF: __gconv_transform_internal_ucs4+2C4j .text:00038B28 CMP R3, R12 .text:00038B2C MOVLS R0, #7 .text:00038B30 MOVHI R0, #5 .text:00038B34 .text:00038B34 loc_38B34 ; CODE XREF: __gconv_transform_internal_ucs4+348j .text:00038B34 MOV R8, R0 .text:00038B38 LDR R2, [R11,#arg_0] .text:00038B3C CMP R2, #0 .text:00038B40 BNE loc_38C84 .text:00038B44 LDR R4, [R7,#0x20] .text:00038B48 CMP R4, #0 .text:00038B4C BEQ loc_38B8C .text:00038B50 .text:00038B50 loc_38B50 ; CODE XREF: __gconv_transform_internal_ucs4+3C0j .text:00038B50 LDR R0, [R4,#4] .text:00038B54 CMP R0, #0 .text:00038B58 BEQ loc_38B80 .text:00038B5C BL _dl_mcount_wrapper_check .text:00038B60 LDR R3, [R11,#var_2C] .text:00038B64 LDR R0, [R4,#0xC] .text:00038B68 STR R3, [SP,#0x58+var_58] .text:00038B6C MOV R1, R10 .text:00038B70 LDR R2, [R6] .text:00038B74 MOV R3, R5 .text:00038B78 MOV LR, PC .text:00038B7C LDR PC, [R4,#4] .text:00038B80 .text:00038B80 loc_38B80 ; CODE XREF: __gconv_transform_internal_ucs4+390j .text:00038B80 LDR R4, [R4,#0x10] .text:00038B84 CMP R4, #0 .text:00038B88 BNE loc_38B50 .text:00038B8C .text:00038B8C loc_38B8C ; CODE XREF: __gconv_transform_internal_ucs4+384j .text:00038B8C ADD R2, R7, #8 .text:00038B90 LDMIA R2, {R2,R3} .text:00038B94 ADD R3, R3, #1 .text:00038B98 ANDS R4, R2, #1 .text:00038B9C STR R3, [R7,#0xC] .text:00038BA0 BNE loc_389BC .text:00038BA4 LDR R3, [R11,#var_2C] .text:00038BA8 CMP R3, R5 .text:00038BAC BLS loc_38C2C .text:00038BB0 LDR R3, [R7] .text:00038BB4 STR R3, [R11,#var_30] .text:00038BB8 LDR R0, [R11,#var_3C] .text:00038BBC BL _dl_mcount_wrapper_check .text:00038BC0 STR R4, [SP,#0x58+var_58] .text:00038BC4 LDR R3, [R11,#arg_4] .text:00038BC8 STMFA SP, {R3,R4} .text:00038BCC LDR R12, [R11,#arg_C] .text:00038BD0 STR R12, [SP,#0x58+var_4C] .text:00038BD4 LDR R0, [R11,#var_34] .text:00038BD8 LDR R1, [R11,#var_38] .text:00038BDC LDR R3, [R11,#var_2C] .text:00038BE0 LDR R12, [R11,#var_3C] .text:00038BE4 SUB R2, R11, #-var_30 .text:00038BE8 MOV LR, PC .text:00038BEC MOV PC, R12 .text:00038BF0 CMP R0, #4 .text:00038BF4 BEQ loc_38C1C .text:00038BF8 SUB R1, R11, #-var_30 .text:00038BFC LDMIA R1, {R1,R2} .text:00038C00 CMP R1, R2 .text:00038C04 LDRNE R3, [R6] .text:00038C08 RSBNE R2, R1, R2 .text:00038C0C RSBNE R3, R2, R3 .text:00038C10 STRNE R3, [R6] .text:00038C14 MOV R8, R0 .text:00038C18 B loc_38C2C .text:00038C1C ; --------------------------------------------------------------------------- .text:00038C1C .text:00038C1C loc_38C1C ; CODE XREF: __gconv_transform_internal_ucs4+42Cj .text:00038C1C CMP R8, #5 .text:00038C20 LDREQ R3, [R7] .text:00038C24 MOVEQ R8, R4 .text:00038C28 STREQ R3, [R11,#var_2C] .text:00038C2C .text:00038C2C loc_38C2C ; CODE XREF: __gconv_transform_internal_ucs4+3E4j .text:00038C2C ; __gconv_transform_internal_ucs4+450j .text:00038C2C CMP R8, #0 .text:00038C30 LDREQ R3, [R7] .text:00038C34 STREQ R3, [R11,#var_2C] .text:00038C38 BEQ loc_389F8 .text:00038C3C .text:00038C3C loc_38C3C ; CODE XREF: __gconv_transform_internal_ucs4+1FCj .text:00038C3C LDR R2, [R11,#arg_C] .text:00038C40 CMP R8, #7 .text:00038C44 MOVNE R3, #0 .text:00038C48 MOVEQ R3, #1 .text:00038C4C CMP R2, #0 .text:00038C50 MOVEQ R3, #0 .text:00038C54 CMP R3, #0 .text:00038C58 BEQ loc_38CF4 .text:00038C5C LDR R2, [R6] .text:00038C60 RSB R3, R2, R9 .text:00038C64 CMP R3, #3 .text:00038C68 BLE loc_38CA4 .text:00038C6C LDR R0, =aInendInptrp4 ; "inend - *inptrp < 4" .text:00038C70 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:00038C74 MOV R2, #0x254 .text:00038C78 LDR R3, =a__gconv_transf ; "__gconv_transform_internal_ucs4" .text:00038C7C ADD R2, R2, #3 .text:00038C80 BL __assert_fail .text:00038C84 ; --------------------------------------------------------------------------- .text:00038C84 .text:00038C84 loc_38C84 ; CODE XREF: __gconv_transform_internal_ucs4+378j .text:00038C84 LDR R3, [R11,#var_2C] .text:00038C88 LDR R12, [R11,#arg_0] .text:00038C8C MOV R0, R8 .text:00038C90 STR R3, [R12] .text:00038C94 B locret_38CF8 .text:00038C94 ; --------------------------------------------------------------------------- .text:00038C98 off_38C98 DCD aInendInptrp4 ; DATA XREF: __gconv_transform_internal_ucs4+4A4r .text:00038C98 ; "inend - *inptrp < 4" .text:00038C9C off_38C9C DCD a__IconvSkeleto ; DATA XREF: __gconv_transform_internal_ucs4+4A8r .text:00038C9C ; "../iconv/skeleton.c" .text:00038CA0 off_38CA0 DCD a__gconv_transf ; DATA XREF: __gconv_transform_internal_ucs4+4B0r .text:00038CA0 ; "__gconv_transform_internal_ucs4" .text:00038CA4 ; --------------------------------------------------------------------------- .text:00038CA4 .text:00038CA4 loc_38CA4 ; CODE XREF: __gconv_transform_internal_ucs4+4A0j .text:00038CA4 MOV R0, #0 .text:00038CA8 CMP R2, R9 .text:00038CAC BCS loc_38CD4 .text:00038CB0 .text:00038CB0 loc_38CB0 ; CODE XREF: __gconv_transform_internal_ucs4+508j .text:00038CB0 LDR R3, [R6] .text:00038CB4 LDR R2, [R7,#0x14] .text:00038CB8 LDRB R1, [R3],#1 .text:00038CBC ADD R2, R2, R0 .text:00038CC0 STRB R1, [R2,#4] .text:00038CC4 ADD R0, R0, #1 .text:00038CC8 CMP R3, R9 .text:00038CCC STR R3, [R6] .text:00038CD0 BCC loc_38CB0 .text:00038CD4 .text:00038CD4 loc_38CD4 ; CODE XREF: __gconv_transform_internal_ucs4+4E4j .text:00038CD4 LDR R2, [R7,#0x14] .text:00038CD8 LDR R3, [R2] .text:00038CDC BIC R3, R3, #7 .text:00038CE0 STR R3, [R2] .text:00038CE4 LDR R1, [R7,#0x14] .text:00038CE8 LDR R3, [R1] .text:00038CEC ORR R3, R3, R0 .text:00038CF0 STR R3, [R1] .text:00038CF4 .text:00038CF4 loc_38CF4 ; CODE XREF: __gconv_transform_internal_ucs4+8Cj .text:00038CF4 ; __gconv_transform_internal_ucs4+D0j ... .text:00038CF4 MOV R0, R8 .text:00038CF8 .text:00038CF8 locret_38CF8 ; CODE XREF: __gconv_transform_internal_ucs4+4CCj .text:00038CF8 LDMDB R11, {R4-R11,SP,PC} .text:00038CF8 ; End of function __gconv_transform_internal_ucs4 .text:00038CF8 .text:00038CFC .text:00038CFC ; =============== S U B R O U T I N E ======================================= .text:00038CFC .text:00038CFC ; Attributes: bp-based frame .text:00038CFC .text:00038CFC EXPORT __gconv_transform_ucs4_internal .text:00038CFC __gconv_transform_ucs4_internal .text:00038CFC .text:00038CFC var_60 = -0x60 .text:00038CFC var_5C = -0x5C .text:00038CFC var_58 = -0x58 .text:00038CFC var_54 = -0x54 .text:00038CFC var_50 = -0x50 .text:00038CFC var_4C = -0x4C .text:00038CFC var_48 = -0x48 .text:00038CFC var_44 = -0x44 .text:00038CFC var_40 = -0x40 .text:00038CFC var_3C = -0x3C .text:00038CFC var_38 = -0x38 .text:00038CFC var_34 = -0x34 .text:00038CFC var_30 = -0x30 .text:00038CFC var_2C = -0x2C .text:00038CFC arg_0 = 4 .text:00038CFC arg_4 = 8 .text:00038CFC arg_8 = 0xC .text:00038CFC arg_C = 0x10 .text:00038CFC .text:00038CFC MOV R12, SP .text:00038D00 STMFD SP!, {R4-R12,LR,PC} .text:00038D04 SUB R11, R12, #4 .text:00038D08 MOV R7, R1 .text:00038D0C SUB SP, SP, #0x38 .text:00038D10 LDR R1, [R7,#8] .text:00038D14 MOV R12, #0 .text:00038D18 STR R12, [R11,#var_44] .text:00038D1C STR R3, [R11,#var_38] .text:00038D20 ADD R0, R0, #0x38 .text:00038D24 STR R0, [R11,#var_3C] .text:00038D28 MOV R6, R2 .text:00038D2C ADD LR, R7, #0x24 .text:00038D30 STR LR, [R11,#var_40] .text:00038D34 TST R1, #1 .text:00038D38 LDREQ R1, [R0,#0x14] .text:00038D3C STREQ R1, [R11,#var_44] .text:00038D40 LDR R3, [R11,#arg_8] .text:00038D44 CMP R3, #0 .text:00038D48 BEQ loc_38DD4 .text:00038D4C LDR R2, [R11,#arg_0] .text:00038D50 MOV R5, #0 .text:00038D54 CMP R2, R5 .text:00038D58 BEQ loc_38D70 .text:00038D5C LDR R0, =aOutbufstartVoi ; "outbufstart == ((void *)0)" .text:00038D60 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:00038D64 LDR R3, =a__gconv_tran_0 ; "__gconv_transform_ucs4_internal" .text:00038D68 MOV R2, #0x130 .text:00038D6C BL __assert_fail .text:00038D70 ; --------------------------------------------------------------------------- .text:00038D70 .text:00038D70 loc_38D70 ; CODE XREF: __gconv_transform_ucs4_internal+5Cj .text:00038D70 MOV R1, R5 .text:00038D74 LDR R0, [R7,#0x14] .text:00038D78 MOV R2, #8 .text:00038D7C BL memset .text:00038D80 LDR R3, [R7,#8] .text:00038D84 TST R3, #1 .text:00038D88 BNE loc_39334 .text:00038D8C LDR R0, [R11,#var_44] .text:00038D90 BL _dl_mcount_wrapper_check .text:00038D94 STR R5, [SP,#0x60+var_60] .text:00038D98 LDR R3, [R11,#arg_4] .text:00038D9C STR R3, [SP,#0x60+var_5C] .text:00038DA0 MOV R3, #1 .text:00038DA4 STR R3, [SP,#0x60+var_58] .text:00038DA8 LDR R12, [R11,#arg_C] .text:00038DAC STR R12, [SP,#0x60+var_54] .text:00038DB0 LDR R0, [R11,#var_3C] .text:00038DB4 LDR R1, [R11,#var_40] .text:00038DB8 MOV R2, R5 .text:00038DBC LDR R12, [R11,#var_44] .text:00038DC0 MOV R3, R2 .text:00038DC4 MOV LR, PC .text:00038DC8 MOV PC, R12 .text:00038DCC MOV R5, R0 .text:00038DD0 B loc_39334 .text:00038DD4 ; --------------------------------------------------------------------------- .text:00038DD4 .text:00038DD4 loc_38DD4 ; CODE XREF: __gconv_transform_ucs4_internal+4Cj .text:00038DD4 LDR LR, [R11,#arg_0] .text:00038DD8 LDR R1, [R6] .text:00038DDC CMP LR, #0 .text:00038DE0 STR R1, [R11,#var_48] .text:00038DE4 LDREQ R3, [R7] .text:00038DE8 LDRNE R2, [R11,#arg_0] .text:00038DEC LDRNE R3, [R2] .text:00038DF0 STR R3, [R11,#var_30] .text:00038DF4 MOV R3, #0 .text:00038DF8 STR R3, [R11,#var_2C] .text:00038DFC LDR R3, [R11,#arg_4] .text:00038E00 SUB R9, R11, #-var_30 .text:00038E04 LDR R12, [R11,#arg_C] .text:00038E08 CMP R3, #0 .text:00038E0C SUBNE R10, R11, #-var_2C .text:00038E10 MOVEQ R10, #0 .text:00038E14 LDR LR, [R7,#4] .text:00038E18 CMP R12, #0 .text:00038E1C STR LR, [R11,#var_4C] .text:00038E20 BEQ loc_38F68 .text:00038E24 LDR LR, [R7,#0x14] .text:00038E28 LDR R3, [LR] .text:00038E2C ANDS R2, R3, #7 .text:00038E30 BEQ loc_38F68 .text:00038E34 LDR R1, [R11,#arg_0] .text:00038E38 CMP R1, #0 .text:00038E3C BEQ loc_38E58 .text:00038E40 LDR R0, =aOutbufstartVoi ; "outbufstart == ((void *)0)" .text:00038E44 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:00038E48 MOV R2, #0x168 .text:00038E4C LDR R3, =a__gconv_tran_0 ; "__gconv_transform_ucs4_internal" .text:00038E50 ADD R2, R2, #2 .text:00038E54 BL __assert_fail .text:00038E58 ; --------------------------------------------------------------------------- .text:00038E58 .text:00038E58 loc_38E58 ; CODE XREF: __gconv_transform_ucs4_internal+140j .text:00038E58 LDR R0, [R6] .text:00038E5C MOV R12, R2 .text:00038E60 LDR R2, [R11,#var_38] .text:00038E64 MOV R4, R9 .text:00038E68 LDR R5, [R7,#8] .text:00038E6C CMP R12, #3 .text:00038E70 CMPLS R0, R2 .text:00038E74 BCS loc_38EA0 .text:00038E78 .text:00038E78 loc_38E78 ; CODE XREF: __gconv_transform_ucs4_internal+1A0j .text:00038E78 LDRB R2, [R0],#1 .text:00038E7C ADD R3, LR, R12 .text:00038E80 STRB R2, [R3,#4] .text:00038E84 ADD R12, R12, #1 .text:00038E88 MOV R1, R0 .text:00038E8C LDR R3, [R11,#var_38] .text:00038E90 STR R1, [R6] .text:00038E94 CMP R12, #3 .text:00038E98 CMPLS R0, R3 .text:00038E9C BCC loc_38E78 .text:00038EA0 .text:00038EA0 loc_38EA0 ; CODE XREF: __gconv_transform_ucs4_internal+178j .text:00038EA0 CMP R12, #3 .text:00038EA4 BHI loc_38EBC .text:00038EA8 LDR R3, [LR] .text:00038EAC MOV R5, #7 .text:00038EB0 BIC R3, R3, #7 .text:00038EB4 ORR R3, R3, R12 .text:00038EB8 B loc_38F38 .text:00038EBC ; --------------------------------------------------------------------------- .text:00038EBC .text:00038EBC loc_38EBC ; CODE XREF: __gconv_transform_ucs4_internal+1A8j .text:00038EBC LDRB R3, [LR,#4] .text:00038EC0 CMP R3, #0x80 .text:00038EC4 BLS loc_38EF0 .text:00038EC8 TST R5, #2 .text:00038ECC BNE loc_38F2C .text:00038ED0 LDR R2, [LR] .text:00038ED4 MOV R5, #6 .text:00038ED8 LDR R3, [R6] .text:00038EDC AND R2, R2, #7 .text:00038EE0 RSB R2, R2, R12 .text:00038EE4 RSB R3, R2, R3 .text:00038EE8 STR R3, [R6] .text:00038EEC B loc_38F3C .text:00038EF0 ; --------------------------------------------------------------------------- .text:00038EF0 .text:00038EF0 loc_38EF0 ; CODE XREF: __gconv_transform_ucs4_internal+1C8j .text:00038EF0 LDR R2, [R4] .text:00038EF4 LDRB R3, [LR,#7] .text:00038EF8 STRB R3, [R2] .text:00038EFC LDR R1, [R4] .text:00038F00 LDRB R3, [LR,#6] .text:00038F04 STRB R3, [R1,#1] .text:00038F08 LDR R2, [R4] .text:00038F0C LDRB R3, [LR,#5] .text:00038F10 STRB R3, [R2,#2] .text:00038F14 LDR R1, [R4] .text:00038F18 LDRB R2, [LR,#4] .text:00038F1C STRB R2, [R1,#3] .text:00038F20 LDR R3, [R4] .text:00038F24 ADD R3, R3, #4 .text:00038F28 STR R3, [R4] .text:00038F2C .text:00038F2C loc_38F2C ; CODE XREF: __gconv_transform_ucs4_internal+1D0j .text:00038F2C LDR R3, [LR] .text:00038F30 MOV R5, #0 .text:00038F34 BIC R3, R3, #7 .text:00038F38 .text:00038F38 loc_38F38 ; CODE XREF: __gconv_transform_ucs4_internal+1BCj .text:00038F38 STR R3, [LR] .text:00038F3C .text:00038F3C loc_38F3C ; CODE XREF: __gconv_transform_ucs4_internal+1F0j .text:00038F3C CMP R5, #0 .text:00038F40 BEQ loc_38F68 .text:00038F44 B loc_39334 .text:00038F48 ; --------------------------------------------------------------------------- .text:00038F48 .text:00038F48 loc_38F48 ; CODE XREF: __gconv_transform_ucs4_internal+4D8j .text:00038F48 LDR R3, [R11,#var_30] .text:00038F4C STR R3, [R7] .text:00038F50 LDR R12, [R11,#arg_4] .text:00038F54 LDR R3, [R11,#var_2C] .text:00038F58 LDR R2, [R12] .text:00038F5C ADD R2, R2, R3 .text:00038F60 STR R2, [R12] .text:00038F64 B loc_39270 .text:00038F68 ; --------------------------------------------------------------------------- .text:00038F68 .text:00038F68 loc_38F68 ; CODE XREF: __gconv_transform_ucs4_internal+124j .text:00038F68 ; __gconv_transform_ucs4_internal+134j ... .text:00038F68 LDR R1, [R11,#var_48] .text:00038F6C MOV LR, #0 .text:00038F70 STR LR, [R11,#var_50] .text:00038F74 TST R1, #3 .text:00038F78 BNE loc_38F94 .text:00038F7C LDR R3, [R7,#8] .text:00038F80 TST R3, #1 .text:00038F84 BEQ loc_38F9C .text:00038F88 LDR R3, [R11,#var_30] .text:00038F8C TST R3, #3 .text:00038F90 BEQ loc_38F9C .text:00038F94 .text:00038F94 loc_38F94 ; CODE XREF: __gconv_transform_ucs4_internal+27Cj .text:00038F94 MOV R2, #1 .text:00038F98 STR R2, [R11,#var_50] .text:00038F9C .text:00038F9C loc_38F9C ; CODE XREF: __gconv_transform_ucs4_internal+288j .text:00038F9C ; __gconv_transform_ucs4_internal+294j ... .text:00038F9C LDR R3, [R6] .text:00038FA0 LDR R12, [R11,#var_50] .text:00038FA4 LDR R8, [R11,#var_30] .text:00038FA8 CMP R12, #0 .text:00038FAC STR R3, [R11,#var_48] .text:00038FB0 BNE loc_3907C .text:00038FB4 MOV R0, R3 .text:00038FB8 LDR LR, [R11,#var_4C] .text:00038FBC MOV R12, R8 .text:00038FC0 LDR R1, [R11,#var_38] .text:00038FC4 RSB R3, R8, LR .text:00038FC8 RSB R2, R0, R1 .text:00038FCC CMP R3, R2 .text:00038FD0 MOVGE R3, R2 .text:00038FD4 CMP R3, #0 .text:00038FD8 ADDLT R3, R3, #3 .text:00038FDC LDR LR, [R11,#var_50] .text:00038FE0 MOV R4, R3,ASR#2 .text:00038FE4 LDR R3, [R7,#8] .text:00038FE8 CMP LR, R4 .text:00038FEC BCS loc_39054 .text:00038FF0 AND R5, R3, #2 .text:00038FF4 .text:00038FF4 loc_38FF4 ; CODE XREF: __gconv_transform_ucs4_internal+354j .text:00038FF4 LDR R3, [R0] .text:00038FF8 AND R2, R3, #0xFF0000 .text:00038FFC MOV R2, R2,LSR#8 .text:00039000 ORR R2, R2, R3,LSR#24 .text:00039004 AND R1, R3, #0xFF00 .text:00039008 ORR R2, R2, R1,LSL#8 .text:0003900C ORRS R3, R2, R3,LSL#24 .text:00039010 BPL loc_39040 .text:00039014 CMP R10, #0 .text:00039018 BEQ loc_3914C .text:0003901C CMP R5, #0 .text:00039020 LDRNE R3, [R10] .text:00039024 ADDNE R3, R3, #1 .text:00039028 STRNE R3, [R10] .text:0003902C BNE loc_39044 .text:00039030 STR R0, [R6] .text:00039034 MOV R5, #6 .text:00039038 STR R12, [R9] .text:0003903C B loc_3916C .text:00039040 ; --------------------------------------------------------------------------- .text:00039040 .text:00039040 loc_39040 ; CODE XREF: __gconv_transform_ucs4_internal+314j .text:00039040 STR R3, [R12],#4 .text:00039044 .text:00039044 loc_39044 ; CODE XREF: __gconv_transform_ucs4_internal+330j .text:00039044 ADD LR, LR, #1 .text:00039048 ADD R0, R0, #4 .text:0003904C CMP LR, R4 .text:00039050 BCC loc_38FF4 .text:00039054 .text:00039054 loc_39054 ; CODE XREF: __gconv_transform_ucs4_internal+2F0j .text:00039054 STR R0, [R6] .text:00039058 STR R12, [R9] .text:0003905C LDR R2, [R11,#var_38] .text:00039060 LDR R3, [R6] .text:00039064 CMP R3, R2 .text:00039068 BEQ loc_39144 .text:0003906C ADD R3, R12, #4 .text:00039070 LDR R12, [R11,#var_4C] .text:00039074 CMP R3, R12 .text:00039078 B loc_39160 .text:0003907C ; --------------------------------------------------------------------------- .text:0003907C .text:0003907C loc_3907C ; CODE XREF: __gconv_transform_ucs4_internal+2B4j .text:0003907C LDR R1, [R11,#var_48] .text:00039080 LDR LR, [R11,#var_4C] .text:00039084 MOV R0, R8 .text:00039088 LDR R12, [R11,#var_38] .text:0003908C RSB R3, R8, LR .text:00039090 RSB R2, R1, R12 .text:00039094 CMP R3, R2 .text:00039098 MOVGE R3, R2 .text:0003909C MOV R12, #0 .text:000390A0 CMP R3, R12 .text:000390A4 ADDLT R3, R3, #3 .text:000390A8 MOV LR, R3,ASR#2 .text:000390AC CMP R12, LR .text:000390B0 LDR R3, [R7,#8] .text:000390B4 BCS loc_3912C .text:000390B8 AND R4, R3, #2 .text:000390BC .text:000390BC loc_390BC ; CODE XREF: __gconv_transform_ucs4_internal+42Cj .text:000390BC LDRB R3, [R1] .text:000390C0 CMP R3, #0x80 .text:000390C4 BLS loc_39100 .text:000390C8 CMP R10, #0 .text:000390CC BEQ loc_3914C .text:000390D0 CMP R4, #0 .text:000390D4 LDRNE R3, [R10] .text:000390D8 ADDNE R3, R3, #1 .text:000390DC STRNE R3, [R10] .text:000390E0 BNE loc_3911C .text:000390E4 STR R1, [R6] .text:000390E8 MOV R5, #6 .text:000390EC STR R0, [R9] .text:000390F0 B loc_3916C .text:000390F0 ; --------------------------------------------------------------------------- .text:000390F4 off_390F4 DCD aOutbufstartVoi ; DATA XREF: __gconv_transform_ucs4_internal+60r .text:000390F4 ; __gconv_transform_ucs4_internal+144r .text:000390F4 ; "outbufstart == ((void *)0)" .text:000390F8 off_390F8 DCD a__IconvSkeleto ; DATA XREF: __gconv_transform_ucs4_internal+64r .text:000390F8 ; __gconv_transform_ucs4_internal+148r .text:000390F8 ; "../iconv/skeleton.c" .text:000390FC off_390FC DCD a__gconv_tran_0 ; DATA XREF: __gconv_transform_ucs4_internal+68r .text:000390FC ; __gconv_transform_ucs4_internal+150r .text:000390FC ; "__gconv_transform_ucs4_internal" .text:00039100 ; --------------------------------------------------------------------------- .text:00039100 .text:00039100 loc_39100 ; CODE XREF: __gconv_transform_ucs4_internal+3C8j .text:00039100 STRB R3, [R0,#3] .text:00039104 LDRB R3, [R1,#1] .text:00039108 STRB R3, [R0,#2] .text:0003910C LDRB R2, [R1,#2] .text:00039110 STRB R2, [R0,#1] .text:00039114 LDRB R3, [R1,#3] .text:00039118 STRB R3, [R0],#4 .text:0003911C .text:0003911C loc_3911C ; CODE XREF: __gconv_transform_ucs4_internal+3E4j .text:0003911C ADD R12, R12, #1 .text:00039120 ADD R1, R1, #4 .text:00039124 CMP R12, LR .text:00039128 BCC loc_390BC .text:0003912C .text:0003912C loc_3912C ; CODE XREF: __gconv_transform_ucs4_internal+3B8j .text:0003912C STR R1, [R6] .text:00039130 STR R0, [R9] .text:00039134 LDR LR, [R11,#var_38] .text:00039138 LDR R3, [R6] .text:0003913C CMP R3, LR .text:00039140 BNE loc_39154 .text:00039144 .text:00039144 loc_39144 ; CODE XREF: __gconv_transform_ucs4_internal+36Cj .text:00039144 MOV R0, #4 .text:00039148 B loc_39168 .text:0003914C ; --------------------------------------------------------------------------- .text:0003914C .text:0003914C loc_3914C ; CODE XREF: __gconv_transform_ucs4_internal+31Cj .text:0003914C ; __gconv_transform_ucs4_internal+3D0j .text:0003914C MOV R5, #6 .text:00039150 B loc_3916C .text:00039154 ; --------------------------------------------------------------------------- .text:00039154 .text:00039154 loc_39154 ; CODE XREF: __gconv_transform_ucs4_internal+444j .text:00039154 LDR R1, [R11,#var_4C] .text:00039158 ADD R3, R0, #4 .text:0003915C CMP R3, R1 .text:00039160 .text:00039160 loc_39160 ; CODE XREF: __gconv_transform_ucs4_internal+37Cj .text:00039160 MOVLS R0, #7 .text:00039164 MOVHI R0, #5 .text:00039168 .text:00039168 loc_39168 ; CODE XREF: __gconv_transform_ucs4_internal+44Cj .text:00039168 MOV R5, R0 .text:0003916C .text:0003916C loc_3916C ; CODE XREF: __gconv_transform_ucs4_internal+340j .text:0003916C ; __gconv_transform_ucs4_internal+3F4j ... .text:0003916C LDR R2, [R11,#arg_0] .text:00039170 CMP R2, #0 .text:00039174 BNE loc_392BC .text:00039178 LDR R4, [R7,#0x20] .text:0003917C CMP R4, #0 .text:00039180 BEQ loc_391C0 .text:00039184 .text:00039184 loc_39184 ; CODE XREF: __gconv_transform_ucs4_internal+4C0j .text:00039184 LDR R0, [R4,#4] .text:00039188 CMP R0, #0 .text:0003918C BEQ loc_391B4 .text:00039190 BL _dl_mcount_wrapper_check .text:00039194 LDR R3, [R11,#var_30] .text:00039198 LDR R0, [R4,#0xC] .text:0003919C STR R3, [SP,#0x60+var_60] .text:000391A0 LDR R1, [R11,#var_48] .text:000391A4 LDR R2, [R6] .text:000391A8 MOV R3, R8 .text:000391AC MOV LR, PC .text:000391B0 LDR PC, [R4,#4] .text:000391B4 .text:000391B4 loc_391B4 ; CODE XREF: __gconv_transform_ucs4_internal+490j .text:000391B4 LDR R4, [R4,#0x10] .text:000391B8 CMP R4, #0 .text:000391BC BNE loc_39184 .text:000391C0 .text:000391C0 loc_391C0 ; CODE XREF: __gconv_transform_ucs4_internal+484j .text:000391C0 ADD R2, R7, #8 .text:000391C4 LDMIA R2, {R2,R3} .text:000391C8 ADD R3, R3, #1 .text:000391CC ANDS R4, R2, #1 .text:000391D0 STR R3, [R7,#0xC] .text:000391D4 BNE loc_38F48 .text:000391D8 LDR R3, [R11,#var_30] .text:000391DC CMP R3, R8 .text:000391E0 BLS loc_39260 .text:000391E4 LDR R3, [R7] .text:000391E8 STR R3, [R11,#var_34] .text:000391EC LDR R0, [R11,#var_44] .text:000391F0 BL _dl_mcount_wrapper_check .text:000391F4 STR R4, [SP,#0x60+var_60] .text:000391F8 LDR R3, [R11,#arg_4] .text:000391FC STMFA SP, {R3,R4} .text:00039200 LDR R12, [R11,#arg_C] .text:00039204 STR R12, [SP,#0x60+var_54] .text:00039208 LDR R0, [R11,#var_3C] .text:0003920C LDR R1, [R11,#var_40] .text:00039210 LDR R3, [R11,#var_30] .text:00039214 LDR R12, [R11,#var_44] .text:00039218 SUB R2, R11, #-var_34 .text:0003921C MOV LR, PC .text:00039220 MOV PC, R12 .text:00039224 CMP R0, #4 .text:00039228 BEQ loc_39250 .text:0003922C SUB R1, R11, #-var_34 .text:00039230 LDMIA R1, {R1,R2} .text:00039234 CMP R1, R2 .text:00039238 LDRNE R3, [R6] .text:0003923C RSBNE R2, R1, R2 .text:00039240 RSBNE R3, R2, R3 .text:00039244 STRNE R3, [R6] .text:00039248 MOV R5, R0 .text:0003924C B loc_39260 .text:00039250 ; --------------------------------------------------------------------------- .text:00039250 .text:00039250 loc_39250 ; CODE XREF: __gconv_transform_ucs4_internal+52Cj .text:00039250 CMP R5, #5 .text:00039254 LDREQ R3, [R7] .text:00039258 MOVEQ R5, R4 .text:0003925C STREQ R3, [R11,#var_30] .text:00039260 .text:00039260 loc_39260 ; CODE XREF: __gconv_transform_ucs4_internal+4E4j .text:00039260 ; __gconv_transform_ucs4_internal+550j .text:00039260 CMP R5, #0 .text:00039264 LDREQ R3, [R7] .text:00039268 STREQ R3, [R11,#var_30] .text:0003926C BEQ loc_38F9C .text:00039270 .text:00039270 loc_39270 ; CODE XREF: __gconv_transform_ucs4_internal+268j .text:00039270 LDR LR, [R11,#arg_C] .text:00039274 CMP R5, #7 .text:00039278 MOVNE R3, #0 .text:0003927C MOVEQ R3, #1 .text:00039280 CMP LR, #0 .text:00039284 MOVEQ R3, #0 .text:00039288 CMP R3, #0 .text:0003928C BEQ loc_39334 .text:00039290 LDR R2, [R6] .text:00039294 LDR R1, [R11,#var_38] .text:00039298 RSB R3, R2, R1 .text:0003929C CMP R3, #3 .text:000392A0 BLE loc_392DC .text:000392A4 LDR R0, =aInendInptrp4 ; "inend - *inptrp < 4" .text:000392A8 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:000392AC MOV R2, #0x254 .text:000392B0 LDR R3, =a__gconv_tran_0 ; "__gconv_transform_ucs4_internal" .text:000392B4 ADD R2, R2, #3 .text:000392B8 BL __assert_fail .text:000392BC ; --------------------------------------------------------------------------- .text:000392BC .text:000392BC loc_392BC ; CODE XREF: __gconv_transform_ucs4_internal+478j .text:000392BC LDR R3, [R11,#var_30] .text:000392C0 LDR R2, [R11,#arg_0] .text:000392C4 MOV R0, R5 .text:000392C8 STR R3, [R2] .text:000392CC B locret_39338 .text:000392CC ; --------------------------------------------------------------------------- .text:000392D0 off_392D0 DCD aInendInptrp4 ; DATA XREF: __gconv_transform_ucs4_internal+5A8r .text:000392D0 ; "inend - *inptrp < 4" .text:000392D4 off_392D4 DCD a__IconvSkeleto ; DATA XREF: __gconv_transform_ucs4_internal+5ACr .text:000392D4 ; "../iconv/skeleton.c" .text:000392D8 off_392D8 DCD a__gconv_tran_0 ; DATA XREF: __gconv_transform_ucs4_internal+5B4r .text:000392D8 ; "__gconv_transform_ucs4_internal" .text:000392DC ; --------------------------------------------------------------------------- .text:000392DC .text:000392DC loc_392DC ; CODE XREF: __gconv_transform_ucs4_internal+5A4j .text:000392DC LDR R3, [R11,#var_38] .text:000392E0 MOV R0, #0 .text:000392E4 CMP R2, R3 .text:000392E8 BCS loc_39314 .text:000392EC .text:000392EC loc_392EC ; CODE XREF: __gconv_transform_ucs4_internal+614j .text:000392EC LDR R3, [R6] .text:000392F0 LDR R2, [R7,#0x14] .text:000392F4 LDRB R1, [R3],#1 .text:000392F8 ADD R2, R2, R0 .text:000392FC STRB R1, [R2,#4] .text:00039300 LDR R12, [R11,#var_38] .text:00039304 ADD R0, R0, #1 .text:00039308 STR R3, [R6] .text:0003930C CMP R3, R12 .text:00039310 BCC loc_392EC .text:00039314 .text:00039314 loc_39314 ; CODE XREF: __gconv_transform_ucs4_internal+5ECj .text:00039314 LDR R2, [R7,#0x14] .text:00039318 LDR R3, [R2] .text:0003931C BIC R3, R3, #7 .text:00039320 STR R3, [R2] .text:00039324 LDR R1, [R7,#0x14] .text:00039328 LDR R3, [R1] .text:0003932C ORR R3, R3, R0 .text:00039330 STR R3, [R1] .text:00039334 .text:00039334 loc_39334 ; CODE XREF: __gconv_transform_ucs4_internal+8Cj .text:00039334 ; __gconv_transform_ucs4_internal+D4j ... .text:00039334 MOV R0, R5 .text:00039338 .text:00039338 locret_39338 ; CODE XREF: __gconv_transform_ucs4_internal+5D0j .text:00039338 LDMDB R11, {R4-R11,SP,PC} .text:00039338 ; End of function __gconv_transform_ucs4_internal .text:00039338 .text:0003933C .text:0003933C ; =============== S U B R O U T I N E ======================================= .text:0003933C .text:0003933C ; Attributes: bp-based frame .text:0003933C .text:0003933C EXPORT __gconv_transform_internal_ucs4le .text:0003933C __gconv_transform_internal_ucs4le .text:0003933C .text:0003933C var_54 = -0x54 .text:0003933C var_48 = -0x48 .text:0003933C var_44 = -0x44 .text:0003933C var_40 = -0x40 .text:0003933C var_3C = -0x3C .text:0003933C var_38 = -0x38 .text:0003933C var_34 = -0x34 .text:0003933C var_30 = -0x30 .text:0003933C var_2C = -0x2C .text:0003933C arg_0 = 4 .text:0003933C arg_4 = 8 .text:0003933C arg_8 = 0xC .text:0003933C arg_C = 0x10 .text:0003933C .text:0003933C MOV R12, SP .text:00039340 STMFD SP!, {R4-R12,LR,PC} .text:00039344 SUB R11, R12, #4 .text:00039348 MOV R8, R1 .text:0003934C SUB SP, SP, #0x2C .text:00039350 LDR R1, [R8,#8] .text:00039354 MOV R12, #0 .text:00039358 STR R12, [R11,#var_3C] .text:0003935C MOV R7, R2 .text:00039360 ADD R0, R0, #0x38 .text:00039364 STR R0, [R11,#var_34] .text:00039368 MOV R9, R3 .text:0003936C ADD R2, R8, #0x24 .text:00039370 STR R2, [R11,#var_38] .text:00039374 TST R1, #1 .text:00039378 LDREQ R3, [R0,#0x14] .text:0003937C STREQ R3, [R11,#var_3C] .text:00039380 LDR R3, [R11,#arg_8] .text:00039384 CMP R3, #0 .text:00039388 BEQ loc_39410 .text:0003938C LDR R12, [R11,#arg_0] .text:00039390 MOV R10, #0 .text:00039394 CMP R12, R10 .text:00039398 BEQ loc_393B0 .text:0003939C LDR R0, =aOutbufstartVoi ; "outbufstart == ((void *)0)" .text:000393A0 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:000393A4 LDR R3, =a__gconv_tran_1 ; "__gconv_transform_internal_ucs4le" .text:000393A8 MOV R2, #0x130 .text:000393AC BL __assert_fail .text:000393B0 ; --------------------------------------------------------------------------- .text:000393B0 .text:000393B0 loc_393B0 ; CODE XREF: __gconv_transform_internal_ucs4le+5Cj .text:000393B0 MOV R1, R10 .text:000393B4 LDR R0, [R8,#0x14] .text:000393B8 MOV R2, #8 .text:000393BC BL memset .text:000393C0 LDR R3, [R8,#8] .text:000393C4 TST R3, #1 .text:000393C8 BNE loc_397C0 .text:000393CC LDR R0, [R11,#var_3C] .text:000393D0 BL _dl_mcount_wrapper_check .text:000393D4 STR R10, [SP,#0x54+var_54] .text:000393D8 LDR R2, [R11,#arg_4] .text:000393DC MOV R3, #1 .text:000393E0 STMFA SP, {R2,R3} .text:000393E4 LDR R3, [R11,#arg_C] .text:000393E8 STR R3, [SP,#0x54+var_48] .text:000393EC LDR R0, [R11,#var_34] .text:000393F0 LDR R1, [R11,#var_38] .text:000393F4 MOV R2, R10 .text:000393F8 LDR R12, [R11,#var_3C] .text:000393FC MOV R3, R2 .text:00039400 MOV LR, PC .text:00039404 MOV PC, R12 .text:00039408 MOV R10, R0 .text:0003940C B loc_397C0 .text:00039410 ; --------------------------------------------------------------------------- .text:00039410 .text:00039410 loc_39410 ; CODE XREF: __gconv_transform_internal_ucs4le+4Cj .text:00039410 LDR R2, [R11,#arg_0] .text:00039414 LDR R5, [R7] .text:00039418 CMP R2, #0 .text:0003941C LDREQ R3, [R8] .text:00039420 LDRNE R12, [R11,#arg_0] .text:00039424 LDRNE R3, [R12] .text:00039428 STR R3, [R11,#var_2C] .text:0003942C LDR R2, [R11,#arg_C] .text:00039430 LDR R3, [R8,#4] .text:00039434 CMP R2, #0 .text:00039438 STR R3, [R11,#var_40] .text:0003943C BEQ loc_39500 .text:00039440 LDR LR, [R8,#0x14] .text:00039444 LDR R3, [LR] .text:00039448 ANDS R3, R3, #7 .text:0003944C BEQ loc_39500 .text:00039450 LDR R12, [R11,#arg_0] .text:00039454 CMP R12, #0 .text:00039458 BEQ loc_39474 .text:0003945C LDR R0, =aOutbufstartVoi ; "outbufstart == ((void *)0)" .text:00039460 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:00039464 MOV R2, #0x168 .text:00039468 LDR R3, =a__gconv_tran_1 ; "__gconv_transform_internal_ucs4le" .text:0003946C ADD R2, R2, #2 .text:00039470 BL __assert_fail .text:00039474 ; --------------------------------------------------------------------------- .text:00039474 .text:00039474 loc_39474 ; CODE XREF: __gconv_transform_internal_ucs4le+11Cj .text:00039474 MOV R12, R3 .text:00039478 LDR R0, [R7] .text:0003947C SUB R4, R11, #-var_2C .text:00039480 CMP R12, #3 .text:00039484 CMPLS R0, R9 .text:00039488 BCS loc_394B0 .text:0003948C .text:0003948C loc_3948C ; CODE XREF: __gconv_transform_internal_ucs4le+170j .text:0003948C ADD R3, LR, R12 .text:00039490 LDRB R2, [R0],#1 .text:00039494 ADD R12, R12, #1 .text:00039498 MOV R1, R0 .text:0003949C STRB R2, [R3,#4] .text:000394A0 CMP R12, #3 .text:000394A4 CMPLS R0, R9 .text:000394A8 STR R1, [R7] .text:000394AC BCC loc_3948C .text:000394B0 .text:000394B0 loc_394B0 ; CODE XREF: __gconv_transform_internal_ucs4le+14Cj .text:000394B0 CMP R12, #3 .text:000394B4 BHI loc_394CC .text:000394B8 LDR R3, [LR] .text:000394BC MOV R10, #7 .text:000394C0 BIC R3, R3, #7 .text:000394C4 ORR R3, R3, R12 .text:000394C8 B loc_394E4 .text:000394CC ; --------------------------------------------------------------------------- .text:000394CC .text:000394CC loc_394CC ; CODE XREF: __gconv_transform_internal_ucs4le+178j .text:000394CC LDR R1, [R4] .text:000394D0 LDR R2, [LR,#4] .text:000394D4 STR R2, [R1] .text:000394D8 LDR R3, [LR] .text:000394DC MOV R10, #0 .text:000394E0 BIC R3, R3, #7 .text:000394E4 .text:000394E4 loc_394E4 ; CODE XREF: __gconv_transform_internal_ucs4le+18Cj .text:000394E4 STR R3, [LR] .text:000394E8 CMP R10, #0 .text:000394EC BEQ loc_39500 .text:000394F0 B loc_397C0 .text:000394F4 ; --------------------------------------------------------------------------- .text:000394F4 .text:000394F4 loc_394F4 ; CODE XREF: __gconv_transform_internal_ucs4le+32Cj .text:000394F4 LDR R3, [R11,#var_2C] .text:000394F8 STR R3, [R8] .text:000394FC B loc_39704 .text:00039500 ; --------------------------------------------------------------------------- .text:00039500 .text:00039500 loc_39500 ; CODE XREF: __gconv_transform_internal_ucs4le+100j .text:00039500 ; __gconv_transform_internal_ucs4le+110j ... .text:00039500 MOV R12, #0 .text:00039504 TST R5, #3 .text:00039508 STR R12, [R11,#var_44] .text:0003950C BNE loc_39528 .text:00039510 LDR R3, [R8,#8] .text:00039514 TST R3, #1 .text:00039518 BEQ loc_39530 .text:0003951C LDR R3, [R11,#var_2C] .text:00039520 TST R3, #3 .text:00039524 BEQ loc_39530 .text:00039528 .text:00039528 loc_39528 ; CODE XREF: __gconv_transform_internal_ucs4le+1D0j .text:00039528 MOV R2, #1 .text:0003952C STR R2, [R11,#var_44] .text:00039530 .text:00039530 loc_39530 ; CODE XREF: __gconv_transform_internal_ucs4le+1DCj .text:00039530 ; __gconv_transform_internal_ucs4le+1E8j ... .text:00039530 LDR R5, [R7] .text:00039534 LDR R3, [R11,#var_44] .text:00039538 LDR R6, [R11,#var_2C] .text:0003953C CMP R3, #0 .text:00039540 BNE loc_39598 .text:00039544 LDR R12, [R11,#var_40] .text:00039548 RSB R3, R5, R9 .text:0003954C RSB R2, R6, R12 .text:00039550 CMP R2, R3 .text:00039554 MOVGE R2, R3 .text:00039558 CMP R2, #0 .text:0003955C ADDLT R2, R2, #3 .text:00039560 BIC R2, R2, #3 .text:00039564 ADD R3, R5, R2 .text:00039568 STR R3, [R7] .text:0003956C MOV R0, R6 .text:00039570 MOV R1, R5 .text:00039574 BL mempcpy .text:00039578 LDR R3, [R7] .text:0003957C STR R0, [R11,#var_2C] .text:00039580 CMP R3, R9 .text:00039584 BEQ loc_395E0 .text:00039588 LDR R2, [R11,#var_40] .text:0003958C ADD R3, R0, #4 .text:00039590 CMP R3, R2 .text:00039594 B loc_395F4 .text:00039598 ; --------------------------------------------------------------------------- .text:00039598 .text:00039598 loc_39598 ; CODE XREF: __gconv_transform_internal_ucs4le+204j .text:00039598 LDR R3, [R11,#var_40] .text:0003959C RSB R2, R6, R3 .text:000395A0 RSB R3, R5, R9 .text:000395A4 CMP R2, R3 .text:000395A8 MOVGE R2, R3 .text:000395AC CMP R2, #0 .text:000395B0 ADDLT R2, R2, #3 .text:000395B4 BIC R2, R2, #3 .text:000395B8 ADD R3, R5, R2 .text:000395BC STR R3, [R7] .text:000395C0 MOV R0, R6 .text:000395C4 MOV R1, R5 .text:000395C8 BL mempcpy .text:000395CC LDR R3, [R7] .text:000395D0 STR R0, [R11,#var_2C] .text:000395D4 ADD R3, R3, #4 .text:000395D8 CMP R3, R9 .text:000395DC BLS loc_395E8 .text:000395E0 .text:000395E0 loc_395E0 ; CODE XREF: __gconv_transform_internal_ucs4le+248j .text:000395E0 MOV R0, #4 .text:000395E4 B loc_395FC .text:000395E8 ; --------------------------------------------------------------------------- .text:000395E8 .text:000395E8 loc_395E8 ; CODE XREF: __gconv_transform_internal_ucs4le+2A0j .text:000395E8 LDR R12, [R11,#var_40] .text:000395EC ADD R3, R0, #4 .text:000395F0 CMP R3, R12 .text:000395F4 .text:000395F4 loc_395F4 ; CODE XREF: __gconv_transform_internal_ucs4le+258j .text:000395F4 MOVLS R0, #7 .text:000395F8 MOVHI R0, #5 .text:000395FC .text:000395FC loc_395FC ; CODE XREF: __gconv_transform_internal_ucs4le+2A8j .text:000395FC MOV R10, R0 .text:00039600 LDR R2, [R11,#arg_0] .text:00039604 CMP R2, #0 .text:00039608 BNE loc_3975C .text:0003960C LDR R4, [R8,#0x20] .text:00039610 CMP R4, #0 .text:00039614 BEQ loc_39654 .text:00039618 .text:00039618 loc_39618 ; CODE XREF: __gconv_transform_internal_ucs4le+314j .text:00039618 LDR R0, [R4,#4] .text:0003961C CMP R0, #0 .text:00039620 BEQ loc_39648 .text:00039624 BL _dl_mcount_wrapper_check .text:00039628 LDR R3, [R11,#var_2C] .text:0003962C LDR R0, [R4,#0xC] .text:00039630 STR R3, [SP,#0x54+var_54] .text:00039634 MOV R1, R5 .text:00039638 LDR R2, [R7] .text:0003963C MOV R3, R6 .text:00039640 MOV LR, PC .text:00039644 LDR PC, [R4,#4] .text:00039648 .text:00039648 loc_39648 ; CODE XREF: __gconv_transform_internal_ucs4le+2E4j .text:00039648 LDR R4, [R4,#0x10] .text:0003964C CMP R4, #0 .text:00039650 BNE loc_39618 .text:00039654 .text:00039654 loc_39654 ; CODE XREF: __gconv_transform_internal_ucs4le+2D8j .text:00039654 ADD R2, R8, #8 .text:00039658 LDMIA R2, {R2,R3} .text:0003965C ADD R3, R3, #1 .text:00039660 ANDS R4, R2, #1 .text:00039664 STR R3, [R8,#0xC] .text:00039668 BNE loc_394F4 .text:0003966C LDR R3, [R11,#var_2C] .text:00039670 CMP R3, R6 .text:00039674 BLS loc_396F4 .text:00039678 LDR R3, [R8] .text:0003967C STR R3, [R11,#var_30] .text:00039680 LDR R0, [R11,#var_3C] .text:00039684 BL _dl_mcount_wrapper_check .text:00039688 STR R4, [SP,#0x54+var_54] .text:0003968C LDR R3, [R11,#arg_4] .text:00039690 STMFA SP, {R3,R4} .text:00039694 LDR R12, [R11,#arg_C] .text:00039698 STR R12, [SP,#0x54+var_48] .text:0003969C LDR R0, [R11,#var_34] .text:000396A0 LDR R1, [R11,#var_38] .text:000396A4 LDR R3, [R11,#var_2C] .text:000396A8 LDR R12, [R11,#var_3C] .text:000396AC SUB R2, R11, #-var_30 .text:000396B0 MOV LR, PC .text:000396B4 MOV PC, R12 .text:000396B8 CMP R0, #4 .text:000396BC BEQ loc_396E4 .text:000396C0 SUB R1, R11, #-var_30 .text:000396C4 LDMIA R1, {R1,R2} .text:000396C8 CMP R1, R2 .text:000396CC LDRNE R3, [R7] .text:000396D0 RSBNE R2, R1, R2 .text:000396D4 RSBNE R3, R2, R3 .text:000396D8 STRNE R3, [R7] .text:000396DC MOV R10, R0 .text:000396E0 B loc_396F4 .text:000396E4 ; --------------------------------------------------------------------------- .text:000396E4 .text:000396E4 loc_396E4 ; CODE XREF: __gconv_transform_internal_ucs4le+380j .text:000396E4 CMP R10, #5 .text:000396E8 LDREQ R3, [R8] .text:000396EC MOVEQ R10, R4 .text:000396F0 STREQ R3, [R11,#var_2C] .text:000396F4 .text:000396F4 loc_396F4 ; CODE XREF: __gconv_transform_internal_ucs4le+338j .text:000396F4 ; __gconv_transform_internal_ucs4le+3A4j .text:000396F4 CMP R10, #0 .text:000396F8 LDREQ R3, [R8] .text:000396FC STREQ R3, [R11,#var_2C] .text:00039700 BEQ loc_39530 .text:00039704 .text:00039704 loc_39704 ; CODE XREF: __gconv_transform_internal_ucs4le+1C0j .text:00039704 LDR R2, [R11,#arg_C] .text:00039708 CMP R10, #7 .text:0003970C MOVNE R3, #0 .text:00039710 MOVEQ R3, #1 .text:00039714 CMP R2, #0 .text:00039718 MOVEQ R3, #0 .text:0003971C CMP R3, #0 .text:00039720 BEQ loc_397C0 .text:00039724 LDR R2, [R7] .text:00039728 RSB R3, R2, R9 .text:0003972C CMP R3, #3 .text:00039730 BLE loc_39770 .text:00039734 LDR R0, =aInendInptrp4 ; "inend - *inptrp < 4" .text:00039738 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003973C MOV R2, #0x254 .text:00039740 LDR R3, =a__gconv_tran_1 ; "__gconv_transform_internal_ucs4le" .text:00039744 ADD R2, R2, #3 .text:00039748 BL __assert_fail .text:00039748 ; --------------------------------------------------------------------------- .text:0003974C off_3974C DCD aOutbufstartVoi ; DATA XREF: __gconv_transform_internal_ucs4le+60r .text:0003974C ; __gconv_transform_internal_ucs4le+120r .text:0003974C ; "outbufstart == ((void *)0)" .text:00039750 off_39750 DCD a__IconvSkeleto ; DATA XREF: __gconv_transform_internal_ucs4le+64r .text:00039750 ; __gconv_transform_internal_ucs4le+124r ... .text:00039750 ; "../iconv/skeleton.c" .text:00039754 off_39754 DCD a__gconv_tran_1 ; DATA XREF: __gconv_transform_internal_ucs4le+68r .text:00039754 ; __gconv_transform_internal_ucs4le+12Cr ... .text:00039754 ; "__gconv_transform_internal_ucs4le" .text:00039758 off_39758 DCD aInendInptrp4 ; DATA XREF: __gconv_transform_internal_ucs4le+3F8r .text:00039758 ; "inend - *inptrp < 4" .text:0003975C ; --------------------------------------------------------------------------- .text:0003975C .text:0003975C loc_3975C ; CODE XREF: __gconv_transform_internal_ucs4le+2CCj .text:0003975C LDR R3, [R11,#var_2C] .text:00039760 LDR R12, [R11,#arg_0] .text:00039764 MOV R0, R10 .text:00039768 STR R3, [R12] .text:0003976C B locret_397C4 .text:00039770 ; --------------------------------------------------------------------------- .text:00039770 .text:00039770 loc_39770 ; CODE XREF: __gconv_transform_internal_ucs4le+3F4j .text:00039770 MOV R0, #0 .text:00039774 CMP R2, R9 .text:00039778 BCS loc_397A0 .text:0003977C .text:0003977C loc_3977C ; CODE XREF: __gconv_transform_internal_ucs4le+460j .text:0003977C LDR R3, [R7] .text:00039780 LDR R2, [R8,#0x14] .text:00039784 LDRB R1, [R3],#1 .text:00039788 ADD R2, R2, R0 .text:0003978C STRB R1, [R2,#4] .text:00039790 ADD R0, R0, #1 .text:00039794 CMP R3, R9 .text:00039798 STR R3, [R7] .text:0003979C BCC loc_3977C .text:000397A0 .text:000397A0 loc_397A0 ; CODE XREF: __gconv_transform_internal_ucs4le+43Cj .text:000397A0 LDR R2, [R8,#0x14] .text:000397A4 LDR R3, [R2] .text:000397A8 BIC R3, R3, #7 .text:000397AC STR R3, [R2] .text:000397B0 LDR R1, [R8,#0x14] .text:000397B4 LDR R3, [R1] .text:000397B8 ORR R3, R3, R0 .text:000397BC STR R3, [R1] .text:000397C0 .text:000397C0 loc_397C0 ; CODE XREF: __gconv_transform_internal_ucs4le+8Cj .text:000397C0 ; __gconv_transform_internal_ucs4le+D0j ... .text:000397C0 MOV R0, R10 .text:000397C4 .text:000397C4 locret_397C4 ; CODE XREF: __gconv_transform_internal_ucs4le+430j .text:000397C4 LDMDB R11, {R4-R11,SP,PC} .text:000397C4 ; End of function __gconv_transform_internal_ucs4le .text:000397C4 .text:000397C8 .text:000397C8 ; =============== S U B R O U T I N E ======================================= .text:000397C8 .text:000397C8 ; Attributes: bp-based frame .text:000397C8 .text:000397C8 EXPORT __gconv_transform_ucs4le_internal .text:000397C8 __gconv_transform_ucs4le_internal .text:000397C8 .text:000397C8 var_60 = -0x60 .text:000397C8 var_5C = -0x5C .text:000397C8 var_58 = -0x58 .text:000397C8 var_54 = -0x54 .text:000397C8 var_50 = -0x50 .text:000397C8 var_4C = -0x4C .text:000397C8 var_48 = -0x48 .text:000397C8 var_44 = -0x44 .text:000397C8 var_40 = -0x40 .text:000397C8 var_3C = -0x3C .text:000397C8 var_38 = -0x38 .text:000397C8 var_34 = -0x34 .text:000397C8 var_30 = -0x30 .text:000397C8 var_2C = -0x2C .text:000397C8 arg_0 = 4 .text:000397C8 arg_4 = 8 .text:000397C8 arg_8 = 0xC .text:000397C8 arg_C = 0x10 .text:000397C8 .text:000397C8 MOV R12, SP .text:000397CC STMFD SP!, {R4-R12,LR,PC} .text:000397D0 SUB R11, R12, #4 .text:000397D4 MOV R6, R1 .text:000397D8 SUB SP, SP, #0x38 .text:000397DC LDR R1, [R6,#8] .text:000397E0 MOV R12, #0 .text:000397E4 STR R12, [R11,#var_44] .text:000397E8 STR R3, [R11,#var_38] .text:000397EC MOV R7, R2 .text:000397F0 ADD R0, R0, #0x38 .text:000397F4 STR R0, [R11,#var_3C] .text:000397F8 TST R1, #1 .text:000397FC ADD R1, R6, #0x24 .text:00039800 STR R1, [R11,#var_40] .text:00039804 LDREQ R2, [R0,#0x14] .text:00039808 STREQ R2, [R11,#var_44] .text:0003980C LDR R3, [R11,#arg_8] .text:00039810 CMP R3, #0 .text:00039814 BEQ loc_398A0 .text:00039818 LDR R3, [R11,#arg_0] .text:0003981C MOV R5, #0 .text:00039820 CMP R3, R5 .text:00039824 BEQ loc_3983C .text:00039828 LDR R0, =aOutbufstartVoi ; "outbufstart == ((void *)0)" .text:0003982C LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:00039830 LDR R3, =a__gconv_tran_2 ; "__gconv_transform_ucs4le_internal" .text:00039834 MOV R2, #0x130 .text:00039838 BL __assert_fail .text:0003983C ; --------------------------------------------------------------------------- .text:0003983C .text:0003983C loc_3983C ; CODE XREF: __gconv_transform_ucs4le_internal+5Cj .text:0003983C MOV R1, R5 .text:00039840 LDR R0, [R6,#0x14] .text:00039844 MOV R2, #8 .text:00039848 BL memset .text:0003984C LDR R3, [R6,#8] .text:00039850 TST R3, #1 .text:00039854 BNE loc_39DA8 .text:00039858 LDR R0, [R11,#var_44] .text:0003985C BL _dl_mcount_wrapper_check .text:00039860 STR R5, [SP,#0x60+var_60] .text:00039864 LDR R12, [R11,#arg_4] .text:00039868 MOV R3, #1 .text:0003986C STR R3, [SP,#0x60+var_58] .text:00039870 STR R12, [SP,#0x60+var_5C] .text:00039874 LDR R1, [R11,#arg_C] .text:00039878 STR R1, [SP,#0x60+var_54] .text:0003987C LDR R0, [R11,#var_3C] .text:00039880 LDR R1, [R11,#var_40] .text:00039884 MOV R2, R5 .text:00039888 LDR R12, [R11,#var_44] .text:0003988C MOV R3, R2 .text:00039890 MOV LR, PC .text:00039894 MOV PC, R12 .text:00039898 MOV R5, R0 .text:0003989C B loc_39DA8 .text:000398A0 ; --------------------------------------------------------------------------- .text:000398A0 .text:000398A0 loc_398A0 ; CODE XREF: __gconv_transform_ucs4le_internal+4Cj .text:000398A0 LDR R1, [R11,#arg_0] .text:000398A4 LDR R9, [R7] .text:000398A8 CMP R1, #0 .text:000398AC LDREQ R3, [R6] .text:000398B0 LDRNE R2, [R11,#arg_0] .text:000398B4 LDRNE R3, [R2] .text:000398B8 STR R3, [R11,#var_30] .text:000398BC MOV R3, #0 .text:000398C0 STR R3, [R11,#var_2C] .text:000398C4 SUB R1, R11, #-var_30 .text:000398C8 STR R1, [R11,#var_50] .text:000398CC LDR R3, [R11,#arg_4] .text:000398D0 LDR R12, [R11,#arg_C] .text:000398D4 CMP R3, #0 .text:000398D8 SUBNE R10, R11, #-var_2C .text:000398DC MOVEQ R10, #0 .text:000398E0 LDR R2, [R6,#4] .text:000398E4 CMP R12, #0 .text:000398E8 STR R2, [R11,#var_48] .text:000398EC BEQ loc_399F0 .text:000398F0 LDR LR, [R6,#0x14] .text:000398F4 LDR R3, [LR] .text:000398F8 ANDS R3, R3, #7 .text:000398FC BEQ loc_399F0 .text:00039900 LDR R12, [R11,#arg_0] .text:00039904 CMP R12, #0 .text:00039908 BEQ loc_39924 .text:0003990C LDR R0, =aOutbufstartVoi ; "outbufstart == ((void *)0)" .text:00039910 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:00039914 MOV R2, #0x168 .text:00039918 LDR R3, =a__gconv_tran_2 ; "__gconv_transform_ucs4le_internal" .text:0003991C ADD R2, R2, #2 .text:00039920 BL __assert_fail .text:00039924 ; --------------------------------------------------------------------------- .text:00039924 .text:00039924 loc_39924 ; CODE XREF: __gconv_transform_ucs4le_internal+140j .text:00039924 LDR R0, [R7] .text:00039928 LDR R5, [R11,#var_50] .text:0003992C LDR R1, [R11,#var_38] .text:00039930 MOV R12, R3 .text:00039934 LDR R4, [R6,#8] .text:00039938 CMP R12, #3 .text:0003993C CMPLS R0, R1 .text:00039940 BCS loc_3996C .text:00039944 .text:00039944 loc_39944 ; CODE XREF: __gconv_transform_ucs4le_internal+1A0j .text:00039944 LDRB R2, [R0],#1 .text:00039948 ADD R3, LR, R12 .text:0003994C STRB R2, [R3,#4] .text:00039950 ADD R12, R12, #1 .text:00039954 MOV R1, R0 .text:00039958 LDR R2, [R11,#var_38] .text:0003995C STR R1, [R7] .text:00039960 CMP R12, #3 .text:00039964 CMPLS R0, R2 .text:00039968 BCC loc_39944 .text:0003996C .text:0003996C loc_3996C ; CODE XREF: __gconv_transform_ucs4le_internal+178j .text:0003996C CMP R12, #3 .text:00039970 BHI loc_39988 .text:00039974 LDR R3, [LR] .text:00039978 MOV R5, #7 .text:0003997C BIC R3, R3, #7 .text:00039980 ORR R3, R3, R12 .text:00039984 B loc_399BC .text:00039988 ; --------------------------------------------------------------------------- .text:00039988 .text:00039988 loc_39988 ; CODE XREF: __gconv_transform_ucs4le_internal+1A8j .text:00039988 LDRB R3, [LR,#7] .text:0003998C CMP R3, #0x80 .text:00039990 BLS loc_399A4 .text:00039994 TST R4, #2 .text:00039998 BNE loc_399B0 .text:0003999C MOV R5, #6 .text:000399A0 B loc_399C0 .text:000399A4 ; --------------------------------------------------------------------------- .text:000399A4 .text:000399A4 loc_399A4 ; CODE XREF: __gconv_transform_ucs4le_internal+1C8j .text:000399A4 LDR R3, [R5] .text:000399A8 ADD R3, R3, #4 .text:000399AC STR R3, [R5] .text:000399B0 .text:000399B0 loc_399B0 ; CODE XREF: __gconv_transform_ucs4le_internal+1D0j .text:000399B0 LDR R3, [LR] .text:000399B4 MOV R5, #0 .text:000399B8 BIC R3, R3, #7 .text:000399BC .text:000399BC loc_399BC ; CODE XREF: __gconv_transform_ucs4le_internal+1BCj .text:000399BC STR R3, [LR] .text:000399C0 .text:000399C0 loc_399C0 ; CODE XREF: __gconv_transform_ucs4le_internal+1D8j .text:000399C0 CMP R5, #0 .text:000399C4 BEQ loc_399F0 .text:000399C8 B loc_39DA8 .text:000399CC ; --------------------------------------------------------------------------- .text:000399CC .text:000399CC loc_399CC ; CODE XREF: __gconv_transform_ucs4le_internal+480j .text:000399CC LDR R3, [R11,#var_30] .text:000399D0 STR R3, [R6] .text:000399D4 LDR R3, [R11,#arg_4] .text:000399D8 LDR R2, [R3] .text:000399DC LDR R3, [R11,#var_2C] .text:000399E0 LDR R12, [R11,#arg_4] .text:000399E4 ADD R2, R2, R3 .text:000399E8 STR R2, [R12] .text:000399EC B loc_39CE4 .text:000399F0 ; --------------------------------------------------------------------------- .text:000399F0 .text:000399F0 loc_399F0 ; CODE XREF: __gconv_transform_ucs4le_internal+124j .text:000399F0 ; __gconv_transform_ucs4le_internal+134j ... .text:000399F0 MOV R1, #0 .text:000399F4 TST R9, #3 .text:000399F8 STR R1, [R11,#var_4C] .text:000399FC BNE loc_39A18 .text:00039A00 LDR R3, [R6,#8] .text:00039A04 TST R3, #1 .text:00039A08 BEQ loc_39A20 .text:00039A0C LDR R3, [R11,#var_30] .text:00039A10 TST R3, #3 .text:00039A14 BEQ loc_39A20 .text:00039A18 .text:00039A18 loc_39A18 ; CODE XREF: __gconv_transform_ucs4le_internal+234j .text:00039A18 MOV R2, #1 .text:00039A1C STR R2, [R11,#var_4C] .text:00039A20 .text:00039A20 loc_39A20 ; CODE XREF: __gconv_transform_ucs4le_internal+240j .text:00039A20 ; __gconv_transform_ucs4le_internal+24Cj ... .text:00039A20 LDR R9, [R7] .text:00039A24 LDR R3, [R11,#var_4C] .text:00039A28 LDR R8, [R11,#var_30] .text:00039A2C CMP R3, #0 .text:00039A30 BNE loc_39AE0 .text:00039A34 LDR R12, [R11,#var_48] .text:00039A38 MOV R1, R9 .text:00039A3C RSB R3, R8, R12 .text:00039A40 LDR R12, [R11,#var_38] .text:00039A44 MOV R0, R8 .text:00039A48 RSB R2, R9, R12 .text:00039A4C CMP R3, R2 .text:00039A50 MOVGE R3, R2 .text:00039A54 CMP R3, #0 .text:00039A58 ADDLT R3, R3, #3 .text:00039A5C LDR R2, [R11,#var_4C] .text:00039A60 MOV R12, R3,ASR#2 .text:00039A64 LDR R3, [R6,#8] .text:00039A68 CMP R2, R12 .text:00039A6C BCS loc_39AB4 .text:00039A70 AND LR, R3, #2 .text:00039A74 .text:00039A74 loc_39A74 ; CODE XREF: __gconv_transform_ucs4le_internal+2E8j .text:00039A74 LDR R3, [R1] .text:00039A78 CMP R3, #0 .text:00039A7C BGE loc_39AA0 .text:00039A80 CMP R10, #0 .text:00039A84 BEQ loc_39BB4 .text:00039A88 CMP LR, #0 .text:00039A8C BEQ loc_39BB4 .text:00039A90 LDR R3, [R10] .text:00039A94 ADD R3, R3, #1 .text:00039A98 STR R3, [R10] .text:00039A9C B loc_39AA4 .text:00039AA0 ; --------------------------------------------------------------------------- .text:00039AA0 .text:00039AA0 loc_39AA0 ; CODE XREF: __gconv_transform_ucs4le_internal+2B4j .text:00039AA0 STR R3, [R0],#4 .text:00039AA4 .text:00039AA4 loc_39AA4 ; CODE XREF: __gconv_transform_ucs4le_internal+2D4j .text:00039AA4 ADD R2, R2, #1 .text:00039AA8 ADD R1, R1, #4 .text:00039AAC CMP R2, R12 .text:00039AB0 BCC loc_39A74 .text:00039AB4 .text:00039AB4 loc_39AB4 ; CODE XREF: __gconv_transform_ucs4le_internal+2A4j .text:00039AB4 STR R1, [R7] .text:00039AB8 LDR R1, [R11,#var_50] .text:00039ABC STR R0, [R1] .text:00039AC0 LDR R2, [R11,#var_38] .text:00039AC4 LDR R3, [R7] .text:00039AC8 CMP R3, R2 .text:00039ACC BEQ loc_39BAC .text:00039AD0 LDR R12, [R11,#var_48] .text:00039AD4 ADD R3, R0, #4 .text:00039AD8 CMP R3, R12 .text:00039ADC B loc_39BD4 .text:00039AE0 ; --------------------------------------------------------------------------- .text:00039AE0 .text:00039AE0 loc_39AE0 ; CODE XREF: __gconv_transform_ucs4le_internal+268j .text:00039AE0 MOV R1, R9 .text:00039AE4 LDR R2, [R11,#var_48] .text:00039AE8 MOV R0, R8 .text:00039AEC LDR R12, [R11,#var_38] .text:00039AF0 RSB R3, R8, R2 .text:00039AF4 RSB R2, R9, R12 .text:00039AF8 CMP R3, R2 .text:00039AFC MOVGE R3, R2 .text:00039B00 MOV R12, #0 .text:00039B04 CMP R3, R12 .text:00039B08 ADDLT R3, R3, #3 .text:00039B0C MOV LR, R3,ASR#2 .text:00039B10 CMP R12, LR .text:00039B14 LDR R3, [R6,#8] .text:00039B18 BCS loc_39B90 .text:00039B1C AND R4, R3, #2 .text:00039B20 .text:00039B20 loc_39B20 ; CODE XREF: __gconv_transform_ucs4le_internal+3C4j .text:00039B20 LDRB R3, [R1,#3] .text:00039B24 CMP R3, #0x80 .text:00039B28 BLS loc_39B5C .text:00039B2C CMP R10, #0 .text:00039B30 BEQ loc_39BB4 .text:00039B34 CMP R4, #0 .text:00039B38 LDRNE R3, [R10] .text:00039B3C ADDNE R3, R3, #1 .text:00039B40 STRNE R3, [R10] .text:00039B44 BNE loc_39B80 .text:00039B48 STR R1, [R7] .text:00039B4C LDR R1, [R11,#var_50] .text:00039B50 MOV R5, #6 .text:00039B54 STR R0, [R1] .text:00039B58 B loc_39BE0 .text:00039B5C ; --------------------------------------------------------------------------- .text:00039B5C .text:00039B5C loc_39B5C ; CODE XREF: __gconv_transform_ucs4le_internal+360j .text:00039B5C LDRB R3, [R1] .text:00039B60 STRB R3, [R0] .text:00039B64 LDRB R2, [R1,#1] .text:00039B68 STRB R2, [R0,#1] .text:00039B6C LDRB R3, [R1,#2] .text:00039B70 STRB R3, [R0,#2] .text:00039B74 LDRB R2, [R1,#3] .text:00039B78 STRB R2, [R0,#3] .text:00039B7C ADD R0, R0, #4 .text:00039B80 .text:00039B80 loc_39B80 ; CODE XREF: __gconv_transform_ucs4le_internal+37Cj .text:00039B80 ADD R12, R12, #1 .text:00039B84 ADD R1, R1, #4 .text:00039B88 CMP R12, LR .text:00039B8C BCC loc_39B20 .text:00039B90 .text:00039B90 loc_39B90 ; CODE XREF: __gconv_transform_ucs4le_internal+350j .text:00039B90 STR R1, [R7] .text:00039B94 LDR R2, [R11,#var_50] .text:00039B98 STR R0, [R2] .text:00039B9C LDR R12, [R11,#var_38] .text:00039BA0 LDR R3, [R7] .text:00039BA4 CMP R3, R12 .text:00039BA8 BNE loc_39BC8 .text:00039BAC .text:00039BAC loc_39BAC ; CODE XREF: __gconv_transform_ucs4le_internal+304j .text:00039BAC MOV R0, #4 .text:00039BB0 B loc_39BDC .text:00039BB4 ; --------------------------------------------------------------------------- .text:00039BB4 .text:00039BB4 loc_39BB4 ; CODE XREF: __gconv_transform_ucs4le_internal+2BCj .text:00039BB4 ; __gconv_transform_ucs4le_internal+2C4j ... .text:00039BB4 MOV R5, #6 .text:00039BB8 B loc_39BE0 .text:00039BB8 ; --------------------------------------------------------------------------- .text:00039BBC off_39BBC DCD aOutbufstartVoi ; DATA XREF: __gconv_transform_ucs4le_internal+60r .text:00039BBC ; __gconv_transform_ucs4le_internal+144r .text:00039BBC ; "outbufstart == ((void *)0)" .text:00039BC0 off_39BC0 DCD a__IconvSkeleto ; DATA XREF: __gconv_transform_ucs4le_internal+64r .text:00039BC0 ; __gconv_transform_ucs4le_internal+148r .text:00039BC0 ; "../iconv/skeleton.c" .text:00039BC4 off_39BC4 DCD a__gconv_tran_2 ; DATA XREF: __gconv_transform_ucs4le_internal+68r .text:00039BC4 ; __gconv_transform_ucs4le_internal+150r .text:00039BC4 ; "__gconv_transform_ucs4le_internal" .text:00039BC8 ; --------------------------------------------------------------------------- .text:00039BC8 .text:00039BC8 loc_39BC8 ; CODE XREF: __gconv_transform_ucs4le_internal+3E0j .text:00039BC8 LDR R1, [R11,#var_48] .text:00039BCC ADD R3, R0, #4 .text:00039BD0 CMP R3, R1 .text:00039BD4 .text:00039BD4 loc_39BD4 ; CODE XREF: __gconv_transform_ucs4le_internal+314j .text:00039BD4 MOVLS R0, #7 .text:00039BD8 MOVHI R0, #5 .text:00039BDC .text:00039BDC loc_39BDC ; CODE XREF: __gconv_transform_ucs4le_internal+3E8j .text:00039BDC MOV R5, R0 .text:00039BE0 .text:00039BE0 loc_39BE0 ; CODE XREF: __gconv_transform_ucs4le_internal+390j .text:00039BE0 ; __gconv_transform_ucs4le_internal+3F0j .text:00039BE0 LDR R2, [R11,#arg_0] .text:00039BE4 CMP R2, #0 .text:00039BE8 BNE loc_39D30 .text:00039BEC LDR R4, [R6,#0x20] .text:00039BF0 CMP R4, #0 .text:00039BF4 BEQ loc_39C34 .text:00039BF8 .text:00039BF8 loc_39BF8 ; CODE XREF: __gconv_transform_ucs4le_internal+468j .text:00039BF8 LDR R0, [R4,#4] .text:00039BFC CMP R0, #0 .text:00039C00 BEQ loc_39C28 .text:00039C04 BL _dl_mcount_wrapper_check .text:00039C08 LDR R3, [R11,#var_30] .text:00039C0C LDR R0, [R4,#0xC] .text:00039C10 STR R3, [SP,#0x60+var_60] .text:00039C14 MOV R1, R9 .text:00039C18 LDR R2, [R7] .text:00039C1C MOV R3, R8 .text:00039C20 MOV LR, PC .text:00039C24 LDR PC, [R4,#4] .text:00039C28 .text:00039C28 loc_39C28 ; CODE XREF: __gconv_transform_ucs4le_internal+438j .text:00039C28 LDR R4, [R4,#0x10] .text:00039C2C CMP R4, #0 .text:00039C30 BNE loc_39BF8 .text:00039C34 .text:00039C34 loc_39C34 ; CODE XREF: __gconv_transform_ucs4le_internal+42Cj .text:00039C34 ADD R2, R6, #8 .text:00039C38 LDMIA R2, {R2,R3} .text:00039C3C ADD R3, R3, #1 .text:00039C40 ANDS R4, R2, #1 .text:00039C44 STR R3, [R6,#0xC] .text:00039C48 BNE loc_399CC .text:00039C4C LDR R3, [R11,#var_30] .text:00039C50 CMP R3, R8 .text:00039C54 BLS loc_39CD4 .text:00039C58 LDR R3, [R6] .text:00039C5C STR R3, [R11,#var_34] .text:00039C60 LDR R0, [R11,#var_44] .text:00039C64 BL _dl_mcount_wrapper_check .text:00039C68 STR R4, [SP,#0x60+var_60] .text:00039C6C LDR R3, [R11,#arg_4] .text:00039C70 STMFA SP, {R3,R4} .text:00039C74 LDR R12, [R11,#arg_C] .text:00039C78 STR R12, [SP,#0x60+var_54] .text:00039C7C LDR R0, [R11,#var_3C] .text:00039C80 LDR R1, [R11,#var_40] .text:00039C84 LDR R3, [R11,#var_30] .text:00039C88 LDR R12, [R11,#var_44] .text:00039C8C SUB R2, R11, #-var_34 .text:00039C90 MOV LR, PC .text:00039C94 MOV PC, R12 .text:00039C98 CMP R0, #4 .text:00039C9C BEQ loc_39CC4 .text:00039CA0 SUB R1, R11, #-var_34 .text:00039CA4 LDMIA R1, {R1,R2} .text:00039CA8 CMP R1, R2 .text:00039CAC LDRNE R3, [R7] .text:00039CB0 RSBNE R2, R1, R2 .text:00039CB4 RSBNE R3, R2, R3 .text:00039CB8 STRNE R3, [R7] .text:00039CBC MOV R5, R0 .text:00039CC0 B loc_39CD4 .text:00039CC4 ; --------------------------------------------------------------------------- .text:00039CC4 .text:00039CC4 loc_39CC4 ; CODE XREF: __gconv_transform_ucs4le_internal+4D4j .text:00039CC4 CMP R5, #5 .text:00039CC8 LDREQ R3, [R6] .text:00039CCC MOVEQ R5, R4 .text:00039CD0 STREQ R3, [R11,#var_30] .text:00039CD4 .text:00039CD4 loc_39CD4 ; CODE XREF: __gconv_transform_ucs4le_internal+48Cj .text:00039CD4 ; __gconv_transform_ucs4le_internal+4F8j .text:00039CD4 CMP R5, #0 .text:00039CD8 LDREQ R3, [R6] .text:00039CDC STREQ R3, [R11,#var_30] .text:00039CE0 BEQ loc_39A20 .text:00039CE4 .text:00039CE4 loc_39CE4 ; CODE XREF: __gconv_transform_ucs4le_internal+224j .text:00039CE4 LDR R1, [R11,#arg_C] .text:00039CE8 CMP R5, #7 .text:00039CEC MOVNE R3, #0 .text:00039CF0 MOVEQ R3, #1 .text:00039CF4 CMP R1, #0 .text:00039CF8 MOVEQ R3, #0 .text:00039CFC CMP R3, #0 .text:00039D00 BEQ loc_39DA8 .text:00039D04 LDR R2, [R7] .text:00039D08 LDR R12, [R11,#var_38] .text:00039D0C RSB R3, R2, R12 .text:00039D10 CMP R3, #3 .text:00039D14 BLE loc_39D50 .text:00039D18 LDR R0, =aInendInptrp4 ; "inend - *inptrp < 4" .text:00039D1C LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:00039D20 MOV R2, #0x254 .text:00039D24 LDR R3, =a__gconv_tran_2 ; "__gconv_transform_ucs4le_internal" .text:00039D28 ADD R2, R2, #3 .text:00039D2C BL __assert_fail .text:00039D30 ; --------------------------------------------------------------------------- .text:00039D30 .text:00039D30 loc_39D30 ; CODE XREF: __gconv_transform_ucs4le_internal+420j .text:00039D30 LDR R3, [R11,#var_30] .text:00039D34 LDR R1, [R11,#arg_0] .text:00039D38 MOV R0, R5 .text:00039D3C STR R3, [R1] .text:00039D40 B locret_39DAC .text:00039D40 ; --------------------------------------------------------------------------- .text:00039D44 off_39D44 DCD aInendInptrp4 ; DATA XREF: __gconv_transform_ucs4le_internal+550r .text:00039D44 ; "inend - *inptrp < 4" .text:00039D48 off_39D48 DCD a__IconvSkeleto ; DATA XREF: __gconv_transform_ucs4le_internal+554r .text:00039D48 ; "../iconv/skeleton.c" .text:00039D4C off_39D4C DCD a__gconv_tran_2 ; DATA XREF: __gconv_transform_ucs4le_internal+55Cr .text:00039D4C ; "__gconv_transform_ucs4le_internal" .text:00039D50 ; --------------------------------------------------------------------------- .text:00039D50 .text:00039D50 loc_39D50 ; CODE XREF: __gconv_transform_ucs4le_internal+54Cj .text:00039D50 LDR R3, [R11,#var_38] .text:00039D54 MOV R0, #0 .text:00039D58 CMP R2, R3 .text:00039D5C BCS loc_39D88 .text:00039D60 .text:00039D60 loc_39D60 ; CODE XREF: __gconv_transform_ucs4le_internal+5BCj .text:00039D60 LDR R3, [R7] .text:00039D64 LDR R2, [R6,#0x14] .text:00039D68 LDRB R1, [R3],#1 .text:00039D6C ADD R2, R2, R0 .text:00039D70 STRB R1, [R2,#4] .text:00039D74 LDR R12, [R11,#var_38] .text:00039D78 ADD R0, R0, #1 .text:00039D7C STR R3, [R7] .text:00039D80 CMP R3, R12 .text:00039D84 BCC loc_39D60 .text:00039D88 .text:00039D88 loc_39D88 ; CODE XREF: __gconv_transform_ucs4le_internal+594j .text:00039D88 LDR R2, [R6,#0x14] .text:00039D8C LDR R3, [R2] .text:00039D90 BIC R3, R3, #7 .text:00039D94 STR R3, [R2] .text:00039D98 LDR R1, [R6,#0x14] .text:00039D9C LDR R3, [R1] .text:00039DA0 ORR R3, R3, R0 .text:00039DA4 STR R3, [R1] .text:00039DA8 .text:00039DA8 loc_39DA8 ; CODE XREF: __gconv_transform_ucs4le_internal+8Cj .text:00039DA8 ; __gconv_transform_ucs4le_internal+D4j ... .text:00039DA8 MOV R0, R5 .text:00039DAC .text:00039DAC locret_39DAC ; CODE XREF: __gconv_transform_ucs4le_internal+578j .text:00039DAC LDMDB R11, {R4-R11,SP,PC} .text:00039DAC ; End of function __gconv_transform_ucs4le_internal .text:00039DAC .text:00039DB0 .text:00039DB0 ; =============== S U B R O U T I N E ======================================= .text:00039DB0 .text:00039DB0 ; Attributes: bp-based frame .text:00039DB0 .text:00039DB0 EXPORT __gconv_transform_ascii_internal .text:00039DB0 __gconv_transform_ascii_internal .text:00039DB0 .text:00039DB0 var_60 = -0x60 .text:00039DB0 var_54 = -0x54 .text:00039DB0 var_50 = -0x50 .text:00039DB0 var_4C = -0x4C .text:00039DB0 var_48 = -0x48 .text:00039DB0 var_44 = -0x44 .text:00039DB0 var_40 = -0x40 .text:00039DB0 var_3C = -0x3C .text:00039DB0 var_38 = -0x38 .text:00039DB0 var_34 = -0x34 .text:00039DB0 var_30 = -0x30 .text:00039DB0 var_2C = -0x2C .text:00039DB0 arg_0 = 4 .text:00039DB0 arg_4 = 8 .text:00039DB0 arg_8 = 0xC .text:00039DB0 arg_C = 0x10 .text:00039DB0 .text:00039DB0 MOV R12, SP .text:00039DB4 STMFD SP!, {R4-R12,LR,PC} .text:00039DB8 SUB R11, R12, #4 .text:00039DBC MOV R5, R1 .text:00039DC0 SUB SP, SP, #0x38 .text:00039DC4 LDR R1, [R5,#8] .text:00039DC8 MOV R12, #0 .text:00039DCC STR R12, [R11,#var_44] .text:00039DD0 STR R3, [R11,#var_38] .text:00039DD4 ADD R0, R0, #0x38 .text:00039DD8 STR R0, [R11,#var_3C] .text:00039DDC MOV R8, R2 .text:00039DE0 ADD R2, R5, #0x24 .text:00039DE4 STR R2, [R11,#var_40] .text:00039DE8 TST R1, #1 .text:00039DEC LDREQ R3, [R0,#0x14] .text:00039DF0 STREQ R3, [R11,#var_44] .text:00039DF4 LDR R3, [R11,#arg_8] .text:00039DF8 CMP R3, #0 .text:00039DFC BEQ loc_39E84 .text:00039E00 LDR R12, [R11,#arg_0] .text:00039E04 MOV R7, #0 .text:00039E08 CMP R12, R7 .text:00039E0C BEQ loc_39E24 .text:00039E10 LDR R0, =aOutbufstartVoi ; "outbufstart == ((void *)0)" .text:00039E14 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:00039E18 LDR R3, =a__gconv_tran_3 ; "__gconv_transform_ascii_internal" .text:00039E1C MOV R2, #0x130 .text:00039E20 BL __assert_fail .text:00039E24 ; --------------------------------------------------------------------------- .text:00039E24 .text:00039E24 loc_39E24 ; CODE XREF: __gconv_transform_ascii_internal+5Cj .text:00039E24 MOV R1, R7 .text:00039E28 LDR R0, [R5,#0x14] .text:00039E2C MOV R2, #8 .text:00039E30 BL memset .text:00039E34 LDR R3, [R5,#8] .text:00039E38 TST R3, #1 .text:00039E3C BNE loc_3A0C8 .text:00039E40 LDR R0, [R11,#var_44] .text:00039E44 BL _dl_mcount_wrapper_check .text:00039E48 STR R7, [SP,#0x60+var_60] .text:00039E4C LDR R2, [R11,#arg_4] .text:00039E50 MOV R3, #1 .text:00039E54 STMFA SP, {R2,R3} .text:00039E58 LDR R3, [R11,#arg_C] .text:00039E5C STR R3, [SP,#0x60+var_54] .text:00039E60 LDR R0, [R11,#var_3C] .text:00039E64 LDR R1, [R11,#var_40] .text:00039E68 MOV R2, R7 .text:00039E6C LDR R12, [R11,#var_44] .text:00039E70 MOV R3, R2 .text:00039E74 MOV LR, PC .text:00039E78 MOV PC, R12 .text:00039E7C MOV R7, R0 .text:00039E80 B loc_3A0C8 .text:00039E84 ; --------------------------------------------------------------------------- .text:00039E84 .text:00039E84 loc_39E84 ; CODE XREF: __gconv_transform_ascii_internal+4Cj .text:00039E84 LDR R2, [R11,#arg_0] .text:00039E88 CMP R2, #0 .text:00039E8C BNE loc_39EBC .text:00039E90 LDR R3, [R5] .text:00039E94 B loc_39EC4 .text:00039E98 ; --------------------------------------------------------------------------- .text:00039E98 .text:00039E98 loc_39E98 ; CODE XREF: __gconv_transform_ascii_internal+25Cj .text:00039E98 LDR R3, [R11,#var_30] .text:00039E9C STR R3, [R5] .text:00039EA0 LDR R3, [R11,#arg_4] .text:00039EA4 LDR R2, [R3] .text:00039EA8 LDR R3, [R11,#var_2C] .text:00039EAC LDR R12, [R11,#arg_4] .text:00039EB0 ADD R2, R2, R3 .text:00039EB4 STR R2, [R12] .text:00039EB8 B loc_3A0C8 .text:00039EBC ; --------------------------------------------------------------------------- .text:00039EBC .text:00039EBC loc_39EBC ; CODE XREF: __gconv_transform_ascii_internal+DCj .text:00039EBC LDR R2, [R11,#arg_0] .text:00039EC0 LDR R3, [R2] .text:00039EC4 .text:00039EC4 loc_39EC4 ; CODE XREF: __gconv_transform_ascii_internal+E4j .text:00039EC4 STR R3, [R11,#var_30] .text:00039EC8 SUB R12, R11, #-var_30 .text:00039ECC STR R12, [R11,#var_50] .text:00039ED0 LDR R3, [R11,#arg_4] .text:00039ED4 CMP R3, #0 .text:00039ED8 LDR R2, [R5,#4] .text:00039EDC MOV R3, #0 .text:00039EE0 STR R3, [R11,#var_2C] .text:00039EE4 SUBNE R10, R11, #-var_2C .text:00039EE8 MOVEQ R10, #0 .text:00039EEC STR R2, [R11,#var_48] .text:00039EF0 .text:00039EF0 loc_39EF0 ; CODE XREF: __gconv_transform_ascii_internal+308j .text:00039EF0 LDR R9, [R8] .text:00039EF4 MOV R3, #4 .text:00039EF8 STR R3, [R11,#var_4C] .text:00039EFC LDR R6, [R11,#var_30] .text:00039F00 LDR R3, [R5,#8] .text:00039F04 MOV R1, R9 .text:00039F08 MOV R0, R6 .text:00039F0C AND R12, R3, #2 .text:00039F10 B loc_39F34 .text:00039F14 ; --------------------------------------------------------------------------- .text:00039F14 .text:00039F14 loc_39F14 ; CODE XREF: __gconv_transform_ascii_internal+1B8j .text:00039F14 LDR R3, [R10] .text:00039F18 ADD R1, R1, #1 .text:00039F1C ADD R3, R3, #1 .text:00039F20 STR R3, [R10] .text:00039F24 B loc_39F34 .text:00039F28 ; --------------------------------------------------------------------------- .text:00039F28 .text:00039F28 loc_39F28 ; CODE XREF: __gconv_transform_ascii_internal+1A8j .text:00039F28 LDRB R3, [R1],#1 .text:00039F2C STR R3, [R0] .text:00039F30 MOV R0, R2 .text:00039F34 .text:00039F34 loc_39F34 ; CODE XREF: __gconv_transform_ascii_internal+160j .text:00039F34 ; __gconv_transform_ascii_internal+174j .text:00039F34 LDR R2, [R11,#var_38] .text:00039F38 CMP R1, R2 .text:00039F3C BEQ loc_39F74 .text:00039F40 LDR R3, [R11,#var_48] .text:00039F44 ADD R2, R0, #4 .text:00039F48 CMP R2, R3 .text:00039F4C BHI loc_39FA4 .text:00039F50 LDRB R3, [R1] .text:00039F54 TST R3, #0x80 .text:00039F58 BEQ loc_39F28 .text:00039F5C CMP R10, #0 .text:00039F60 BEQ loc_39F6C .text:00039F64 CMP R12, #0 .text:00039F68 BNE loc_39F14 .text:00039F6C .text:00039F6C loc_39F6C ; CODE XREF: __gconv_transform_ascii_internal+1B0j .text:00039F6C MOV R12, #6 .text:00039F70 STR R12, [R11,#var_4C] .text:00039F74 .text:00039F74 loc_39F74 ; CODE XREF: __gconv_transform_ascii_internal+18Cj .text:00039F74 ; __gconv_transform_ascii_internal+1FCj .text:00039F74 STR R1, [R8] .text:00039F78 SUB R2, R11, #-var_50 .text:00039F7C LDMIA R2, {R2,R7} .text:00039F80 STR R0, [R2] .text:00039F84 LDR R3, [R11,#arg_0] .text:00039F88 CMP R3, #0 .text:00039F8C BEQ loc_39FB0 .text:00039F90 LDR R3, [R11,#var_30] .text:00039F94 LDR R12, [R11,#arg_0] .text:00039F98 MOV R0, R7 .text:00039F9C STR R3, [R12] .text:00039FA0 B locret_3A0CC .text:00039FA4 ; --------------------------------------------------------------------------- .text:00039FA4 .text:00039FA4 loc_39FA4 ; CODE XREF: __gconv_transform_ascii_internal+19Cj .text:00039FA4 MOV R2, #5 .text:00039FA8 STR R2, [R11,#var_4C] .text:00039FAC B loc_39F74 .text:00039FB0 ; --------------------------------------------------------------------------- .text:00039FB0 .text:00039FB0 loc_39FB0 ; CODE XREF: __gconv_transform_ascii_internal+1DCj .text:00039FB0 LDR R4, [R5,#0x20] .text:00039FB4 CMP R4, #0 .text:00039FB8 BEQ loc_39FF8 .text:00039FBC .text:00039FBC loc_39FBC ; CODE XREF: __gconv_transform_ascii_internal+244j .text:00039FBC LDR R0, [R4,#4] .text:00039FC0 CMP R0, #0 .text:00039FC4 BEQ loc_39FEC .text:00039FC8 BL _dl_mcount_wrapper_check .text:00039FCC LDR R3, [R11,#var_30] .text:00039FD0 LDR R0, [R4,#0xC] .text:00039FD4 STR R3, [SP,#0x60+var_60] .text:00039FD8 MOV R1, R9 .text:00039FDC LDR R2, [R8] .text:00039FE0 MOV R3, R6 .text:00039FE4 MOV LR, PC .text:00039FE8 LDR PC, [R4,#4] .text:00039FEC .text:00039FEC loc_39FEC ; CODE XREF: __gconv_transform_ascii_internal+214j .text:00039FEC LDR R4, [R4,#0x10] .text:00039FF0 CMP R4, #0 .text:00039FF4 BNE loc_39FBC .text:00039FF8 .text:00039FF8 loc_39FF8 ; CODE XREF: __gconv_transform_ascii_internal+208j .text:00039FF8 ADD R2, R5, #8 .text:00039FFC LDMIA R2, {R2,R3} .text:0003A000 ADD R3, R3, #1 .text:0003A004 ANDS R4, R2, #1 .text:0003A008 STR R3, [R5,#0xC] .text:0003A00C BNE loc_39E98 .text:0003A010 LDR R3, [R11,#var_30] .text:0003A014 CMP R3, R6 .text:0003A018 BLS loc_3A0A8 .text:0003A01C LDR R3, [R5] .text:0003A020 STR R3, [R11,#var_34] .text:0003A024 LDR R0, [R11,#var_44] .text:0003A028 BL _dl_mcount_wrapper_check .text:0003A02C STR R4, [SP,#0x60+var_60] .text:0003A030 LDR R3, [R11,#arg_4] .text:0003A034 STMFA SP, {R3,R4} .text:0003A038 LDR R12, [R11,#arg_C] .text:0003A03C STR R12, [SP,#0x60+var_54] .text:0003A040 LDR R0, [R11,#var_3C] .text:0003A044 LDR R1, [R11,#var_40] .text:0003A048 LDR R3, [R11,#var_30] .text:0003A04C LDR R12, [R11,#var_44] .text:0003A050 SUB R2, R11, #-var_34 .text:0003A054 MOV LR, PC .text:0003A058 MOV PC, R12 .text:0003A05C CMP R0, #4 .text:0003A060 BEQ loc_3A094 .text:0003A064 SUB R2, R11, #-var_34 .text:0003A068 LDMIA R2, {R2,R3} .text:0003A06C CMP R2, R3 .text:0003A070 BEQ loc_3A08C .text:0003A074 RSB R3, R2, R3 .text:0003A078 CMP R3, #0 .text:0003A07C LDR R2, [R8] .text:0003A080 ADDLT R3, R3, #3 .text:0003A084 SUB R2, R2, R3,ASR#2 .text:0003A088 STR R2, [R8] .text:0003A08C .text:0003A08C loc_3A08C ; CODE XREF: __gconv_transform_ascii_internal+2C0j .text:0003A08C MOV R7, R0 .text:0003A090 B loc_3A0A8 .text:0003A094 ; --------------------------------------------------------------------------- .text:0003A094 .text:0003A094 loc_3A094 ; CODE XREF: __gconv_transform_ascii_internal+2B0j .text:0003A094 LDR R2, [R11,#var_4C] .text:0003A098 CMP R2, #5 .text:0003A09C LDREQ R3, [R5] .text:0003A0A0 MOVEQ R7, R4 .text:0003A0A4 STREQ R3, [R11,#var_30] .text:0003A0A8 .text:0003A0A8 loc_3A0A8 ; CODE XREF: __gconv_transform_ascii_internal+268j .text:0003A0A8 ; __gconv_transform_ascii_internal+2E0j .text:0003A0A8 CMP R7, #0 .text:0003A0AC BNE loc_3A0C8 .text:0003A0B0 LDR R3, [R5] .text:0003A0B4 STR R3, [R11,#var_30] .text:0003A0B8 B loc_39EF0 .text:0003A0B8 ; --------------------------------------------------------------------------- .text:0003A0BC off_3A0BC DCD aOutbufstartVoi ; DATA XREF: __gconv_transform_ascii_internal+60r .text:0003A0BC ; "outbufstart == ((void *)0)" .text:0003A0C0 off_3A0C0 DCD a__IconvSkeleto ; DATA XREF: __gconv_transform_ascii_internal+64r .text:0003A0C0 ; "../iconv/skeleton.c" .text:0003A0C4 off_3A0C4 DCD a__gconv_tran_3 ; DATA XREF: __gconv_transform_ascii_internal+68r .text:0003A0C4 ; "__gconv_transform_ascii_internal" .text:0003A0C8 ; --------------------------------------------------------------------------- .text:0003A0C8 .text:0003A0C8 loc_3A0C8 ; CODE XREF: __gconv_transform_ascii_internal+8Cj .text:0003A0C8 ; __gconv_transform_ascii_internal+D0j ... .text:0003A0C8 MOV R0, R7 .text:0003A0CC .text:0003A0CC locret_3A0CC ; CODE XREF: __gconv_transform_ascii_internal+1F0j .text:0003A0CC LDMDB R11, {R4-R11,SP,PC} .text:0003A0CC ; End of function __gconv_transform_ascii_internal .text:0003A0CC .text:0003A0D0 .text:0003A0D0 ; =============== S U B R O U T I N E ======================================= .text:0003A0D0 .text:0003A0D0 ; Attributes: bp-based frame .text:0003A0D0 .text:0003A0D0 EXPORT __gconv_transform_internal_ascii .text:0003A0D0 __gconv_transform_internal_ascii .text:0003A0D0 .text:0003A0D0 var_84 = -0x84 .text:0003A0D0 var_80 = -0x80 .text:0003A0D0 var_7C = -0x7C .text:0003A0D0 var_78 = -0x78 .text:0003A0D0 var_74 = -0x74 .text:0003A0D0 var_70 = -0x70 .text:0003A0D0 var_6C = -0x6C .text:0003A0D0 var_68 = -0x68 .text:0003A0D0 var_64 = -0x64 .text:0003A0D0 var_60 = -0x60 .text:0003A0D0 var_5C = -0x5C .text:0003A0D0 var_58 = -0x58 .text:0003A0D0 var_54 = -0x54 .text:0003A0D0 var_50 = -0x50 .text:0003A0D0 var_44 = -0x44 .text:0003A0D0 var_40 = -0x40 .text:0003A0D0 var_3C = -0x3C .text:0003A0D0 var_38 = -0x38 .text:0003A0D0 var_34 = -0x34 .text:0003A0D0 var_30 = -0x30 .text:0003A0D0 var_2C = -0x2C .text:0003A0D0 var_28 = -0x28 .text:0003A0D0 arg_0 = 4 .text:0003A0D0 arg_4 = 8 .text:0003A0D0 arg_8 = 0xC .text:0003A0D0 arg_C = 0x10 .text:0003A0D0 .text:0003A0D0 MOV R12, SP .text:0003A0D4 STMFD SP!, {R4-R12,LR,PC} .text:0003A0D8 SUB R11, R12, #4 .text:0003A0DC MOV R6, R1 .text:0003A0E0 SUB SP, SP, #0x5C .text:0003A0E4 LDR R1, [R6,#8] .text:0003A0E8 MOV R12, #0 .text:0003A0EC STR R12, [R11,#var_68] .text:0003A0F0 STR R0, [R11,#var_54] .text:0003A0F4 STR R2, [R11,#var_58] .text:0003A0F8 STR R3, [R11,#var_5C] .text:0003A0FC ADD LR, R0, #0x38 .text:0003A100 STR LR, [R11,#var_60] .text:0003A104 TST R1, #1 .text:0003A108 ADD R0, R6, #0x24 .text:0003A10C STR R0, [R11,#var_64] .text:0003A110 LDREQ R1, [LR,#0x14] .text:0003A114 STREQ R1, [R11,#var_68] .text:0003A118 LDR R3, [R11,#arg_8] .text:0003A11C CMP R3, #0 .text:0003A120 BEQ loc_3A1AC .text:0003A124 LDR R2, [R11,#arg_0] .text:0003A128 MOV R8, #0 .text:0003A12C CMP R2, R8 .text:0003A130 BEQ loc_3A148 .text:0003A134 LDR R0, =aOutbufstartVoi ; "outbufstart == ((void *)0)" .text:0003A138 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003A13C LDR R3, =a__gconv_tran_4 ; "__gconv_transform_internal_ascii" .text:0003A140 MOV R2, #0x130 .text:0003A144 BL __assert_fail .text:0003A148 ; --------------------------------------------------------------------------- .text:0003A148 .text:0003A148 loc_3A148 ; CODE XREF: __gconv_transform_internal_ascii+60j .text:0003A148 MOV R1, R8 .text:0003A14C LDR R0, [R6,#0x14] .text:0003A150 MOV R2, #8 .text:0003A154 BL memset .text:0003A158 LDR R3, [R6,#8] .text:0003A15C TST R3, #1 .text:0003A160 BNE loc_3A84C .text:0003A164 LDR R0, [R11,#var_68] .text:0003A168 BL _dl_mcount_wrapper_check .text:0003A16C STR R8, [SP,#0x84+var_84] .text:0003A170 LDR R3, [R11,#arg_4] .text:0003A174 STR R3, [SP,#0x84+var_80] .text:0003A178 MOV R3, #1 .text:0003A17C STR R3, [SP,#0x84+var_7C] .text:0003A180 LDR R12, [R11,#arg_C] .text:0003A184 STR R12, [SP,#0x84+var_78] .text:0003A188 LDR R0, [R11,#var_60] .text:0003A18C LDR R1, [R11,#var_64] .text:0003A190 MOV R2, R8 .text:0003A194 LDR R12, [R11,#var_68] .text:0003A198 MOV R3, R2 .text:0003A19C MOV LR, PC .text:0003A1A0 MOV PC, R12 .text:0003A1A4 MOV R8, R0 .text:0003A1A8 B loc_3A84C .text:0003A1AC ; --------------------------------------------------------------------------- .text:0003A1AC .text:0003A1AC loc_3A1AC ; CODE XREF: __gconv_transform_internal_ascii+50j .text:0003A1AC LDR LR, [R11,#arg_0] .text:0003A1B0 CMP LR, #0 .text:0003A1B4 LDREQ R3, [R6] .text:0003A1B8 LDRNE R0, [R11,#arg_0] .text:0003A1BC LDRNE R3, [R0] .text:0003A1C0 STR R3, [R11,#var_34] .text:0003A1C4 LDR R1, [R11,#arg_4] .text:0003A1C8 MOV R3, #0 .text:0003A1CC LDR R2, [R11,#arg_C] .text:0003A1D0 STR R3, [R11,#var_30] .text:0003A1D4 CMP R1, R3 .text:0003A1D8 SUBNE R10, R11, #-var_30 .text:0003A1DC MOVEQ R10, #0 .text:0003A1E0 CMP R2, R3 .text:0003A1E4 SUB R3, R11, #-var_34 .text:0003A1E8 STR R3, [R11,#var_74] .text:0003A1EC LDR R12, [R6,#4] .text:0003A1F0 STR R12, [R11,#var_6C] .text:0003A1F4 BEQ loc_3A50C .text:0003A1F8 LDR R9, [R6,#0x14] .text:0003A1FC LDR R3, [R9] .text:0003A200 ANDS R1, R3, #7 .text:0003A204 BEQ loc_3A50C .text:0003A208 LDR LR, [R11,#arg_0] .text:0003A20C CMP LR, #0 .text:0003A210 BEQ loc_3A22C .text:0003A214 LDR R0, =aOutbufstartVoi ; "outbufstart == ((void *)0)" .text:0003A218 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003A21C MOV R2, #0x168 .text:0003A220 LDR R3, =a__gconv_tran_4 ; "__gconv_transform_internal_ascii" .text:0003A224 ADD R2, R2, #2 .text:0003A228 BL __assert_fail .text:0003A22C ; --------------------------------------------------------------------------- .text:0003A22C .text:0003A22C loc_3A22C ; CODE XREF: __gconv_transform_internal_ascii+140j .text:0003A22C LDR R0, [R11,#var_58] .text:0003A230 LDR R2, [R11,#var_34] .text:0003A234 LDR R3, [R0] .text:0003A238 STR R2, [R11,#var_3C] .text:0003A23C STR R3, [R11,#var_38] .text:0003A240 LDR R0, [R11,#arg_0] .text:0003A244 MOV R5, R0 .text:0003A248 CMP R5, R1 .text:0003A24C LDR R1, [R6,#8] .text:0003A250 STR R1, [R11,#var_70] .text:0003A254 BCS loc_3A27C .text:0003A258 SUB R1, R11, #-var_2C .text:0003A25C .text:0003A25C loc_3A25C ; CODE XREF: __gconv_transform_internal_ascii+1A8j .text:0003A25C ADD R3, R9, R5 .text:0003A260 LDRB R2, [R3,#4] .text:0003A264 STRB R2, [R1,R5] .text:0003A268 LDR R3, [R9] .text:0003A26C ADD R5, R5, #1 .text:0003A270 AND R3, R3, #7 .text:0003A274 CMP R5, R3 .text:0003A278 BCC loc_3A25C .text:0003A27C .text:0003A27C loc_3A27C ; CODE XREF: __gconv_transform_internal_ascii+184j .text:0003A27C LDR R1, [R11,#var_38] .text:0003A280 LDR R2, [R11,#var_5C] .text:0003A284 ADD R3, R1, #4 .text:0003A288 RSB R3, R5, R3 .text:0003A28C CMP R3, R2 .text:0003A290 BLS loc_3A2DC .text:0003A294 MOV R3, R1 .text:0003A298 LDR R12, [R11,#var_58] .text:0003A29C CMP R3, R2 .text:0003A2A0 STR R2, [R12] .text:0003A2A4 BCS loc_3A2D4 .text:0003A2A8 .text:0003A2A8 loc_3A2A8 ; CODE XREF: __gconv_transform_internal_ascii+200j .text:0003A2A8 LDRB R3, [R3] .text:0003A2AC ADD R2, R9, R5 .text:0003A2B0 STRB R3, [R2,#4] .text:0003A2B4 LDR R1, [R11,#var_38] .text:0003A2B8 ADD R5, R5, #1 .text:0003A2BC LDR LR, [R11,#var_5C] .text:0003A2C0 ADD R1, R1, #1 .text:0003A2C4 MOV R3, R1 .text:0003A2C8 CMP R3, LR .text:0003A2CC STR R1, [R11,#var_38] .text:0003A2D0 BCC loc_3A2A8 .text:0003A2D4 .text:0003A2D4 loc_3A2D4 ; CODE XREF: __gconv_transform_internal_ascii+1D4j .text:0003A2D4 MOV R8, #7 .text:0003A2D8 B loc_3A4C4 .text:0003A2DC ; --------------------------------------------------------------------------- .text:0003A2DC .text:0003A2DC loc_3A2DC ; CODE XREF: __gconv_transform_internal_ascii+1C0j .text:0003A2DC LDR R3, [R11,#var_3C] .text:0003A2E0 LDR R1, [R11,#var_6C] .text:0003A2E4 CMP R3, R1 .text:0003A2E8 MOVCS R8, #5 .text:0003A2EC BCS loc_3A4C4 .text:0003A2F0 SUB R7, R11, #-var_2C .text:0003A2F4 MOV R1, R7 .text:0003A2F8 .text:0003A2F8 loc_3A2F8 ; CODE XREF: __gconv_transform_internal_ascii+250j .text:0003A2F8 LDR R3, [R11,#var_38] .text:0003A2FC LDRB R2, [R3] .text:0003A300 STRB R2, [R1,R5] .text:0003A304 LDR R3, [R11,#var_38] .text:0003A308 ADD R5, R5, #1 .text:0003A30C LDR R2, [R11,#var_5C] .text:0003A310 ADD R3, R3, #1 .text:0003A314 CMP R5, #3 .text:0003A318 CMPLS R3, R2 .text:0003A31C STR R3, [R11,#var_38] .text:0003A320 BCC loc_3A2F8 .text:0003A324 STR R7, [R11,#var_38] .text:0003A328 LDR R3, [R7] .text:0003A32C ADD R8, R7, R5 .text:0003A330 CMP R3, #0x7F .text:0003A334 BLS loc_3A3D0 .text:0003A338 MOV R0, #6 .text:0003A33C CMP R10, #0 .text:0003A340 BEQ loc_3A3E8 .text:0003A344 LDR R4, [R6,#0x20] .text:0003A348 B loc_3A350 .text:0003A34C ; --------------------------------------------------------------------------- .text:0003A34C .text:0003A34C loc_3A34C ; CODE XREF: __gconv_transform_internal_ascii+2C4j .text:0003A34C LDR R4, [R4,#0x10] .text:0003A350 .text:0003A350 loc_3A350 ; CODE XREF: __gconv_transform_internal_ascii+278j .text:0003A350 CMP R4, #0 .text:0003A354 BEQ loc_3A398 .text:0003A358 LDR R0, [R4] .text:0003A35C BL _dl_mcount_wrapper_check .text:0003A360 LDR R2, [R4,#0xC] .text:0003A364 SUB R3, R11, #-var_38 .text:0003A368 STMEA SP, {R3,R8} .text:0003A36C SUB R3, R11, #-var_3C .text:0003A370 STR R3, [SP,#0x84+var_7C] .text:0003A374 STR R10, [SP,#0x84+var_78] .text:0003A378 LDR R12, [R11,#var_58] .text:0003A37C LDR R0, [R11,#var_54] .text:0003A380 LDR R3, [R12] .text:0003A384 MOV R1, R6 .text:0003A388 MOV LR, PC .text:0003A38C LDR PC, [R4] .text:0003A390 CMP R0, #6 .text:0003A394 BEQ loc_3A34C .text:0003A398 .text:0003A398 loc_3A398 ; CODE XREF: __gconv_transform_internal_ascii+284j .text:0003A398 CMP R0, #6 .text:0003A39C BNE loc_3A3E8 .text:0003A3A0 CMP R10, #0 .text:0003A3A4 BEQ loc_3A3E8 .text:0003A3A8 LDR LR, [R11,#var_70] .text:0003A3AC TST LR, #2 .text:0003A3B0 BEQ loc_3A3E8 .text:0003A3B4 LDR R3, [R10] .text:0003A3B8 ADD R3, R3, #1 .text:0003A3BC STR R3, [R10] .text:0003A3C0 LDR R2, [R11,#var_38] .text:0003A3C4 ADD R2, R2, #4 .text:0003A3C8 STR R2, [R11,#var_38] .text:0003A3CC B loc_3A3E8 .text:0003A3D0 ; --------------------------------------------------------------------------- .text:0003A3D0 .text:0003A3D0 loc_3A3D0 ; CODE XREF: __gconv_transform_internal_ascii+264j .text:0003A3D0 LDR R3, [R11,#var_3C] .text:0003A3D4 LDRB R2, [R7] .text:0003A3D8 STRB R2, [R3],#1 .text:0003A3DC ADD R1, R7, #4 .text:0003A3E0 STR R1, [R11,#var_38] .text:0003A3E4 STR R3, [R11,#var_3C] .text:0003A3E8 .text:0003A3E8 loc_3A3E8 ; CODE XREF: __gconv_transform_internal_ascii+270j .text:0003A3E8 ; __gconv_transform_internal_ascii+2CCj ... .text:0003A3E8 LDR R2, [R11,#var_38] .text:0003A3EC CMP R2, R7 .text:0003A3F0 BEQ loc_3A44C .text:0003A3F4 LDR R3, [R9] .text:0003A3F8 RSB R2, R7, R2 .text:0003A3FC AND R1, R3, #7 .text:0003A400 CMP R2, R1 .text:0003A404 BGT loc_3A41C .text:0003A408 LDR R0, =aInptrBytebufSt ; "inptr - bytebuf > (state->__count & 7)" .text:0003A40C LDR R1, =a__IconvLoop_c ; "../iconv/loop.c" .text:0003A410 LDR R3, =aInternal_ascii ; "internal_ascii_loop_single" .text:0003A414 MOV R2, #0x17C .text:0003A418 BL __assert_fail .text:0003A41C ; --------------------------------------------------------------------------- .text:0003A41C .text:0003A41C loc_3A41C ; CODE XREF: __gconv_transform_internal_ascii+334j .text:0003A41C LDR R0, [R11,#var_58] .text:0003A420 LDR R3, [R0] .text:0003A424 RSB R2, R1, R2 .text:0003A428 ADD R3, R3, R2 .text:0003A42C STR R3, [R0] .text:0003A430 LDR R2, [R11,#var_3C] .text:0003A434 STR R2, [R11,#var_34] .text:0003A438 LDR R3, [R9] .text:0003A43C MOV R0, #0 .text:0003A440 BIC R3, R3, #7 .text:0003A444 STR R3, [R9] .text:0003A448 B loc_3A4C0 .text:0003A44C ; --------------------------------------------------------------------------- .text:0003A44C .text:0003A44C loc_3A44C ; CODE XREF: __gconv_transform_internal_ascii+320j .text:0003A44C CMP R0, #7 .text:0003A450 BNE loc_3A4C0 .text:0003A454 SUB R1, R11, #-var_28 .text:0003A458 CMP R8, R1 .text:0003A45C BNE loc_3A478 .text:0003A460 LDR R0, =aInendBytebuf4 ; "inend != &bytebuf[4]" .text:0003A464 LDR R1, =a__IconvLoop_c ; "../iconv/loop.c" .text:0003A468 MOV R2, #0x188 .text:0003A46C LDR R3, =aInternal_ascii ; "internal_ascii_loop_single" .text:0003A470 ADD R2, R2, #2 .text:0003A474 BL __assert_fail .text:0003A478 ; --------------------------------------------------------------------------- .text:0003A478 .text:0003A478 loc_3A478 ; CODE XREF: __gconv_transform_internal_ascii+38Cj .text:0003A478 MOV R12, R2 .text:0003A47C CMP R12, R8 .text:0003A480 LDR R3, [R9] .text:0003A484 RSB R1, R2, R8 .text:0003A488 LDR LR, [R11,#var_58] .text:0003A48C AND R3, R3, #7 .text:0003A490 LDR R2, [LR] .text:0003A494 RSB R1, R3, R1 .text:0003A498 ADD R2, R2, R1 .text:0003A49C STR R2, [LR] .text:0003A4A0 BCS loc_3A4C0 .text:0003A4A4 .text:0003A4A4 loc_3A4A4 ; CODE XREF: __gconv_transform_internal_ascii+3ECj .text:0003A4A4 LDRB R2, [R12],#1 .text:0003A4A8 ADD R3, R9, R5 .text:0003A4AC STRB R2, [R3,#4] .text:0003A4B0 ADD R5, R5, #1 .text:0003A4B4 CMP R12, R8 .text:0003A4B8 STR R12, [R11,#var_38] .text:0003A4BC BCC loc_3A4A4 .text:0003A4C0 .text:0003A4C0 loc_3A4C0 ; CODE XREF: __gconv_transform_internal_ascii+378j .text:0003A4C0 ; __gconv_transform_internal_ascii+380j ... .text:0003A4C0 MOV R8, R0 .text:0003A4C4 .text:0003A4C4 loc_3A4C4 ; CODE XREF: __gconv_transform_internal_ascii+208j .text:0003A4C4 ; __gconv_transform_internal_ascii+21Cj .text:0003A4C4 CMP R8, #0 .text:0003A4C8 BEQ loc_3A50C .text:0003A4CC B loc_3A84C .text:0003A4D0 ; --------------------------------------------------------------------------- .text:0003A4D0 .text:0003A4D0 loc_3A4D0 ; CODE XREF: __gconv_transform_internal_ascii+61Cj .text:0003A4D0 LDR R3, [R11,#var_34] .text:0003A4D4 STR R3, [R6] .text:0003A4D8 LDR R0, [R11,#arg_4] .text:0003A4DC LDR R3, [R11,#var_30] .text:0003A4E0 LDR R2, [R0] .text:0003A4E4 ADD R2, R2, R3 .text:0003A4E8 STR R2, [R0] .text:0003A4EC B loc_3A790 .text:0003A4EC ; --------------------------------------------------------------------------- .text:0003A4F0 off_3A4F0 DCD aOutbufstartVoi ; DATA XREF: __gconv_transform_internal_ascii+64r .text:0003A4F0 ; __gconv_transform_internal_ascii+144r .text:0003A4F0 ; "outbufstart == ((void *)0)" .text:0003A4F4 off_3A4F4 DCD a__IconvSkeleto ; DATA XREF: __gconv_transform_internal_ascii+68r .text:0003A4F4 ; __gconv_transform_internal_ascii+148r .text:0003A4F4 ; "../iconv/skeleton.c" .text:0003A4F8 off_3A4F8 DCD a__gconv_tran_4 ; DATA XREF: __gconv_transform_internal_ascii+6Cr .text:0003A4F8 ; __gconv_transform_internal_ascii+150r .text:0003A4F8 ; "__gconv_transform_internal_ascii" .text:0003A4FC off_3A4FC DCD aInptrBytebufSt ; DATA XREF: __gconv_transform_internal_ascii+338r .text:0003A4FC ; "inptr - bytebuf > (state->__count & 7)" .text:0003A500 off_3A500 DCD a__IconvLoop_c ; DATA XREF: __gconv_transform_internal_ascii+33Cr .text:0003A500 ; __gconv_transform_internal_ascii+394r .text:0003A500 ; "../iconv/loop.c" .text:0003A504 off_3A504 DCD aInternal_ascii ; DATA XREF: __gconv_transform_internal_ascii+340r .text:0003A504 ; __gconv_transform_internal_ascii+39Cr .text:0003A504 ; "internal_ascii_loop_single" .text:0003A508 off_3A508 DCD aInendBytebuf4 ; DATA XREF: __gconv_transform_internal_ascii+390r .text:0003A508 ; "inend != &bytebuf[4]" .text:0003A50C ; --------------------------------------------------------------------------- .text:0003A50C .text:0003A50C loc_3A50C ; CODE XREF: __gconv_transform_internal_ascii+124j .text:0003A50C ; __gconv_transform_internal_ascii+134j ... .text:0003A50C LDR R1, [R11,#var_58] .text:0003A510 LDR R9, [R11,#var_34] .text:0003A514 LDR R7, [R1] .text:0003A518 STR R9, [R11,#var_44] .text:0003A51C STR R7, [R11,#var_40] .text:0003A520 MOV R5, #4 .text:0003A524 LDR R3, [R11,#var_5C] .text:0003A528 MOV R2, R7 .text:0003A52C CMP R7, R3 .text:0003A530 LDR R8, [R6,#8] .text:0003A534 BEQ loc_3A644 .text:0003A538 LDR R12, [R11,#var_6C] .text:0003A53C MOV R0, R9 .text:0003A540 CMP R9, R12 .text:0003A544 BCS loc_3A684 .text:0003A548 ADD R1, R7, R5 .text:0003A54C CMP R1, R3 .text:0003A550 BHI loc_3A67C .text:0003A554 LDR R3, [R7] .text:0003A558 B loc_3A630 .text:0003A55C ; --------------------------------------------------------------------------- .text:0003A55C .text:0003A55C loc_3A55C ; CODE XREF: __gconv_transform_internal_ascii+570j .text:0003A55C LDR R4, [R6,#0x20] .text:0003A560 B loc_3A568 .text:0003A564 ; --------------------------------------------------------------------------- .text:0003A564 .text:0003A564 loc_3A564 ; CODE XREF: __gconv_transform_internal_ascii+4E8j .text:0003A564 LDR R4, [R4,#0x10] .text:0003A568 .text:0003A568 loc_3A568 ; CODE XREF: __gconv_transform_internal_ascii+490j .text:0003A568 CMP R4, #0 .text:0003A56C BEQ loc_3A5BC .text:0003A570 LDR R0, [R4] .text:0003A574 BL _dl_mcount_wrapper_check .text:0003A578 LDR R2, [R4,#0xC] .text:0003A57C SUB R3, R11, #-var_40 .text:0003A580 STR R3, [SP,#0x84+var_84] .text:0003A584 LDR LR, [R11,#var_5C] .text:0003A588 SUB R3, R11, #-var_44 .text:0003A58C STR R3, [SP,#0x84+var_7C] .text:0003A590 STR R10, [SP,#0x84+var_78] .text:0003A594 STR LR, [SP,#0x84+var_80] .text:0003A598 LDR R12, [R11,#var_58] .text:0003A59C LDR R0, [R11,#var_54] .text:0003A5A0 LDR R3, [R12] .text:0003A5A4 MOV R1, R6 .text:0003A5A8 MOV LR, PC .text:0003A5AC LDR PC, [R4] .text:0003A5B0 MOV R5, R0 .text:0003A5B4 CMP R5, #6 .text:0003A5B8 BEQ loc_3A564 .text:0003A5BC .text:0003A5BC loc_3A5BC ; CODE XREF: __gconv_transform_internal_ascii+49Cj .text:0003A5BC CMP R5, #6 .text:0003A5C0 BNE loc_3A600 .text:0003A5C4 CMP R10, #0 .text:0003A5C8 BEQ loc_3A644 .text:0003A5CC TST R8, #2 .text:0003A5D0 BEQ loc_3A644 .text:0003A5D4 LDR R3, [R10] .text:0003A5D8 ADD R3, R3, #1 .text:0003A5DC STR R3, [R10] .text:0003A5E0 LDR R2, [R11,#var_40] .text:0003A5E4 ADD R2, R2, #4 .text:0003A5E8 STR R2, [R11,#var_40] .text:0003A5EC B loc_3A600 .text:0003A5F0 ; --------------------------------------------------------------------------- .text:0003A5F0 .text:0003A5F0 loc_3A5F0 ; CODE XREF: __gconv_transform_internal_ascii+564j .text:0003A5F0 LDRB R3, [R2] .text:0003A5F4 STRB R3, [R0],#1 .text:0003A5F8 STR R1, [R11,#var_40] .text:0003A5FC STR R0, [R11,#var_44] .text:0003A600 .text:0003A600 loc_3A600 ; CODE XREF: __gconv_transform_internal_ascii+4F0j .text:0003A600 ; __gconv_transform_internal_ascii+51Cj .text:0003A600 LDR R2, [R11,#var_40] .text:0003A604 LDR LR, [R11,#var_5C] .text:0003A608 CMP R2, LR .text:0003A60C BEQ loc_3A644 .text:0003A610 LDR R0, [R11,#var_44] .text:0003A614 LDR R1, [R11,#var_6C] .text:0003A618 CMP R0, R1 .text:0003A61C BCS loc_3A684 .text:0003A620 ADD R1, R2, #4 .text:0003A624 CMP R1, LR .text:0003A628 BHI loc_3A67C .text:0003A62C LDR R3, [R2] .text:0003A630 .text:0003A630 loc_3A630 ; CODE XREF: __gconv_transform_internal_ascii+488j .text:0003A630 CMP R3, #0x7F .text:0003A634 BLS loc_3A5F0 .text:0003A638 MOV R5, #6 .text:0003A63C CMP R10, #0 .text:0003A640 BNE loc_3A55C .text:0003A644 .text:0003A644 loc_3A644 ; CODE XREF: __gconv_transform_internal_ascii+464j .text:0003A644 ; __gconv_transform_internal_ascii+4F8j ... .text:0003A644 LDR R3, [R11,#var_40] .text:0003A648 LDR R2, [R11,#var_58] .text:0003A64C STR R3, [R2] .text:0003A650 LDR R2, [R11,#var_44] .text:0003A654 LDR R3, [R11,#var_74] .text:0003A658 STR R2, [R3] .text:0003A65C MOV R8, R5 .text:0003A660 LDR R12, [R11,#arg_0] .text:0003A664 CMP R12, #0 .text:0003A668 BEQ loc_3A68C .text:0003A66C LDR R3, [R11,#var_34] .text:0003A670 MOV R0, R8 .text:0003A674 STR R3, [R12] .text:0003A678 B locret_3A850 .text:0003A67C ; --------------------------------------------------------------------------- .text:0003A67C .text:0003A67C loc_3A67C ; CODE XREF: __gconv_transform_internal_ascii+480j .text:0003A67C ; __gconv_transform_internal_ascii+558j .text:0003A67C MOV R5, #7 .text:0003A680 B loc_3A644 .text:0003A684 ; --------------------------------------------------------------------------- .text:0003A684 .text:0003A684 loc_3A684 ; CODE XREF: __gconv_transform_internal_ascii+474j .text:0003A684 ; __gconv_transform_internal_ascii+54Cj .text:0003A684 MOV R5, #5 .text:0003A688 B loc_3A644 .text:0003A68C ; --------------------------------------------------------------------------- .text:0003A68C .text:0003A68C loc_3A68C ; CODE XREF: __gconv_transform_internal_ascii+598j .text:0003A68C LDR R4, [R6,#0x20] .text:0003A690 CMP R4, #0 .text:0003A694 BEQ loc_3A6D8 .text:0003A698 .text:0003A698 loc_3A698 ; CODE XREF: __gconv_transform_internal_ascii+604j .text:0003A698 LDR R0, [R4,#4] .text:0003A69C CMP R0, #0 .text:0003A6A0 BEQ loc_3A6CC .text:0003A6A4 BL _dl_mcount_wrapper_check .text:0003A6A8 LDR R3, [R11,#var_34] .text:0003A6AC LDR R0, [R4,#0xC] .text:0003A6B0 STR R3, [SP,#0x84+var_84] .text:0003A6B4 LDR LR, [R11,#var_58] .text:0003A6B8 MOV R1, R7 .text:0003A6BC LDR R2, [LR] .text:0003A6C0 MOV R3, R9 .text:0003A6C4 MOV LR, PC .text:0003A6C8 LDR PC, [R4,#4] .text:0003A6CC .text:0003A6CC loc_3A6CC ; CODE XREF: __gconv_transform_internal_ascii+5D0j .text:0003A6CC LDR R4, [R4,#0x10] .text:0003A6D0 CMP R4, #0 .text:0003A6D4 BNE loc_3A698 .text:0003A6D8 .text:0003A6D8 loc_3A6D8 ; CODE XREF: __gconv_transform_internal_ascii+5C4j .text:0003A6D8 ADD R2, R6, #8 .text:0003A6DC LDMIA R2, {R2,R3} .text:0003A6E0 ADD R3, R3, #1 .text:0003A6E4 ANDS R4, R2, #1 .text:0003A6E8 STR R3, [R6,#0xC] .text:0003A6EC BNE loc_3A4D0 .text:0003A6F0 LDR R3, [R11,#var_34] .text:0003A6F4 CMP R3, R9 .text:0003A6F8 BLS loc_3A780 .text:0003A6FC LDR R3, [R6] .text:0003A700 STR R3, [R11,#var_50] .text:0003A704 LDR R0, [R11,#var_68] .text:0003A708 BL _dl_mcount_wrapper_check .text:0003A70C STR R4, [SP,#0x84+var_84] .text:0003A710 LDR R0, [R11,#arg_4] .text:0003A714 STMFA SP, {R0,R4} .text:0003A718 LDR R1, [R11,#arg_C] .text:0003A71C STR R1, [SP,#0x84+var_78] .text:0003A720 LDR R0, [R11,#var_60] .text:0003A724 LDR R1, [R11,#var_64] .text:0003A728 LDR R3, [R11,#var_34] .text:0003A72C LDR R12, [R11,#var_68] .text:0003A730 SUB R2, R11, #-var_50 .text:0003A734 MOV LR, PC .text:0003A738 MOV PC, R12 .text:0003A73C CMP R0, #4 .text:0003A740 BEQ loc_3A770 .text:0003A744 LDR R1, [R11,#var_50] .text:0003A748 LDR R2, [R11,#var_34] .text:0003A74C CMP R1, R2 .text:0003A750 BEQ loc_3A768 .text:0003A754 LDR LR, [R11,#var_58] .text:0003A758 LDR R3, [LR] .text:0003A75C RSB R2, R1, R2 .text:0003A760 SUB R3, R3, R2,LSL#2 .text:0003A764 STR R3, [LR] .text:0003A768 .text:0003A768 loc_3A768 ; CODE XREF: __gconv_transform_internal_ascii+680j .text:0003A768 MOV R8, R0 .text:0003A76C B loc_3A780 .text:0003A770 ; --------------------------------------------------------------------------- .text:0003A770 .text:0003A770 loc_3A770 ; CODE XREF: __gconv_transform_internal_ascii+670j .text:0003A770 CMP R5, #5 .text:0003A774 LDREQ R3, [R6] .text:0003A778 MOVEQ R8, R4 .text:0003A77C STREQ R3, [R11,#var_34] .text:0003A780 .text:0003A780 loc_3A780 ; CODE XREF: __gconv_transform_internal_ascii+628j .text:0003A780 ; __gconv_transform_internal_ascii+69Cj .text:0003A780 CMP R8, #0 .text:0003A784 LDREQ R3, [R6] .text:0003A788 STREQ R3, [R11,#var_34] .text:0003A78C BEQ loc_3A50C .text:0003A790 .text:0003A790 loc_3A790 ; CODE XREF: __gconv_transform_internal_ascii+41Cj .text:0003A790 LDR R0, [R11,#arg_C] .text:0003A794 CMP R8, #7 .text:0003A798 MOVNE R3, #0 .text:0003A79C MOVEQ R3, #1 .text:0003A7A0 CMP R0, #0 .text:0003A7A4 MOVEQ R3, #0 .text:0003A7A8 CMP R3, #0 .text:0003A7AC BEQ loc_3A84C .text:0003A7B0 LDR R1, [R11,#var_58] .text:0003A7B4 LDR R12, [R11,#var_5C] .text:0003A7B8 LDR R2, [R1] .text:0003A7BC RSB R3, R2, R12 .text:0003A7C0 CMP R3, #3 .text:0003A7C4 BLE loc_3A7EC .text:0003A7C8 LDR R0, =aInendInptrp4 ; "inend - *inptrp < 4" .text:0003A7CC LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003A7D0 MOV R2, #0x254 .text:0003A7D4 LDR R3, =a__gconv_tran_4 ; "__gconv_transform_internal_ascii" .text:0003A7D8 ADD R2, R2, #3 .text:0003A7DC BL __assert_fail .text:0003A7DC ; --------------------------------------------------------------------------- .text:0003A7E0 off_3A7E0 DCD aInendInptrp4 ; DATA XREF: __gconv_transform_internal_ascii+6F8r .text:0003A7E0 ; "inend - *inptrp < 4" .text:0003A7E4 off_3A7E4 DCD a__IconvSkeleto ; DATA XREF: __gconv_transform_internal_ascii+6FCr .text:0003A7E4 ; "../iconv/skeleton.c" .text:0003A7E8 off_3A7E8 DCD a__gconv_tran_4 ; DATA XREF: __gconv_transform_internal_ascii+704r .text:0003A7E8 ; "__gconv_transform_internal_ascii" .text:0003A7EC ; --------------------------------------------------------------------------- .text:0003A7EC .text:0003A7EC loc_3A7EC ; CODE XREF: __gconv_transform_internal_ascii+6F4j .text:0003A7EC LDR LR, [R11,#var_5C] .text:0003A7F0 MOV R0, #0 .text:0003A7F4 CMP R2, LR .text:0003A7F8 BCS loc_3A82C .text:0003A7FC .text:0003A7FC loc_3A7FC ; CODE XREF: __gconv_transform_internal_ascii+758j .text:0003A7FC LDR R1, [R11,#var_58] .text:0003A800 LDR R2, [R6,#0x14] .text:0003A804 LDR R3, [R1] .text:0003A808 LDRB R1, [R3],#1 .text:0003A80C ADD R2, R2, R0 .text:0003A810 STRB R1, [R2,#4] .text:0003A814 LDR R2, [R11,#var_5C] .text:0003A818 ADD R0, R0, #1 .text:0003A81C LDR R12, [R11,#var_58] .text:0003A820 CMP R3, R2 .text:0003A824 STR R3, [R12] .text:0003A828 BCC loc_3A7FC .text:0003A82C .text:0003A82C loc_3A82C ; CODE XREF: __gconv_transform_internal_ascii+728j .text:0003A82C LDR R2, [R6,#0x14] .text:0003A830 LDR R3, [R2] .text:0003A834 BIC R3, R3, #7 .text:0003A838 STR R3, [R2] .text:0003A83C LDR R1, [R6,#0x14] .text:0003A840 LDR R3, [R1] .text:0003A844 ORR R3, R3, R0 .text:0003A848 STR R3, [R1] .text:0003A84C .text:0003A84C loc_3A84C ; CODE XREF: __gconv_transform_internal_ascii+90j .text:0003A84C ; __gconv_transform_internal_ascii+D8j ... .text:0003A84C MOV R0, R8 .text:0003A850 .text:0003A850 locret_3A850 ; CODE XREF: __gconv_transform_internal_ascii+5A8j .text:0003A850 LDMDB R11, {R4-R11,SP,PC} .text:0003A850 ; End of function __gconv_transform_internal_ascii .text:0003A850 .text:0003A854 .text:0003A854 ; =============== S U B R O U T I N E ======================================= .text:0003A854 .text:0003A854 ; Attributes: bp-based frame .text:0003A854 .text:0003A854 EXPORT __gconv_transform_internal_utf8 .text:0003A854 __gconv_transform_internal_utf8 .text:0003A854 .text:0003A854 var_70 = -0x70 .text:0003A854 var_6C = -0x6C .text:0003A854 var_68 = -0x68 .text:0003A854 var_64 = -0x64 .text:0003A854 var_60 = -0x60 .text:0003A854 var_5C = -0x5C .text:0003A854 var_58 = -0x58 .text:0003A854 var_54 = -0x54 .text:0003A854 var_50 = -0x50 .text:0003A854 var_4C = -0x4C .text:0003A854 var_48 = -0x48 .text:0003A854 var_44 = -0x44 .text:0003A854 var_40 = -0x40 .text:0003A854 var_3C = -0x3C .text:0003A854 var_38 = -0x38 .text:0003A854 var_34 = -0x34 .text:0003A854 var_30 = -0x30 .text:0003A854 var_2C = -0x2C .text:0003A854 var_28 = -0x28 .text:0003A854 arg_0 = 4 .text:0003A854 arg_4 = 8 .text:0003A854 arg_8 = 0xC .text:0003A854 arg_C = 0x10 .text:0003A854 .text:0003A854 MOV R12, SP .text:0003A858 STMFD SP!, {R4-R12,LR,PC} .text:0003A85C SUB R11, R12, #4 .text:0003A860 MOV R10, R1 .text:0003A864 SUB SP, SP, #0x48 .text:0003A868 LDR R1, [R10,#8] .text:0003A86C MOV R4, #0 .text:0003A870 STR R4, [R11,#var_40] .text:0003A874 MOV R9, R2 .text:0003A878 ADD R0, R0, #0x38 .text:0003A87C STR R0, [R11,#var_38] .text:0003A880 MOV R7, R3 .text:0003A884 ADD R5, R10, #0x24 .text:0003A888 STR R5, [R11,#var_3C] .text:0003A88C TST R1, #1 .text:0003A890 LDREQ R6, [R0,#0x14] .text:0003A894 STREQ R6, [R11,#var_40] .text:0003A898 LDR R3, [R11,#arg_8] .text:0003A89C CMP R3, #0 .text:0003A8A0 BEQ loc_3A92C .text:0003A8A4 LDR R12, [R11,#arg_0] .text:0003A8A8 MOV R6, #0 .text:0003A8AC CMP R12, R6 .text:0003A8B0 BEQ loc_3A8C8 .text:0003A8B4 LDR R0, =aOutbufstartVoi ; "outbufstart == ((void *)0)" .text:0003A8B8 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003A8BC LDR R3, =a__gconv_tran_5 ; "__gconv_transform_internal_utf8" .text:0003A8C0 MOV R2, #0x130 .text:0003A8C4 BL __assert_fail .text:0003A8C8 ; --------------------------------------------------------------------------- .text:0003A8C8 .text:0003A8C8 loc_3A8C8 ; CODE XREF: __gconv_transform_internal_utf8+5Cj .text:0003A8C8 MOV R1, R6 .text:0003A8CC LDR R0, [R10,#0x14] .text:0003A8D0 MOV R2, #8 .text:0003A8D4 BL memset .text:0003A8D8 LDR R3, [R10,#8] .text:0003A8DC TST R3, #1 .text:0003A8E0 BNE loc_3B0E0 .text:0003A8E4 LDR R0, [R11,#var_40] .text:0003A8E8 BL _dl_mcount_wrapper_check .text:0003A8EC STR R6, [SP,#0x70+var_70] .text:0003A8F0 LDR LR, [R11,#arg_4] .text:0003A8F4 MOV R3, #1 .text:0003A8F8 STR R3, [SP,#0x70+var_68] .text:0003A8FC STR LR, [SP,#0x70+var_6C] .text:0003A900 LDR R1, [R11,#arg_C] .text:0003A904 STR R1, [SP,#0x70+var_64] .text:0003A908 LDR R0, [R11,#var_38] .text:0003A90C LDR R1, [R11,#var_3C] .text:0003A910 MOV R2, R6 .text:0003A914 LDR R4, [R11,#var_40] .text:0003A918 MOV R3, R2 .text:0003A91C MOV LR, PC .text:0003A920 MOV PC, R4 .text:0003A924 MOV R6, R0 .text:0003A928 B loc_3B0E0 .text:0003A92C ; --------------------------------------------------------------------------- .text:0003A92C .text:0003A92C loc_3A92C ; CODE XREF: __gconv_transform_internal_utf8+4Cj .text:0003A92C LDR R5, [R11,#arg_0] .text:0003A930 CMP R5, #0 .text:0003A934 LDREQ R3, [R10] .text:0003A938 LDRNE R6, [R11,#arg_0] .text:0003A93C LDRNE R3, [R6] .text:0003A940 STR R3, [R11,#var_30] .text:0003A944 SUB LR, R11, #-var_30 .text:0003A948 STR LR, [R11,#var_60] .text:0003A94C LDR R12, [R11,#arg_C] .text:0003A950 LDR R1, [R10,#4] .text:0003A954 CMP R12, #0 .text:0003A958 STR R1, [R11,#var_44] .text:0003A95C BEQ loc_3AC04 .text:0003A960 LDR R8, [R10,#0x14] .text:0003A964 LDR R3, [R8] .text:0003A968 ANDS R3, R3, #7 .text:0003A96C BEQ loc_3AC04 .text:0003A970 LDR R2, [R11,#arg_0] .text:0003A974 CMP R2, #0 .text:0003A978 BEQ loc_3A994 .text:0003A97C LDR R0, =aOutbufstartVoi ; "outbufstart == ((void *)0)" .text:0003A980 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003A984 MOV R2, #0x168 .text:0003A988 LDR R3, =a__gconv_tran_5 ; "__gconv_transform_internal_utf8" .text:0003A98C ADD R2, R2, #2 .text:0003A990 BL __assert_fail .text:0003A994 ; --------------------------------------------------------------------------- .text:0003A994 .text:0003A994 loc_3A994 ; CODE XREF: __gconv_transform_internal_utf8+124j .text:0003A994 LDR R4, [R11,#arg_0] .text:0003A998 STR R4, [R11,#var_4C] .text:0003A99C LDR R6, [R11,#var_30] .text:0003A9A0 MOV R0, R4 .text:0003A9A4 CMP R0, R3 .text:0003A9A8 LDR R4, [R9] .text:0003A9AC BCS loc_3A9D4 .text:0003A9B0 SUB R1, R11, #-var_2C .text:0003A9B4 .text:0003A9B4 loc_3A9B4 ; CODE XREF: __gconv_transform_internal_utf8+17Cj .text:0003A9B4 ADD R3, R8, R0 .text:0003A9B8 LDRB R2, [R3,#4] .text:0003A9BC STRB R2, [R1,R0] .text:0003A9C0 LDR R3, [R8] .text:0003A9C4 ADD R0, R0, #1 .text:0003A9C8 AND R3, R3, #7 .text:0003A9CC CMP R0, R3 .text:0003A9D0 BCC loc_3A9B4 .text:0003A9D4 .text:0003A9D4 loc_3A9D4 ; CODE XREF: __gconv_transform_internal_utf8+158j .text:0003A9D4 ADD R3, R4, #4 .text:0003A9D8 RSB R3, R0, R3 .text:0003A9DC CMP R3, R7 .text:0003A9E0 BLS loc_3AA10 .text:0003A9E4 CMP R4, R7 .text:0003A9E8 STR R7, [R9] .text:0003A9EC BCS loc_3AA08 .text:0003A9F0 .text:0003A9F0 loc_3A9F0 ; CODE XREF: __gconv_transform_internal_utf8+1B0j .text:0003A9F0 ADD R2, R8, R0 .text:0003A9F4 LDRB R3, [R4],#1 .text:0003A9F8 ADD R0, R0, #1 .text:0003A9FC CMP R4, R7 .text:0003AA00 STRB R3, [R2,#4] .text:0003AA04 BCC loc_3A9F0 .text:0003AA08 .text:0003AA08 loc_3AA08 ; CODE XREF: __gconv_transform_internal_utf8+198j .text:0003AA08 MOV R6, #7 .text:0003AA0C B loc_3ABEC .text:0003AA10 ; --------------------------------------------------------------------------- .text:0003AA10 .text:0003AA10 loc_3AA10 ; CODE XREF: __gconv_transform_internal_utf8+18Cj .text:0003AA10 LDR R5, [R11,#var_44] .text:0003AA14 CMP R6, R5 .text:0003AA18 BCC loc_3AA30 .text:0003AA1C MOV R6, #5 .text:0003AA20 B loc_3ABEC .text:0003AA24 ; --------------------------------------------------------------------------- .text:0003AA24 .text:0003AA24 loc_3AA24 ; CODE XREF: __gconv_transform_internal_utf8+27Cj .text:0003AA24 MOV R12, #5 .text:0003AA28 STR R12, [R11,#var_4C] .text:0003AA2C B loc_3AB14 .text:0003AA30 ; --------------------------------------------------------------------------- .text:0003AA30 .text:0003AA30 loc_3AA30 ; CODE XREF: __gconv_transform_internal_utf8+1C4j .text:0003AA30 SUB R2, R11, #-var_2C .text:0003AA34 MOV R1, R2 .text:0003AA38 .text:0003AA38 loc_3AA38 ; CODE XREF: __gconv_transform_internal_utf8+1F8j .text:0003AA38 LDRB R3, [R4],#1 .text:0003AA3C STRB R3, [R1,R0] .text:0003AA40 ADD R0, R0, #1 .text:0003AA44 CMP R0, #3 .text:0003AA48 CMPLS R4, R7 .text:0003AA4C BCC loc_3AA38 .text:0003AA50 MOV R4, R2 .text:0003AA54 ADD LR, R4, R0 .text:0003AA58 STR LR, [R11,#var_48] .text:0003AA5C LDR R12, [R11,#var_2C] .text:0003AA60 CMP R12, #0 .text:0003AA64 BGE loc_3AA80 .text:0003AA68 LDR R0, =aWc0x7fffffff ; "wc <= 0x7fffffff" .text:0003AA6C LDR R1, =a__IconvLoop_c ; "../iconv/loop.c" .text:0003AA70 MOV R2, #0x170 .text:0003AA74 LDR R3, =aInternal_utf8_ ; "internal_utf8_loop_single" .text:0003AA78 ADD R2, R2, #1 .text:0003AA7C BL __assert_fail .text:0003AA80 ; --------------------------------------------------------------------------- .text:0003AA80 .text:0003AA80 loc_3AA80 ; CODE XREF: __gconv_transform_internal_utf8+210j .text:0003AA80 CMP R12, #0x7F .text:0003AA84 ADDLS R4, R4, #4 .text:0003AA88 STRLSB R12, [R6],#1 .text:0003AA8C BLS loc_3AB14 .text:0003AA90 MOV R1, #2 .text:0003AA94 MOV LR, #0xB .text:0003AA98 MOV R3, 0xFFFFFFFF .text:0003AA9C ANDS R5, R12, R3,LSL LR .text:0003AAA0 BEQ loc_3AAC4 .text:0003AAA4 MOV R5, R3 .text:0003AAA8 .text:0003AAA8 loc_3AAA8 ; CODE XREF: __gconv_transform_internal_utf8+26Cj .text:0003AAA8 ADD LR, LR, #5 .text:0003AAAC ADD R1, R1, #1 .text:0003AAB0 CMP R1, #5 .text:0003AAB4 BHI loc_3AAC4 .text:0003AAB8 MOV R3, R5,LSL LR .text:0003AABC TST R12, R3 .text:0003AAC0 BNE loc_3AAA8 .text:0003AAC4 .text:0003AAC4 loc_3AAC4 ; CODE XREF: __gconv_transform_internal_utf8+24Cj .text:0003AAC4 ; __gconv_transform_internal_utf8+260j .text:0003AAC4 LDR LR, [R11,#var_44] .text:0003AAC8 ADD R3, R6, R1 .text:0003AACC CMP R3, LR .text:0003AAD0 BHI loc_3AA24 .text:0003AAD4 MOV LR, R6 .text:0003AAD8 MOV R6, R3 .text:0003AADC MOV R3, 0xFFFFFF00 .text:0003AAE0 MOV R3, R3,ASR R1 .text:0003AAE4 SUB R1, R1, #1 .text:0003AAE8 ADD R4, R2, #4 .text:0003AAEC STRB R3, [LR] .text:0003AAF0 .text:0003AAF0 loc_3AAF0 ; CODE XREF: __gconv_transform_internal_utf8+2B0j .text:0003AAF0 AND R3, R12, #0x3F .text:0003AAF4 MOV R12, R12,LSR#6 .text:0003AAF8 ORR R3, R3, #0x80 .text:0003AAFC STRB R3, [LR,R1] .text:0003AB00 SUBS R1, R1, #1 .text:0003AB04 BNE loc_3AAF0 .text:0003AB08 LDRB R3, [LR] .text:0003AB0C ORR R3, R3, R12 .text:0003AB10 STRB R3, [LR] .text:0003AB14 .text:0003AB14 loc_3AB14 ; CODE XREF: __gconv_transform_internal_utf8+1D8j .text:0003AB14 ; __gconv_transform_internal_utf8+238j .text:0003AB14 CMP R4, R2 .text:0003AB18 BEQ loc_3AB70 .text:0003AB1C LDR R3, [R8] .text:0003AB20 RSB R1, R2, R4 .text:0003AB24 AND R2, R3, #7 .text:0003AB28 CMP R1, R2 .text:0003AB2C BGT loc_3AB44 .text:0003AB30 LDR R0, =aInptrBytebufSt ; "inptr - bytebuf > (state->__count & 7)" .text:0003AB34 LDR R1, =a__IconvLoop_c ; "../iconv/loop.c" .text:0003AB38 LDR R3, =aInternal_utf8_ ; "internal_utf8_loop_single" .text:0003AB3C MOV R2, #0x17C .text:0003AB40 BL __assert_fail .text:0003AB44 ; --------------------------------------------------------------------------- .text:0003AB44 .text:0003AB44 loc_3AB44 ; CODE XREF: __gconv_transform_internal_utf8+2D8j .text:0003AB44 STR R6, [R11,#var_30] .text:0003AB48 LDR R3, [R9] .text:0003AB4C RSB R2, R2, R1 .text:0003AB50 ADD R3, R3, R2 .text:0003AB54 STR R3, [R9] .text:0003AB58 LDR R2, [R8] .text:0003AB5C MOV R1, #0 .text:0003AB60 STR R1, [R11,#var_4C] .text:0003AB64 BIC R2, R2, #7 .text:0003AB68 STR R2, [R8] .text:0003AB6C B loc_3ABE8 .text:0003AB70 ; --------------------------------------------------------------------------- .text:0003AB70 .text:0003AB70 loc_3AB70 ; CODE XREF: __gconv_transform_internal_utf8+2C4j .text:0003AB70 LDR R2, [R11,#var_4C] .text:0003AB74 CMP R2, #7 .text:0003AB78 BNE loc_3ABE8 .text:0003AB7C LDR R3, [R11,#var_48] .text:0003AB80 SUB R5, R11, #-var_28 .text:0003AB84 CMP R3, R5 .text:0003AB88 BNE loc_3ABA4 .text:0003AB8C LDR R0, =aInendBytebuf4 ; "inend != &bytebuf[4]" .text:0003AB90 LDR R1, =a__IconvLoop_c ; "../iconv/loop.c" .text:0003AB94 MOV R2, #0x188 .text:0003AB98 LDR R3, =aInternal_utf8_ ; "internal_utf8_loop_single" .text:0003AB9C ADD R2, R2, #2 .text:0003ABA0 BL __assert_fail .text:0003ABA4 ; --------------------------------------------------------------------------- .text:0003ABA4 .text:0003ABA4 loc_3ABA4 ; CODE XREF: __gconv_transform_internal_utf8+334j .text:0003ABA4 LDR R6, [R11,#var_48] .text:0003ABA8 LDR R3, [R8] .text:0003ABAC LDR R2, [R9] .text:0003ABB0 CMP R4, R6 .text:0003ABB4 RSB R1, R4, R6 .text:0003ABB8 AND R3, R3, #7 .text:0003ABBC RSB R1, R3, R1 .text:0003ABC0 ADD R2, R2, R1 .text:0003ABC4 STR R2, [R9] .text:0003ABC8 BCS loc_3ABE8 .text:0003ABCC .text:0003ABCC loc_3ABCC ; CODE XREF: __gconv_transform_internal_utf8+390j .text:0003ABCC LDRB R3, [R4],#1 .text:0003ABD0 ADD R2, R8, R0 .text:0003ABD4 LDR R12, [R11,#var_48] .text:0003ABD8 ADD R0, R0, #1 .text:0003ABDC CMP R4, R12 .text:0003ABE0 STRB R3, [R2,#4] .text:0003ABE4 BCC loc_3ABCC .text:0003ABE8 .text:0003ABE8 loc_3ABE8 ; CODE XREF: __gconv_transform_internal_utf8+318j .text:0003ABE8 ; __gconv_transform_internal_utf8+324j ... .text:0003ABE8 LDR R6, [R11,#var_4C] .text:0003ABEC .text:0003ABEC loc_3ABEC ; CODE XREF: __gconv_transform_internal_utf8+1B8j .text:0003ABEC ; __gconv_transform_internal_utf8+1CCj .text:0003ABEC CMP R6, #0 .text:0003ABF0 BEQ loc_3AC04 .text:0003ABF4 B loc_3B0E0 .text:0003ABF8 ; --------------------------------------------------------------------------- .text:0003ABF8 .text:0003ABF8 loc_3ABF8 ; CODE XREF: __gconv_transform_internal_utf8+5B8j .text:0003ABF8 LDR R3, [R11,#var_30] .text:0003ABFC STR R3, [R10] .text:0003AC00 B loc_3B028 .text:0003AC04 ; --------------------------------------------------------------------------- .text:0003AC04 .text:0003AC04 loc_3AC04 ; CODE XREF: __gconv_transform_internal_utf8+108j .text:0003AC04 ; __gconv_transform_internal_utf8+118j ... .text:0003AC04 MOV R1, #0x80000000 .text:0003AC08 MOV R1, R1,ASR#20 .text:0003AC0C STR R1, [R11,#var_5C] .text:0003AC10 .text:0003AC10 loc_3AC10 ; CODE XREF: __gconv_transform_internal_utf8+7D0j .text:0003AC10 LDR R5, [R9] .text:0003AC14 MOV R2, #4 .text:0003AC18 STR R2, [R11,#var_50] .text:0003AC1C LDR R8, [R11,#var_30] .text:0003AC20 MOV R1, R5 .text:0003AC24 MOV R12, R8 .text:0003AC28 CMP R5, R7 .text:0003AC2C BEQ loc_3AD54 .text:0003AC30 LDR R3, [R11,#var_44] .text:0003AC34 CMP R8, R3 .text:0003AC38 BCS loc_3AD80 .text:0003AC3C ADD R3, R5, R2 .text:0003AC40 CMP R3, R7 .text:0003AC44 MOV R4, R3 .text:0003AC48 MOVHI R4, #7 .text:0003AC4C STRHI R4, [R11,#var_50] .text:0003AC50 BHI loc_3AD54 .text:0003AC54 .text:0003AC54 loc_3AC54 ; CODE XREF: __gconv_transform_internal_utf8+4F4j .text:0003AC54 LDR R2, [R1] .text:0003AC58 CMP R2, #0 .text:0003AC5C BGE loc_3AC9C .text:0003AC60 LDR R0, =aWc0x7fffffff ; "wc <= 0x7fffffff" .text:0003AC64 LDR R1, =a__IconvLoop_c ; "../iconv/loop.c" .text:0003AC68 MOV R2, #0x108 .text:0003AC6C LDR R3, =aInternal_utf_0 ; "internal_utf8_loop" .text:0003AC70 ADD R2, R2, #3 .text:0003AC74 BL __assert_fail .text:0003AC74 ; --------------------------------------------------------------------------- .text:0003AC78 off_3AC78 DCD aOutbufstartVoi ; DATA XREF: __gconv_transform_internal_utf8+60r .text:0003AC78 ; __gconv_transform_internal_utf8+128r .text:0003AC78 ; "outbufstart == ((void *)0)" .text:0003AC7C off_3AC7C DCD a__IconvSkeleto ; DATA XREF: __gconv_transform_internal_utf8+64r .text:0003AC7C ; __gconv_transform_internal_utf8+12Cr .text:0003AC7C ; "../iconv/skeleton.c" .text:0003AC80 off_3AC80 DCD a__gconv_tran_5 ; DATA XREF: __gconv_transform_internal_utf8+68r .text:0003AC80 ; __gconv_transform_internal_utf8+134r .text:0003AC80 ; "__gconv_transform_internal_utf8" .text:0003AC84 off_3AC84 DCD aWc0x7fffffff ; DATA XREF: __gconv_transform_internal_utf8+214r .text:0003AC84 ; __gconv_transform_internal_utf8+40Cr .text:0003AC84 ; "wc <= 0x7fffffff" .text:0003AC88 off_3AC88 DCD a__IconvLoop_c ; DATA XREF: __gconv_transform_internal_utf8+218r .text:0003AC88 ; __gconv_transform_internal_utf8+2E0r ... .text:0003AC88 ; "../iconv/loop.c" .text:0003AC8C off_3AC8C DCD aInternal_utf8_ ; DATA XREF: __gconv_transform_internal_utf8+220r .text:0003AC8C ; __gconv_transform_internal_utf8+2E4r ... .text:0003AC8C ; "internal_utf8_loop_single" .text:0003AC90 off_3AC90 DCD aInptrBytebufSt ; DATA XREF: __gconv_transform_internal_utf8+2DCr .text:0003AC90 ; "inptr - bytebuf > (state->__count & 7)" .text:0003AC94 off_3AC94 DCD aInendBytebuf4 ; DATA XREF: __gconv_transform_internal_utf8+338r .text:0003AC94 ; "inend != &bytebuf[4]" .text:0003AC98 off_3AC98 DCD aInternal_utf_0 ; DATA XREF: __gconv_transform_internal_utf8+418r .text:0003AC98 ; "internal_utf8_loop" .text:0003AC9C ; --------------------------------------------------------------------------- .text:0003AC9C .text:0003AC9C loc_3AC9C ; CODE XREF: __gconv_transform_internal_utf8+408j .text:0003AC9C CMP R2, #0x7F .text:0003ACA0 STRLSB R2, [R12],#1 .text:0003ACA4 BLS loc_3AD24 .text:0003ACA8 LDR R6, [R11,#var_5C] .text:0003ACAC MOV R0, #2 .text:0003ACB0 TST R2, R6 .text:0003ACB4 BEQ loc_3ACD8 .text:0003ACB8 MOV LR, 0xFFFFFFFF .text:0003ACBC MOV R3, #0xB .text:0003ACC0 .text:0003ACC0 loc_3ACC0 ; CODE XREF: __gconv_transform_internal_utf8+480j .text:0003ACC0 ADD R3, R3, #5 .text:0003ACC4 ADD R0, R0, #1 .text:0003ACC8 CMP R0, #5 .text:0003ACCC BHI loc_3ACD8 .text:0003ACD0 ANDS R6, R2, LR,LSL R3 .text:0003ACD4 BNE loc_3ACC0 .text:0003ACD8 .text:0003ACD8 loc_3ACD8 ; CODE XREF: __gconv_transform_internal_utf8+460j .text:0003ACD8 ; __gconv_transform_internal_utf8+478j .text:0003ACD8 LDR LR, [R11,#var_44] .text:0003ACDC ADD R3, R12, R0 .text:0003ACE0 CMP R3, LR .text:0003ACE4 BHI loc_3AD8C .text:0003ACE8 MOV R1, R12 .text:0003ACEC MOV R12, R3 .text:0003ACF0 MOV R3, 0xFFFFFF00 .text:0003ACF4 MOV R3, R3,ASR R0 .text:0003ACF8 SUB R0, R0, #1 .text:0003ACFC STRB R3, [R1] .text:0003AD00 .text:0003AD00 loc_3AD00 ; CODE XREF: __gconv_transform_internal_utf8+4C0j .text:0003AD00 AND R3, R2, #0x3F .text:0003AD04 MOV R2, R2,LSR#6 .text:0003AD08 ORR R3, R3, #0x80 .text:0003AD0C STRB R3, [R1,R0] .text:0003AD10 SUBS R0, R0, #1 .text:0003AD14 BNE loc_3AD00 .text:0003AD18 LDRB R3, [R1] .text:0003AD1C ORR R3, R3, R2 .text:0003AD20 STRB R3, [R1] .text:0003AD24 .text:0003AD24 loc_3AD24 ; CODE XREF: __gconv_transform_internal_utf8+450j .text:0003AD24 MOV R1, R4 .text:0003AD28 CMP R1, R7 .text:0003AD2C BEQ loc_3AD54 .text:0003AD30 LDR R2, [R11,#var_44] .text:0003AD34 CMP R12, R2 .text:0003AD38 BCS loc_3AD80 .text:0003AD3C ADD R3, R1, #4 .text:0003AD40 CMP R3, R7 .text:0003AD44 MOV R4, R3 .text:0003AD48 BLS loc_3AC54 .text:0003AD4C MOV R3, #7 .text:0003AD50 STR R3, [R11,#var_50] .text:0003AD54 .text:0003AD54 loc_3AD54 ; CODE XREF: __gconv_transform_internal_utf8+3D8j .text:0003AD54 ; __gconv_transform_internal_utf8+3FCj ... .text:0003AD54 STR R1, [R9] .text:0003AD58 LDR R4, [R11,#var_60] .text:0003AD5C LDR R6, [R11,#var_50] .text:0003AD60 STR R12, [R4] .text:0003AD64 LDR R12, [R11,#arg_0] .text:0003AD68 CMP R12, #0 .text:0003AD6C BEQ loc_3ADB0 .text:0003AD70 LDR R3, [R11,#var_30] .text:0003AD74 MOV R0, R6 .text:0003AD78 STR R3, [R12] .text:0003AD7C B locret_3B0E4 .text:0003AD80 ; --------------------------------------------------------------------------- .text:0003AD80 .text:0003AD80 loc_3AD80 ; CODE XREF: __gconv_transform_internal_utf8+3E4j .text:0003AD80 ; __gconv_transform_internal_utf8+4E4j .text:0003AD80 MOV LR, #5 .text:0003AD84 STR LR, [R11,#var_50] .text:0003AD88 B loc_3AD54 .text:0003AD8C ; --------------------------------------------------------------------------- .text:0003AD8C .text:0003AD8C loc_3AD8C ; CODE XREF: __gconv_transform_internal_utf8+490j .text:0003AD8C MOV R2, #5 .text:0003AD90 STR R2, [R11,#var_50] .text:0003AD94 B loc_3AD54 .text:0003AD98 ; --------------------------------------------------------------------------- .text:0003AD98 .text:0003AD98 loc_3AD98 ; CODE XREF: __gconv_transform_internal_utf8+6D8j .text:0003AD98 MOV R3, #5 .text:0003AD9C STR R3, [R11,#var_58] .text:0003ADA0 B loc_3AF98 .text:0003ADA4 ; --------------------------------------------------------------------------- .text:0003ADA4 .text:0003ADA4 loc_3ADA4 ; CODE XREF: __gconv_transform_internal_utf8+658j .text:0003ADA4 ; __gconv_transform_internal_utf8+728j .text:0003ADA4 MOV R4, #5 .text:0003ADA8 STR R4, [R11,#var_58] .text:0003ADAC B loc_3AF98 .text:0003ADB0 ; --------------------------------------------------------------------------- .text:0003ADB0 .text:0003ADB0 loc_3ADB0 ; CODE XREF: __gconv_transform_internal_utf8+518j .text:0003ADB0 LDR R4, [R10,#0x20] .text:0003ADB4 CMP R4, #0 .text:0003ADB8 BEQ loc_3ADF8 .text:0003ADBC .text:0003ADBC loc_3ADBC ; CODE XREF: __gconv_transform_internal_utf8+5A0j .text:0003ADBC LDR R0, [R4,#4] .text:0003ADC0 CMP R0, #0 .text:0003ADC4 BEQ loc_3ADEC .text:0003ADC8 BL _dl_mcount_wrapper_check .text:0003ADCC LDR R3, [R11,#var_30] .text:0003ADD0 LDR R0, [R4,#0xC] .text:0003ADD4 STR R3, [SP,#0x70+var_70] .text:0003ADD8 MOV R1, R5 .text:0003ADDC LDR R2, [R9] .text:0003ADE0 MOV R3, R8 .text:0003ADE4 MOV LR, PC .text:0003ADE8 LDR PC, [R4,#4] .text:0003ADEC .text:0003ADEC loc_3ADEC ; CODE XREF: __gconv_transform_internal_utf8+570j .text:0003ADEC LDR R4, [R4,#0x10] .text:0003ADF0 CMP R4, #0 .text:0003ADF4 BNE loc_3ADBC .text:0003ADF8 .text:0003ADF8 loc_3ADF8 ; CODE XREF: __gconv_transform_internal_utf8+564j .text:0003ADF8 ADD R2, R10, #8 .text:0003ADFC LDMIA R2, {R2,R3} .text:0003AE00 ADD R3, R3, #1 .text:0003AE04 ANDS R4, R2, #1 .text:0003AE08 STR R3, [R10,#0xC] .text:0003AE0C BNE loc_3ABF8 .text:0003AE10 LDR R3, [R11,#var_30] .text:0003AE14 CMP R3, R8 .text:0003AE18 BLS loc_3B018 .text:0003AE1C LDR R3, [R10] .text:0003AE20 STR R3, [R11,#var_34] .text:0003AE24 LDR R0, [R11,#var_40] .text:0003AE28 BL _dl_mcount_wrapper_check .text:0003AE2C STR R4, [SP,#0x70+var_70] .text:0003AE30 LDR R12, [R11,#arg_4] .text:0003AE34 STR R4, [SP,#0x70+var_68] .text:0003AE38 STR R12, [SP,#0x70+var_6C] .text:0003AE3C LDR LR, [R11,#arg_C] .text:0003AE40 STR LR, [SP,#0x70+var_64] .text:0003AE44 LDR R0, [R11,#var_38] .text:0003AE48 LDR R1, [R11,#var_3C] .text:0003AE4C LDR R3, [R11,#var_30] .text:0003AE50 LDR R12, [R11,#var_40] .text:0003AE54 SUB R2, R11, #-var_34 .text:0003AE58 MOV LR, PC .text:0003AE5C MOV PC, R12 .text:0003AE60 STR R0, [R11,#var_54] .text:0003AE64 CMP R0, #4 .text:0003AE68 BEQ loc_3B004 .text:0003AE6C SUB R2, R11, #-var_34 .text:0003AE70 LDMIA R2, {R2,R3} .text:0003AE74 CMP R2, R3 .text:0003AE78 BEQ loc_3AFFC .text:0003AE7C MOV LR, #4 .text:0003AE80 MOV R1, R5 .text:0003AE84 STR LR, [R11,#var_58] .text:0003AE88 MOV LR, R8 .text:0003AE8C MOV R6, #0x80000000 .text:0003AE90 MOV R6, R6,ASR#20 .text:0003AE94 STR R5, [R9] .text:0003AE98 CMP R1, R7 .text:0003AE9C MOV R5, R2 .text:0003AEA0 STR R8, [R11,#var_30] .text:0003AEA4 BEQ loc_3AF98 .text:0003AEA8 CMP R8, R5 .text:0003AEAC BCS loc_3ADA4 .text:0003AEB0 ADD R3, R1, #4 .text:0003AEB4 CMP R3, R7 .text:0003AEB8 MOV R0, R3 .text:0003AEBC MOVHI R2, #7 .text:0003AEC0 STRHI R2, [R11,#var_58] .text:0003AEC4 BHI loc_3AF98 .text:0003AEC8 .text:0003AEC8 loc_3AEC8 ; CODE XREF: __gconv_transform_internal_utf8+738j .text:0003AEC8 LDR R2, [R1] .text:0003AECC CMP R2, #0 .text:0003AED0 BGE loc_3AEEC .text:0003AED4 LDR R0, =aWc0x7fffffff ; "wc <= 0x7fffffff" .text:0003AED8 LDR R1, =a__IconvLoop_c ; "../iconv/loop.c" .text:0003AEDC MOV R2, #0x108 .text:0003AEE0 LDR R3, =aInternal_utf_0 ; "internal_utf8_loop" .text:0003AEE4 ADD R2, R2, #3 .text:0003AEE8 BL __assert_fail .text:0003AEEC ; --------------------------------------------------------------------------- .text:0003AEEC .text:0003AEEC loc_3AEEC ; CODE XREF: __gconv_transform_internal_utf8+67Cj .text:0003AEEC CMP R2, #0x7F .text:0003AEF0 STRLSB R2, [LR],#1 .text:0003AEF4 BLS loc_3AF6C .text:0003AEF8 MOV R12, #2 .text:0003AEFC TST R2, R6 .text:0003AF00 BEQ loc_3AF24 .text:0003AF04 MOV R3, #0xB .text:0003AF08 .text:0003AF08 loc_3AF08 ; CODE XREF: __gconv_transform_internal_utf8+6CCj .text:0003AF08 ADD R3, R3, #5 .text:0003AF0C ADD R12, R12, #1 .text:0003AF10 CMP R12, #5 .text:0003AF14 BHI loc_3AF24 .text:0003AF18 MOV R4, 0xFFFFFFFF .text:0003AF1C ANDS R4, R2, R4,LSL R3 .text:0003AF20 BNE loc_3AF08 .text:0003AF24 .text:0003AF24 loc_3AF24 ; CODE XREF: __gconv_transform_internal_utf8+6ACj .text:0003AF24 ; __gconv_transform_internal_utf8+6C0j .text:0003AF24 ADD R3, LR, R12 .text:0003AF28 CMP R3, R5 .text:0003AF2C BHI loc_3AD98 .text:0003AF30 MOV R1, LR .text:0003AF34 MOV LR, R3 .text:0003AF38 MOV R3, 0xFFFFFF00 .text:0003AF3C MOV R3, R3,ASR R12 .text:0003AF40 SUB R12, R12, #1 .text:0003AF44 STRB R3, [R1] .text:0003AF48 .text:0003AF48 loc_3AF48 ; CODE XREF: __gconv_transform_internal_utf8+708j .text:0003AF48 AND R3, R2, #0x3F .text:0003AF4C MOV R2, R2,LSR#6 .text:0003AF50 ORR R3, R3, #0x80 .text:0003AF54 STRB R3, [R1,R12] .text:0003AF58 SUBS R12, R12, #1 .text:0003AF5C BNE loc_3AF48 .text:0003AF60 LDRB R3, [R1] .text:0003AF64 ORR R3, R3, R2 .text:0003AF68 STRB R3, [R1] .text:0003AF6C .text:0003AF6C loc_3AF6C ; CODE XREF: __gconv_transform_internal_utf8+6A0j .text:0003AF6C MOV R1, R0 .text:0003AF70 CMP R1, R7 .text:0003AF74 BEQ loc_3AF98 .text:0003AF78 CMP LR, R5 .text:0003AF7C BCS loc_3ADA4 .text:0003AF80 ADD R3, R1, #4 .text:0003AF84 CMP R3, R7 .text:0003AF88 MOV R0, R3 .text:0003AF8C BLS loc_3AEC8 .text:0003AF90 MOV R5, #7 .text:0003AF94 STR R5, [R11,#var_58] .text:0003AF98 .text:0003AF98 loc_3AF98 ; CODE XREF: __gconv_transform_internal_utf8+54Cj .text:0003AF98 ; __gconv_transform_internal_utf8+558j ... .text:0003AF98 STR R1, [R9] .text:0003AF9C LDR R6, [R11,#var_60] .text:0003AFA0 STR LR, [R6] .text:0003AFA4 LDR R2, [R11,#var_30] .text:0003AFA8 LDR R3, [R11,#var_34] .text:0003AFAC CMP R2, R3 .text:0003AFB0 BEQ loc_3AFCC .text:0003AFB4 LDR R0, =aOutbufOuterr ; "outbuf == outerr" .text:0003AFB8 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003AFBC MOV R2, #0x220 .text:0003AFC0 LDR R3, =a__gconv_tran_5 ; "__gconv_transform_internal_utf8" .text:0003AFC4 ADD R2, R2, #3 .text:0003AFC8 BL __assert_fail .text:0003AFCC ; --------------------------------------------------------------------------- .text:0003AFCC .text:0003AFCC loc_3AFCC ; CODE XREF: __gconv_transform_internal_utf8+75Cj .text:0003AFCC LDR R12, [R11,#var_58] .text:0003AFD0 CMP R12, #5 .text:0003AFD4 BEQ loc_3AFEC .text:0003AFD8 LDR R0, =aNstatus__gconv ; "nstatus == __GCONV_FULL_OUTPUT" .text:0003AFDC LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003AFE0 LDR R3, =a__gconv_tran_5 ; "__gconv_transform_internal_utf8" .text:0003AFE4 MOV R2, #0x224 .text:0003AFE8 BL __assert_fail .text:0003AFEC ; --------------------------------------------------------------------------- .text:0003AFEC .text:0003AFEC loc_3AFEC ; CODE XREF: __gconv_transform_internal_utf8+780j .text:0003AFEC CMP R2, R8 .text:0003AFF0 LDREQ R3, [R10,#0xC] .text:0003AFF4 SUBEQ R3, R3, #1 .text:0003AFF8 STREQ R3, [R10,#0xC] .text:0003AFFC .text:0003AFFC loc_3AFFC ; CODE XREF: __gconv_transform_internal_utf8+624j .text:0003AFFC LDR R6, [R11,#var_54] .text:0003B000 B loc_3B018 .text:0003B004 ; --------------------------------------------------------------------------- .text:0003B004 .text:0003B004 loc_3B004 ; CODE XREF: __gconv_transform_internal_utf8+614j .text:0003B004 LDR LR, [R11,#var_50] .text:0003B008 CMP LR, #5 .text:0003B00C LDREQ R3, [R10] .text:0003B010 MOVEQ R6, R4 .text:0003B014 STREQ R3, [R11,#var_30] .text:0003B018 .text:0003B018 loc_3B018 ; CODE XREF: __gconv_transform_internal_utf8+5C4j .text:0003B018 ; __gconv_transform_internal_utf8+7ACj .text:0003B018 CMP R6, #0 .text:0003B01C LDREQ R3, [R10] .text:0003B020 STREQ R3, [R11,#var_30] .text:0003B024 BEQ loc_3AC10 .text:0003B028 .text:0003B028 loc_3B028 ; CODE XREF: __gconv_transform_internal_utf8+3ACj .text:0003B028 LDR R1, [R11,#arg_C] .text:0003B02C CMP R6, #7 .text:0003B030 MOVNE R3, #0 .text:0003B034 MOVEQ R3, #1 .text:0003B038 CMP R1, #0 .text:0003B03C MOVEQ R3, #0 .text:0003B040 CMP R3, #0 .text:0003B044 BEQ loc_3B0E0 .text:0003B048 LDR R2, [R9] .text:0003B04C RSB R3, R2, R7 .text:0003B050 CMP R3, #3 .text:0003B054 BLE loc_3B090 .text:0003B058 LDR R0, =aInendInptrp4 ; "inend - *inptrp < 4" .text:0003B05C LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003B060 MOV R2, #0x254 .text:0003B064 LDR R3, =a__gconv_tran_5 ; "__gconv_transform_internal_utf8" .text:0003B068 ADD R2, R2, #3 .text:0003B06C BL __assert_fail .text:0003B06C ; --------------------------------------------------------------------------- .text:0003B070 off_3B070 DCD aWc0x7fffffff ; DATA XREF: __gconv_transform_internal_utf8+680r .text:0003B070 ; "wc <= 0x7fffffff" .text:0003B074 off_3B074 DCD a__IconvLoop_c ; DATA XREF: __gconv_transform_internal_utf8+684r .text:0003B074 ; "../iconv/loop.c" .text:0003B078 off_3B078 DCD aInternal_utf_0 ; DATA XREF: __gconv_transform_internal_utf8+68Cr .text:0003B078 ; "internal_utf8_loop" .text:0003B07C off_3B07C DCD aOutbufOuterr ; DATA XREF: __gconv_transform_internal_utf8+760r .text:0003B07C ; "outbuf == outerr" .text:0003B080 off_3B080 DCD a__IconvSkeleto ; DATA XREF: __gconv_transform_internal_utf8+764r .text:0003B080 ; __gconv_transform_internal_utf8+788r ... .text:0003B080 ; "../iconv/skeleton.c" .text:0003B084 off_3B084 DCD a__gconv_tran_5 ; DATA XREF: __gconv_transform_internal_utf8+76Cr .text:0003B084 ; __gconv_transform_internal_utf8+78Cr ... .text:0003B084 ; "__gconv_transform_internal_utf8" .text:0003B088 off_3B088 DCD aNstatus__gconv ; DATA XREF: __gconv_transform_internal_utf8+784r .text:0003B088 ; "nstatus == __GCONV_FULL_OUTPUT" .text:0003B08C off_3B08C DCD aInendInptrp4 ; DATA XREF: __gconv_transform_internal_utf8+804r .text:0003B08C ; "inend - *inptrp < 4" .text:0003B090 ; --------------------------------------------------------------------------- .text:0003B090 .text:0003B090 loc_3B090 ; CODE XREF: __gconv_transform_internal_utf8+800j .text:0003B090 MOV R0, #0 .text:0003B094 CMP R2, R7 .text:0003B098 BCS loc_3B0C0 .text:0003B09C .text:0003B09C loc_3B09C ; CODE XREF: __gconv_transform_internal_utf8+868j .text:0003B09C LDR R3, [R9] .text:0003B0A0 LDR R2, [R10,#0x14] .text:0003B0A4 LDRB R1, [R3],#1 .text:0003B0A8 ADD R2, R2, R0 .text:0003B0AC STRB R1, [R2,#4] .text:0003B0B0 ADD R0, R0, #1 .text:0003B0B4 CMP R3, R7 .text:0003B0B8 STR R3, [R9] .text:0003B0BC BCC loc_3B09C .text:0003B0C0 .text:0003B0C0 loc_3B0C0 ; CODE XREF: __gconv_transform_internal_utf8+844j .text:0003B0C0 LDR R2, [R10,#0x14] .text:0003B0C4 LDR R3, [R2] .text:0003B0C8 BIC R3, R3, #7 .text:0003B0CC STR R3, [R2] .text:0003B0D0 LDR R1, [R10,#0x14] .text:0003B0D4 LDR R3, [R1] .text:0003B0D8 ORR R3, R3, R0 .text:0003B0DC STR R3, [R1] .text:0003B0E0 .text:0003B0E0 loc_3B0E0 ; CODE XREF: __gconv_transform_internal_utf8+8Cj .text:0003B0E0 ; __gconv_transform_internal_utf8+D4j ... .text:0003B0E0 MOV R0, R6 .text:0003B0E4 .text:0003B0E4 locret_3B0E4 ; CODE XREF: __gconv_transform_internal_utf8+528j .text:0003B0E4 LDMDB R11, {R4-R11,SP,PC} .text:0003B0E4 ; End of function __gconv_transform_internal_utf8 .text:0003B0E4 .text:0003B0E8 .text:0003B0E8 ; =============== S U B R O U T I N E ======================================= .text:0003B0E8 .text:0003B0E8 ; Attributes: bp-based frame .text:0003B0E8 .text:0003B0E8 EXPORT __gconv_transform_utf8_internal .text:0003B0E8 __gconv_transform_utf8_internal .text:0003B0E8 .text:0003B0E8 var_80 = -0x80 .text:0003B0E8 var_74 = -0x74 .text:0003B0E8 var_70 = -0x70 .text:0003B0E8 var_6C = -0x6C .text:0003B0E8 var_68 = -0x68 .text:0003B0E8 var_64 = -0x64 .text:0003B0E8 var_60 = -0x60 .text:0003B0E8 var_5C = -0x5C .text:0003B0E8 var_58 = -0x58 .text:0003B0E8 var_54 = -0x54 .text:0003B0E8 var_50 = -0x50 .text:0003B0E8 var_4C = -0x4C .text:0003B0E8 var_48 = -0x48 .text:0003B0E8 var_44 = -0x44 .text:0003B0E8 var_40 = -0x40 .text:0003B0E8 var_3C = -0x3C .text:0003B0E8 var_38 = -0x38 .text:0003B0E8 var_34 = -0x34 .text:0003B0E8 var_30 = -0x30 .text:0003B0E8 var_2A = -0x2A .text:0003B0E8 arg_0 = 4 .text:0003B0E8 arg_4 = 8 .text:0003B0E8 arg_8 = 0xC .text:0003B0E8 arg_C = 0x10 .text:0003B0E8 .text:0003B0E8 MOV R12, SP .text:0003B0EC STMFD SP!, {R4-R12,LR,PC} .text:0003B0F0 SUB R11, R12, #4 .text:0003B0F4 SUB SP, SP, #0x58 .text:0003B0F8 STR R1, [R11,#var_44] .text:0003B0FC LDR R1, [R1,#8] .text:0003B100 MOV R12, #0 .text:0003B104 STR R12, [R11,#var_54] .text:0003B108 ADD R0, R0, #0x38 .text:0003B10C STR R0, [R11,#var_4C] .text:0003B110 LDR R0, [R11,#var_44] .text:0003B114 MOV R7, R3 .text:0003B118 STR R2, [R11,#var_48] .text:0003B11C TST R1, #1 .text:0003B120 ADD R0, R0, #0x24 .text:0003B124 STR R0, [R11,#var_50] .text:0003B128 LDREQ R1, [R11,#var_4C] .text:0003B12C LDREQ R1, [R1,#0x14] .text:0003B130 STREQ R1, [R11,#var_54] .text:0003B134 LDR R3, [R11,#arg_8] .text:0003B138 CMP R3, #0 .text:0003B13C BEQ loc_3B1CC .text:0003B140 LDR R2, [R11,#arg_0] .text:0003B144 MOV R5, #0 .text:0003B148 CMP R2, R5 .text:0003B14C BEQ loc_3B164 .text:0003B150 LDR R0, =aOutbufstartVoi ; "outbufstart == ((void *)0)" .text:0003B154 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003B158 LDR R3, =a__gconv_tran_6 ; "__gconv_transform_utf8_internal" .text:0003B15C MOV R2, #0x130 .text:0003B160 BL __assert_fail .text:0003B164 ; --------------------------------------------------------------------------- .text:0003B164 .text:0003B164 loc_3B164 ; CODE XREF: __gconv_transform_utf8_internal+64j .text:0003B164 LDR R3, [R11,#var_44] .text:0003B168 MOV R1, R5 .text:0003B16C LDR R0, [R3,#0x14] .text:0003B170 MOV R2, #8 .text:0003B174 BL memset .text:0003B178 LDR R12, [R11,#var_44] .text:0003B17C LDR R3, [R12,#8] .text:0003B180 TST R3, #1 .text:0003B184 BNE loc_3BEB0 .text:0003B188 LDR R0, [R11,#var_54] .text:0003B18C BL _dl_mcount_wrapper_check .text:0003B190 STR R5, [SP,#0x80+var_80] .text:0003B194 LDR R0, [R11,#arg_4] .text:0003B198 MOV R3, #1 .text:0003B19C STMFA SP, {R0,R3} .text:0003B1A0 LDR R1, [R11,#arg_C] .text:0003B1A4 STR R1, [SP,#0x80+var_74] .text:0003B1A8 LDR R0, [R11,#var_4C] .text:0003B1AC LDR R1, [R11,#var_50] .text:0003B1B0 MOV R2, R5 .text:0003B1B4 LDR R12, [R11,#var_54] .text:0003B1B8 MOV R3, R2 .text:0003B1BC MOV LR, PC .text:0003B1C0 MOV PC, R12 .text:0003B1C4 MOV R5, R0 .text:0003B1C8 B loc_3BEB0 .text:0003B1CC ; --------------------------------------------------------------------------- .text:0003B1CC .text:0003B1CC loc_3B1CC ; CODE XREF: __gconv_transform_utf8_internal+54j .text:0003B1CC LDR R0, [R11,#arg_0] .text:0003B1D0 CMP R0, #0 .text:0003B1D4 LDREQ R1, [R11,#var_44] .text:0003B1D8 LDREQ R3, [R1] .text:0003B1DC LDRNE R2, [R11,#arg_0] .text:0003B1E0 LDRNE R3, [R2] .text:0003B1E4 STR R3, [R11,#var_38] .text:0003B1E8 MOV R3, #0 .text:0003B1EC STR R3, [R11,#var_34] .text:0003B1F0 SUB R0, R11, #-var_38 .text:0003B1F4 STR R0, [R11,#var_6C] .text:0003B1F8 LDR R3, [R11,#arg_4] .text:0003B1FC LDR R12, [R11,#arg_C] .text:0003B200 LDR R1, [R11,#var_44] .text:0003B204 CMP R3, #0 .text:0003B208 SUBNE R6, R11, #-var_34 .text:0003B20C MOVEQ R6, #0 .text:0003B210 LDR R1, [R1,#4] .text:0003B214 CMP R12, #0 .text:0003B218 STR R1, [R11,#var_58] .text:0003B21C BEQ loc_3B7D4 .text:0003B220 LDR R2, [R11,#var_44] .text:0003B224 LDR R10, [R2,#0x14] .text:0003B228 LDR R2, [R10] .text:0003B22C TST R2, #7 .text:0003B230 BEQ loc_3B7D4 .text:0003B234 LDR R3, [R11,#arg_0] .text:0003B238 CMP R3, #0 .text:0003B23C BEQ loc_3B258 .text:0003B240 LDR R0, =aOutbufstartVoi ; "outbufstart == ((void *)0)" .text:0003B244 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003B248 MOV R2, #0x168 .text:0003B24C LDR R3, =a__gconv_tran_6 ; "__gconv_transform_utf8_internal" .text:0003B250 ADD R2, R2, #2 .text:0003B254 BL __assert_fail .text:0003B258 ; --------------------------------------------------------------------------- .text:0003B258 .text:0003B258 loc_3B258 ; CODE XREF: __gconv_transform_utf8_internal+154j .text:0003B258 LDR R12, [R11,#var_48] .text:0003B25C LDR R0, [R11,#arg_0] .text:0003B260 LDR R3, [R12] .text:0003B264 STR R0, [R11,#var_60] .text:0003B268 STR R3, [R11,#var_3C] .text:0003B26C LDR R0, [R11,#var_38] .text:0003B270 MOV R12, R2 .text:0003B274 LDR R2, [R11,#var_44] .text:0003B278 LDR R1, [R10,#4] .text:0003B27C LDR R4, [R2,#8] .text:0003B280 CMP R1, #0x800 .text:0003B284 MOVCC R2, #2 .text:0003B288 MOVCC R3, #0xC0 .text:0003B28C BCC loc_3B2C4 .text:0003B290 CMP R1, #0x10000 .text:0003B294 MOVCC R2, #3 .text:0003B298 MOVCC R3, #0xE0 .text:0003B29C BCC loc_3B2C4 .text:0003B2A0 CMP R1, #0x200000 .text:0003B2A4 MOVCC R2, #4 .text:0003B2A8 MOVCC R3, #0xF0 .text:0003B2AC BCC loc_3B2C4 .text:0003B2B0 CMN R1, #0xFC000001 .text:0003B2B4 MOVLS R2, #5 .text:0003B2B8 MOVLS R3, #0xF8 .text:0003B2BC MOVHI R2, #6 .text:0003B2C0 MOVHI R3, #0xFC .text:0003B2C4 .text:0003B2C4 loc_3B2C4 ; CODE XREF: __gconv_transform_utf8_internal+1A4j .text:0003B2C4 ; __gconv_transform_utf8_internal+1B4j ... .text:0003B2C4 STRB R3, [R11,#var_30] .text:0003B2C8 SUB LR, R11, #-var_30 .text:0003B2CC .text:0003B2CC loc_3B2CC ; CODE XREF: __gconv_transform_utf8_internal+200j .text:0003B2CC SUB R2, R2, #1 .text:0003B2D0 CMP R2, R12 .text:0003B2D4 ANDCC R3, R1, #0x3F .text:0003B2D8 ORRCC R3, R3, #0x80 .text:0003B2DC STRCCB R3, [LR,R2] .text:0003B2E0 MOV R1, R1,LSR#6 .text:0003B2E4 CMP R2, #1 .text:0003B2E8 BHI loc_3B2CC .text:0003B2EC LDR R3, [R11,#var_3C] .text:0003B2F0 LDRB R2, [R11,#var_30] .text:0003B2F4 ADD R3, R3, #1 .text:0003B2F8 RSB R3, R12, R3 .text:0003B2FC CMP R3, R7 .text:0003B300 ORR R2, R2, R1 .text:0003B304 STRB R2, [R11,#var_30] .text:0003B308 BLS loc_3B3D0 .text:0003B30C LDR R3, [R11,#var_48] .text:0003B310 STR R7, [R3] .text:0003B314 SUB R3, R11, #-var_30 .text:0003B318 STR R3, [R11,#var_3C] .text:0003B31C SUB LR, R11, #-var_3C .text:0003B320 LDRB R0, [R11,#var_30] .text:0003B324 ADD R5, R3, R12 .text:0003B328 STR R12, [R10] .text:0003B32C SUB R3, R0, #0xC2 .text:0003B330 CMP R3, #0x1D .text:0003B334 MOVLS R1, #2 .text:0003B338 ANDLS R0, R0, #0x1F .text:0003B33C BLS loc_3B380 .text:0003B340 AND R3, R0, #0xF0 .text:0003B344 CMP R3, #0xE0 .text:0003B348 MOVEQ R1, #3 .text:0003B34C ANDEQ R0, R0, #0xF .text:0003B350 BEQ loc_3B380 .text:0003B354 AND R3, R0, #0xF8 .text:0003B358 CMP R3, #0xF0 .text:0003B35C MOVEQ R1, #4 .text:0003B360 ANDEQ R0, R0, #7 .text:0003B364 BEQ loc_3B380 .text:0003B368 AND R3, R0, #0xFC .text:0003B36C CMP R3, #0xF8 .text:0003B370 MOVEQ R1, #5 .text:0003B374 ANDEQ R0, R0, #3 .text:0003B378 MOVNE R1, #6 .text:0003B37C ANDNE R0, R0, #1 .text:0003B380 .text:0003B380 loc_3B380 ; CODE XREF: __gconv_transform_utf8_internal+254j .text:0003B380 ; __gconv_transform_utf8_internal+268j ... .text:0003B380 LDR R3, [LR] .text:0003B384 SUB R1, R1, #1 .text:0003B388 ADD R3, R3, #1 .text:0003B38C CMP R3, R5 .text:0003B390 STR R3, [LR] .text:0003B394 BCS loc_3B3B8 .text:0003B398 .text:0003B398 loc_3B398 ; CODE XREF: __gconv_transform_utf8_internal+2CCj .text:0003B398 LDR R2, [LR] .text:0003B39C LDRB R3, [R2],#1 .text:0003B3A0 SUB R1, R1, #1 .text:0003B3A4 AND R3, R3, #0x3F .text:0003B3A8 ORR R0, R3, R0,LSL#6 .text:0003B3AC CMP R2, R5 .text:0003B3B0 STR R2, [LR] .text:0003B3B4 BCC loc_3B398 .text:0003B3B8 .text:0003B3B8 loc_3B3B8 ; CODE XREF: __gconv_transform_utf8_internal+2ACj .text:0003B3B8 ADD R3, R1, R1,LSL#1 .text:0003B3BC MOV R3, R3,LSL#1 .text:0003B3C0 MOV R0, R0,LSL R3 .text:0003B3C4 MOV R5, #7 .text:0003B3C8 STR R0, [R10,#4] .text:0003B3CC B loc_3B7A0 .text:0003B3D0 ; --------------------------------------------------------------------------- .text:0003B3D0 .text:0003B3D0 loc_3B3D0 ; CODE XREF: __gconv_transform_utf8_internal+220j .text:0003B3D0 LDR R1, [R11,#var_58] .text:0003B3D4 ADD R3, R0, #4 .text:0003B3D8 STR R3, [R11,#var_70] .text:0003B3DC CMP R3, R1 .text:0003B3E0 BLS loc_3B428 .text:0003B3E4 MOV R5, #5 .text:0003B3E8 B loc_3B7A0 .text:0003B3EC ; --------------------------------------------------------------------------- .text:0003B3EC .text:0003B3EC loc_3B3EC ; CODE XREF: __gconv_transform_utf8_internal+418j .text:0003B3EC MOV R2, #7 .text:0003B3F0 STR R2, [R11,#var_60] .text:0003B3F4 B loc_3B640 .text:0003B3F8 ; --------------------------------------------------------------------------- .text:0003B3F8 .text:0003B3F8 loc_3B3F8 ; CODE XREF: __gconv_transform_utf8_internal+428j .text:0003B3F8 STR R3, [R11,#var_3C] .text:0003B3FC LDR R3, [R6] .text:0003B400 ADD R3, R3, #1 .text:0003B404 STR R3, [R6] .text:0003B408 B loc_3B640 .text:0003B40C ; --------------------------------------------------------------------------- .text:0003B40C .text:0003B40C loc_3B40C ; CODE XREF: __gconv_transform_utf8_internal+49Cj .text:0003B40C LDR R3, [R11,#var_3C] .text:0003B410 ADD R3, R3, R12 .text:0003B414 STR R3, [R11,#var_3C] .text:0003B418 LDR R2, [R6] .text:0003B41C ADD R2, R2, #1 .text:0003B420 STR R2, [R6] .text:0003B424 B loc_3B640 .text:0003B428 ; --------------------------------------------------------------------------- .text:0003B428 .text:0003B428 loc_3B428 ; CODE XREF: __gconv_transform_utf8_internal+2F8j .text:0003B428 SUB R9, R11, #-var_30 .text:0003B42C MOV R1, R9 .text:0003B430 .text:0003B430 loc_3B430 ; CODE XREF: __gconv_transform_utf8_internal+368j .text:0003B430 LDR R2, [R11,#var_3C] .text:0003B434 LDRB R3, [R2],#1 .text:0003B438 STRB R3, [R1,R12] .text:0003B43C ADD R12, R12, #1 .text:0003B440 CMP R12, #5 .text:0003B444 STR R2, [R11,#var_3C] .text:0003B448 BHI loc_3B454 .text:0003B44C CMP R2, R7 .text:0003B450 BCC loc_3B430 .text:0003B454 .text:0003B454 loc_3B454 ; CODE XREF: __gconv_transform_utf8_internal+360j .text:0003B454 ADD R5, R9, R12 .text:0003B458 AND R8, R4, #2 .text:0003B45C STR R9, [R11,#var_3C] .text:0003B460 B loc_3B5AC .text:0003B464 ; --------------------------------------------------------------------------- .text:0003B464 .text:0003B464 loc_3B464 ; CODE XREF: __gconv_transform_utf8_internal+54Cj .text:0003B464 MOV R1, #0 .text:0003B468 .text:0003B468 loc_3B468 ; CODE XREF: __gconv_transform_utf8_internal+3A8j .text:0003B468 LDR R2, [R11,#var_3C] .text:0003B46C ADD R1, R1, #1 .text:0003B470 ADD R3, R2, #1 .text:0003B474 CMP R3, R5 .text:0003B478 STR R3, [R11,#var_3C] .text:0003B47C BCS loc_3B640 .text:0003B480 LDRB R3, [R2,#1] .text:0003B484 AND R3, R3, #0xC0 .text:0003B488 CMP R1, #4 .text:0003B48C CMPLE R3, #0x80 .text:0003B490 BEQ loc_3B468 .text:0003B494 B loc_3B640 .text:0003B494 ; --------------------------------------------------------------------------- .text:0003B498 off_3B498 DCD aOutbufstartVoi ; DATA XREF: __gconv_transform_utf8_internal+68r .text:0003B498 ; __gconv_transform_utf8_internal+158r .text:0003B498 ; "outbufstart == ((void *)0)" .text:0003B49C off_3B49C DCD a__IconvSkeleto ; DATA XREF: __gconv_transform_utf8_internal+6Cr .text:0003B49C ; __gconv_transform_utf8_internal+15Cr .text:0003B49C ; "../iconv/skeleton.c" .text:0003B4A0 off_3B4A0 DCD a__gconv_tran_6 ; DATA XREF: __gconv_transform_utf8_internal+70r .text:0003B4A0 ; __gconv_transform_utf8_internal+164r .text:0003B4A0 ; "__gconv_transform_utf8_internal" .text:0003B4A4 ; --------------------------------------------------------------------------- .text:0003B4A4 .text:0003B4A4 loc_3B4A4 ; CODE XREF: __gconv_transform_utf8_internal+4ECj .text:0003B4A4 ; __gconv_transform_utf8_internal+500j ... .text:0003B4A4 ADD R3, R4, LR .text:0003B4A8 CMP R3, R5 .text:0003B4AC BLS loc_3B520 .text:0003B4B0 MOV R12, #1 .text:0003B4B4 ADD R3, R4, R12 .text:0003B4B8 CMP R3, R5 .text:0003B4BC BCS loc_3B4F4 .text:0003B4C0 LDRB R3, [R4,#1] .text:0003B4C4 AND R3, R3, #0xC0 .text:0003B4C8 CMP R3, #0x80 .text:0003B4CC BNE loc_3B4F4 .text:0003B4D0 MOV R2, R4 .text:0003B4D4 .text:0003B4D4 loc_3B4D4 ; CODE XREF: __gconv_transform_utf8_internal+408j .text:0003B4D4 ADD R12, R12, #1 .text:0003B4D8 ADD R3, R2, R12 .text:0003B4DC CMP R3, R5 .text:0003B4E0 BCS loc_3B4F4 .text:0003B4E4 LDRB R3, [R4,R12] .text:0003B4E8 AND R3, R3, #0xC0 .text:0003B4EC CMP R3, #0x80 .text:0003B4F0 BEQ loc_3B4D4 .text:0003B4F4 .text:0003B4F4 loc_3B4F4 ; CODE XREF: __gconv_transform_utf8_internal+3D4j .text:0003B4F4 ; __gconv_transform_utf8_internal+3E4j ... .text:0003B4F4 LDR R3, [R11,#var_3C] .text:0003B4F8 ADD R3, R3, R12 .text:0003B4FC CMP R3, R5 .text:0003B500 BEQ loc_3B3EC .text:0003B504 CMP R6, #0 .text:0003B508 BEQ loc_3B514 .text:0003B50C CMP R8, #0 .text:0003B510 BNE loc_3B3F8 .text:0003B514 .text:0003B514 loc_3B514 ; CODE XREF: __gconv_transform_utf8_internal+420j .text:0003B514 MOV R3, #6 .text:0003B518 STR R3, [R11,#var_60] .text:0003B51C B loc_3B640 .text:0003B520 ; --------------------------------------------------------------------------- .text:0003B520 .text:0003B520 loc_3B520 ; CODE XREF: __gconv_transform_utf8_internal+3C4j .text:0003B520 MOV R12, #1 .text:0003B524 CMP R12, LR .text:0003B528 BCS loc_3B558 .text:0003B52C LDRB R2, [R4,#1] .text:0003B530 B loc_3B54C .text:0003B534 ; --------------------------------------------------------------------------- .text:0003B534 .text:0003B534 loc_3B534 ; CODE XREF: __gconv_transform_utf8_internal+46Cj .text:0003B534 AND R3, R2, #0x3F .text:0003B538 ORR R1, R3, R1,LSL#6 .text:0003B53C ADD R12, R12, #1 .text:0003B540 CMP R12, LR .text:0003B544 BCS loc_3B558 .text:0003B548 LDRB R2, [R4,R12] .text:0003B54C .text:0003B54C loc_3B54C ; CODE XREF: __gconv_transform_utf8_internal+448j .text:0003B54C AND R3, R2, #0xC0 .text:0003B550 CMP R3, #0x80 .text:0003B554 BEQ loc_3B534 .text:0003B558 .text:0003B558 loc_3B558 ; CODE XREF: __gconv_transform_utf8_internal+440j .text:0003B558 ; __gconv_transform_utf8_internal+45Cj .text:0003B558 CMP R12, LR .text:0003B55C BCC loc_3B578 .text:0003B560 CMP LR, #2 .text:0003B564 BLS loc_3B594 .text:0003B568 ADD R3, LR, LR,LSL#2 .text:0003B56C SUB R3, R3, #4 .text:0003B570 MOVS R3, R1,LSR R3 .text:0003B574 BNE loc_3B594 .text:0003B578 .text:0003B578 loc_3B578 ; CODE XREF: __gconv_transform_utf8_internal+474j .text:0003B578 CMP R6, #0 .text:0003B57C BEQ loc_3B588 .text:0003B580 CMP R8, #0 .text:0003B584 BNE loc_3B40C .text:0003B588 .text:0003B588 loc_3B588 ; CODE XREF: __gconv_transform_utf8_internal+494j .text:0003B588 MOV R12, #6 .text:0003B58C STR R12, [R11,#var_60] .text:0003B590 B loc_3B640 .text:0003B594 ; --------------------------------------------------------------------------- .text:0003B594 .text:0003B594 loc_3B594 ; CODE XREF: __gconv_transform_utf8_internal+47Cj .text:0003B594 ; __gconv_transform_utf8_internal+48Cj .text:0003B594 LDR R3, [R11,#var_3C] .text:0003B598 ADD R3, R3, LR .text:0003B59C .text:0003B59C loc_3B59C ; CODE XREF: __gconv_transform_utf8_internal+4D8j .text:0003B59C STR R3, [R11,#var_3C] .text:0003B5A0 STR R1, [R0] .text:0003B5A4 LDR R0, [R11,#var_70] .text:0003B5A8 B loc_3B640 .text:0003B5AC ; --------------------------------------------------------------------------- .text:0003B5AC .text:0003B5AC loc_3B5AC ; CODE XREF: __gconv_transform_utf8_internal+378j .text:0003B5AC LDR R3, [R11,#var_3C] .text:0003B5B0 LDRB R1, [R3] .text:0003B5B4 MOV R4, R3 .text:0003B5B8 CMP R1, #0x7F .text:0003B5BC ADDLS R3, R3, #1 .text:0003B5C0 BLS loc_3B59C .text:0003B5C4 SUB R3, R1, #0xC2 .text:0003B5C8 CMP R3, #0x1D .text:0003B5CC MOVLS LR, #2 .text:0003B5D0 ANDLS R1, R1, #0x1F .text:0003B5D4 BLS loc_3B4A4 .text:0003B5D8 AND R3, R1, #0xF0 .text:0003B5DC CMP R3, #0xE0 .text:0003B5E0 MOVEQ LR, #3 .text:0003B5E4 ANDEQ R1, R1, #0xF .text:0003B5E8 BEQ loc_3B4A4 .text:0003B5EC AND R3, R1, #0xF8 .text:0003B5F0 CMP R3, #0xF0 .text:0003B5F4 MOVEQ LR, #4 .text:0003B5F8 ANDEQ R1, R1, #7 .text:0003B5FC BEQ loc_3B4A4 .text:0003B600 AND R3, R1, #0xFC .text:0003B604 CMP R3, #0xF8 .text:0003B608 MOVEQ LR, #5 .text:0003B60C ANDEQ R1, R1, #3 .text:0003B610 BEQ loc_3B4A4 .text:0003B614 AND R3, R1, #0xFE .text:0003B618 CMP R3, #0xFC .text:0003B61C MOVEQ LR, #6 .text:0003B620 ANDEQ R1, R1, #1 .text:0003B624 BEQ loc_3B4A4 .text:0003B628 CMP R6, #0 .text:0003B62C BEQ loc_3B638 .text:0003B630 CMP R8, #0 .text:0003B634 BNE loc_3B464 .text:0003B638 .text:0003B638 loc_3B638 ; CODE XREF: __gconv_transform_utf8_internal+544j .text:0003B638 MOV R1, #6 .text:0003B63C STR R1, [R11,#var_60] .text:0003B640 .text:0003B640 loc_3B640 ; CODE XREF: __gconv_transform_utf8_internal+30Cj .text:0003B640 ; __gconv_transform_utf8_internal+320j ... .text:0003B640 LDR R12, [R11,#var_3C] .text:0003B644 CMP R12, R9 .text:0003B648 BEQ loc_3B6A4 .text:0003B64C LDR R3, [R10] .text:0003B650 RSB R1, R9, R12 .text:0003B654 AND R2, R3, #7 .text:0003B658 CMP R1, R2 .text:0003B65C BGT loc_3B674 .text:0003B660 LDR R0, =aInptrBytebufSt ; "inptr - bytebuf > (state->__count & 7)" .text:0003B664 LDR R1, =a__IconvLoop_c ; "../iconv/loop.c" .text:0003B668 LDR R3, =aUtf8_internal_ ; "utf8_internal_loop_single" .text:0003B66C MOV R2, #0x17C .text:0003B670 BL __assert_fail .text:0003B674 ; --------------------------------------------------------------------------- .text:0003B674 .text:0003B674 loc_3B674 ; CODE XREF: __gconv_transform_utf8_internal+574j .text:0003B674 STR R0, [R11,#var_38] .text:0003B678 LDR R12, [R11,#var_48] .text:0003B67C LDR R3, [R12] .text:0003B680 RSB R2, R2, R1 .text:0003B684 ADD R3, R3, R2 .text:0003B688 STR R3, [R12] .text:0003B68C LDR R2, [R10] .text:0003B690 MOV R0, #0 .text:0003B694 STR R0, [R11,#var_60] .text:0003B698 BIC R2, R2, #7 .text:0003B69C STR R2, [R10] .text:0003B6A0 B loc_3B79C .text:0003B6A4 ; --------------------------------------------------------------------------- .text:0003B6A4 .text:0003B6A4 loc_3B6A4 ; CODE XREF: __gconv_transform_utf8_internal+560j .text:0003B6A4 LDR R1, [R11,#var_60] .text:0003B6A8 CMP R1, #7 .text:0003B6AC BNE loc_3B79C .text:0003B6B0 SUB R3, R11, #-var_2A .text:0003B6B4 CMP R5, R3 .text:0003B6B8 BNE loc_3B6D4 .text:0003B6BC LDR R0, =aInendBytebuf6 ; "inend != &bytebuf[6]" .text:0003B6C0 LDR R1, =a__IconvLoop_c ; "../iconv/loop.c" .text:0003B6C4 MOV R2, #0x188 .text:0003B6C8 LDR R3, =aUtf8_internal_ ; "utf8_internal_loop_single" .text:0003B6CC ADD R2, R2, #2 .text:0003B6D0 BL __assert_fail .text:0003B6D4 ; --------------------------------------------------------------------------- .text:0003B6D4 .text:0003B6D4 loc_3B6D4 ; CODE XREF: __gconv_transform_utf8_internal+5D0j .text:0003B6D4 LDR R2, [R10] .text:0003B6D8 RSB R1, R12, R5 .text:0003B6DC LDR R0, [R11,#var_48] .text:0003B6E0 AND R2, R2, #7 .text:0003B6E4 LDR R3, [R0] .text:0003B6E8 RSB R2, R2, R1 .text:0003B6EC ADD R3, R3, R2 .text:0003B6F0 STR R3, [R0] .text:0003B6F4 LDRB R12, [R12] .text:0003B6F8 SUB LR, R11, #-var_3C .text:0003B6FC STR R1, [R10] .text:0003B700 SUB R3, R12, #0xC2 .text:0003B704 CMP R3, #0x1D .text:0003B708 MOVLS R1, #2 .text:0003B70C ANDLS R12, R12, #0x1F .text:0003B710 BLS loc_3B754 .text:0003B714 AND R3, R12, #0xF0 .text:0003B718 CMP R3, #0xE0 .text:0003B71C MOVEQ R1, #3 .text:0003B720 ANDEQ R12, R12, #0xF .text:0003B724 BEQ loc_3B754 .text:0003B728 AND R3, R12, #0xF8 .text:0003B72C CMP R3, #0xF0 .text:0003B730 MOVEQ R1, #4 .text:0003B734 ANDEQ R12, R12, #7 .text:0003B738 BEQ loc_3B754 .text:0003B73C AND R3, R12, #0xFC .text:0003B740 CMP R3, #0xF8 .text:0003B744 MOVEQ R1, #5 .text:0003B748 ANDEQ R12, R12, #3 .text:0003B74C MOVNE R1, #6 .text:0003B750 ANDNE R12, R12, #1 .text:0003B754 .text:0003B754 loc_3B754 ; CODE XREF: __gconv_transform_utf8_internal+628j .text:0003B754 ; __gconv_transform_utf8_internal+63Cj ... .text:0003B754 LDR R3, [LR] .text:0003B758 SUB R1, R1, #1 .text:0003B75C ADD R3, R3, #1 .text:0003B760 CMP R3, R5 .text:0003B764 STR R3, [LR] .text:0003B768 BCS loc_3B78C .text:0003B76C .text:0003B76C loc_3B76C ; CODE XREF: __gconv_transform_utf8_internal+6A0j .text:0003B76C LDR R2, [LR] .text:0003B770 LDRB R3, [R2],#1 .text:0003B774 SUB R1, R1, #1 .text:0003B778 AND R3, R3, #0x3F .text:0003B77C ORR R12, R3, R12,LSL#6 .text:0003B780 CMP R2, R5 .text:0003B784 STR R2, [LR] .text:0003B788 BCC loc_3B76C .text:0003B78C .text:0003B78C loc_3B78C ; CODE XREF: __gconv_transform_utf8_internal+680j .text:0003B78C ADD R3, R1, R1,LSL#1 .text:0003B790 MOV R3, R3,LSL#1 .text:0003B794 MOV R12, R12,LSL R3 .text:0003B798 STR R12, [R10,#4] .text:0003B79C .text:0003B79C loc_3B79C ; CODE XREF: __gconv_transform_utf8_internal+5B8j .text:0003B79C ; __gconv_transform_utf8_internal+5C4j .text:0003B79C LDR R5, [R11,#var_60] .text:0003B7A0 .text:0003B7A0 loc_3B7A0 ; CODE XREF: __gconv_transform_utf8_internal+2E4j .text:0003B7A0 ; __gconv_transform_utf8_internal+300j .text:0003B7A0 CMP R5, #0 .text:0003B7A4 BEQ loc_3B7D4 .text:0003B7A8 B loc_3BEB0 .text:0003B7AC ; --------------------------------------------------------------------------- .text:0003B7AC .text:0003B7AC loc_3B7AC ; CODE XREF: __gconv_transform_utf8_internal+990j .text:0003B7AC LDR R3, [R11,#var_38] .text:0003B7B0 LDR R1, [R11,#var_44] .text:0003B7B4 STR R3, [R1] .text:0003B7B8 LDR R3, [R11,#arg_4] .text:0003B7BC LDR R2, [R3] .text:0003B7C0 LDR R3, [R11,#var_34] .text:0003B7C4 LDR R12, [R11,#arg_4] .text:0003B7C8 ADD R2, R2, R3 .text:0003B7CC STR R2, [R12] .text:0003B7D0 B loc_3BDA0 .text:0003B7D4 ; --------------------------------------------------------------------------- .text:0003B7D4 .text:0003B7D4 loc_3B7D4 ; CODE XREF: __gconv_transform_utf8_internal+134j .text:0003B7D4 ; __gconv_transform_utf8_internal+148j ... .text:0003B7D4 LDR R0, [R11,#var_48] .text:0003B7D8 LDR R1, [R11,#var_38] .text:0003B7DC LDR R9, [R0] .text:0003B7E0 STR R1, [R11,#var_5C] .text:0003B7E4 MOV R8, #4 .text:0003B7E8 LDR R2, [R11,#var_44] .text:0003B7EC MOV R10, R1 .text:0003B7F0 MOV R0, R9 .text:0003B7F4 CMP R9, R7 .text:0003B7F8 LDR R5, [R2,#8] .text:0003B7FC BEQ loc_3B9F0 .text:0003B800 LDR R12, [R11,#var_58] .text:0003B804 ADD R3, R1, R8 .text:0003B808 CMP R3, R12 .text:0003B80C B loc_3B9E8 .text:0003B810 ; --------------------------------------------------------------------------- .text:0003B810 .text:0003B810 loc_3B810 ; CODE XREF: __gconv_transform_utf8_internal+830j .text:0003B810 MOV R8, #7 .text:0003B814 B loc_3B9F0 .text:0003B818 ; --------------------------------------------------------------------------- .text:0003B818 .text:0003B818 loc_3B818 ; CODE XREF: __gconv_transform_utf8_internal:loc_3B9E8j .text:0003B818 LDRB R1, [R0] .text:0003B81C CMP R1, #0x7F .text:0003B820 ADDLS R0, R0, #1 .text:0003B824 BLS loc_3B9D0 .text:0003B828 SUB R3, R1, #0xC2 .text:0003B82C CMP R3, #0x1D .text:0003B830 MOVLS LR, #2 .text:0003B834 ANDLS R1, R1, #0x1F .text:0003B838 BLS loc_3B8C8 .text:0003B83C AND R3, R1, #0xF0 .text:0003B840 CMP R3, #0xE0 .text:0003B844 MOVEQ LR, #3 .text:0003B848 ANDEQ R1, R1, #0xF .text:0003B84C BEQ loc_3B8C8 .text:0003B850 AND R3, R1, #0xF8 .text:0003B854 CMP R3, #0xF0 .text:0003B858 MOVEQ LR, #4 .text:0003B85C ANDEQ R1, R1, #7 .text:0003B860 BEQ loc_3B8C8 .text:0003B864 AND R3, R1, #0xFC .text:0003B868 CMP R3, #0xF8 .text:0003B86C MOVEQ LR, #5 .text:0003B870 ANDEQ R1, R1, #3 .text:0003B874 BEQ loc_3B8C8 .text:0003B878 AND R3, R1, #0xFE .text:0003B87C CMP R3, #0xFC .text:0003B880 MOVEQ LR, #6 .text:0003B884 ANDEQ R1, R1, #1 .text:0003B888 BEQ loc_3B8C8 .text:0003B88C CMP R6, #0 .text:0003B890 BEQ loc_3B9B4 .text:0003B894 TST R5, #2 .text:0003B898 BEQ loc_3B9B4 .text:0003B89C MOV R2, #0 .text:0003B8A0 .text:0003B8A0 loc_3B8A0 ; CODE XREF: __gconv_transform_utf8_internal+7D8j .text:0003B8A0 ADD R0, R0, #1 .text:0003B8A4 ADD R2, R2, #1 .text:0003B8A8 CMP R0, R7 .text:0003B8AC BCS loc_3B9D4 .text:0003B8B0 LDRB R3, [R0] .text:0003B8B4 AND R3, R3, #0xC0 .text:0003B8B8 CMP R2, #4 .text:0003B8BC CMPLE R3, #0x80 .text:0003B8C0 BEQ loc_3B8A0 .text:0003B8C4 B loc_3B9D4 .text:0003B8C8 ; --------------------------------------------------------------------------- .text:0003B8C8 .text:0003B8C8 loc_3B8C8 ; CODE XREF: __gconv_transform_utf8_internal+750j .text:0003B8C8 ; __gconv_transform_utf8_internal+764j ... .text:0003B8C8 ADD R3, R0, LR .text:0003B8CC CMP R3, R7 .text:0003B8D0 MOV R4, R3 .text:0003B8D4 BLS loc_3B938 .text:0003B8D8 MOV R12, #1 .text:0003B8DC ADD R3, R0, R12 .text:0003B8E0 CMP R3, R7 .text:0003B8E4 BCS loc_3B910 .text:0003B8E8 LDRB R3, [R0,#1] .text:0003B8EC B loc_3B904 .text:0003B8F0 ; --------------------------------------------------------------------------- .text:0003B8F0 .text:0003B8F0 loc_3B8F0 ; CODE XREF: __gconv_transform_utf8_internal+824j .text:0003B8F0 ADD R12, R12, #1 .text:0003B8F4 ADD R3, R0, R12 .text:0003B8F8 CMP R3, R7 .text:0003B8FC BCS loc_3B910 .text:0003B900 LDRB R3, [R0,R12] .text:0003B904 .text:0003B904 loc_3B904 ; CODE XREF: __gconv_transform_utf8_internal+804j .text:0003B904 AND R3, R3, #0xC0 .text:0003B908 CMP R3, #0x80 .text:0003B90C BEQ loc_3B8F0 .text:0003B910 .text:0003B910 loc_3B910 ; CODE XREF: __gconv_transform_utf8_internal+7FCj .text:0003B910 ; __gconv_transform_utf8_internal+814j .text:0003B910 ADD R2, R0, R12 .text:0003B914 CMP R2, R7 .text:0003B918 BEQ loc_3B810 .text:0003B91C CMP R6, #0 .text:0003B920 BEQ loc_3B9B4 .text:0003B924 TST R5, #2 .text:0003B928 BEQ loc_3B9B4 .text:0003B92C LDR R3, [R6] .text:0003B930 MOV R0, R2 .text:0003B934 B loc_3B9A8 .text:0003B938 ; --------------------------------------------------------------------------- .text:0003B938 .text:0003B938 loc_3B938 ; CODE XREF: __gconv_transform_utf8_internal+7ECj .text:0003B938 MOV R12, #1 .text:0003B93C CMP R12, LR .text:0003B940 BCS loc_3B970 .text:0003B944 LDRB R2, [R0,#1] .text:0003B948 B loc_3B964 .text:0003B94C ; --------------------------------------------------------------------------- .text:0003B94C .text:0003B94C loc_3B94C ; CODE XREF: __gconv_transform_utf8_internal+884j .text:0003B94C AND R3, R2, #0x3F .text:0003B950 ORR R1, R3, R1,LSL#6 .text:0003B954 ADD R12, R12, #1 .text:0003B958 CMP R12, LR .text:0003B95C BCS loc_3B970 .text:0003B960 LDRB R2, [R0,R12] .text:0003B964 .text:0003B964 loc_3B964 ; CODE XREF: __gconv_transform_utf8_internal+860j .text:0003B964 AND R3, R2, #0xC0 .text:0003B968 CMP R3, #0x80 .text:0003B96C BEQ loc_3B94C .text:0003B970 .text:0003B970 loc_3B970 ; CODE XREF: __gconv_transform_utf8_internal+858j .text:0003B970 ; __gconv_transform_utf8_internal+874j .text:0003B970 CMP R12, LR .text:0003B974 BCC loc_3B990 .text:0003B978 CMP LR, #2 .text:0003B97C BLS loc_3B9CC .text:0003B980 ADD R3, LR, LR,LSL#2 .text:0003B984 SUB R3, R3, #4 .text:0003B988 MOVS R3, R1,LSR R3 .text:0003B98C BNE loc_3B9CC .text:0003B990 .text:0003B990 loc_3B990 ; CODE XREF: __gconv_transform_utf8_internal+88Cj .text:0003B990 CMP R6, #0 .text:0003B994 BEQ loc_3B9B4 .text:0003B998 TST R5, #2 .text:0003B99C BEQ loc_3B9B4 .text:0003B9A0 LDR R3, [R6] .text:0003B9A4 ADD R0, R0, R12 .text:0003B9A8 .text:0003B9A8 loc_3B9A8 ; CODE XREF: __gconv_transform_utf8_internal+84Cj .text:0003B9A8 ADD R3, R3, #1 .text:0003B9AC STR R3, [R6] .text:0003B9B0 B loc_3B9D4 .text:0003B9B4 ; --------------------------------------------------------------------------- .text:0003B9B4 .text:0003B9B4 loc_3B9B4 ; CODE XREF: __gconv_transform_utf8_internal+7A8j .text:0003B9B4 ; __gconv_transform_utf8_internal+7B0j ... .text:0003B9B4 MOV R8, #6 .text:0003B9B8 B loc_3B9F0 .text:0003B9B8 ; --------------------------------------------------------------------------- .text:0003B9BC off_3B9BC DCD aInptrBytebufSt ; DATA XREF: __gconv_transform_utf8_internal+578r .text:0003B9BC ; "inptr - bytebuf > (state->__count & 7)" .text:0003B9C0 off_3B9C0 DCD a__IconvLoop_c ; DATA XREF: __gconv_transform_utf8_internal+57Cr .text:0003B9C0 ; __gconv_transform_utf8_internal+5D8r .text:0003B9C0 ; "../iconv/loop.c" .text:0003B9C4 off_3B9C4 DCD aUtf8_internal_ ; DATA XREF: __gconv_transform_utf8_internal+580r .text:0003B9C4 ; __gconv_transform_utf8_internal+5E0r .text:0003B9C4 ; "utf8_internal_loop_single" .text:0003B9C8 off_3B9C8 DCD aInendBytebuf6 ; DATA XREF: __gconv_transform_utf8_internal+5D4r .text:0003B9C8 ; "inend != &bytebuf[6]" .text:0003B9CC ; --------------------------------------------------------------------------- .text:0003B9CC .text:0003B9CC loc_3B9CC ; CODE XREF: __gconv_transform_utf8_internal+894j .text:0003B9CC ; __gconv_transform_utf8_internal+8A4j .text:0003B9CC MOV R0, R4 .text:0003B9D0 .text:0003B9D0 loc_3B9D0 ; CODE XREF: __gconv_transform_utf8_internal+73Cj .text:0003B9D0 STR R1, [R10],#4 .text:0003B9D4 .text:0003B9D4 loc_3B9D4 ; CODE XREF: __gconv_transform_utf8_internal+7C4j .text:0003B9D4 ; __gconv_transform_utf8_internal+7DCj ... .text:0003B9D4 CMP R0, R7 .text:0003B9D8 BEQ loc_3B9F0 .text:0003B9DC LDR R1, [R11,#var_58] .text:0003B9E0 ADD R3, R10, #4 .text:0003B9E4 CMP R3, R1 .text:0003B9E8 .text:0003B9E8 loc_3B9E8 ; CODE XREF: __gconv_transform_utf8_internal+724j .text:0003B9E8 BLS loc_3B818 .text:0003B9EC MOV R8, #5 .text:0003B9F0 .text:0003B9F0 loc_3B9F0 ; CODE XREF: __gconv_transform_utf8_internal+714j .text:0003B9F0 ; __gconv_transform_utf8_internal+72Cj ... .text:0003B9F0 LDR R2, [R11,#var_48] .text:0003B9F4 STR R0, [R2] .text:0003B9F8 LDR R3, [R11,#var_6C] .text:0003B9FC STR R10, [R3] .text:0003BA00 MOV R5, R8 .text:0003BA04 LDR R12, [R11,#arg_0] .text:0003BA08 CMP R12, #0 .text:0003BA0C BNE loc_3BE30 .text:0003BA10 LDR R0, [R11,#var_44] .text:0003BA14 LDR R4, [R0,#0x20] .text:0003BA18 CMP R4, #0 .text:0003BA1C BEQ loc_3BA60 .text:0003BA20 .text:0003BA20 loc_3BA20 ; CODE XREF: __gconv_transform_utf8_internal+974j .text:0003BA20 LDR R0, [R4,#4] .text:0003BA24 CMP R0, #0 .text:0003BA28 BEQ loc_3BA54 .text:0003BA2C BL _dl_mcount_wrapper_check .text:0003BA30 LDR R3, [R11,#var_38] .text:0003BA34 LDR R0, [R4,#0xC] .text:0003BA38 STR R3, [SP,#0x80+var_80] .text:0003BA3C LDR R12, [R11,#var_48] .text:0003BA40 LDR R3, [R11,#var_5C] .text:0003BA44 LDR R2, [R12] .text:0003BA48 MOV R1, R9 .text:0003BA4C MOV LR, PC .text:0003BA50 LDR PC, [R4,#4] .text:0003BA54 .text:0003BA54 loc_3BA54 ; CODE XREF: __gconv_transform_utf8_internal+940j .text:0003BA54 LDR R4, [R4,#0x10] .text:0003BA58 CMP R4, #0 .text:0003BA5C BNE loc_3BA20 .text:0003BA60 .text:0003BA60 loc_3BA60 ; CODE XREF: __gconv_transform_utf8_internal+934j .text:0003BA60 LDR R0, [R11,#var_44] .text:0003BA64 ADD R2, R0, #8 .text:0003BA68 LDMIA R2, {R2,R3} .text:0003BA6C ADD R3, R3, #1 .text:0003BA70 ANDS R4, R2, #1 .text:0003BA74 STR R3, [R0,#0xC] .text:0003BA78 BNE loc_3B7AC .text:0003BA7C LDR R3, [R11,#var_38] .text:0003BA80 LDR R1, [R11,#var_5C] .text:0003BA84 CMP R3, R1 .text:0003BA88 BLS loc_3BD8C .text:0003BA8C LDR R3, [R0] .text:0003BA90 STR R3, [R11,#var_40] .text:0003BA94 LDR R0, [R11,#var_54] .text:0003BA98 BL _dl_mcount_wrapper_check .text:0003BA9C STR R4, [SP,#0x80+var_80] .text:0003BAA0 LDR R2, [R11,#arg_4] .text:0003BAA4 STMFA SP, {R2,R4} .text:0003BAA8 LDR R3, [R11,#arg_C] .text:0003BAAC STR R3, [SP,#0x80+var_74] .text:0003BAB0 LDR R0, [R11,#var_4C] .text:0003BAB4 LDR R1, [R11,#var_50] .text:0003BAB8 LDR R3, [R11,#var_38] .text:0003BABC LDR R12, [R11,#var_54] .text:0003BAC0 SUB R2, R11, #-var_40 .text:0003BAC4 MOV LR, PC .text:0003BAC8 MOV PC, R12 .text:0003BACC STR R0, [R11,#var_64] .text:0003BAD0 CMP R0, #4 .text:0003BAD4 BEQ loc_3BD78 .text:0003BAD8 LDR R2, [R11,#var_40] .text:0003BADC LDR R3, [R11,#var_38] .text:0003BAE0 CMP R2, R3 .text:0003BAE4 BEQ loc_3BD70 .text:0003BAE8 LDR R0, [R11,#var_48] .text:0003BAEC STR R9, [R0] .text:0003BAF0 STR R2, [R11,#var_68] .text:0003BAF4 LDR R1, [R11,#var_5C] .text:0003BAF8 STR R1, [R11,#var_38] .text:0003BAFC LDR R8, [R11,#var_5C] .text:0003BB00 MOV R10, #4 .text:0003BB04 LDR R2, [R11,#var_44] .text:0003BB08 MOV R1, R9 .text:0003BB0C CMP R1, R7 .text:0003BB10 LDR R9, [R2,#8] .text:0003BB14 BEQ loc_3BD04 .text:0003BB18 ADD R3, R8, R10 .text:0003BB1C LDR R12, [R11,#var_68] .text:0003BB20 MOV R5, R3 .text:0003BB24 CMP R3, R12 .text:0003BB28 B loc_3BCFC .text:0003BB2C ; --------------------------------------------------------------------------- .text:0003BB2C .text:0003BB2C loc_3BB2C ; CODE XREF: __gconv_transform_utf8_internal+B4Cj .text:0003BB2C MOV R10, #7 .text:0003BB30 B loc_3BD04 .text:0003BB34 ; --------------------------------------------------------------------------- .text:0003BB34 .text:0003BB34 loc_3BB34 ; CODE XREF: __gconv_transform_utf8_internal:loc_3BCFCj .text:0003BB34 LDRB R12, [R1] .text:0003BB38 CMP R12, #0x7F .text:0003BB3C ADDLS R1, R1, #1 .text:0003BB40 BLS loc_3BCDC .text:0003BB44 SUB R3, R12, #0xC2 .text:0003BB48 CMP R3, #0x1D .text:0003BB4C MOVLS R4, #2 .text:0003BB50 ANDLS R12, R12, #0x1F .text:0003BB54 BLS loc_3BBE4 .text:0003BB58 AND R3, R12, #0xF0 .text:0003BB5C CMP R3, #0xE0 .text:0003BB60 MOVEQ R4, #3 .text:0003BB64 ANDEQ R12, R12, #0xF .text:0003BB68 BEQ loc_3BBE4 .text:0003BB6C AND R3, R12, #0xF8 .text:0003BB70 CMP R3, #0xF0 .text:0003BB74 MOVEQ R4, #4 .text:0003BB78 ANDEQ R12, R12, #7 .text:0003BB7C BEQ loc_3BBE4 .text:0003BB80 AND R3, R12, #0xFC .text:0003BB84 CMP R3, #0xF8 .text:0003BB88 MOVEQ R4, #5 .text:0003BB8C ANDEQ R12, R12, #3 .text:0003BB90 BEQ loc_3BBE4 .text:0003BB94 AND R3, R12, #0xFE .text:0003BB98 CMP R3, #0xFC .text:0003BB9C MOVEQ R4, #6 .text:0003BBA0 ANDEQ R12, R12, #1 .text:0003BBA4 BEQ loc_3BBE4 .text:0003BBA8 CMP R6, #0 .text:0003BBAC BEQ loc_3BCD0 .text:0003BBB0 TST R9, #2 .text:0003BBB4 BEQ loc_3BCD0 .text:0003BBB8 MOV R2, #0 .text:0003BBBC .text:0003BBBC loc_3BBBC ; CODE XREF: __gconv_transform_utf8_internal+AF4j .text:0003BBBC ADD R1, R1, #1 .text:0003BBC0 ADD R2, R2, #1 .text:0003BBC4 CMP R1, R7 .text:0003BBC8 BCS loc_3BCE4 .text:0003BBCC LDRB R3, [R1] .text:0003BBD0 AND R3, R3, #0xC0 .text:0003BBD4 CMP R2, #4 .text:0003BBD8 CMPLE R3, #0x80 .text:0003BBDC BEQ loc_3BBBC .text:0003BBE0 B loc_3BCE4 .text:0003BBE4 ; --------------------------------------------------------------------------- .text:0003BBE4 .text:0003BBE4 loc_3BBE4 ; CODE XREF: __gconv_transform_utf8_internal+A6Cj .text:0003BBE4 ; __gconv_transform_utf8_internal+A80j ... .text:0003BBE4 ADD R3, R1, R4 .text:0003BBE8 CMP R3, R7 .text:0003BBEC MOV R0, R3 .text:0003BBF0 BLS loc_3BC54 .text:0003BBF4 MOV LR, #1 .text:0003BBF8 ADD R3, R1, LR .text:0003BBFC CMP R3, R7 .text:0003BC00 BCS loc_3BC2C .text:0003BC04 LDRB R3, [R1,#1] .text:0003BC08 B loc_3BC20 .text:0003BC0C ; --------------------------------------------------------------------------- .text:0003BC0C .text:0003BC0C loc_3BC0C ; CODE XREF: __gconv_transform_utf8_internal+B40j .text:0003BC0C ADD LR, LR, #1 .text:0003BC10 ADD R3, R1, LR .text:0003BC14 CMP R3, R7 .text:0003BC18 BCS loc_3BC2C .text:0003BC1C LDRB R3, [R1,LR] .text:0003BC20 .text:0003BC20 loc_3BC20 ; CODE XREF: __gconv_transform_utf8_internal+B20j .text:0003BC20 AND R3, R3, #0xC0 .text:0003BC24 CMP R3, #0x80 .text:0003BC28 BEQ loc_3BC0C .text:0003BC2C .text:0003BC2C loc_3BC2C ; CODE XREF: __gconv_transform_utf8_internal+B18j .text:0003BC2C ; __gconv_transform_utf8_internal+B30j .text:0003BC2C ADD R2, R1, LR .text:0003BC30 CMP R2, R7 .text:0003BC34 BEQ loc_3BB2C .text:0003BC38 CMP R6, #0 .text:0003BC3C BEQ loc_3BCD0 .text:0003BC40 TST R9, #2 .text:0003BC44 BEQ loc_3BCD0 .text:0003BC48 LDR R3, [R6] .text:0003BC4C MOV R1, R2 .text:0003BC50 B loc_3BCC4 .text:0003BC54 ; --------------------------------------------------------------------------- .text:0003BC54 .text:0003BC54 loc_3BC54 ; CODE XREF: __gconv_transform_utf8_internal+B08j .text:0003BC54 MOV LR, #1 .text:0003BC58 CMP LR, R4 .text:0003BC5C BCS loc_3BC8C .text:0003BC60 LDRB R2, [R1,#1] .text:0003BC64 B loc_3BC80 .text:0003BC68 ; --------------------------------------------------------------------------- .text:0003BC68 .text:0003BC68 loc_3BC68 ; CODE XREF: __gconv_transform_utf8_internal+BA0j .text:0003BC68 AND R3, R2, #0x3F .text:0003BC6C ORR R12, R3, R12,LSL#6 .text:0003BC70 ADD LR, LR, #1 .text:0003BC74 CMP LR, R4 .text:0003BC78 BCS loc_3BC8C .text:0003BC7C LDRB R2, [R1,LR] .text:0003BC80 .text:0003BC80 loc_3BC80 ; CODE XREF: __gconv_transform_utf8_internal+B7Cj .text:0003BC80 AND R3, R2, #0xC0 .text:0003BC84 CMP R3, #0x80 .text:0003BC88 BEQ loc_3BC68 .text:0003BC8C .text:0003BC8C loc_3BC8C ; CODE XREF: __gconv_transform_utf8_internal+B74j .text:0003BC8C ; __gconv_transform_utf8_internal+B90j .text:0003BC8C CMP LR, R4 .text:0003BC90 BCC loc_3BCAC .text:0003BC94 CMP R4, #2 .text:0003BC98 BLS loc_3BCD8 .text:0003BC9C ADD R3, R4, R4,LSL#2 .text:0003BCA0 SUB R3, R3, #4 .text:0003BCA4 MOVS R3, R12,LSR R3 .text:0003BCA8 BNE loc_3BCD8 .text:0003BCAC .text:0003BCAC loc_3BCAC ; CODE XREF: __gconv_transform_utf8_internal+BA8j .text:0003BCAC CMP R6, #0 .text:0003BCB0 BEQ loc_3BCD0 .text:0003BCB4 TST R9, #2 .text:0003BCB8 BEQ loc_3BCD0 .text:0003BCBC LDR R3, [R6] .text:0003BCC0 ADD R1, R1, LR .text:0003BCC4 .text:0003BCC4 loc_3BCC4 ; CODE XREF: __gconv_transform_utf8_internal+B68j .text:0003BCC4 ADD R3, R3, #1 .text:0003BCC8 STR R3, [R6] .text:0003BCCC B loc_3BCE4 .text:0003BCD0 ; --------------------------------------------------------------------------- .text:0003BCD0 .text:0003BCD0 loc_3BCD0 ; CODE XREF: __gconv_transform_utf8_internal+AC4j .text:0003BCD0 ; __gconv_transform_utf8_internal+ACCj ... .text:0003BCD0 MOV R10, #6 .text:0003BCD4 B loc_3BD04 .text:0003BCD8 ; --------------------------------------------------------------------------- .text:0003BCD8 .text:0003BCD8 loc_3BCD8 ; CODE XREF: __gconv_transform_utf8_internal+BB0j .text:0003BCD8 ; __gconv_transform_utf8_internal+BC0j .text:0003BCD8 MOV R1, R0 .text:0003BCDC .text:0003BCDC loc_3BCDC ; CODE XREF: __gconv_transform_utf8_internal+A58j .text:0003BCDC STR R12, [R8] .text:0003BCE0 MOV R8, R5 .text:0003BCE4 .text:0003BCE4 loc_3BCE4 ; CODE XREF: __gconv_transform_utf8_internal+AE0j .text:0003BCE4 ; __gconv_transform_utf8_internal+AF8j ... .text:0003BCE4 CMP R1, R7 .text:0003BCE8 BEQ loc_3BD04 .text:0003BCEC ADD R3, R8, #4 .text:0003BCF0 LDR R0, [R11,#var_68] .text:0003BCF4 MOV R5, R3 .text:0003BCF8 CMP R3, R0 .text:0003BCFC .text:0003BCFC loc_3BCFC ; CODE XREF: __gconv_transform_utf8_internal+A40j .text:0003BCFC BLS loc_3BB34 .text:0003BD00 MOV R10, #5 .text:0003BD04 .text:0003BD04 loc_3BD04 ; CODE XREF: __gconv_transform_utf8_internal+A2Cj .text:0003BD04 ; __gconv_transform_utf8_internal+A48j ... .text:0003BD04 LDR R2, [R11,#var_48] .text:0003BD08 STR R1, [R2] .text:0003BD0C LDR R3, [R11,#var_6C] .text:0003BD10 STR R8, [R3] .text:0003BD14 LDR R2, [R11,#var_38] .text:0003BD18 LDR R3, [R11,#var_40] .text:0003BD1C CMP R2, R3 .text:0003BD20 BEQ loc_3BD3C .text:0003BD24 LDR R0, =aOutbufOuterr ; "outbuf == outerr" .text:0003BD28 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003BD2C MOV R2, #0x220 .text:0003BD30 LDR R3, =a__gconv_tran_6 ; "__gconv_transform_utf8_internal" .text:0003BD34 ADD R2, R2, #3 .text:0003BD38 BL __assert_fail .text:0003BD3C ; --------------------------------------------------------------------------- .text:0003BD3C .text:0003BD3C loc_3BD3C ; CODE XREF: __gconv_transform_utf8_internal+C38j .text:0003BD3C CMP R10, #5 .text:0003BD40 BEQ loc_3BD58 .text:0003BD44 LDR R0, =aNstatus__gconv ; "nstatus == __GCONV_FULL_OUTPUT" .text:0003BD48 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003BD4C LDR R3, =a__gconv_tran_6 ; "__gconv_transform_utf8_internal" .text:0003BD50 MOV R2, #0x224 .text:0003BD54 BL __assert_fail .text:0003BD58 ; --------------------------------------------------------------------------- .text:0003BD58 .text:0003BD58 loc_3BD58 ; CODE XREF: __gconv_transform_utf8_internal+C58j .text:0003BD58 LDR R12, [R11,#var_5C] .text:0003BD5C CMP R2, R12 .text:0003BD60 LDREQ R0, [R11,#var_44] .text:0003BD64 LDREQ R3, [R0,#0xC] .text:0003BD68 SUBEQ R3, R3, #1 .text:0003BD6C STREQ R3, [R0,#0xC] .text:0003BD70 .text:0003BD70 loc_3BD70 ; CODE XREF: __gconv_transform_utf8_internal+9FCj .text:0003BD70 LDR R5, [R11,#var_64] .text:0003BD74 B loc_3BD8C .text:0003BD78 ; --------------------------------------------------------------------------- .text:0003BD78 .text:0003BD78 loc_3BD78 ; CODE XREF: __gconv_transform_utf8_internal+9ECj .text:0003BD78 CMP R8, #5 .text:0003BD7C LDREQ R1, [R11,#var_44] .text:0003BD80 LDREQ R3, [R1] .text:0003BD84 MOVEQ R5, R4 .text:0003BD88 STREQ R3, [R11,#var_38] .text:0003BD8C .text:0003BD8C loc_3BD8C ; CODE XREF: __gconv_transform_utf8_internal+9A0j .text:0003BD8C ; __gconv_transform_utf8_internal+C8Cj .text:0003BD8C CMP R5, #0 .text:0003BD90 LDREQ R2, [R11,#var_44] .text:0003BD94 LDREQ R3, [R2] .text:0003BD98 STREQ R3, [R11,#var_38] .text:0003BD9C BEQ loc_3B7D4 .text:0003BDA0 .text:0003BDA0 loc_3BDA0 ; CODE XREF: __gconv_transform_utf8_internal+6E8j .text:0003BDA0 LDR R12, [R11,#arg_C] .text:0003BDA4 CMP R5, #7 .text:0003BDA8 MOVNE R3, #0 .text:0003BDAC MOVEQ R3, #1 .text:0003BDB0 CMP R12, #0 .text:0003BDB4 MOVEQ R3, #0 .text:0003BDB8 CMP R3, #0 .text:0003BDBC BEQ loc_3BEB0 .text:0003BDC0 SUB R0, R11, #-var_48 .text:0003BDC4 LDMIA R0, {R0,R2} .text:0003BDC8 LDR R3, [R0] .text:0003BDCC LDR R1, [R2,#0x14] .text:0003BDD0 LDRB R0, [R3] .text:0003BDD4 RSB R3, R3, R7 .text:0003BDD8 STR R3, [R1] .text:0003BDDC SUB R2, R0, #0xC2 .text:0003BDE0 CMP R2, #0x1D .text:0003BDE4 MOVLS R12, #2 .text:0003BDE8 ANDLS R0, R0, #0x1F .text:0003BDEC BLS loc_3BE5C .text:0003BDF0 AND R3, R0, #0xF0 .text:0003BDF4 CMP R3, #0xE0 .text:0003BDF8 MOVEQ R12, #3 .text:0003BDFC ANDEQ R0, R0, #0xF .text:0003BE00 BEQ loc_3BE5C .text:0003BE04 AND R3, R0, #0xF8 .text:0003BE08 CMP R3, #0xF0 .text:0003BE0C MOVEQ R12, #4 .text:0003BE10 ANDEQ R0, R0, #7 .text:0003BE14 BEQ loc_3BE5C .text:0003BE18 AND R3, R0, #0xFC .text:0003BE1C CMP R3, #0xF8 .text:0003BE20 BNE loc_3BE54 .text:0003BE24 MOV R12, #5 .text:0003BE28 AND R0, R0, #3 .text:0003BE2C B loc_3BE5C .text:0003BE30 ; --------------------------------------------------------------------------- .text:0003BE30 .text:0003BE30 loc_3BE30 ; CODE XREF: __gconv_transform_utf8_internal+924j .text:0003BE30 LDR R3, [R11,#var_38] .text:0003BE34 LDR R12, [R11,#arg_0] .text:0003BE38 MOV R0, R5 .text:0003BE3C STR R3, [R12] .text:0003BE40 B locret_3BEB4 .text:0003BE40 ; --------------------------------------------------------------------------- .text:0003BE44 off_3BE44 DCD aOutbufOuterr ; DATA XREF: __gconv_transform_utf8_internal+C3Cr .text:0003BE44 ; "outbuf == outerr" .text:0003BE48 off_3BE48 DCD a__IconvSkeleto ; DATA XREF: __gconv_transform_utf8_internal+C40r .text:0003BE48 ; __gconv_transform_utf8_internal+C60r .text:0003BE48 ; "../iconv/skeleton.c" .text:0003BE4C off_3BE4C DCD a__gconv_tran_6 ; DATA XREF: __gconv_transform_utf8_internal+C48r .text:0003BE4C ; __gconv_transform_utf8_internal+C64r .text:0003BE4C ; "__gconv_transform_utf8_internal" .text:0003BE50 off_3BE50 DCD aNstatus__gconv ; DATA XREF: __gconv_transform_utf8_internal+C5Cr .text:0003BE50 ; "nstatus == __GCONV_FULL_OUTPUT" .text:0003BE54 ; --------------------------------------------------------------------------- .text:0003BE54 .text:0003BE54 loc_3BE54 ; CODE XREF: __gconv_transform_utf8_internal+D38j .text:0003BE54 MOV R12, #6 .text:0003BE58 AND R0, R0, #1 .text:0003BE5C .text:0003BE5C loc_3BE5C ; CODE XREF: __gconv_transform_utf8_internal+D04j .text:0003BE5C ; __gconv_transform_utf8_internal+D18j ... .text:0003BE5C LDR R2, [R11,#var_48] .text:0003BE60 LDR R3, [R2] .text:0003BE64 SUB R12, R12, #1 .text:0003BE68 ADD R3, R3, #1 .text:0003BE6C CMP R3, R7 .text:0003BE70 STR R3, [R2] .text:0003BE74 BCS loc_3BEA0 .text:0003BE78 .text:0003BE78 loc_3BE78 ; CODE XREF: __gconv_transform_utf8_internal+DB4j .text:0003BE78 LDR R3, [R11,#var_48] .text:0003BE7C LDR R2, [R3] .text:0003BE80 LDRB R3, [R2],#1 .text:0003BE84 SUB R12, R12, #1 .text:0003BE88 AND R3, R3, #0x3F .text:0003BE8C ORR R0, R3, R0,LSL#6 .text:0003BE90 LDR R3, [R11,#var_48] .text:0003BE94 CMP R2, R7 .text:0003BE98 STR R2, [R3] .text:0003BE9C BCC loc_3BE78 .text:0003BEA0 .text:0003BEA0 loc_3BEA0 ; CODE XREF: __gconv_transform_utf8_internal+D8Cj .text:0003BEA0 ADD R3, R12, R12,LSL#1 .text:0003BEA4 MOV R3, R3,LSL#1 .text:0003BEA8 MOV R0, R0,LSL R3 .text:0003BEAC STR R0, [R1,#4] .text:0003BEB0 .text:0003BEB0 loc_3BEB0 ; CODE XREF: __gconv_transform_utf8_internal+9Cj .text:0003BEB0 ; __gconv_transform_utf8_internal+E0j ... .text:0003BEB0 MOV R0, R5 .text:0003BEB4 .text:0003BEB4 locret_3BEB4 ; CODE XREF: __gconv_transform_utf8_internal+D58j .text:0003BEB4 LDMDB R11, {R4-R11,SP,PC} .text:0003BEB4 ; End of function __gconv_transform_utf8_internal .text:0003BEB4 .text:0003BEB8 .text:0003BEB8 ; =============== S U B R O U T I N E ======================================= .text:0003BEB8 .text:0003BEB8 ; Attributes: bp-based frame .text:0003BEB8 .text:0003BEB8 EXPORT __gconv_transform_ucs2_internal .text:0003BEB8 __gconv_transform_ucs2_internal .text:0003BEB8 .text:0003BEB8 var_7C = -0x7C .text:0003BEB8 var_78 = -0x78 .text:0003BEB8 var_74 = -0x74 .text:0003BEB8 var_70 = -0x70 .text:0003BEB8 var_6C = -0x6C .text:0003BEB8 var_68 = -0x68 .text:0003BEB8 var_64 = -0x64 .text:0003BEB8 var_60 = -0x60 .text:0003BEB8 var_5C = -0x5C .text:0003BEB8 var_58 = -0x58 .text:0003BEB8 var_54 = -0x54 .text:0003BEB8 var_50 = -0x50 .text:0003BEB8 var_4C = -0x4C .text:0003BEB8 var_48 = -0x48 .text:0003BEB8 var_44 = -0x44 .text:0003BEB8 var_40 = -0x40 .text:0003BEB8 var_3C = -0x3C .text:0003BEB8 var_38 = -0x38 .text:0003BEB8 var_34 = -0x34 .text:0003BEB8 var_30 = -0x30 .text:0003BEB8 var_2C = -0x2C .text:0003BEB8 var_2A = -0x2A .text:0003BEB8 arg_0 = 4 .text:0003BEB8 arg_4 = 8 .text:0003BEB8 arg_8 = 0xC .text:0003BEB8 arg_C = 0x10 .text:0003BEB8 .text:0003BEB8 MOV R12, SP .text:0003BEBC STMFD SP!, {R4-R12,LR,PC} .text:0003BEC0 SUB R11, R12, #4 .text:0003BEC4 MOV R7, R1 .text:0003BEC8 SUB SP, SP, #0x54 .text:0003BECC LDR R1, [R7,#8] .text:0003BED0 MOV R12, #0 .text:0003BED4 STR R12, [R11,#var_48] .text:0003BED8 STR R2, [R11,#var_3C] .text:0003BEDC ADD R0, R0, #0x38 .text:0003BEE0 STR R0, [R11,#var_40] .text:0003BEE4 MOV R6, R3 .text:0003BEE8 ADD R0, R7, #0x24 .text:0003BEEC STR R0, [R11,#var_44] .text:0003BEF0 TST R1, #1 .text:0003BEF4 LDREQ R1, [R11,#var_40] .text:0003BEF8 LDREQ R1, [R1,#0x14] .text:0003BEFC STREQ R1, [R11,#var_48] .text:0003BF00 LDR R3, [R11,#arg_8] .text:0003BF04 CMP R3, #0 .text:0003BF08 BEQ loc_3BF94 .text:0003BF0C LDR R2, [R11,#arg_0] .text:0003BF10 MOV R5, #0 .text:0003BF14 CMP R2, R5 .text:0003BF18 BEQ loc_3BF30 .text:0003BF1C LDR R0, =aOutbufstartVoi ; "outbufstart == ((void *)0)" .text:0003BF20 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003BF24 LDR R3, =a__gconv_tran_7 ; "__gconv_transform_ucs2_internal" .text:0003BF28 MOV R2, #0x130 .text:0003BF2C BL __assert_fail .text:0003BF30 ; --------------------------------------------------------------------------- .text:0003BF30 .text:0003BF30 loc_3BF30 ; CODE XREF: __gconv_transform_ucs2_internal+60j .text:0003BF30 MOV R1, R5 .text:0003BF34 LDR R0, [R7,#0x14] .text:0003BF38 MOV R2, #8 .text:0003BF3C BL memset .text:0003BF40 LDR R3, [R7,#8] .text:0003BF44 TST R3, #1 .text:0003BF48 BNE loc_3C654 .text:0003BF4C LDR R0, [R11,#var_48] .text:0003BF50 BL _dl_mcount_wrapper_check .text:0003BF54 STR R5, [SP,#0x7C+var_7C] .text:0003BF58 LDR R3, [R11,#arg_4] .text:0003BF5C STR R3, [SP,#0x7C+var_78] .text:0003BF60 MOV R3, #1 .text:0003BF64 STR R3, [SP,#0x7C+var_74] .text:0003BF68 LDR R12, [R11,#arg_C] .text:0003BF6C STR R12, [SP,#0x7C+var_70] .text:0003BF70 LDR R0, [R11,#var_40] .text:0003BF74 LDR R1, [R11,#var_44] .text:0003BF78 MOV R2, R5 .text:0003BF7C LDR R12, [R11,#var_48] .text:0003BF80 MOV R3, R2 .text:0003BF84 MOV LR, PC .text:0003BF88 MOV PC, R12 .text:0003BF8C MOV R5, R0 .text:0003BF90 B loc_3C654 .text:0003BF94 ; --------------------------------------------------------------------------- .text:0003BF94 .text:0003BF94 loc_3BF94 ; CODE XREF: __gconv_transform_ucs2_internal+50j .text:0003BF94 LDR R1, [R11,#var_3C] .text:0003BF98 LDR R0, [R11,#arg_0] .text:0003BF9C LDR R1, [R1] .text:0003BFA0 CMP R0, #0 .text:0003BFA4 STR R1, [R11,#var_4C] .text:0003BFA8 LDREQ R3, [R7] .text:0003BFAC LDRNE R2, [R11,#arg_0] .text:0003BFB0 LDRNE R3, [R2] .text:0003BFB4 STR R3, [R11,#var_34] .text:0003BFB8 MOV R3, #0 .text:0003BFBC STR R3, [R11,#var_30] .text:0003BFC0 SUB R0, R11, #-var_34 .text:0003BFC4 STR R0, [R11,#var_68] .text:0003BFC8 LDR R3, [R11,#arg_4] .text:0003BFCC LDR R12, [R11,#arg_C] .text:0003BFD0 CMP R3, #0 .text:0003BFD4 SUBNE R9, R11, #-var_30 .text:0003BFD8 MOVEQ R9, #0 .text:0003BFDC LDR R1, [R7,#4] .text:0003BFE0 CMP R12, #0 .text:0003BFE4 STR R1, [R11,#var_50] .text:0003BFE8 BEQ loc_3C264 .text:0003BFEC LDR R5, [R7,#0x14] .text:0003BFF0 LDR R3, [R5] .text:0003BFF4 ANDS R3, R3, #7 .text:0003BFF8 BEQ loc_3C264 .text:0003BFFC LDR R2, [R11,#arg_0] .text:0003C000 CMP R2, #0 .text:0003C004 BEQ loc_3C020 .text:0003C008 LDR R0, =aOutbufstartVoi ; "outbufstart == ((void *)0)" .text:0003C00C LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003C010 MOV R2, #0x168 .text:0003C014 LDR R3, =a__gconv_tran_7 ; "__gconv_transform_ucs2_internal" .text:0003C018 ADD R2, R2, #2 .text:0003C01C BL __assert_fail .text:0003C020 ; --------------------------------------------------------------------------- .text:0003C020 .text:0003C020 loc_3C020 ; CODE XREF: __gconv_transform_ucs2_internal+14Cj .text:0003C020 LDR R12, [R11,#arg_0] .text:0003C024 STR R12, [R11,#var_58] .text:0003C028 LDR R0, [R11,#var_3C] .text:0003C02C LDR R1, [R11,#var_34] .text:0003C030 MOV R4, R12 .text:0003C034 LDR R12, [R0] .text:0003C038 STR R1, [R11,#var_5C] .text:0003C03C CMP R4, R3 .text:0003C040 LDR R10, [R7,#8] .text:0003C044 BCS loc_3C06C .text:0003C048 SUB R1, R11, #-var_2C .text:0003C04C .text:0003C04C loc_3C04C ; CODE XREF: __gconv_transform_ucs2_internal+1B0j .text:0003C04C ADD R3, R5, R4 .text:0003C050 LDRB R2, [R3,#4] .text:0003C054 STRB R2, [R1,R4] .text:0003C058 LDR R3, [R5] .text:0003C05C ADD R4, R4, #1 .text:0003C060 AND R3, R3, #7 .text:0003C064 CMP R4, R3 .text:0003C068 BCC loc_3C04C .text:0003C06C .text:0003C06C loc_3C06C ; CODE XREF: __gconv_transform_ucs2_internal+18Cj .text:0003C06C ADD R3, R12, #2 .text:0003C070 RSB R3, R4, R3 .text:0003C074 CMP R3, R6 .text:0003C078 BLS loc_3C0AC .text:0003C07C LDR R2, [R11,#var_3C] .text:0003C080 CMP R12, R6 .text:0003C084 STR R6, [R2] .text:0003C088 BCS loc_3C0A4 .text:0003C08C .text:0003C08C loc_3C08C ; CODE XREF: __gconv_transform_ucs2_internal+1E8j .text:0003C08C ADD R2, R5, R4 .text:0003C090 LDRB R3, [R12],#1 .text:0003C094 ADD R4, R4, #1 .text:0003C098 CMP R12, R6 .text:0003C09C STRB R3, [R2,#4] .text:0003C0A0 BCC loc_3C08C .text:0003C0A4 .text:0003C0A4 loc_3C0A4 ; CODE XREF: __gconv_transform_ucs2_internal+1D0j .text:0003C0A4 MOV R5, #7 .text:0003C0A8 B loc_3C238 .text:0003C0AC ; --------------------------------------------------------------------------- .text:0003C0AC .text:0003C0AC loc_3C0AC ; CODE XREF: __gconv_transform_ucs2_internal+1C0j .text:0003C0AC LDR R0, [R11,#var_5C] .text:0003C0B0 LDR R1, [R11,#var_50] .text:0003C0B4 ADD R3, R0, #4 .text:0003C0B8 CMP R3, R1 .text:0003C0BC STR R3, [R11,#var_6C] .text:0003C0C0 MOVHI R5, #5 .text:0003C0C4 BHI loc_3C238 .text:0003C0C8 SUB LR, R11, #-var_2C .text:0003C0CC MOV R2, LR .text:0003C0D0 .text:0003C0D0 loc_3C0D0 ; CODE XREF: __gconv_transform_ucs2_internal+22Cj .text:0003C0D0 LDRB R3, [R12],#1 .text:0003C0D4 STRB R3, [R2,R4] .text:0003C0D8 ADD R4, R4, #1 .text:0003C0DC CMP R4, #1 .text:0003C0E0 CMPLS R12, R6 .text:0003C0E4 BCC loc_3C0D0 .text:0003C0E8 MOV R12, LR .text:0003C0EC MOV R0, 0x7FF .text:0003C0F4 ADD R8, R12, R4 .text:0003C0F8 AND R10, R10, #2 .text:0003C0FC B loc_3C12C .text:0003C100 ; --------------------------------------------------------------------------- .text:0003C100 .text:0003C100 loc_3C100 ; CODE XREF: __gconv_transform_ucs2_internal+29Cj .text:0003C100 LDR R3, [R9] .text:0003C104 ADD R12, LR, #2 .text:0003C108 ADD R3, R3, #1 .text:0003C10C STR R3, [R9] .text:0003C110 B loc_3C160 .text:0003C114 ; --------------------------------------------------------------------------- .text:0003C114 .text:0003C114 loc_3C114 ; CODE XREF: __gconv_transform_ucs2_internal+28Cj .text:0003C114 LDR R3, [R11,#var_5C] .text:0003C118 STR R2, [R3] .text:0003C11C LDR R12, [R11,#var_6C] .text:0003C120 STR R12, [R11,#var_5C] .text:0003C124 ADD R12, LR, #2 .text:0003C128 B loc_3C160 .text:0003C12C ; --------------------------------------------------------------------------- .text:0003C12C .text:0003C12C loc_3C12C ; CODE XREF: __gconv_transform_ucs2_internal+244j .text:0003C12C LDRB R1, [LR] .text:0003C130 LDRB R2, [LR,#1] .text:0003C134 ORR R2, R1, R2,LSL#8 .text:0003C138 ADD R3, R2, #0x2800 .text:0003C13C MOV R3, R3,LSL#16 .text:0003C140 CMP R0, R3,LSR#16 .text:0003C144 BCC loc_3C114 .text:0003C148 CMP R9, #0 .text:0003C14C BEQ loc_3C158 .text:0003C150 CMP R10, #0 .text:0003C154 BNE loc_3C100 .text:0003C158 .text:0003C158 loc_3C158 ; CODE XREF: __gconv_transform_ucs2_internal+294j .text:0003C158 MOV R0, #6 .text:0003C15C STR R0, [R11,#var_58] .text:0003C160 .text:0003C160 loc_3C160 ; CODE XREF: __gconv_transform_ucs2_internal+258j .text:0003C160 ; __gconv_transform_ucs2_internal+270j .text:0003C160 CMP R12, LR .text:0003C164 BEQ loc_3C1C4 .text:0003C168 LDR R3, [R5] .text:0003C16C RSB R1, LR, R12 .text:0003C170 AND R2, R3, #7 .text:0003C174 CMP R1, R2 .text:0003C178 BGT loc_3C190 .text:0003C17C LDR R0, =aInptrBytebufSt ; "inptr - bytebuf > (state->__count & 7)" .text:0003C180 LDR R1, =a__IconvLoop_c ; "../iconv/loop.c" .text:0003C184 LDR R3, =aUcs2_internal_ ; "ucs2_internal_loop_single" .text:0003C188 MOV R2, #0x17C .text:0003C18C BL __assert_fail .text:0003C190 ; --------------------------------------------------------------------------- .text:0003C190 .text:0003C190 loc_3C190 ; CODE XREF: __gconv_transform_ucs2_internal+2C0j .text:0003C190 LDR R3, [R11,#var_5C] .text:0003C194 STR R3, [R11,#var_34] .text:0003C198 LDR R12, [R11,#var_3C] .text:0003C19C LDR R3, [R12] .text:0003C1A0 RSB R2, R2, R1 .text:0003C1A4 ADD R3, R3, R2 .text:0003C1A8 STR R3, [R12] .text:0003C1AC LDR R2, [R5] .text:0003C1B0 MOV R0, #0 .text:0003C1B4 STR R0, [R11,#var_58] .text:0003C1B8 BIC R2, R2, #7 .text:0003C1BC STR R2, [R5] .text:0003C1C0 B loc_3C234 .text:0003C1C4 ; --------------------------------------------------------------------------- .text:0003C1C4 .text:0003C1C4 loc_3C1C4 ; CODE XREF: __gconv_transform_ucs2_internal+2ACj .text:0003C1C4 LDR R1, [R11,#var_58] .text:0003C1C8 CMP R1, #7 .text:0003C1CC BNE loc_3C234 .text:0003C1D0 SUB R3, R11, #-var_2A .text:0003C1D4 CMP R8, R3 .text:0003C1D8 BNE loc_3C1F4 .text:0003C1DC LDR R0, =aInendBytebuf2 ; "inend != &bytebuf[2]" .text:0003C1E0 LDR R1, =a__IconvLoop_c ; "../iconv/loop.c" .text:0003C1E4 MOV R2, #0x188 .text:0003C1E8 LDR R3, =aUcs2_internal_ ; "ucs2_internal_loop_single" .text:0003C1EC ADD R2, R2, #2 .text:0003C1F0 BL __assert_fail .text:0003C1F4 ; --------------------------------------------------------------------------- .text:0003C1F4 .text:0003C1F4 loc_3C1F4 ; CODE XREF: __gconv_transform_ucs2_internal+320j .text:0003C1F4 CMP R12, R8 .text:0003C1F8 LDR R3, [R5] .text:0003C1FC RSB R1, R12, R8 .text:0003C200 LDR R0, [R11,#var_3C] .text:0003C204 AND R3, R3, #7 .text:0003C208 LDR R2, [R0] .text:0003C20C RSB R1, R3, R1 .text:0003C210 ADD R2, R2, R1 .text:0003C214 STR R2, [R0] .text:0003C218 BCS loc_3C234 .text:0003C21C .text:0003C21C loc_3C21C ; CODE XREF: __gconv_transform_ucs2_internal+378j .text:0003C21C ADD R2, R5, R4 .text:0003C220 LDRB R3, [R12],#1 .text:0003C224 ADD R4, R4, #1 .text:0003C228 CMP R12, R8 .text:0003C22C STRB R3, [R2,#4] .text:0003C230 BCC loc_3C21C .text:0003C234 .text:0003C234 loc_3C234 ; CODE XREF: __gconv_transform_ucs2_internal+308j .text:0003C234 ; __gconv_transform_ucs2_internal+314j ... .text:0003C234 LDR R5, [R11,#var_58] .text:0003C238 .text:0003C238 loc_3C238 ; CODE XREF: __gconv_transform_ucs2_internal+1F0j .text:0003C238 ; __gconv_transform_ucs2_internal+20Cj .text:0003C238 CMP R5, #0 .text:0003C23C BEQ loc_3C264 .text:0003C240 B loc_3C654 .text:0003C244 ; --------------------------------------------------------------------------- .text:0003C244 .text:0003C244 loc_3C244 ; CODE XREF: __gconv_transform_ucs2_internal+630j .text:0003C244 LDR R3, [R11,#var_34] .text:0003C248 STR R3, [R7] .text:0003C24C LDR R1, [R11,#arg_4] .text:0003C250 LDR R3, [R11,#var_30] .text:0003C254 LDR R2, [R1] .text:0003C258 ADD R2, R2, R3 .text:0003C25C STR R2, [R1] .text:0003C260 B loc_3C590 .text:0003C264 ; --------------------------------------------------------------------------- .text:0003C264 .text:0003C264 loc_3C264 ; CODE XREF: __gconv_transform_ucs2_internal+130j .text:0003C264 ; __gconv_transform_ucs2_internal+140j ... .text:0003C264 LDR R3, [R11,#var_4C] .text:0003C268 MOV R2, #0 .text:0003C26C STR R2, [R11,#var_54] .text:0003C270 TST R3, #1 .text:0003C274 BNE loc_3C290 .text:0003C278 LDR R3, [R7,#8] .text:0003C27C TST R3, #1 .text:0003C280 BEQ loc_3C298 .text:0003C284 LDR R3, [R11,#var_34] .text:0003C288 TST R3, #3 .text:0003C28C BEQ loc_3C298 .text:0003C290 .text:0003C290 loc_3C290 ; CODE XREF: __gconv_transform_ucs2_internal+3BCj .text:0003C290 MOV R12, #1 .text:0003C294 STR R12, [R11,#var_54] .text:0003C298 .text:0003C298 loc_3C298 ; CODE XREF: __gconv_transform_ucs2_internal+3C8j .text:0003C298 ; __gconv_transform_ucs2_internal+3D4j ... .text:0003C298 LDR R0, [R11,#var_3C] .text:0003C29C LDR R1, [R11,#var_54] .text:0003C2A0 LDR R10, [R11,#var_34] .text:0003C2A4 LDR R0, [R0] .text:0003C2A8 CMP R1, #0 .text:0003C2AC STR R0, [R11,#var_4C] .text:0003C2B0 BNE loc_3C3B0 .text:0003C2B4 MOV R8, #4 .text:0003C2B8 MOV LR, R0 .text:0003C2BC MOV R0, R10 .text:0003C2C0 MOV R5, 0x7FF .text:0003C2C8 LDR R3, [R7,#8] .text:0003C2CC CMP LR, R6 .text:0003C2D0 AND R3, R3, #2 .text:0003C2D4 STR R3, [R11,#var_60] .text:0003C2D8 BEQ loc_3C388 .text:0003C2DC LDR R2, [R11,#var_50] .text:0003C2E0 ADD R4, R10, R8 .text:0003C2E4 CMP R4, R2 .text:0003C2E8 B loc_3C374 .text:0003C2E8 ; --------------------------------------------------------------------------- .text:0003C2EC off_3C2EC DCD aOutbufstartVoi ; DATA XREF: __gconv_transform_ucs2_internal+64r .text:0003C2EC ; __gconv_transform_ucs2_internal+150r .text:0003C2EC ; "outbufstart == ((void *)0)" .text:0003C2F0 off_3C2F0 DCD a__IconvSkeleto ; DATA XREF: __gconv_transform_ucs2_internal+68r .text:0003C2F0 ; __gconv_transform_ucs2_internal+154r .text:0003C2F0 ; "../iconv/skeleton.c" .text:0003C2F4 off_3C2F4 DCD a__gconv_tran_7 ; DATA XREF: __gconv_transform_ucs2_internal+6Cr .text:0003C2F4 ; __gconv_transform_ucs2_internal+15Cr .text:0003C2F4 ; "__gconv_transform_ucs2_internal" .text:0003C2F8 off_3C2F8 DCD aInptrBytebufSt ; DATA XREF: __gconv_transform_ucs2_internal+2C4r .text:0003C2F8 ; "inptr - bytebuf > (state->__count & 7)" .text:0003C2FC off_3C2FC DCD a__IconvLoop_c ; DATA XREF: __gconv_transform_ucs2_internal+2C8r .text:0003C2FC ; __gconv_transform_ucs2_internal+328r .text:0003C2FC ; "../iconv/loop.c" .text:0003C300 off_3C300 DCD aUcs2_internal_ ; DATA XREF: __gconv_transform_ucs2_internal+2CCr .text:0003C300 ; __gconv_transform_ucs2_internal+330r .text:0003C300 ; "ucs2_internal_loop_single" .text:0003C304 off_3C304 DCD aInendBytebuf2 ; DATA XREF: __gconv_transform_ucs2_internal+324r .text:0003C304 ; "inend != &bytebuf[2]" .text:0003C308 ; --------------------------------------------------------------------------- .text:0003C308 .text:0003C308 loc_3C308 ; CODE XREF: __gconv_transform_ucs2_internal+4C8j .text:0003C308 LDRB R1, [LR] .text:0003C30C LDRB R2, [LR,#1] .text:0003C310 ORR R2, R1, R2,LSL#8 .text:0003C314 ADD R3, R2, #0x2800 .text:0003C318 MOV R3, R3,LSL#16 .text:0003C31C CMP R5, R3,LSR#16 .text:0003C320 BCC loc_3C354 .text:0003C324 CMP R9, #0 .text:0003C328 BEQ loc_3C338 .text:0003C32C LDR R3, [R11,#var_60] .text:0003C330 CMP R3, #0 .text:0003C334 BNE loc_3C340 .text:0003C338 .text:0003C338 loc_3C338 ; CODE XREF: __gconv_transform_ucs2_internal+470j .text:0003C338 MOV R8, #6 .text:0003C33C B loc_3C388 .text:0003C340 ; --------------------------------------------------------------------------- .text:0003C340 .text:0003C340 loc_3C340 ; CODE XREF: __gconv_transform_ucs2_internal+47Cj .text:0003C340 LDR R3, [R9] .text:0003C344 MOV LR, R12 .text:0003C348 ADD R3, R3, #1 .text:0003C34C STR R3, [R9] .text:0003C350 B loc_3C360 .text:0003C354 ; --------------------------------------------------------------------------- .text:0003C354 .text:0003C354 loc_3C354 ; CODE XREF: __gconv_transform_ucs2_internal+468j .text:0003C354 STR R2, [R0] .text:0003C358 MOV R0, R4 .text:0003C35C MOV LR, R12 .text:0003C360 .text:0003C360 loc_3C360 ; CODE XREF: __gconv_transform_ucs2_internal+498j .text:0003C360 CMP LR, R6 .text:0003C364 BEQ loc_3C388 .text:0003C368 LDR R12, [R11,#var_50] .text:0003C36C ADD R4, R0, #4 .text:0003C370 CMP R4, R12 .text:0003C374 .text:0003C374 loc_3C374 ; CODE XREF: __gconv_transform_ucs2_internal+430j .text:0003C374 BHI loc_3C3A0 .text:0003C378 ADD R12, LR, #2 .text:0003C37C CMP R12, R6 .text:0003C380 BLS loc_3C308 .text:0003C384 MOV R8, #7 .text:0003C388 .text:0003C388 loc_3C388 ; CODE XREF: __gconv_transform_ucs2_internal+420j .text:0003C388 ; __gconv_transform_ucs2_internal+484j ... .text:0003C388 LDR R1, [R11,#var_3C] .text:0003C38C STR LR, [R1] .text:0003C390 LDR R2, [R11,#var_68] .text:0003C394 MOV R5, R8 .text:0003C398 STR R0, [R2] .text:0003C39C B loc_3C47C .text:0003C3A0 ; --------------------------------------------------------------------------- .text:0003C3A0 .text:0003C3A0 loc_3C3A0 ; CODE XREF: __gconv_transform_ucs2_internal:loc_3C374j .text:0003C3A0 MOV R8, #5 .text:0003C3A4 B loc_3C388 .text:0003C3A8 ; --------------------------------------------------------------------------- .text:0003C3A8 .text:0003C3A8 loc_3C3A8 ; CODE XREF: __gconv_transform_ucs2_internal:loc_3C454j .text:0003C3A8 MOV R8, #5 .text:0003C3AC B loc_3C468 .text:0003C3B0 ; --------------------------------------------------------------------------- .text:0003C3B0 .text:0003C3B0 loc_3C3B0 ; CODE XREF: __gconv_transform_ucs2_internal+3F8j .text:0003C3B0 MOV R8, #4 .text:0003C3B4 MOV R0, R10 .text:0003C3B8 MOV R5, #0x7F0 .text:0003C3BC LDR LR, [R11,#var_4C] .text:0003C3C0 ADD R5, R5, #0xF .text:0003C3C4 LDR R3, [R7,#8] .text:0003C3C8 CMP LR, R6 .text:0003C3CC AND R3, R3, #2 .text:0003C3D0 STR R3, [R11,#var_64] .text:0003C3D4 BEQ loc_3C468 .text:0003C3D8 LDR R3, [R11,#var_50] .text:0003C3DC ADD R4, R10, R8 .text:0003C3E0 CMP R4, R3 .text:0003C3E4 B loc_3C454 .text:0003C3E8 ; --------------------------------------------------------------------------- .text:0003C3E8 .text:0003C3E8 loc_3C3E8 ; CODE XREF: __gconv_transform_ucs2_internal+5A8j .text:0003C3E8 LDRB R1, [LR] .text:0003C3EC LDRB R2, [LR,#1] .text:0003C3F0 ORR R2, R1, R2,LSL#8 .text:0003C3F4 ADD R3, R2, #0x2800 .text:0003C3F8 MOV R3, R3,LSL#16 .text:0003C3FC CMP R5, R3,LSR#16 .text:0003C400 BCC loc_3C434 .text:0003C404 CMP R9, #0 .text:0003C408 BEQ loc_3C418 .text:0003C40C LDR R1, [R11,#var_64] .text:0003C410 CMP R1, #0 .text:0003C414 BNE loc_3C420 .text:0003C418 .text:0003C418 loc_3C418 ; CODE XREF: __gconv_transform_ucs2_internal+550j .text:0003C418 MOV R8, #6 .text:0003C41C B loc_3C468 .text:0003C420 ; --------------------------------------------------------------------------- .text:0003C420 .text:0003C420 loc_3C420 ; CODE XREF: __gconv_transform_ucs2_internal+55Cj .text:0003C420 LDR R3, [R9] .text:0003C424 MOV LR, R12 .text:0003C428 ADD R3, R3, #1 .text:0003C42C STR R3, [R9] .text:0003C430 B loc_3C440 .text:0003C434 ; --------------------------------------------------------------------------- .text:0003C434 .text:0003C434 loc_3C434 ; CODE XREF: __gconv_transform_ucs2_internal+548j .text:0003C434 STR R2, [R0] .text:0003C438 MOV R0, R4 .text:0003C43C MOV LR, R12 .text:0003C440 .text:0003C440 loc_3C440 ; CODE XREF: __gconv_transform_ucs2_internal+578j .text:0003C440 CMP LR, R6 .text:0003C444 BEQ loc_3C468 .text:0003C448 LDR R2, [R11,#var_50] .text:0003C44C ADD R4, R0, #4 .text:0003C450 CMP R4, R2 .text:0003C454 .text:0003C454 loc_3C454 ; CODE XREF: __gconv_transform_ucs2_internal+52Cj .text:0003C454 BHI loc_3C3A8 .text:0003C458 ADD R12, LR, #2 .text:0003C45C CMP R12, R6 .text:0003C460 BLS loc_3C3E8 .text:0003C464 MOV R8, #7 .text:0003C468 .text:0003C468 loc_3C468 ; CODE XREF: __gconv_transform_ucs2_internal+4F4j .text:0003C468 ; __gconv_transform_ucs2_internal+51Cj ... .text:0003C468 LDR R3, [R11,#var_3C] .text:0003C46C STR LR, [R3] .text:0003C470 LDR R12, [R11,#var_68] .text:0003C474 MOV R5, R8 .text:0003C478 STR R0, [R12] .text:0003C47C .text:0003C47C loc_3C47C ; CODE XREF: __gconv_transform_ucs2_internal+4E4j .text:0003C47C LDR R0, [R11,#arg_0] .text:0003C480 CMP R0, #0 .text:0003C484 BNE loc_3C5DC .text:0003C488 LDR R4, [R7,#0x20] .text:0003C48C CMP R4, #0 .text:0003C490 BEQ loc_3C4D4 .text:0003C494 .text:0003C494 loc_3C494 ; CODE XREF: __gconv_transform_ucs2_internal+618j .text:0003C494 LDR R0, [R4,#4] .text:0003C498 CMP R0, #0 .text:0003C49C BEQ loc_3C4C8 .text:0003C4A0 BL _dl_mcount_wrapper_check .text:0003C4A4 LDR R3, [R11,#var_34] .text:0003C4A8 LDR R0, [R4,#0xC] .text:0003C4AC STR R3, [SP,#0x7C+var_7C] .text:0003C4B0 LDR R12, [R11,#var_3C] .text:0003C4B4 LDR R1, [R11,#var_4C] .text:0003C4B8 LDR R2, [R12] .text:0003C4BC MOV R3, R10 .text:0003C4C0 MOV LR, PC .text:0003C4C4 LDR PC, [R4,#4] .text:0003C4C8 .text:0003C4C8 loc_3C4C8 ; CODE XREF: __gconv_transform_ucs2_internal+5E4j .text:0003C4C8 LDR R4, [R4,#0x10] .text:0003C4CC CMP R4, #0 .text:0003C4D0 BNE loc_3C494 .text:0003C4D4 .text:0003C4D4 loc_3C4D4 ; CODE XREF: __gconv_transform_ucs2_internal+5D8j .text:0003C4D4 ADD R2, R7, #8 .text:0003C4D8 LDMIA R2, {R2,R3} .text:0003C4DC ADD R3, R3, #1 .text:0003C4E0 ANDS R4, R2, #1 .text:0003C4E4 STR R3, [R7,#0xC] .text:0003C4E8 BNE loc_3C244 .text:0003C4EC LDR R3, [R11,#var_34] .text:0003C4F0 CMP R3, R10 .text:0003C4F4 BLS loc_3C580 .text:0003C4F8 LDR R3, [R7] .text:0003C4FC STR R3, [R11,#var_38] .text:0003C500 LDR R0, [R11,#var_48] .text:0003C504 BL _dl_mcount_wrapper_check .text:0003C508 STR R4, [SP,#0x7C+var_7C] .text:0003C50C LDR R0, [R11,#arg_4] .text:0003C510 STMFA SP, {R0,R4} .text:0003C514 LDR R1, [R11,#arg_C] .text:0003C518 STR R1, [SP,#0x7C+var_70] .text:0003C51C LDR R0, [R11,#var_40] .text:0003C520 LDR R1, [R11,#var_44] .text:0003C524 LDR R3, [R11,#var_34] .text:0003C528 LDR R12, [R11,#var_48] .text:0003C52C SUB R2, R11, #-var_38 .text:0003C530 MOV LR, PC .text:0003C534 MOV PC, R12 .text:0003C538 CMP R0, #4 .text:0003C53C BEQ loc_3C570 .text:0003C540 SUB R2, R11, #-var_38 .text:0003C544 LDMIA R2, {R2,R3} .text:0003C548 CMP R2, R3 .text:0003C54C BEQ loc_3C568 .text:0003C550 LDR R1, [R11,#var_3C] .text:0003C554 RSB R3, R2, R3 .text:0003C558 LDR R2, [R1] .text:0003C55C ADD R3, R3, R3,LSR#31 .text:0003C560 SUB R2, R2, R3,ASR#1 .text:0003C564 STR R2, [R1] .text:0003C568 .text:0003C568 loc_3C568 ; CODE XREF: __gconv_transform_ucs2_internal+694j .text:0003C568 MOV R5, R0 .text:0003C56C B loc_3C580 .text:0003C570 ; --------------------------------------------------------------------------- .text:0003C570 .text:0003C570 loc_3C570 ; CODE XREF: __gconv_transform_ucs2_internal+684j .text:0003C570 CMP R5, #5 .text:0003C574 LDREQ R3, [R7] .text:0003C578 MOVEQ R5, R4 .text:0003C57C STREQ R3, [R11,#var_34] .text:0003C580 .text:0003C580 loc_3C580 ; CODE XREF: __gconv_transform_ucs2_internal+63Cj .text:0003C580 ; __gconv_transform_ucs2_internal+6B4j .text:0003C580 CMP R5, #0 .text:0003C584 LDREQ R3, [R7] .text:0003C588 STREQ R3, [R11,#var_34] .text:0003C58C BEQ loc_3C298 .text:0003C590 .text:0003C590 loc_3C590 ; CODE XREF: __gconv_transform_ucs2_internal+3A8j .text:0003C590 LDR R2, [R11,#arg_C] .text:0003C594 CMP R5, #7 .text:0003C598 MOVNE R3, #0 .text:0003C59C MOVEQ R3, #1 .text:0003C5A0 CMP R2, #0 .text:0003C5A4 MOVEQ R3, #0 .text:0003C5A8 CMP R3, #0 .text:0003C5AC BEQ loc_3C654 .text:0003C5B0 LDR R3, [R11,#var_3C] .text:0003C5B4 LDR R2, [R3] .text:0003C5B8 RSB R3, R2, R6 .text:0003C5BC CMP R3, #3 .text:0003C5C0 BLE loc_3C5FC .text:0003C5C4 LDR R0, =aInendInptrp4 ; "inend - *inptrp < 4" .text:0003C5C8 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003C5CC MOV R2, #0x254 .text:0003C5D0 LDR R3, =a__gconv_tran_7 ; "__gconv_transform_ucs2_internal" .text:0003C5D4 ADD R2, R2, #3 .text:0003C5D8 BL __assert_fail .text:0003C5DC ; --------------------------------------------------------------------------- .text:0003C5DC .text:0003C5DC loc_3C5DC ; CODE XREF: __gconv_transform_ucs2_internal+5CCj .text:0003C5DC LDR R3, [R11,#var_34] .text:0003C5E0 LDR R12, [R11,#arg_0] .text:0003C5E4 MOV R0, R5 .text:0003C5E8 STR R3, [R12] .text:0003C5EC B locret_3C658 .text:0003C5EC ; --------------------------------------------------------------------------- .text:0003C5F0 off_3C5F0 DCD aInendInptrp4 ; DATA XREF: __gconv_transform_ucs2_internal+70Cr .text:0003C5F0 ; "inend - *inptrp < 4" .text:0003C5F4 off_3C5F4 DCD a__IconvSkeleto ; DATA XREF: __gconv_transform_ucs2_internal+710r .text:0003C5F4 ; "../iconv/skeleton.c" .text:0003C5F8 off_3C5F8 DCD a__gconv_tran_7 ; DATA XREF: __gconv_transform_ucs2_internal+718r .text:0003C5F8 ; "__gconv_transform_ucs2_internal" .text:0003C5FC ; --------------------------------------------------------------------------- .text:0003C5FC .text:0003C5FC loc_3C5FC ; CODE XREF: __gconv_transform_ucs2_internal+708j .text:0003C5FC MOV R0, #0 .text:0003C600 CMP R2, R6 .text:0003C604 BCS loc_3C634 .text:0003C608 .text:0003C608 loc_3C608 ; CODE XREF: __gconv_transform_ucs2_internal+778j .text:0003C608 LDR R1, [R11,#var_3C] .text:0003C60C LDR R2, [R7,#0x14] .text:0003C610 LDR R3, [R1] .text:0003C614 LDRB R1, [R3],#1 .text:0003C618 ADD R2, R2, R0 .text:0003C61C STRB R1, [R2,#4] .text:0003C620 ADD R0, R0, #1 .text:0003C624 LDR R2, [R11,#var_3C] .text:0003C628 CMP R3, R6 .text:0003C62C STR R3, [R2] .text:0003C630 BCC loc_3C608 .text:0003C634 .text:0003C634 loc_3C634 ; CODE XREF: __gconv_transform_ucs2_internal+74Cj .text:0003C634 LDR R2, [R7,#0x14] .text:0003C638 LDR R3, [R2] .text:0003C63C BIC R3, R3, #7 .text:0003C640 STR R3, [R2] .text:0003C644 LDR R1, [R7,#0x14] .text:0003C648 LDR R3, [R1] .text:0003C64C ORR R3, R3, R0 .text:0003C650 STR R3, [R1] .text:0003C654 .text:0003C654 loc_3C654 ; CODE XREF: __gconv_transform_ucs2_internal+90j .text:0003C654 ; __gconv_transform_ucs2_internal+D8j ... .text:0003C654 MOV R0, R5 .text:0003C658 .text:0003C658 locret_3C658 ; CODE XREF: __gconv_transform_ucs2_internal+734j .text:0003C658 LDMDB R11, {R4-R11,SP,PC} .text:0003C658 ; End of function __gconv_transform_ucs2_internal .text:0003C658 .text:0003C65C .text:0003C65C ; =============== S U B R O U T I N E ======================================= .text:0003C65C .text:0003C65C ; Attributes: bp-based frame .text:0003C65C .text:0003C65C EXPORT __gconv_transform_internal_ucs2 .text:0003C65C __gconv_transform_internal_ucs2 .text:0003C65C .text:0003C65C var_9C = -0x9C .text:0003C65C var_98 = -0x98 .text:0003C65C var_94 = -0x94 .text:0003C65C var_90 = -0x90 .text:0003C65C var_8C = -0x8C .text:0003C65C var_88 = -0x88 .text:0003C65C var_84 = -0x84 .text:0003C65C var_80 = -0x80 .text:0003C65C var_7C = -0x7C .text:0003C65C var_78 = -0x78 .text:0003C65C var_74 = -0x74 .text:0003C65C var_70 = -0x70 .text:0003C65C var_6C = -0x6C .text:0003C65C var_68 = -0x68 .text:0003C65C var_64 = -0x64 .text:0003C65C var_60 = -0x60 .text:0003C65C var_54 = -0x54 .text:0003C65C var_50 = -0x50 .text:0003C65C var_44 = -0x44 .text:0003C65C var_40 = -0x40 .text:0003C65C var_3C = -0x3C .text:0003C65C var_38 = -0x38 .text:0003C65C var_34 = -0x34 .text:0003C65C var_30 = -0x30 .text:0003C65C var_2C = -0x2C .text:0003C65C var_28 = -0x28 .text:0003C65C arg_0 = 4 .text:0003C65C arg_4 = 8 .text:0003C65C arg_8 = 0xC .text:0003C65C arg_C = 0x10 .text:0003C65C .text:0003C65C MOV R12, SP .text:0003C660 STMFD SP!, {R4-R12,LR,PC} .text:0003C664 SUB R11, R12, #4 .text:0003C668 MOV R7, R1 .text:0003C66C SUB SP, SP, #0x74 .text:0003C670 LDR R1, [R7,#8] .text:0003C674 MOV R12, #0 .text:0003C678 STR R12, [R11,#var_70] .text:0003C67C MOV R10, R2 .text:0003C680 STR R0, [R11,#var_64] .text:0003C684 TST R1, #1 .text:0003C688 ADD R1, R7, #0x24 .text:0003C68C STR R1, [R11,#var_6C] .text:0003C690 MOV R8, R3 .text:0003C694 ADD LR, R0, #0x38 .text:0003C698 STR LR, [R11,#var_68] .text:0003C69C LDREQ R2, [LR,#0x14] .text:0003C6A0 STREQ R2, [R11,#var_70] .text:0003C6A4 LDR R3, [R11,#arg_8] .text:0003C6A8 CMP R3, #0 .text:0003C6AC BEQ loc_3C738 .text:0003C6B0 LDR R3, [R11,#arg_0] .text:0003C6B4 MOV R6, #0 .text:0003C6B8 CMP R3, R6 .text:0003C6BC BEQ loc_3C6D4 .text:0003C6C0 LDR R0, =aOutbufstartVoi ; "outbufstart == ((void *)0)" .text:0003C6C4 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003C6C8 LDR R3, =a__gconv_tran_8 ; "__gconv_transform_internal_ucs2" .text:0003C6CC MOV R2, #0x130 .text:0003C6D0 BL __assert_fail .text:0003C6D4 ; --------------------------------------------------------------------------- .text:0003C6D4 .text:0003C6D4 loc_3C6D4 ; CODE XREF: __gconv_transform_internal_ucs2+60j .text:0003C6D4 MOV R1, R6 .text:0003C6D8 LDR R0, [R7,#0x14] .text:0003C6DC MOV R2, #8 .text:0003C6E0 BL memset .text:0003C6E4 LDR R3, [R7,#8] .text:0003C6E8 TST R3, #1 .text:0003C6EC BNE loc_3D034 .text:0003C6F0 LDR R0, [R11,#var_70] .text:0003C6F4 BL _dl_mcount_wrapper_check .text:0003C6F8 STR R6, [SP,#0x9C+var_9C] .text:0003C6FC LDR R12, [R11,#arg_4] .text:0003C700 MOV R3, #1 .text:0003C704 STR R3, [SP,#0x9C+var_94] .text:0003C708 STR R12, [SP,#0x9C+var_98] .text:0003C70C LDR LR, [R11,#arg_C] .text:0003C710 STR LR, [SP,#0x9C+var_90] .text:0003C714 LDR R0, [R11,#var_68] .text:0003C718 LDR R1, [R11,#var_6C] .text:0003C71C MOV R2, R6 .text:0003C720 LDR R12, [R11,#var_70] .text:0003C724 MOV R3, R2 .text:0003C728 MOV LR, PC .text:0003C72C MOV PC, R12 .text:0003C730 MOV R6, R0 .text:0003C734 B loc_3D034 .text:0003C738 ; --------------------------------------------------------------------------- .text:0003C738 .text:0003C738 loc_3C738 ; CODE XREF: __gconv_transform_internal_ucs2+50j .text:0003C738 LDR LR, [R11,#arg_0] .text:0003C73C LDR R1, [R10] .text:0003C740 CMP LR, #0 .text:0003C744 STR R1, [R11,#var_74] .text:0003C748 LDREQ R3, [R7] .text:0003C74C LDRNE R2, [R11,#arg_0] .text:0003C750 LDRNE R3, [R2] .text:0003C754 STR R3, [R11,#var_34] .text:0003C758 MOV R3, #0 .text:0003C75C STR R3, [R11,#var_30] .text:0003C760 SUB LR, R11, #-var_34 .text:0003C764 STR LR, [R11,#var_8C] .text:0003C768 LDR R3, [R11,#arg_4] .text:0003C76C LDR R12, [R11,#arg_C] .text:0003C770 CMP R3, #0 .text:0003C774 SUBNE R5, R11, #-var_30 .text:0003C778 MOVEQ R5, #0 .text:0003C77C LDR R1, [R7,#4] .text:0003C780 CMP R12, #0 .text:0003C784 STR R1, [R11,#var_78] .text:0003C788 BEQ loc_3CB08 .text:0003C78C LDR R2, [R7,#0x14] .text:0003C790 STR R2, [R11,#var_80] .text:0003C794 LDR R3, [R2] .text:0003C798 ANDS R1, R3, #7 .text:0003C79C BEQ loc_3CB08 .text:0003C7A0 LDR R3, [R11,#arg_0] .text:0003C7A4 CMP R3, #0 .text:0003C7A8 BEQ loc_3C7C4 .text:0003C7AC LDR R0, =aOutbufstartVoi ; "outbufstart == ((void *)0)" .text:0003C7B0 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003C7B4 MOV R2, #0x168 .text:0003C7B8 LDR R3, =a__gconv_tran_8 ; "__gconv_transform_internal_ucs2" .text:0003C7BC ADD R2, R2, #2 .text:0003C7C0 BL __assert_fail .text:0003C7C4 ; --------------------------------------------------------------------------- .text:0003C7C4 .text:0003C7C4 loc_3C7C4 ; CODE XREF: __gconv_transform_internal_ucs2+14Cj .text:0003C7C4 LDR R3, [R10] .text:0003C7C8 STR R3, [R11,#var_38] .text:0003C7CC LDR R2, [R11,#var_34] .text:0003C7D0 STR R2, [R11,#var_3C] .text:0003C7D4 LDR R0, [R11,#arg_0] .text:0003C7D8 MOV R6, R0 .text:0003C7DC LDR R12, [R7,#8] .text:0003C7E0 CMP R6, R1 .text:0003C7E4 STR R12, [R11,#var_88] .text:0003C7E8 BCS loc_3C814 .text:0003C7EC SUB R1, R11, #-var_2C .text:0003C7F0 .text:0003C7F0 loc_3C7F0 ; CODE XREF: __gconv_transform_internal_ucs2+1B4j .text:0003C7F0 LDR LR, [R11,#var_80] .text:0003C7F4 ADD R3, LR, R6 .text:0003C7F8 LDRB R2, [R3,#4] .text:0003C7FC STRB R2, [R1,R6] .text:0003C800 LDR R3, [LR] .text:0003C804 ADD R6, R6, #1 .text:0003C808 AND R3, R3, #7 .text:0003C80C CMP R6, R3 .text:0003C810 BCC loc_3C7F0 .text:0003C814 .text:0003C814 loc_3C814 ; CODE XREF: __gconv_transform_internal_ucs2+18Cj .text:0003C814 LDR R1, [R11,#var_38] .text:0003C818 ADD R3, R1, #4 .text:0003C81C RSB R3, R6, R3 .text:0003C820 CMP R3, R8 .text:0003C824 BLS loc_3C86C .text:0003C828 MOV R3, R1 .text:0003C82C CMP R3, R8 .text:0003C830 STR R8, [R10] .text:0003C834 BCS loc_3C864 .text:0003C838 .text:0003C838 loc_3C838 ; CODE XREF: __gconv_transform_internal_ucs2+204j .text:0003C838 LDR R1, [R11,#var_80] .text:0003C83C LDRB R3, [R3] .text:0003C840 ADD R2, R1, R6 .text:0003C844 STRB R3, [R2,#4] .text:0003C848 LDR R1, [R11,#var_38] .text:0003C84C ADD R6, R6, #1 .text:0003C850 ADD R1, R1, #1 .text:0003C854 MOV R3, R1 .text:0003C858 CMP R3, R8 .text:0003C85C STR R1, [R11,#var_38] .text:0003C860 BCC loc_3C838 .text:0003C864 .text:0003C864 loc_3C864 ; CODE XREF: __gconv_transform_internal_ucs2+1D8j .text:0003C864 MOV R6, #7 .text:0003C868 B loc_3CAD8 .text:0003C86C ; --------------------------------------------------------------------------- .text:0003C86C .text:0003C86C loc_3C86C ; CODE XREF: __gconv_transform_internal_ucs2+1C8j .text:0003C86C LDR R3, [R11,#var_3C] .text:0003C870 LDR R2, [R11,#var_78] .text:0003C874 ADD R3, R3, #2 .text:0003C878 CMP R3, R2 .text:0003C87C MOVHI R6, #5 .text:0003C880 BHI loc_3CAD8 .text:0003C884 SUB R9, R11, #-var_2C .text:0003C888 MOV R1, R9 .text:0003C88C .text:0003C88C loc_3C88C ; CODE XREF: __gconv_transform_internal_ucs2+254j .text:0003C88C LDR R3, [R11,#var_38] .text:0003C890 LDRB R2, [R3] .text:0003C894 STRB R2, [R1,R6] .text:0003C898 LDR R3, [R11,#var_38] .text:0003C89C ADD R6, R6, #1 .text:0003C8A0 ADD R3, R3, #1 .text:0003C8A4 CMP R6, #3 .text:0003C8A8 CMPLS R3, R8 .text:0003C8AC STR R3, [R11,#var_38] .text:0003C8B0 BCC loc_3C88C .text:0003C8B4 STR R9, [R11,#var_38] .text:0003C8B8 LDR R1, [R9] .text:0003C8BC ADD R3, R9, R6 .text:0003C8C0 STR R3, [R11,#var_84] .text:0003C8C4 CMP R1, #0x10000 .text:0003C8C8 BCC loc_3C968 .text:0003C8CC MOV R0, #6 .text:0003C8D0 CMP R5, #0 .text:0003C8D4 BEQ loc_3C9CC .text:0003C8D8 LDR R4, [R7,#0x20] .text:0003C8DC B loc_3C8E4 .text:0003C8E0 ; --------------------------------------------------------------------------- .text:0003C8E0 .text:0003C8E0 loc_3C8E0 ; CODE XREF: __gconv_transform_internal_ucs2+2D0j .text:0003C8E0 LDR R4, [R4,#0x10] .text:0003C8E4 .text:0003C8E4 loc_3C8E4 ; CODE XREF: __gconv_transform_internal_ucs2+280j .text:0003C8E4 CMP R4, #0 .text:0003C8E8 BEQ loc_3C930 .text:0003C8EC LDR R0, [R4] .text:0003C8F0 BL _dl_mcount_wrapper_check .text:0003C8F4 LDR R2, [R4,#0xC] .text:0003C8F8 SUB R3, R11, #-var_38 .text:0003C8FC STR R3, [SP,#0x9C+var_9C] .text:0003C900 LDR R12, [R11,#var_84] .text:0003C904 SUB R3, R11, #-var_3C .text:0003C908 STR R3, [SP,#0x9C+var_94] .text:0003C90C STR R5, [SP,#0x9C+var_90] .text:0003C910 STR R12, [SP,#0x9C+var_98] .text:0003C914 LDR R0, [R11,#var_64] .text:0003C918 LDR R3, [R10] .text:0003C91C MOV R1, R7 .text:0003C920 MOV LR, PC .text:0003C924 LDR PC, [R4] .text:0003C928 CMP R0, #6 .text:0003C92C BEQ loc_3C8E0 .text:0003C930 .text:0003C930 loc_3C930 ; CODE XREF: __gconv_transform_internal_ucs2+28Cj .text:0003C930 CMP R0, #6 .text:0003C934 BNE loc_3C9CC .text:0003C938 CMP R5, #0 .text:0003C93C BEQ loc_3C9CC .text:0003C940 LDR LR, [R11,#var_88] .text:0003C944 TST LR, #2 .text:0003C948 BEQ loc_3C9CC .text:0003C94C LDR R3, [R5] .text:0003C950 ADD R3, R3, #1 .text:0003C954 STR R3, [R5] .text:0003C958 LDR R2, [R11,#var_38] .text:0003C95C ADD R2, R2, #4 .text:0003C960 STR R2, [R11,#var_38] .text:0003C964 B loc_3C9CC .text:0003C968 ; --------------------------------------------------------------------------- .text:0003C968 .text:0003C968 loc_3C968 ; CODE XREF: __gconv_transform_internal_ucs2+26Cj .text:0003C968 SUB R3, R1, #0xD800 .text:0003C96C CMP R3, #0x800 .text:0003C970 BCS loc_3C9A8 .text:0003C974 CMP R5, #0 .text:0003C978 BEQ loc_3C988 .text:0003C97C LDR R1, [R11,#var_88] .text:0003C980 TST R1, #2 .text:0003C984 BNE loc_3C990 .text:0003C988 .text:0003C988 loc_3C988 ; CODE XREF: __gconv_transform_internal_ucs2+31Cj .text:0003C988 MOV R0, #6 .text:0003C98C B loc_3C9CC .text:0003C990 ; --------------------------------------------------------------------------- .text:0003C990 .text:0003C990 loc_3C990 ; CODE XREF: __gconv_transform_internal_ucs2+328j .text:0003C990 ADD R2, R9, #4 .text:0003C994 STR R2, [R11,#var_38] .text:0003C998 LDR R3, [R5] .text:0003C99C ADD R3, R3, #1 .text:0003C9A0 STR R3, [R5] .text:0003C9A4 B loc_3C9CC .text:0003C9A8 ; --------------------------------------------------------------------------- .text:0003C9A8 .text:0003C9A8 loc_3C9A8 ; CODE XREF: __gconv_transform_internal_ucs2+314j .text:0003C9A8 LDR R2, [R11,#var_3C] .text:0003C9AC STRB R1, [R2] .text:0003C9B0 MOV R3, R1,ASR#8 .text:0003C9B4 STRB R3, [R2,#1] .text:0003C9B8 LDR R3, [R11,#var_38] .text:0003C9BC ADD R2, R2, #2 .text:0003C9C0 STR R2, [R11,#var_3C] .text:0003C9C4 ADD R3, R3, #4 .text:0003C9C8 STR R3, [R11,#var_38] .text:0003C9CC .text:0003C9CC loc_3C9CC ; CODE XREF: __gconv_transform_internal_ucs2+278j .text:0003C9CC ; __gconv_transform_internal_ucs2+2D8j ... .text:0003C9CC LDR R2, [R11,#var_38] .text:0003C9D0 CMP R2, R9 .text:0003C9D4 BEQ loc_3CA34 .text:0003C9D8 LDR R12, [R11,#var_80] .text:0003C9DC LDR R3, [R12] .text:0003C9E0 RSB R1, R9, R2 .text:0003C9E4 AND R2, R3, #7 .text:0003C9E8 CMP R1, R2 .text:0003C9EC BGT loc_3CA04 .text:0003C9F0 LDR R0, =aInptrBytebufSt ; "inptr - bytebuf > (state->__count & 7)" .text:0003C9F4 LDR R1, =a__IconvLoop_c ; "../iconv/loop.c" .text:0003C9F8 LDR R3, =aInternal_ucs2_ ; "internal_ucs2_loop_single" .text:0003C9FC MOV R2, #0x17C .text:0003CA00 BL __assert_fail .text:0003CA04 ; --------------------------------------------------------------------------- .text:0003CA04 .text:0003CA04 loc_3CA04 ; CODE XREF: __gconv_transform_internal_ucs2+390j .text:0003CA04 LDR R3, [R10] .text:0003CA08 RSB R2, R2, R1 .text:0003CA0C ADD R3, R3, R2 .text:0003CA10 STR R3, [R10] .text:0003CA14 LDR R2, [R11,#var_3C] .text:0003CA18 STR R2, [R11,#var_34] .text:0003CA1C LDR LR, [R11,#var_80] .text:0003CA20 LDR R3, [LR] .text:0003CA24 MOV R0, #0 .text:0003CA28 BIC R3, R3, #7 .text:0003CA2C STR R3, [LR] .text:0003CA30 B loc_3CAD4 .text:0003CA34 ; --------------------------------------------------------------------------- .text:0003CA34 .text:0003CA34 loc_3CA34 ; CODE XREF: __gconv_transform_internal_ucs2+378j .text:0003CA34 CMP R0, #7 .text:0003CA38 BNE loc_3CAD4 .text:0003CA3C LDR R1, [R11,#var_84] .text:0003CA40 SUB R3, R11, #-var_28 .text:0003CA44 CMP R1, R3 .text:0003CA48 BNE loc_3CA80 .text:0003CA4C LDR R0, =aInendBytebuf4 ; "inend != &bytebuf[4]" .text:0003CA50 LDR R1, =a__IconvLoop_c ; "../iconv/loop.c" .text:0003CA54 MOV R2, #0x188 .text:0003CA58 LDR R3, =aInternal_ucs2_ ; "internal_ucs2_loop_single" .text:0003CA5C ADD R2, R2, #2 .text:0003CA60 BL __assert_fail .text:0003CA60 ; --------------------------------------------------------------------------- .text:0003CA64 off_3CA64 DCD aOutbufstartVoi ; DATA XREF: __gconv_transform_internal_ucs2+64r .text:0003CA64 ; __gconv_transform_internal_ucs2+150r .text:0003CA64 ; "outbufstart == ((void *)0)" .text:0003CA68 off_3CA68 DCD a__IconvSkeleto ; DATA XREF: __gconv_transform_internal_ucs2+68r .text:0003CA68 ; __gconv_transform_internal_ucs2+154r .text:0003CA68 ; "../iconv/skeleton.c" .text:0003CA6C off_3CA6C DCD a__gconv_tran_8 ; DATA XREF: __gconv_transform_internal_ucs2+6Cr .text:0003CA6C ; __gconv_transform_internal_ucs2+15Cr .text:0003CA6C ; "__gconv_transform_internal_ucs2" .text:0003CA70 off_3CA70 DCD aInptrBytebufSt ; DATA XREF: __gconv_transform_internal_ucs2+394r .text:0003CA70 ; "inptr - bytebuf > (state->__count & 7)" .text:0003CA74 off_3CA74 DCD a__IconvLoop_c ; DATA XREF: __gconv_transform_internal_ucs2+398r .text:0003CA74 ; __gconv_transform_internal_ucs2+3F4r .text:0003CA74 ; "../iconv/loop.c" .text:0003CA78 off_3CA78 DCD aInternal_ucs2_ ; DATA XREF: __gconv_transform_internal_ucs2+39Cr .text:0003CA78 ; __gconv_transform_internal_ucs2+3FCr .text:0003CA78 ; "internal_ucs2_loop_single" .text:0003CA7C off_3CA7C DCD aInendBytebuf4 ; DATA XREF: __gconv_transform_internal_ucs2+3F0r .text:0003CA7C ; "inend != &bytebuf[4]" .text:0003CA80 ; --------------------------------------------------------------------------- .text:0003CA80 .text:0003CA80 loc_3CA80 ; CODE XREF: __gconv_transform_internal_ucs2+3ECj .text:0003CA80 LDR LR, [R11,#var_84] .text:0003CA84 MOV R12, R2 .text:0003CA88 LDR R1, [R11,#var_80] .text:0003CA8C CMP R12, LR .text:0003CA90 LDR R3, [R1] .text:0003CA94 RSB R1, R2, LR .text:0003CA98 LDR R2, [R10] .text:0003CA9C AND R3, R3, #7 .text:0003CAA0 RSB R1, R3, R1 .text:0003CAA4 ADD R2, R2, R1 .text:0003CAA8 STR R2, [R10] .text:0003CAAC BCS loc_3CAD4 .text:0003CAB0 .text:0003CAB0 loc_3CAB0 ; CODE XREF: __gconv_transform_internal_ucs2+474j .text:0003CAB0 LDR LR, [R11,#var_80] .text:0003CAB4 LDRB R2, [R12],#1 .text:0003CAB8 ADD R3, LR, R6 .text:0003CABC STRB R2, [R3,#4] .text:0003CAC0 LDR R1, [R11,#var_84] .text:0003CAC4 ADD R6, R6, #1 .text:0003CAC8 STR R12, [R11,#var_38] .text:0003CACC CMP R12, R1 .text:0003CAD0 BCC loc_3CAB0 .text:0003CAD4 .text:0003CAD4 loc_3CAD4 ; CODE XREF: __gconv_transform_internal_ucs2+3D4j .text:0003CAD4 ; __gconv_transform_internal_ucs2+3DCj ... .text:0003CAD4 MOV R6, R0 .text:0003CAD8 .text:0003CAD8 loc_3CAD8 ; CODE XREF: __gconv_transform_internal_ucs2+20Cj .text:0003CAD8 ; __gconv_transform_internal_ucs2+224j .text:0003CAD8 CMP R6, #0 .text:0003CADC BEQ loc_3CB08 .text:0003CAE0 B loc_3D034 .text:0003CAE4 ; --------------------------------------------------------------------------- .text:0003CAE4 .text:0003CAE4 loc_3CAE4 ; CODE XREF: __gconv_transform_internal_ucs2+884j .text:0003CAE4 LDR R3, [R11,#var_34] .text:0003CAE8 STR R3, [R7] .text:0003CAEC LDR R3, [R11,#arg_4] .text:0003CAF0 LDR R2, [R3] .text:0003CAF4 LDR R3, [R11,#var_30] .text:0003CAF8 LDR R12, [R11,#arg_4] .text:0003CAFC ADD R2, R2, R3 .text:0003CB00 STR R2, [R12] .text:0003CB04 B loc_3CF7C .text:0003CB08 ; --------------------------------------------------------------------------- .text:0003CB08 .text:0003CB08 loc_3CB08 ; CODE XREF: __gconv_transform_internal_ucs2+12Cj .text:0003CB08 ; __gconv_transform_internal_ucs2+140j ... .text:0003CB08 LDR R1, [R11,#var_74] .text:0003CB0C MOV LR, #0 .text:0003CB10 STR LR, [R11,#var_7C] .text:0003CB14 TST R1, #3 .text:0003CB18 BNE loc_3CB34 .text:0003CB1C LDR R3, [R7,#8] .text:0003CB20 TST R3, #1 .text:0003CB24 BEQ loc_3CB3C .text:0003CB28 LDR R3, [R11,#var_34] .text:0003CB2C TST R3, #1 .text:0003CB30 BEQ loc_3CB3C .text:0003CB34 .text:0003CB34 loc_3CB34 ; CODE XREF: __gconv_transform_internal_ucs2+4BCj .text:0003CB34 MOV R2, #1 .text:0003CB38 STR R2, [R11,#var_7C] .text:0003CB3C .text:0003CB3C loc_3CB3C ; CODE XREF: __gconv_transform_internal_ucs2+4C8j .text:0003CB3C ; __gconv_transform_internal_ucs2+4D4j ... .text:0003CB3C LDR R3, [R10] .text:0003CB40 LDR R12, [R11,#var_7C] .text:0003CB44 LDR R9, [R11,#var_34] .text:0003CB48 CMP R12, #0 .text:0003CB4C STR R3, [R11,#var_74] .text:0003CB50 BNE loc_3CCF8 .text:0003CB54 STR R3, [R11,#var_40] .text:0003CB58 LDR R3, [R7,#8] .text:0003CB5C LDR LR, [R11,#var_74] .text:0003CB60 MOV R0, #4 .text:0003CB64 STR R9, [R11,#var_44] .text:0003CB68 CMP LR, R8 .text:0003CB6C AND R6, R3, #2 .text:0003CB70 BEQ loc_3CCBC .text:0003CB74 MOV LR, R9 .text:0003CB78 LDR R1, [R11,#var_78] .text:0003CB7C ADD R4, R9, #2 .text:0003CB80 CMP R4, R1 .text:0003CB84 BHI loc_3CCE0 .text:0003CB88 LDR R2, [R11,#var_74] .text:0003CB8C ADD R12, R2, R0 .text:0003CB90 CMP R12, R8 .text:0003CB94 BHI loc_3CCD8 .text:0003CB98 LDR R2, [R2] .text:0003CB9C B loc_3CCA8 .text:0003CBA0 ; --------------------------------------------------------------------------- .text:0003CBA0 .text:0003CBA0 loc_3CBA0 ; CODE XREF: __gconv_transform_internal_ucs2+65Cj .text:0003CBA0 LDR R4, [R7,#0x20] .text:0003CBA4 B loc_3CBAC .text:0003CBA8 ; --------------------------------------------------------------------------- .text:0003CBA8 .text:0003CBA8 loc_3CBA8 ; CODE XREF: __gconv_transform_internal_ucs2+590j .text:0003CBA8 LDR R4, [R4,#0x10] .text:0003CBAC .text:0003CBAC loc_3CBAC ; CODE XREF: __gconv_transform_internal_ucs2+548j .text:0003CBAC CMP R4, #0 .text:0003CBB0 BEQ loc_3CBF0 .text:0003CBB4 LDR R0, [R4] .text:0003CBB8 BL _dl_mcount_wrapper_check .text:0003CBBC LDR R2, [R4,#0xC] .text:0003CBC0 SUB R3, R11, #-var_40 .text:0003CBC4 STMEA SP, {R3,R8} .text:0003CBC8 SUB R3, R11, #-var_44 .text:0003CBCC STR R3, [SP,#0x9C+var_94] .text:0003CBD0 STR R5, [SP,#0x9C+var_90] .text:0003CBD4 LDR R0, [R11,#var_64] .text:0003CBD8 LDR R3, [R10] .text:0003CBDC MOV R1, R7 .text:0003CBE0 MOV LR, PC .text:0003CBE4 LDR PC, [R4] .text:0003CBE8 CMP R0, #6 .text:0003CBEC BEQ loc_3CBA8 .text:0003CBF0 .text:0003CBF0 loc_3CBF0 ; CODE XREF: __gconv_transform_internal_ucs2+554j .text:0003CBF0 CMP R0, #6 .text:0003CBF4 BNE loc_3CC78 .text:0003CBF8 CMP R5, #0 .text:0003CBFC BEQ loc_3CCBC .text:0003CC00 CMP R6, #0 .text:0003CC04 BEQ loc_3CCBC .text:0003CC08 LDR R3, [R5] .text:0003CC0C ADD R3, R3, #1 .text:0003CC10 STR R3, [R5] .text:0003CC14 LDR R2, [R11,#var_40] .text:0003CC18 ADD R2, R2, #4 .text:0003CC1C STR R2, [R11,#var_40] .text:0003CC20 B loc_3CC78 .text:0003CC24 ; --------------------------------------------------------------------------- .text:0003CC24 .text:0003CC24 loc_3CC24 ; CODE XREF: __gconv_transform_internal_ucs2+650j .text:0003CC24 SUB R3, R2, #0xD800 .text:0003CC28 CMP R3, #0x800 .text:0003CC2C BCS loc_3CC5C .text:0003CC30 CMP R5, #0 .text:0003CC34 BEQ loc_3CC40 .text:0003CC38 CMP R6, #0 .text:0003CC3C BNE loc_3CC48 .text:0003CC40 .text:0003CC40 loc_3CC40 ; CODE XREF: __gconv_transform_internal_ucs2+5D8j .text:0003CC40 MOV R0, #6 .text:0003CC44 B loc_3CCBC .text:0003CC48 ; --------------------------------------------------------------------------- .text:0003CC48 .text:0003CC48 loc_3CC48 ; CODE XREF: __gconv_transform_internal_ucs2+5E0j .text:0003CC48 STR R12, [R11,#var_40] .text:0003CC4C LDR R3, [R5] .text:0003CC50 ADD R3, R3, #1 .text:0003CC54 STR R3, [R5] .text:0003CC58 B loc_3CC78 .text:0003CC5C ; --------------------------------------------------------------------------- .text:0003CC5C .text:0003CC5C loc_3CC5C ; CODE XREF: __gconv_transform_internal_ucs2+5D0j .text:0003CC5C STRB R2, [LR] .text:0003CC60 MOV R3, R2,ASR#8 .text:0003CC64 STRB R3, [LR,#1] .text:0003CC68 LDR R3, [R11,#var_40] .text:0003CC6C STR R4, [R11,#var_44] .text:0003CC70 ADD R3, R3, #4 .text:0003CC74 STR R3, [R11,#var_40] .text:0003CC78 .text:0003CC78 loc_3CC78 ; CODE XREF: __gconv_transform_internal_ucs2+598j .text:0003CC78 ; __gconv_transform_internal_ucs2+5C4j ... .text:0003CC78 LDR R3, [R11,#var_40] .text:0003CC7C CMP R3, R8 .text:0003CC80 BEQ loc_3CCBC .text:0003CC84 LDR LR, [R11,#var_44] .text:0003CC88 LDR R12, [R11,#var_78] .text:0003CC8C ADD R4, LR, #2 .text:0003CC90 CMP R4, R12 .text:0003CC94 BHI loc_3CCE0 .text:0003CC98 ADD R12, R3, #4 .text:0003CC9C CMP R12, R8 .text:0003CCA0 BHI loc_3CCD8 .text:0003CCA4 LDR R2, [R3] .text:0003CCA8 .text:0003CCA8 loc_3CCA8 ; CODE XREF: __gconv_transform_internal_ucs2+540j .text:0003CCA8 CMP R2, #0x10000 .text:0003CCAC BCC loc_3CC24 .text:0003CCB0 MOV R0, #6 .text:0003CCB4 CMP R5, #0 .text:0003CCB8 BNE loc_3CBA0 .text:0003CCBC .text:0003CCBC loc_3CCBC ; CODE XREF: __gconv_transform_internal_ucs2+514j .text:0003CCBC ; __gconv_transform_internal_ucs2+5A0j ... .text:0003CCBC LDR R3, [R11,#var_40] .text:0003CCC0 STR R3, [R10] .text:0003CCC4 LDR R2, [R11,#var_44] .text:0003CCC8 LDR LR, [R11,#var_8C] .text:0003CCCC MOV R6, R0 .text:0003CCD0 STR R2, [LR] .text:0003CCD4 B loc_3CE78 .text:0003CCD8 ; --------------------------------------------------------------------------- .text:0003CCD8 .text:0003CCD8 loc_3CCD8 ; CODE XREF: __gconv_transform_internal_ucs2+538j .text:0003CCD8 ; __gconv_transform_internal_ucs2+644j .text:0003CCD8 MOV R0, #7 .text:0003CCDC B loc_3CCBC .text:0003CCE0 ; --------------------------------------------------------------------------- .text:0003CCE0 .text:0003CCE0 loc_3CCE0 ; CODE XREF: __gconv_transform_internal_ucs2+528j .text:0003CCE0 ; __gconv_transform_internal_ucs2+638j .text:0003CCE0 MOV R0, #5 .text:0003CCE4 B loc_3CCBC .text:0003CCE8 ; --------------------------------------------------------------------------- .text:0003CCE8 .text:0003CCE8 loc_3CCE8 ; CODE XREF: __gconv_transform_internal_ucs2+6D0j .text:0003CCE8 ; __gconv_transform_internal_ucs2+7DCj .text:0003CCE8 MOV R0, #5 .text:0003CCEC B loc_3CE60 .text:0003CCF0 ; --------------------------------------------------------------------------- .text:0003CCF0 .text:0003CCF0 loc_3CCF0 ; CODE XREF: __gconv_transform_internal_ucs2+6DCj .text:0003CCF0 ; __gconv_transform_internal_ucs2+7E8j .text:0003CCF0 MOV R0, #7 .text:0003CCF4 B loc_3CE60 .text:0003CCF8 ; --------------------------------------------------------------------------- .text:0003CCF8 .text:0003CCF8 loc_3CCF8 ; CODE XREF: __gconv_transform_internal_ucs2+4F4j .text:0003CCF8 LDR R1, [R11,#var_74] .text:0003CCFC STR R1, [R11,#var_50] .text:0003CD00 LDR R2, [R11,#var_34] .text:0003CD04 MOV R0, #4 .text:0003CD08 LDR R3, [R7,#8] .text:0003CD0C CMP R1, R8 .text:0003CD10 STR R2, [R11,#var_54] .text:0003CD14 AND R6, R3, #2 .text:0003CD18 BEQ loc_3CE60 .text:0003CD1C MOV R12, R2 .text:0003CD20 LDR R2, [R11,#var_78] .text:0003CD24 ADD R4, R12, #2 .text:0003CD28 CMP R4, R2 .text:0003CD2C BHI loc_3CCE8 .text:0003CD30 ADD LR, R1, R0 .text:0003CD34 CMP LR, R8 .text:0003CD38 BHI loc_3CCF0 .text:0003CD3C LDR R2, [R1] .text:0003CD40 B loc_3CE4C .text:0003CD44 ; --------------------------------------------------------------------------- .text:0003CD44 .text:0003CD44 loc_3CD44 ; CODE XREF: __gconv_transform_internal_ucs2+800j .text:0003CD44 LDR R4, [R7,#0x20] .text:0003CD48 B loc_3CD50 .text:0003CD4C ; --------------------------------------------------------------------------- .text:0003CD4C .text:0003CD4C loc_3CD4C ; CODE XREF: __gconv_transform_internal_ucs2+734j .text:0003CD4C LDR R4, [R4,#0x10] .text:0003CD50 .text:0003CD50 loc_3CD50 ; CODE XREF: __gconv_transform_internal_ucs2+6ECj .text:0003CD50 CMP R4, #0 .text:0003CD54 BEQ loc_3CD94 .text:0003CD58 LDR R0, [R4] .text:0003CD5C BL _dl_mcount_wrapper_check .text:0003CD60 LDR R2, [R4,#0xC] .text:0003CD64 SUB R3, R11, #-var_50 .text:0003CD68 STMEA SP, {R3,R8} .text:0003CD6C SUB R3, R11, #-var_54 .text:0003CD70 STR R3, [SP,#0x9C+var_94] .text:0003CD74 STR R5, [SP,#0x9C+var_90] .text:0003CD78 LDR R0, [R11,#var_64] .text:0003CD7C LDR R3, [R10] .text:0003CD80 MOV R1, R7 .text:0003CD84 MOV LR, PC .text:0003CD88 LDR PC, [R4] .text:0003CD8C CMP R0, #6 .text:0003CD90 BEQ loc_3CD4C .text:0003CD94 .text:0003CD94 loc_3CD94 ; CODE XREF: __gconv_transform_internal_ucs2+6F8j .text:0003CD94 CMP R0, #6 .text:0003CD98 BNE loc_3CE1C .text:0003CD9C CMP R5, #0 .text:0003CDA0 BEQ loc_3CE60 .text:0003CDA4 CMP R6, #0 .text:0003CDA8 BEQ loc_3CE60 .text:0003CDAC LDR R3, [R5] .text:0003CDB0 ADD R3, R3, #1 .text:0003CDB4 STR R3, [R5] .text:0003CDB8 LDR R2, [R11,#var_50] .text:0003CDBC ADD R2, R2, #4 .text:0003CDC0 STR R2, [R11,#var_50] .text:0003CDC4 B loc_3CE1C .text:0003CDC8 ; --------------------------------------------------------------------------- .text:0003CDC8 .text:0003CDC8 loc_3CDC8 ; CODE XREF: __gconv_transform_internal_ucs2+7F4j .text:0003CDC8 SUB R3, R2, #0xD800 .text:0003CDCC CMP R3, #0x800 .text:0003CDD0 BCS loc_3CE00 .text:0003CDD4 CMP R5, #0 .text:0003CDD8 BEQ loc_3CDE4 .text:0003CDDC CMP R6, #0 .text:0003CDE0 BNE loc_3CDEC .text:0003CDE4 .text:0003CDE4 loc_3CDE4 ; CODE XREF: __gconv_transform_internal_ucs2+77Cj .text:0003CDE4 MOV R0, #6 .text:0003CDE8 B loc_3CE60 .text:0003CDEC ; --------------------------------------------------------------------------- .text:0003CDEC .text:0003CDEC loc_3CDEC ; CODE XREF: __gconv_transform_internal_ucs2+784j .text:0003CDEC STR LR, [R11,#var_50] .text:0003CDF0 LDR R3, [R5] .text:0003CDF4 ADD R3, R3, #1 .text:0003CDF8 STR R3, [R5] .text:0003CDFC B loc_3CE1C .text:0003CE00 ; --------------------------------------------------------------------------- .text:0003CE00 .text:0003CE00 loc_3CE00 ; CODE XREF: __gconv_transform_internal_ucs2+774j .text:0003CE00 STRB R2, [R12] .text:0003CE04 MOV R3, R2,ASR#8 .text:0003CE08 STRB R3, [R12,#1] .text:0003CE0C LDR R3, [R11,#var_50] .text:0003CE10 STR R4, [R11,#var_54] .text:0003CE14 ADD R3, R3, #4 .text:0003CE18 STR R3, [R11,#var_50] .text:0003CE1C .text:0003CE1C loc_3CE1C ; CODE XREF: __gconv_transform_internal_ucs2+73Cj .text:0003CE1C ; __gconv_transform_internal_ucs2+768j ... .text:0003CE1C LDR R3, [R11,#var_50] .text:0003CE20 CMP R3, R8 .text:0003CE24 BEQ loc_3CE60 .text:0003CE28 LDR R12, [R11,#var_54] .text:0003CE2C LDR LR, [R11,#var_78] .text:0003CE30 ADD R4, R12, #2 .text:0003CE34 CMP R4, LR .text:0003CE38 BHI loc_3CCE8 .text:0003CE3C ADD LR, R3, #4 .text:0003CE40 CMP LR, R8 .text:0003CE44 BHI loc_3CCF0 .text:0003CE48 LDR R2, [R3] .text:0003CE4C .text:0003CE4C loc_3CE4C ; CODE XREF: __gconv_transform_internal_ucs2+6E4j .text:0003CE4C CMP R2, #0x10000 .text:0003CE50 BCC loc_3CDC8 .text:0003CE54 MOV R0, #6 .text:0003CE58 CMP R5, #0 .text:0003CE5C BNE loc_3CD44 .text:0003CE60 .text:0003CE60 loc_3CE60 ; CODE XREF: __gconv_transform_internal_ucs2+690j .text:0003CE60 ; __gconv_transform_internal_ucs2+698j ... .text:0003CE60 LDR R3, [R11,#var_50] .text:0003CE64 STR R3, [R10] .text:0003CE68 LDR R2, [R11,#var_54] .text:0003CE6C LDR R1, [R11,#var_8C] .text:0003CE70 MOV R6, R0 .text:0003CE74 STR R2, [R1] .text:0003CE78 .text:0003CE78 loc_3CE78 ; CODE XREF: __gconv_transform_internal_ucs2+678j .text:0003CE78 LDR R2, [R11,#arg_0] .text:0003CE7C CMP R2, #0 .text:0003CE80 BNE loc_3CFC4 .text:0003CE84 LDR R4, [R7,#0x20] .text:0003CE88 CMP R4, #0 .text:0003CE8C BEQ loc_3CECC .text:0003CE90 .text:0003CE90 loc_3CE90 ; CODE XREF: __gconv_transform_internal_ucs2+86Cj .text:0003CE90 LDR R0, [R4,#4] .text:0003CE94 CMP R0, #0 .text:0003CE98 BEQ loc_3CEC0 .text:0003CE9C BL _dl_mcount_wrapper_check .text:0003CEA0 LDR R3, [R11,#var_34] .text:0003CEA4 LDR R0, [R4,#0xC] .text:0003CEA8 STR R3, [SP,#0x9C+var_9C] .text:0003CEAC LDR R1, [R11,#var_74] .text:0003CEB0 LDR R2, [R10] .text:0003CEB4 MOV R3, R9 .text:0003CEB8 MOV LR, PC .text:0003CEBC LDR PC, [R4,#4] .text:0003CEC0 .text:0003CEC0 loc_3CEC0 ; CODE XREF: __gconv_transform_internal_ucs2+83Cj .text:0003CEC0 LDR R4, [R4,#0x10] .text:0003CEC4 CMP R4, #0 .text:0003CEC8 BNE loc_3CE90 .text:0003CECC .text:0003CECC loc_3CECC ; CODE XREF: __gconv_transform_internal_ucs2+830j .text:0003CECC ADD R2, R7, #8 .text:0003CED0 LDMIA R2, {R2,R3} .text:0003CED4 ADD R3, R3, #1 .text:0003CED8 ANDS R4, R2, #1 .text:0003CEDC STR R3, [R7,#0xC] .text:0003CEE0 BNE loc_3CAE4 .text:0003CEE4 LDR R3, [R11,#var_34] .text:0003CEE8 CMP R3, R9 .text:0003CEEC BLS loc_3CF6C .text:0003CEF0 LDR R3, [R7] .text:0003CEF4 STR R3, [R11,#var_60] .text:0003CEF8 LDR R0, [R11,#var_70] .text:0003CEFC BL _dl_mcount_wrapper_check .text:0003CF00 STR R4, [SP,#0x9C+var_9C] .text:0003CF04 LDR R3, [R11,#arg_4] .text:0003CF08 STMFA SP, {R3,R4} .text:0003CF0C LDR R12, [R11,#arg_C] .text:0003CF10 STR R12, [SP,#0x9C+var_90] .text:0003CF14 LDR R0, [R11,#var_68] .text:0003CF18 LDR R1, [R11,#var_6C] .text:0003CF1C LDR R3, [R11,#var_34] .text:0003CF20 LDR R12, [R11,#var_70] .text:0003CF24 SUB R2, R11, #-var_60 .text:0003CF28 MOV LR, PC .text:0003CF2C MOV PC, R12 .text:0003CF30 CMP R0, #4 .text:0003CF34 BEQ loc_3CF5C .text:0003CF38 LDR R1, [R11,#var_60] .text:0003CF3C LDR R2, [R11,#var_34] .text:0003CF40 CMP R1, R2 .text:0003CF44 LDRNE R3, [R10] .text:0003CF48 RSBNE R2, R1, R2 .text:0003CF4C SUBNE R3, R3, R2,LSL#1 .text:0003CF50 STRNE R3, [R10] .text:0003CF54 MOV R6, R0 .text:0003CF58 B loc_3CF6C .text:0003CF5C ; --------------------------------------------------------------------------- .text:0003CF5C .text:0003CF5C loc_3CF5C ; CODE XREF: __gconv_transform_internal_ucs2+8D8j .text:0003CF5C CMP R6, #5 .text:0003CF60 LDREQ R3, [R7] .text:0003CF64 MOVEQ R6, R4 .text:0003CF68 STREQ R3, [R11,#var_34] .text:0003CF6C .text:0003CF6C loc_3CF6C ; CODE XREF: __gconv_transform_internal_ucs2+890j .text:0003CF6C ; __gconv_transform_internal_ucs2+8FCj .text:0003CF6C CMP R6, #0 .text:0003CF70 LDREQ R3, [R7] .text:0003CF74 STREQ R3, [R11,#var_34] .text:0003CF78 BEQ loc_3CB3C .text:0003CF7C .text:0003CF7C loc_3CF7C ; CODE XREF: __gconv_transform_internal_ucs2+4A8j .text:0003CF7C LDR LR, [R11,#arg_C] .text:0003CF80 CMP R6, #7 .text:0003CF84 MOVNE R3, #0 .text:0003CF88 MOVEQ R3, #1 .text:0003CF8C CMP LR, #0 .text:0003CF90 MOVEQ R3, #0 .text:0003CF94 CMP R3, #0 .text:0003CF98 BEQ loc_3D034 .text:0003CF9C LDR R2, [R10] .text:0003CFA0 RSB R3, R2, R8 .text:0003CFA4 CMP R3, #3 .text:0003CFA8 BLE loc_3CFE4 .text:0003CFAC LDR R0, =aInendInptrp4 ; "inend - *inptrp < 4" .text:0003CFB0 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003CFB4 MOV R2, #0x254 .text:0003CFB8 LDR R3, =a__gconv_tran_8 ; "__gconv_transform_internal_ucs2" .text:0003CFBC ADD R2, R2, #3 .text:0003CFC0 BL __assert_fail .text:0003CFC4 ; --------------------------------------------------------------------------- .text:0003CFC4 .text:0003CFC4 loc_3CFC4 ; CODE XREF: __gconv_transform_internal_ucs2+824j .text:0003CFC4 LDR R3, [R11,#var_34] .text:0003CFC8 LDR R1, [R11,#arg_0] .text:0003CFCC MOV R0, R6 .text:0003CFD0 STR R3, [R1] .text:0003CFD4 B locret_3D038 .text:0003CFD4 ; --------------------------------------------------------------------------- .text:0003CFD8 off_3CFD8 DCD aInendInptrp4 ; DATA XREF: __gconv_transform_internal_ucs2+950r .text:0003CFD8 ; "inend - *inptrp < 4" .text:0003CFDC off_3CFDC DCD a__IconvSkeleto ; DATA XREF: __gconv_transform_internal_ucs2+954r .text:0003CFDC ; "../iconv/skeleton.c" .text:0003CFE0 off_3CFE0 DCD a__gconv_tran_8 ; DATA XREF: __gconv_transform_internal_ucs2+95Cr .text:0003CFE0 ; "__gconv_transform_internal_ucs2" .text:0003CFE4 ; --------------------------------------------------------------------------- .text:0003CFE4 .text:0003CFE4 loc_3CFE4 ; CODE XREF: __gconv_transform_internal_ucs2+94Cj .text:0003CFE4 MOV R0, #0 .text:0003CFE8 CMP R2, R8 .text:0003CFEC BCS loc_3D014 .text:0003CFF0 .text:0003CFF0 loc_3CFF0 ; CODE XREF: __gconv_transform_internal_ucs2+9B4j .text:0003CFF0 LDR R3, [R10] .text:0003CFF4 LDR R2, [R7,#0x14] .text:0003CFF8 LDRB R1, [R3],#1 .text:0003CFFC ADD R2, R2, R0 .text:0003D000 STRB R1, [R2,#4] .text:0003D004 ADD R0, R0, #1 .text:0003D008 CMP R3, R8 .text:0003D00C STR R3, [R10] .text:0003D010 BCC loc_3CFF0 .text:0003D014 .text:0003D014 loc_3D014 ; CODE XREF: __gconv_transform_internal_ucs2+990j .text:0003D014 LDR R2, [R7,#0x14] .text:0003D018 LDR R3, [R2] .text:0003D01C BIC R3, R3, #7 .text:0003D020 STR R3, [R2] .text:0003D024 LDR R1, [R7,#0x14] .text:0003D028 LDR R3, [R1] .text:0003D02C ORR R3, R3, R0 .text:0003D030 STR R3, [R1] .text:0003D034 .text:0003D034 loc_3D034 ; CODE XREF: __gconv_transform_internal_ucs2+90j .text:0003D034 ; __gconv_transform_internal_ucs2+D8j ... .text:0003D034 MOV R0, R6 .text:0003D038 .text:0003D038 locret_3D038 ; CODE XREF: __gconv_transform_internal_ucs2+978j .text:0003D038 LDMDB R11, {R4-R11,SP,PC} .text:0003D038 ; End of function __gconv_transform_internal_ucs2 .text:0003D038 .text:0003D03C .text:0003D03C ; =============== S U B R O U T I N E ======================================= .text:0003D03C .text:0003D03C ; Attributes: bp-based frame .text:0003D03C .text:0003D03C EXPORT __gconv_transform_ucs2reverse_internal .text:0003D03C __gconv_transform_ucs2reverse_internal .text:0003D03C .text:0003D03C var_7C = -0x7C .text:0003D03C var_78 = -0x78 .text:0003D03C var_74 = -0x74 .text:0003D03C var_70 = -0x70 .text:0003D03C var_6C = -0x6C .text:0003D03C var_68 = -0x68 .text:0003D03C var_64 = -0x64 .text:0003D03C var_60 = -0x60 .text:0003D03C var_5C = -0x5C .text:0003D03C var_58 = -0x58 .text:0003D03C var_54 = -0x54 .text:0003D03C var_50 = -0x50 .text:0003D03C var_4C = -0x4C .text:0003D03C var_48 = -0x48 .text:0003D03C var_44 = -0x44 .text:0003D03C var_40 = -0x40 .text:0003D03C var_3C = -0x3C .text:0003D03C var_38 = -0x38 .text:0003D03C var_34 = -0x34 .text:0003D03C var_30 = -0x30 .text:0003D03C var_2C = -0x2C .text:0003D03C var_2A = -0x2A .text:0003D03C arg_0 = 4 .text:0003D03C arg_4 = 8 .text:0003D03C arg_8 = 0xC .text:0003D03C arg_C = 0x10 .text:0003D03C .text:0003D03C MOV R12, SP .text:0003D040 STMFD SP!, {R4-R12,LR,PC} .text:0003D044 SUB R11, R12, #4 .text:0003D048 MOV R7, R1 .text:0003D04C SUB SP, SP, #0x54 .text:0003D050 LDR R1, [R7,#8] .text:0003D054 MOV R12, #0 .text:0003D058 STR R12, [R11,#var_48] .text:0003D05C STR R2, [R11,#var_3C] .text:0003D060 ADD R0, R0, #0x38 .text:0003D064 STR R0, [R11,#var_40] .text:0003D068 MOV R6, R3 .text:0003D06C ADD R0, R7, #0x24 .text:0003D070 STR R0, [R11,#var_44] .text:0003D074 TST R1, #1 .text:0003D078 LDREQ R1, [R11,#var_40] .text:0003D07C LDREQ R1, [R1,#0x14] .text:0003D080 STREQ R1, [R11,#var_48] .text:0003D084 LDR R3, [R11,#arg_8] .text:0003D088 CMP R3, #0 .text:0003D08C BEQ loc_3D118 .text:0003D090 LDR R2, [R11,#arg_0] .text:0003D094 MOV R5, #0 .text:0003D098 CMP R2, R5 .text:0003D09C BEQ loc_3D0B4 .text:0003D0A0 LDR R0, =aOutbufstartVoi ; "outbufstart == ((void *)0)" .text:0003D0A4 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003D0A8 LDR R3, =a__gconv_tran_9 ; "__gconv_transform_ucs2reverse_internal" .text:0003D0AC MOV R2, #0x130 .text:0003D0B0 BL __assert_fail .text:0003D0B4 ; --------------------------------------------------------------------------- .text:0003D0B4 .text:0003D0B4 loc_3D0B4 ; CODE XREF: __gconv_transform_ucs2reverse_internal+60j .text:0003D0B4 MOV R1, R5 .text:0003D0B8 LDR R0, [R7,#0x14] .text:0003D0BC MOV R2, #8 .text:0003D0C0 BL memset .text:0003D0C4 LDR R3, [R7,#8] .text:0003D0C8 TST R3, #1 .text:0003D0CC BNE loc_3D7D8 .text:0003D0D0 LDR R0, [R11,#var_48] .text:0003D0D4 BL _dl_mcount_wrapper_check .text:0003D0D8 STR R5, [SP,#0x7C+var_7C] .text:0003D0DC LDR R3, [R11,#arg_4] .text:0003D0E0 STR R3, [SP,#0x7C+var_78] .text:0003D0E4 MOV R3, #1 .text:0003D0E8 STR R3, [SP,#0x7C+var_74] .text:0003D0EC LDR R12, [R11,#arg_C] .text:0003D0F0 STR R12, [SP,#0x7C+var_70] .text:0003D0F4 LDR R0, [R11,#var_40] .text:0003D0F8 LDR R1, [R11,#var_44] .text:0003D0FC MOV R2, R5 .text:0003D100 LDR R12, [R11,#var_48] .text:0003D104 MOV R3, R2 .text:0003D108 MOV LR, PC .text:0003D10C MOV PC, R12 .text:0003D110 MOV R5, R0 .text:0003D114 B loc_3D7D8 .text:0003D118 ; --------------------------------------------------------------------------- .text:0003D118 .text:0003D118 loc_3D118 ; CODE XREF: __gconv_transform_ucs2reverse_internal+50j .text:0003D118 LDR R1, [R11,#var_3C] .text:0003D11C LDR R0, [R11,#arg_0] .text:0003D120 LDR R1, [R1] .text:0003D124 CMP R0, #0 .text:0003D128 STR R1, [R11,#var_4C] .text:0003D12C LDREQ R3, [R7] .text:0003D130 LDRNE R2, [R11,#arg_0] .text:0003D134 LDRNE R3, [R2] .text:0003D138 STR R3, [R11,#var_34] .text:0003D13C MOV R3, #0 .text:0003D140 STR R3, [R11,#var_30] .text:0003D144 SUB R0, R11, #-var_34 .text:0003D148 STR R0, [R11,#var_6C] .text:0003D14C LDR R3, [R11,#arg_4] .text:0003D150 LDR R12, [R11,#arg_C] .text:0003D154 CMP R3, #0 .text:0003D158 SUBNE R9, R11, #-var_30 .text:0003D15C MOVEQ R9, #0 .text:0003D160 LDR R1, [R7,#4] .text:0003D164 CMP R12, #0 .text:0003D168 STR R1, [R11,#var_50] .text:0003D16C BEQ loc_3D3E8 .text:0003D170 LDR R5, [R7,#0x14] .text:0003D174 LDR R3, [R5] .text:0003D178 ANDS R3, R3, #7 .text:0003D17C BEQ loc_3D3E8 .text:0003D180 LDR R2, [R11,#arg_0] .text:0003D184 CMP R2, #0 .text:0003D188 BEQ loc_3D1A4 .text:0003D18C LDR R0, =aOutbufstartVoi ; "outbufstart == ((void *)0)" .text:0003D190 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003D194 MOV R2, #0x168 .text:0003D198 LDR R3, =a__gconv_tran_9 ; "__gconv_transform_ucs2reverse_internal" .text:0003D19C ADD R2, R2, #2 .text:0003D1A0 BL __assert_fail .text:0003D1A4 ; --------------------------------------------------------------------------- .text:0003D1A4 .text:0003D1A4 loc_3D1A4 ; CODE XREF: __gconv_transform_ucs2reverse_internal+14Cj .text:0003D1A4 LDR R12, [R11,#arg_0] .text:0003D1A8 STR R12, [R11,#var_58] .text:0003D1AC LDR R0, [R11,#var_3C] .text:0003D1B0 LDR R1, [R11,#var_34] .text:0003D1B4 MOV R4, R12 .text:0003D1B8 LDR R12, [R0] .text:0003D1BC STR R1, [R11,#var_5C] .text:0003D1C0 CMP R4, R3 .text:0003D1C4 LDR R10, [R7,#8] .text:0003D1C8 BCS loc_3D1F0 .text:0003D1CC SUB R1, R11, #-var_2C .text:0003D1D0 .text:0003D1D0 loc_3D1D0 ; CODE XREF: __gconv_transform_ucs2reverse_internal+1B0j .text:0003D1D0 ADD R3, R5, R4 .text:0003D1D4 LDRB R2, [R3,#4] .text:0003D1D8 STRB R2, [R1,R4] .text:0003D1DC LDR R3, [R5] .text:0003D1E0 ADD R4, R4, #1 .text:0003D1E4 AND R3, R3, #7 .text:0003D1E8 CMP R4, R3 .text:0003D1EC BCC loc_3D1D0 .text:0003D1F0 .text:0003D1F0 loc_3D1F0 ; CODE XREF: __gconv_transform_ucs2reverse_internal+18Cj .text:0003D1F0 ADD R3, R12, #2 .text:0003D1F4 RSB R3, R4, R3 .text:0003D1F8 CMP R3, R6 .text:0003D1FC BLS loc_3D230 .text:0003D200 LDR R2, [R11,#var_3C] .text:0003D204 CMP R12, R6 .text:0003D208 STR R6, [R2] .text:0003D20C BCS loc_3D228 .text:0003D210 .text:0003D210 loc_3D210 ; CODE XREF: __gconv_transform_ucs2reverse_internal+1E8j .text:0003D210 ADD R2, R5, R4 .text:0003D214 LDRB R3, [R12],#1 .text:0003D218 ADD R4, R4, #1 .text:0003D21C CMP R12, R6 .text:0003D220 STRB R3, [R2,#4] .text:0003D224 BCC loc_3D210 .text:0003D228 .text:0003D228 loc_3D228 ; CODE XREF: __gconv_transform_ucs2reverse_internal+1D0j .text:0003D228 MOV R5, #7 .text:0003D22C B loc_3D3BC .text:0003D230 ; --------------------------------------------------------------------------- .text:0003D230 .text:0003D230 loc_3D230 ; CODE XREF: __gconv_transform_ucs2reverse_internal+1C0j .text:0003D230 LDR R0, [R11,#var_5C] .text:0003D234 LDR R1, [R11,#var_50] .text:0003D238 ADD R3, R0, #4 .text:0003D23C CMP R3, R1 .text:0003D240 STR R3, [R11,#var_68] .text:0003D244 MOVHI R5, #5 .text:0003D248 BHI loc_3D3BC .text:0003D24C SUB LR, R11, #-var_2C .text:0003D250 MOV R2, LR .text:0003D254 .text:0003D254 loc_3D254 ; CODE XREF: __gconv_transform_ucs2reverse_internal+22Cj .text:0003D254 LDRB R3, [R12],#1 .text:0003D258 STRB R3, [R2,R4] .text:0003D25C ADD R4, R4, #1 .text:0003D260 CMP R4, #1 .text:0003D264 CMPLS R12, R6 .text:0003D268 BCC loc_3D254 .text:0003D26C MOV R12, LR .text:0003D270 MOV R0, 0x7FF .text:0003D278 ADD R8, R12, R4 .text:0003D27C AND R10, R10, #2 .text:0003D280 B loc_3D2B0 .text:0003D284 ; --------------------------------------------------------------------------- .text:0003D284 .text:0003D284 loc_3D284 ; CODE XREF: __gconv_transform_ucs2reverse_internal+29Cj .text:0003D284 LDR R3, [R9] .text:0003D288 ADD R12, LR, #2 .text:0003D28C ADD R3, R3, #1 .text:0003D290 STR R3, [R9] .text:0003D294 B loc_3D2E4 .text:0003D298 ; --------------------------------------------------------------------------- .text:0003D298 .text:0003D298 loc_3D298 ; CODE XREF: __gconv_transform_ucs2reverse_internal+28Cj .text:0003D298 LDR R3, [R11,#var_5C] .text:0003D29C STR R2, [R3] .text:0003D2A0 LDR R12, [R11,#var_68] .text:0003D2A4 STR R12, [R11,#var_5C] .text:0003D2A8 ADD R12, LR, #2 .text:0003D2AC B loc_3D2E4 .text:0003D2B0 ; --------------------------------------------------------------------------- .text:0003D2B0 .text:0003D2B0 loc_3D2B0 ; CODE XREF: __gconv_transform_ucs2reverse_internal+244j .text:0003D2B0 LDRB R1, [LR,#1] .text:0003D2B4 LDRB R2, [LR] .text:0003D2B8 ORR R2, R1, R2,LSL#8 .text:0003D2BC ADD R3, R2, #0x2800 .text:0003D2C0 MOV R3, R3,LSL#16 .text:0003D2C4 CMP R0, R3,LSR#16 .text:0003D2C8 BCC loc_3D298 .text:0003D2CC CMP R9, #0 .text:0003D2D0 BEQ loc_3D2DC .text:0003D2D4 CMP R10, #0 .text:0003D2D8 BNE loc_3D284 .text:0003D2DC .text:0003D2DC loc_3D2DC ; CODE XREF: __gconv_transform_ucs2reverse_internal+294j .text:0003D2DC MOV R0, #6 .text:0003D2E0 STR R0, [R11,#var_58] .text:0003D2E4 .text:0003D2E4 loc_3D2E4 ; CODE XREF: __gconv_transform_ucs2reverse_internal+258j .text:0003D2E4 ; __gconv_transform_ucs2reverse_internal+270j .text:0003D2E4 CMP R12, LR .text:0003D2E8 BEQ loc_3D348 .text:0003D2EC LDR R3, [R5] .text:0003D2F0 RSB R1, LR, R12 .text:0003D2F4 AND R2, R3, #7 .text:0003D2F8 CMP R1, R2 .text:0003D2FC BGT loc_3D314 .text:0003D300 LDR R0, =aInptrBytebufSt ; "inptr - bytebuf > (state->__count & 7)" .text:0003D304 LDR R1, =a__IconvLoop_c ; "../iconv/loop.c" .text:0003D308 LDR R3, =aUcs2reverse_in ; "ucs2reverse_internal_loop_single" .text:0003D30C MOV R2, #0x17C .text:0003D310 BL __assert_fail .text:0003D314 ; --------------------------------------------------------------------------- .text:0003D314 .text:0003D314 loc_3D314 ; CODE XREF: __gconv_transform_ucs2reverse_internal+2C0j .text:0003D314 LDR R3, [R11,#var_5C] .text:0003D318 STR R3, [R11,#var_34] .text:0003D31C LDR R12, [R11,#var_3C] .text:0003D320 LDR R3, [R12] .text:0003D324 RSB R2, R2, R1 .text:0003D328 ADD R3, R3, R2 .text:0003D32C STR R3, [R12] .text:0003D330 LDR R2, [R5] .text:0003D334 MOV R0, #0 .text:0003D338 STR R0, [R11,#var_58] .text:0003D33C BIC R2, R2, #7 .text:0003D340 STR R2, [R5] .text:0003D344 B loc_3D3B8 .text:0003D348 ; --------------------------------------------------------------------------- .text:0003D348 .text:0003D348 loc_3D348 ; CODE XREF: __gconv_transform_ucs2reverse_internal+2ACj .text:0003D348 LDR R1, [R11,#var_58] .text:0003D34C CMP R1, #7 .text:0003D350 BNE loc_3D3B8 .text:0003D354 SUB R3, R11, #-var_2A .text:0003D358 CMP R8, R3 .text:0003D35C BNE loc_3D378 .text:0003D360 LDR R0, =aInendBytebuf2 ; "inend != &bytebuf[2]" .text:0003D364 LDR R1, =a__IconvLoop_c ; "../iconv/loop.c" .text:0003D368 MOV R2, #0x188 .text:0003D36C LDR R3, =aUcs2reverse_in ; "ucs2reverse_internal_loop_single" .text:0003D370 ADD R2, R2, #2 .text:0003D374 BL __assert_fail .text:0003D378 ; --------------------------------------------------------------------------- .text:0003D378 .text:0003D378 loc_3D378 ; CODE XREF: __gconv_transform_ucs2reverse_internal+320j .text:0003D378 CMP R12, R8 .text:0003D37C LDR R3, [R5] .text:0003D380 RSB R1, R12, R8 .text:0003D384 LDR R0, [R11,#var_3C] .text:0003D388 AND R3, R3, #7 .text:0003D38C LDR R2, [R0] .text:0003D390 RSB R1, R3, R1 .text:0003D394 ADD R2, R2, R1 .text:0003D398 STR R2, [R0] .text:0003D39C BCS loc_3D3B8 .text:0003D3A0 .text:0003D3A0 loc_3D3A0 ; CODE XREF: __gconv_transform_ucs2reverse_internal+378j .text:0003D3A0 ADD R2, R5, R4 .text:0003D3A4 LDRB R3, [R12],#1 .text:0003D3A8 ADD R4, R4, #1 .text:0003D3AC CMP R12, R8 .text:0003D3B0 STRB R3, [R2,#4] .text:0003D3B4 BCC loc_3D3A0 .text:0003D3B8 .text:0003D3B8 loc_3D3B8 ; CODE XREF: __gconv_transform_ucs2reverse_internal+308j .text:0003D3B8 ; __gconv_transform_ucs2reverse_internal+314j ... .text:0003D3B8 LDR R5, [R11,#var_58] .text:0003D3BC .text:0003D3BC loc_3D3BC ; CODE XREF: __gconv_transform_ucs2reverse_internal+1F0j .text:0003D3BC ; __gconv_transform_ucs2reverse_internal+20Cj .text:0003D3BC CMP R5, #0 .text:0003D3C0 BEQ loc_3D3E8 .text:0003D3C4 B loc_3D7D8 .text:0003D3C8 ; --------------------------------------------------------------------------- .text:0003D3C8 .text:0003D3C8 loc_3D3C8 ; CODE XREF: __gconv_transform_ucs2reverse_internal+630j .text:0003D3C8 LDR R3, [R11,#var_34] .text:0003D3CC STR R3, [R7] .text:0003D3D0 LDR R1, [R11,#arg_4] .text:0003D3D4 LDR R3, [R11,#var_30] .text:0003D3D8 LDR R2, [R1] .text:0003D3DC ADD R2, R2, R3 .text:0003D3E0 STR R2, [R1] .text:0003D3E4 B loc_3D714 .text:0003D3E8 ; --------------------------------------------------------------------------- .text:0003D3E8 .text:0003D3E8 loc_3D3E8 ; CODE XREF: __gconv_transform_ucs2reverse_internal+130j .text:0003D3E8 ; __gconv_transform_ucs2reverse_internal+140j ... .text:0003D3E8 LDR R3, [R11,#var_4C] .text:0003D3EC MOV R2, #0 .text:0003D3F0 STR R2, [R11,#var_54] .text:0003D3F4 TST R3, #1 .text:0003D3F8 BNE loc_3D414 .text:0003D3FC LDR R3, [R7,#8] .text:0003D400 TST R3, #1 .text:0003D404 BEQ loc_3D41C .text:0003D408 LDR R3, [R11,#var_34] .text:0003D40C TST R3, #3 .text:0003D410 BEQ loc_3D41C .text:0003D414 .text:0003D414 loc_3D414 ; CODE XREF: __gconv_transform_ucs2reverse_internal+3BCj .text:0003D414 MOV R12, #1 .text:0003D418 STR R12, [R11,#var_54] .text:0003D41C .text:0003D41C loc_3D41C ; CODE XREF: __gconv_transform_ucs2reverse_internal+3C8j .text:0003D41C ; __gconv_transform_ucs2reverse_internal+3D4j ... .text:0003D41C LDR R0, [R11,#var_3C] .text:0003D420 LDR R1, [R11,#var_54] .text:0003D424 LDR R10, [R11,#var_34] .text:0003D428 LDR R0, [R0] .text:0003D42C CMP R1, #0 .text:0003D430 STR R0, [R11,#var_4C] .text:0003D434 BNE loc_3D534 .text:0003D438 MOV R8, #4 .text:0003D43C MOV LR, R0 .text:0003D440 MOV R0, R10 .text:0003D444 MOV R5, 0x7FF .text:0003D44C LDR R3, [R7,#8] .text:0003D450 CMP LR, R6 .text:0003D454 AND R3, R3, #2 .text:0003D458 STR R3, [R11,#var_60] .text:0003D45C BEQ loc_3D50C .text:0003D460 LDR R2, [R11,#var_50] .text:0003D464 ADD R4, R10, R8 .text:0003D468 CMP R4, R2 .text:0003D46C B loc_3D4F8 .text:0003D46C ; --------------------------------------------------------------------------- .text:0003D470 off_3D470 DCD aOutbufstartVoi ; DATA XREF: __gconv_transform_ucs2reverse_internal+64r .text:0003D470 ; __gconv_transform_ucs2reverse_internal+150r .text:0003D470 ; "outbufstart == ((void *)0)" .text:0003D474 off_3D474 DCD a__IconvSkeleto ; DATA XREF: __gconv_transform_ucs2reverse_internal+68r .text:0003D474 ; __gconv_transform_ucs2reverse_internal+154r .text:0003D474 ; "../iconv/skeleton.c" .text:0003D478 off_3D478 DCD a__gconv_tran_9 ; DATA XREF: __gconv_transform_ucs2reverse_internal+6Cr .text:0003D478 ; __gconv_transform_ucs2reverse_internal+15Cr .text:0003D478 ; "__gconv_transform_ucs2reverse_internal" .text:0003D47C off_3D47C DCD aInptrBytebufSt ; DATA XREF: __gconv_transform_ucs2reverse_internal+2C4r .text:0003D47C ; "inptr - bytebuf > (state->__count & 7)" .text:0003D480 off_3D480 DCD a__IconvLoop_c ; DATA XREF: __gconv_transform_ucs2reverse_internal+2C8r .text:0003D480 ; __gconv_transform_ucs2reverse_internal+328r .text:0003D480 ; "../iconv/loop.c" .text:0003D484 off_3D484 DCD aUcs2reverse_in ; DATA XREF: __gconv_transform_ucs2reverse_internal+2CCr .text:0003D484 ; __gconv_transform_ucs2reverse_internal+330r .text:0003D484 ; "ucs2reverse_internal_loop_single" .text:0003D488 off_3D488 DCD aInendBytebuf2 ; DATA XREF: __gconv_transform_ucs2reverse_internal+324r .text:0003D488 ; "inend != &bytebuf[2]" .text:0003D48C ; --------------------------------------------------------------------------- .text:0003D48C .text:0003D48C loc_3D48C ; CODE XREF: __gconv_transform_ucs2reverse_internal+4C8j .text:0003D48C LDRB R1, [LR,#1] .text:0003D490 LDRB R2, [LR] .text:0003D494 ORR R2, R1, R2,LSL#8 .text:0003D498 ADD R3, R2, #0x2800 .text:0003D49C MOV R3, R3,LSL#16 .text:0003D4A0 CMP R5, R3,LSR#16 .text:0003D4A4 BCC loc_3D4D8 .text:0003D4A8 CMP R9, #0 .text:0003D4AC BEQ loc_3D4BC .text:0003D4B0 LDR R3, [R11,#var_60] .text:0003D4B4 CMP R3, #0 .text:0003D4B8 BNE loc_3D4C4 .text:0003D4BC .text:0003D4BC loc_3D4BC ; CODE XREF: __gconv_transform_ucs2reverse_internal+470j .text:0003D4BC MOV R8, #6 .text:0003D4C0 B loc_3D50C .text:0003D4C4 ; --------------------------------------------------------------------------- .text:0003D4C4 .text:0003D4C4 loc_3D4C4 ; CODE XREF: __gconv_transform_ucs2reverse_internal+47Cj .text:0003D4C4 LDR R3, [R9] .text:0003D4C8 MOV LR, R12 .text:0003D4CC ADD R3, R3, #1 .text:0003D4D0 STR R3, [R9] .text:0003D4D4 B loc_3D4E4 .text:0003D4D8 ; --------------------------------------------------------------------------- .text:0003D4D8 .text:0003D4D8 loc_3D4D8 ; CODE XREF: __gconv_transform_ucs2reverse_internal+468j .text:0003D4D8 STR R2, [R0] .text:0003D4DC MOV R0, R4 .text:0003D4E0 MOV LR, R12 .text:0003D4E4 .text:0003D4E4 loc_3D4E4 ; CODE XREF: __gconv_transform_ucs2reverse_internal+498j .text:0003D4E4 CMP LR, R6 .text:0003D4E8 BEQ loc_3D50C .text:0003D4EC LDR R12, [R11,#var_50] .text:0003D4F0 ADD R4, R0, #4 .text:0003D4F4 CMP R4, R12 .text:0003D4F8 .text:0003D4F8 loc_3D4F8 ; CODE XREF: __gconv_transform_ucs2reverse_internal+430j .text:0003D4F8 BHI loc_3D524 .text:0003D4FC ADD R12, LR, #2 .text:0003D500 CMP R12, R6 .text:0003D504 BLS loc_3D48C .text:0003D508 MOV R8, #7 .text:0003D50C .text:0003D50C loc_3D50C ; CODE XREF: __gconv_transform_ucs2reverse_internal+420j .text:0003D50C ; __gconv_transform_ucs2reverse_internal+484j ... .text:0003D50C LDR R1, [R11,#var_3C] .text:0003D510 STR LR, [R1] .text:0003D514 LDR R2, [R11,#var_6C] .text:0003D518 MOV R5, R8 .text:0003D51C STR R0, [R2] .text:0003D520 B loc_3D600 .text:0003D524 ; --------------------------------------------------------------------------- .text:0003D524 .text:0003D524 loc_3D524 ; CODE XREF: __gconv_transform_ucs2reverse_internal:loc_3D4F8j .text:0003D524 MOV R8, #5 .text:0003D528 B loc_3D50C .text:0003D52C ; --------------------------------------------------------------------------- .text:0003D52C .text:0003D52C loc_3D52C ; CODE XREF: __gconv_transform_ucs2reverse_internal:loc_3D5D8j .text:0003D52C MOV R8, #5 .text:0003D530 B loc_3D5EC .text:0003D534 ; --------------------------------------------------------------------------- .text:0003D534 .text:0003D534 loc_3D534 ; CODE XREF: __gconv_transform_ucs2reverse_internal+3F8j .text:0003D534 MOV R8, #4 .text:0003D538 MOV R0, R10 .text:0003D53C MOV R5, #0x7F0 .text:0003D540 LDR LR, [R11,#var_4C] .text:0003D544 ADD R5, R5, #0xF .text:0003D548 LDR R3, [R7,#8] .text:0003D54C CMP LR, R6 .text:0003D550 AND R3, R3, #2 .text:0003D554 STR R3, [R11,#var_64] .text:0003D558 BEQ loc_3D5EC .text:0003D55C LDR R3, [R11,#var_50] .text:0003D560 ADD R4, R10, R8 .text:0003D564 CMP R4, R3 .text:0003D568 B loc_3D5D8 .text:0003D56C ; --------------------------------------------------------------------------- .text:0003D56C .text:0003D56C loc_3D56C ; CODE XREF: __gconv_transform_ucs2reverse_internal+5A8j .text:0003D56C LDRB R1, [LR,#1] .text:0003D570 LDRB R2, [LR] .text:0003D574 ORR R2, R1, R2,LSL#8 .text:0003D578 ADD R3, R2, #0x2800 .text:0003D57C MOV R3, R3,LSL#16 .text:0003D580 CMP R5, R3,LSR#16 .text:0003D584 BCC loc_3D5B8 .text:0003D588 CMP R9, #0 .text:0003D58C BEQ loc_3D59C .text:0003D590 LDR R1, [R11,#var_64] .text:0003D594 CMP R1, #0 .text:0003D598 BNE loc_3D5A4 .text:0003D59C .text:0003D59C loc_3D59C ; CODE XREF: __gconv_transform_ucs2reverse_internal+550j .text:0003D59C MOV R8, #6 .text:0003D5A0 B loc_3D5EC .text:0003D5A4 ; --------------------------------------------------------------------------- .text:0003D5A4 .text:0003D5A4 loc_3D5A4 ; CODE XREF: __gconv_transform_ucs2reverse_internal+55Cj .text:0003D5A4 LDR R3, [R9] .text:0003D5A8 MOV LR, R12 .text:0003D5AC ADD R3, R3, #1 .text:0003D5B0 STR R3, [R9] .text:0003D5B4 B loc_3D5C4 .text:0003D5B8 ; --------------------------------------------------------------------------- .text:0003D5B8 .text:0003D5B8 loc_3D5B8 ; CODE XREF: __gconv_transform_ucs2reverse_internal+548j .text:0003D5B8 STR R2, [R0] .text:0003D5BC MOV R0, R4 .text:0003D5C0 MOV LR, R12 .text:0003D5C4 .text:0003D5C4 loc_3D5C4 ; CODE XREF: __gconv_transform_ucs2reverse_internal+578j .text:0003D5C4 CMP LR, R6 .text:0003D5C8 BEQ loc_3D5EC .text:0003D5CC LDR R2, [R11,#var_50] .text:0003D5D0 ADD R4, R0, #4 .text:0003D5D4 CMP R4, R2 .text:0003D5D8 .text:0003D5D8 loc_3D5D8 ; CODE XREF: __gconv_transform_ucs2reverse_internal+52Cj .text:0003D5D8 BHI loc_3D52C .text:0003D5DC ADD R12, LR, #2 .text:0003D5E0 CMP R12, R6 .text:0003D5E4 BLS loc_3D56C .text:0003D5E8 MOV R8, #7 .text:0003D5EC .text:0003D5EC loc_3D5EC ; CODE XREF: __gconv_transform_ucs2reverse_internal+4F4j .text:0003D5EC ; __gconv_transform_ucs2reverse_internal+51Cj ... .text:0003D5EC LDR R3, [R11,#var_3C] .text:0003D5F0 STR LR, [R3] .text:0003D5F4 LDR R12, [R11,#var_6C] .text:0003D5F8 MOV R5, R8 .text:0003D5FC STR R0, [R12] .text:0003D600 .text:0003D600 loc_3D600 ; CODE XREF: __gconv_transform_ucs2reverse_internal+4E4j .text:0003D600 LDR R0, [R11,#arg_0] .text:0003D604 CMP R0, #0 .text:0003D608 BNE loc_3D760 .text:0003D60C LDR R4, [R7,#0x20] .text:0003D610 CMP R4, #0 .text:0003D614 BEQ loc_3D658 .text:0003D618 .text:0003D618 loc_3D618 ; CODE XREF: __gconv_transform_ucs2reverse_internal+618j .text:0003D618 LDR R0, [R4,#4] .text:0003D61C CMP R0, #0 .text:0003D620 BEQ loc_3D64C .text:0003D624 BL _dl_mcount_wrapper_check .text:0003D628 LDR R3, [R11,#var_34] .text:0003D62C LDR R0, [R4,#0xC] .text:0003D630 STR R3, [SP,#0x7C+var_7C] .text:0003D634 LDR R12, [R11,#var_3C] .text:0003D638 LDR R1, [R11,#var_4C] .text:0003D63C LDR R2, [R12] .text:0003D640 MOV R3, R10 .text:0003D644 MOV LR, PC .text:0003D648 LDR PC, [R4,#4] .text:0003D64C .text:0003D64C loc_3D64C ; CODE XREF: __gconv_transform_ucs2reverse_internal+5E4j .text:0003D64C LDR R4, [R4,#0x10] .text:0003D650 CMP R4, #0 .text:0003D654 BNE loc_3D618 .text:0003D658 .text:0003D658 loc_3D658 ; CODE XREF: __gconv_transform_ucs2reverse_internal+5D8j .text:0003D658 ADD R2, R7, #8 .text:0003D65C LDMIA R2, {R2,R3} .text:0003D660 ADD R3, R3, #1 .text:0003D664 ANDS R4, R2, #1 .text:0003D668 STR R3, [R7,#0xC] .text:0003D66C BNE loc_3D3C8 .text:0003D670 LDR R3, [R11,#var_34] .text:0003D674 CMP R3, R10 .text:0003D678 BLS loc_3D704 .text:0003D67C LDR R3, [R7] .text:0003D680 STR R3, [R11,#var_38] .text:0003D684 LDR R0, [R11,#var_48] .text:0003D688 BL _dl_mcount_wrapper_check .text:0003D68C STR R4, [SP,#0x7C+var_7C] .text:0003D690 LDR R0, [R11,#arg_4] .text:0003D694 STMFA SP, {R0,R4} .text:0003D698 LDR R1, [R11,#arg_C] .text:0003D69C STR R1, [SP,#0x7C+var_70] .text:0003D6A0 LDR R0, [R11,#var_40] .text:0003D6A4 LDR R1, [R11,#var_44] .text:0003D6A8 LDR R3, [R11,#var_34] .text:0003D6AC LDR R12, [R11,#var_48] .text:0003D6B0 SUB R2, R11, #-var_38 .text:0003D6B4 MOV LR, PC .text:0003D6B8 MOV PC, R12 .text:0003D6BC CMP R0, #4 .text:0003D6C0 BEQ loc_3D6F4 .text:0003D6C4 SUB R2, R11, #-var_38 .text:0003D6C8 LDMIA R2, {R2,R3} .text:0003D6CC CMP R2, R3 .text:0003D6D0 BEQ loc_3D6EC .text:0003D6D4 LDR R1, [R11,#var_3C] .text:0003D6D8 RSB R3, R2, R3 .text:0003D6DC LDR R2, [R1] .text:0003D6E0 ADD R3, R3, R3,LSR#31 .text:0003D6E4 SUB R2, R2, R3,ASR#1 .text:0003D6E8 STR R2, [R1] .text:0003D6EC .text:0003D6EC loc_3D6EC ; CODE XREF: __gconv_transform_ucs2reverse_internal+694j .text:0003D6EC MOV R5, R0 .text:0003D6F0 B loc_3D704 .text:0003D6F4 ; --------------------------------------------------------------------------- .text:0003D6F4 .text:0003D6F4 loc_3D6F4 ; CODE XREF: __gconv_transform_ucs2reverse_internal+684j .text:0003D6F4 CMP R5, #5 .text:0003D6F8 LDREQ R3, [R7] .text:0003D6FC MOVEQ R5, R4 .text:0003D700 STREQ R3, [R11,#var_34] .text:0003D704 .text:0003D704 loc_3D704 ; CODE XREF: __gconv_transform_ucs2reverse_internal+63Cj .text:0003D704 ; __gconv_transform_ucs2reverse_internal+6B4j .text:0003D704 CMP R5, #0 .text:0003D708 LDREQ R3, [R7] .text:0003D70C STREQ R3, [R11,#var_34] .text:0003D710 BEQ loc_3D41C .text:0003D714 .text:0003D714 loc_3D714 ; CODE XREF: __gconv_transform_ucs2reverse_internal+3A8j .text:0003D714 LDR R2, [R11,#arg_C] .text:0003D718 CMP R5, #7 .text:0003D71C MOVNE R3, #0 .text:0003D720 MOVEQ R3, #1 .text:0003D724 CMP R2, #0 .text:0003D728 MOVEQ R3, #0 .text:0003D72C CMP R3, #0 .text:0003D730 BEQ loc_3D7D8 .text:0003D734 LDR R3, [R11,#var_3C] .text:0003D738 LDR R2, [R3] .text:0003D73C RSB R3, R2, R6 .text:0003D740 CMP R3, #3 .text:0003D744 BLE loc_3D780 .text:0003D748 LDR R0, =aInendInptrp4 ; "inend - *inptrp < 4" .text:0003D74C LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003D750 MOV R2, #0x254 .text:0003D754 LDR R3, =a__gconv_tran_9 ; "__gconv_transform_ucs2reverse_internal" .text:0003D758 ADD R2, R2, #3 .text:0003D75C BL __assert_fail .text:0003D760 ; --------------------------------------------------------------------------- .text:0003D760 .text:0003D760 loc_3D760 ; CODE XREF: __gconv_transform_ucs2reverse_internal+5CCj .text:0003D760 LDR R3, [R11,#var_34] .text:0003D764 LDR R12, [R11,#arg_0] .text:0003D768 MOV R0, R5 .text:0003D76C STR R3, [R12] .text:0003D770 B locret_3D7DC .text:0003D770 ; --------------------------------------------------------------------------- .text:0003D774 off_3D774 DCD aInendInptrp4 ; DATA XREF: __gconv_transform_ucs2reverse_internal+70Cr .text:0003D774 ; "inend - *inptrp < 4" .text:0003D778 off_3D778 DCD a__IconvSkeleto ; DATA XREF: __gconv_transform_ucs2reverse_internal+710r .text:0003D778 ; "../iconv/skeleton.c" .text:0003D77C off_3D77C DCD a__gconv_tran_9 ; DATA XREF: __gconv_transform_ucs2reverse_internal+718r .text:0003D77C ; "__gconv_transform_ucs2reverse_internal" .text:0003D780 ; --------------------------------------------------------------------------- .text:0003D780 .text:0003D780 loc_3D780 ; CODE XREF: __gconv_transform_ucs2reverse_internal+708j .text:0003D780 MOV R0, #0 .text:0003D784 CMP R2, R6 .text:0003D788 BCS loc_3D7B8 .text:0003D78C .text:0003D78C loc_3D78C ; CODE XREF: __gconv_transform_ucs2reverse_internal+778j .text:0003D78C LDR R1, [R11,#var_3C] .text:0003D790 LDR R2, [R7,#0x14] .text:0003D794 LDR R3, [R1] .text:0003D798 LDRB R1, [R3],#1 .text:0003D79C ADD R2, R2, R0 .text:0003D7A0 STRB R1, [R2,#4] .text:0003D7A4 ADD R0, R0, #1 .text:0003D7A8 LDR R2, [R11,#var_3C] .text:0003D7AC CMP R3, R6 .text:0003D7B0 STR R3, [R2] .text:0003D7B4 BCC loc_3D78C .text:0003D7B8 .text:0003D7B8 loc_3D7B8 ; CODE XREF: __gconv_transform_ucs2reverse_internal+74Cj .text:0003D7B8 LDR R2, [R7,#0x14] .text:0003D7BC LDR R3, [R2] .text:0003D7C0 BIC R3, R3, #7 .text:0003D7C4 STR R3, [R2] .text:0003D7C8 LDR R1, [R7,#0x14] .text:0003D7CC LDR R3, [R1] .text:0003D7D0 ORR R3, R3, R0 .text:0003D7D4 STR R3, [R1] .text:0003D7D8 .text:0003D7D8 loc_3D7D8 ; CODE XREF: __gconv_transform_ucs2reverse_internal+90j .text:0003D7D8 ; __gconv_transform_ucs2reverse_internal+D8j ... .text:0003D7D8 MOV R0, R5 .text:0003D7DC .text:0003D7DC locret_3D7DC ; CODE XREF: __gconv_transform_ucs2reverse_internal+734j .text:0003D7DC LDMDB R11, {R4-R11,SP,PC} .text:0003D7DC ; End of function __gconv_transform_ucs2reverse_internal .text:0003D7DC .text:0003D7E0 .text:0003D7E0 ; =============== S U B R O U T I N E ======================================= .text:0003D7E0 .text:0003D7E0 ; Attributes: bp-based frame .text:0003D7E0 .text:0003D7E0 EXPORT __gconv_transform_internal_ucs2reverse .text:0003D7E0 __gconv_transform_internal_ucs2reverse .text:0003D7E0 .text:0003D7E0 var_9C = -0x9C .text:0003D7E0 var_98 = -0x98 .text:0003D7E0 var_94 = -0x94 .text:0003D7E0 var_90 = -0x90 .text:0003D7E0 var_8C = -0x8C .text:0003D7E0 var_88 = -0x88 .text:0003D7E0 var_84 = -0x84 .text:0003D7E0 var_80 = -0x80 .text:0003D7E0 var_7C = -0x7C .text:0003D7E0 var_78 = -0x78 .text:0003D7E0 var_74 = -0x74 .text:0003D7E0 var_70 = -0x70 .text:0003D7E0 var_6C = -0x6C .text:0003D7E0 var_68 = -0x68 .text:0003D7E0 var_64 = -0x64 .text:0003D7E0 var_60 = -0x60 .text:0003D7E0 var_54 = -0x54 .text:0003D7E0 var_50 = -0x50 .text:0003D7E0 var_44 = -0x44 .text:0003D7E0 var_40 = -0x40 .text:0003D7E0 var_3C = -0x3C .text:0003D7E0 var_38 = -0x38 .text:0003D7E0 var_34 = -0x34 .text:0003D7E0 var_30 = -0x30 .text:0003D7E0 var_2C = -0x2C .text:0003D7E0 var_28 = -0x28 .text:0003D7E0 arg_0 = 4 .text:0003D7E0 arg_4 = 8 .text:0003D7E0 arg_8 = 0xC .text:0003D7E0 arg_C = 0x10 .text:0003D7E0 .text:0003D7E0 MOV R12, SP .text:0003D7E4 STMFD SP!, {R4-R12,LR,PC} .text:0003D7E8 SUB R11, R12, #4 .text:0003D7EC MOV R7, R1 .text:0003D7F0 SUB SP, SP, #0x74 .text:0003D7F4 LDR R1, [R7,#8] .text:0003D7F8 MOV R12, #0 .text:0003D7FC STR R12, [R11,#var_70] .text:0003D800 MOV R10, R2 .text:0003D804 STR R0, [R11,#var_64] .text:0003D808 TST R1, #1 .text:0003D80C ADD R1, R7, #0x24 .text:0003D810 STR R1, [R11,#var_6C] .text:0003D814 MOV R8, R3 .text:0003D818 ADD LR, R0, #0x38 .text:0003D81C STR LR, [R11,#var_68] .text:0003D820 LDREQ R2, [LR,#0x14] .text:0003D824 STREQ R2, [R11,#var_70] .text:0003D828 LDR R3, [R11,#arg_8] .text:0003D82C CMP R3, #0 .text:0003D830 BEQ loc_3D8BC .text:0003D834 LDR R3, [R11,#arg_0] .text:0003D838 MOV R6, #0 .text:0003D83C CMP R3, R6 .text:0003D840 BEQ loc_3D858 .text:0003D844 LDR R0, =aOutbufstartVoi ; "outbufstart == ((void *)0)" .text:0003D848 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003D84C LDR R3, =a__gconv_tra_10 ; "__gconv_transform_internal_ucs2reverse" .text:0003D850 MOV R2, #0x130 .text:0003D854 BL __assert_fail .text:0003D858 ; --------------------------------------------------------------------------- .text:0003D858 .text:0003D858 loc_3D858 ; CODE XREF: __gconv_transform_internal_ucs2reverse+60j .text:0003D858 MOV R1, R6 .text:0003D85C LDR R0, [R7,#0x14] .text:0003D860 MOV R2, #8 .text:0003D864 BL memset .text:0003D868 LDR R3, [R7,#8] .text:0003D86C TST R3, #1 .text:0003D870 BNE loc_3E1C8 .text:0003D874 LDR R0, [R11,#var_70] .text:0003D878 BL _dl_mcount_wrapper_check .text:0003D87C STR R6, [SP,#0x9C+var_9C] .text:0003D880 LDR R12, [R11,#arg_4] .text:0003D884 MOV R3, #1 .text:0003D888 STR R3, [SP,#0x9C+var_94] .text:0003D88C STR R12, [SP,#0x9C+var_98] .text:0003D890 LDR LR, [R11,#arg_C] .text:0003D894 STR LR, [SP,#0x9C+var_90] .text:0003D898 LDR R0, [R11,#var_68] .text:0003D89C LDR R1, [R11,#var_6C] .text:0003D8A0 MOV R2, R6 .text:0003D8A4 LDR R12, [R11,#var_70] .text:0003D8A8 MOV R3, R2 .text:0003D8AC MOV LR, PC .text:0003D8B0 MOV PC, R12 .text:0003D8B4 MOV R6, R0 .text:0003D8B8 B loc_3E1C8 .text:0003D8BC ; --------------------------------------------------------------------------- .text:0003D8BC .text:0003D8BC loc_3D8BC ; CODE XREF: __gconv_transform_internal_ucs2reverse+50j .text:0003D8BC LDR LR, [R11,#arg_0] .text:0003D8C0 LDR R1, [R10] .text:0003D8C4 CMP LR, #0 .text:0003D8C8 STR R1, [R11,#var_74] .text:0003D8CC LDREQ R3, [R7] .text:0003D8D0 LDRNE R2, [R11,#arg_0] .text:0003D8D4 LDRNE R3, [R2] .text:0003D8D8 STR R3, [R11,#var_34] .text:0003D8DC MOV R3, #0 .text:0003D8E0 STR R3, [R11,#var_30] .text:0003D8E4 SUB LR, R11, #-var_34 .text:0003D8E8 STR LR, [R11,#var_8C] .text:0003D8EC LDR R3, [R11,#arg_4] .text:0003D8F0 LDR R12, [R11,#arg_C] .text:0003D8F4 CMP R3, #0 .text:0003D8F8 SUBNE R5, R11, #-var_30 .text:0003D8FC MOVEQ R5, #0 .text:0003D900 LDR R1, [R7,#4] .text:0003D904 CMP R12, #0 .text:0003D908 STR R1, [R11,#var_78] .text:0003D90C BEQ loc_3DC9C .text:0003D910 LDR R2, [R7,#0x14] .text:0003D914 STR R2, [R11,#var_80] .text:0003D918 LDR R3, [R2] .text:0003D91C ANDS R1, R3, #7 .text:0003D920 BEQ loc_3DC9C .text:0003D924 LDR R3, [R11,#arg_0] .text:0003D928 CMP R3, #0 .text:0003D92C BEQ loc_3D948 .text:0003D930 LDR R0, =aOutbufstartVoi ; "outbufstart == ((void *)0)" .text:0003D934 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003D938 MOV R2, #0x168 .text:0003D93C LDR R3, =a__gconv_tra_10 ; "__gconv_transform_internal_ucs2reverse" .text:0003D940 ADD R2, R2, #2 .text:0003D944 BL __assert_fail .text:0003D948 ; --------------------------------------------------------------------------- .text:0003D948 .text:0003D948 loc_3D948 ; CODE XREF: __gconv_transform_internal_ucs2reverse+14Cj .text:0003D948 LDR R3, [R10] .text:0003D94C STR R3, [R11,#var_38] .text:0003D950 LDR R2, [R11,#var_34] .text:0003D954 STR R2, [R11,#var_3C] .text:0003D958 LDR R0, [R11,#arg_0] .text:0003D95C MOV R6, R0 .text:0003D960 LDR R12, [R7,#8] .text:0003D964 CMP R6, R1 .text:0003D968 STR R12, [R11,#var_88] .text:0003D96C BCS loc_3D998 .text:0003D970 SUB R1, R11, #-var_2C .text:0003D974 .text:0003D974 loc_3D974 ; CODE XREF: __gconv_transform_internal_ucs2reverse+1B4j .text:0003D974 LDR LR, [R11,#var_80] .text:0003D978 ADD R3, LR, R6 .text:0003D97C LDRB R2, [R3,#4] .text:0003D980 STRB R2, [R1,R6] .text:0003D984 LDR R3, [LR] .text:0003D988 ADD R6, R6, #1 .text:0003D98C AND R3, R3, #7 .text:0003D990 CMP R6, R3 .text:0003D994 BCC loc_3D974 .text:0003D998 .text:0003D998 loc_3D998 ; CODE XREF: __gconv_transform_internal_ucs2reverse+18Cj .text:0003D998 LDR R1, [R11,#var_38] .text:0003D99C ADD R3, R1, #4 .text:0003D9A0 RSB R3, R6, R3 .text:0003D9A4 CMP R3, R8 .text:0003D9A8 BLS loc_3D9F0 .text:0003D9AC MOV R3, R1 .text:0003D9B0 CMP R3, R8 .text:0003D9B4 STR R8, [R10] .text:0003D9B8 BCS loc_3D9E8 .text:0003D9BC .text:0003D9BC loc_3D9BC ; CODE XREF: __gconv_transform_internal_ucs2reverse+204j .text:0003D9BC LDR R1, [R11,#var_80] .text:0003D9C0 LDRB R3, [R3] .text:0003D9C4 ADD R2, R1, R6 .text:0003D9C8 STRB R3, [R2,#4] .text:0003D9CC LDR R1, [R11,#var_38] .text:0003D9D0 ADD R6, R6, #1 .text:0003D9D4 ADD R1, R1, #1 .text:0003D9D8 MOV R3, R1 .text:0003D9DC CMP R3, R8 .text:0003D9E0 STR R1, [R11,#var_38] .text:0003D9E4 BCC loc_3D9BC .text:0003D9E8 .text:0003D9E8 loc_3D9E8 ; CODE XREF: __gconv_transform_internal_ucs2reverse+1D8j .text:0003D9E8 MOV R6, #7 .text:0003D9EC B loc_3DC6C .text:0003D9F0 ; --------------------------------------------------------------------------- .text:0003D9F0 .text:0003D9F0 loc_3D9F0 ; CODE XREF: __gconv_transform_internal_ucs2reverse+1C8j .text:0003D9F0 LDR R3, [R11,#var_3C] .text:0003D9F4 LDR R2, [R11,#var_78] .text:0003D9F8 ADD R3, R3, #2 .text:0003D9FC CMP R3, R2 .text:0003DA00 MOVHI R6, #5 .text:0003DA04 BHI loc_3DC6C .text:0003DA08 SUB R9, R11, #-var_2C .text:0003DA0C MOV R1, R9 .text:0003DA10 .text:0003DA10 loc_3DA10 ; CODE XREF: __gconv_transform_internal_ucs2reverse+254j .text:0003DA10 LDR R3, [R11,#var_38] .text:0003DA14 LDRB R2, [R3] .text:0003DA18 STRB R2, [R1,R6] .text:0003DA1C LDR R3, [R11,#var_38] .text:0003DA20 ADD R6, R6, #1 .text:0003DA24 ADD R3, R3, #1 .text:0003DA28 CMP R6, #3 .text:0003DA2C CMPLS R3, R8 .text:0003DA30 STR R3, [R11,#var_38] .text:0003DA34 BCC loc_3DA10 .text:0003DA38 STR R9, [R11,#var_38] .text:0003DA3C LDR R1, [R9] .text:0003DA40 ADD R3, R9, R6 .text:0003DA44 STR R3, [R11,#var_84] .text:0003DA48 CMP R1, #0x10000 .text:0003DA4C BCC loc_3DAEC .text:0003DA50 MOV R0, #6 .text:0003DA54 CMP R5, #0 .text:0003DA58 BEQ loc_3DB60 .text:0003DA5C LDR R4, [R7,#0x20] .text:0003DA60 B loc_3DA68 .text:0003DA64 ; --------------------------------------------------------------------------- .text:0003DA64 .text:0003DA64 loc_3DA64 ; CODE XREF: __gconv_transform_internal_ucs2reverse+2D0j .text:0003DA64 LDR R4, [R4,#0x10] .text:0003DA68 .text:0003DA68 loc_3DA68 ; CODE XREF: __gconv_transform_internal_ucs2reverse+280j .text:0003DA68 CMP R4, #0 .text:0003DA6C BEQ loc_3DAB4 .text:0003DA70 LDR R0, [R4] .text:0003DA74 BL _dl_mcount_wrapper_check .text:0003DA78 LDR R2, [R4,#0xC] .text:0003DA7C SUB R3, R11, #-var_38 .text:0003DA80 STR R3, [SP,#0x9C+var_9C] .text:0003DA84 LDR R12, [R11,#var_84] .text:0003DA88 SUB R3, R11, #-var_3C .text:0003DA8C STR R3, [SP,#0x9C+var_94] .text:0003DA90 STR R5, [SP,#0x9C+var_90] .text:0003DA94 STR R12, [SP,#0x9C+var_98] .text:0003DA98 LDR R0, [R11,#var_64] .text:0003DA9C LDR R3, [R10] .text:0003DAA0 MOV R1, R7 .text:0003DAA4 MOV LR, PC .text:0003DAA8 LDR PC, [R4] .text:0003DAAC CMP R0, #6 .text:0003DAB0 BEQ loc_3DA64 .text:0003DAB4 .text:0003DAB4 loc_3DAB4 ; CODE XREF: __gconv_transform_internal_ucs2reverse+28Cj .text:0003DAB4 CMP R0, #6 .text:0003DAB8 BNE loc_3DB60 .text:0003DABC CMP R5, #0 .text:0003DAC0 BEQ loc_3DB60 .text:0003DAC4 LDR LR, [R11,#var_88] .text:0003DAC8 TST LR, #2 .text:0003DACC BEQ loc_3DB60 .text:0003DAD0 LDR R3, [R5] .text:0003DAD4 ADD R3, R3, #1 .text:0003DAD8 STR R3, [R5] .text:0003DADC LDR R2, [R11,#var_38] .text:0003DAE0 ADD R2, R2, #4 .text:0003DAE4 STR R2, [R11,#var_38] .text:0003DAE8 B loc_3DB60 .text:0003DAEC ; --------------------------------------------------------------------------- .text:0003DAEC .text:0003DAEC loc_3DAEC ; CODE XREF: __gconv_transform_internal_ucs2reverse+26Cj .text:0003DAEC SUB R3, R1, #0xD800 .text:0003DAF0 CMP R3, #0x800 .text:0003DAF4 BCS loc_3DB2C .text:0003DAF8 CMP R5, #0 .text:0003DAFC BEQ loc_3DB0C .text:0003DB00 LDR R1, [R11,#var_88] .text:0003DB04 TST R1, #2 .text:0003DB08 BNE loc_3DB14 .text:0003DB0C .text:0003DB0C loc_3DB0C ; CODE XREF: __gconv_transform_internal_ucs2reverse+31Cj .text:0003DB0C MOV R0, #6 .text:0003DB10 B loc_3DB60 .text:0003DB14 ; --------------------------------------------------------------------------- .text:0003DB14 .text:0003DB14 loc_3DB14 ; CODE XREF: __gconv_transform_internal_ucs2reverse+328j .text:0003DB14 ADD R2, R9, #4 .text:0003DB18 STR R2, [R11,#var_38] .text:0003DB1C LDR R3, [R5] .text:0003DB20 ADD R3, R3, #1 .text:0003DB24 STR R3, [R5] .text:0003DB28 B loc_3DB60 .text:0003DB2C ; --------------------------------------------------------------------------- .text:0003DB2C .text:0003DB2C loc_3DB2C ; CODE XREF: __gconv_transform_internal_ucs2reverse+314j .text:0003DB2C MOV R1, R1,LSL#16 .text:0003DB30 AND R3, R1, #0xFF0000 .text:0003DB34 MOV R3, R3,LSR#8 .text:0003DB38 LDR R2, [R11,#var_3C] .text:0003DB3C ORR R3, R3, R1,LSR#24 .text:0003DB40 STRB R3, [R2] .text:0003DB44 MOV R3, R3,ASR#8 .text:0003DB48 STRB R3, [R2,#1] .text:0003DB4C LDR R3, [R11,#var_38] .text:0003DB50 ADD R2, R2, #2 .text:0003DB54 STR R2, [R11,#var_3C] .text:0003DB58 ADD R3, R3, #4 .text:0003DB5C STR R3, [R11,#var_38] .text:0003DB60 .text:0003DB60 loc_3DB60 ; CODE XREF: __gconv_transform_internal_ucs2reverse+278j .text:0003DB60 ; __gconv_transform_internal_ucs2reverse+2D8j ... .text:0003DB60 LDR R2, [R11,#var_38] .text:0003DB64 CMP R2, R9 .text:0003DB68 BEQ loc_3DBC8 .text:0003DB6C LDR R12, [R11,#var_80] .text:0003DB70 LDR R3, [R12] .text:0003DB74 RSB R1, R9, R2 .text:0003DB78 AND R2, R3, #7 .text:0003DB7C CMP R1, R2 .text:0003DB80 BGT loc_3DB98 .text:0003DB84 LDR R0, =aInptrBytebufSt ; "inptr - bytebuf > (state->__count & 7)" .text:0003DB88 LDR R1, =a__IconvLoop_c ; "../iconv/loop.c" .text:0003DB8C LDR R3, =aInternal_ucs2r ; "internal_ucs2reverse_loop_single" .text:0003DB90 MOV R2, #0x17C .text:0003DB94 BL __assert_fail .text:0003DB98 ; --------------------------------------------------------------------------- .text:0003DB98 .text:0003DB98 loc_3DB98 ; CODE XREF: __gconv_transform_internal_ucs2reverse+3A0j .text:0003DB98 LDR R3, [R10] .text:0003DB9C RSB R2, R2, R1 .text:0003DBA0 ADD R3, R3, R2 .text:0003DBA4 STR R3, [R10] .text:0003DBA8 LDR R2, [R11,#var_3C] .text:0003DBAC STR R2, [R11,#var_34] .text:0003DBB0 LDR LR, [R11,#var_80] .text:0003DBB4 LDR R3, [LR] .text:0003DBB8 MOV R0, #0 .text:0003DBBC BIC R3, R3, #7 .text:0003DBC0 STR R3, [LR] .text:0003DBC4 B loc_3DC68 .text:0003DBC8 ; --------------------------------------------------------------------------- .text:0003DBC8 .text:0003DBC8 loc_3DBC8 ; CODE XREF: __gconv_transform_internal_ucs2reverse+388j .text:0003DBC8 CMP R0, #7 .text:0003DBCC BNE loc_3DC68 .text:0003DBD0 LDR R1, [R11,#var_84] .text:0003DBD4 SUB R3, R11, #-var_28 .text:0003DBD8 CMP R1, R3 .text:0003DBDC BNE loc_3DC14 .text:0003DBE0 LDR R0, =aInendBytebuf4 ; "inend != &bytebuf[4]" .text:0003DBE4 LDR R1, =a__IconvLoop_c ; "../iconv/loop.c" .text:0003DBE8 MOV R2, #0x188 .text:0003DBEC LDR R3, =aInternal_ucs2r ; "internal_ucs2reverse_loop_single" .text:0003DBF0 ADD R2, R2, #2 .text:0003DBF4 BL __assert_fail .text:0003DBF4 ; --------------------------------------------------------------------------- .text:0003DBF8 off_3DBF8 DCD aOutbufstartVoi ; DATA XREF: __gconv_transform_internal_ucs2reverse+64r .text:0003DBF8 ; __gconv_transform_internal_ucs2reverse+150r .text:0003DBF8 ; "outbufstart == ((void *)0)" .text:0003DBFC off_3DBFC DCD a__IconvSkeleto ; DATA XREF: __gconv_transform_internal_ucs2reverse+68r .text:0003DBFC ; __gconv_transform_internal_ucs2reverse+154r .text:0003DBFC ; "../iconv/skeleton.c" .text:0003DC00 off_3DC00 DCD a__gconv_tra_10 ; DATA XREF: __gconv_transform_internal_ucs2reverse+6Cr .text:0003DC00 ; __gconv_transform_internal_ucs2reverse+15Cr .text:0003DC00 ; "__gconv_transform_internal_ucs2reverse" .text:0003DC04 off_3DC04 DCD aInptrBytebufSt ; DATA XREF: __gconv_transform_internal_ucs2reverse+3A4r .text:0003DC04 ; "inptr - bytebuf > (state->__count & 7)" .text:0003DC08 off_3DC08 DCD a__IconvLoop_c ; DATA XREF: __gconv_transform_internal_ucs2reverse+3A8r .text:0003DC08 ; __gconv_transform_internal_ucs2reverse+404r .text:0003DC08 ; "../iconv/loop.c" .text:0003DC0C off_3DC0C DCD aInternal_ucs2r ; DATA XREF: __gconv_transform_internal_ucs2reverse+3ACr .text:0003DC0C ; __gconv_transform_internal_ucs2reverse+40Cr .text:0003DC0C ; "internal_ucs2reverse_loop_single" .text:0003DC10 off_3DC10 DCD aInendBytebuf4 ; DATA XREF: __gconv_transform_internal_ucs2reverse+400r .text:0003DC10 ; "inend != &bytebuf[4]" .text:0003DC14 ; --------------------------------------------------------------------------- .text:0003DC14 .text:0003DC14 loc_3DC14 ; CODE XREF: __gconv_transform_internal_ucs2reverse+3FCj .text:0003DC14 LDR LR, [R11,#var_84] .text:0003DC18 MOV R12, R2 .text:0003DC1C LDR R1, [R11,#var_80] .text:0003DC20 CMP R12, LR .text:0003DC24 LDR R3, [R1] .text:0003DC28 RSB R1, R2, LR .text:0003DC2C LDR R2, [R10] .text:0003DC30 AND R3, R3, #7 .text:0003DC34 RSB R1, R3, R1 .text:0003DC38 ADD R2, R2, R1 .text:0003DC3C STR R2, [R10] .text:0003DC40 BCS loc_3DC68 .text:0003DC44 .text:0003DC44 loc_3DC44 ; CODE XREF: __gconv_transform_internal_ucs2reverse+484j .text:0003DC44 LDR LR, [R11,#var_80] .text:0003DC48 LDRB R2, [R12],#1 .text:0003DC4C ADD R3, LR, R6 .text:0003DC50 STRB R2, [R3,#4] .text:0003DC54 LDR R1, [R11,#var_84] .text:0003DC58 ADD R6, R6, #1 .text:0003DC5C STR R12, [R11,#var_38] .text:0003DC60 CMP R12, R1 .text:0003DC64 BCC loc_3DC44 .text:0003DC68 .text:0003DC68 loc_3DC68 ; CODE XREF: __gconv_transform_internal_ucs2reverse+3E4j .text:0003DC68 ; __gconv_transform_internal_ucs2reverse+3ECj ... .text:0003DC68 MOV R6, R0 .text:0003DC6C .text:0003DC6C loc_3DC6C ; CODE XREF: __gconv_transform_internal_ucs2reverse+20Cj .text:0003DC6C ; __gconv_transform_internal_ucs2reverse+224j .text:0003DC6C CMP R6, #0 .text:0003DC70 BEQ loc_3DC9C .text:0003DC74 B loc_3E1C8 .text:0003DC78 ; --------------------------------------------------------------------------- .text:0003DC78 .text:0003DC78 loc_3DC78 ; CODE XREF: __gconv_transform_internal_ucs2reverse+890j .text:0003DC78 LDR R3, [R11,#var_34] .text:0003DC7C STR R3, [R7] .text:0003DC80 LDR R3, [R11,#arg_4] .text:0003DC84 LDR R2, [R3] .text:0003DC88 LDR R3, [R11,#var_30] .text:0003DC8C LDR R12, [R11,#arg_4] .text:0003DC90 ADD R2, R2, R3 .text:0003DC94 STR R2, [R12] .text:0003DC98 B loc_3E110 .text:0003DC9C ; --------------------------------------------------------------------------- .text:0003DC9C .text:0003DC9C loc_3DC9C ; CODE XREF: __gconv_transform_internal_ucs2reverse+12Cj .text:0003DC9C ; __gconv_transform_internal_ucs2reverse+140j ... .text:0003DC9C LDR R1, [R11,#var_74] .text:0003DCA0 MOV LR, #0 .text:0003DCA4 STR LR, [R11,#var_7C] .text:0003DCA8 TST R1, #3 .text:0003DCAC BNE loc_3DCC8 .text:0003DCB0 LDR R3, [R7,#8] .text:0003DCB4 TST R3, #1 .text:0003DCB8 BEQ loc_3DCD0 .text:0003DCBC LDR R3, [R11,#var_34] .text:0003DCC0 TST R3, #1 .text:0003DCC4 BEQ loc_3DCD0 .text:0003DCC8 .text:0003DCC8 loc_3DCC8 ; CODE XREF: __gconv_transform_internal_ucs2reverse+4CCj .text:0003DCC8 MOV R2, #1 .text:0003DCCC STR R2, [R11,#var_7C] .text:0003DCD0 .text:0003DCD0 loc_3DCD0 ; CODE XREF: __gconv_transform_internal_ucs2reverse+4D8j .text:0003DCD0 ; __gconv_transform_internal_ucs2reverse+4E4j ... .text:0003DCD0 LDR R3, [R10] .text:0003DCD4 LDR R12, [R11,#var_7C] .text:0003DCD8 LDR R9, [R11,#var_34] .text:0003DCDC CMP R12, #0 .text:0003DCE0 STR R3, [R11,#var_74] .text:0003DCE4 BNE loc_3DE78 .text:0003DCE8 STR R3, [R11,#var_40] .text:0003DCEC STR R9, [R11,#var_44] .text:0003DCF0 MOV R0, #4 .text:0003DCF4 CMP R3, R8 .text:0003DCF8 LDR R6, [R7,#8] .text:0003DCFC BEQ loc_3DE48 .text:0003DD00 MOV LR, R9 .text:0003DD04 LDR R1, [R11,#var_78] .text:0003DD08 ADD R4, R9, #2 .text:0003DD0C CMP R4, R1 .text:0003DD10 BHI loc_3DE60 .text:0003DD14 ADD R12, R3, R0 .text:0003DD18 B loc_3DE28 .text:0003DD1C ; --------------------------------------------------------------------------- .text:0003DD1C .text:0003DD1C loc_3DD1C ; CODE XREF: __gconv_transform_internal_ucs2reverse+664j .text:0003DD1C LDR R4, [R7,#0x20] .text:0003DD20 B loc_3DD28 .text:0003DD24 ; --------------------------------------------------------------------------- .text:0003DD24 .text:0003DD24 loc_3DD24 ; CODE XREF: __gconv_transform_internal_ucs2reverse+588j .text:0003DD24 LDR R4, [R4,#0x10] .text:0003DD28 .text:0003DD28 loc_3DD28 ; CODE XREF: __gconv_transform_internal_ucs2reverse+540j .text:0003DD28 CMP R4, #0 .text:0003DD2C BEQ loc_3DD6C .text:0003DD30 LDR R0, [R4] .text:0003DD34 BL _dl_mcount_wrapper_check .text:0003DD38 LDR R2, [R4,#0xC] .text:0003DD3C SUB R3, R11, #-var_40 .text:0003DD40 STMEA SP, {R3,R8} .text:0003DD44 SUB R3, R11, #-var_44 .text:0003DD48 STR R3, [SP,#0x9C+var_94] .text:0003DD4C STR R5, [SP,#0x9C+var_90] .text:0003DD50 LDR R0, [R11,#var_64] .text:0003DD54 LDR R3, [R10] .text:0003DD58 MOV R1, R7 .text:0003DD5C MOV LR, PC .text:0003DD60 LDR PC, [R4] .text:0003DD64 CMP R0, #6 .text:0003DD68 BEQ loc_3DD24 .text:0003DD6C .text:0003DD6C loc_3DD6C ; CODE XREF: __gconv_transform_internal_ucs2reverse+54Cj .text:0003DD6C CMP R0, #6 .text:0003DD70 BNE loc_3DE04 .text:0003DD74 CMP R5, #0 .text:0003DD78 BEQ loc_3DE48 .text:0003DD7C TST R6, #2 .text:0003DD80 BEQ loc_3DE48 .text:0003DD84 LDR R3, [R5] .text:0003DD88 ADD R3, R3, #1 .text:0003DD8C STR R3, [R5] .text:0003DD90 LDR R2, [R11,#var_40] .text:0003DD94 ADD R2, R2, #4 .text:0003DD98 STR R2, [R11,#var_40] .text:0003DD9C B loc_3DE04 .text:0003DDA0 ; --------------------------------------------------------------------------- .text:0003DDA0 .text:0003DDA0 loc_3DDA0 ; CODE XREF: __gconv_transform_internal_ucs2reverse+658j .text:0003DDA0 SUB R3, R2, #0xD800 .text:0003DDA4 CMP R3, #0x800 .text:0003DDA8 BCS loc_3DDD8 .text:0003DDAC CMP R5, #0 .text:0003DDB0 BEQ loc_3DDBC .text:0003DDB4 TST R6, #2 .text:0003DDB8 BNE loc_3DDC4 .text:0003DDBC .text:0003DDBC loc_3DDBC ; CODE XREF: __gconv_transform_internal_ucs2reverse+5D0j .text:0003DDBC MOV R0, #6 .text:0003DDC0 B loc_3DE48 .text:0003DDC4 ; --------------------------------------------------------------------------- .text:0003DDC4 .text:0003DDC4 loc_3DDC4 ; CODE XREF: __gconv_transform_internal_ucs2reverse+5D8j .text:0003DDC4 STR R12, [R11,#var_40] .text:0003DDC8 LDR R3, [R5] .text:0003DDCC ADD R3, R3, #1 .text:0003DDD0 STR R3, [R5] .text:0003DDD4 B loc_3DE04 .text:0003DDD8 ; --------------------------------------------------------------------------- .text:0003DDD8 .text:0003DDD8 loc_3DDD8 ; CODE XREF: __gconv_transform_internal_ucs2reverse+5C8j .text:0003DDD8 MOV R3, R2,LSL#16 .text:0003DDDC AND R2, R3, #0xFF0000 .text:0003DDE0 MOV R2, R2,LSR#8 .text:0003DDE4 ORR R2, R2, R3,LSR#24 .text:0003DDE8 STRB R2, [LR] .text:0003DDEC MOV R2, R2,ASR#8 .text:0003DDF0 STRB R2, [LR,#1] .text:0003DDF4 LDR R3, [R11,#var_40] .text:0003DDF8 STR R4, [R11,#var_44] .text:0003DDFC ADD R3, R3, #4 .text:0003DE00 STR R3, [R11,#var_40] .text:0003DE04 .text:0003DE04 loc_3DE04 ; CODE XREF: __gconv_transform_internal_ucs2reverse+590j .text:0003DE04 ; __gconv_transform_internal_ucs2reverse+5BCj ... .text:0003DE04 LDR R3, [R11,#var_40] .text:0003DE08 CMP R3, R8 .text:0003DE0C BEQ loc_3DE48 .text:0003DE10 LDR LR, [R11,#var_44] .text:0003DE14 LDR R2, [R11,#var_78] .text:0003DE18 ADD R4, LR, #2 .text:0003DE1C CMP R4, R2 .text:0003DE20 BHI loc_3DE60 .text:0003DE24 ADD R12, R3, #4 .text:0003DE28 .text:0003DE28 loc_3DE28 ; CODE XREF: __gconv_transform_internal_ucs2reverse+538j .text:0003DE28 CMP R12, R8 .text:0003DE2C BHI loc_3DE58 .text:0003DE30 LDR R2, [R3] .text:0003DE34 CMP R2, #0x10000 .text:0003DE38 BCC loc_3DDA0 .text:0003DE3C MOV R0, #6 .text:0003DE40 CMP R5, #0 .text:0003DE44 BNE loc_3DD1C .text:0003DE48 .text:0003DE48 loc_3DE48 ; CODE XREF: __gconv_transform_internal_ucs2reverse+51Cj .text:0003DE48 ; __gconv_transform_internal_ucs2reverse+598j ... .text:0003DE48 LDR R3, [R11,#var_40] .text:0003DE4C STR R3, [R10] .text:0003DE50 LDR R2, [R11,#var_44] .text:0003DE54 B loc_3DFFC .text:0003DE58 ; --------------------------------------------------------------------------- .text:0003DE58 .text:0003DE58 loc_3DE58 ; CODE XREF: __gconv_transform_internal_ucs2reverse+64Cj .text:0003DE58 MOV R0, #7 .text:0003DE5C B loc_3DE48 .text:0003DE60 ; --------------------------------------------------------------------------- .text:0003DE60 .text:0003DE60 loc_3DE60 ; CODE XREF: __gconv_transform_internal_ucs2reverse+530j .text:0003DE60 ; __gconv_transform_internal_ucs2reverse+640j .text:0003DE60 MOV R0, #5 .text:0003DE64 B loc_3DE48 .text:0003DE68 ; --------------------------------------------------------------------------- .text:0003DE68 .text:0003DE68 loc_3DE68 ; CODE XREF: __gconv_transform_internal_ucs2reverse+6C8j .text:0003DE68 ; __gconv_transform_internal_ucs2reverse+7E8j .text:0003DE68 MOV R0, #5 .text:0003DE6C B loc_3DFF0 .text:0003DE70 ; --------------------------------------------------------------------------- .text:0003DE70 .text:0003DE70 loc_3DE70 ; CODE XREF: __gconv_transform_internal_ucs2reverse+6D8j .text:0003DE70 ; __gconv_transform_internal_ucs2reverse+7F4j .text:0003DE70 MOV R0, #7 .text:0003DE74 B loc_3DFF0 .text:0003DE78 ; --------------------------------------------------------------------------- .text:0003DE78 .text:0003DE78 loc_3DE78 ; CODE XREF: __gconv_transform_internal_ucs2reverse+504j .text:0003DE78 LDR R12, [R11,#var_74] .text:0003DE7C STR R12, [R11,#var_50] .text:0003DE80 LDR R3, [R11,#var_34] .text:0003DE84 STR R3, [R11,#var_54] .text:0003DE88 MOV R0, #4 .text:0003DE8C CMP R12, R8 .text:0003DE90 LDR R6, [R7,#8] .text:0003DE94 BEQ loc_3DFF0 .text:0003DE98 MOV R12, R3 .text:0003DE9C LDR LR, [R11,#var_78] .text:0003DEA0 ADD R4, R12, #2 .text:0003DEA4 CMP R4, LR .text:0003DEA8 BHI loc_3DE68 .text:0003DEAC LDR R1, [R11,#var_74] .text:0003DEB0 ADD LR, R1, R0 .text:0003DEB4 CMP LR, R8 .text:0003DEB8 BHI loc_3DE70 .text:0003DEBC LDR R2, [R1] .text:0003DEC0 B loc_3DFDC .text:0003DEC4 ; --------------------------------------------------------------------------- .text:0003DEC4 .text:0003DEC4 loc_3DEC4 ; CODE XREF: __gconv_transform_internal_ucs2reverse+80Cj .text:0003DEC4 LDR R4, [R7,#0x20] .text:0003DEC8 B loc_3DED0 .text:0003DECC ; --------------------------------------------------------------------------- .text:0003DECC .text:0003DECC loc_3DECC ; CODE XREF: __gconv_transform_internal_ucs2reverse+730j .text:0003DECC LDR R4, [R4,#0x10] .text:0003DED0 .text:0003DED0 loc_3DED0 ; CODE XREF: __gconv_transform_internal_ucs2reverse+6E8j .text:0003DED0 CMP R4, #0 .text:0003DED4 BEQ loc_3DF14 .text:0003DED8 LDR R0, [R4] .text:0003DEDC BL _dl_mcount_wrapper_check .text:0003DEE0 LDR R2, [R4,#0xC] .text:0003DEE4 SUB R3, R11, #-var_50 .text:0003DEE8 STMEA SP, {R3,R8} .text:0003DEEC SUB R3, R11, #-var_54 .text:0003DEF0 STR R3, [SP,#0x9C+var_94] .text:0003DEF4 STR R5, [SP,#0x9C+var_90] .text:0003DEF8 LDR R0, [R11,#var_64] .text:0003DEFC LDR R3, [R10] .text:0003DF00 MOV R1, R7 .text:0003DF04 MOV LR, PC .text:0003DF08 LDR PC, [R4] .text:0003DF0C CMP R0, #6 .text:0003DF10 BEQ loc_3DECC .text:0003DF14 .text:0003DF14 loc_3DF14 ; CODE XREF: __gconv_transform_internal_ucs2reverse+6F4j .text:0003DF14 CMP R0, #6 .text:0003DF18 BNE loc_3DFAC .text:0003DF1C CMP R5, #0 .text:0003DF20 BEQ loc_3DFF0 .text:0003DF24 TST R6, #2 .text:0003DF28 BEQ loc_3DFF0 .text:0003DF2C LDR R3, [R5] .text:0003DF30 ADD R3, R3, #1 .text:0003DF34 STR R3, [R5] .text:0003DF38 LDR R2, [R11,#var_50] .text:0003DF3C ADD R2, R2, #4 .text:0003DF40 STR R2, [R11,#var_50] .text:0003DF44 B loc_3DFAC .text:0003DF48 ; --------------------------------------------------------------------------- .text:0003DF48 .text:0003DF48 loc_3DF48 ; CODE XREF: __gconv_transform_internal_ucs2reverse+800j .text:0003DF48 SUB R3, R2, #0xD800 .text:0003DF4C CMP R3, #0x800 .text:0003DF50 BCS loc_3DF80 .text:0003DF54 CMP R5, #0 .text:0003DF58 BEQ loc_3DF64 .text:0003DF5C TST R6, #2 .text:0003DF60 BNE loc_3DF6C .text:0003DF64 .text:0003DF64 loc_3DF64 ; CODE XREF: __gconv_transform_internal_ucs2reverse+778j .text:0003DF64 MOV R0, #6 .text:0003DF68 B loc_3DFF0 .text:0003DF6C ; --------------------------------------------------------------------------- .text:0003DF6C .text:0003DF6C loc_3DF6C ; CODE XREF: __gconv_transform_internal_ucs2reverse+780j .text:0003DF6C STR LR, [R11,#var_50] .text:0003DF70 LDR R3, [R5] .text:0003DF74 ADD R3, R3, #1 .text:0003DF78 STR R3, [R5] .text:0003DF7C B loc_3DFAC .text:0003DF80 ; --------------------------------------------------------------------------- .text:0003DF80 .text:0003DF80 loc_3DF80 ; CODE XREF: __gconv_transform_internal_ucs2reverse+770j .text:0003DF80 MOV R3, R2,LSL#16 .text:0003DF84 AND R2, R3, #0xFF0000 .text:0003DF88 MOV R2, R2,LSR#8 .text:0003DF8C ORR R2, R2, R3,LSR#24 .text:0003DF90 STRB R2, [R12] .text:0003DF94 MOV R2, R2,ASR#8 .text:0003DF98 STRB R2, [R12,#1] .text:0003DF9C LDR R3, [R11,#var_50] .text:0003DFA0 STR R4, [R11,#var_54] .text:0003DFA4 ADD R3, R3, #4 .text:0003DFA8 STR R3, [R11,#var_50] .text:0003DFAC .text:0003DFAC loc_3DFAC ; CODE XREF: __gconv_transform_internal_ucs2reverse+738j .text:0003DFAC ; __gconv_transform_internal_ucs2reverse+764j ... .text:0003DFAC LDR R3, [R11,#var_50] .text:0003DFB0 CMP R3, R8 .text:0003DFB4 BEQ loc_3DFF0 .text:0003DFB8 LDR R12, [R11,#var_54] .text:0003DFBC LDR R2, [R11,#var_78] .text:0003DFC0 ADD R4, R12, #2 .text:0003DFC4 CMP R4, R2 .text:0003DFC8 BHI loc_3DE68 .text:0003DFCC ADD LR, R3, #4 .text:0003DFD0 CMP LR, R8 .text:0003DFD4 BHI loc_3DE70 .text:0003DFD8 LDR R2, [R3] .text:0003DFDC .text:0003DFDC loc_3DFDC ; CODE XREF: __gconv_transform_internal_ucs2reverse+6E0j .text:0003DFDC CMP R2, #0x10000 .text:0003DFE0 BCC loc_3DF48 .text:0003DFE4 MOV R0, #6 .text:0003DFE8 CMP R5, #0 .text:0003DFEC BNE loc_3DEC4 .text:0003DFF0 .text:0003DFF0 loc_3DFF0 ; CODE XREF: __gconv_transform_internal_ucs2reverse+68Cj .text:0003DFF0 ; __gconv_transform_internal_ucs2reverse+694j ... .text:0003DFF0 LDR R3, [R11,#var_50] .text:0003DFF4 STR R3, [R10] .text:0003DFF8 LDR R2, [R11,#var_54] .text:0003DFFC .text:0003DFFC loc_3DFFC ; CODE XREF: __gconv_transform_internal_ucs2reverse+674j .text:0003DFFC LDR R3, [R11,#var_8C] .text:0003E000 MOV R6, R0 .text:0003E004 STR R2, [R3] .text:0003E008 LDR R12, [R11,#arg_0] .text:0003E00C CMP R12, #0 .text:0003E010 BNE loc_3E158 .text:0003E014 LDR R4, [R7,#0x20] .text:0003E018 CMP R4, #0 .text:0003E01C BEQ loc_3E05C .text:0003E020 .text:0003E020 loc_3E020 ; CODE XREF: __gconv_transform_internal_ucs2reverse+878j .text:0003E020 LDR R0, [R4,#4] .text:0003E024 CMP R0, #0 .text:0003E028 BEQ loc_3E050 .text:0003E02C BL _dl_mcount_wrapper_check .text:0003E030 LDR R3, [R11,#var_34] .text:0003E034 LDR R0, [R4,#0xC] .text:0003E038 STR R3, [SP,#0x9C+var_9C] .text:0003E03C LDR R1, [R11,#var_74] .text:0003E040 LDR R2, [R10] .text:0003E044 MOV R3, R9 .text:0003E048 MOV LR, PC .text:0003E04C LDR PC, [R4,#4] .text:0003E050 .text:0003E050 loc_3E050 ; CODE XREF: __gconv_transform_internal_ucs2reverse+848j .text:0003E050 LDR R4, [R4,#0x10] .text:0003E054 CMP R4, #0 .text:0003E058 BNE loc_3E020 .text:0003E05C .text:0003E05C loc_3E05C ; CODE XREF: __gconv_transform_internal_ucs2reverse+83Cj .text:0003E05C ADD R2, R7, #8 .text:0003E060 LDMIA R2, {R2,R3} .text:0003E064 ADD R3, R3, #1 .text:0003E068 ANDS R4, R2, #1 .text:0003E06C STR R3, [R7,#0xC] .text:0003E070 BNE loc_3DC78 .text:0003E074 LDR R3, [R11,#var_34] .text:0003E078 CMP R3, R9 .text:0003E07C BLS loc_3E100 .text:0003E080 LDR R3, [R7] .text:0003E084 STR R3, [R11,#var_60] .text:0003E088 LDR R0, [R11,#var_70] .text:0003E08C BL _dl_mcount_wrapper_check .text:0003E090 STR R4, [SP,#0x9C+var_9C] .text:0003E094 LDR LR, [R11,#arg_4] .text:0003E098 STR R4, [SP,#0x9C+var_94] .text:0003E09C STR LR, [SP,#0x9C+var_98] .text:0003E0A0 LDR R1, [R11,#arg_C] .text:0003E0A4 STR R1, [SP,#0x9C+var_90] .text:0003E0A8 LDR R0, [R11,#var_68] .text:0003E0AC LDR R1, [R11,#var_6C] .text:0003E0B0 LDR R3, [R11,#var_34] .text:0003E0B4 LDR R12, [R11,#var_70] .text:0003E0B8 SUB R2, R11, #-var_60 .text:0003E0BC MOV LR, PC .text:0003E0C0 MOV PC, R12 .text:0003E0C4 CMP R0, #4 .text:0003E0C8 BEQ loc_3E0F0 .text:0003E0CC LDR R1, [R11,#var_60] .text:0003E0D0 LDR R2, [R11,#var_34] .text:0003E0D4 CMP R1, R2 .text:0003E0D8 LDRNE R3, [R10] .text:0003E0DC RSBNE R2, R1, R2 .text:0003E0E0 SUBNE R3, R3, R2,LSL#1 .text:0003E0E4 STRNE R3, [R10] .text:0003E0E8 MOV R6, R0 .text:0003E0EC B loc_3E100 .text:0003E0F0 ; --------------------------------------------------------------------------- .text:0003E0F0 .text:0003E0F0 loc_3E0F0 ; CODE XREF: __gconv_transform_internal_ucs2reverse+8E8j .text:0003E0F0 CMP R6, #5 .text:0003E0F4 LDREQ R3, [R7] .text:0003E0F8 MOVEQ R6, R4 .text:0003E0FC STREQ R3, [R11,#var_34] .text:0003E100 .text:0003E100 loc_3E100 ; CODE XREF: __gconv_transform_internal_ucs2reverse+89Cj .text:0003E100 ; __gconv_transform_internal_ucs2reverse+90Cj .text:0003E100 CMP R6, #0 .text:0003E104 LDREQ R3, [R7] .text:0003E108 STREQ R3, [R11,#var_34] .text:0003E10C BEQ loc_3DCD0 .text:0003E110 .text:0003E110 loc_3E110 ; CODE XREF: __gconv_transform_internal_ucs2reverse+4B8j .text:0003E110 LDR LR, [R11,#arg_C] .text:0003E114 CMP R6, #7 .text:0003E118 MOVNE R3, #0 .text:0003E11C MOVEQ R3, #1 .text:0003E120 CMP LR, #0 .text:0003E124 MOVEQ R3, #0 .text:0003E128 CMP R3, #0 .text:0003E12C BEQ loc_3E1C8 .text:0003E130 LDR R2, [R10] .text:0003E134 RSB R3, R2, R8 .text:0003E138 CMP R3, #3 .text:0003E13C BLE loc_3E178 .text:0003E140 LDR R0, =aInendInptrp4 ; "inend - *inptrp < 4" .text:0003E144 LDR R1, =a__IconvSkeleto ; "../iconv/skeleton.c" .text:0003E148 MOV R2, #0x254 .text:0003E14C LDR R3, =a__gconv_tra_10 ; "__gconv_transform_internal_ucs2reverse" .text:0003E150 ADD R2, R2, #3 .text:0003E154 BL __assert_fail .text:0003E158 ; --------------------------------------------------------------------------- .text:0003E158 .text:0003E158 loc_3E158 ; CODE XREF: __gconv_transform_internal_ucs2reverse+830j .text:0003E158 LDR R3, [R11,#var_34] .text:0003E15C LDR R1, [R11,#arg_0] .text:0003E160 MOV R0, R6 .text:0003E164 STR R3, [R1] .text:0003E168 B locret_3E1CC .text:0003E168 ; --------------------------------------------------------------------------- .text:0003E16C off_3E16C DCD aInendInptrp4 ; DATA XREF: __gconv_transform_internal_ucs2reverse+960r .text:0003E16C ; "inend - *inptrp < 4" .text:0003E170 off_3E170 DCD a__IconvSkeleto ; DATA XREF: __gconv_transform_internal_ucs2reverse+964r .text:0003E170 ; "../iconv/skeleton.c" .text:0003E174 off_3E174 DCD a__gconv_tra_10 ; DATA XREF: __gconv_transform_internal_ucs2reverse+96Cr .text:0003E174 ; "__gconv_transform_internal_ucs2reverse" .text:0003E178 ; --------------------------------------------------------------------------- .text:0003E178 .text:0003E178 loc_3E178 ; CODE XREF: __gconv_transform_internal_ucs2reverse+95Cj .text:0003E178 MOV R0, #0 .text:0003E17C CMP R2, R8 .text:0003E180 BCS loc_3E1A8 .text:0003E184 .text:0003E184 loc_3E184 ; CODE XREF: __gconv_transform_internal_ucs2reverse+9C4j .text:0003E184 LDR R3, [R10] .text:0003E188 LDR R2, [R7,#0x14] .text:0003E18C LDRB R1, [R3],#1 .text:0003E190 ADD R2, R2, R0 .text:0003E194 STRB R1, [R2,#4] .text:0003E198 ADD R0, R0, #1 .text:0003E19C CMP R3, R8 .text:0003E1A0 STR R3, [R10] .text:0003E1A4 BCC loc_3E184 .text:0003E1A8 .text:0003E1A8 loc_3E1A8 ; CODE XREF: __gconv_transform_internal_ucs2reverse+9A0j .text:0003E1A8 LDR R2, [R7,#0x14] .text:0003E1AC LDR R3, [R2] .text:0003E1B0 BIC R3, R3, #7 .text:0003E1B4 STR R3, [R2] .text:0003E1B8 LDR R1, [R7,#0x14] .text:0003E1BC LDR R3, [R1] .text:0003E1C0 ORR R3, R3, R0 .text:0003E1C4 STR R3, [R1] .text:0003E1C8 .text:0003E1C8 loc_3E1C8 ; CODE XREF: __gconv_transform_internal_ucs2reverse+90j .text:0003E1C8 ; __gconv_transform_internal_ucs2reverse+D8j ... .text:0003E1C8 MOV R0, R6 .text:0003E1CC .text:0003E1CC locret_3E1CC ; CODE XREF: __gconv_transform_internal_ucs2reverse+988j .text:0003E1CC LDMDB R11, {R4-R11,SP,PC} .text:0003E1CC ; End of function __gconv_transform_internal_ucs2reverse .text:0003E1CC .text:0003E1D0 .text:0003E1D0 ; =============== S U B R O U T I N E ======================================= .text:0003E1D0 .text:0003E1D0 ; Attributes: bp-based frame .text:0003E1D0 .text:0003E1D0 EXPORT __gconv_transliterate .text:0003E1D0 __gconv_transliterate ; DATA XREF: __gconv_open+168o .text:0003E1D0 ; __gconv_open+1BCo ... .text:0003E1D0 .text:0003E1D0 var_74 = -0x74 .text:0003E1D0 var_70 = -0x70 .text:0003E1D0 var_6C = -0x6C .text:0003E1D0 var_68 = -0x68 .text:0003E1D0 var_64 = -0x64 .text:0003E1D0 var_5C = -0x5C .text:0003E1D0 var_58 = -0x58 .text:0003E1D0 var_54 = -0x54 .text:0003E1D0 var_50 = -0x50 .text:0003E1D0 var_4C = -0x4C .text:0003E1D0 var_48 = -0x48 .text:0003E1D0 var_44 = -0x44 .text:0003E1D0 var_40 = -0x40 .text:0003E1D0 var_3C = -0x3C .text:0003E1D0 var_38 = -0x38 .text:0003E1D0 var_34 = -0x34 .text:0003E1D0 var_30 = -0x30 .text:0003E1D0 var_2C = -0x2C .text:0003E1D0 arg_0 = 4 .text:0003E1D0 arg_4 = 8 .text:0003E1D0 arg_8 = 0xC .text:0003E1D0 arg_C = 0x10 .text:0003E1D0 .text:0003E1D0 MOV R12, SP .text:0003E1D4 STMFD SP!, {R4-R12,LR,PC} .text:0003E1D8 LDR R3, =_nl_current_LC_CTYPE .text:0003E1DC SUB SP, SP, #0x4C .text:0003E1E0 LDR R2, [R3] .text:0003E1E4 SUB R11, R12, #4 .text:0003E1E8 LDR R12, [R2,#0x114] .text:0003E1EC STR R0, [R11,#var_3C] .text:0003E1F0 STR R1, [R11,#var_40] .text:0003E1F4 LDR R0, [R11,#arg_0] .text:0003E1F8 CMP R12, #0 .text:0003E1FC LDR R10, [R0] .text:0003E200 BEQ loc_3E410 .text:0003E204 LDR R1, [R2,#0x118] .text:0003E208 STR R1, [R11,#var_44] .text:0003E20C LDR R3, [R2,#0x11C] .text:0003E210 STR R3, [R11,#var_48] .text:0003E214 LDR LR, [R2,#0x120] .text:0003E218 STR LR, [R11,#var_4C] .text:0003E21C LDR R0, [R11,#arg_4] .text:0003E220 ADD R3, R10, #4 .text:0003E224 CMP R3, R0 .text:0003E228 LDR R7, [R2,#0x124] .text:0003E22C BHI loc_3E448 .text:0003E230 STR R12, [R11,#var_54] .text:0003E234 MOV R1, #0 .text:0003E238 STR R1, [R11,#var_50] .text:0003E23C CMP R1, R12 .text:0003E240 BCS loc_3E410 .text:0003E244 .text:0003E244 loc_3E244 ; CODE XREF: __gconv_transliterate+23Cj .text:0003E244 LDR R2, [R11,#var_50] .text:0003E248 LDR R12, [R11,#var_54] .text:0003E24C ADD R3, R2, R12 .text:0003E250 MOV R3, R3,LSR#1 .text:0003E254 STR R3, [R11,#var_64] .text:0003E258 MOV R6, #0 .text:0003E25C LDR LR, [R11,#var_44] .text:0003E260 MOV R0, R10 .text:0003E264 LDR R8, [LR,R3,LSL#2] .text:0003E268 .text:0003E268 loc_3E268 ; CODE XREF: __gconv_transliterate+D4j .text:0003E268 LDR R2, [R11,#var_48] .text:0003E26C ADD R3, R8, R6 .text:0003E270 LDR R1, [R2,R3,LSL#2] .text:0003E274 LDR R2, [R10,R6,LSL#2] .text:0003E278 CMP R1, R2 .text:0003E27C BNE loc_3E2A8 .text:0003E280 ADD R6, R6, #1 .text:0003E284 LDR R12, [R11,#var_48] .text:0003E288 ADD R3, R8, R6 .text:0003E28C LDR R2, [R12,R3,LSL#2] .text:0003E290 ADD R0, R0, #4 .text:0003E294 CMP R2, #0 .text:0003E298 BEQ loc_3E2A8 .text:0003E29C LDR LR, [R11,#arg_4] .text:0003E2A0 CMP R0, LR .text:0003E2A4 BCC loc_3E268 .text:0003E2A8 .text:0003E2A8 loc_3E2A8 ; CODE XREF: __gconv_transliterate+ACj .text:0003E2A8 ; __gconv_transliterate+C8j .text:0003E2A8 CMP R6, #0 .text:0003E2AC BLE loc_3E3B8 .text:0003E2B0 LDR R0, [R11,#var_48] .text:0003E2B4 ADD R3, R8, R6 .text:0003E2B8 LDR R3, [R0,R3,LSL#2] .text:0003E2BC CMP R3, #0 .text:0003E2C0 BNE loc_3E3B8 .text:0003E2C4 SUB R1, R11, #-var_2C .text:0003E2C8 STR R1, [R11,#var_5C] .text:0003E2CC SUB R2, R11, #-var_30 .text:0003E2D0 STR R2, [R11,#var_58] .text:0003E2D4 MOV R9, R3 .text:0003E2D8 LDR R3, [R11,#var_64] .text:0003E2DC LDR R12, [R11,#var_4C] .text:0003E2E0 LDR R4, [R12,R3,LSL#2] .text:0003E2E4 .text:0003E2E4 loc_3E2E4 ; CODE XREF: __gconv_transliterate+1E0j .text:0003E2E4 MOV R5, #0 .text:0003E2E8 LDR R3, [R7,R4,LSL#2] .text:0003E2EC MOV R1, R4,LSL#2 .text:0003E2F0 CMP R3, R5 .text:0003E2F4 BEQ loc_3E30C .text:0003E2F8 .text:0003E2F8 loc_3E2F8 ; CODE XREF: __gconv_transliterate+138j .text:0003E2F8 ADD R5, R5, #1 .text:0003E2FC ADD R3, R4, R5 .text:0003E300 LDR R2, [R7,R3,LSL#2] .text:0003E304 CMP R2, #0 .text:0003E308 BNE loc_3E2F8 .text:0003E30C .text:0003E30C loc_3E30C ; CODE XREF: __gconv_transliterate+124j .text:0003E30C ADD R3, R7, R1 .text:0003E310 STR R3, [R11,#var_2C] .text:0003E314 LDR LR, [R11,#arg_8] .text:0003E318 LDR R2, [LR] .text:0003E31C STR R2, [R11,#var_30] .text:0003E320 LDR R1, [R11,#var_3C] .text:0003E324 LDR R0, [R1,#0x14] .text:0003E328 BL _dl_mcount_wrapper_check .text:0003E32C LDR R2, [R11,#var_58] .text:0003E330 STR R9, [SP,#0x74+var_70] .text:0003E334 STR R9, [SP,#0x74+var_6C] .text:0003E338 STR R2, [SP,#0x74+var_74] .text:0003E33C LDR R0, [R11,#var_3C] .text:0003E340 STR R9, [SP,#0x74+var_68] .text:0003E344 ADD R3, R4, R5 .text:0003E348 LDR R1, [R11,#var_40] .text:0003E34C ADD R3, R7, R3,LSL#2 .text:0003E350 LDR R2, [R11,#var_5C] .text:0003E354 MOV R12, R0 .text:0003E358 MOV LR, PC .text:0003E35C LDR PC, [R12,#0x14] .text:0003E360 CMP R0, #6 .text:0003E364 BEQ loc_3E3A0 .text:0003E368 CMP R0, #4 .text:0003E36C BNE loc_3E398 .text:0003E370 LDR LR, [R11,#arg_0] .text:0003E374 LDR R3, [LR] .text:0003E378 ADD R3, R3, R6,LSL#2 .text:0003E37C STR R3, [LR] .text:0003E380 LDR R0, [R11,#arg_C] .text:0003E384 LDR R1, [R11,#arg_C] .text:0003E388 LDR R2, [R0] .text:0003E38C MOV R0, #0 .text:0003E390 ADD R2, R2, #1 .text:0003E394 STR R2, [R1] .text:0003E398 .text:0003E398 loc_3E398 ; CODE XREF: __gconv_transliterate+19Cj .text:0003E398 LDR R3, [R11,#var_30] .text:0003E39C B loc_3E568 .text:0003E3A0 ; --------------------------------------------------------------------------- .text:0003E3A0 .text:0003E3A0 loc_3E3A0 ; CODE XREF: __gconv_transliterate+194j .text:0003E3A0 ADD R3, R4, #1 .text:0003E3A4 ADD R4, R3, R5 .text:0003E3A8 LDR R2, [R7,R4,LSL#2] .text:0003E3AC CMP R2, #0 .text:0003E3B0 BNE loc_3E2E4 .text:0003E3B4 B loc_3E3C0 .text:0003E3B8 ; --------------------------------------------------------------------------- .text:0003E3B8 .text:0003E3B8 loc_3E3B8 ; CODE XREF: __gconv_transliterate+DCj .text:0003E3B8 ; __gconv_transliterate+F0j .text:0003E3B8 CMP R6, #0 .text:0003E3BC BGT loc_3E574 .text:0003E3C0 .text:0003E3C0 loc_3E3C0 ; CODE XREF: __gconv_transliterate+1E4j .text:0003E3C0 LDR R12, [R11,#arg_4] .text:0003E3C4 ADD R3, R10, R6,LSL#2 .text:0003E3C8 CMP R3, R12 .text:0003E3CC BCS loc_3E3E8 .text:0003E3D0 LDR LR, [R11,#var_48] .text:0003E3D4 LDR R2, [R10,R6,LSL#2] .text:0003E3D8 ADD R3, R8, R6 .text:0003E3DC LDR R1, [LR,R3,LSL#2] .text:0003E3E0 CMP R1, R2 .text:0003E3E4 BCS loc_3E3F8 .text:0003E3E8 .text:0003E3E8 loc_3E3E8 ; CODE XREF: __gconv_transliterate+1FCj .text:0003E3E8 LDR R0, [R11,#var_64] .text:0003E3EC ADD R0, R0, #1 .text:0003E3F0 STR R0, [R11,#var_50] .text:0003E3F4 B loc_3E400 .text:0003E3F8 ; --------------------------------------------------------------------------- .text:0003E3F8 .text:0003E3F8 loc_3E3F8 ; CODE XREF: __gconv_transliterate+214j .text:0003E3F8 LDR R1, [R11,#var_64] .text:0003E3FC STR R1, [R11,#var_54] .text:0003E400 .text:0003E400 loc_3E400 ; CODE XREF: __gconv_transliterate+224j .text:0003E400 LDR R2, [R11,#var_50] .text:0003E404 LDR R3, [R11,#var_54] .text:0003E408 CMP R2, R3 .text:0003E40C BCC loc_3E244 .text:0003E410 .text:0003E410 loc_3E410 ; CODE XREF: __gconv_transliterate+30j .text:0003E410 ; __gconv_transliterate+70j .text:0003E410 LDR R12, =_nl_current_LC_CTYPE .text:0003E414 LDR R1, [R12] .text:0003E418 LDR R8, [R1,#0x130] .text:0003E41C CMP R8, #0 .text:0003E420 BEQ loc_3E4AC .text:0003E424 LDR LR, [R11,#arg_0] .text:0003E428 LDR R0, [R11,#arg_4] .text:0003E42C LDR R4, [R1,#0x134] .text:0003E430 ADD R3, R10, #4 .text:0003E434 LDR R2, [LR] .text:0003E438 CMP R3, R0 .text:0003E43C MOV R9, R2 .text:0003E440 LDR R5, [R2] .text:0003E444 BLS loc_3E458 .text:0003E448 .text:0003E448 loc_3E448 ; CODE XREF: __gconv_transliterate+5Cj .text:0003E448 CMP R10, R0 .text:0003E44C MOVNE R0, #7 .text:0003E450 MOVEQ R0, #4 .text:0003E454 B locret_3E5A4 .text:0003E458 ; --------------------------------------------------------------------------- .text:0003E458 .text:0003E458 loc_3E458 ; CODE XREF: __gconv_transliterate+274j .text:0003E458 MOV R7, #0 .text:0003E45C CMP R7, R8 .text:0003E460 BGE loc_3E4AC .text:0003E464 .text:0003E464 loc_3E464 ; CODE XREF: __gconv_transliterate+2D8j .text:0003E464 LDR R3, [R4] .text:0003E468 CMP R3, R5 .text:0003E46C MOV R6, R3 .text:0003E470 BHI loc_3E494 .text:0003E474 LDR R3, [R4,#4] .text:0003E478 CMP R5, R3 .text:0003E47C BHI loc_3E494 .text:0003E480 LDR R1, [R4,#8] .text:0003E484 RSB R0, R6, R5 .text:0003E488 BL __umodsi3 .text:0003E48C CMP R0, #0 .text:0003E490 BEQ loc_3E57C .text:0003E494 .text:0003E494 loc_3E494 ; CODE XREF: __gconv_transliterate+2A0j .text:0003E494 ; __gconv_transliterate+2ACj .text:0003E494 CMP R5, R6 .text:0003E498 BCC loc_3E4AC .text:0003E49C ADD R4, R4, #0xC .text:0003E4A0 ADD R7, R7, #1 .text:0003E4A4 CMP R7, R8 .text:0003E4A8 BLT loc_3E464 .text:0003E4AC .text:0003E4AC loc_3E4AC ; CODE XREF: __gconv_transliterate+250j .text:0003E4AC ; __gconv_transliterate+290j ... .text:0003E4AC LDR R1, =_nl_current_LC_CTYPE .text:0003E4B0 LDR R2, [R1] .text:0003E4B4 LDR R6, [R2,#0x128] .text:0003E4B8 CMP R6, #0 .text:0003E4BC BEQ loc_3E5A0 .text:0003E4C0 LDR R5, [R2,#0x12C] .text:0003E4C4 LDR R2, [R11,#arg_4] .text:0003E4C8 ADD R3, R10, #4 .text:0003E4CC CMP R3, R2 .text:0003E4D0 STR R5, [R11,#var_34] .text:0003E4D4 BLS loc_3E4E8 .text:0003E4D8 CMP R10, R2 .text:0003E4DC MOVNE R0, #7 .text:0003E4E0 MOVEQ R0, #4 .text:0003E4E4 B locret_3E5A4 .text:0003E4E8 ; --------------------------------------------------------------------------- .text:0003E4E8 .text:0003E4E8 loc_3E4E8 ; CODE XREF: __gconv_transliterate+304j .text:0003E4E8 LDR R12, [R11,#arg_8] .text:0003E4EC LDR R3, [R12] .text:0003E4F0 STR R3, [R11,#var_38] .text:0003E4F4 LDR LR, [R11,#var_3C] .text:0003E4F8 LDR R0, [LR,#0x14] .text:0003E4FC BL _dl_mcount_wrapper_check .text:0003E500 SUB R3, R11, #-var_38 .text:0003E504 STR R3, [SP,#0x74+var_74] .text:0003E508 MOV R4, #0 .text:0003E50C STR R4, [SP,#0x74+var_70] .text:0003E510 STR R4, [SP,#0x74+var_6C] .text:0003E514 STR R4, [SP,#0x74+var_68] .text:0003E518 LDR R0, [R11,#var_3C] .text:0003E51C SUB R2, R11, #-var_34 .text:0003E520 LDR R1, [R11,#var_40] .text:0003E524 ADD R3, R5, R6,LSL#2 .text:0003E528 MOV LR, PC .text:0003E52C LDR PC, [R0,#0x14] .text:0003E530 CMP R0, #6 .text:0003E534 BEQ loc_3E5A0 .text:0003E538 CMP R0, #4 .text:0003E53C BNE loc_3E564 .text:0003E540 LDR R0, [R11,#arg_C] .text:0003E544 LDR R3, [R0] .text:0003E548 ADD R3, R3, #1 .text:0003E54C STR R3, [R0] .text:0003E550 LDR R1, [R11,#arg_0] .text:0003E554 LDR R2, [R1] .text:0003E558 MOV R0, R4 .text:0003E55C ADD R2, R2, #4 .text:0003E560 STR R2, [R1] .text:0003E564 .text:0003E564 loc_3E564 ; CODE XREF: __gconv_transliterate+36Cj .text:0003E564 LDR R3, [R11,#var_38] .text:0003E568 .text:0003E568 loc_3E568 ; CODE XREF: __gconv_transliterate+1CCj .text:0003E568 LDR R2, [R11,#arg_8] .text:0003E56C STR R3, [R2] .text:0003E570 B locret_3E5A4 .text:0003E574 ; --------------------------------------------------------------------------- .text:0003E574 .text:0003E574 loc_3E574 ; CODE XREF: __gconv_transliterate+1ECj .text:0003E574 MOV R0, #7 .text:0003E578 B locret_3E5A4 .text:0003E57C ; --------------------------------------------------------------------------- .text:0003E57C .text:0003E57C loc_3E57C ; CODE XREF: __gconv_transliterate+2C0j .text:0003E57C LDR R3, [R11,#arg_0] .text:0003E580 ADD R2, R9, #4 .text:0003E584 STR R2, [R3] .text:0003E588 LDR R12, [R11,#arg_C] .text:0003E58C LDR R3, [R12] .text:0003E590 ADD R3, R3, #1 .text:0003E594 STR R3, [R12] .text:0003E598 B locret_3E5A4 .text:0003E598 ; --------------------------------------------------------------------------- .text:0003E59C off_3E59C DCD _nl_current_LC_CTYPE .text:0003E59C ; DATA XREF: __gconv_transliterate+8r .text:0003E59C ; __gconv_transliterate:loc_3E410r ... .text:0003E5A0 ; --------------------------------------------------------------------------- .text:0003E5A0 .text:0003E5A0 loc_3E5A0 ; CODE XREF: __gconv_transliterate+2ECj .text:0003E5A0 ; __gconv_transliterate+364j .text:0003E5A0 MOV R0, #6 .text:0003E5A4 .text:0003E5A4 locret_3E5A4 ; CODE XREF: __gconv_transliterate+284j .text:0003E5A4 ; __gconv_transliterate+314j ... .text:0003E5A4 LDMDB R11, {R4-R11,SP,PC} .text:0003E5A4 ; End of function __gconv_transliterate .text:0003E5A4 .text:0003E5A8 .text:0003E5A8 ; =============== S U B R O U T I N E ======================================= .text:0003E5A8 .text:0003E5A8 ; Attributes: bp-based frame .text:0003E5A8 .text:0003E5A8 trans_compare ; DATA XREF: __gconv_translit_find+58o .text:0003E5A8 ; __gconv_translit_find+1CCo ... .text:0003E5A8 MOV R12, SP .text:0003E5AC STMFD SP!, {R11,R12,LR,PC} .text:0003E5B0 LDR R0, [R0] .text:0003E5B4 LDR R1, [R1] .text:0003E5B8 SUB R11, R12, #4 .text:0003E5BC BL strcmp .text:0003E5C0 LDMDB R11, {R11,SP,PC} .text:0003E5C0 ; End of function trans_compare .text:0003E5C0 .text:0003E5C4 .text:0003E5C4 ; =============== S U B R O U T I N E ======================================= .text:0003E5C4 .text:0003E5C4 ; Attributes: bp-based frame .text:0003E5C4 .text:0003E5C4 open_translit ; CODE XREF: __gconv_translit_find+8Cp .text:0003E5C4 ; __gconv_translit_find+1ACp .text:0003E5C4 MOV R12, SP .text:0003E5C8 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:0003E5CC MOV R4, R0 .text:0003E5D0 LDR R0, [R4,#0x20] .text:0003E5D4 SUB R11, R12, #4 .text:0003E5D8 BL __libc_dlopen .text:0003E5DC CMP R0, #0 .text:0003E5E0 STR R0, [R4,#0x24] .text:0003E5E4 MOVEQ R0, #1 .text:0003E5E8 LDMEQDB R11, {R4-R6,R11,SP,PC} .text:0003E5EC LDR R6, =aGconv_trans_co ; "gconv_trans_context" .text:0003E5F0 MOV R1, R6 .text:0003E5F4 BL __libc_dlsym .text:0003E5F8 SUBS R3, R0, #0 .text:0003E5FC BNE loc_3E618 .text:0003E600 .text:0003E600 loc_3E600 ; CODE XREF: open_translit+6Cj .text:0003E600 ; open_translit+84j .text:0003E600 LDR R0, [R4,#0x24] .text:0003E604 BL __libc_dlclose .text:0003E608 MOV R0, #1 .text:0003E60C MOV R3, #0 .text:0003E610 STR R3, [R4,#0x24] .text:0003E614 LDMDB R11, {R4-R6,R11,SP,PC} .text:0003E618 ; --------------------------------------------------------------------------- .text:0003E618 .text:0003E618 loc_3E618 ; CODE XREF: open_translit+38j .text:0003E618 ADD R1, R4, #8 .text:0003E61C LDR R0, [R4] .text:0003E620 ADD R2, R4, #0xC .text:0003E624 MOV LR, PC .text:0003E628 MOV PC, R3 .text:0003E62C SUBS R5, R0, #0 .text:0003E630 BNE loc_3E600 .text:0003E634 LDR R0, [R4,#0x24] .text:0003E638 LDR R1, =aGconv_trans ; "gconv_trans" .text:0003E63C BL __libc_dlsym .text:0003E640 CMP R0, #0 .text:0003E644 STR R0, [R4,#0x10] .text:0003E648 BEQ loc_3E600 .text:0003E64C LDR R0, [R4,#0x24] .text:0003E650 LDR R1, =aGconv_trans_in ; "gconv_trans_init" .text:0003E654 BL __libc_dlsym .text:0003E658 STR R0, [R4,#0x18] .text:0003E65C LDR R0, [R4,#0x24] .text:0003E660 MOV R1, R6 .text:0003E664 BL __libc_dlsym .text:0003E668 STR R0, [R4,#0x14] .text:0003E66C LDR R0, [R4,#0x24] .text:0003E670 LDR R1, =aGconv_trans_en ; "gconv_trans_end" .text:0003E674 BL __libc_dlsym .text:0003E678 STR R0, [R4,#0x1C] .text:0003E67C MOV R0, R5 .text:0003E680 MOV R3, #1 .text:0003E684 STR R3, [R4,#0x28] .text:0003E688 LDMDB R11, {R4-R6,R11,SP,PC} .text:0003E688 ; End of function open_translit .text:0003E688 .text:0003E688 ; --------------------------------------------------------------------------- .text:0003E68C off_3E68C DCD aGconv_trans_co ; DATA XREF: open_translit+28r .text:0003E68C ; "gconv_trans_context" .text:0003E690 off_3E690 DCD aGconv_trans ; DATA XREF: open_translit+74r .text:0003E690 ; "gconv_trans" .text:0003E694 off_3E694 DCD aGconv_trans_in ; DATA XREF: open_translit+8Cr .text:0003E694 ; "gconv_trans_init" .text:0003E698 off_3E698 DCD aGconv_trans_en ; DATA XREF: open_translit+ACr .text:0003E698 ; "gconv_trans_end" .text:0003E69C .text:0003E69C ; =============== S U B R O U T I N E ======================================= .text:0003E69C .text:0003E69C ; Attributes: bp-based frame .text:0003E69C .text:0003E69C EXPORT __gconv_translit_find .text:0003E69C __gconv_translit_find ; CODE XREF: __gconv_open+374p .text:0003E69C MOV R12, SP .text:0003E6A0 STMFD SP!, {R4-R12,LR,PC} .text:0003E6A4 SUB R11, R12, #4 .text:0003E6A8 MOV R7, R0 .text:0003E6AC LDR R3, [R7] .text:0003E6B0 MOV R10, #1 .text:0003E6B4 CMP R3, #0 .text:0003E6B8 BNE loc_3E6D4 .text:0003E6BC LDR R0, =aTransNameVoid0 ; "trans->name != ((void *)0)" .text:0003E6C0 LDR R1, =aGconv_trans_c ; "gconv_trans.c" .text:0003E6C4 MOV R2, #0x140 .text:0003E6C8 LDR R3, =a__gconv_transl ; "__gconv_translit_find" .text:0003E6CC ADD R2, R2, R10 .text:0003E6D0 BL __assert_fail .text:0003E6D4 ; --------------------------------------------------------------------------- .text:0003E6D4 .text:0003E6D4 loc_3E6D4 ; CODE XREF: __gconv_translit_find+1Cj .text:0003E6D4 LDR R3, =0 .text:0003E6D8 CMP R3, #0 .text:0003E6DC BEQ loc_3E6EC .text:0003E6E0 LDR R0, =lock_4 .text:0003E6E4 MOV LR, PC .text:0003E6E8 MOV PC, R3 .text:0003E6EC .text:0003E6EC loc_3E6EC ; CODE XREF: __gconv_translit_find+40j .text:0003E6EC LDR R5, =search_tree .text:0003E6F0 MOV R0, R7 .text:0003E6F4 LDR R4, =trans_compare .text:0003E6F8 MOV R1, R5 .text:0003E6FC MOV R2, R4 .text:0003E700 BL tfind .text:0003E704 SUBS R6, R0, #0 .text:0003E708 BEQ loc_3E764 .text:0003E70C LDR R0, [R6] .text:0003E710 LDR R3, [R0,#0x24] .text:0003E714 CMP R3, #0 .text:0003E718 BEQ loc_3E87C .text:0003E71C CMN R3, #1 .text:0003E720 MOVNE R10, #0 .text:0003E724 BNE loc_3E87C .text:0003E728 BL open_translit .text:0003E72C SUBS R4, R0, #0 .text:0003E730 BNE loc_3E87C .text:0003E734 LDR LR, [R6] .text:0003E738 LDMIA LR!, {R0-R3} .text:0003E73C MOV R12, R7 .text:0003E740 STMIA R12!, {R0-R3} .text:0003E744 LDMIA LR, {R0-R3} .text:0003E748 STMIA R12, {R0-R3} .text:0003E74C LDR R2, [R6] .text:0003E750 LDR R3, [R2,#0x28] .text:0003E754 MOV R10, R4 .text:0003E758 ADD R3, R3, #1 .text:0003E75C STR R3, [R2,#0x28] .text:0003E760 B loc_3E87C .text:0003E764 ; --------------------------------------------------------------------------- .text:0003E764 .text:0003E764 loc_3E764 ; CODE XREF: __gconv_translit_find+6Cj .text:0003E764 LDR R0, [R7] .text:0003E768 BL strlen .text:0003E76C MOV R9, R6 .text:0003E770 MOV R6, R0 .text:0003E774 LDR R2, =__gconv_path_elem .text:0003E778 ADD R8, R6, #1 .text:0003E77C LDR R3, [R2] .text:0003E780 MOV R5, R2 .text:0003E784 CMP R3, #0 .text:0003E788 BNE loc_3E790 .text:0003E78C BL __gconv_get_path .text:0003E790 .text:0003E790 loc_3E790 ; CODE XREF: __gconv_translit_find+ECj .text:0003E790 CMP R8, #4 .text:0003E794 BLS loc_3E7B8 .text:0003E798 MOV R2, #3 .text:0003E79C LDR R3, [R7] .text:0003E7A0 SUB R0, R6, #3 .text:0003E7A4 LDR R1, =a_so ; ".so" .text:0003E7A8 ADD R0, R3, R0 .text:0003E7AC BL memcmp .text:0003E7B0 CMP R0, #0 .text:0003E7B4 BEQ loc_3E7BC .text:0003E7B8 .text:0003E7B8 loc_3E7B8 ; CODE XREF: __gconv_translit_find+F8j .text:0003E7B8 MOV R9, R10 .text:0003E7BC .text:0003E7BC loc_3E7BC ; CODE XREF: __gconv_translit_find+118j .text:0003E7BC LDR R3, =__gconv_max_path_elem_len .text:0003E7C0 LDR R0, [R3] .text:0003E7C4 ADD R3, R8, #0x2F .text:0003E7C8 ADD R0, R0, R8 .text:0003E7CC ADD R0, R0, R3 .text:0003E7D0 BL malloc .text:0003E7D4 SUBS R4, R0, #0 .text:0003E7D8 BEQ loc_3E87C .text:0003E7DC MOV R0, R4 .text:0003E7E0 MOV R1, #0 .text:0003E7E4 MOV R2, #0x2C .text:0003E7E8 BL memset .text:0003E7EC ADD R0, R4, #0x2C .text:0003E7F0 STR R0, [R4] .text:0003E7F4 LDR R1, [R7] .text:0003E7F8 MOV R2, R8 .text:0003E7FC BL mempcpy .text:0003E800 STR R0, [R4,#0x20] .text:0003E804 LDR R5, [R5] .text:0003E808 B loc_3E810 .text:0003E80C ; --------------------------------------------------------------------------- .text:0003E80C .text:0003E80C loc_3E80C ; CODE XREF: __gconv_translit_find+1B4j .text:0003E80C ADD R5, R5, #8 .text:0003E810 .text:0003E810 loc_3E810 ; CODE XREF: __gconv_translit_find+16Cj .text:0003E810 LDR R1, [R5] .text:0003E814 CMP R1, #0 .text:0003E818 BEQ loc_3E858 .text:0003E81C LDR R0, [R4,#0x20] .text:0003E820 BL stpcpy .text:0003E824 LDR R1, [R7] .text:0003E828 MOV R2, R8 .text:0003E82C BL mempcpy .text:0003E830 CMP R9, #0 .text:0003E834 BEQ loc_3E844 .text:0003E838 LDR R1, =a_so ; ".so" .text:0003E83C MOV R2, #4 .text:0003E840 BL memcpy .text:0003E844 .text:0003E844 loc_3E844 ; CODE XREF: __gconv_translit_find+198j .text:0003E844 MOV R0, R4 .text:0003E848 BL open_translit .text:0003E84C CMP R0, #0 .text:0003E850 BNE loc_3E80C .text:0003E854 MOV R10, R0 .text:0003E858 .text:0003E858 loc_3E858 ; CODE XREF: __gconv_translit_find+17Cj .text:0003E858 CMP R10, #0 .text:0003E85C MOVNE R3, #0 .text:0003E860 STRNE R3, [R4,#0x20] .text:0003E864 LDR R1, =search_tree .text:0003E868 LDR R2, =trans_compare .text:0003E86C MOV R0, R4 .text:0003E870 BL tsearch .text:0003E874 CMP R0, #0 .text:0003E878 MOVEQ R10, #1 .text:0003E87C .text:0003E87C loc_3E87C ; CODE XREF: __gconv_translit_find+7Cj .text:0003E87C ; __gconv_translit_find+88j ... .text:0003E87C LDR R3, =0 .text:0003E880 CMP R3, #0 .text:0003E884 BEQ loc_3E894 .text:0003E888 LDR R0, =lock_4 .text:0003E88C MOV LR, PC .text:0003E890 MOV PC, R3 .text:0003E894 .text:0003E894 loc_3E894 ; CODE XREF: __gconv_translit_find+1E8j .text:0003E894 MOV R0, R10 .text:0003E898 LDMDB R11, {R4-R11,SP,PC} .text:0003E898 ; End of function __gconv_translit_find .text:0003E898 .text:0003E898 ; --------------------------------------------------------------------------- .text:0003E89C off_3E89C DCD aTransNameVoid0 ; DATA XREF: __gconv_translit_find+20r .text:0003E89C ; "trans->name != ((void *)0)" .text:0003E8A0 off_3E8A0 DCD aGconv_trans_c ; DATA XREF: __gconv_translit_find+24r .text:0003E8A0 ; "gconv_trans.c" .text:0003E8A4 off_3E8A4 DCD a__gconv_transl ; DATA XREF: __gconv_translit_find+2Cr .text:0003E8A4 ; "__gconv_translit_find" .text:0003E8A8 off_3E8A8 DCD 0 ; DATA XREF: __gconv_translit_find:loc_3E6D4r .text:0003E8AC off_3E8AC DCD lock_4 ; DATA XREF: __gconv_translit_find+44r .text:0003E8AC ; __gconv_translit_find+1ECr .text:0003E8B0 off_3E8B0 DCD search_tree ; DATA XREF: __gconv_translit_find:loc_3E6ECr .text:0003E8B0 ; __gconv_translit_find+1C8r .text:0003E8B4 off_3E8B4 DCD trans_compare ; DATA XREF: __gconv_translit_find+58r .text:0003E8B4 ; __gconv_translit_find+1CCr .text:0003E8B8 off_3E8B8 DCD __gconv_path_elem ; DATA XREF: __gconv_translit_find+D8r .text:0003E8BC off_3E8BC DCD a_so ; DATA XREF: __gconv_translit_find+108r .text:0003E8BC ; __gconv_translit_find+19Cr .text:0003E8BC ; ".so" .text:0003E8C0 off_3E8C0 DCD __gconv_max_path_elem_len .text:0003E8C0 ; DATA XREF: __gconv_translit_find:loc_3E7BCr .text:0003E8C4 off_3E8C4 DCD 0 ; DATA XREF: __gconv_translit_find:loc_3E87Cr .text:0003E8C8 .text:0003E8C8 ; =============== S U B R O U T I N E ======================================= .text:0003E8C8 .text:0003E8C8 ; Attributes: bp-based frame .text:0003E8C8 .text:0003E8C8 known_compare ; DATA XREF: __gconv_find_shlib+18o .text:0003E8C8 ; __gconv_find_shlib:off_3EA04o .text:0003E8C8 MOV R12, SP .text:0003E8CC STMFD SP!, {R11,R12,LR,PC} .text:0003E8D0 LDR R0, [R0] .text:0003E8D4 LDR R1, [R1] .text:0003E8D8 SUB R11, R12, #4 .text:0003E8DC BL strcmp .text:0003E8E0 LDMDB R11, {R11,SP,PC} .text:0003E8E0 ; End of function known_compare .text:0003E8E0 .text:0003E8E4 .text:0003E8E4 ; =============== S U B R O U T I N E ======================================= .text:0003E8E4 .text:0003E8E4 ; Attributes: bp-based frame .text:0003E8E4 .text:0003E8E4 EXPORT __gconv_find_shlib .text:0003E8E4 __gconv_find_shlib ; CODE XREF: gen_steps+ECp .text:0003E8E4 ; increment_counter+64p .text:0003E8E4 .text:0003E8E4 var_20 = -0x20 .text:0003E8E4 .text:0003E8E4 MOV R12, SP .text:0003E8E8 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0003E8EC SUB R11, R12, #4 .text:0003E8F0 SUB SP, SP, #4 .text:0003E8F4 STR R0, [R11,#var_20] .text:0003E8F8 LDR R7, =loaded .text:0003E8FC LDR R6, =known_compare .text:0003E900 MOV R1, R7 .text:0003E904 MOV R2, R6 .text:0003E908 SUB R0, R11, #-var_20 .text:0003E90C BL tfind .text:0003E910 SUBS R5, R0, #0 .text:0003E914 BNE loc_3E95C .text:0003E918 MOV R0, #0x18 .text:0003E91C BL malloc .text:0003E920 SUBS R4, R0, #0 .text:0003E924 BEQ loc_3E960 .text:0003E928 LDR R2, [R11,#var_20] .text:0003E92C MOV R3, 0xFFFFFFFD .text:0003E930 STMIA R4, {R2,R3,R5} .text:0003E934 MOV R0, R4 .text:0003E938 MOV R1, R7 .text:0003E93C MOV R2, R6 .text:0003E940 BL tsearch .text:0003E944 CMP R0, #0 .text:0003E948 BNE loc_3E960 .text:0003E94C MOV R0, R4 .text:0003E950 MOV R4, R5 .text:0003E954 BL free .text:0003E958 B loc_3E960 .text:0003E95C ; --------------------------------------------------------------------------- .text:0003E95C .text:0003E95C loc_3E95C ; CODE XREF: __gconv_find_shlib+30j .text:0003E95C LDR R4, [R5] .text:0003E960 .text:0003E960 loc_3E960 ; CODE XREF: __gconv_find_shlib+40j .text:0003E960 ; __gconv_find_shlib+64j ... .text:0003E960 CMP R4, #0 .text:0003E964 BEQ loc_3EA3C .text:0003E968 LDR R2, [R4,#4] .text:0003E96C CMN R2, #2 .text:0003E970 BGE loc_3EA20 .text:0003E974 LDR R3, [R4,#8] .text:0003E978 CMP R3, #0 .text:0003E97C BEQ loc_3E994 .text:0003E980 LDR R0, =aFoundHandleVoi ; "found->handle == ((void *)0)" .text:0003E984 LDR R1, =aGconv_dl_c ; "gconv_dl.c" .text:0003E988 LDR R3, =a__gconv_find_s ; "__gconv_find_shlib" .text:0003E98C MOV R2, #0x71 .text:0003E990 BL __assert_fail .text:0003E994 ; --------------------------------------------------------------------------- .text:0003E994 .text:0003E994 loc_3E994 ; CODE XREF: __gconv_find_shlib+98j .text:0003E994 LDR R0, [R4] .text:0003E998 BL __libc_dlopen .text:0003E99C CMP R0, #0 .text:0003E9A0 STR R0, [R4,#8] .text:0003E9A4 BEQ loc_3E9F8 .text:0003E9A8 LDR R1, =aGconv ; "gconv" .text:0003E9AC BL __libc_dlsym .text:0003E9B0 MOV R5, R0 .text:0003E9B4 CMP R5, #0 .text:0003E9B8 STR R5, [R4,#0xC] .text:0003E9BC BNE loc_3E9D0 .text:0003E9C0 MOV R0, R4 .text:0003E9C4 MOV R4, R5 .text:0003E9C8 BL __gconv_release_shlib .text:0003E9CC B loc_3EA3C .text:0003E9D0 ; --------------------------------------------------------------------------- .text:0003E9D0 .text:0003E9D0 loc_3E9D0 ; CODE XREF: __gconv_find_shlib+D8j .text:0003E9D0 LDR R0, [R4,#8] .text:0003E9D4 LDR R1, =aGconv_init ; "gconv_init" .text:0003E9D8 BL __libc_dlsym .text:0003E9DC STR R0, [R4,#0x10] .text:0003E9E0 LDR R0, [R4,#8] .text:0003E9E4 LDR R1, =aGconv_end ; "gconv_end" .text:0003E9E8 BL __libc_dlsym .text:0003E9EC STR R0, [R4,#0x14] .text:0003E9F0 MOV R3, #1 .text:0003E9F4 B loc_3EA38 .text:0003E9F8 ; --------------------------------------------------------------------------- .text:0003E9F8 .text:0003E9F8 loc_3E9F8 ; CODE XREF: __gconv_find_shlib+C0j .text:0003E9F8 MOV R4, R0 .text:0003E9FC B loc_3EA3C .text:0003E9FC ; --------------------------------------------------------------------------- .text:0003EA00 off_3EA00 DCD loaded ; DATA XREF: __gconv_find_shlib+14r .text:0003EA04 off_3EA04 DCD known_compare ; DATA XREF: __gconv_find_shlib+18r .text:0003EA08 off_3EA08 DCD aFoundHandleVoi ; DATA XREF: __gconv_find_shlib+9Cr .text:0003EA08 ; "found->handle == ((void *)0)" .text:0003EA0C off_3EA0C DCD aGconv_dl_c ; DATA XREF: __gconv_find_shlib+A0r .text:0003EA0C ; "gconv_dl.c" .text:0003EA10 off_3EA10 DCD a__gconv_find_s ; DATA XREF: __gconv_find_shlib+A4r .text:0003EA10 ; "__gconv_find_shlib" .text:0003EA14 off_3EA14 DCD aGconv ; DATA XREF: __gconv_find_shlib+C4r .text:0003EA14 ; "gconv" .text:0003EA18 off_3EA18 DCD aGconv_init ; DATA XREF: __gconv_find_shlib+F0r .text:0003EA18 ; "gconv_init" .text:0003EA1C off_3EA1C DCD aGconv_end ; DATA XREF: __gconv_find_shlib+100r .text:0003EA1C ; "gconv_end" .text:0003EA20 ; --------------------------------------------------------------------------- .text:0003EA20 .text:0003EA20 loc_3EA20 ; CODE XREF: __gconv_find_shlib+8Cj .text:0003EA20 LDR R3, [R4,#8] .text:0003EA24 CMP R3, #0 .text:0003EA28 BEQ loc_3EA3C .text:0003EA2C ADD R3, R2, #1 .text:0003EA30 CMP R3, #1 .text:0003EA34 MOVLT R3, #1 .text:0003EA38 .text:0003EA38 loc_3EA38 ; CODE XREF: __gconv_find_shlib+110j .text:0003EA38 STR R3, [R4,#4] .text:0003EA3C .text:0003EA3C loc_3EA3C ; CODE XREF: __gconv_find_shlib+80j .text:0003EA3C ; __gconv_find_shlib+E8j ... .text:0003EA3C MOV R0, R4 .text:0003EA40 LDMDB R11, {R4-R7,R11,SP,PC} .text:0003EA40 ; End of function __gconv_find_shlib .text:0003EA40 .text:0003EA44 .text:0003EA44 ; =============== S U B R O U T I N E ======================================= .text:0003EA44 .text:0003EA44 ; Attributes: bp-based frame .text:0003EA44 .text:0003EA44 do_release_shlib ; DATA XREF: __gconv_release_shlib+14o .text:0003EA44 ; .text:off_3EB24o .text:0003EA44 MOV R12, SP .text:0003EA48 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0003EA4C SUB R11, R12, #4 .text:0003EA50 SUBS R3, R1, #3 .text:0003EA54 MOVNE R3, #1 .text:0003EA58 CMP R1, #0 .text:0003EA5C MOVNE R5, R3 .text:0003EA60 MOVEQ R5, #0 .text:0003EA64 CMP R5, #0 .text:0003EA68 LDR R4, [R0] .text:0003EA6C LDMNEDB R11, {R4,R5,R11,SP,PC} .text:0003EA70 LDR R3, =release_handle .text:0003EA74 LDR R2, [R3] .text:0003EA78 CMP R4, R2 .text:0003EA7C BNE loc_3EAAC .text:0003EA80 LDR R3, [R4,#4] .text:0003EA84 CMP R3, #0 .text:0003EA88 BGT loc_3EAA0 .text:0003EA8C LDR R0, =aObjCounter0 ; "obj->counter > 0" .text:0003EA90 LDR R1, =aGconv_dl_c ; "gconv_dl.c" .text:0003EA94 LDR R3, =aDo_release_shl ; "do_release_shlib" .text:0003EA98 MOV R2, #0xA3 .text:0003EA9C BL __assert_fail .text:0003EAA0 ; --------------------------------------------------------------------------- .text:0003EAA0 .text:0003EAA0 loc_3EAA0 ; CODE XREF: do_release_shlib+44j .text:0003EAA0 SUB R3, R3, #1 .text:0003EAA4 STR R3, [R4,#4] .text:0003EAA8 LDMDB R11, {R4,R5,R11,SP,PC} .text:0003EAAC ; --------------------------------------------------------------------------- .text:0003EAAC .text:0003EAAC loc_3EAAC ; CODE XREF: do_release_shlib+38j .text:0003EAAC LDR R2, [R4,#4] .text:0003EAB0 ADD R3, R2, #2 .text:0003EAB4 CMP R3, #2 .text:0003EAB8 LDMHIDB R11, {R4,R5,R11,SP,PC} .text:0003EABC SUB R3, R2, #1 .text:0003EAC0 CMN R3, #2 .text:0003EAC4 STR R3, [R4,#4] .text:0003EAC8 LDMGEDB R11, {R4,R5,R11,SP,PC} .text:0003EACC LDR R0, [R4,#8] .text:0003EAD0 CMP R0, #0 .text:0003EAD4 LDMEQDB R11, {R4,R5,R11,SP,PC} .text:0003EAD8 BL __libc_dlclose .text:0003EADC STR R5, [R4,#8] .text:0003EAE0 LDMDB R11, {R4,R5,R11,SP,PC} .text:0003EAE0 ; End of function do_release_shlib .text:0003EAE0 .text:0003EAE0 ; --------------------------------------------------------------------------- .text:0003EAE4 off_3EAE4 DCD release_handle ; DATA XREF: do_release_shlib+2Cr .text:0003EAE8 off_3EAE8 DCD aObjCounter0 ; DATA XREF: do_release_shlib+48r .text:0003EAE8 ; "obj->counter > 0" .text:0003EAEC off_3EAEC DCD aGconv_dl_c ; DATA XREF: do_release_shlib+4Cr .text:0003EAEC ; "gconv_dl.c" .text:0003EAF0 off_3EAF0 DCD aDo_release_shl ; DATA XREF: do_release_shlib+50r .text:0003EAF0 ; "do_release_shlib" .text:0003EAF4 .text:0003EAF4 ; =============== S U B R O U T I N E ======================================= .text:0003EAF4 .text:0003EAF4 ; Attributes: bp-based frame .text:0003EAF4 .text:0003EAF4 EXPORT __gconv_release_shlib .text:0003EAF4 __gconv_release_shlib ; CODE XREF: gen_steps+1D8p .text:0003EAF4 ; increment_counter+D0p ... .text:0003EAF4 MOV R12, SP .text:0003EAF8 STMFD SP!, {R11,R12,LR,PC} .text:0003EAFC LDR R3, =release_handle .text:0003EB00 STR R0, [R3] .text:0003EB04 LDR R2, =loaded .text:0003EB08 LDR R1, =do_release_shlib .text:0003EB0C LDR R0, [R2] .text:0003EB10 SUB R11, R12, #4 .text:0003EB14 BL twalk .text:0003EB18 LDMDB R11, {R11,SP,PC} .text:0003EB18 ; End of function __gconv_release_shlib .text:0003EB18 .text:0003EB18 ; --------------------------------------------------------------------------- .text:0003EB1C off_3EB1C DCD release_handle ; DATA XREF: __gconv_release_shlib+8r .text:0003EB20 off_3EB20 DCD loaded ; DATA XREF: __gconv_release_shlib+10r .text:0003EB24 off_3EB24 DCD do_release_shlib ; DATA XREF: __gconv_release_shlib+14r .text:0003EB28 .text:0003EB28 ; =============== S U B R O U T I N E ======================================= .text:0003EB28 .text:0003EB28 ; Attributes: bp-based frame .text:0003EB28 .text:0003EB28 do_release_all ; DATA XREF: free_mem_6+Co .text:0003EB28 ; .text:off_3EB78o .text:0003EB28 MOV R12, SP .text:0003EB2C STMFD SP!, {R4,R11,R12,LR,PC} .text:0003EB30 MOV R4, R0 .text:0003EB34 LDR R0, [R4,#8] .text:0003EB38 SUB R11, R12, #4 .text:0003EB3C CMP R0, #0 .text:0003EB40 BEQ loc_3EB48 .text:0003EB44 BL __libc_dlclose .text:0003EB48 .text:0003EB48 loc_3EB48 ; CODE XREF: do_release_all+18j .text:0003EB48 MOV R0, R4 .text:0003EB4C BL free .text:0003EB50 LDMDB R11, {R4,R11,SP,PC} .text:0003EB50 ; End of function do_release_all .text:0003EB50 .text:0003EB54 .text:0003EB54 ; =============== S U B R O U T I N E ======================================= .text:0003EB54 .text:0003EB54 ; Attributes: bp-based frame .text:0003EB54 .text:0003EB54 free_mem_6 .text:0003EB54 MOV R12, SP .text:0003EB58 STMFD SP!, {R11,R12,LR,PC} .text:0003EB5C LDR R3, =loaded .text:0003EB60 LDR R1, =do_release_all .text:0003EB64 LDR R0, [R3] .text:0003EB68 SUB R11, R12, #4 .text:0003EB6C BL tdestroy .text:0003EB70 LDMDB R11, {R11,SP,PC} .text:0003EB70 ; End of function free_mem_6 .text:0003EB70 .text:0003EB70 ; --------------------------------------------------------------------------- .text:0003EB74 off_3EB74 DCD loaded ; DATA XREF: free_mem_6+8r .text:0003EB78 off_3EB78 DCD do_release_all ; DATA XREF: free_mem_6+Cr .text:0003EB7C .text:0003EB7C ; =============== S U B R O U T I N E ======================================= .text:0003EB7C .text:0003EB7C ; Attributes: bp-based frame .text:0003EB7C .text:0003EB7C EXPORT setlocale .text:0003EB7C setlocale ; CODE XREF: guess_category_value+38p .text:0003EB7C .text:0003EB7C var_A8 = -0xA8 .text:0003EB7C var_A4 = -0xA4 .text:0003EB7C var_A0 = -0xA0 .text:0003EB7C var_9C = -0x9C .text:0003EB7C var_98 = -0x98 .text:0003EB7C var_94 = -0x94 .text:0003EB7C var_90 = -0x90 .text:0003EB7C var_5C = -0x5C .text:0003EB7C .text:0003EB7C MOV R12, SP .text:0003EB80 STMFD SP!, {R4-R12,LR,PC} .text:0003EB84 SUB R11, R12, #4 .text:0003EB88 MOV R7, R0 .text:0003EB8C CMP R7, #0xC .text:0003EB90 MOV R8, R1 .text:0003EB94 SUB SP, SP, #0x80 .text:0003EB98 BHI loc_3ECF4 .text:0003EB9C CMP R8, #0 .text:0003EBA0 LDREQ R3, =_nl_current_names .text:0003EBA4 LDREQ R0, [R3,R7,LSL#2] .text:0003EBA8 BEQ loc_3F3CC .text:0003EBAC LDR R4, =_nl_current_names .text:0003EBB0 MOV R3, R7,LSL#2 .text:0003EBB4 LDR R1, [R4,R3] .text:0003EBB8 STR R3, [R11,#var_A8] .text:0003EBBC MOV R0, R8 .text:0003EBC0 BL strcmp .text:0003EBC4 CMP R0, #0 .text:0003EBC8 LDREQ R1, [R11,#var_A8] .text:0003EBCC LDREQ R0, [R4,R1] .text:0003EBD0 BEQ loc_3F3CC .text:0003EBD4 MOV R6, #0 .text:0003EBD8 STR R6, [R11,#var_94] .text:0003EBDC STR R6, [R11,#var_98] .text:0003EBE0 LDR R0, =aLocpath ; "LOCPATH" .text:0003EBE4 BL getenv .text:0003EBE8 SUB R5, R11, #-var_94 .text:0003EBEC SUB R4, R11, #-var_98 .text:0003EBF0 CMP R0, #0 .text:0003EBF4 BEQ loc_3EC1C .text:0003EBF8 LDRB R3, [R0] .text:0003EBFC CMP R3, R6 .text:0003EC00 BEQ loc_3EC1C .text:0003EC04 MOV R1, #0x3A .text:0003EC08 MOV R2, R5 .text:0003EC0C MOV R3, R4 .text:0003EC10 BL argz_create_sep .text:0003EC14 CMP R0, R6 .text:0003EC18 BNE loc_3ED00 .text:0003EC1C .text:0003EC1C loc_3EC1C ; CODE XREF: setlocale+78j .text:0003EC1C ; setlocale+84j .text:0003EC1C MOV R0, R5 .text:0003EC20 MOV R1, R4 .text:0003EC24 LDR R2, =aUsrLocalArm2_0 ; "/usr/local/arm/2.95.3/arm-linux/lib/loc"... .text:0003EC28 MOV R3, #0x3A .text:0003EC2C BL argz_add_sep .text:0003EC30 CMP R0, #0 .text:0003EC34 BNE loc_3ED00 .text:0003EC38 CMP R7, #6 .text:0003EC3C BNE loc_3F0B0 .text:0003EC40 MOV R7, R0 .text:0003EC44 SUB R3, R11, #-var_5C .text:0003EC48 .text:0003EC48 loc_3EC48 ; CODE XREF: setlocale+DCj .text:0003EC48 CMP R7, #6 .text:0003EC4C STRNE R8, [R3,R7,LSL#2] .text:0003EC50 ADD R7, R7, #1 .text:0003EC54 CMP R7, #0xC .text:0003EC58 BLE loc_3EC48 .text:0003EC5C MOV R0, R8 .text:0003EC60 MOV R1, #0x3B .text:0003EC64 BL strchr .text:0003EC68 CMP R0, #0 .text:0003EC6C BEQ loc_3ED80 .text:0003EC70 MOV R0, R8 .text:0003EC74 BL strlen .text:0003EC78 MOV R2, R0 .text:0003EC7C ADD R3, R2, #4 .text:0003EC80 BIC R3, R3, #3 .text:0003EC84 RSB SP, R3, SP .text:0003EC88 MOV R0, SP .text:0003EC8C MOV R1, R8 .text:0003EC90 ADD R2, R2, #1 .text:0003EC94 BL memcpy .text:0003EC98 MOV R6, R0 .text:0003EC9C B loc_3ED34 .text:0003ECA0 ; --------------------------------------------------------------------------- .text:0003ECA0 .text:0003ECA0 loc_3ECA0 ; CODE XREF: setlocale+1C8j .text:0003ECA0 LDR R9, =_nl_category_name_sizes .text:0003ECA4 LDR R10, =_nl_category_names .text:0003ECA8 MOV R4, #0 .text:0003ECAC B loc_3ECB4 .text:0003ECB0 ; --------------------------------------------------------------------------- .text:0003ECB0 .text:0003ECB0 loc_3ECB0 ; CODE XREF: setlocale+144j .text:0003ECB0 ; setlocale+158j ... .text:0003ECB0 ADD R4, R4, #1 .text:0003ECB4 .text:0003ECB4 loc_3ECB4 ; CODE XREF: setlocale+130j .text:0003ECB4 CMP R4, #0xC .text:0003ECB8 BGT loc_3ECEC .text:0003ECBC CMP R4, #6 .text:0003ECC0 BEQ loc_3ECB0 .text:0003ECC4 MOV R1, R4,LSL#2 .text:0003ECC8 LDR R3, [R9,R1] .text:0003ECCC RSB R2, R6, R5 .text:0003ECD0 CMP R2, R3 .text:0003ECD4 BNE loc_3ECB0 .text:0003ECD8 LDR R1, [R10,R1] .text:0003ECDC MOV R0, R6 .text:0003ECE0 BL memcmp .text:0003ECE4 CMP R0, #0 .text:0003ECE8 BNE loc_3ECB0 .text:0003ECEC .text:0003ECEC loc_3ECEC ; CODE XREF: setlocale+13Cj .text:0003ECEC CMP R4, #0xD .text:0003ECF0 BNE loc_3ED08 .text:0003ECF4 .text:0003ECF4 loc_3ECF4 ; CODE XREF: setlocale+1Cj .text:0003ECF4 BL __errno_location .text:0003ECF8 MOV R3, #0x16 .text:0003ECFC STR R3, [R0] .text:0003ED00 .text:0003ED00 loc_3ED00 ; CODE XREF: setlocale+9Cj .text:0003ED00 ; setlocale+B8j ... .text:0003ED00 MOV R0, #0 .text:0003ED04 B loc_3F3CC .text:0003ED08 ; --------------------------------------------------------------------------- .text:0003ED08 .text:0003ED08 loc_3ED08 ; CODE XREF: setlocale+174j .text:0003ED08 ADD R5, R5, #1 .text:0003ED0C SUB R3, R11, #-var_5C .text:0003ED10 STR R5, [R3,R4,LSL#2] .text:0003ED14 MOV R0, R5 .text:0003ED18 MOV R1, #0x3B .text:0003ED1C BL strchr .text:0003ED20 SUBS R5, R0, #0 .text:0003ED24 BEQ loc_3ED48 .text:0003ED28 MOV R3, #0 .text:0003ED2C STRB R3, [R5],#1 .text:0003ED30 MOV R6, R5 .text:0003ED34 .text:0003ED34 loc_3ED34 ; CODE XREF: setlocale+120j .text:0003ED34 MOV R0, R6 .text:0003ED38 MOV R1, #0x3D .text:0003ED3C BL strchr .text:0003ED40 SUBS R5, R0, #0 .text:0003ED44 BNE loc_3ECA0 .text:0003ED48 .text:0003ED48 loc_3ED48 ; CODE XREF: setlocale+1A8j .text:0003ED48 MOV R4, #0 .text:0003ED4C SUB R2, R11, #-var_5C .text:0003ED50 MOV R5, #0x16 .text:0003ED54 .text:0003ED54 loc_3ED54 ; CODE XREF: setlocale+200j .text:0003ED54 CMP R4, #6 .text:0003ED58 BEQ loc_3ED74 .text:0003ED5C LDR R3, [R2,R4,LSL#2] .text:0003ED60 CMP R3, R8 .text:0003ED64 BNE loc_3ED74 .text:0003ED68 BL __errno_location .text:0003ED6C STR R5, [R0] .text:0003ED70 B loc_3ED00 .text:0003ED74 ; --------------------------------------------------------------------------- .text:0003ED74 .text:0003ED74 loc_3ED74 ; CODE XREF: setlocale+1DCj .text:0003ED74 ; setlocale+1E8j .text:0003ED74 ADD R4, R4, #1 .text:0003ED78 CMP R4, #0xC .text:0003ED7C BLE loc_3ED54 .text:0003ED80 .text:0003ED80 loc_3ED80 ; CODE XREF: setlocale+F0j .text:0003ED80 LDR R3, =0 .text:0003ED84 CMP R3, #0 .text:0003ED88 BEQ loc_3EDCC .text:0003ED8C LDR R0, =__libc_setlocale_lock .text:0003ED90 MOV LR, PC .text:0003ED94 MOV PC, R3 .text:0003ED98 B loc_3EDCC .text:0003ED9C ; --------------------------------------------------------------------------- .text:0003ED9C .text:0003ED9C loc_3ED9C ; CODE XREF: setlocale+290j .text:0003ED9C LDR R3, [R0,#0x10] .text:0003EDA0 CMN R3, #1 .text:0003EDA4 MOVNE R3, 0xFFFFFFFF .text:0003EDA8 STRNE R3, [R0,#0x10] .text:0003EDAC LDR R0, [R5,R4] .text:0003EDB0 LDR R3, =_nl_C_name .text:0003EDB4 CMP R0, R3 .text:0003EDB8 BEQ loc_3EDCC .text:0003EDBC BL strdup .text:0003EDC0 CMP R0, #0 .text:0003EDC4 STR R0, [R5,R4] .text:0003EDC8 BEQ loc_3EE10 .text:0003EDCC .text:0003EDCC loc_3EDCC ; CODE XREF: setlocale+20Cj .text:0003EDCC ; setlocale+21Cj ... .text:0003EDCC MOV R3, R7 .text:0003EDD0 SUB R7, R7, #1 .text:0003EDD4 CMP R3, #0 .text:0003EDD8 BLE loc_3EE10 .text:0003EDDC CMP R7, #6 .text:0003EDE0 BEQ loc_3EDCC .text:0003EDE4 MOV R2, R7 .text:0003EDE8 SUB R5, R11, #-var_5C .text:0003EDEC LDR R0, [R11,#var_94] .text:0003EDF0 MOV R4, R7,LSL#2 .text:0003EDF4 LDR R1, [R11,#var_98] .text:0003EDF8 ADD R3, R5, R4 .text:0003EDFC BL _nl_find_locale .text:0003EE00 CMP R0, #0 .text:0003EE04 SUB R3, R11, #-var_90 .text:0003EE08 STR R0, [R3,R4] .text:0003EE0C BNE loc_3ED9C .text:0003EE10 .text:0003EE10 loc_3EE10 ; CODE XREF: setlocale+24Cj .text:0003EE10 ; setlocale+25Cj .text:0003EE10 CMP R7, #0 .text:0003EE14 BGE loc_3EF78 .text:0003EE18 SUB R10, R11, #-var_5C .text:0003EE1C MOV R6, #0 .text:0003EE20 MOV R9, R6 .text:0003EE24 MOV R8, #1 .text:0003EE28 MOV R5, R6 .text:0003EE2C .text:0003EE2C loc_3EE2C ; CODE XREF: setlocale+308j .text:0003EE2C CMP R5, #6 .text:0003EE30 BEQ loc_3EE7C .text:0003EE34 LDR R4, [R10,R5,LSL#2] .text:0003EE38 MOV R0, R4 .text:0003EE3C BL strlen .text:0003EE40 MOV R9, R0 .text:0003EE44 CMP R8, #0 .text:0003EE48 CMPNE R5, #0 .text:0003EE4C LDR R0, =_nl_category_name_sizes .text:0003EE50 ADD R3, R6, #1 .text:0003EE54 LDR R2, [R0,R5,LSL#2] .text:0003EE58 ADD R1, R9, #1 .text:0003EE5C ADD R2, R2, R1 .text:0003EE60 ADD R6, R3, R2 .text:0003EE64 BLE loc_3EE7C .text:0003EE68 LDR R1, [R11,#var_5C] .text:0003EE6C MOV R0, R4 .text:0003EE70 BL strcmp .text:0003EE74 CMP R0, #0 .text:0003EE78 MOVNE R8, #0 .text:0003EE7C .text:0003EE7C loc_3EE7C ; CODE XREF: setlocale+2B4j .text:0003EE7C ; setlocale+2E8j .text:0003EE7C ADD R5, R5, #1 .text:0003EE80 CMP R5, #0xC .text:0003EE84 BLE loc_3EE2C .text:0003EE88 CMP R8, #0 .text:0003EE8C BEQ loc_3EEF4 .text:0003EE90 LDR R0, [R11,#var_5C] .text:0003EE94 LDR R1, =_nl_C_name .text:0003EE98 BL strcmp .text:0003EE9C CMP R0, #0 .text:0003EEA0 BEQ loc_3EEB8 .text:0003EEA4 LDR R0, [R11,#var_5C] .text:0003EEA8 LDR R1, =_nl_POSIX_name ; "POSIX" .text:0003EEAC BL strcmp .text:0003EEB0 CMP R0, #0 .text:0003EEB4 BNE loc_3EEC0 .text:0003EEB8 .text:0003EEB8 loc_3EEB8 ; CODE XREF: setlocale+324j .text:0003EEB8 LDR R6, =_nl_C_name .text:0003EEBC B loc_3EF7C .text:0003EEC0 ; --------------------------------------------------------------------------- .text:0003EEC0 .text:0003EEC0 loc_3EEC0 ; CODE XREF: setlocale+338j .text:0003EEC0 ADD R4, R9, #1 .text:0003EEC4 MOV R0, R4 .text:0003EEC8 BL malloc .text:0003EECC SUBS R6, R0, #0 .text:0003EED0 BEQ loc_3EEE8 .text:0003EED4 MOV R0, R6 .text:0003EED8 LDR R1, [R11,#var_5C] .text:0003EEDC MOV R2, R4 .text:0003EEE0 BL memcpy .text:0003EEE4 B loc_3EEEC .text:0003EEE8 ; --------------------------------------------------------------------------- .text:0003EEE8 .text:0003EEE8 loc_3EEE8 ; CODE XREF: setlocale+354j .text:0003EEE8 MOV R0, R6 .text:0003EEEC .text:0003EEEC loc_3EEEC ; CODE XREF: setlocale+368j .text:0003EEEC MOV R6, R0 .text:0003EEF0 B loc_3EF7C .text:0003EEF4 ; --------------------------------------------------------------------------- .text:0003EEF4 .text:0003EEF4 loc_3EEF4 ; CODE XREF: setlocale+310j .text:0003EEF4 MOV R0, R6 .text:0003EEF8 BL malloc .text:0003EEFC SUBS R6, R0, #0 .text:0003EF00 BEQ loc_3EF7C .text:0003EF04 MOV R0, R6 .text:0003EF08 MOV R5, R8 .text:0003EF0C LDR R8, =_nl_category_names .text:0003EF10 .text:0003EF10 loc_3EF10 ; CODE XREF: setlocale+3C8j .text:0003EF10 CMP R5, #6 .text:0003EF14 BEQ loc_3EF3C .text:0003EF18 LDR R1, [R8,R5,LSL#2] .text:0003EF1C LDR R4, [R10,R5,LSL#2] .text:0003EF20 BL stpcpy .text:0003EF24 MOV R3, #0x3D .text:0003EF28 STRB R3, [R0],#1 .text:0003EF2C MOV R1, R4 .text:0003EF30 BL stpcpy .text:0003EF34 MOV R3, #0x3B .text:0003EF38 STRB R3, [R0],#1 .text:0003EF3C .text:0003EF3C loc_3EF3C ; CODE XREF: setlocale+398j .text:0003EF3C ADD R5, R5, #1 .text:0003EF40 CMP R5, #0xC .text:0003EF44 BLE loc_3EF10 .text:0003EF48 MOV R3, #0 .text:0003EF4C STRB R3, [R0,#-1] .text:0003EF50 B loc_3EF7C .text:0003EF50 ; --------------------------------------------------------------------------- .text:0003EF54 off_3EF54 DCD _nl_current_names ; DATA XREF: setlocale+24r .text:0003EF54 ; setlocale+30r .text:0003EF58 off_3EF58 DCD aLocpath ; DATA XREF: setlocale+64r .text:0003EF58 ; "LOCPATH" .text:0003EF5C off_3EF5C DCD aUsrLocalArm2_0 ; DATA XREF: setlocale+A8r .text:0003EF5C ; "/usr/local/arm/2.95.3/arm-linux/lib/loc"... .text:0003EF60 off_3EF60 DCD _nl_category_name_sizes ; DATA XREF: setlocale:loc_3ECA0r .text:0003EF60 ; setlocale+2D0r .text:0003EF64 off_3EF64 DCD _nl_category_names ; DATA XREF: setlocale+128r .text:0003EF64 ; setlocale+390r .text:0003EF68 off_3EF68 DCD 0 ; DATA XREF: setlocale:loc_3ED80r .text:0003EF6C off_3EF6C DCD __libc_setlocale_lock ; DATA XREF: setlocale+210r .text:0003EF70 off_3EF70 DCD _nl_C_name ; DATA XREF: setlocale+234r .text:0003EF70 ; setlocale+318r ... .text:0003EF74 off_3EF74 DCD _nl_POSIX_name ; DATA XREF: setlocale+32Cr .text:0003EF74 ; "POSIX" .text:0003EF78 ; --------------------------------------------------------------------------- .text:0003EF78 .text:0003EF78 loc_3EF78 ; CODE XREF: setlocale+298j .text:0003EF78 MOV R6, #0 .text:0003EF7C .text:0003EF7C loc_3EF7C ; CODE XREF: setlocale+340j .text:0003EF7C ; setlocale+374j ... .text:0003EF7C CMP R6, #0 .text:0003EF80 BEQ loc_3F050 .text:0003EF84 MOV R7, #0 .text:0003EF88 MOV R5, R7 .text:0003EF8C LDR R8, =_nl_msg_cat_cntr .text:0003EF90 .text:0003EF90 loc_3EF90 ; CODE XREF: setlocale+498j .text:0003EF90 CMP R7, #6 .text:0003EF94 BEQ loc_3F008 .text:0003EF98 LDR R3, =_nl_current .text:0003EF9C LDR R2, [R3,R5] .text:0003EFA0 STR R5, [R11,#var_A8] .text:0003EFA4 SUB R3, R11, #-var_90 .text:0003EFA8 CMP R2, #0 .text:0003EFAC LDR R3, [R3,R5] .text:0003EFB0 BEQ loc_3EFD4 .text:0003EFB4 STR R3, [R2] .text:0003EFB8 LDR R3, =_nl_category_postload .text:0003EFBC LDR R1, [R11,#var_A8] .text:0003EFC0 LDR R3, [R3,R1] .text:0003EFC4 CMP R3, #0 .text:0003EFC8 BEQ loc_3EFD4 .text:0003EFCC MOV LR, PC .text:0003EFD0 MOV PC, R3 .text:0003EFD4 .text:0003EFD4 loc_3EFD4 ; CODE XREF: setlocale+434j .text:0003EFD4 ; setlocale+44Cj .text:0003EFD4 LDR R2, =_nl_current_names .text:0003EFD8 SUB R3, R11, #-var_5C .text:0003EFDC LDR R4, [R3,R5] .text:0003EFE0 LDR R0, [R5,R2] .text:0003EFE4 CMP R0, R4 .text:0003EFE8 BEQ loc_3F008 .text:0003EFEC LDR R3, =_nl_C_name .text:0003EFF0 CMP R0, R3 .text:0003EFF4 BEQ loc_3EFFC .text:0003EFF8 BL free .text:0003EFFC .text:0003EFFC loc_3EFFC ; CODE XREF: setlocale+478j .text:0003EFFC LDR R3, =_nl_current_names .text:0003F000 LDR R0, [R11,#var_A8] .text:0003F004 STR R4, [R3,R0] .text:0003F008 .text:0003F008 loc_3F008 ; CODE XREF: setlocale+418j .text:0003F008 ; setlocale+46Cj .text:0003F008 ADD R5, R5, #4 .text:0003F00C ADD R7, R7, #1 .text:0003F010 CMP R7, #0xC .text:0003F014 BLE loc_3EF90 .text:0003F018 LDR R1, =_nl_current_names .text:0003F01C LDR R0, [R1,#(_nl_current_names+0x18 - 0x6BC94)] .text:0003F020 CMP R0, R6 .text:0003F024 BEQ loc_3F040 .text:0003F028 LDR R3, =_nl_C_name .text:0003F02C CMP R0, R3 .text:0003F030 BEQ loc_3F038 .text:0003F034 BL free .text:0003F038 .text:0003F038 loc_3F038 ; CODE XREF: setlocale+4B4j .text:0003F038 LDR R2, =_nl_current_names .text:0003F03C STR R6, [R2,#(_nl_current_names+0x18 - 0x6BC94)] .text:0003F040 .text:0003F040 loc_3F040 ; CODE XREF: setlocale+4A8j .text:0003F040 LDR R3, [R8] .text:0003F044 ADD R3, R3, #1 .text:0003F048 STR R3, [R8] .text:0003F04C B loc_3F088 .text:0003F050 ; --------------------------------------------------------------------------- .text:0003F050 .text:0003F050 loc_3F050 ; CODE XREF: setlocale+404j .text:0003F050 ADD R7, R7, #1 .text:0003F054 CMP R7, #0xC .text:0003F058 BGT loc_3F088 .text:0003F05C SUB R4, R11, #-var_5C .text:0003F060 LDR R5, =_nl_C_name .text:0003F064 .text:0003F064 loc_3F064 ; CODE XREF: setlocale+508j .text:0003F064 CMP R7, #6 .text:0003F068 BEQ loc_3F07C .text:0003F06C LDR R0, [R4,R7,LSL#2] .text:0003F070 CMP R0, R5 .text:0003F074 BEQ loc_3F07C .text:0003F078 BL free .text:0003F07C .text:0003F07C loc_3F07C ; CODE XREF: setlocale+4ECj .text:0003F07C ; setlocale+4F8j .text:0003F07C ADD R7, R7, #1 .text:0003F080 CMP R7, #0xC .text:0003F084 BLE loc_3F064 .text:0003F088 .text:0003F088 loc_3F088 ; CODE XREF: setlocale+4D0j .text:0003F088 ; setlocale+4DCj .text:0003F088 LDR R3, =0 .text:0003F08C CMP R3, #0 .text:0003F090 BEQ loc_3F0A0 .text:0003F094 LDR R0, =__libc_setlocale_lock .text:0003F098 MOV LR, PC .text:0003F09C MOV PC, R3 .text:0003F0A0 .text:0003F0A0 loc_3F0A0 ; CODE XREF: setlocale+514j .text:0003F0A0 LDR R0, [R11,#var_94] .text:0003F0A4 BL free .text:0003F0A8 MOV R0, R6 .text:0003F0AC B loc_3F3CC .text:0003F0B0 ; --------------------------------------------------------------------------- .text:0003F0B0 .text:0003F0B0 loc_3F0B0 ; CODE XREF: setlocale+C0j .text:0003F0B0 STR R0, [R11,#var_A0] .text:0003F0B4 LDR R3, =0 .text:0003F0B8 STR R8, [R11,#var_9C] .text:0003F0BC CMP R3, #0 .text:0003F0C0 BEQ loc_3F0D0 .text:0003F0C4 LDR R0, =__libc_setlocale_lock .text:0003F0C8 MOV LR, PC .text:0003F0CC MOV PC, R3 .text:0003F0D0 .text:0003F0D0 loc_3F0D0 ; CODE XREF: setlocale+544j .text:0003F0D0 LDR R2, =_nl_current .text:0003F0D4 LDR R0, [R11,#var_A8] .text:0003F0D8 LDR R3, [R2,R0] .text:0003F0DC CMP R3, #0 .text:0003F0E0 BEQ loc_3F114 .text:0003F0E4 LDR R0, [R11,#var_94] .text:0003F0E8 MOV R2, R7 .text:0003F0EC LDR R1, [R11,#var_98] .text:0003F0F0 SUB R3, R11, #-var_9C .text:0003F0F4 BL _nl_find_locale .text:0003F0F8 CMP R0, #0 .text:0003F0FC STR R0, [R11,#var_A0] .text:0003F100 BEQ loc_3F2CC .text:0003F104 LDR R3, [R0,#0x10] .text:0003F108 CMN R3, #1 .text:0003F10C MOVNE R3, 0xFFFFFFFF .text:0003F110 STRNE R3, [R0,#0x10] .text:0003F114 .text:0003F114 loc_3F114 ; CODE XREF: setlocale+564j .text:0003F114 LDR R0, [R11,#var_9C] .text:0003F118 LDR R3, =_nl_C_name .text:0003F11C CMP R0, R3 .text:0003F120 BEQ loc_3F134 .text:0003F124 BL strdup .text:0003F128 CMP R0, #0 .text:0003F12C STR R0, [R11,#var_9C] .text:0003F130 BEQ loc_3F2CC .text:0003F134 .text:0003F134 loc_3F134 ; CODE XREF: setlocale+5A4j .text:0003F134 MOV R8, #0 .text:0003F138 STR R8, [R11,#var_A4] .text:0003F13C SUB R6, R11, #-var_9C .text:0003F140 MOV R10, #1 .text:0003F144 MOV R5, R8 .text:0003F148 LDR R9, =_nl_category_name_sizes .text:0003F14C .text:0003F14C loc_3F14C ; CODE XREF: setlocale+640j .text:0003F14C CMP R5, #6 .text:0003F150 BEQ loc_3F1B0 .text:0003F154 CMP R7, #6 .text:0003F158 LDREQ R4, [R6,R5,LSL#2] .text:0003F15C BEQ loc_3F170 .text:0003F160 CMP R7, R5 .text:0003F164 LDREQ R4, [R6] .text:0003F168 LDRNE R1, =_nl_current_names .text:0003F16C LDRNE R4, [R1,R5,LSL#2] .text:0003F170 .text:0003F170 loc_3F170 ; CODE XREF: setlocale+5E0j .text:0003F170 MOV R0, R4 .text:0003F174 BL strlen .text:0003F178 STR R0, [R11,#var_A4] .text:0003F17C CMP R10, #0 .text:0003F180 CMPNE R5, #0 .text:0003F184 ADD R3, R8, #1 .text:0003F188 LDR R2, [R9] .text:0003F18C ADD R1, R0, #1 .text:0003F190 ADD R2, R2, R1 .text:0003F194 ADD R8, R3, R2 .text:0003F198 BLE loc_3F1B0 .text:0003F19C LDR R1, [R6] .text:0003F1A0 MOV R0, R4 .text:0003F1A4 BL strcmp .text:0003F1A8 CMP R0, #0 .text:0003F1AC MOVNE R10, #0 .text:0003F1B0 .text:0003F1B0 loc_3F1B0 ; CODE XREF: setlocale+5D4j .text:0003F1B0 ; setlocale+61Cj .text:0003F1B0 ADD R9, R9, #4 .text:0003F1B4 ADD R5, R5, #1 .text:0003F1B8 CMP R5, #0xC .text:0003F1BC BLE loc_3F14C .text:0003F1C0 CMP R10, #0 .text:0003F1C4 BEQ loc_3F230 .text:0003F1C8 LDR R0, [R6] .text:0003F1CC LDR R1, =_nl_C_name .text:0003F1D0 BL strcmp .text:0003F1D4 CMP R0, #0 .text:0003F1D8 BEQ loc_3F1F0 .text:0003F1DC LDR R0, [R6] .text:0003F1E0 LDR R1, =_nl_POSIX_name ; "POSIX" .text:0003F1E4 BL strcmp .text:0003F1E8 CMP R0, #0 .text:0003F1EC BNE loc_3F1F8 .text:0003F1F0 .text:0003F1F0 loc_3F1F0 ; CODE XREF: setlocale+65Cj .text:0003F1F0 LDR R6, =_nl_C_name .text:0003F1F4 B loc_3F2B0 .text:0003F1F8 ; --------------------------------------------------------------------------- .text:0003F1F8 .text:0003F1F8 loc_3F1F8 ; CODE XREF: setlocale+670j .text:0003F1F8 LDR R2, [R11,#var_A4] .text:0003F1FC ADD R4, R2, #1 .text:0003F200 MOV R0, R4 .text:0003F204 BL malloc .text:0003F208 SUBS R8, R0, #0 .text:0003F20C BEQ loc_3F224 .text:0003F210 MOV R0, R8 .text:0003F214 LDR R1, [R6] .text:0003F218 MOV R2, R4 .text:0003F21C BL memcpy .text:0003F220 B loc_3F228 .text:0003F224 ; --------------------------------------------------------------------------- .text:0003F224 .text:0003F224 loc_3F224 ; CODE XREF: setlocale+690j .text:0003F224 MOV R0, R8 .text:0003F228 .text:0003F228 loc_3F228 ; CODE XREF: setlocale+6A4j .text:0003F228 MOV R6, R0 .text:0003F22C B loc_3F2B0 .text:0003F230 ; --------------------------------------------------------------------------- .text:0003F230 .text:0003F230 loc_3F230 ; CODE XREF: setlocale+648j .text:0003F230 MOV R0, R8 .text:0003F234 BL malloc .text:0003F238 SUBS R8, R0, #0 .text:0003F23C MOVEQ R6, R8 .text:0003F240 BEQ loc_3F2B0 .text:0003F244 MOV R0, R8 .text:0003F248 MOV R5, R10 .text:0003F24C LDR R10, =_nl_category_names .text:0003F250 .text:0003F250 loc_3F250 ; CODE XREF: setlocale+724j .text:0003F250 CMP R5, #6 .text:0003F254 BEQ loc_3F294 .text:0003F258 CMP R7, #6 .text:0003F25C LDREQ R4, [R6,R5,LSL#2] .text:0003F260 BEQ loc_3F274 .text:0003F264 CMP R7, R5 .text:0003F268 LDREQ R4, [R6] .text:0003F26C LDRNE R3, =_nl_current_names .text:0003F270 LDRNE R4, [R3,R5,LSL#2] .text:0003F274 .text:0003F274 loc_3F274 ; CODE XREF: setlocale+6E4j .text:0003F274 LDR R1, [R10] .text:0003F278 BL stpcpy .text:0003F27C MOV R3, #0x3D .text:0003F280 STRB R3, [R0],#1 .text:0003F284 MOV R1, R4 .text:0003F288 BL stpcpy .text:0003F28C MOV R3, #0x3B .text:0003F290 STRB R3, [R0],#1 .text:0003F294 .text:0003F294 loc_3F294 ; CODE XREF: setlocale+6D8j .text:0003F294 ADD R10, R10, #4 .text:0003F298 ADD R5, R5, #1 .text:0003F29C CMP R5, #0xC .text:0003F2A0 BLE loc_3F250 .text:0003F2A4 MOV R6, R8 .text:0003F2A8 MOV R3, #0 .text:0003F2AC STRB R3, [R0,#-1] .text:0003F2B0 .text:0003F2B0 loc_3F2B0 ; CODE XREF: setlocale+678j .text:0003F2B0 ; setlocale+6B0j ... .text:0003F2B0 CMP R6, #0 .text:0003F2B4 BNE loc_3F304 .text:0003F2B8 LDR R0, [R11,#var_9C] .text:0003F2BC LDR R1, =_nl_C_name .text:0003F2C0 CMP R0, R1 .text:0003F2C4 BEQ loc_3F2CC .text:0003F2C8 BL free .text:0003F2CC .text:0003F2CC loc_3F2CC ; CODE XREF: setlocale+584j .text:0003F2CC ; setlocale+5B4j ... .text:0003F2CC MOV R3, #0 .text:0003F2D0 STR R3, [R11,#var_9C] .text:0003F2D4 B loc_3F3A4 .text:0003F2D4 ; --------------------------------------------------------------------------- .text:0003F2D8 off_3F2D8 DCD _nl_msg_cat_cntr ; DATA XREF: setlocale+410r .text:0003F2DC off_3F2DC DCD _nl_current ; DATA XREF: setlocale+41Cr .text:0003F2DC ; setlocale:loc_3F0D0r .text:0003F2E0 off_3F2E0 DCD _nl_category_postload ; DATA XREF: setlocale+43Cr .text:0003F2E4 off_3F2E4 DCD _nl_current_names ; DATA XREF: setlocale:loc_3EFD4r .text:0003F2E4 ; setlocale:loc_3EFFCr ... .text:0003F2E8 off_3F2E8 DCD _nl_C_name ; DATA XREF: setlocale+470r .text:0003F2E8 ; setlocale+4ACr ... .text:0003F2EC off_3F2EC DCD 0 ; DATA XREF: setlocale:loc_3F088r .text:0003F2F0 off_3F2F0 DCD __libc_setlocale_lock ; DATA XREF: setlocale+518r .text:0003F2F0 ; setlocale+548r .text:0003F2F4 off_3F2F4 DCD 0 ; DATA XREF: setlocale+538r .text:0003F2F8 off_3F2F8 DCD _nl_category_name_sizes ; DATA XREF: setlocale+5CCr .text:0003F2FC off_3F2FC DCD _nl_POSIX_name ; DATA XREF: setlocale+664r .text:0003F2FC ; "POSIX" .text:0003F300 off_3F300 DCD _nl_category_names ; DATA XREF: setlocale+6D0r .text:0003F304 ; --------------------------------------------------------------------------- .text:0003F304 .text:0003F304 loc_3F304 ; CODE XREF: setlocale+738j .text:0003F304 LDR R3, =_nl_current .text:0003F308 LDR R0, [R11,#var_A8] .text:0003F30C LDR R2, [R3,R0] .text:0003F310 CMP R2, #0 .text:0003F314 BEQ loc_3F338 .text:0003F318 LDR R1, [R11,#var_A0] .text:0003F31C STR R1, [R2] .text:0003F320 LDR R3, =_nl_category_postload .text:0003F324 LDR R3, [R3,R0] .text:0003F328 CMP R3, #0 .text:0003F32C BEQ loc_3F338 .text:0003F330 MOV LR, PC .text:0003F334 MOV PC, R3 .text:0003F338 .text:0003F338 loc_3F338 ; CODE XREF: setlocale+798j .text:0003F338 ; setlocale+7B0j .text:0003F338 LDR R2, =_nl_current_names .text:0003F33C LDR R3, [R11,#var_A8] .text:0003F340 LDR R4, [R11,#var_9C] .text:0003F344 LDR R0, [R2,R3] .text:0003F348 CMP R0, R4 .text:0003F34C BEQ loc_3F36C .text:0003F350 LDR R1, =_nl_C_name .text:0003F354 CMP R0, R1 .text:0003F358 BEQ loc_3F360 .text:0003F35C BL free .text:0003F360 .text:0003F360 loc_3F360 ; CODE XREF: setlocale+7DCj .text:0003F360 LDR R2, =_nl_current_names .text:0003F364 LDR R3, [R11,#var_A8] .text:0003F368 STR R4, [R2,R3] .text:0003F36C .text:0003F36C loc_3F36C ; CODE XREF: setlocale+7D0j .text:0003F36C LDR R1, =_nl_current_names .text:0003F370 LDR R0, [R1,#(_nl_current_names+0x18 - 0x6BC94)] .text:0003F374 CMP R0, R6 .text:0003F378 BEQ loc_3F394 .text:0003F37C LDR R2, =_nl_C_name .text:0003F380 CMP R0, R2 .text:0003F384 BEQ loc_3F38C .text:0003F388 BL free .text:0003F38C .text:0003F38C loc_3F38C ; CODE XREF: setlocale+808j .text:0003F38C LDR R3, =_nl_current_names .text:0003F390 STR R6, [R3,#(_nl_current_names+0x18 - 0x6BC94)] .text:0003F394 .text:0003F394 loc_3F394 ; CODE XREF: setlocale+7FCj .text:0003F394 LDR R2, =_nl_msg_cat_cntr .text:0003F398 LDR R3, [R2] .text:0003F39C ADD R3, R3, #1 .text:0003F3A0 STR R3, [R2] .text:0003F3A4 .text:0003F3A4 loc_3F3A4 ; CODE XREF: setlocale+758j .text:0003F3A4 LDR R0, =0 .text:0003F3A8 CMP R0, #0 .text:0003F3AC BEQ loc_3F3C0 .text:0003F3B0 LDR R0, =__libc_setlocale_lock .text:0003F3B4 LDR R1, =0 .text:0003F3B8 MOV LR, PC .text:0003F3BC MOV PC, R1 .text:0003F3C0 .text:0003F3C0 loc_3F3C0 ; CODE XREF: setlocale+830j .text:0003F3C0 LDR R0, [R11,#var_94] .text:0003F3C4 BL free .text:0003F3C8 LDR R0, [R11,#var_9C] .text:0003F3CC .text:0003F3CC loc_3F3CC ; CODE XREF: setlocale+2Cj .text:0003F3CC ; setlocale+54j ... .text:0003F3CC B locret_3F3EC .text:0003F3CC ; --------------------------------------------------------------------------- .text:0003F3D0 off_3F3D0 DCD _nl_current ; DATA XREF: setlocale:loc_3F304r .text:0003F3D4 off_3F3D4 DCD _nl_category_postload ; DATA XREF: setlocale+7A4r .text:0003F3D8 off_3F3D8 DCD _nl_current_names ; DATA XREF: setlocale:loc_3F338r .text:0003F3D8 ; setlocale:loc_3F360r ... .text:0003F3DC off_3F3DC DCD _nl_C_name ; DATA XREF: setlocale+7D4r .text:0003F3DC ; setlocale+800r .text:0003F3E0 off_3F3E0 DCD _nl_msg_cat_cntr ; DATA XREF: setlocale:loc_3F394r .text:0003F3E4 off_3F3E4 DCD 0 ; DATA XREF: setlocale:loc_3F3A4r .text:0003F3E4 ; setlocale+838r .text:0003F3E8 off_3F3E8 DCD __libc_setlocale_lock ; DATA XREF: setlocale+834r .text:0003F3EC ; --------------------------------------------------------------------------- .text:0003F3EC .text:0003F3EC locret_3F3EC ; CODE XREF: setlocale:loc_3F3CCj .text:0003F3EC LDMDB R11, {R4-R11,SP,PC} .text:0003F3EC ; End of function setlocale .text:0003F3EC .text:0003F3F0 .text:0003F3F0 ; =============== S U B R O U T I N E ======================================= .text:0003F3F0 .text:0003F3F0 ; Attributes: bp-based frame .text:0003F3F0 .text:0003F3F0 free_mem_7 .text:0003F3F0 MOV R12, SP .text:0003F3F4 STMFD SP!, {R4-R12,LR,PC} .text:0003F3F8 SUB R11, R12, #4 .text:0003F3FC LDR R10, =_nl_C_name .text:0003F400 MOV R7, #0 .text:0003F404 LDR R8, =_nl_current_names .text:0003F408 MOV R4, R7 .text:0003F40C LDR R9, =_nl_current .text:0003F410 .text:0003F410 loc_3F410 ; CODE XREF: free_mem_7+90j .text:0003F410 CMP R7, #6 .text:0003F414 BEQ loc_3F474 .text:0003F418 LDR R2, [R9,R4] .text:0003F41C LDR R3, =_nl_C .text:0003F420 LDR R5, [R2] .text:0003F424 LDR R3, [R3,R4] .text:0003F428 MOV R6, R4 .text:0003F42C CMP R5, R3 .text:0003F430 BEQ loc_3F474 .text:0003F434 CMP R2, #0 .text:0003F438 BEQ loc_3F458 .text:0003F43C STR R3, [R2] .text:0003F440 LDR R3, =_nl_category_postload .text:0003F444 LDR R3, [R3,R4] .text:0003F448 CMP R3, #0 .text:0003F44C BEQ loc_3F458 .text:0003F450 MOV LR, PC .text:0003F454 MOV PC, R3 .text:0003F458 .text:0003F458 loc_3F458 ; CODE XREF: free_mem_7+48j .text:0003F458 ; free_mem_7+5Cj .text:0003F458 LDR R0, [R4,R8] .text:0003F45C CMP R0, R10 .text:0003F460 BEQ loc_3F46C .text:0003F464 BL free .text:0003F468 STR R10, [R8,R6] .text:0003F46C .text:0003F46C loc_3F46C ; CODE XREF: free_mem_7+70j .text:0003F46C MOV R0, R5 .text:0003F470 BL _nl_unload_locale .text:0003F474 .text:0003F474 loc_3F474 ; CODE XREF: free_mem_7+24j .text:0003F474 ; free_mem_7+40j .text:0003F474 ADD R4, R4, #4 .text:0003F478 ADD R7, R7, #1 .text:0003F47C CMP R7, #0xC .text:0003F480 BLE loc_3F410 .text:0003F484 LDR R0, [R8,#0x18] .text:0003F488 CMP R0, R10 .text:0003F48C LDMEQDB R11, {R4-R11,SP,PC} .text:0003F490 BL free .text:0003F494 STR R10, [R8,#0x18] .text:0003F498 LDMDB R11, {R4-R11,SP,PC} .text:0003F498 ; End of function free_mem_7 .text:0003F498 .text:0003F498 ; --------------------------------------------------------------------------- .text:0003F49C off_3F49C DCD _nl_C_name ; DATA XREF: free_mem_7+Cr .text:0003F4A0 off_3F4A0 DCD _nl_current_names ; DATA XREF: free_mem_7+14r .text:0003F4A4 off_3F4A4 DCD _nl_current ; DATA XREF: free_mem_7+1Cr .text:0003F4A8 off_3F4A8 DCD _nl_C ; DATA XREF: free_mem_7+2Cr .text:0003F4AC off_3F4AC DCD _nl_category_postload ; DATA XREF: free_mem_7+50r .text:0003F4B0 .text:0003F4B0 ; =============== S U B R O U T I N E ======================================= .text:0003F4B0 .text:0003F4B0 ; Attributes: bp-based frame .text:0003F4B0 .text:0003F4B0 upstr_0 ; CODE XREF: _nl_find_locale+4FCp .text:0003F4B0 ; _nl_find_locale+510p .text:0003F4B0 MOV R12, SP .text:0003F4B4 STMFD SP!, {R4,R11,R12,LR,PC} .text:0003F4B8 SUB R11, R12, #4 .text:0003F4BC MOV LR, R1 .text:0003F4C0 MOV R12, R0 .text:0003F4C4 LDR R4, =__ctype_toupper .text:0003F4C8 .text:0003F4C8 loc_3F4C8 ; CODE XREF: upstr_0+2Cj .text:0003F4C8 LDRB R3, [LR],#1 .text:0003F4CC LDR R2, [R4] .text:0003F4D0 LDR R1, [R2,R3,LSL#2] .text:0003F4D4 TST R1, #0xFF .text:0003F4D8 STRB R1, [R12],#1 .text:0003F4DC BNE loc_3F4C8 .text:0003F4E0 LDMDB R11, {R4,R11,SP,PC} .text:0003F4E0 ; End of function upstr_0 .text:0003F4E0 .text:0003F4E0 ; --------------------------------------------------------------------------- .text:0003F4E4 off_3F4E4 DCD __ctype_toupper ; DATA XREF: upstr_0+14r .text:0003F4E8 .text:0003F4E8 ; =============== S U B R O U T I N E ======================================= .text:0003F4E8 .text:0003F4E8 ; Attributes: bp-based frame .text:0003F4E8 .text:0003F4E8 EXPORT _nl_find_locale .text:0003F4E8 _nl_find_locale ; CODE XREF: setlocale+280p .text:0003F4E8 ; setlocale+578p .text:0003F4E8 .text:0003F4E8 var_78 = -0x78 .text:0003F4E8 var_74 = -0x74 .text:0003F4E8 var_70 = -0x70 .text:0003F4E8 var_6C = -0x6C .text:0003F4E8 var_68 = -0x68 .text:0003F4E8 var_64 = -0x64 .text:0003F4E8 var_60 = -0x60 .text:0003F4E8 var_5C = -0x5C .text:0003F4E8 var_58 = -0x58 .text:0003F4E8 var_54 = -0x54 .text:0003F4E8 var_50 = -0x50 .text:0003F4E8 var_4C = -0x4C .text:0003F4E8 var_48 = -0x48 .text:0003F4E8 var_44 = -0x44 .text:0003F4E8 var_40 = -0x40 .text:0003F4E8 var_3C = -0x3C .text:0003F4E8 var_38 = -0x38 .text:0003F4E8 var_34 = -0x34 .text:0003F4E8 var_30 = -0x30 .text:0003F4E8 var_2C = -0x2C .text:0003F4E8 .text:0003F4E8 MOV R12, SP .text:0003F4EC STMFD SP!, {R4-R12,LR,PC} .text:0003F4F0 MOV R5, R3 .text:0003F4F4 SUB SP, SP, #0x50 .text:0003F4F8 LDR R3, [R5] .text:0003F4FC SUB R11, R12, #4 .text:0003F500 LDRB R12, [R3] .text:0003F504 STR R0, [R11,#var_4C] .text:0003F508 MOV R10, R2 .text:0003F50C STR R1, [R11,#var_50] .text:0003F510 CMP R12, #0 .text:0003F514 BNE loc_3F56C .text:0003F518 LDR R0, =aLc_all_0 ; "LC_ALL" .text:0003F51C BL getenv .text:0003F520 CMP R0, #0 .text:0003F524 STR R0, [R5] .text:0003F528 BEQ loc_3F538 .text:0003F52C LDRB R3, [R0] .text:0003F530 CMP R3, #0 .text:0003F534 BNE loc_3F548 .text:0003F538 .text:0003F538 loc_3F538 ; CODE XREF: _nl_find_locale+40j .text:0003F538 LDR R3, =_nl_category_names .text:0003F53C LDR R0, [R3,R10,LSL#2] .text:0003F540 BL getenv .text:0003F544 STR R0, [R5] .text:0003F548 .text:0003F548 loc_3F548 ; CODE XREF: _nl_find_locale+4Cj .text:0003F548 LDR R3, [R5] .text:0003F54C CMP R3, #0 .text:0003F550 BEQ loc_3F560 .text:0003F554 LDRB R3, [R3] .text:0003F558 CMP R3, #0 .text:0003F55C BNE loc_3F56C .text:0003F560 .text:0003F560 loc_3F560 ; CODE XREF: _nl_find_locale+68j .text:0003F560 LDR R0, =aLang ; "LANG" .text:0003F564 BL getenv .text:0003F568 STR R0, [R5] .text:0003F56C .text:0003F56C loc_3F56C ; CODE XREF: _nl_find_locale+2Cj .text:0003F56C ; _nl_find_locale+74j .text:0003F56C LDR R0, [R5] .text:0003F570 CMP R0, #0 .text:0003F574 BEQ loc_3F5A8 .text:0003F578 LDRB R3, [R0] .text:0003F57C CMP R3, #0 .text:0003F580 BEQ loc_3F5A8 .text:0003F584 LDR R3, =__libc_enable_secure .text:0003F588 LDR R2, [R3] .text:0003F58C LDR R4, =_nl_C_name .text:0003F590 CMP R2, #0 .text:0003F594 BEQ loc_3F5B4 .text:0003F598 MOV R1, #0x2F .text:0003F59C BL strchr .text:0003F5A0 CMP R0, #0 .text:0003F5A4 BEQ loc_3F5B4 .text:0003F5A8 .text:0003F5A8 loc_3F5A8 ; CODE XREF: _nl_find_locale+8Cj .text:0003F5A8 ; _nl_find_locale+98j .text:0003F5A8 LDR R3, =_nl_C_name .text:0003F5AC MOV R4, R3 .text:0003F5B0 STR R3, [R5] .text:0003F5B4 .text:0003F5B4 loc_3F5B4 ; CODE XREF: _nl_find_locale+ACj .text:0003F5B4 ; _nl_find_locale+BCj .text:0003F5B4 LDR R0, [R5] .text:0003F5B8 MOV R1, R4 .text:0003F5BC BL strcmp .text:0003F5C0 CMP R0, #0 .text:0003F5C4 BEQ loc_3F5DC .text:0003F5C8 LDR R0, [R5] .text:0003F5CC LDR R1, =_nl_POSIX_name ; "POSIX" .text:0003F5D0 BL strcmp .text:0003F5D4 CMP R0, #0 .text:0003F5D8 BNE loc_3F5EC .text:0003F5DC .text:0003F5DC loc_3F5DC ; CODE XREF: _nl_find_locale+DCj .text:0003F5DC STR R4, [R5] .text:0003F5E0 LDR R3, =_nl_C .text:0003F5E4 LDR R0, [R3,R10,LSL#2] .text:0003F5E8 B loc_3FAC8 .text:0003F5EC ; --------------------------------------------------------------------------- .text:0003F5EC .text:0003F5EC loc_3F5EC ; CODE XREF: _nl_find_locale+F0j .text:0003F5EC LDR R0, [R5] .text:0003F5F0 BL _nl_expand_alias .text:0003F5F4 SUBS R4, R0, #0 .text:0003F5F8 LDREQ R4, [R5] .text:0003F5FC MOV R0, R4 .text:0003F600 BL strlen .text:0003F604 MOV R2, R0 .text:0003F608 ADD R3, R2, #4 .text:0003F60C BIC R3, R3, #3 .text:0003F610 RSB SP, R3, SP .text:0003F614 ADD R0, SP, #0x78+var_50 .text:0003F618 MOV R1, R4 .text:0003F61C ADD R2, R2, #1 .text:0003F620 BL memcpy .text:0003F624 SUB R3, R11, #-var_38 .text:0003F628 STR R3, [SP,#0x78+var_78] .text:0003F62C SUB R2, R11, #-var_3C .text:0003F630 STR R2, [SP,#0x78+var_74] .text:0003F634 SUB R3, R11, #-var_40 .text:0003F638 STR R3, [SP,#0x78+var_70] .text:0003F63C SUB R2, R11, #-var_44 .text:0003F640 STR R2, [SP,#0x78+var_6C] .text:0003F644 SUB R3, R11, #-var_48 .text:0003F648 STR R3, [SP,#0x78+var_68] .text:0003F64C SUB R1, R11, #-var_2C .text:0003F650 SUB R2, R11, #-var_30 .text:0003F654 SUB R3, R11, #-var_34 .text:0003F658 BL _nl_explode_name .text:0003F65C MOV R3, #0 .text:0003F660 STR R3, [SP,#0x78+var_54] .text:0003F664 LDR R2, [R11,#var_2C] .text:0003F668 STR R2, [SP,#0x78+var_78] .text:0003F66C LDR R3, [R11,#var_34] .text:0003F670 STR R3, [SP,#0x78+var_74] .text:0003F674 LDR R2, [R11,#var_38] .text:0003F678 STR R2, [SP,#0x78+var_70] .text:0003F67C LDR R3, [R11,#var_3C] .text:0003F680 STR R3, [SP,#0x78+var_6C] .text:0003F684 LDR R2, [R11,#var_30] .text:0003F688 STR R2, [SP,#0x78+var_68] .text:0003F68C LDR R3, [R11,#var_40] .text:0003F690 STR R3, [SP,#0x78+var_64] .text:0003F694 LDR R2, [R11,#var_44] .text:0003F698 STR R2, [SP,#0x78+var_60] .text:0003F69C LDR R3, [R11,#var_48] .text:0003F6A0 STR R3, [SP,#0x78+var_5C] .text:0003F6A4 LDR R2, =_nl_category_names .text:0003F6A8 MOV R4, R10,LSL#2 .text:0003F6AC LDR R6, [R2,R4] .text:0003F6B0 STR R6, [SP,#0x78+var_58] .text:0003F6B4 MOV R5, R0 .text:0003F6B8 LDR R0, =locale_file_list .text:0003F6BC ADD R8, R4, R0 .text:0003F6C0 LDR R1, [R11,#var_4C] .text:0003F6C4 MOV R0, R8 .text:0003F6C8 LDR R2, [R11,#var_50] .text:0003F6CC MOV R3, R5 .text:0003F6D0 BL _nl_make_l10nflist .text:0003F6D4 SUBS R7, R0, #0 .text:0003F6D8 MOV R9, R4 .text:0003F6DC BNE loc_3F748 .text:0003F6E0 STR R6, [SP,#0x78+var_58] .text:0003F6E4 MOV R3, #1 .text:0003F6E8 STR R3, [SP,#0x78+var_54] .text:0003F6EC LDR R2, [R11,#var_2C] .text:0003F6F0 STR R2, [SP,#0x78+var_78] .text:0003F6F4 LDR R3, [R11,#var_34] .text:0003F6F8 STR R3, [SP,#0x78+var_74] .text:0003F6FC LDR R2, [R11,#var_38] .text:0003F700 STR R2, [SP,#0x78+var_70] .text:0003F704 LDR R3, [R11,#var_3C] .text:0003F708 STR R3, [SP,#0x78+var_6C] .text:0003F70C LDR R2, [R11,#var_30] .text:0003F710 STR R2, [SP,#0x78+var_68] .text:0003F714 LDR R3, [R11,#var_40] .text:0003F718 STR R3, [SP,#0x78+var_64] .text:0003F71C LDR R2, [R11,#var_44] .text:0003F720 STR R2, [SP,#0x78+var_60] .text:0003F724 LDR R3, [R11,#var_48] .text:0003F728 STR R3, [SP,#0x78+var_5C] .text:0003F72C LDR R1, [R11,#var_4C] .text:0003F730 MOV R0, R8 .text:0003F734 LDR R2, [R11,#var_50] .text:0003F738 MOV R3, R5 .text:0003F73C BL _nl_make_l10nflist .text:0003F740 SUBS R7, R0, #0 .text:0003F744 BEQ loc_3FA14 .text:0003F748 .text:0003F748 loc_3F748 ; CODE XREF: _nl_find_locale+1F4j .text:0003F748 TST R5, #8 .text:0003F74C BEQ loc_3F758 .text:0003F750 LDR R0, [R11,#var_3C] .text:0003F754 BL free .text:0003F758 .text:0003F758 loc_3F758 ; CODE XREF: _nl_find_locale+264j .text:0003F758 LDR R3, [R7,#4] .text:0003F75C CMP R3, #0 .text:0003F760 BNE loc_3F770 .text:0003F764 MOV R0, R7 .text:0003F768 MOV R1, R10 .text:0003F76C BL _nl_load_locale .text:0003F770 .text:0003F770 loc_3F770 ; CODE XREF: _nl_find_locale+278j .text:0003F770 LDR R3, [R7,#8] .text:0003F774 CMP R3, #0 .text:0003F778 BNE loc_3F7D8 .text:0003F77C MOV R6, R3 .text:0003F780 ADD R4, R7, #0x10 .text:0003F784 B loc_3F78C .text:0003F788 ; --------------------------------------------------------------------------- .text:0003F788 .text:0003F788 loc_3F788 ; CODE XREF: _nl_find_locale+2D8j .text:0003F788 ADD R6, R6, #1 .text:0003F78C .text:0003F78C loc_3F78C ; CODE XREF: _nl_find_locale+29Cj .text:0003F78C MOV R3, R6,LSL#2 .text:0003F790 LDR R0, [R4,R3] .text:0003F794 MOV R5, R3 .text:0003F798 CMP R0, #0 .text:0003F79C BEQ loc_3F7C4 .text:0003F7A0 LDR R3, [R0,#4] .text:0003F7A4 CMP R3, #0 .text:0003F7A8 BNE loc_3F7B4 .text:0003F7AC MOV R1, R10 .text:0003F7B0 BL _nl_load_locale .text:0003F7B4 .text:0003F7B4 loc_3F7B4 ; CODE XREF: _nl_find_locale+2C0j .text:0003F7B4 LDR R3, [R4,R5] .text:0003F7B8 LDR R2, [R3,#8] .text:0003F7BC CMP R2, #0 .text:0003F7C0 BEQ loc_3F788 .text:0003F7C4 .text:0003F7C4 loc_3F7C4 ; CODE XREF: _nl_find_locale+2B4j .text:0003F7C4 LDR R3, [R4,R5] .text:0003F7C8 STR R3, [R7,#0x10] .text:0003F7CC LDR R7, [R4,R5] .text:0003F7D0 CMP R7, #0 .text:0003F7D4 BEQ loc_3FA14 .text:0003F7D8 .text:0003F7D8 loc_3F7D8 ; CODE XREF: _nl_find_locale+290j .text:0003F7D8 LDR R3, [R11,#var_38] .text:0003F7DC CMP R3, #0 .text:0003F7E0 BEQ loc_3FA1C .text:0003F7E4 LDR R3, =codeset_idx.96 .text:0003F7E8 LDR R2, [R7,#8] .text:0003F7EC LDR R1, [R3,R9] .text:0003F7F0 ADD R2, R2, #0x20 .text:0003F7F4 LDR R4, [R2,R1,LSL#2] .text:0003F7F8 CMP R4, #0 .text:0003F7FC BNE loc_3F814 .text:0003F800 LDR R0, =aLocale_codeset ; "locale_codeset != ((void *)0)" .text:0003F804 LDR R1, =aFindlocale_c ; "findlocale.c" .text:0003F808 LDR R3, =a_nl_find_local ; "_nl_find_locale" .text:0003F80C MOV R2, #0xC9 .text:0003F810 BL __assert_fail .text:0003F814 ; --------------------------------------------------------------------------- .text:0003F814 .text:0003F814 loc_3F814 ; CODE XREF: _nl_find_locale+314j .text:0003F814 MOV R0, R4 .text:0003F818 BL strlen .text:0003F81C ADD R0, R0, #6 .text:0003F820 BIC R0, R0, #3 .text:0003F824 RSB SP, R0, SP .text:0003F828 ADD R6, SP, #0x78+var_50 .text:0003F82C MOV R12, R6 .text:0003F830 MOV R0, R4 .text:0003F834 LDRB R3, [R0] .text:0003F838 MOV R1, #0 .text:0003F83C CMP R3, R1 .text:0003F840 BEQ loc_3F8E8 .text:0003F844 LDR R3, =__ctype_b .text:0003F848 LDR R4, =__ctype_toupper .text:0003F84C LDR LR, [R3] .text:0003F850 .text:0003F850 loc_3F850 ; CODE XREF: _nl_find_locale+3FCj .text:0003F850 LDRB R2, [R0] .text:0003F854 LDRB R3, [LR,R2,LSL#1] .text:0003F858 TST R3, #8 .text:0003F85C BNE loc_3F87C .text:0003F860 AND R3, R2, #0xFF .text:0003F864 CMP R3, #0x5F .text:0003F868 BEQ loc_3F87C .text:0003F86C CMP R3, #0x2D .text:0003F870 BEQ loc_3F87C .text:0003F874 CMP R3, #0x2E .text:0003F878 BNE loc_3F8C4 .text:0003F87C .text:0003F87C loc_3F87C ; CODE XREF: _nl_find_locale+374j .text:0003F87C ; _nl_find_locale+380j ... .text:0003F87C LDR R3, [R4] .text:0003F880 LDR R2, [R3,R2,LSL#2] .text:0003F884 STRB R2, [R12],#1 .text:0003F888 B loc_3F8DC .text:0003F888 ; --------------------------------------------------------------------------- .text:0003F88C off_3F88C DCD aLc_all_0 ; DATA XREF: _nl_find_locale+30r .text:0003F88C ; "LC_ALL" .text:0003F890 off_3F890 DCD _nl_category_names ; DATA XREF: _nl_find_locale:loc_3F538r .text:0003F890 ; _nl_find_locale+1BCr .text:0003F894 off_3F894 DCD aLang ; DATA XREF: _nl_find_locale:loc_3F560r .text:0003F894 ; "LANG" .text:0003F898 off_3F898 DCD __libc_enable_secure ; DATA XREF: _nl_find_locale+9Cr .text:0003F89C off_3F89C DCD _nl_C_name ; DATA XREF: _nl_find_locale+A4r .text:0003F89C ; _nl_find_locale:loc_3F5A8r .text:0003F8A0 off_3F8A0 DCD _nl_POSIX_name ; DATA XREF: _nl_find_locale+E4r .text:0003F8A0 ; "POSIX" .text:0003F8A4 off_3F8A4 DCD _nl_C ; DATA XREF: _nl_find_locale+F8r .text:0003F8A8 off_3F8A8 DCD locale_file_list ; DATA XREF: _nl_find_locale+1D0r .text:0003F8AC off_3F8AC DCD codeset_idx.96 ; DATA XREF: _nl_find_locale+2FCr .text:0003F8B0 off_3F8B0 DCD aLocale_codeset ; DATA XREF: _nl_find_locale+318r .text:0003F8B0 ; "locale_codeset != ((void *)0)" .text:0003F8B4 off_3F8B4 DCD aFindlocale_c ; DATA XREF: _nl_find_locale+31Cr .text:0003F8B4 ; "findlocale.c" .text:0003F8B8 off_3F8B8 DCD a_nl_find_local ; DATA XREF: _nl_find_locale+320r .text:0003F8B8 ; "_nl_find_locale" .text:0003F8BC off_3F8BC DCD __ctype_b ; DATA XREF: _nl_find_locale+35Cr .text:0003F8C0 off_3F8C0 DCD __ctype_toupper ; DATA XREF: _nl_find_locale+360r .text:0003F8C4 ; --------------------------------------------------------------------------- .text:0003F8C4 .text:0003F8C4 loc_3F8C4 ; CODE XREF: _nl_find_locale+390j .text:0003F8C4 CMP R3, #0x2F .text:0003F8C8 BNE loc_3F8DC .text:0003F8CC ADD R1, R1, #1 .text:0003F8D0 CMP R1, #3 .text:0003F8D4 BEQ loc_3F8E8 .text:0003F8D8 STRB R3, [R12],#1 .text:0003F8DC .text:0003F8DC loc_3F8DC ; CODE XREF: _nl_find_locale+3A0j .text:0003F8DC ; _nl_find_locale+3E0j .text:0003F8DC LDRB R3, [R0,#1]! .text:0003F8E0 CMP R3, #0 .text:0003F8E4 BNE loc_3F850 .text:0003F8E8 .text:0003F8E8 loc_3F8E8 ; CODE XREF: _nl_find_locale+358j .text:0003F8E8 ; _nl_find_locale+3ECj .text:0003F8E8 MOV R3, R1 .text:0003F8EC ADD R1, R1, #1 .text:0003F8F0 CMP R3, #1 .text:0003F8F4 BGT loc_3F910 .text:0003F8F8 MOV R2, #0x2F .text:0003F8FC .text:0003F8FC loc_3F8FC ; CODE XREF: _nl_find_locale+424j .text:0003F8FC MOV R3, R1 .text:0003F900 ADD R1, R1, #1 .text:0003F904 CMP R3, #1 .text:0003F908 STRB R2, [R12],#1 .text:0003F90C BLE loc_3F8FC .text:0003F910 .text:0003F910 loc_3F910 ; CODE XREF: _nl_find_locale+40Cj .text:0003F910 MOV R4, #0 .text:0003F914 STRB R4, [R12] .text:0003F918 LDR R0, [R11,#var_38] .text:0003F91C BL strlen .text:0003F920 ADD R0, R0, #6 .text:0003F924 BIC R0, R0, #3 .text:0003F928 RSB SP, R0, SP .text:0003F92C LDR R12, [R11,#var_38] .text:0003F930 ADD R0, SP, #0x78+var_50 .text:0003F934 LDRB R3, [R12] .text:0003F938 MOV R1, R0 .text:0003F93C CMP R3, R4 .text:0003F940 BEQ loc_3F9B0 .text:0003F944 LDR R3, =__ctype_b .text:0003F948 LDR R5, =__ctype_toupper .text:0003F94C LDR LR, [R3] .text:0003F950 .text:0003F950 loc_3F950 ; CODE XREF: _nl_find_locale+4C4j .text:0003F950 LDRB R2, [R12] .text:0003F954 LDRB R3, [LR,R2,LSL#1] .text:0003F958 TST R3, #8 .text:0003F95C BNE loc_3F97C .text:0003F960 AND R3, R2, #0xFF .text:0003F964 CMP R3, #0x5F .text:0003F968 BEQ loc_3F97C .text:0003F96C CMP R3, #0x2D .text:0003F970 BEQ loc_3F97C .text:0003F974 CMP R3, #0x2E .text:0003F978 BNE loc_3F98C .text:0003F97C .text:0003F97C loc_3F97C ; CODE XREF: _nl_find_locale+474j .text:0003F97C ; _nl_find_locale+480j ... .text:0003F97C LDR R3, [R5] .text:0003F980 LDR R2, [R3,R2,LSL#2] .text:0003F984 STRB R2, [R1],#1 .text:0003F988 B loc_3F9A4 .text:0003F98C ; --------------------------------------------------------------------------- .text:0003F98C .text:0003F98C loc_3F98C ; CODE XREF: _nl_find_locale+490j .text:0003F98C CMP R3, #0x2F .text:0003F990 BNE loc_3F9A4 .text:0003F994 ADD R4, R4, #1 .text:0003F998 CMP R4, #3 .text:0003F99C BEQ loc_3F9B0 .text:0003F9A0 STRB R3, [R1],#1 .text:0003F9A4 .text:0003F9A4 loc_3F9A4 ; CODE XREF: _nl_find_locale+4A0j .text:0003F9A4 ; _nl_find_locale+4A8j .text:0003F9A4 LDRB R3, [R12,#1]! .text:0003F9A8 CMP R3, #0 .text:0003F9AC BNE loc_3F950 .text:0003F9B0 .text:0003F9B0 loc_3F9B0 ; CODE XREF: _nl_find_locale+458j .text:0003F9B0 ; _nl_find_locale+4B4j .text:0003F9B0 MOV R3, R4 .text:0003F9B4 ADD R4, R4, #1 .text:0003F9B8 CMP R3, #1 .text:0003F9BC BGT loc_3F9D8 .text:0003F9C0 MOV R2, #0x2F .text:0003F9C4 .text:0003F9C4 loc_3F9C4 ; CODE XREF: _nl_find_locale+4ECj .text:0003F9C4 MOV R3, R4 .text:0003F9C8 ADD R4, R4, #1 .text:0003F9CC CMP R3, #1 .text:0003F9D0 STRB R2, [R1],#1 .text:0003F9D4 BLE loc_3F9C4 .text:0003F9D8 .text:0003F9D8 loc_3F9D8 ; CODE XREF: _nl_find_locale+4D4j .text:0003F9D8 MOV R5, #0 .text:0003F9DC STRB R5, [R1] .text:0003F9E0 MOV R1, R0 .text:0003F9E4 BL upstr_0 .text:0003F9E8 BL __gconv_lookup_alias .text:0003F9EC MOV R4, R0 .text:0003F9F0 MOV R0, R6 .text:0003F9F4 MOV R1, R0 .text:0003F9F8 BL upstr_0 .text:0003F9FC BL __gconv_lookup_alias .text:0003FA00 MOV R1, R0 .text:0003FA04 MOV R0, R4 .text:0003FA08 BL strcmp .text:0003FA0C CMP R0, R5 .text:0003FA10 BEQ loc_3FA1C .text:0003FA14 .text:0003FA14 loc_3FA14 ; CODE XREF: _nl_find_locale+25Cj .text:0003FA14 ; _nl_find_locale+2ECj .text:0003FA14 MOV R0, #0 .text:0003FA18 B loc_3FAC8 .text:0003FA1C ; --------------------------------------------------------------------------- .text:0003FA1C .text:0003FA1C loc_3FA1C ; CODE XREF: _nl_find_locale+2F8j .text:0003FA1C ; _nl_find_locale+528j .text:0003FA1C LDR R3, [R7,#8] .text:0003FA20 LDR R2, [R3] .text:0003FA24 CMP R2, #0 .text:0003FA28 BNE loc_3FA6C .text:0003FA2C LDR R0, [R7] .text:0003FA30 MOV R1, #0x2F .text:0003FA34 BL strrchr .text:0003FA38 MOV R1, R0 .text:0003FA3C SUB R0, R1, #1 .text:0003FA40 B loc_3FA50 .text:0003FA40 ; --------------------------------------------------------------------------- .text:0003FA44 off_3FA44 DCD __ctype_b ; DATA XREF: _nl_find_locale+45Cr .text:0003FA48 off_3FA48 DCD __ctype_toupper ; DATA XREF: _nl_find_locale+460r .text:0003FA4C ; --------------------------------------------------------------------------- .text:0003FA4C .text:0003FA4C loc_3FA4C ; CODE XREF: _nl_find_locale+570j .text:0003FA4C SUB R0, R0, #1 .text:0003FA50 .text:0003FA50 loc_3FA50 ; CODE XREF: _nl_find_locale+558j .text:0003FA50 LDRB R3, [R0,#-1] .text:0003FA54 CMP R3, #0x2F .text:0003FA58 BNE loc_3FA4C .text:0003FA5C RSB R1, R0, R1 .text:0003FA60 LDR R4, [R7,#8] .text:0003FA64 BL strndup .text:0003FA68 STR R0, [R4] .text:0003FA6C .text:0003FA6C loc_3FA6C ; CODE XREF: _nl_find_locale+540j .text:0003FA6C LDR R0, [R11,#var_30] .text:0003FA70 CMP R0, #0 .text:0003FA74 BEQ loc_3FA88 .text:0003FA78 LDR R1, =aTranslit_2 ; "TRANSLIT" .text:0003FA7C BL strcasecmp .text:0003FA80 CMP R0, #0 .text:0003FA84 BEQ loc_3FAA4 .text:0003FA88 .text:0003FA88 loc_3FA88 ; CODE XREF: _nl_find_locale+58Cj .text:0003FA88 LDR R0, [R11,#var_40] .text:0003FA8C CMP R0, #0 .text:0003FA90 BEQ loc_3FAB0 .text:0003FA94 LDR R1, =aTranslit_2 ; "TRANSLIT" .text:0003FA98 BL strcasecmp .text:0003FA9C CMP R0, #0 .text:0003FAA0 BNE loc_3FAB0 .text:0003FAA4 .text:0003FAA4 loc_3FAA4 ; CODE XREF: _nl_find_locale+59Cj .text:0003FAA4 LDR R2, [R7,#8] .text:0003FAA8 MOV R3, #1 .text:0003FAAC STR R3, [R2,#0x14] .text:0003FAB0 .text:0003FAB0 loc_3FAB0 ; CODE XREF: _nl_find_locale+5A8j .text:0003FAB0 ; _nl_find_locale+5B8j .text:0003FAB0 LDR R2, [R7,#8] .text:0003FAB4 LDR R3, [R2,#0x10] .text:0003FAB8 CMN R3, #3 .text:0003FABC ADDLS R3, R3, #1 .text:0003FAC0 STRLS R3, [R2,#0x10] .text:0003FAC4 LDR R0, [R7,#8] .text:0003FAC8 .text:0003FAC8 loc_3FAC8 ; CODE XREF: _nl_find_locale+100j .text:0003FAC8 ; _nl_find_locale+530j .text:0003FAC8 B locret_3FAD0 .text:0003FAC8 ; --------------------------------------------------------------------------- .text:0003FACC off_3FACC DCD aTranslit_2 ; DATA XREF: _nl_find_locale+590r .text:0003FACC ; _nl_find_locale+5ACr .text:0003FACC ; "TRANSLIT" .text:0003FAD0 ; --------------------------------------------------------------------------- .text:0003FAD0 .text:0003FAD0 locret_3FAD0 ; CODE XREF: _nl_find_locale:loc_3FAC8j .text:0003FAD0 LDMDB R11, {R4-R11,SP,PC} .text:0003FAD0 ; End of function _nl_find_locale .text:0003FAD0 .text:0003FAD4 .text:0003FAD4 ; =============== S U B R O U T I N E ======================================= .text:0003FAD4 .text:0003FAD4 ; Attributes: bp-based frame .text:0003FAD4 .text:0003FAD4 EXPORT _nl_remove_locale .text:0003FAD4 _nl_remove_locale .text:0003FAD4 MOV R12, SP .text:0003FAD8 STMFD SP!, {R4,R11,R12,LR,PC} .text:0003FADC MOV R4, R1 .text:0003FAE0 LDR R3, [R4,#0x10] .text:0003FAE4 SUB R11, R12, #4 .text:0003FAE8 SUB R3, R3, #1 .text:0003FAEC CMP R3, #0 .text:0003FAF0 STR R3, [R4,#0x10] .text:0003FAF4 LDMNEDB R11, {R4,R11,SP,PC} .text:0003FAF8 LDR R3, =locale_file_list .text:0003FAFC LDR R0, [R3,R0,LSL#2] .text:0003FB00 LDR R2, [R0,#8] .text:0003FB04 CMP R2, R4 .text:0003FB08 BEQ loc_3FB1C .text:0003FB0C .text:0003FB0C loc_3FB0C ; CODE XREF: _nl_remove_locale+44j .text:0003FB0C LDR R0, [R0,#0xC] .text:0003FB10 LDR R3, [R0,#8] .text:0003FB14 CMP R3, R4 .text:0003FB18 BNE loc_3FB0C .text:0003FB1C .text:0003FB1C loc_3FB1C ; CODE XREF: _nl_remove_locale+34j .text:0003FB1C MOV R3, #0 .text:0003FB20 STR R3, [R0,#4] .text:0003FB24 STR R3, [R0,#8] .text:0003FB28 LDR R0, [R4] .text:0003FB2C BL free .text:0003FB30 LDR R3, [R4,#0xC] .text:0003FB34 CMP R3, #0 .text:0003FB38 BEQ loc_3FB58 .text:0003FB3C LDMIB R4, {R0,R1} .text:0003FB40 BL munmap .text:0003FB44 CMP R0, #0 .text:0003FB48 BEQ loc_3FB60 .text:0003FB4C MOV R3, 0xFFFFFFFF .text:0003FB50 STR R3, [R4,#0x10] .text:0003FB54 LDMDB R11, {R4,R11,SP,PC} .text:0003FB58 ; --------------------------------------------------------------------------- .text:0003FB58 .text:0003FB58 loc_3FB58 ; CODE XREF: _nl_remove_locale+64j .text:0003FB58 LDR R0, [R4,#4] .text:0003FB5C BL free .text:0003FB60 .text:0003FB60 loc_3FB60 ; CODE XREF: _nl_remove_locale+74j .text:0003FB60 MOV R0, R4 .text:0003FB64 BL free .text:0003FB68 LDMDB R11, {R4,R11,SP,PC} .text:0003FB68 ; End of function _nl_remove_locale .text:0003FB68 .text:0003FB68 ; --------------------------------------------------------------------------- .text:0003FB6C off_3FB6C DCD locale_file_list ; DATA XREF: _nl_remove_locale+24r .text:0003FB70 .text:0003FB70 ; =============== S U B R O U T I N E ======================================= .text:0003FB70 .text:0003FB70 ; Attributes: bp-based frame .text:0003FB70 .text:0003FB70 free_mem_8 .text:0003FB70 MOV R12, SP .text:0003FB74 STMFD SP!, {R4-R8,R10-R12,LR,PC} .text:0003FB78 SUB R11, R12, #4 .text:0003FB7C MOV R3, #0 .text:0003FB80 LDR R10, =locale_file_list .text:0003FB84 .text:0003FB84 loc_3FB84 ; CODE XREF: free_mem_8+7Cj .text:0003FB84 CMP R3, #6 .text:0003FB88 ADD R7, R3, #1 .text:0003FB8C BEQ loc_3FBE4 .text:0003FB90 MOV R3, R3,LSL#2 .text:0003FB94 LDR R4, [R10,R3] .text:0003FB98 MOV R6, R3 .text:0003FB9C CMP R4, #0 .text:0003FBA0 BEQ loc_3FBE4 .text:0003FBA4 LDR R8, =_nl_C .text:0003FBA8 .text:0003FBA8 loc_3FBA8 ; CODE XREF: free_mem_8+70j .text:0003FBA8 LDR R0, [R4,#8] .text:0003FBAC MOV R5, R4 .text:0003FBB0 CMP R0, #0 .text:0003FBB4 BEQ loc_3FBC8 .text:0003FBB8 LDR R3, [R8,R6] .text:0003FBBC CMP R0, R3 .text:0003FBC0 BEQ loc_3FBC8 .text:0003FBC4 BL _nl_unload_locale .text:0003FBC8 .text:0003FBC8 loc_3FBC8 ; CODE XREF: free_mem_8+44j .text:0003FBC8 ; free_mem_8+50j .text:0003FBC8 LDR R0, [R5] .text:0003FBCC LDR R4, [R4,#0xC] .text:0003FBD0 BL free .text:0003FBD4 MOV R0, R5 .text:0003FBD8 BL free .text:0003FBDC CMP R4, #0 .text:0003FBE0 BNE loc_3FBA8 .text:0003FBE4 .text:0003FBE4 loc_3FBE4 ; CODE XREF: free_mem_8+1Cj .text:0003FBE4 ; free_mem_8+30j .text:0003FBE4 MOV R3, R7 .text:0003FBE8 CMP R3, #0xC .text:0003FBEC BLE loc_3FB84 .text:0003FBF0 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0003FBF0 ; End of function free_mem_8 .text:0003FBF0 .text:0003FBF0 ; --------------------------------------------------------------------------- .text:0003FBF4 off_3FBF4 DCD locale_file_list ; DATA XREF: free_mem_8+10r .text:0003FBF8 off_3FBF8 DCD _nl_C ; DATA XREF: free_mem_8+34r .text:0003FBFC .text:0003FBFC ; =============== S U B R O U T I N E ======================================= .text:0003FBFC .text:0003FBFC ; Attributes: bp-based frame .text:0003FBFC .text:0003FBFC EXPORT _nl_load_locale .text:0003FBFC _nl_load_locale ; CODE XREF: _nl_find_locale+284p .text:0003FBFC ; _nl_find_locale+2C8p .text:0003FBFC .text:0003FBFC var_94 = -0x94 .text:0003FBFC var_90 = -0x90 .text:0003FBFC var_8C = -0x8C .text:0003FBFC var_88 = -0x88 .text:0003FBFC var_78 = -0x78 .text:0003FBFC var_5C = -0x5C .text:0003FBFC var_28 = -0x28 .text:0003FBFC .text:0003FBFC MOV R12, SP .text:0003FC00 STMFD SP!, {R4-R12,LR,PC} .text:0003FC04 SUB R11, R12, #4 .text:0003FC08 MOV R2, #1 .text:0003FC0C SUB SP, SP, #0x74 .text:0003FC10 STR R2, [R11,#var_94] .text:0003FC14 MOV R9, R0 .text:0003FC18 STR R2, [R9,#4] .text:0003FC1C MOV R10, #0 .text:0003FC20 STR R10, [R9,#8] .text:0003FC24 LDR R0, [R9] .text:0003FC28 STR R1, [R11,#var_8C] .text:0003FC2C MOV R1, R10 .text:0003FC30 BL open .text:0003FC34 SUBS R8, R0, #0 .text:0003FC38 BLT locret_3FF4C .text:0003FC3C MOV R0, #3 .text:0003FC40 MOV R1, R8 .text:0003FC44 SUB R7, R11, #-var_88 .text:0003FC48 MOV R2, R7 .text:0003FC4C BL __fxstat64 .text:0003FC50 CMP R0, R10 .text:0003FC54 BLT loc_3FE10 .text:0003FC58 LDR R3, [R11,#var_78] .text:0003FC5C AND R3, R3, #0xF000 .text:0003FC60 CMP R3, #0x4000 .text:0003FC64 BNE loc_3FCF4 .text:0003FC68 MOV R0, R8 .text:0003FC6C BL close .text:0003FC70 LDR R0, [R9] .text:0003FC74 BL strlen .text:0003FC78 LDR R1, [R11,#var_8C] .text:0003FC7C LDR R3, =_nl_category_name_sizes .text:0003FC80 MOV R5, R1,LSL#2 .text:0003FC84 LDR R6, [R3,R5] .text:0003FC88 MOV R2, R0 .text:0003FC8C LDR R1, [R9] .text:0003FC90 ADD R0, R6, R0 .text:0003FC94 ADD R0, R0, #9 .text:0003FC98 BIC R0, R0, #3 .text:0003FC9C RSB SP, R0, SP .text:0003FCA0 ADD R4, SP, #0x9C+var_94 .text:0003FCA4 MOV R0, R4 .text:0003FCA8 BL mempcpy .text:0003FCAC LDR R1, =aSys_ ; "/SYS_" .text:0003FCB0 MOV R2, #5 .text:0003FCB4 BL mempcpy .text:0003FCB8 LDR R3, =_nl_category_names .text:0003FCBC LDR R1, [R3,R5] .text:0003FCC0 ADD R2, R6, #1 .text:0003FCC4 BL mempcpy .text:0003FCC8 MOV R0, R4 .text:0003FCCC MOV R1, R10 .text:0003FCD0 BL open .text:0003FCD4 SUBS R8, R0, #0 .text:0003FCD8 BLT locret_3FF4C .text:0003FCDC MOV R0, #3 .text:0003FCE0 MOV R1, R8 .text:0003FCE4 MOV R2, R7 .text:0003FCE8 BL __fxstat64 .text:0003FCEC CMP R0, R10 .text:0003FCF0 BLT loc_3FE10 .text:0003FCF4 .text:0003FCF4 loc_3FCF4 ; CODE XREF: _nl_load_locale+68j .text:0003FCF4 BL __errno_location .text:0003FCF8 LDR R0, [R0] .text:0003FCFC STR R0, [R11,#var_90] .text:0003FD00 STMEA SP, {R8,R10} .text:0003FD04 MOV R12, 0xFFFFFFCC .text:0003FD08 SUB R3, R11, #-var_28 .text:0003FD0C LDR R2, [R11,#var_94] .text:0003FD10 MOV R0, R10 .text:0003FD14 LDR R1, [R3,R12] .text:0003FD18 MOV R3, #2 .text:0003FD1C ADD R12, R12, R11 .text:0003FD20 SUB R4, R12, #0x28 .text:0003FD24 BL mmap .text:0003FD28 MOV R7, R0 .text:0003FD2C CMN R7, #1 .text:0003FD30 BEQ loc_3FD60 .text:0003FD34 LDR R3, [R4,#4] .text:0003FD38 CMP R3, #0 .text:0003FD3C BGT loc_3FDE8 .text:0003FD40 BNE loc_3FE10 .text:0003FD44 LDR R3, [R11,#var_5C] .text:0003FD48 CMP R3, #7 .text:0003FD4C BHI loc_3FDE8 .text:0003FD50 B loc_3FE10 .text:0003FD54 ; --------------------------------------------------------------------------- .text:0003FD54 .text:0003FD54 loc_3FD54 ; CODE XREF: _nl_load_locale+2C8j .text:0003FD54 MOV R0, R4 .text:0003FD58 BL free .text:0003FD5C B loc_3FE50 .text:0003FD60 ; --------------------------------------------------------------------------- .text:0003FD60 .text:0003FD60 loc_3FD60 ; CODE XREF: _nl_load_locale+134j .text:0003FD60 BL __errno_location .text:0003FD64 LDR R3, [R0] .text:0003FD68 CMP R3, #0x26 .text:0003FD6C BNE loc_3FE10 .text:0003FD70 STR R10, [R11,#var_94] .text:0003FD74 LDR R0, [R11,#var_5C] .text:0003FD78 BL malloc .text:0003FD7C SUBS R7, R0, #0 .text:0003FD80 BEQ loc_3FE10 .text:0003FD84 LDR R5, [R11,#var_5C] .text:0003FD88 MOV R6, R7 .text:0003FD8C CMP R5, #0 .text:0003FD90 BLE loc_3FDDC .text:0003FD94 MOV R10, #0x16 .text:0003FD98 .text:0003FD98 loc_3FD98 ; CODE XREF: _nl_load_locale+1DCj .text:0003FD98 MOV R0, R8 .text:0003FD9C MOV R1, R6 .text:0003FDA0 MOV R2, R5 .text:0003FDA4 BL read .text:0003FDA8 SUBS R4, R0, #0 .text:0003FDAC BGT loc_3FDCC .text:0003FDB0 MOV R0, R7 .text:0003FDB4 BL free .text:0003FDB8 CMP R4, #0 .text:0003FDBC BNE loc_3FE10 .text:0003FDC0 BL __errno_location .text:0003FDC4 STR R10, [R0] .text:0003FDC8 B loc_3FE10 .text:0003FDCC ; --------------------------------------------------------------------------- .text:0003FDCC .text:0003FDCC loc_3FDCC ; CODE XREF: _nl_load_locale+1B0j .text:0003FDCC ADD R6, R6, R4 .text:0003FDD0 RSB R5, R4, R5 .text:0003FDD4 CMP R5, #0 .text:0003FDD8 BGT loc_3FD98 .text:0003FDDC .text:0003FDDC loc_3FDDC ; CODE XREF: _nl_load_locale+194j .text:0003FDDC BL __errno_location .text:0003FDE0 LDR R1, [R11,#var_90] .text:0003FDE4 STR R1, [R0] .text:0003FDE8 .text:0003FDE8 loc_3FDE8 ; CODE XREF: _nl_load_locale+140j .text:0003FDE8 ; _nl_load_locale+150j .text:0003FDE8 MOV R3, #0x820 .text:0003FDEC LDR R1, [R11,#var_8C] .text:0003FDF0 ADD R3, R3, #0x20000008 .text:0003FDF4 LDR R2, [R7] .text:0003FDF8 EOR R3, R1, R3 .text:0003FDFC CMP R2, R3 .text:0003FE00 BEQ loc_3FE1C .text:0003FE04 .text:0003FE04 loc_3FE04 ; CODE XREF: _nl_load_locale+260j .text:0003FE04 ; _nl_load_locale+270j .text:0003FE04 LDR R1, [R11,#var_5C] .text:0003FE08 MOV R0, R7 .text:0003FE0C BL munmap .text:0003FE10 .text:0003FE10 loc_3FE10 ; CODE XREF: _nl_load_locale+58j .text:0003FE10 ; _nl_load_locale+F4j ... .text:0003FE10 MOV R0, R8 .text:0003FE14 BL close .text:0003FE18 B locret_3FF4C .text:0003FE1C ; --------------------------------------------------------------------------- .text:0003FE1C .text:0003FE1C loc_3FE1C ; CODE XREF: _nl_load_locale+204j .text:0003FE1C LDR R1, =_nl_category_num_items .text:0003FE20 LDR R3, [R11,#var_8C] .text:0003FE24 LDR R0, [R7,#4] .text:0003FE28 MOV R2, R3,LSL#2 .text:0003FE2C LDR R3, [R1,R2] .text:0003FE30 MOV R5, R2 .text:0003FE34 CMP R0, R3 .text:0003FE38 BCC loc_3FE50 .text:0003FE3C MOV R0, R0,LSL#2 .text:0003FE40 LDR R2, [R11,#var_5C] .text:0003FE44 ADD R3, R0, #8 .text:0003FE48 CMP R3, R2 .text:0003FE4C BCC loc_3FE60 .text:0003FE50 .text:0003FE50 loc_3FE50 ; CODE XREF: _nl_load_locale+160j .text:0003FE50 ; _nl_load_locale+23Cj .text:0003FE50 BL __errno_location .text:0003FE54 MOV R3, #0x16 .text:0003FE58 STR R3, [R0] .text:0003FE5C B loc_3FE04 .text:0003FE60 ; --------------------------------------------------------------------------- .text:0003FE60 .text:0003FE60 loc_3FE60 ; CODE XREF: _nl_load_locale+250j .text:0003FE60 ADD R0, R0, #0x20 .text:0003FE64 BL malloc .text:0003FE68 SUBS R4, R0, #0 .text:0003FE6C BEQ loc_3FE04 .text:0003FE70 MOV R3, #0 .text:0003FE74 STMIA R4, {R3,R7} .text:0003FE78 LDR R1, [R11,#var_5C] .text:0003FE7C LDR R2, [R11,#var_94] .text:0003FE80 STR R3, [R4,#0x10] .text:0003FE84 STR R3, [R4,#0x14] .text:0003FE88 STR R3, [R4,#0x18] .text:0003FE8C STR R2, [R4,#0xC] .text:0003FE90 STR R1, [R4,#8] .text:0003FE94 LDR R2, [R7,#4] .text:0003FE98 MOV R12, R3 .text:0003FE9C CMP R12, R2 .text:0003FEA0 STR R2, [R4,#0x1C] .text:0003FEA4 BCS loc_3FF40 .text:0003FEA8 ADD LR, R4, #0x20 .text:0003FEAC LDR R6, =_nl_value_types .text:0003FEB0 .text:0003FEB0 loc_3FEB0 ; CODE XREF: _nl_load_locale+340j .text:0003FEB0 MOV R0, R12,LSL#2 .text:0003FEB4 ADD R3, R7, #8 .text:0003FEB8 LDR R1, [R3,R0] .text:0003FEBC LDR R2, [R4,#8] .text:0003FEC0 CMP R1, R2 .text:0003FEC4 BGT loc_3FD54 .text:0003FEC8 LDR R3, [R6,R5] .text:0003FECC LDR R2, [R3,R12,LSL#2] .text:0003FED0 CMP R2, #5 .text:0003FED4 BNE loc_3FF24 .text:0003FED8 TST R1, #3 .text:0003FEDC BEQ loc_3FEF4 .text:0003FEE0 LDR R0, =aIdx__alignof__ ; "idx % __alignof__ (u_int32_t) == 0" .text:0003FEE4 LDR R1, =aLoadlocale_c ; "loadlocale.c" .text:0003FEE8 LDR R3, =a_nl_load_local ; "_nl_load_locale" .text:0003FEEC MOV R2, #0xDD .text:0003FEF0 BL __assert_fail .text:0003FEF4 ; --------------------------------------------------------------------------- .text:0003FEF4 .text:0003FEF4 loc_3FEF4 ; CODE XREF: _nl_load_locale+2E0j .text:0003FEF4 LDR R3, [R4,#4] .text:0003FEF8 LDR R2, [R3,R1] .text:0003FEFC STR R2, [LR,R0] .text:0003FF00 B loc_3FF30 .text:0003FF00 ; --------------------------------------------------------------------------- .text:0003FF04 off_3FF04 DCD _nl_category_name_sizes ; DATA XREF: _nl_load_locale+80r .text:0003FF08 off_3FF08 DCD aSys_ ; DATA XREF: _nl_load_locale+B0r .text:0003FF08 ; "/SYS_" .text:0003FF0C off_3FF0C DCD _nl_category_names ; DATA XREF: _nl_load_locale+BCr .text:0003FF10 off_3FF10 DCD _nl_category_num_items .text:0003FF10 ; DATA XREF: _nl_load_locale:loc_3FE1Cr .text:0003FF14 off_3FF14 DCD _nl_value_types ; DATA XREF: _nl_load_locale+2B0r .text:0003FF18 off_3FF18 DCD aIdx__alignof__ ; DATA XREF: _nl_load_locale+2E4r .text:0003FF18 ; "idx % __alignof__ (u_int32_t) == 0" .text:0003FF1C off_3FF1C DCD aLoadlocale_c ; DATA XREF: _nl_load_locale+2E8r .text:0003FF1C ; "loadlocale.c" .text:0003FF20 off_3FF20 DCD a_nl_load_local ; DATA XREF: _nl_load_locale+2ECr .text:0003FF20 ; "_nl_load_locale" .text:0003FF24 ; --------------------------------------------------------------------------- .text:0003FF24 .text:0003FF24 loc_3FF24 ; CODE XREF: _nl_load_locale+2D8j .text:0003FF24 LDR R3, [R4,#4] .text:0003FF28 ADD R3, R3, R1 .text:0003FF2C STR R3, [LR,R0] .text:0003FF30 .text:0003FF30 loc_3FF30 ; CODE XREF: _nl_load_locale+304j .text:0003FF30 LDR R3, [R4,#0x1C] .text:0003FF34 ADD R12, R12, #1 .text:0003FF38 CMP R12, R3 .text:0003FF3C BCC loc_3FEB0 .text:0003FF40 .text:0003FF40 loc_3FF40 ; CODE XREF: _nl_load_locale+2A8j .text:0003FF40 MOV R0, R8 .text:0003FF44 BL close .text:0003FF48 STR R4, [R9,#8] .text:0003FF4C .text:0003FF4C locret_3FF4C ; CODE XREF: _nl_load_locale+3Cj .text:0003FF4C ; _nl_load_locale+DCj ... .text:0003FF4C LDMDB R11, {R4-R11,SP,PC} .text:0003FF4C ; End of function _nl_load_locale .text:0003FF4C .text:0003FF50 .text:0003FF50 ; =============== S U B R O U T I N E ======================================= .text:0003FF50 .text:0003FF50 ; Attributes: bp-based frame .text:0003FF50 .text:0003FF50 EXPORT _nl_unload_locale .text:0003FF50 _nl_unload_locale ; CODE XREF: free_mem_7+80p .text:0003FF50 ; free_mem_8+54p .text:0003FF50 MOV R12, SP .text:0003FF54 STMFD SP!, {R4,R11,R12,LR,PC} .text:0003FF58 MOV R4, R0 .text:0003FF5C LDR R3, [R4,#0xC] .text:0003FF60 SUB R11, R12, #4 .text:0003FF64 CMP R3, #0 .text:0003FF68 BEQ loc_3FF78 .text:0003FF6C LDMIB R4, {R0,R1} .text:0003FF70 BL munmap .text:0003FF74 B loc_3FF80 .text:0003FF78 ; --------------------------------------------------------------------------- .text:0003FF78 .text:0003FF78 loc_3FF78 ; CODE XREF: _nl_unload_locale+18j .text:0003FF78 LDR R0, [R4,#4] .text:0003FF7C BL free .text:0003FF80 .text:0003FF80 loc_3FF80 ; CODE XREF: _nl_unload_locale+24j .text:0003FF80 LDR R0, [R4,#0x18] .text:0003FF84 BL free .text:0003FF88 LDR R0, [R4] .text:0003FF8C BL free .text:0003FF90 MOV R0, R4 .text:0003FF94 BL free .text:0003FF98 LDMDB R11, {R4,R11,SP,PC} .text:0003FF98 ; End of function _nl_unload_locale .text:0003FF98 .text:0003FF9C .text:0003FF9C ; =============== S U B R O U T I N E ======================================= .text:0003FF9C .text:0003FF9C ; Attributes: bp-based frame .text:0003FF9C .text:0003FF9C WEAK __ctype_get_mb_cur_max .text:0003FF9C __ctype_get_mb_cur_max ; CODE XREF: vfprintf+128p .text:0003FF9C ; vfprintf+1724p ... .text:0003FF9C MOV R12, SP .text:0003FFA0 STMFD SP!, {R11,R12,LR,PC} .text:0003FFA4 LDR R3, =_nl_current_LC_CTYPE .text:0003FFA8 LDR R2, [R3] .text:0003FFAC SUB R11, R12, #4 .text:0003FFB0 LDR R0, [R2,#0x54] .text:0003FFB4 LDMDB R11, {R11,SP,PC} .text:0003FFB4 ; End of function __ctype_get_mb_cur_max .text:0003FFB4 .text:0003FFB4 ; --------------------------------------------------------------------------- .text:0003FFB8 off_3FFB8 DCD _nl_current_LC_CTYPE .text:0003FFB8 ; DATA XREF: __ctype_get_mb_cur_max+8r .text:0003FFBC .text:0003FFBC ; =============== S U B R O U T I N E ======================================= .text:0003FFBC .text:0003FFBC ; Attributes: bp-based frame .text:0003FFBC .text:0003FFBC EXPORT _nl_postload_ctype .text:0003FFBC _nl_postload_ctype ; CODE XREF: free_mem_7+64p .text:0003FFBC MOV R12, SP .text:0003FFC0 STMFD SP!, {R11,R12,LR,PC} .text:0003FFC4 SUB R11, R12, #4 .text:0003FFC8 LDR R12, =_nl_current_LC_CTYPE .text:0003FFCC LDR R1, [R12] .text:0003FFD0 LDR R3, [R1,#0x20] .text:0003FFD4 LDR R0, =__ctype_b .text:0003FFD8 ADD R3, R3, #0x100 .text:0003FFDC STR R3, [R0] .text:0003FFE0 LDR R2, [R1,#0x24] .text:0003FFE4 LDR R0, =__ctype_toupper .text:0003FFE8 ADD R2, R2, #0x200 .text:0003FFEC STR R2, [R0] .text:0003FFF0 LDR R3, [R1,#0x2C] .text:0003FFF4 LDR R2, =__ctype_tolower .text:0003FFF8 ADD R3, R3, #0x200 .text:0003FFFC STR R3, [R2] .text:00040000 LDR R0, =__ctype32_b .text:00040004 LDR R3, [R1,#0x34] .text:00040008 STR R3, [R0] .text:0004000C LDR R2, =__ctype32_toupper .text:00040010 LDR R3, [R1,#0x5C] .text:00040014 STR R3, [R2] .text:00040018 LDR R0, =__ctype32_tolower .text:0004001C LDR R3, [R1,#0x60] .text:00040020 STR R3, [R0] .text:00040024 LDR LR, =__ctype32_wctype .text:00040028 MOV R0, #0 .text:0004002C LDR R2, [R1,#0x64] .text:00040030 ADD R1, R1, #0x20 .text:00040034 MOV R2, R2,LSL#2 .text:00040038 .text:00040038 loc_40038 ; CODE XREF: _nl_postload_ctype+90j .text:00040038 LDR R3, [R1,R2] .text:0004003C ADD R2, R2, #4 .text:00040040 STR R3, [LR,R0,LSL#2] .text:00040044 ADD R0, R0, #1 .text:00040048 CMP R0, #0xB .text:0004004C BLS loc_40038 .text:00040050 LDR LR, =__ctype32_wctrans .text:00040054 LDR R3, [R12] .text:00040058 MOV R0, #0 .text:0004005C LDR R2, [R3,#0x68] .text:00040060 ADD R1, R3, #0x20 .text:00040064 MOV R2, R2,LSL#2 .text:00040068 .text:00040068 loc_40068 ; CODE XREF: _nl_postload_ctype+C0j .text:00040068 LDR R3, [R1,R2] .text:0004006C ADD R2, R2, #4 .text:00040070 STR R3, [LR,R0,LSL#2] .text:00040074 ADD R0, R0, #1 .text:00040078 CMP R0, #1 .text:0004007C BLS loc_40068 .text:00040080 LDR R3, [R12] .text:00040084 LDR R2, =__ctype32_width .text:00040088 LDR R1, [R3,#0x50] .text:0004008C STR R1, [R2] .text:00040090 LDMDB R11, {R11,SP,PC} .text:00040090 ; End of function _nl_postload_ctype .text:00040090 .text:00040090 ; --------------------------------------------------------------------------- .text:00040094 off_40094 DCD _nl_current_LC_CTYPE ; DATA XREF: _nl_postload_ctype+Cr .text:00040098 off_40098 DCD __ctype_b ; DATA XREF: _nl_postload_ctype+18r .text:0004009C off_4009C DCD __ctype_toupper ; DATA XREF: _nl_postload_ctype+28r .text:000400A0 off_400A0 DCD __ctype_tolower ; DATA XREF: _nl_postload_ctype+38r .text:000400A4 off_400A4 DCD __ctype32_b ; DATA XREF: _nl_postload_ctype+44r .text:000400A8 off_400A8 DCD __ctype32_toupper ; DATA XREF: _nl_postload_ctype+50r .text:000400AC off_400AC DCD __ctype32_tolower ; DATA XREF: _nl_postload_ctype+5Cr .text:000400B0 off_400B0 DCD __ctype32_wctype ; DATA XREF: _nl_postload_ctype+68r .text:000400B4 off_400B4 DCD __ctype32_wctrans ; DATA XREF: _nl_postload_ctype+94r .text:000400B8 off_400B8 DCD __ctype32_width ; DATA XREF: _nl_postload_ctype+C8r .text:000400BC .text:000400BC ; =============== S U B R O U T I N E ======================================= .text:000400BC .text:000400BC ; Attributes: bp-based frame .text:000400BC .text:000400BC EXPORT _nl_postload_time .text:000400BC _nl_postload_time .text:000400BC MOV R12, SP .text:000400C0 STMFD SP!, {R11,R12,LR,PC} .text:000400C4 LDR R2, =era_initialized .text:000400C8 MOV R1, #0 .text:000400CC STR R1, [R2] .text:000400D0 LDR R3, =alt_digits_initialized .text:000400D4 STR R1, [R3] .text:000400D8 LDR R2, =walt_digits_initialized .text:000400DC SUB R11, R12, #4 .text:000400E0 STR R1, [R2] .text:000400E4 LDMDB R11, {R11,SP,PC} .text:000400E4 ; End of function _nl_postload_time .text:000400E4 .text:000400E4 ; --------------------------------------------------------------------------- .text:000400E8 off_400E8 DCD era_initialized ; DATA XREF: _nl_postload_time+8r .text:000400EC off_400EC DCD alt_digits_initialized ; DATA XREF: _nl_postload_time+14r .text:000400F0 off_400F0 DCD walt_digits_initialized .text:000400F0 ; DATA XREF: _nl_postload_time+1Cr .text:000400F4 .text:000400F4 ; =============== S U B R O U T I N E ======================================= .text:000400F4 .text:000400F4 ; Attributes: bp-based frame .text:000400F4 .text:000400F4 _nl_init_era_entries ; CODE XREF: _nl_get_era_entry+38p .text:000400F4 ; _nl_select_era_entry+20p .text:000400F4 MOV R12, SP .text:000400F8 STMFD SP!, {R4-R12,LR,PC} .text:000400FC LDR R3, =0 .text:00040100 SUB R11, R12, #4 .text:00040104 CMP R3, #0 .text:00040108 BEQ loc_40118 .text:0004010C LDR R0, =__libc_setlocale_lock .text:00040110 MOV LR, PC .text:00040114 MOV PC, R3 .text:00040118 .text:00040118 loc_40118 ; CODE XREF: _nl_init_era_entries+14j .text:00040118 LDR R3, =era_initialized .text:0004011C LDR R4, [R3] .text:00040120 CMP R4, #0 .text:00040124 BNE loc_402EC .text:00040128 LDR R6, =_nl_current_LC_TIME .text:0004012C LDR R3, [R6] .text:00040130 LDR R5, [R3,#0xE8] .text:00040134 CMP R5, #0 .text:00040138 BNE loc_40150 .text:0004013C LDR R4, =eras .text:00040140 LDR R0, [R4] .text:00040144 BL free .text:00040148 STR R5, [R4] .text:0004014C B loc_402E0 .text:00040150 ; --------------------------------------------------------------------------- .text:00040150 .text:00040150 loc_40150 ; CODE XREF: _nl_init_era_entries+44j .text:00040150 LDR R2, =num_eras .text:00040154 LDR R10, =eras .text:00040158 LDR R3, [R2] .text:0004015C MOV R9, R2 .text:00040160 CMP R3, R5 .text:00040164 BEQ loc_40180 .text:00040168 ADD R1, R5, R5,LSL#1 .text:0004016C ADD R1, R5, R1,LSL#2 .text:00040170 LDR R0, [R10] .text:00040174 MOV R1, R1,LSL#2 .text:00040178 BL realloc .text:0004017C STR R0, [R10] .text:00040180 .text:00040180 loc_40180 ; CODE XREF: _nl_init_era_entries+70j .text:00040180 LDR R3, [R10] .text:00040184 CMP R3, #0 .text:00040188 STREQ R4, [R9] .text:0004018C STREQ R4, [R10] .text:00040190 BEQ loc_402E0 .text:00040194 LDR R3, [R6] .text:00040198 MOV R8, R4 .text:0004019C LDR R4, [R3,#0xEC] .text:000401A0 CMP R8, R5 .text:000401A4 STR R5, [R9] .text:000401A8 BCS loc_402E0 .text:000401AC MOV R6, R10 .text:000401B0 MOV R5, R8 .text:000401B4 .text:000401B4 loc_401B4 ; CODE XREF: _nl_init_era_entries+1E8j .text:000401B4 MOV R1, R4 .text:000401B8 LDR R0, [R6] .text:000401BC MOV R2, #0x20 .text:000401C0 ADD R0, R5, R0 .text:000401C4 BL memcpy .text:000401C8 LDR R3, [R6] .text:000401CC ADD R1, R5, R3 .text:000401D0 LDR R2, [R1,#8] .text:000401D4 LDR R3, [R1,#0x14] .text:000401D8 MOV R7, R4 .text:000401DC CMP R2, R3 .text:000401E0 BLT loc_4020C .text:000401E4 BNE loc_40228 .text:000401E8 LDR R2, [R1,#0xC] .text:000401EC LDR R3, [R1,#0x18] .text:000401F0 CMP R2, R3 .text:000401F4 BLT loc_4020C .text:000401F8 BNE loc_40228 .text:000401FC LDR R2, [R1,#0x10] .text:00040200 LDR R3, [R1,#0x1C] .text:00040204 CMP R2, R3 .text:00040208 BGT loc_40228 .text:0004020C .text:0004020C loc_4020C ; CODE XREF: _nl_init_era_entries+ECj .text:0004020C ; _nl_init_era_entries+100j .text:0004020C LDR R2, [R10] .text:00040210 LDR R3, [R5,R2] .text:00040214 ADD R2, R5, R2 .text:00040218 CMP R3, #0x2B .text:0004021C BEQ loc_40240 .text:00040220 MOV R3, 0xFFFFFFFF .text:00040224 B loc_40244 .text:00040228 ; --------------------------------------------------------------------------- .text:00040228 .text:00040228 loc_40228 ; CODE XREF: _nl_init_era_entries+F0j .text:00040228 ; _nl_init_era_entries+104j ... .text:00040228 LDR R2, [R10] .text:0004022C LDR R3, [R5,R2] .text:00040230 ADD R2, R5, R2 .text:00040234 CMP R3, #0x2B .text:00040238 MOV R3, 0xFFFFFFFF .text:0004023C BEQ loc_40244 .text:00040240 .text:00040240 loc_40240 ; CODE XREF: _nl_init_era_entries+128j .text:00040240 MOV R3, #1 .text:00040244 .text:00040244 loc_40244 ; CODE XREF: _nl_init_era_entries+130j .text:00040244 ; _nl_init_era_entries+148j .text:00040244 STR R3, [R2,#0x30] .text:00040248 LDR R3, [R6] .text:0004024C ADD R4, R4, #0x20 .text:00040250 ADD R3, R5, R3 .text:00040254 STR R4, [R3,#0x20] .text:00040258 MOV R0, R4 .text:0004025C MOV R1, #0 .text:00040260 BL rawmemchr .text:00040264 LDR R3, [R6] .text:00040268 ADD R4, R0, #1 .text:0004026C ADD R3, R5, R3 .text:00040270 STR R4, [R3,#0x24] .text:00040274 MOV R0, R4 .text:00040278 MOV R1, #0 .text:0004027C BL rawmemchr .text:00040280 ADD R2, R0, #4 .text:00040284 RSB R0, R7, R0 .text:00040288 ADD R0, R0, #4 .text:0004028C AND R0, R0, #3 .text:00040290 LDR R3, [R6] .text:00040294 RSB R4, R0, R2 .text:00040298 ADD R3, R5, R3 .text:0004029C STR R4, [R3,#0x28] .text:000402A0 MOV R0, R4 .text:000402A4 MOV R1, #0 .text:000402A8 BL wcschr .text:000402AC LDR R3, [R6] .text:000402B0 ADD R4, R0, #4 .text:000402B4 ADD R3, R5, R3 .text:000402B8 STR R4, [R3,#0x2C] .text:000402BC ADD R8, R8, #1 .text:000402C0 MOV R0, R4 .text:000402C4 MOV R1, #0 .text:000402C8 BL wcschr .text:000402CC ADD R4, R0, #4 .text:000402D0 LDR R3, [R9] .text:000402D4 ADD R5, R5, #0x34 .text:000402D8 CMP R8, R3 .text:000402DC BCC loc_401B4 .text:000402E0 .text:000402E0 loc_402E0 ; CODE XREF: _nl_init_era_entries+58j .text:000402E0 ; _nl_init_era_entries+9Cj ... .text:000402E0 LDR R2, =era_initialized .text:000402E4 MOV R3, #1 .text:000402E8 STR R3, [R2] .text:000402EC .text:000402EC loc_402EC ; CODE XREF: _nl_init_era_entries+30j .text:000402EC LDR R3, =0 .text:000402F0 CMP R3, #0 .text:000402F4 LDMEQDB R11, {R4-R11,SP,PC} .text:000402F8 LDR R0, =__libc_setlocale_lock .text:000402FC MOV LR, PC .text:00040300 MOV PC, R3 .text:00040304 LDMDB R11, {R4-R11,SP,PC} .text:00040304 ; End of function _nl_init_era_entries .text:00040304 .text:00040304 ; --------------------------------------------------------------------------- .text:00040308 off_40308 DCD 0 ; DATA XREF: _nl_init_era_entries+8r .text:0004030C off_4030C DCD __libc_setlocale_lock .text:0004030C ; DATA XREF: _nl_init_era_entries+18r .text:0004030C ; _nl_init_era_entries+204r .text:00040310 off_40310 DCD era_initialized ; DATA XREF: _nl_init_era_entries:loc_40118r .text:00040310 ; _nl_init_era_entries:loc_402E0r .text:00040314 off_40314 DCD _nl_current_LC_TIME ; DATA XREF: _nl_init_era_entries+34r .text:00040318 off_40318 DCD eras ; DATA XREF: _nl_init_era_entries+48r .text:00040318 ; _nl_init_era_entries+60r .text:0004031C off_4031C DCD num_eras ; DATA XREF: _nl_init_era_entries:loc_40150r .text:00040320 off_40320 DCD 0 ; DATA XREF: _nl_init_era_entries:loc_402ECr .text:00040324 .text:00040324 ; =============== S U B R O U T I N E ======================================= .text:00040324 .text:00040324 ; Attributes: bp-based frame .text:00040324 .text:00040324 EXPORT _nl_get_era_entry .text:00040324 _nl_get_era_entry .text:00040324 .text:00040324 var_34 = -0x34 .text:00040324 var_30 = -0x30 .text:00040324 var_2C = -0x2C .text:00040324 .text:00040324 MOV R12, SP .text:00040328 STMFD SP!, {R4-R12,LR,PC} .text:0004032C SUB SP, SP, #0xC .text:00040330 LDR R3, [R0,#0x14] .text:00040334 SUB R11, R12, #4 .text:00040338 STR R3, [R11,#var_34] .text:0004033C LDR R2, [R0,#0x10] .text:00040340 STR R2, [R11,#var_30] .text:00040344 LDR R3, =era_initialized .text:00040348 LDR R2, [R0,#0xC] .text:0004034C LDR R1, [R3] .text:00040350 STR R2, [R11,#var_2C] .text:00040354 CMP R1, #0 .text:00040358 BNE loc_40360 .text:0004035C BL _nl_init_era_entries .text:00040360 .text:00040360 loc_40360 ; CODE XREF: _nl_get_era_entry+34j .text:00040360 LDR R3, =num_eras .text:00040364 LDR R2, [R3] .text:00040368 MOV R5, #0 .text:0004036C CMP R5, R2 .text:00040370 BCS loc_4047C .text:00040374 LDR R4, [R11,#var_34] .text:00040378 MOV R9, R2 .text:0004037C LDR LR, [R11,#var_30] .text:00040380 MOV R10, R5 .text:00040384 LDR R12, [R11,#var_2C] .text:00040388 MOV R8, R5 .text:0004038C LDR R6, =eras .text:00040390 MOV R7, R5 .text:00040394 LDR R0, [R6] .text:00040398 .text:00040398 loc_40398 ; CODE XREF: _nl_get_era_entry+154j .text:00040398 LDR R3, [R0,#8] .text:0004039C CMP R3, R4 .text:000403A0 BLT loc_403C4 .text:000403A4 BNE loc_403F8 .text:000403A8 LDR R3, [R0,#0xC] .text:000403AC CMP R3, LR .text:000403B0 BLT loc_403C4 .text:000403B4 BNE loc_403F8 .text:000403B8 LDR R3, [R0,#0x10] .text:000403BC CMP R3, R12 .text:000403C0 BGT loc_403F8 .text:000403C4 .text:000403C4 loc_403C4 ; CODE XREF: _nl_get_era_entry+7Cj .text:000403C4 ; _nl_get_era_entry+8Cj .text:000403C4 LDR R3, [R6] .text:000403C8 ADD R1, R7, R3 .text:000403CC LDR R2, [R1,#0x14] .text:000403D0 CMP R4, R2 .text:000403D4 BLT loc_4047C .text:000403D8 BNE loc_403F8 .text:000403DC LDR R3, [R1,#0x18] .text:000403E0 CMP LR, R3 .text:000403E4 BLT loc_4047C .text:000403E8 BNE loc_403F8 .text:000403EC LDR R3, [R1,#0x1C] .text:000403F0 CMP R12, R3 .text:000403F4 BLE loc_4047C .text:000403F8 .text:000403F8 loc_403F8 ; CODE XREF: _nl_get_era_entry+80j .text:000403F8 ; _nl_get_era_entry+90j ... .text:000403F8 LDR R3, [R6] .text:000403FC ADD R1, R8, R3 .text:00040400 LDR R2, [R1,#0x14] .text:00040404 CMP R2, R4 .text:00040408 BLT loc_4042C .text:0004040C BNE loc_40460 .text:00040410 LDR R3, [R1,#0x18] .text:00040414 CMP R3, LR .text:00040418 BLT loc_4042C .text:0004041C BNE loc_40460 .text:00040420 LDR R3, [R1,#0x1C] .text:00040424 CMP R3, R12 .text:00040428 BGT loc_40460 .text:0004042C .text:0004042C loc_4042C ; CODE XREF: _nl_get_era_entry+E4j .text:0004042C ; _nl_get_era_entry+F4j .text:0004042C LDR R3, [R6] .text:00040430 ADD R1, R10, R3 .text:00040434 LDR R2, [R1,#8] .text:00040438 CMP R4, R2 .text:0004043C BLT loc_4047C .text:00040440 BNE loc_40460 .text:00040444 LDR R3, [R1,#0xC] .text:00040448 CMP LR, R3 .text:0004044C BLT loc_4047C .text:00040450 BNE loc_40460 .text:00040454 LDR R3, [R1,#0x10] .text:00040458 CMP R12, R3 .text:0004045C BLE loc_4047C .text:00040460 .text:00040460 loc_40460 ; CODE XREF: _nl_get_era_entry+E8j .text:00040460 ; _nl_get_era_entry+F8j ... .text:00040460 ADD R10, R10, #0x34 .text:00040464 ADD R8, R8, #0x34 .text:00040468 ADD R7, R7, #0x34 .text:0004046C ADD R0, R0, #0x34 .text:00040470 ADD R5, R5, #1 .text:00040474 CMP R5, R9 .text:00040478 BCC loc_40398 .text:0004047C .text:0004047C loc_4047C ; CODE XREF: _nl_get_era_entry+4Cj .text:0004047C ; _nl_get_era_entry+B0j ... .text:0004047C LDR R2, =num_eras .text:00040480 LDR R3, [R2] .text:00040484 CMP R5, R3 .text:00040488 BCS loc_404B0 .text:0004048C LDR R3, =eras .text:00040490 ADD R2, R5, R5,LSL#1 .text:00040494 LDR R1, [R3] .text:00040498 ADD R2, R5, R2,LSL#2 .text:0004049C ADD R0, R1, R2,LSL#2 .text:000404A0 B locret_404B4 .text:000404A0 ; --------------------------------------------------------------------------- .text:000404A4 off_404A4 DCD era_initialized ; DATA XREF: _nl_get_era_entry+20r .text:000404A8 off_404A8 DCD num_eras ; DATA XREF: _nl_get_era_entry:loc_40360r .text:000404A8 ; _nl_get_era_entry:loc_4047Cr .text:000404AC off_404AC DCD eras ; DATA XREF: _nl_get_era_entry+68r .text:000404AC ; _nl_get_era_entry+168r .text:000404B0 ; --------------------------------------------------------------------------- .text:000404B0 .text:000404B0 loc_404B0 ; CODE XREF: _nl_get_era_entry+164j .text:000404B0 MOV R0, #0 .text:000404B4 .text:000404B4 locret_404B4 ; CODE XREF: _nl_get_era_entry+17Cj .text:000404B4 LDMDB R11, {R4-R11,SP,PC} .text:000404B4 ; End of function _nl_get_era_entry .text:000404B4 .text:000404B8 .text:000404B8 ; =============== S U B R O U T I N E ======================================= .text:000404B8 .text:000404B8 ; Attributes: bp-based frame .text:000404B8 .text:000404B8 EXPORT _nl_select_era_entry .text:000404B8 _nl_select_era_entry .text:000404B8 MOV R12, SP .text:000404BC STMFD SP!, {R4,R11,R12,LR,PC} .text:000404C0 LDR R3, =era_initialized .text:000404C4 SUB R11, R12, #4 .text:000404C8 LDR R2, [R3] .text:000404CC MOV R4, R0 .text:000404D0 CMP R2, #0 .text:000404D4 BNE loc_404DC .text:000404D8 BL _nl_init_era_entries .text:000404DC .text:000404DC loc_404DC ; CODE XREF: _nl_select_era_entry+1Cj .text:000404DC LDR R3, =eras .text:000404E0 ADD R0, R4, R4,LSL#1 .text:000404E4 LDR R2, [R3] .text:000404E8 ADD R0, R4, R0,LSL#2 .text:000404EC ADD R0, R2, R0,LSL#2 .text:000404F0 LDMDB R11, {R4,R11,SP,PC} .text:000404F0 ; End of function _nl_select_era_entry .text:000404F0 .text:000404F0 ; --------------------------------------------------------------------------- .text:000404F4 off_404F4 DCD era_initialized ; DATA XREF: _nl_select_era_entry+8r .text:000404F8 off_404F8 DCD eras ; DATA XREF: _nl_select_era_entry:loc_404DCr .text:000404FC .text:000404FC ; =============== S U B R O U T I N E ======================================= .text:000404FC .text:000404FC ; Attributes: bp-based frame .text:000404FC .text:000404FC EXPORT _nl_get_alt_digit .text:000404FC _nl_get_alt_digit .text:000404FC MOV R12, SP .text:00040500 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:00040504 SUB R11, R12, #4 .text:00040508 LDR R3, =0 .text:0004050C MOV R6, R0 .text:00040510 CMP R3, #0 .text:00040514 BEQ loc_40524 .text:00040518 LDR R0, =__libc_setlocale_lock .text:0004051C MOV LR, PC .text:00040520 MOV PC, R3 .text:00040524 .text:00040524 loc_40524 ; CODE XREF: _nl_get_alt_digit+18j .text:00040524 LDR R2, =alt_digits_initialized .text:00040528 LDR R5, =alt_digits .text:0004052C LDR R4, [R2] .text:00040530 LDR R7, =0 .text:00040534 CMP R4, #0 .text:00040538 BNE loc_40594 .text:0004053C MOV R3, #1 .text:00040540 STR R3, [R2] .text:00040544 LDR R2, [R5] .text:00040548 CMP R2, #0 .text:0004054C BNE loc_4055C .text:00040550 MOV R0, #0x190 .text:00040554 BL malloc .text:00040558 STR R0, [R5] .text:0004055C .text:0004055C loc_4055C ; CODE XREF: _nl_get_alt_digit+50j .text:0004055C LDR R3, [R5] .text:00040560 CMP R3, #0 .text:00040564 BEQ loc_40594 .text:00040568 LDR R3, =_nl_current_LC_TIME .text:0004056C LDR R2, [R3] .text:00040570 LDR R0, [R2,#0xDC] .text:00040574 .text:00040574 loc_40574 ; CODE XREF: _nl_get_alt_digit+94j .text:00040574 LDR R3, [R5] .text:00040578 STR R0, [R3,R4,LSL#2] .text:0004057C MOV R1, #0 .text:00040580 BL rawmemchr .text:00040584 ADD R0, R0, #1 .text:00040588 ADD R4, R4, #1 .text:0004058C CMP R4, #0x63 .text:00040590 BLS loc_40574 .text:00040594 .text:00040594 loc_40594 ; CODE XREF: _nl_get_alt_digit+3Cj .text:00040594 ; _nl_get_alt_digit+68j .text:00040594 LDR R2, [R5] .text:00040598 CMP R6, #0x63 .text:0004059C MOVHI R3, #0 .text:000405A0 MOVLS R3, #1 .text:000405A4 CMP R2, #0 .text:000405A8 MOVNE R0, R3 .text:000405AC MOVEQ R0, #0 .text:000405B0 CMP R0, #0 .text:000405B4 LDRNE R4, [R2,R6,LSL#2] .text:000405B8 MOVEQ R4, R0 .text:000405BC CMP R7, #0 .text:000405C0 BEQ loc_405D0 .text:000405C4 LDR R0, =__libc_setlocale_lock .text:000405C8 MOV LR, PC .text:000405CC MOV PC, R7 .text:000405D0 .text:000405D0 loc_405D0 ; CODE XREF: _nl_get_alt_digit+C4j .text:000405D0 MOV R0, R4 .text:000405D4 LDMDB R11, {R4-R7,R11,SP,PC} .text:000405D4 ; End of function _nl_get_alt_digit .text:000405D4 .text:000405D4 ; --------------------------------------------------------------------------- .text:000405D8 off_405D8 DCD 0 ; DATA XREF: _nl_get_alt_digit+Cr .text:000405DC off_405DC DCD __libc_setlocale_lock ; DATA XREF: _nl_get_alt_digit+1Cr .text:000405DC ; _nl_get_alt_digit+C8r .text:000405E0 off_405E0 DCD alt_digits_initialized .text:000405E0 ; DATA XREF: _nl_get_alt_digit:loc_40524r .text:000405E4 off_405E4 DCD alt_digits ; DATA XREF: _nl_get_alt_digit+2Cr .text:000405E8 dword_405E8 DCD 0 ; DATA XREF: _nl_get_alt_digit+34r .text:000405EC off_405EC DCD _nl_current_LC_TIME ; DATA XREF: _nl_get_alt_digit+6Cr .text:000405F0 .text:000405F0 ; =============== S U B R O U T I N E ======================================= .text:000405F0 .text:000405F0 ; Attributes: bp-based frame .text:000405F0 .text:000405F0 EXPORT _nl_get_walt_digit .text:000405F0 _nl_get_walt_digit .text:000405F0 MOV R12, SP .text:000405F4 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:000405F8 SUB R11, R12, #4 .text:000405FC LDR R3, =0 .text:00040600 MOV R6, R0 .text:00040604 CMP R3, #0 .text:00040608 BEQ loc_40618 .text:0004060C LDR R0, =__libc_setlocale_lock .text:00040610 MOV LR, PC .text:00040614 MOV PC, R3 .text:00040618 .text:00040618 loc_40618 ; CODE XREF: _nl_get_walt_digit+18j .text:00040618 LDR R2, =walt_digits_initialized .text:0004061C LDR R5, =walt_digits .text:00040620 LDR R4, [R2] .text:00040624 LDR R7, =0 .text:00040628 CMP R4, #0 .text:0004062C BNE loc_40688 .text:00040630 MOV R3, #1 .text:00040634 STR R3, [R2] .text:00040638 LDR R2, [R5] .text:0004063C CMP R2, #0 .text:00040640 BNE loc_40650 .text:00040644 MOV R0, #0x190 .text:00040648 BL malloc .text:0004064C STR R0, [R5] .text:00040650 .text:00040650 loc_40650 ; CODE XREF: _nl_get_walt_digit+50j .text:00040650 LDR R3, [R5] .text:00040654 CMP R3, #0 .text:00040658 BEQ loc_40688 .text:0004065C LDR R3, =_nl_current_LC_TIME .text:00040660 LDR R2, [R3] .text:00040664 LDR R0, [R2,#0x1A8] .text:00040668 .text:00040668 loc_40668 ; CODE XREF: _nl_get_walt_digit+94j .text:00040668 LDR R3, [R5] .text:0004066C STR R0, [R3,R4,LSL#2] .text:00040670 MOV R1, #0 .text:00040674 BL wcschr .text:00040678 ADD R0, R0, #4 .text:0004067C ADD R4, R4, #1 .text:00040680 CMP R4, #0x63 .text:00040684 BLS loc_40668 .text:00040688 .text:00040688 loc_40688 ; CODE XREF: _nl_get_walt_digit+3Cj .text:00040688 ; _nl_get_walt_digit+68j .text:00040688 LDR R2, [R5] .text:0004068C CMP R6, #0x63 .text:00040690 MOVHI R3, #0 .text:00040694 MOVLS R3, #1 .text:00040698 CMP R2, #0 .text:0004069C MOVNE R0, R3 .text:000406A0 MOVEQ R0, #0 .text:000406A4 CMP R0, #0 .text:000406A8 LDRNE R4, [R2,R6,LSL#2] .text:000406AC MOVEQ R4, R0 .text:000406B0 CMP R7, #0 .text:000406B4 BEQ loc_406C4 .text:000406B8 LDR R0, =__libc_setlocale_lock .text:000406BC MOV LR, PC .text:000406C0 MOV PC, R7 .text:000406C4 .text:000406C4 loc_406C4 ; CODE XREF: _nl_get_walt_digit+C4j .text:000406C4 MOV R0, R4 .text:000406C8 LDMDB R11, {R4-R7,R11,SP,PC} .text:000406C8 ; End of function _nl_get_walt_digit .text:000406C8 .text:000406C8 ; --------------------------------------------------------------------------- .text:000406CC off_406CC DCD 0 ; DATA XREF: _nl_get_walt_digit+Cr .text:000406D0 off_406D0 DCD __libc_setlocale_lock ; DATA XREF: _nl_get_walt_digit+1Cr .text:000406D0 ; _nl_get_walt_digit+C8r .text:000406D4 off_406D4 DCD walt_digits_initialized .text:000406D4 ; DATA XREF: _nl_get_walt_digit:loc_40618r .text:000406D8 off_406D8 DCD walt_digits ; DATA XREF: _nl_get_walt_digit+2Cr .text:000406DC dword_406DC DCD 0 ; DATA XREF: _nl_get_walt_digit+34r .text:000406E0 off_406E0 DCD _nl_current_LC_TIME ; DATA XREF: _nl_get_walt_digit+6Cr .text:000406E4 .text:000406E4 ; =============== S U B R O U T I N E ======================================= .text:000406E4 .text:000406E4 ; Attributes: bp-based frame .text:000406E4 .text:000406E4 free_mem_9 .text:000406E4 MOV R12, SP .text:000406E8 STMFD SP!, {R11,R12,LR,PC} .text:000406EC LDR R3, =alt_digits .text:000406F0 LDR R0, [R3] .text:000406F4 SUB R11, R12, #4 .text:000406F8 BL free .text:000406FC LDR R3, =walt_digits .text:00040700 LDR R0, [R3] .text:00040704 BL free .text:00040708 LDMDB R11, {R11,SP,PC} .text:00040708 ; End of function free_mem_9 .text:00040708 .text:00040708 ; --------------------------------------------------------------------------- .text:0004070C off_4070C DCD alt_digits ; DATA XREF: free_mem_9+8r .text:00040710 off_40710 DCD walt_digits ; DATA XREF: free_mem_9+18r .text:00040714 .text:00040714 ; =============== S U B R O U T I N E ======================================= .text:00040714 .text:00040714 ; Attributes: bp-based frame .text:00040714 .text:00040714 WEAK isinfl .text:00040714 isinfl ; CODE XREF: __printf_fp+224p .text:00040714 ; __printf_fphex+118p .text:00040714 MOV R12, SP ; Alternative name is '__isinfl' .text:00040718 STMFD SP!, {R11,R12,LR,PC} .text:0004071C SUB R11, R12, #4 .text:00040720 MOV R12, R0 .text:00040724 BIC R2, R12, #0x80000000 .text:00040728 MOV R3, 0x7FF00000 .text:00040730 EOR R2, R2, R3 .text:00040734 ORR R2, R1, R2 .text:00040738 RSB R3, R2, #0 .text:0004073C ORR R2, R2, R3 .text:00040740 CMP R2, #0 .text:00040744 MOVLT R0, #0 .text:00040748 MOVGE R0, R12,ASR#30 .text:0004074C LDMDB R11, {R11,SP,PC} .text:0004074C ; End of function isinfl .text:0004074C .text:00040750 .text:00040750 ; =============== S U B R O U T I N E ======================================= .text:00040750 .text:00040750 ; Attributes: bp-based frame .text:00040750 .text:00040750 WEAK isnanl .text:00040750 isnanl ; CODE XREF: __printf_fp+1D4p .text:00040750 ; __printf_fphex+C0p .text:00040750 MOV R12, SP ; Alternative name is '__isnan' .text:00040754 STMFD SP!, {R11,R12,LR,PC} .text:00040758 SUB R11, R12, #4 .text:0004075C BIC R3, R0, #0x80000000 .text:00040760 RSB R2, R1, #0 .text:00040764 ORR R2, R2, R1 .text:00040768 ORR R3, R3, R2,LSR#31 .text:0004076C RSB R3, R3, #0x7F000000 .text:00040770 ADD R3, R3, #0xF00000 .text:00040774 MOV R0, R3,LSR#31 .text:00040778 LDMDB R11, {R11,SP,PC} .text:00040778 ; End of function isnanl .text:00040778 .text:0004077C .text:0004077C ; =============== S U B R O U T I N E ======================================= .text:0004077C .text:0004077C ; Attributes: bp-based frame .text:0004077C .text:0004077C EXPORT __signbit .text:0004077C __signbit ; CODE XREF: __printf_fphex+164p .text:0004077C MOV R12, SP .text:00040780 STMFD SP!, {R11,R12,LR,PC} .text:00040784 SUB R11, R12, #4 .text:00040788 AND R0, R0, #0x80000000 .text:0004078C LDMDB R11, {R11,SP,PC} .text:0004078C ; End of function __signbit .text:0004078C .text:00040790 .text:00040790 ; =============== S U B R O U T I N E ======================================= .text:00040790 .text:00040790 .text:00040790 EXPORT __sigsetjmp .text:00040790 __sigsetjmp ; CODE XREF: _setjmp+4j .text:00040790 STC p2, c4, [R0],#0x30 .text:00040794 STMIA R0, {R4-R11,SP,LR} .text:00040798 SUB R0, R0, #0x30 .text:0004079C B __sigjmp_save .text:0004079C ; End of function __sigsetjmp .text:0004079C .text:000407A0 .text:000407A0 ; =============== S U B R O U T I N E ======================================= .text:000407A0 .text:000407A0 ; Attributes: bp-based frame .text:000407A0 .text:000407A0 EXPORT __sigjmp_save .text:000407A0 __sigjmp_save .text:000407A0 MOV R12, SP .text:000407A4 STMFD SP!, {R4,R11,R12,LR,PC} .text:000407A8 SUB R11, R12, #4 .text:000407AC MOV R3, #0 .text:000407B0 MOV R4, R0 .text:000407B4 CMP R1, R3 .text:000407B8 BEQ loc_407D8 .text:000407BC MOV R0, R3 .text:000407C0 MOV R1, R0 .text:000407C4 ADD R2, R4, #0x5C .text:000407C8 BL sigprocmask .text:000407CC CMP R0, #0 .text:000407D0 MOVNE R3, #0 .text:000407D4 MOVEQ R3, #1 .text:000407D8 .text:000407D8 loc_407D8 ; CODE XREF: __sigjmp_save+18j .text:000407D8 MOV R0, #0 .text:000407DC STR R3, [R4,#0x58] .text:000407E0 LDMDB R11, {R4,R11,SP,PC} .text:000407E0 ; End of function __sigjmp_save .text:000407E0 .text:000407E4 .text:000407E4 ; =============== S U B R O U T I N E ======================================= .text:000407E4 .text:000407E4 ; Attributes: bp-based frame .text:000407E4 .text:000407E4 EXPORT _quicksort .text:000407E4 _quicksort ; CODE XREF: qsort+E8p .text:000407E4 .text:000407E4 var_140 = -0x140 .text:000407E4 var_13C = -0x13C .text:000407E4 var_138 = -0x138 .text:000407E4 var_134 = -0x134 .text:000407E4 var_130 = -0x130 .text:000407E4 var_12C = -0x12C .text:000407E4 var_128 = -0x128 .text:000407E4 var_120 = -0x120 .text:000407E4 .text:000407E4 MOV R12, SP .text:000407E8 STMFD SP!, {R4-R12,LR,PC} .text:000407EC SUB R11, R12, #4 .text:000407F0 MOV R6, R2 .text:000407F4 ADD R2, R6, #3 .text:000407F8 BIC R2, R2, #3 .text:000407FC SUB SP, SP, #0x118 .text:00040800 STR R0, [R11,#var_12C] .text:00040804 MOV R9, R3 .text:00040808 RSB SP, R2, SP .text:0004080C STR SP, [R11,#var_130] .text:00040810 CMP R1, #0 .text:00040814 MOV R2, R6,LSL#2 .text:00040818 STR R2, [R11,#var_134] .text:0004081C BEQ locret_40B5C .text:00040820 CMP R1, #4 .text:00040824 SUB R1, R1, #1 .text:00040828 STR R1, [R11,#var_140] .text:0004082C ADD R3, R0, R6 .text:00040830 STR R3, [R11,#var_138] .text:00040834 BLS loc_40A40 .text:00040838 MOV R8, R0 .text:0004083C SUB R7, R11, #-var_120 .text:00040840 SUB R3, R11, #-var_128 .text:00040844 CMP R3, R7 .text:00040848 MOV R10, R0 .text:0004084C MLA R10, R1, R6, R10 .text:00040850 BCS loc_40A40 .text:00040854 .text:00040854 loc_40854 ; CODE XREF: _quicksort+258j .text:00040854 RSB R0, R8, R10 .text:00040858 MOV R1, R6 .text:0004085C BL __udivsi3 .text:00040860 MOV R0, R0,LSR#1 .text:00040864 MLA R4, R0, R6, R8 .text:00040868 MOV R1, R8 .text:0004086C MOV R0, R4 .text:00040870 MOV LR, PC .text:00040874 MOV PC, R9 .text:00040878 CMP R0, #0 .text:0004087C ADD R5, R8, R6 .text:00040880 RSB R1, R6, R10 .text:00040884 STR R1, [R11,#var_13C] .text:00040888 BGE loc_408B0 .text:0004088C MOV R1, R6 .text:00040890 MOV R12, R4 .text:00040894 MOV R0, R8 .text:00040898 .text:00040898 loc_40898 ; CODE XREF: _quicksort+C8j .text:00040898 LDRB R3, [R0] .text:0004089C LDRB R2, [R12] .text:000408A0 STRB R3, [R12],#1 .text:000408A4 SUBS R1, R1, #1 .text:000408A8 STRB R2, [R0],#1 .text:000408AC BNE loc_40898 .text:000408B0 .text:000408B0 loc_408B0 ; CODE XREF: _quicksort+A4j .text:000408B0 MOV R0, R10 .text:000408B4 MOV R1, R4 .text:000408B8 MOV LR, PC .text:000408BC MOV PC, R9 .text:000408C0 CMP R0, #0 .text:000408C4 BGE loc_40928 .text:000408C8 MOV R1, R6 .text:000408CC MOV R12, R4 .text:000408D0 MOV R0, R10 .text:000408D4 .text:000408D4 loc_408D4 ; CODE XREF: _quicksort+104j .text:000408D4 LDRB R3, [R0] .text:000408D8 LDRB R2, [R12] .text:000408DC STRB R3, [R12],#1 .text:000408E0 SUBS R1, R1, #1 .text:000408E4 STRB R2, [R0],#1 .text:000408E8 BNE loc_408D4 .text:000408EC MOV R0, R4 .text:000408F0 MOV R1, R8 .text:000408F4 MOV LR, PC .text:000408F8 MOV PC, R9 .text:000408FC CMP R0, #0 .text:00040900 BGE loc_40928 .text:00040904 MOV R1, R6 .text:00040908 MOV R12, R4 .text:0004090C MOV R0, R8 .text:00040910 .text:00040910 loc_40910 ; CODE XREF: _quicksort+140j .text:00040910 LDRB R3, [R0] .text:00040914 LDRB R2, [R12] .text:00040918 STRB R3, [R12],#1 .text:0004091C SUBS R1, R1, #1 .text:00040920 STRB R2, [R0],#1 .text:00040924 BNE loc_40910 .text:00040928 .text:00040928 loc_40928 ; CODE XREF: _quicksort+E0j .text:00040928 ; _quicksort+11Cj .text:00040928 MOV R1, R4 .text:0004092C LDR R0, [R11,#var_130] .text:00040930 MOV R2, R6 .text:00040934 LDR R4, [R11,#var_13C] .text:00040938 BL memcpy .text:0004093C B loc_40944 .text:00040940 ; --------------------------------------------------------------------------- .text:00040940 .text:00040940 loc_40940 ; CODE XREF: _quicksort+174j .text:00040940 ADD R5, R5, R6 .text:00040944 .text:00040944 loc_40944 ; CODE XREF: _quicksort+158j .text:00040944 ; _quicksort+1DCj .text:00040944 LDR R1, [R11,#var_130] .text:00040948 MOV R0, R5 .text:0004094C MOV LR, PC .text:00040950 MOV PC, R9 .text:00040954 CMP R0, #0 .text:00040958 BLT loc_40940 .text:0004095C B loc_40964 .text:00040960 ; --------------------------------------------------------------------------- .text:00040960 .text:00040960 loc_40960 ; CODE XREF: _quicksort+194j .text:00040960 RSB R4, R6, R4 .text:00040964 .text:00040964 loc_40964 ; CODE XREF: _quicksort+178j .text:00040964 LDR R0, [R11,#var_130] .text:00040968 MOV R1, R4 .text:0004096C MOV LR, PC .text:00040970 MOV PC, R9 .text:00040974 CMP R0, #0 .text:00040978 BLT loc_40960 .text:0004097C CMP R5, R4 .text:00040980 BCS loc_409B8 .text:00040984 MOV R12, R6 .text:00040988 MOV R0, R5 .text:0004098C MOV R1, R4 .text:00040990 ADD LR, R0, R6 .text:00040994 RSB R4, R6, R1 .text:00040998 .text:00040998 loc_40998 ; CODE XREF: _quicksort+1C8j .text:00040998 LDRB R3, [R1] .text:0004099C LDRB R2, [R0] .text:000409A0 STRB R3, [R0],#1 .text:000409A4 SUBS R12, R12, #1 .text:000409A8 STRB R2, [R1],#1 .text:000409AC BNE loc_40998 .text:000409B0 MOV R5, LR .text:000409B4 B loc_409BC .text:000409B8 ; --------------------------------------------------------------------------- .text:000409B8 .text:000409B8 loc_409B8 ; CODE XREF: _quicksort+19Cj .text:000409B8 BEQ loc_409F0 .text:000409BC .text:000409BC loc_409BC ; CODE XREF: _quicksort+1D0j .text:000409BC CMP R5, R4 .text:000409C0 BLS loc_40944 .text:000409C4 .text:000409C4 loc_409C4 ; CODE XREF: _quicksort+214j .text:000409C4 LDR R3, [R11,#var_134] .text:000409C8 RSB R2, R8, R4 .text:000409CC CMP R2, R3 .text:000409D0 BHI loc_409FC .text:000409D4 LDR R1, [R11,#var_134] .text:000409D8 RSB R3, R5, R10 .text:000409DC CMP R3, R1 .text:000409E0 BHI loc_40A20 .text:000409E4 LDR R8, [R7,#-8]! .text:000409E8 LDR R10, [R7,#4] .text:000409EC B loc_40A34 .text:000409F0 ; --------------------------------------------------------------------------- .text:000409F0 .text:000409F0 loc_409F0 ; CODE XREF: _quicksort:loc_409B8j .text:000409F0 ADD R5, R4, R6 .text:000409F4 RSB R4, R6, R4 .text:000409F8 B loc_409C4 .text:000409FC ; --------------------------------------------------------------------------- .text:000409FC .text:000409FC loc_409FC ; CODE XREF: _quicksort+1ECj .text:000409FC LDR R1, [R11,#var_134] .text:00040A00 RSB R3, R5, R10 .text:00040A04 CMP R3, R1 .text:00040A08 BLS loc_40A30 .text:00040A0C CMP R2, R3 .text:00040A10 BLE loc_40A28 .text:00040A14 STR R8, [R7] .text:00040A18 STR R4, [R7,#4] .text:00040A1C ADD R7, R7, #8 .text:00040A20 .text:00040A20 loc_40A20 ; CODE XREF: _quicksort+1FCj .text:00040A20 MOV R8, R5 .text:00040A24 B loc_40A34 .text:00040A28 ; --------------------------------------------------------------------------- .text:00040A28 .text:00040A28 loc_40A28 ; CODE XREF: _quicksort+22Cj .text:00040A28 STMIA R7, {R5,R10} .text:00040A2C ADD R7, R7, #8 .text:00040A30 .text:00040A30 loc_40A30 ; CODE XREF: _quicksort+224j .text:00040A30 MOV R10, R4 .text:00040A34 .text:00040A34 loc_40A34 ; CODE XREF: _quicksort+208j .text:00040A34 ; _quicksort+240j .text:00040A34 SUB R2, R11, #-var_128 .text:00040A38 CMP R2, R7 .text:00040A3C BCC loc_40854 .text:00040A40 .text:00040A40 loc_40A40 ; CODE XREF: _quicksort+50j .text:00040A40 ; _quicksort+6Cj .text:00040A40 LDR R8, [R11,#var_12C] .text:00040A44 LDR R3, [R11,#var_140] .text:00040A48 MLA R8, R3, R6, R8 .text:00040A4C LDR R4, [R11,#var_12C] .text:00040A50 LDR R1, [R11,#var_134] .text:00040A54 ADD R7, R4, R1 .text:00040A58 ADD R5, R4, R6 .text:00040A5C CMP R7, R8 .text:00040A60 MOVCS R7, R8 .text:00040A64 CMP R5, R7 .text:00040A68 BHI loc_40A90 .text:00040A6C .text:00040A6C loc_40A6C ; CODE XREF: _quicksort+2A8j .text:00040A6C MOV R0, R5 .text:00040A70 MOV R1, R4 .text:00040A74 MOV LR, PC .text:00040A78 MOV PC, R9 .text:00040A7C CMP R0, #0 .text:00040A80 MOVLT R4, R5 .text:00040A84 ADD R5, R5, R6 .text:00040A88 CMP R5, R7 .text:00040A8C BLS loc_40A6C .text:00040A90 .text:00040A90 loc_40A90 ; CODE XREF: _quicksort+284j .text:00040A90 LDR R2, [R11,#var_12C] .text:00040A94 CMP R4, R2 .text:00040A98 BEQ loc_40AC0 .text:00040A9C MOV R12, R6 .text:00040AA0 MOV R1, R4 .text:00040AA4 MOV R0, R2 .text:00040AA8 .text:00040AA8 loc_40AA8 ; CODE XREF: _quicksort+2D8j .text:00040AA8 LDRB R3, [R0] .text:00040AAC LDRB R2, [R1] .text:00040AB0 STRB R3, [R1],#1 .text:00040AB4 SUBS R12, R12, #1 .text:00040AB8 STRB R2, [R0],#1 .text:00040ABC BNE loc_40AA8 .text:00040AC0 .text:00040AC0 loc_40AC0 ; CODE XREF: _quicksort+2B4j .text:00040AC0 LDR R3, [R11,#var_138] .text:00040AC4 ADD R5, R3, R6 .text:00040AC8 CMP R5, R8 .text:00040ACC BHI locret_40B5C .text:00040AD0 .text:00040AD0 loc_40AD0 ; CODE XREF: _quicksort+374j .text:00040AD0 RSB R4, R6, R5 .text:00040AD4 ADD R7, R5, R6 .text:00040AD8 B loc_40AE0 .text:00040ADC ; --------------------------------------------------------------------------- .text:00040ADC .text:00040ADC loc_40ADC ; CODE XREF: _quicksort+310j .text:00040ADC RSB R4, R6, R4 .text:00040AE0 .text:00040AE0 loc_40AE0 ; CODE XREF: _quicksort+2F4j .text:00040AE0 MOV R0, R5 .text:00040AE4 MOV R1, R4 .text:00040AE8 MOV LR, PC .text:00040AEC MOV PC, R9 .text:00040AF0 CMP R0, #0 .text:00040AF4 BLT loc_40ADC .text:00040AF8 ADD R4, R4, R6 .text:00040AFC CMP R4, R5 .text:00040B00 BEQ loc_40B50 .text:00040B04 SUB R3, R7, #1 .text:00040B08 CMP R3, R5 .text:00040B0C BCC loc_40B50 .text:00040B10 .text:00040B10 loc_40B10 ; CODE XREF: _quicksort+368j .text:00040B10 MOV R1, R3 .text:00040B14 RSB R2, R6, R1 .text:00040B18 CMP R2, R4 .text:00040B1C SUB R0, R1, #1 .text:00040B20 LDRB R12, [R3] .text:00040B24 BCC loc_40B40 .text:00040B28 .text:00040B28 loc_40B28 ; CODE XREF: _quicksort+358j .text:00040B28 LDRB R3, [R2] .text:00040B2C STRB R3, [R1] .text:00040B30 MOV R1, R2 .text:00040B34 RSB R2, R6, R1 .text:00040B38 CMP R2, R4 .text:00040B3C BCS loc_40B28 .text:00040B40 .text:00040B40 loc_40B40 ; CODE XREF: _quicksort+340j .text:00040B40 MOV R3, R0 .text:00040B44 CMP R3, R5 .text:00040B48 STRB R12, [R1] .text:00040B4C BCS loc_40B10 .text:00040B50 .text:00040B50 loc_40B50 ; CODE XREF: _quicksort+31Cj .text:00040B50 ; _quicksort+328j .text:00040B50 MOV R5, R7 .text:00040B54 CMP R5, R8 .text:00040B58 BLS loc_40AD0 .text:00040B5C .text:00040B5C locret_40B5C ; CODE XREF: _quicksort+38j .text:00040B5C ; _quicksort+2E8j .text:00040B5C LDMDB R11, {R4-R11,SP,PC} .text:00040B5C ; End of function _quicksort .text:00040B5C .text:00040B60 .text:00040B60 ; =============== S U B R O U T I N E ======================================= .text:00040B60 .text:00040B60 ; Attributes: bp-based frame .text:00040B60 .text:00040B60 EXPORT __strtoll_internal .text:00040B60 __strtoll_internal ; CODE XREF: _IO_vfscanf+27F4p .text:00040B60 ; strtoq+10p .text:00040B60 .text:00040B60 var_60 = -0x60 .text:00040B60 var_54 = -0x54 .text:00040B60 var_50 = -0x50 .text:00040B60 var_4C = -0x4C .text:00040B60 var_48 = -0x48 .text:00040B60 var_44 = -0x44 .text:00040B60 var_40 = -0x40 .text:00040B60 var_3C = -0x3C .text:00040B60 var_38 = -0x38 .text:00040B60 var_34 = -0x34 .text:00040B60 var_30 = -0x30 .text:00040B60 var_2C = -0x2C .text:00040B60 .text:00040B60 MOV R12, SP .text:00040B64 STMFD SP!, {R4-R12,LR,PC} .text:00040B68 SUB R11, R12, #4 .text:00040B6C SUB SP, SP, #0x34 .text:00040B70 STR R2, [R11,#var_34] .text:00040B74 MOV R2, #0 .text:00040B78 STR R2, [R11,#var_50] .text:00040B7C STR R0, [R11,#var_2C] .text:00040B80 MOV R9, R2 .text:00040B84 CMP R3, R2 .text:00040B88 STR R1, [R11,#var_30] .text:00040B8C BEQ loc_40BCC .text:00040B90 LDR R3, =_nl_current_LC_NUMERIC .text:00040B94 LDR R2, [R3] .text:00040B98 LDR R3, [R2,#0x28] .text:00040B9C STR R3, [R11,#var_54] .text:00040BA0 LDRB R3, [R3] .text:00040BA4 CMP R3, #0xFF .text:00040BA8 CMPNE R3, #0 .text:00040BAC STREQ R9, [R11,#var_54] .text:00040BB0 BEQ loc_40BD4 .text:00040BB4 LDR R9, [R2,#0x24] .text:00040BB8 LDRB R3, [R9] .text:00040BBC CMP R3, #0 .text:00040BC0 LDREQ R9, [R11,#var_50] .text:00040BC4 STREQ R9, [R11,#var_54] .text:00040BC8 B loc_40BD4 .text:00040BCC ; --------------------------------------------------------------------------- .text:00040BCC .text:00040BCC loc_40BCC ; CODE XREF: __strtoll_internal+2Cj .text:00040BCC LDR R12, [R11,#var_50] .text:00040BD0 STR R12, [R11,#var_54] .text:00040BD4 .text:00040BD4 loc_40BD4 ; CODE XREF: __strtoll_internal+50j .text:00040BD4 ; __strtoll_internal+68j .text:00040BD4 LDR R0, [R11,#var_34] .text:00040BD8 CMP R0, #1 .text:00040BDC MOVEQ R3, #1 .text:00040BE0 MOVNE R3, R0,LSR#31 .text:00040BE4 CMP R3, #0 .text:00040BE8 BNE loc_40BF4 .text:00040BEC CMP R0, #0x24 .text:00040BF0 BLE loc_40C04 .text:00040BF4 .text:00040BF4 loc_40BF4 ; CODE XREF: __strtoll_internal+88j .text:00040BF4 BL __errno_location .text:00040BF8 MOV R3, #0x16 .text:00040BFC STR R3, [R0] .text:00040C00 B loc_4143C .text:00040C04 ; --------------------------------------------------------------------------- .text:00040C04 .text:00040C04 loc_40C04 ; CODE XREF: __strtoll_internal+90j .text:00040C04 LDR R1, [R11,#var_2C] .text:00040C08 LDR R6, [R11,#var_2C] .text:00040C0C LDRB R3, [R1] .text:00040C10 LDR R1, =__ctype_b .text:00040C14 LDR R0, [R1] .text:00040C18 MOV R3, R3,LSL#1 .text:00040C1C ADD R3, R3, R0 .text:00040C20 LDRB R2, [R3,#1] .text:00040C24 STR R6, [R11,#var_48] .text:00040C28 TST R2, #0x20 .text:00040C2C BEQ loc_40C4C .text:00040C30 MOV R1, R0 .text:00040C34 .text:00040C34 loc_40C34 ; CODE XREF: __strtoll_internal+E8j .text:00040C34 LDRB R3, [R6,#1]! .text:00040C38 MOV R3, R3,LSL#1 .text:00040C3C ADD R3, R3, R1 .text:00040C40 LDRB R2, [R3,#1] .text:00040C44 TST R2, #0x20 .text:00040C48 BNE loc_40C34 .text:00040C4C .text:00040C4C loc_40C4C ; CODE XREF: __strtoll_internal+CCj .text:00040C4C LDRB R3, [R6] .text:00040C50 CMP R3, #0 .text:00040C54 BEQ loc_413C4 .text:00040C58 CMP R3, #0x2D .text:00040C5C MOVEQ R2, #1 .text:00040C60 ADDEQ R6, R6, R2 .text:00040C64 STREQ R2, [R11,#var_38] .text:00040C68 BEQ loc_40C84 .text:00040C6C CMP R3, #0x2B .text:00040C70 MOVEQ R3, #0 .text:00040C74 ADDEQ R6, R6, #1 .text:00040C78 STREQ R3, [R11,#var_38] .text:00040C7C MOVNE R12, #0 .text:00040C80 STRNE R12, [R11,#var_38] .text:00040C84 .text:00040C84 loc_40C84 ; CODE XREF: __strtoll_internal+108j .text:00040C84 LDRB R3, [R6] .text:00040C88 CMP R3, #0x30 .text:00040C8C BNE loc_40CDC .text:00040C90 LDR R0, [R11,#var_34] .text:00040C94 CMP R0, #0x10 .text:00040C98 CMPNE R0, #0 .text:00040C9C BNE loc_40CC4 .text:00040CA0 LDR R1, =__ctype_toupper .text:00040CA4 LDRB R0, [R6,#1] .text:00040CA8 LDR R3, [R1] .text:00040CAC LDR R2, [R3,R0,LSL#2] .text:00040CB0 CMP R2, #0x58 .text:00040CB4 ADDEQ R6, R6, #2 .text:00040CB8 MOVEQ R1, #0x10 .text:00040CBC STREQ R1, [R11,#var_34] .text:00040CC0 BEQ loc_40CF0 .text:00040CC4 .text:00040CC4 loc_40CC4 ; CODE XREF: __strtoll_internal+13Cj .text:00040CC4 LDR R2, [R11,#var_34] .text:00040CC8 MOV R3, R2 .text:00040CCC CMP R3, #0 .text:00040CD0 MOVEQ R2, #8 .text:00040CD4 STR R2, [R11,#var_34] .text:00040CD8 B loc_40CF0 .text:00040CDC ; --------------------------------------------------------------------------- .text:00040CDC .text:00040CDC loc_40CDC ; CODE XREF: __strtoll_internal+12Cj .text:00040CDC LDR R12, [R11,#var_34] .text:00040CE0 MOV R0, R12 .text:00040CE4 CMP R0, #0 .text:00040CE8 MOVEQ R12, #0xA .text:00040CEC STR R12, [R11,#var_34] .text:00040CF0 .text:00040CF0 loc_40CF0 ; CODE XREF: __strtoll_internal+160j .text:00040CF0 ; __strtoll_internal+178j .text:00040CF0 STR R6, [R11,#var_48] .text:00040CF4 LDR R2, [R11,#var_34] .text:00040CF8 LDR R1, [R11,#var_54] .text:00040CFC CMP R2, #0xA .text:00040D00 MOVNE R1, #0 .text:00040D04 CMP R1, #0 .text:00040D08 STR R1, [R11,#var_54] .text:00040D0C BEQ loc_41038 .text:00040D10 MOV R0, R9 .text:00040D14 BL strlen .text:00040D18 STR R0, [R11,#var_50] .text:00040D1C MOV R1, #0 .text:00040D20 LDR R2, [R11,#var_34] .text:00040D24 SUB R12, R11, #-var_60 .text:00040D28 LDR R10, [R11,#var_48] .text:00040D2C MOV R3, R2,ASR#31 .text:00040D30 STMIB R12, {R2,R3} .text:00040D34 CMP R1, R0 .text:00040D38 BCS loc_40D70 .text:00040D3C LDR R12, [R11,#var_48] .text:00040D40 LDRB R2, [R9] .text:00040D44 LDRB R3, [R12] .text:00040D48 CMP R2, R3 .text:00040D4C BNE loc_40D70 .text:00040D50 .text:00040D50 loc_40D50 ; CODE XREF: __strtoll_internal+20Cj .text:00040D50 LDR R0, [R11,#var_50] .text:00040D54 ADD R1, R1, #1 .text:00040D58 CMP R1, R0 .text:00040D5C BCS loc_40D70 .text:00040D60 LDRB R2, [R9,R1] .text:00040D64 LDRB R3, [R6,R1] .text:00040D68 CMP R2, R3 .text:00040D6C BEQ loc_40D50 .text:00040D70 .text:00040D70 loc_40D70 ; CODE XREF: __strtoll_internal+1D8j .text:00040D70 ; __strtoll_internal+1ECj ... .text:00040D70 LDR R2, [R11,#var_50] .text:00040D74 CMP R1, R2 .text:00040D78 BCS loc_4104C .text:00040D7C LDRB R5, [R6] .text:00040D80 CMP R5, #0 .text:00040D84 BEQ loc_40E24 .text:00040D88 .text:00040D88 loc_40D88 ; CODE XREF: __strtoll_internal+2C0j .text:00040D88 SUB R3, R5, #0x30 .text:00040D8C CMP R3, #9 .text:00040D90 BLS loc_40E18 .text:00040D94 LDR R3, [R11,#var_50] .text:00040D98 MOV R1, #0 .text:00040D9C CMP R1, R3 .text:00040DA0 BCS loc_40DD4 .text:00040DA4 LDRB R2, [R9] .text:00040DA8 LDRB R3, [R10] .text:00040DAC CMP R2, R3 .text:00040DB0 BNE loc_40DD4 .text:00040DB4 .text:00040DB4 loc_40DB4 ; CODE XREF: __strtoll_internal+270j .text:00040DB4 LDR R12, [R11,#var_50] .text:00040DB8 ADD R1, R1, #1 .text:00040DBC CMP R1, R12 .text:00040DC0 BCS loc_40DD4 .text:00040DC4 LDRB R2, [R9,R1] .text:00040DC8 LDRB R3, [R10,R1] .text:00040DCC CMP R2, R3 .text:00040DD0 BEQ loc_40DB4 .text:00040DD4 .text:00040DD4 loc_40DD4 ; CODE XREF: __strtoll_internal+240j .text:00040DD4 ; __strtoll_internal+250j ... .text:00040DD4 LDR R0, [R11,#var_50] .text:00040DD8 CMP R1, R0 .text:00040DDC BCS loc_40E18 .text:00040DE0 LDR R1, =__ctype_b .text:00040DE4 LDR R3, [R1] .text:00040DE8 MOV R2, R5,LSL#1 .text:00040DEC ADD R2, R2, R3 .text:00040DF0 LDRB R1, [R2,#1] .text:00040DF4 TST R1, #4 .text:00040DF8 BEQ loc_40E24 .text:00040DFC LDR R3, =__ctype_toupper .text:00040E00 LDR R1, [R3] .text:00040E04 LDR R2, [R1,R5,LSL#2] .text:00040E08 LDR R3, [R11,#var_34] .text:00040E0C SUB R2, R2, #0x37 .text:00040E10 CMP R2, R3 .text:00040E14 BGE loc_40E24 .text:00040E18 .text:00040E18 loc_40E18 ; CODE XREF: __strtoll_internal+230j .text:00040E18 ; __strtoll_internal+27Cj .text:00040E18 LDRB R5, [R10,#1]! .text:00040E1C CMP R5, #0 .text:00040E20 BNE loc_40D88 .text:00040E24 .text:00040E24 loc_40E24 ; CODE XREF: __strtoll_internal+224j .text:00040E24 ; __strtoll_internal+298j ... .text:00040E24 LDR R12, [R11,#var_54] .text:00040E28 MOV R7, R10 .text:00040E2C CMP R12, #0 .text:00040E30 BEQ loc_4104C .text:00040E34 MOV R0, R9 .text:00040E38 BL strlen .text:00040E3C CMP R10, R6 .text:00040E40 BLS loc_41028 .text:00040E44 .text:00040E44 loc_40E44 ; CODE XREF: __strtoll_internal+4C4j .text:00040E44 SUB R12, R7, #1 .text:00040E48 CMP R12, R6 .text:00040E4C LDR R4, [R11,#var_54] .text:00040E50 BCC loc_40EC4 .text:00040E54 SUB R8, R0, #2 .text:00040E58 LDRB R5, [R9] .text:00040E5C .text:00040E5C loc_40E5C ; CODE XREF: __strtoll_internal+360j .text:00040E5C ADD R3, R0, R12 .text:00040E60 LDRB R2, [R3,#-1] .text:00040E64 CMP R2, R5 .text:00040E68 BNE loc_40EB8 .text:00040E6C MOV LR, #1 .text:00040E70 LDRB R2, [R9,LR] .text:00040E74 CMP R2, #0 .text:00040E78 BEQ loc_40EAC .text:00040E7C LDRB R3, [R12,R8] .text:00040E80 CMP R2, R3 .text:00040E84 BNE loc_40EAC .text:00040E88 SUB R1, R0, #2 .text:00040E8C .text:00040E8C loc_40E8C ; CODE XREF: __strtoll_internal+348j .text:00040E8C ADD LR, LR, #1 .text:00040E90 LDRB R2, [R9,LR] .text:00040E94 SUB R1, R1, #1 .text:00040E98 CMP R2, #0 .text:00040E9C BEQ loc_40EAC .text:00040EA0 LDRB R3, [R12,R1] .text:00040EA4 CMP R2, R3 .text:00040EA8 BEQ loc_40E8C .text:00040EAC .text:00040EAC loc_40EAC ; CODE XREF: __strtoll_internal+318j .text:00040EAC ; __strtoll_internal+324j ... .text:00040EAC LDRB R3, [R9,LR] .text:00040EB0 CMP R3, #0 .text:00040EB4 BEQ loc_40EC4 .text:00040EB8 .text:00040EB8 loc_40EB8 ; CODE XREF: __strtoll_internal+308j .text:00040EB8 SUB R12, R12, #1 .text:00040EBC CMP R12, R6 .text:00040EC0 BCS loc_40E5C .text:00040EC4 .text:00040EC4 loc_40EC4 ; CODE XREF: __strtoll_internal+2F0j .text:00040EC4 ; __strtoll_internal+354j .text:00040EC4 CMP R12, R6 .text:00040EC8 BCC loc_40F78 .text:00040ECC LDR R2, [R11,#var_54] .text:00040ED0 LDRB R1, [R2] .text:00040ED4 RSB R2, R12, R7 .text:00040ED8 ADD R3, R1, #1 .text:00040EDC CMP R2, R3 .text:00040EE0 BNE loc_41014 .text:00040EE4 SUB R8, R12, #1 .text:00040EE8 .text:00040EE8 loc_40EE8 ; CODE XREF: __strtoll_internal+414j .text:00040EE8 ; __strtoll_internal+4A8j .text:00040EE8 ADD R4, R4, #1 .text:00040EEC MOV R3, R4 .text:00040EF0 LDRB R2, [R3],#-1 .text:00040EF4 CMP R2, #0 .text:00040EF8 MOVEQ R4, R3 .text:00040EFC LDRB R1, [R4] .text:00040F00 SUB R12, R12, #1 .text:00040F04 CMP R1, #0xFF .text:00040F08 BNE loc_40F80 .text:00040F0C CMP R12, R6 .text:00040F10 BCC loc_40F70 .text:00040F14 .text:00040F14 loc_40F14 ; CODE XREF: __strtoll_internal+40Cj .text:00040F14 LDRB R1, [R9] .text:00040F18 MOV LR, #0 .text:00040F1C CMP R1, LR .text:00040F20 BEQ loc_40F58 .text:00040F24 ADD R2, R0, R12 .text:00040F28 B loc_40F4C .text:00040F28 ; --------------------------------------------------------------------------- .text:00040F2C off_40F2C DCD _nl_current_LC_NUMERIC .text:00040F2C ; DATA XREF: __strtoll_internal+30r .text:00040F30 off_40F30 DCD __ctype_b ; DATA XREF: __strtoll_internal+B0r .text:00040F30 ; __strtoll_internal+280r .text:00040F34 off_40F34 DCD __ctype_toupper ; DATA XREF: __strtoll_internal+140r .text:00040F34 ; __strtoll_internal+29Cr .text:00040F38 ; --------------------------------------------------------------------------- .text:00040F38 .text:00040F38 loc_40F38 ; CODE XREF: __strtoll_internal+3F4j .text:00040F38 ADD LR, LR, #1 .text:00040F3C LDRB R1, [R9,LR] .text:00040F40 SUB R2, R2, #1 .text:00040F44 CMP R1, #0 .text:00040F48 BEQ loc_40F58 .text:00040F4C .text:00040F4C loc_40F4C ; CODE XREF: __strtoll_internal+3C8j .text:00040F4C LDRB R3, [R2,#-1] .text:00040F50 CMP R1, R3 .text:00040F54 BEQ loc_40F38 .text:00040F58 .text:00040F58 loc_40F58 ; CODE XREF: __strtoll_internal+3C0j .text:00040F58 ; __strtoll_internal+3E8j .text:00040F58 LDRB R3, [R9,LR] .text:00040F5C CMP R3, #0 .text:00040F60 BEQ loc_40F70 .text:00040F64 SUB R12, R12, #1 .text:00040F68 CMP R12, R6 .text:00040F6C BCS loc_40F14 .text:00040F70 .text:00040F70 loc_40F70 ; CODE XREF: __strtoll_internal+3B0j .text:00040F70 ; __strtoll_internal+400j .text:00040F70 CMP R12, R6 .text:00040F74 BCS loc_40EE8 .text:00040F78 .text:00040F78 loc_40F78 ; CODE XREF: __strtoll_internal+368j .text:00040F78 ; __strtoll_internal+490j .text:00040F78 MOV R10, R7 .text:00040F7C B loc_4104C .text:00040F80 ; --------------------------------------------------------------------------- .text:00040F80 .text:00040F80 loc_40F80 ; CODE XREF: __strtoll_internal+3A8j .text:00040F80 CMP R12, R6 .text:00040F84 MOV R5, R12 .text:00040F88 BCC loc_40FDC .text:00040F8C .text:00040F8C loc_40F8C ; CODE XREF: __strtoll_internal+478j .text:00040F8C LDRB R1, [R9] .text:00040F90 MOV LR, #0 .text:00040F94 CMP R1, LR .text:00040F98 BEQ loc_40FC4 .text:00040F9C ADD R2, R0, R12 .text:00040FA0 B loc_40FB8 .text:00040FA4 ; --------------------------------------------------------------------------- .text:00040FA4 .text:00040FA4 loc_40FA4 ; CODE XREF: __strtoll_internal+460j .text:00040FA4 ADD LR, LR, #1 .text:00040FA8 LDRB R1, [R9,LR] .text:00040FAC SUB R2, R2, #1 .text:00040FB0 CMP R1, #0 .text:00040FB4 BEQ loc_40FC4 .text:00040FB8 .text:00040FB8 loc_40FB8 ; CODE XREF: __strtoll_internal+440j .text:00040FB8 LDRB R3, [R2,#-1] .text:00040FBC CMP R1, R3 .text:00040FC0 BEQ loc_40FA4 .text:00040FC4 .text:00040FC4 loc_40FC4 ; CODE XREF: __strtoll_internal+438j .text:00040FC4 ; __strtoll_internal+454j .text:00040FC4 LDRB R3, [R9,LR] .text:00040FC8 CMP R3, #0 .text:00040FCC BEQ loc_40FDC .text:00040FD0 SUB R12, R12, #1 .text:00040FD4 CMP R12, R6 .text:00040FD8 BCS loc_40F8C .text:00040FDC .text:00040FDC loc_40FDC ; CODE XREF: __strtoll_internal+428j .text:00040FDC ; __strtoll_internal+46Cj .text:00040FDC CMP R12, R6 .text:00040FE0 BCS loc_40FF4 .text:00040FE4 LDRB R2, [R4] .text:00040FE8 RSB R3, R12, R5 .text:00040FEC CMP R3, R2 .text:00040FF0 BLE loc_40F78 .text:00040FF4 .text:00040FF4 loc_40FF4 ; CODE XREF: __strtoll_internal+480j .text:00040FF4 CMP R12, R6 .text:00040FF8 BCC loc_4100C .text:00040FFC LDRB R2, [R4] .text:00041000 RSB R3, R12, R5 .text:00041004 CMP R3, R2 .text:00041008 BEQ loc_40EE8 .text:0004100C .text:0004100C loc_4100C ; CODE XREF: __strtoll_internal+498j .text:0004100C MOV R7, R8 .text:00041010 B loc_41020 .text:00041014 ; --------------------------------------------------------------------------- .text:00041014 .text:00041014 loc_41014 ; CODE XREF: __strtoll_internal+380j .text:00041014 ADDGT R3, R12, R1 .text:00041018 ADDGT R7, R3, #1 .text:0004101C MOVLE R7, R12 .text:00041020 .text:00041020 loc_41020 ; CODE XREF: __strtoll_internal+4B0j .text:00041020 CMP R7, R6 .text:00041024 BHI loc_40E44 .text:00041028 .text:00041028 loc_41028 ; CODE XREF: __strtoll_internal+2E0j .text:00041028 CMP R7, R6 .text:0004102C MOVCS R10, R7 .text:00041030 MOVCC R10, R6 .text:00041034 B loc_4104C .text:00041038 ; --------------------------------------------------------------------------- .text:00041038 .text:00041038 loc_41038 ; CODE XREF: __strtoll_internal+1ACj .text:00041038 LDR R2, [R11,#var_34] .text:0004103C SUB R12, R11, #-var_60 .text:00041040 LDR R10, [R11,#var_54] .text:00041044 MOV R3, R2,ASR#31 .text:00041048 STMIB R12, {R2,R3} .text:0004104C .text:0004104C loc_4104C ; CODE XREF: __strtoll_internal+218j .text:0004104C ; __strtoll_internal+2D0j ... .text:0004104C MOV R5, 0xFFFFFFFF .text:00041050 MOV R4, 0xFFFFFFFF .text:00041054 MOV R1, R5 .text:00041058 MOV R0, R4 .text:0004105C SUB R12, R11, #-var_60 .text:00041060 LDMIB R12, {R2,R3} .text:00041064 BL __udivdi3 .text:00041068 SUB R2, R11, #-var_40 .text:0004106C STMIA R2, {R0,R1} .text:00041070 MOV R1, R5 .text:00041074 MOV R0, R4 .text:00041078 SUB R12, R11, #-var_60 .text:0004107C LDMIB R12, {R2,R3} .text:00041080 BL __umoddi3 .text:00041084 MOV R1, #0 .text:00041088 STR R1, [R11,#var_4C] .text:0004108C STR R0, [R11,#var_44] .text:00041090 MOV R4, R1 .text:00041094 LDR R1, [R11,#var_34] .text:00041098 MOV R0, 0xFFFFFFFF .text:0004109C LDRB R5, [R6] .text:000410A0 BL __udivsi3 .text:000410A4 CMP R5, #0 .text:000410A8 BEQ loc_41180 .text:000410AC CMP R6, R10 .text:000410B0 BEQ loc_41180 .text:000410B4 LDR LR, =__ctype_b .text:000410B8 LDR R12, =__ctype_toupper .text:000410BC .text:000410BC loc_410BC ; CODE XREF: __strtoll_internal+61Cj .text:000410BC SUB R3, R5, #0x30 .text:000410C0 AND R3, R3, #0xFF .text:000410C4 CMP R3, #9 .text:000410C8 MOVLS R5, R3 .text:000410CC BLS loc_41154 .text:000410D0 LDR R2, [R11,#var_50] .text:000410D4 CMP R2, #0 .text:000410D8 BEQ loc_4112C .text:000410DC MOV R1, #0 .text:000410E0 CMP R1, R2 .text:000410E4 BCS loc_41118 .text:000410E8 LDRB R2, [R9] .text:000410EC LDRB R3, [R6] .text:000410F0 CMP R2, R3 .text:000410F4 BNE loc_41118 .text:000410F8 .text:000410F8 loc_410F8 ; CODE XREF: __strtoll_internal+5B4j .text:000410F8 LDR R3, [R11,#var_50] .text:000410FC ADD R1, R1, #1 .text:00041100 CMP R1, R3 .text:00041104 BCS loc_41118 .text:00041108 LDRB R2, [R9,R1] .text:0004110C LDRB R3, [R6,R1] .text:00041110 CMP R2, R3 .text:00041114 BEQ loc_410F8 .text:00041118 .text:00041118 loc_41118 ; CODE XREF: __strtoll_internal+584j .text:00041118 ; __strtoll_internal+594j ... .text:00041118 LDR R2, [R11,#var_50] .text:0004111C CMP R1, R2 .text:00041120 SUBEQ R3, R2, #1 .text:00041124 ADDEQ R6, R6, R3 .text:00041128 BEQ loc_4116C .text:0004112C .text:0004112C loc_4112C ; CODE XREF: __strtoll_internal+578j .text:0004112C LDR R3, [LR] .text:00041130 MOV R2, R5,LSL#1 .text:00041134 ADD R2, R2, R3 .text:00041138 LDRB R1, [R2,#1] .text:0004113C TST R1, #4 .text:00041140 BEQ loc_41180 .text:00041144 LDR R2, [R12] .text:00041148 LDR R3, [R2,R5,LSL#2] .text:0004114C SUB R3, R3, #0x37 .text:00041150 AND R5, R3, #0xFF .text:00041154 .text:00041154 loc_41154 ; CODE XREF: __strtoll_internal+56Cj .text:00041154 LDR R3, [R11,#var_34] .text:00041158 CMP R5, R3 .text:0004115C BGE loc_41180 .text:00041160 CMP R4, R0 .text:00041164 BCS loc_4128C .text:00041168 MLA R4, R3, R4, R5 .text:0004116C .text:0004116C loc_4116C ; CODE XREF: __strtoll_internal+5C8j .text:0004116C LDRB R5, [R6,#1]! .text:00041170 CMP R5, #0 .text:00041174 BEQ loc_41180 .text:00041178 CMP R6, R10 .text:0004117C BNE loc_410BC .text:00041180 .text:00041180 loc_41180 ; CODE XREF: __strtoll_internal+548j .text:00041180 ; __strtoll_internal+550j ... .text:00041180 MOV R7, R4 .text:00041184 MOV R8, #0 .text:00041188 B loc_412CC .text:0004118C ; --------------------------------------------------------------------------- .text:0004118C .text:0004118C loc_4118C ; CODE XREF: __strtoll_internal+768j .text:0004118C SUB R3, R5, #0x30 .text:00041190 AND R3, R3, #0xFF .text:00041194 CMP R3, #9 .text:00041198 MOVLS R5, R3 .text:0004119C BLS loc_41234 .text:000411A0 LDR R12, [R11,#var_50] .text:000411A4 CMP R12, #0 .text:000411A8 BEQ loc_41204 .text:000411AC MOV R1, #0 .text:000411B0 CMP R1, R12 .text:000411B4 BCS loc_411E4 .text:000411B8 LDRB R3, [R9] .text:000411BC CMP R3, R5 .text:000411C0 BNE loc_411E4 .text:000411C4 .text:000411C4 loc_411C4 ; CODE XREF: __strtoll_internal+680j .text:000411C4 LDR R0, [R11,#var_50] .text:000411C8 ADD R1, R1, #1 .text:000411CC CMP R1, R0 .text:000411D0 BCS loc_411E4 .text:000411D4 LDRB R2, [R9,R1] .text:000411D8 LDRB R3, [R6,R1] .text:000411DC CMP R2, R3 .text:000411E0 BEQ loc_411C4 .text:000411E4 .text:000411E4 loc_411E4 ; CODE XREF: __strtoll_internal+654j .text:000411E4 ; __strtoll_internal+660j ... .text:000411E4 LDR R2, [R11,#var_50] .text:000411E8 CMP R1, R2 .text:000411EC SUBEQ R3, R2, #1 .text:000411F0 ADDEQ R6, R6, R3 .text:000411F4 BEQ loc_412B8 .text:000411F8 LDR R12, =__ctype_b .text:000411FC LDR R3, [R12] .text:00041200 B loc_4120C .text:00041204 ; --------------------------------------------------------------------------- .text:00041204 .text:00041204 loc_41204 ; CODE XREF: __strtoll_internal+648j .text:00041204 LDR R0, =__ctype_b .text:00041208 LDR R3, [R0] .text:0004120C .text:0004120C loc_4120C ; CODE XREF: __strtoll_internal+6A0j .text:0004120C MOV R2, R5,LSL#1 .text:00041210 ADD R2, R2, R3 .text:00041214 LDRB R1, [R2,#1] .text:00041218 TST R1, #4 .text:0004121C BEQ loc_412CC .text:00041220 LDR R3, =__ctype_toupper .text:00041224 LDR R1, [R3] .text:00041228 LDR R2, [R1,R5,LSL#2] .text:0004122C SUB R2, R2, #0x37 .text:00041230 AND R5, R2, #0xFF .text:00041234 .text:00041234 loc_41234 ; CODE XREF: __strtoll_internal+63Cj .text:00041234 LDR R1, [R11,#var_34] .text:00041238 CMP R5, R1 .text:0004123C BGE loc_412CC .text:00041240 LDR R2, [R11,#var_3C] .text:00041244 CMP R8, R2 .text:00041248 BHI loc_41280 .text:0004124C BNE loc_4125C .text:00041250 LDR R3, [R11,#var_40] .text:00041254 CMP R7, R3 .text:00041258 BHI loc_41280 .text:0004125C .text:0004125C loc_4125C ; CODE XREF: __strtoll_internal+6ECj .text:0004125C LDR R12, [R11,#var_40] .text:00041260 CMP R7, R12 .text:00041264 BNE loc_41294 .text:00041268 LDR R0, [R11,#var_3C] .text:0004126C CMP R8, R0 .text:00041270 BNE loc_41294 .text:00041274 LDR R1, [R11,#var_44] .text:00041278 CMP R5, R1 .text:0004127C BLS loc_41294 .text:00041280 .text:00041280 loc_41280 ; CODE XREF: __strtoll_internal+6E8j .text:00041280 ; __strtoll_internal+6F8j .text:00041280 MOV R2, #1 .text:00041284 STR R2, [R11,#var_4C] .text:00041288 B loc_412B8 .text:0004128C ; --------------------------------------------------------------------------- .text:0004128C .text:0004128C loc_4128C ; CODE XREF: __strtoll_internal+604j .text:0004128C MOV R7, R4 .text:00041290 MOV R8, #0 .text:00041294 .text:00041294 loc_41294 ; CODE XREF: __strtoll_internal+704j .text:00041294 ; __strtoll_internal+710j ... .text:00041294 MOV R1, R8 .text:00041298 MOV R0, R7 .text:0004129C SUB R12, R11, #-var_60 .text:000412A0 LDMIB R12, {R2,R3} .text:000412A4 BL __muldi3 .text:000412A8 AND R7, R5, #0xFF .text:000412AC MOV R8, #0 .text:000412B0 ADDS R7, R7, R0 .text:000412B4 ADC R8, R8, R1 .text:000412B8 .text:000412B8 loc_412B8 ; CODE XREF: __strtoll_internal+694j .text:000412B8 ; __strtoll_internal+728j .text:000412B8 LDRB R5, [R6,#1]! .text:000412BC CMP R5, #0 .text:000412C0 BEQ loc_412CC .text:000412C4 CMP R6, R10 .text:000412C8 BNE loc_4118C .text:000412CC .text:000412CC loc_412CC ; CODE XREF: __strtoll_internal+628j .text:000412CC ; __strtoll_internal+6BCj ... .text:000412CC LDR R0, [R11,#var_48] .text:000412D0 CMP R6, R0 .text:000412D4 BEQ loc_413C4 .text:000412D8 LDR R1, [R11,#var_30] .text:000412DC CMP R1, #0 .text:000412E0 STRNE R6, [R1] .text:000412E4 LDR R2, [R11,#var_4C] .text:000412E8 CMP R2, #0 .text:000412EC BNE loc_41324 .text:000412F0 LDR R3, [R11,#var_38] .text:000412F4 CMP R3, #0 .text:000412F8 BEQ loc_41314 .text:000412FC CMP R8, #0x80000000 .text:00041300 BHI loc_4131C .text:00041304 BNE loc_41324 .text:00041308 CMP R7, #0 .text:0004130C BHI loc_4131C .text:00041310 B loc_41324 .text:00041314 ; --------------------------------------------------------------------------- .text:00041314 .text:00041314 loc_41314 ; CODE XREF: __strtoll_internal+798j .text:00041314 CMN R8, #0x80000001 .text:00041318 BLS loc_41324 .text:0004131C .text:0004131C loc_4131C ; CODE XREF: __strtoll_internal+7A0j .text:0004131C ; __strtoll_internal+7ACj .text:0004131C MOV R12, #1 .text:00041320 STR R12, [R11,#var_4C] .text:00041324 .text:00041324 loc_41324 ; CODE XREF: __strtoll_internal+78Cj .text:00041324 ; __strtoll_internal+7A4j ... .text:00041324 LDR R0, [R11,#var_4C] .text:00041328 CMP R0, #0 .text:0004132C BEQ loc_41384 .text:00041330 BL __errno_location .text:00041334 MOV R3, #0x22 .text:00041338 STR R3, [R0] .text:0004133C ADR R7, dword_41420 .text:00041340 LDMIA R7, {R7,R8} .text:00041344 LDR R1, [R11,#var_38] .text:00041348 ADR R5, dword_41428 .text:0004134C LDMIA R5, {R5,R6} .text:00041350 EOR R3, R1, #1 .text:00041354 MOV R4, #0 .text:00041358 RSBS R1, R3, #0 .text:0004135C RSC R2, R4, #0 .text:00041360 AND R7, R7, R1 .text:00041364 AND R8, R8, R2 .text:00041368 BIC R5, R5, R1 .text:0004136C BIC R6, R6, R2 .text:00041370 MOV R1, R8 .text:00041374 MOV R0, R7 .text:00041378 ORR R0, R0, R5 .text:0004137C ORR R1, R1, R6 .text:00041380 B locret_41444 .text:00041384 ; --------------------------------------------------------------------------- .text:00041384 .text:00041384 loc_41384 ; CODE XREF: __strtoll_internal+7CCj .text:00041384 LDR R2, [R11,#var_38] .text:00041388 RSBS R3, R7, #0 .text:0004138C RSC R4, R8, #0 .text:00041390 EOR R1, R2, #1 .text:00041394 MOV R2, #0 .text:00041398 RSBS R5, R1, #0 .text:0004139C RSC R6, R2, #0 .text:000413A0 AND R7, R7, R5 .text:000413A4 AND R8, R8, R6 .text:000413A8 BIC R3, R3, R5 .text:000413AC BIC R4, R4, R6 .text:000413B0 MOV R1, R8 .text:000413B4 MOV R0, R7 .text:000413B8 ORR R0, R0, R3 .text:000413BC ORR R1, R1, R4 .text:000413C0 B locret_41444 .text:000413C4 ; --------------------------------------------------------------------------- .text:000413C4 .text:000413C4 loc_413C4 ; CODE XREF: __strtoll_internal+F4j .text:000413C4 ; __strtoll_internal+774j .text:000413C4 LDR R3, [R11,#var_30] .text:000413C8 CMP R3, #0 .text:000413CC BEQ loc_4143C .text:000413D0 LDR R12, [R11,#var_48] .text:000413D4 LDR R0, [R11,#var_2C] .text:000413D8 RSB R3, R0, R12 .text:000413DC CMP R3, #1 .text:000413E0 BLE loc_41430 .text:000413E4 LDR R1, =__ctype_toupper .text:000413E8 LDRB R0, [R12,#-1] .text:000413EC LDR R3, [R1] .text:000413F0 LDR R2, [R3,R0,LSL#2] .text:000413F4 CMP R2, #0x58 .text:000413F8 BNE loc_41430 .text:000413FC LDRB R3, [R12,#-2] .text:00041400 CMP R3, #0x30 .text:00041404 BNE loc_41430 .text:00041408 LDR R1, [R11,#var_30] .text:0004140C SUB R3, R12, #1 .text:00041410 STR R3, [R1] .text:00041414 B loc_4143C .text:00041414 ; --------------------------------------------------------------------------- .text:00041418 off_41418 DCD __ctype_b ; DATA XREF: __strtoll_internal+554r .text:00041418 ; __strtoll_internal+698r ... .text:0004141C off_4141C DCD __ctype_toupper ; DATA XREF: __strtoll_internal+558r .text:0004141C ; __strtoll_internal+6C0r ... .text:00041420 dword_41420 DCD 0xFFFFFFFF, 0x7FFFFFFF .text:00041420 ; DATA XREF: __strtoll_internal+7DCo .text:00041428 dword_41428 DCD 0 ; DATA XREF: __strtoll_internal+7E8o .text:0004142C DCD 0x80000000 .text:00041430 ; --------------------------------------------------------------------------- .text:00041430 .text:00041430 loc_41430 ; CODE XREF: __strtoll_internal+880j .text:00041430 ; __strtoll_internal+898j ... .text:00041430 SUB R2, R11, #-var_30 .text:00041434 LDMIA R2, {R2,R3} .text:00041438 STR R3, [R2] .text:0004143C .text:0004143C loc_4143C ; CODE XREF: __strtoll_internal+A0j .text:0004143C ; __strtoll_internal+86Cj ... .text:0004143C MOV R1, #0 .text:00041440 MOV R0, #0 .text:00041444 .text:00041444 locret_41444 ; CODE XREF: __strtoll_internal+820j .text:00041444 ; __strtoll_internal+860j .text:00041444 LDMDB R11, {R4-R11,SP,PC} .text:00041444 ; End of function __strtoll_internal .text:00041444 .text:00041448 .text:00041448 ; =============== S U B R O U T I N E ======================================= .text:00041448 .text:00041448 ; Attributes: bp-based frame .text:00041448 .text:00041448 WEAK strtoq .text:00041448 strtoq .text:00041448 MOV R12, SP .text:0004144C STMFD SP!, {R11,R12,LR,PC} .text:00041450 SUB R11, R12, #4 .text:00041454 MOV R3, #0 .text:00041458 BL __strtoll_internal .text:0004145C LDMDB R11, {R11,SP,PC} .text:0004145C ; End of function strtoq .text:0004145C .text:00041460 .text:00041460 ; =============== S U B R O U T I N E ======================================= .text:00041460 .text:00041460 ; Attributes: bp-based frame .text:00041460 .text:00041460 EXPORT __strtoull_internal .text:00041460 __strtoull_internal ; CODE XREF: _IO_vfscanf+2818p .text:00041460 ; strtouq+10p ... .text:00041460 .text:00041460 var_60 = -0x60 .text:00041460 var_54 = -0x54 .text:00041460 var_50 = -0x50 .text:00041460 var_4C = -0x4C .text:00041460 var_48 = -0x48 .text:00041460 var_44 = -0x44 .text:00041460 var_40 = -0x40 .text:00041460 var_3C = -0x3C .text:00041460 var_38 = -0x38 .text:00041460 var_34 = -0x34 .text:00041460 var_30 = -0x30 .text:00041460 var_2C = -0x2C .text:00041460 .text:00041460 MOV R12, SP .text:00041464 STMFD SP!, {R4-R12,LR,PC} .text:00041468 SUB R11, R12, #4 .text:0004146C SUB SP, SP, #0x34 .text:00041470 STR R2, [R11,#var_34] .text:00041474 MOV R2, #0 .text:00041478 STR R2, [R11,#var_50] .text:0004147C STR R0, [R11,#var_2C] .text:00041480 MOV R9, R2 .text:00041484 CMP R3, R2 .text:00041488 STR R1, [R11,#var_30] .text:0004148C BEQ loc_414CC .text:00041490 LDR R3, =_nl_current_LC_NUMERIC .text:00041494 LDR R2, [R3] .text:00041498 LDR R3, [R2,#0x28] .text:0004149C STR R3, [R11,#var_54] .text:000414A0 LDRB R3, [R3] .text:000414A4 CMP R3, #0xFF .text:000414A8 CMPNE R3, #0 .text:000414AC STREQ R9, [R11,#var_54] .text:000414B0 BEQ loc_414D4 .text:000414B4 LDR R9, [R2,#0x24] .text:000414B8 LDRB R3, [R9] .text:000414BC CMP R3, #0 .text:000414C0 LDREQ R9, [R11,#var_50] .text:000414C4 STREQ R9, [R11,#var_54] .text:000414C8 B loc_414D4 .text:000414CC ; --------------------------------------------------------------------------- .text:000414CC .text:000414CC loc_414CC ; CODE XREF: __strtoull_internal+2Cj .text:000414CC LDR R12, [R11,#var_50] .text:000414D0 STR R12, [R11,#var_54] .text:000414D4 .text:000414D4 loc_414D4 ; CODE XREF: __strtoull_internal+50j .text:000414D4 ; __strtoull_internal+68j .text:000414D4 LDR R0, [R11,#var_34] .text:000414D8 CMP R0, #1 .text:000414DC MOVEQ R3, #1 .text:000414E0 MOVNE R3, R0,LSR#31 .text:000414E4 CMP R3, #0 .text:000414E8 BNE loc_414F4 .text:000414EC CMP R0, #0x24 .text:000414F0 BLE loc_41504 .text:000414F4 .text:000414F4 loc_414F4 ; CODE XREF: __strtoull_internal+88j .text:000414F4 BL __errno_location .text:000414F8 MOV R3, #0x16 .text:000414FC STR R3, [R0] .text:00041500 B loc_41CB8 .text:00041504 ; --------------------------------------------------------------------------- .text:00041504 .text:00041504 loc_41504 ; CODE XREF: __strtoull_internal+90j .text:00041504 LDR R1, [R11,#var_2C] .text:00041508 LDR R6, [R11,#var_2C] .text:0004150C LDRB R3, [R1] .text:00041510 LDR R1, =__ctype_b .text:00041514 LDR R0, [R1] .text:00041518 MOV R3, R3,LSL#1 .text:0004151C ADD R3, R3, R0 .text:00041520 LDRB R2, [R3,#1] .text:00041524 STR R6, [R11,#var_48] .text:00041528 TST R2, #0x20 .text:0004152C BEQ loc_4154C .text:00041530 MOV R1, R0 .text:00041534 .text:00041534 loc_41534 ; CODE XREF: __strtoull_internal+E8j .text:00041534 LDRB R3, [R6,#1]! .text:00041538 MOV R3, R3,LSL#1 .text:0004153C ADD R3, R3, R1 .text:00041540 LDRB R2, [R3,#1] .text:00041544 TST R2, #0x20 .text:00041548 BNE loc_41534 .text:0004154C .text:0004154C loc_4154C ; CODE XREF: __strtoull_internal+CCj .text:0004154C LDRB R3, [R6] .text:00041550 CMP R3, #0 .text:00041554 BEQ loc_41C48 .text:00041558 CMP R3, #0x2D .text:0004155C MOVEQ R2, #1 .text:00041560 ADDEQ R6, R6, R2 .text:00041564 STREQ R2, [R11,#var_38] .text:00041568 BEQ loc_41584 .text:0004156C CMP R3, #0x2B .text:00041570 MOVEQ R3, #0 .text:00041574 ADDEQ R6, R6, #1 .text:00041578 STREQ R3, [R11,#var_38] .text:0004157C MOVNE R12, #0 .text:00041580 STRNE R12, [R11,#var_38] .text:00041584 .text:00041584 loc_41584 ; CODE XREF: __strtoull_internal+108j .text:00041584 LDRB R3, [R6] .text:00041588 CMP R3, #0x30 .text:0004158C BNE loc_415DC .text:00041590 LDR R0, [R11,#var_34] .text:00041594 CMP R0, #0x10 .text:00041598 CMPNE R0, #0 .text:0004159C BNE loc_415C4 .text:000415A0 LDR R1, =__ctype_toupper .text:000415A4 LDRB R0, [R6,#1] .text:000415A8 LDR R3, [R1] .text:000415AC LDR R2, [R3,R0,LSL#2] .text:000415B0 CMP R2, #0x58 .text:000415B4 ADDEQ R6, R6, #2 .text:000415B8 MOVEQ R1, #0x10 .text:000415BC STREQ R1, [R11,#var_34] .text:000415C0 BEQ loc_415F0 .text:000415C4 .text:000415C4 loc_415C4 ; CODE XREF: __strtoull_internal+13Cj .text:000415C4 LDR R2, [R11,#var_34] .text:000415C8 MOV R3, R2 .text:000415CC CMP R3, #0 .text:000415D0 MOVEQ R2, #8 .text:000415D4 STR R2, [R11,#var_34] .text:000415D8 B loc_415F0 .text:000415DC ; --------------------------------------------------------------------------- .text:000415DC .text:000415DC loc_415DC ; CODE XREF: __strtoull_internal+12Cj .text:000415DC LDR R12, [R11,#var_34] .text:000415E0 MOV R0, R12 .text:000415E4 CMP R0, #0 .text:000415E8 MOVEQ R12, #0xA .text:000415EC STR R12, [R11,#var_34] .text:000415F0 .text:000415F0 loc_415F0 ; CODE XREF: __strtoull_internal+160j .text:000415F0 ; __strtoull_internal+178j .text:000415F0 STR R6, [R11,#var_48] .text:000415F4 LDR R2, [R11,#var_34] .text:000415F8 LDR R1, [R11,#var_54] .text:000415FC CMP R2, #0xA .text:00041600 MOVNE R1, #0 .text:00041604 CMP R1, #0 .text:00041608 STR R1, [R11,#var_54] .text:0004160C BEQ loc_41938 .text:00041610 MOV R0, R9 .text:00041614 BL strlen .text:00041618 STR R0, [R11,#var_50] .text:0004161C MOV R1, #0 .text:00041620 LDR R2, [R11,#var_34] .text:00041624 SUB R12, R11, #-var_60 .text:00041628 LDR R10, [R11,#var_48] .text:0004162C MOV R3, R2,ASR#31 .text:00041630 STMIB R12, {R2,R3} .text:00041634 CMP R1, R0 .text:00041638 BCS loc_41670 .text:0004163C LDR R12, [R11,#var_48] .text:00041640 LDRB R2, [R9] .text:00041644 LDRB R3, [R12] .text:00041648 CMP R2, R3 .text:0004164C BNE loc_41670 .text:00041650 .text:00041650 loc_41650 ; CODE XREF: __strtoull_internal+20Cj .text:00041650 LDR R0, [R11,#var_50] .text:00041654 ADD R1, R1, #1 .text:00041658 CMP R1, R0 .text:0004165C BCS loc_41670 .text:00041660 LDRB R2, [R9,R1] .text:00041664 LDRB R3, [R6,R1] .text:00041668 CMP R2, R3 .text:0004166C BEQ loc_41650 .text:00041670 .text:00041670 loc_41670 ; CODE XREF: __strtoull_internal+1D8j .text:00041670 ; __strtoull_internal+1ECj ... .text:00041670 LDR R2, [R11,#var_50] .text:00041674 CMP R1, R2 .text:00041678 BCS loc_4194C .text:0004167C LDRB R5, [R6] .text:00041680 CMP R5, #0 .text:00041684 BEQ loc_41724 .text:00041688 .text:00041688 loc_41688 ; CODE XREF: __strtoull_internal+2C0j .text:00041688 SUB R3, R5, #0x30 .text:0004168C CMP R3, #9 .text:00041690 BLS loc_41718 .text:00041694 LDR R3, [R11,#var_50] .text:00041698 MOV R1, #0 .text:0004169C CMP R1, R3 .text:000416A0 BCS loc_416D4 .text:000416A4 LDRB R2, [R9] .text:000416A8 LDRB R3, [R10] .text:000416AC CMP R2, R3 .text:000416B0 BNE loc_416D4 .text:000416B4 .text:000416B4 loc_416B4 ; CODE XREF: __strtoull_internal+270j .text:000416B4 LDR R12, [R11,#var_50] .text:000416B8 ADD R1, R1, #1 .text:000416BC CMP R1, R12 .text:000416C0 BCS loc_416D4 .text:000416C4 LDRB R2, [R9,R1] .text:000416C8 LDRB R3, [R10,R1] .text:000416CC CMP R2, R3 .text:000416D0 BEQ loc_416B4 .text:000416D4 .text:000416D4 loc_416D4 ; CODE XREF: __strtoull_internal+240j .text:000416D4 ; __strtoull_internal+250j ... .text:000416D4 LDR R0, [R11,#var_50] .text:000416D8 CMP R1, R0 .text:000416DC BCS loc_41718 .text:000416E0 LDR R1, =__ctype_b .text:000416E4 LDR R3, [R1] .text:000416E8 MOV R2, R5,LSL#1 .text:000416EC ADD R2, R2, R3 .text:000416F0 LDRB R1, [R2,#1] .text:000416F4 TST R1, #4 .text:000416F8 BEQ loc_41724 .text:000416FC LDR R3, =__ctype_toupper .text:00041700 LDR R1, [R3] .text:00041704 LDR R2, [R1,R5,LSL#2] .text:00041708 LDR R3, [R11,#var_34] .text:0004170C SUB R2, R2, #0x37 .text:00041710 CMP R2, R3 .text:00041714 BGE loc_41724 .text:00041718 .text:00041718 loc_41718 ; CODE XREF: __strtoull_internal+230j .text:00041718 ; __strtoull_internal+27Cj .text:00041718 LDRB R5, [R10,#1]! .text:0004171C CMP R5, #0 .text:00041720 BNE loc_41688 .text:00041724 .text:00041724 loc_41724 ; CODE XREF: __strtoull_internal+224j .text:00041724 ; __strtoull_internal+298j ... .text:00041724 LDR R12, [R11,#var_54] .text:00041728 MOV R7, R10 .text:0004172C CMP R12, #0 .text:00041730 BEQ loc_4194C .text:00041734 MOV R0, R9 .text:00041738 BL strlen .text:0004173C CMP R10, R6 .text:00041740 BLS loc_41928 .text:00041744 .text:00041744 loc_41744 ; CODE XREF: __strtoull_internal+4C4j .text:00041744 SUB R12, R7, #1 .text:00041748 CMP R12, R6 .text:0004174C LDR R4, [R11,#var_54] .text:00041750 BCC loc_417C4 .text:00041754 SUB R8, R0, #2 .text:00041758 LDRB R5, [R9] .text:0004175C .text:0004175C loc_4175C ; CODE XREF: __strtoull_internal+360j .text:0004175C ADD R3, R0, R12 .text:00041760 LDRB R2, [R3,#-1] .text:00041764 CMP R2, R5 .text:00041768 BNE loc_417B8 .text:0004176C MOV LR, #1 .text:00041770 LDRB R2, [R9,LR] .text:00041774 CMP R2, #0 .text:00041778 BEQ loc_417AC .text:0004177C LDRB R3, [R12,R8] .text:00041780 CMP R2, R3 .text:00041784 BNE loc_417AC .text:00041788 SUB R1, R0, #2 .text:0004178C .text:0004178C loc_4178C ; CODE XREF: __strtoull_internal+348j .text:0004178C ADD LR, LR, #1 .text:00041790 LDRB R2, [R9,LR] .text:00041794 SUB R1, R1, #1 .text:00041798 CMP R2, #0 .text:0004179C BEQ loc_417AC .text:000417A0 LDRB R3, [R12,R1] .text:000417A4 CMP R2, R3 .text:000417A8 BEQ loc_4178C .text:000417AC .text:000417AC loc_417AC ; CODE XREF: __strtoull_internal+318j .text:000417AC ; __strtoull_internal+324j ... .text:000417AC LDRB R3, [R9,LR] .text:000417B0 CMP R3, #0 .text:000417B4 BEQ loc_417C4 .text:000417B8 .text:000417B8 loc_417B8 ; CODE XREF: __strtoull_internal+308j .text:000417B8 SUB R12, R12, #1 .text:000417BC CMP R12, R6 .text:000417C0 BCS loc_4175C .text:000417C4 .text:000417C4 loc_417C4 ; CODE XREF: __strtoull_internal+2F0j .text:000417C4 ; __strtoull_internal+354j .text:000417C4 CMP R12, R6 .text:000417C8 BCC loc_41878 .text:000417CC LDR R2, [R11,#var_54] .text:000417D0 LDRB R1, [R2] .text:000417D4 RSB R2, R12, R7 .text:000417D8 ADD R3, R1, #1 .text:000417DC CMP R2, R3 .text:000417E0 BNE loc_41914 .text:000417E4 SUB R8, R12, #1 .text:000417E8 .text:000417E8 loc_417E8 ; CODE XREF: __strtoull_internal+414j .text:000417E8 ; __strtoull_internal+4A8j .text:000417E8 ADD R4, R4, #1 .text:000417EC MOV R3, R4 .text:000417F0 LDRB R2, [R3],#-1 .text:000417F4 CMP R2, #0 .text:000417F8 MOVEQ R4, R3 .text:000417FC LDRB R1, [R4] .text:00041800 SUB R12, R12, #1 .text:00041804 CMP R1, #0xFF .text:00041808 BNE loc_41880 .text:0004180C CMP R12, R6 .text:00041810 BCC loc_41870 .text:00041814 .text:00041814 loc_41814 ; CODE XREF: __strtoull_internal+40Cj .text:00041814 LDRB R1, [R9] .text:00041818 MOV LR, #0 .text:0004181C CMP R1, LR .text:00041820 BEQ loc_41858 .text:00041824 ADD R2, R0, R12 .text:00041828 B loc_4184C .text:00041828 ; --------------------------------------------------------------------------- .text:0004182C off_4182C DCD _nl_current_LC_NUMERIC .text:0004182C ; DATA XREF: __strtoull_internal+30r .text:00041830 off_41830 DCD __ctype_b ; DATA XREF: __strtoull_internal+B0r .text:00041830 ; __strtoull_internal+280r .text:00041834 off_41834 DCD __ctype_toupper ; DATA XREF: __strtoull_internal+140r .text:00041834 ; __strtoull_internal+29Cr .text:00041838 ; --------------------------------------------------------------------------- .text:00041838 .text:00041838 loc_41838 ; CODE XREF: __strtoull_internal+3F4j .text:00041838 ADD LR, LR, #1 .text:0004183C LDRB R1, [R9,LR] .text:00041840 SUB R2, R2, #1 .text:00041844 CMP R1, #0 .text:00041848 BEQ loc_41858 .text:0004184C .text:0004184C loc_4184C ; CODE XREF: __strtoull_internal+3C8j .text:0004184C LDRB R3, [R2,#-1] .text:00041850 CMP R1, R3 .text:00041854 BEQ loc_41838 .text:00041858 .text:00041858 loc_41858 ; CODE XREF: __strtoull_internal+3C0j .text:00041858 ; __strtoull_internal+3E8j .text:00041858 LDRB R3, [R9,LR] .text:0004185C CMP R3, #0 .text:00041860 BEQ loc_41870 .text:00041864 SUB R12, R12, #1 .text:00041868 CMP R12, R6 .text:0004186C BCS loc_41814 .text:00041870 .text:00041870 loc_41870 ; CODE XREF: __strtoull_internal+3B0j .text:00041870 ; __strtoull_internal+400j .text:00041870 CMP R12, R6 .text:00041874 BCS loc_417E8 .text:00041878 .text:00041878 loc_41878 ; CODE XREF: __strtoull_internal+368j .text:00041878 ; __strtoull_internal+490j .text:00041878 MOV R10, R7 .text:0004187C B loc_4194C .text:00041880 ; --------------------------------------------------------------------------- .text:00041880 .text:00041880 loc_41880 ; CODE XREF: __strtoull_internal+3A8j .text:00041880 CMP R12, R6 .text:00041884 MOV R5, R12 .text:00041888 BCC loc_418DC .text:0004188C .text:0004188C loc_4188C ; CODE XREF: __strtoull_internal+478j .text:0004188C LDRB R1, [R9] .text:00041890 MOV LR, #0 .text:00041894 CMP R1, LR .text:00041898 BEQ loc_418C4 .text:0004189C ADD R2, R0, R12 .text:000418A0 B loc_418B8 .text:000418A4 ; --------------------------------------------------------------------------- .text:000418A4 .text:000418A4 loc_418A4 ; CODE XREF: __strtoull_internal+460j .text:000418A4 ADD LR, LR, #1 .text:000418A8 LDRB R1, [R9,LR] .text:000418AC SUB R2, R2, #1 .text:000418B0 CMP R1, #0 .text:000418B4 BEQ loc_418C4 .text:000418B8 .text:000418B8 loc_418B8 ; CODE XREF: __strtoull_internal+440j .text:000418B8 LDRB R3, [R2,#-1] .text:000418BC CMP R1, R3 .text:000418C0 BEQ loc_418A4 .text:000418C4 .text:000418C4 loc_418C4 ; CODE XREF: __strtoull_internal+438j .text:000418C4 ; __strtoull_internal+454j .text:000418C4 LDRB R3, [R9,LR] .text:000418C8 CMP R3, #0 .text:000418CC BEQ loc_418DC .text:000418D0 SUB R12, R12, #1 .text:000418D4 CMP R12, R6 .text:000418D8 BCS loc_4188C .text:000418DC .text:000418DC loc_418DC ; CODE XREF: __strtoull_internal+428j .text:000418DC ; __strtoull_internal+46Cj .text:000418DC CMP R12, R6 .text:000418E0 BCS loc_418F4 .text:000418E4 LDRB R2, [R4] .text:000418E8 RSB R3, R12, R5 .text:000418EC CMP R3, R2 .text:000418F0 BLE loc_41878 .text:000418F4 .text:000418F4 loc_418F4 ; CODE XREF: __strtoull_internal+480j .text:000418F4 CMP R12, R6 .text:000418F8 BCC loc_4190C .text:000418FC LDRB R2, [R4] .text:00041900 RSB R3, R12, R5 .text:00041904 CMP R3, R2 .text:00041908 BEQ loc_417E8 .text:0004190C .text:0004190C loc_4190C ; CODE XREF: __strtoull_internal+498j .text:0004190C MOV R7, R8 .text:00041910 B loc_41920 .text:00041914 ; --------------------------------------------------------------------------- .text:00041914 .text:00041914 loc_41914 ; CODE XREF: __strtoull_internal+380j .text:00041914 ADDGT R3, R12, R1 .text:00041918 ADDGT R7, R3, #1 .text:0004191C MOVLE R7, R12 .text:00041920 .text:00041920 loc_41920 ; CODE XREF: __strtoull_internal+4B0j .text:00041920 CMP R7, R6 .text:00041924 BHI loc_41744 .text:00041928 .text:00041928 loc_41928 ; CODE XREF: __strtoull_internal+2E0j .text:00041928 CMP R7, R6 .text:0004192C MOVCS R10, R7 .text:00041930 MOVCC R10, R6 .text:00041934 B loc_4194C .text:00041938 ; --------------------------------------------------------------------------- .text:00041938 .text:00041938 loc_41938 ; CODE XREF: __strtoull_internal+1ACj .text:00041938 LDR R2, [R11,#var_34] .text:0004193C SUB R12, R11, #-var_60 .text:00041940 LDR R10, [R11,#var_54] .text:00041944 MOV R3, R2,ASR#31 .text:00041948 STMIB R12, {R2,R3} .text:0004194C .text:0004194C loc_4194C ; CODE XREF: __strtoull_internal+218j .text:0004194C ; __strtoull_internal+2D0j ... .text:0004194C MOV R5, 0xFFFFFFFF .text:00041950 MOV R4, 0xFFFFFFFF .text:00041954 MOV R1, R5 .text:00041958 MOV R0, R4 .text:0004195C SUB R12, R11, #-var_60 .text:00041960 LDMIB R12, {R2,R3} .text:00041964 BL __udivdi3 .text:00041968 SUB R2, R11, #-var_40 .text:0004196C STMIA R2, {R0,R1} .text:00041970 MOV R1, R5 .text:00041974 MOV R0, R4 .text:00041978 SUB R12, R11, #-var_60 .text:0004197C LDMIB R12, {R2,R3} .text:00041980 BL __umoddi3 .text:00041984 MOV R1, #0 .text:00041988 STR R1, [R11,#var_4C] .text:0004198C STR R0, [R11,#var_44] .text:00041990 MOV R4, R1 .text:00041994 LDR R1, [R11,#var_34] .text:00041998 MOV R0, 0xFFFFFFFF .text:0004199C LDRB R5, [R6] .text:000419A0 BL __udivsi3 .text:000419A4 CMP R5, #0 .text:000419A8 BEQ loc_41A80 .text:000419AC CMP R6, R10 .text:000419B0 BEQ loc_41A80 .text:000419B4 LDR LR, =__ctype_b .text:000419B8 LDR R12, =__ctype_toupper .text:000419BC .text:000419BC loc_419BC ; CODE XREF: __strtoull_internal+61Cj .text:000419BC SUB R3, R5, #0x30 .text:000419C0 AND R3, R3, #0xFF .text:000419C4 CMP R3, #9 .text:000419C8 MOVLS R5, R3 .text:000419CC BLS loc_41A54 .text:000419D0 LDR R2, [R11,#var_50] .text:000419D4 CMP R2, #0 .text:000419D8 BEQ loc_41A2C .text:000419DC MOV R1, #0 .text:000419E0 CMP R1, R2 .text:000419E4 BCS loc_41A18 .text:000419E8 LDRB R2, [R9] .text:000419EC LDRB R3, [R6] .text:000419F0 CMP R2, R3 .text:000419F4 BNE loc_41A18 .text:000419F8 .text:000419F8 loc_419F8 ; CODE XREF: __strtoull_internal+5B4j .text:000419F8 LDR R3, [R11,#var_50] .text:000419FC ADD R1, R1, #1 .text:00041A00 CMP R1, R3 .text:00041A04 BCS loc_41A18 .text:00041A08 LDRB R2, [R9,R1] .text:00041A0C LDRB R3, [R6,R1] .text:00041A10 CMP R2, R3 .text:00041A14 BEQ loc_419F8 .text:00041A18 .text:00041A18 loc_41A18 ; CODE XREF: __strtoull_internal+584j .text:00041A18 ; __strtoull_internal+594j ... .text:00041A18 LDR R2, [R11,#var_50] .text:00041A1C CMP R1, R2 .text:00041A20 SUBEQ R3, R2, #1 .text:00041A24 ADDEQ R6, R6, R3 .text:00041A28 BEQ loc_41A6C .text:00041A2C .text:00041A2C loc_41A2C ; CODE XREF: __strtoull_internal+578j .text:00041A2C LDR R3, [LR] .text:00041A30 MOV R2, R5,LSL#1 .text:00041A34 ADD R2, R2, R3 .text:00041A38 LDRB R1, [R2,#1] .text:00041A3C TST R1, #4 .text:00041A40 BEQ loc_41A80 .text:00041A44 LDR R2, [R12] .text:00041A48 LDR R3, [R2,R5,LSL#2] .text:00041A4C SUB R3, R3, #0x37 .text:00041A50 AND R5, R3, #0xFF .text:00041A54 .text:00041A54 loc_41A54 ; CODE XREF: __strtoull_internal+56Cj .text:00041A54 LDR R3, [R11,#var_34] .text:00041A58 CMP R5, R3 .text:00041A5C BGE loc_41A80 .text:00041A60 CMP R4, R0 .text:00041A64 BCS loc_41B8C .text:00041A68 MLA R4, R3, R4, R5 .text:00041A6C .text:00041A6C loc_41A6C ; CODE XREF: __strtoull_internal+5C8j .text:00041A6C LDRB R5, [R6,#1]! .text:00041A70 CMP R5, #0 .text:00041A74 BEQ loc_41A80 .text:00041A78 CMP R6, R10 .text:00041A7C BNE loc_419BC .text:00041A80 .text:00041A80 loc_41A80 ; CODE XREF: __strtoull_internal+548j .text:00041A80 ; __strtoull_internal+550j ... .text:00041A80 MOV R7, R4 .text:00041A84 MOV R8, #0 .text:00041A88 B loc_41BCC .text:00041A8C ; --------------------------------------------------------------------------- .text:00041A8C .text:00041A8C loc_41A8C ; CODE XREF: __strtoull_internal+768j .text:00041A8C SUB R3, R5, #0x30 .text:00041A90 AND R3, R3, #0xFF .text:00041A94 CMP R3, #9 .text:00041A98 MOVLS R5, R3 .text:00041A9C BLS loc_41B34 .text:00041AA0 LDR R12, [R11,#var_50] .text:00041AA4 CMP R12, #0 .text:00041AA8 BEQ loc_41B04 .text:00041AAC MOV R1, #0 .text:00041AB0 CMP R1, R12 .text:00041AB4 BCS loc_41AE4 .text:00041AB8 LDRB R3, [R9] .text:00041ABC CMP R3, R5 .text:00041AC0 BNE loc_41AE4 .text:00041AC4 .text:00041AC4 loc_41AC4 ; CODE XREF: __strtoull_internal+680j .text:00041AC4 LDR R0, [R11,#var_50] .text:00041AC8 ADD R1, R1, #1 .text:00041ACC CMP R1, R0 .text:00041AD0 BCS loc_41AE4 .text:00041AD4 LDRB R2, [R9,R1] .text:00041AD8 LDRB R3, [R6,R1] .text:00041ADC CMP R2, R3 .text:00041AE0 BEQ loc_41AC4 .text:00041AE4 .text:00041AE4 loc_41AE4 ; CODE XREF: __strtoull_internal+654j .text:00041AE4 ; __strtoull_internal+660j ... .text:00041AE4 LDR R2, [R11,#var_50] .text:00041AE8 CMP R1, R2 .text:00041AEC SUBEQ R3, R2, #1 .text:00041AF0 ADDEQ R6, R6, R3 .text:00041AF4 BEQ loc_41BB8 .text:00041AF8 LDR R12, =__ctype_b .text:00041AFC LDR R3, [R12] .text:00041B00 B loc_41B0C .text:00041B04 ; --------------------------------------------------------------------------- .text:00041B04 .text:00041B04 loc_41B04 ; CODE XREF: __strtoull_internal+648j .text:00041B04 LDR R0, =__ctype_b .text:00041B08 LDR R3, [R0] .text:00041B0C .text:00041B0C loc_41B0C ; CODE XREF: __strtoull_internal+6A0j .text:00041B0C MOV R2, R5,LSL#1 .text:00041B10 ADD R2, R2, R3 .text:00041B14 LDRB R1, [R2,#1] .text:00041B18 TST R1, #4 .text:00041B1C BEQ loc_41BCC .text:00041B20 LDR R3, =__ctype_toupper .text:00041B24 LDR R1, [R3] .text:00041B28 LDR R2, [R1,R5,LSL#2] .text:00041B2C SUB R2, R2, #0x37 .text:00041B30 AND R5, R2, #0xFF .text:00041B34 .text:00041B34 loc_41B34 ; CODE XREF: __strtoull_internal+63Cj .text:00041B34 LDR R1, [R11,#var_34] .text:00041B38 CMP R5, R1 .text:00041B3C BGE loc_41BCC .text:00041B40 LDR R2, [R11,#var_3C] .text:00041B44 CMP R8, R2 .text:00041B48 BHI loc_41B80 .text:00041B4C BNE loc_41B5C .text:00041B50 LDR R3, [R11,#var_40] .text:00041B54 CMP R7, R3 .text:00041B58 BHI loc_41B80 .text:00041B5C .text:00041B5C loc_41B5C ; CODE XREF: __strtoull_internal+6ECj .text:00041B5C LDR R12, [R11,#var_40] .text:00041B60 CMP R7, R12 .text:00041B64 BNE loc_41B94 .text:00041B68 LDR R0, [R11,#var_3C] .text:00041B6C CMP R8, R0 .text:00041B70 BNE loc_41B94 .text:00041B74 LDR R1, [R11,#var_44] .text:00041B78 CMP R5, R1 .text:00041B7C BLS loc_41B94 .text:00041B80 .text:00041B80 loc_41B80 ; CODE XREF: __strtoull_internal+6E8j .text:00041B80 ; __strtoull_internal+6F8j .text:00041B80 MOV R2, #1 .text:00041B84 STR R2, [R11,#var_4C] .text:00041B88 B loc_41BB8 .text:00041B8C ; --------------------------------------------------------------------------- .text:00041B8C .text:00041B8C loc_41B8C ; CODE XREF: __strtoull_internal+604j .text:00041B8C MOV R7, R4 .text:00041B90 MOV R8, #0 .text:00041B94 .text:00041B94 loc_41B94 ; CODE XREF: __strtoull_internal+704j .text:00041B94 ; __strtoull_internal+710j ... .text:00041B94 MOV R1, R8 .text:00041B98 MOV R0, R7 .text:00041B9C SUB R12, R11, #-var_60 .text:00041BA0 LDMIB R12, {R2,R3} .text:00041BA4 BL __muldi3 .text:00041BA8 AND R7, R5, #0xFF .text:00041BAC MOV R8, #0 .text:00041BB0 ADDS R7, R7, R0 .text:00041BB4 ADC R8, R8, R1 .text:00041BB8 .text:00041BB8 loc_41BB8 ; CODE XREF: __strtoull_internal+694j .text:00041BB8 ; __strtoull_internal+728j .text:00041BB8 LDRB R5, [R6,#1]! .text:00041BBC CMP R5, #0 .text:00041BC0 BEQ loc_41BCC .text:00041BC4 CMP R6, R10 .text:00041BC8 BNE loc_41A8C .text:00041BCC .text:00041BCC loc_41BCC ; CODE XREF: __strtoull_internal+628j .text:00041BCC ; __strtoull_internal+6BCj ... .text:00041BCC LDR R0, [R11,#var_48] .text:00041BD0 CMP R6, R0 .text:00041BD4 BEQ loc_41C48 .text:00041BD8 LDR R1, [R11,#var_30] .text:00041BDC CMP R1, #0 .text:00041BE0 STRNE R6, [R1] .text:00041BE4 LDR R2, [R11,#var_4C] .text:00041BE8 CMP R2, #0 .text:00041BEC BEQ loc_41C08 .text:00041BF0 BL __errno_location .text:00041BF4 MOV R3, #0x22 .text:00041BF8 STR R3, [R0] .text:00041BFC MOV R1, 0xFFFFFFFF .text:00041C00 MOV R0, 0xFFFFFFFF .text:00041C04 B locret_41CC0 .text:00041C08 ; --------------------------------------------------------------------------- .text:00041C08 .text:00041C08 loc_41C08 ; CODE XREF: __strtoull_internal+78Cj .text:00041C08 LDR R12, [R11,#var_38] .text:00041C0C RSBS R3, R7, #0 .text:00041C10 RSC R4, R8, #0 .text:00041C14 EOR R1, R12, #1 .text:00041C18 MOV R2, #0 .text:00041C1C RSBS R5, R1, #0 .text:00041C20 RSC R6, R2, #0 .text:00041C24 AND R7, R7, R5 .text:00041C28 AND R8, R8, R6 .text:00041C2C BIC R3, R3, R5 .text:00041C30 BIC R4, R4, R6 .text:00041C34 MOV R1, R8 .text:00041C38 MOV R0, R7 .text:00041C3C ORR R0, R0, R3 .text:00041C40 ORR R1, R1, R4 .text:00041C44 B locret_41CC0 .text:00041C48 ; --------------------------------------------------------------------------- .text:00041C48 .text:00041C48 loc_41C48 ; CODE XREF: __strtoull_internal+F4j .text:00041C48 ; __strtoull_internal+774j .text:00041C48 LDR R0, [R11,#var_30] .text:00041C4C CMP R0, #0 .text:00041C50 BEQ loc_41CB8 .text:00041C54 LDR R1, [R11,#var_48] .text:00041C58 LDR R2, [R11,#var_2C] .text:00041C5C RSB R3, R2, R1 .text:00041C60 CMP R3, #1 .text:00041C64 BLE loc_41CAC .text:00041C68 LDR R3, [R11,#var_48] .text:00041C6C LDR R1, =__ctype_toupper .text:00041C70 LDRB R0, [R3,#-1] .text:00041C74 LDR R3, [R1] .text:00041C78 LDR R2, [R3,R0,LSL#2] .text:00041C7C CMP R2, #0x58 .text:00041C80 BNE loc_41CAC .text:00041C84 LDR R12, [R11,#var_48] .text:00041C88 LDRB R3, [R12,#-2] .text:00041C8C CMP R3, #0x30 .text:00041C90 BNE loc_41CAC .text:00041C94 LDR R0, [R11,#var_30] .text:00041C98 SUB R3, R12, #1 .text:00041C9C STR R3, [R0] .text:00041CA0 B loc_41CB8 .text:00041CA0 ; --------------------------------------------------------------------------- .text:00041CA4 off_41CA4 DCD __ctype_b ; DATA XREF: __strtoull_internal+554r .text:00041CA4 ; __strtoull_internal+698r ... .text:00041CA8 off_41CA8 DCD __ctype_toupper ; DATA XREF: __strtoull_internal+558r .text:00041CA8 ; __strtoull_internal+6C0r ... .text:00041CAC ; --------------------------------------------------------------------------- .text:00041CAC .text:00041CAC loc_41CAC ; CODE XREF: __strtoull_internal+804j .text:00041CAC ; __strtoull_internal+820j ... .text:00041CAC SUB R1, R11, #-var_30 .text:00041CB0 LDMIA R1, {R1,R2} .text:00041CB4 STR R2, [R1] .text:00041CB8 .text:00041CB8 loc_41CB8 ; CODE XREF: __strtoull_internal+A0j .text:00041CB8 ; __strtoull_internal+7F0j ... .text:00041CB8 MOV R1, #0 .text:00041CBC MOV R0, #0 .text:00041CC0 .text:00041CC0 locret_41CC0 ; CODE XREF: __strtoull_internal+7A4j .text:00041CC0 ; __strtoull_internal+7E4j .text:00041CC0 LDMDB R11, {R4-R11,SP,PC} .text:00041CC0 ; End of function __strtoull_internal .text:00041CC0 .text:00041CC4 .text:00041CC4 ; =============== S U B R O U T I N E ======================================= .text:00041CC4 .text:00041CC4 ; Attributes: bp-based frame .text:00041CC4 .text:00041CC4 WEAK strtouq .text:00041CC4 strtouq .text:00041CC4 MOV R12, SP .text:00041CC8 STMFD SP!, {R11,R12,LR,PC} .text:00041CCC SUB R11, R12, #4 .text:00041CD0 MOV R3, #0 .text:00041CD4 BL __strtoull_internal .text:00041CD8 LDMDB R11, {R11,SP,PC} .text:00041CD8 ; End of function strtouq .text:00041CD8 .text:00041CDC .text:00041CDC ; =============== S U B R O U T I N E ======================================= .text:00041CDC .text:00041CDC ; Attributes: bp-based frame .text:00041CDC .text:00041CDC EXPORT __strtof_internal .text:00041CDC __strtof_internal ; CODE XREF: _IO_vfscanf+4038p .text:00041CDC ; strtof+10p .text:00041CDC .text:00041CDC var_F0 = -0xF0 .text:00041CDC var_EC = -0xEC .text:00041CDC var_E8 = -0xE8 .text:00041CDC var_E4 = -0xE4 .text:00041CDC var_E0 = -0xE0 .text:00041CDC var_DC = -0xDC .text:00041CDC var_D8 = -0xD8 .text:00041CDC var_D4 = -0xD4 .text:00041CDC var_D0 = -0xD0 .text:00041CDC var_CC = -0xCC .text:00041CDC var_C8 = -0xC8 .text:00041CDC var_C4 = -0xC4 .text:00041CDC var_C0 = -0xC0 .text:00041CDC var_BC = -0xBC .text:00041CDC var_B8 = -0xB8 .text:00041CDC var_B4 = -0xB4 .text:00041CDC var_B0 = -0xB0 .text:00041CDC var_AC = -0xAC .text:00041CDC var_A8 = -0xA8 .text:00041CDC var_A4 = -0xA4 .text:00041CDC var_A0 = -0xA0 .text:00041CDC var_9C = -0x9C .text:00041CDC var_98 = -0x98 .text:00041CDC var_94 = -0x94 .text:00041CDC var_90 = -0x90 .text:00041CDC var_8C = -0x8C .text:00041CDC var_88 = -0x88 .text:00041CDC var_84 = -0x84 .text:00041CDC var_80 = -0x80 .text:00041CDC var_7C = -0x7C .text:00041CDC var_78 = -0x78 .text:00041CDC var_74 = -0x74 .text:00041CDC var_70 = -0x70 .text:00041CDC var_6C = -0x6C .text:00041CDC var_68 = -0x68 .text:00041CDC var_64 = -0x64 .text:00041CDC var_48 = -0x48 .text:00041CDC var_44 = -0x44 .text:00041CDC .text:00041CDC MOV R12, SP .text:00041CE0 STMFD SP!, {R4-R12,LR,PC} .text:00041CE4 SUB R11, R12, #4 .text:00041CE8 MOV R3, #0xA .text:00041CEC SUB SP, SP, #0xC4 .text:00041CF0 STR R3, [R11,#var_88] .text:00041CF4 MOV R6, #0 .text:00041CF8 STR R6, [R11,#var_A8] .text:00041CFC STR R0, [R11,#var_7C] .text:00041D00 CMP R2, R6 .text:00041D04 STR R1, [R11,#var_80] .text:00041D08 BEQ loc_41D4C .text:00041D0C LDR R2, =_nl_current_LC_NUMERIC .text:00041D10 LDR R1, [R2] .text:00041D14 LDR R12, [R1,#0x28] .text:00041D18 STR R12, [R11,#var_AC] .text:00041D1C LDRB R3, [R12] .text:00041D20 CMP R3, #0xFF .text:00041D24 CMPNE R3, R6 .text:00041D28 STREQ R6, [R11,#var_AC] .text:00041D2C BEQ loc_41D58 .text:00041D30 LDR R1, [R1,#0x24] .text:00041D34 STR R1, [R11,#var_A8] .text:00041D38 LDRB R3, [R1] .text:00041D3C CMP R3, #0 .text:00041D40 STREQ R3, [R11,#var_A8] .text:00041D44 STREQ R3, [R11,#var_AC] .text:00041D48 B loc_41D58 .text:00041D4C ; --------------------------------------------------------------------------- .text:00041D4C .text:00041D4C loc_41D4C ; CODE XREF: __strtof_internal+2Cj .text:00041D4C LDR LR, [R11,#var_A8] .text:00041D50 LDR R2, =_nl_current_LC_NUMERIC .text:00041D54 STR LR, [R11,#var_AC] .text:00041D58 .text:00041D58 loc_41D58 ; CODE XREF: __strtof_internal+50j .text:00041D58 ; __strtof_internal+6Cj .text:00041D58 LDR R3, [R2] .text:00041D5C LDR R3, [R3,#0x20] .text:00041D60 STR R3, [R11,#var_A0] .text:00041D64 MOV R0, R3 .text:00041D68 BL strlen .text:00041D6C MOV R3, #0 .text:00041D70 STR R3, [R11,#var_78] .text:00041D74 STR R3, [R11,#var_84] .text:00041D78 STR R0, [R11,#var_A4] .text:00041D7C STR R3, [R11,#var_90] .text:00041D80 LDR R1, [R11,#var_7C] .text:00041D84 LDR R2, =__ctype_b .text:00041D88 SUB R10, R1, #1 .text:00041D8C LDR R1, [R2] .text:00041D90 .text:00041D90 loc_41D90 ; CODE XREF: __strtof_internal+C8j .text:00041D90 LDRB R6, [R10,#1]! .text:00041D94 MOV R3, R6,LSL#1 .text:00041D98 ADD R3, R3, R1 .text:00041D9C LDRB R2, [R3,#1] .text:00041DA0 TST R2, #0x20 .text:00041DA4 BNE loc_41D90 .text:00041DA8 CMP R6, #0x2D .text:00041DAC MOVEQ R3, #1 .text:00041DB0 STREQ R3, [R11,#var_84] .text:00041DB4 BEQ loc_41DC0 .text:00041DB8 CMP R6, #0x2B .text:00041DBC BNE loc_41DC4 .text:00041DC0 .text:00041DC0 loc_41DC0 ; CODE XREF: __strtof_internal+D8j .text:00041DC0 LDRB R6, [R10,#1]! .text:00041DC4 .text:00041DC4 loc_41DC4 ; CODE XREF: __strtof_internal+E0j .text:00041DC4 LDR R12, [R11,#var_A0] .text:00041DC8 LDRB R2, [R12] .text:00041DCC MOV R4, #0 .text:00041DD0 CMP R2, R4 .text:00041DD4 BEQ loc_41E04 .text:00041DD8 LDRB R3, [R10] .text:00041DDC CMP R3, R2 .text:00041DE0 BNE loc_41E04 .text:00041DE4 .text:00041DE4 loc_41DE4 ; CODE XREF: __strtof_internal+124j .text:00041DE4 LDR LR, [R11,#var_A0] .text:00041DE8 ADD R4, R4, #1 .text:00041DEC LDRB R2, [LR,R4] .text:00041DF0 CMP R2, #0 .text:00041DF4 BEQ loc_41E04 .text:00041DF8 LDRB R3, [R10,R4] .text:00041DFC CMP R3, R2 .text:00041E00 BEQ loc_41DE4 .text:00041E04 .text:00041E04 loc_41E04 ; CODE XREF: __strtof_internal+F8j .text:00041E04 ; __strtof_internal+104j ... .text:00041E04 LDR R0, [R11,#var_A0] .text:00041E08 LDRB R3, [R0,R4] .text:00041E0C CMP R3, #0 .text:00041E10 BNE loc_41E28 .text:00041E14 LDRB R3, [R10,#1] .text:00041E18 CMP R3, #0x2F .text:00041E1C BLS loc_41E28 .text:00041E20 CMP R3, #0x39 .text:00041E24 BLS loc_41FCC .text:00041E28 .text:00041E28 loc_41E28 ; CODE XREF: __strtof_internal+134j .text:00041E28 ; __strtof_internal+140j .text:00041E28 SUB R3, R6, #0x30 .text:00041E2C CMP R3, #9 .text:00041E30 BLS loc_41FCC .text:00041E34 LDR R3, =__ctype_tolower .text:00041E38 LDR R2, [R3] .text:00041E3C LDR R1, [R2,R6,LSL#2] .text:00041E40 MOV R8, R3 .text:00041E44 CMP R1, #0x69 .text:00041E48 BNE loc_41EA0 .text:00041E4C MOV R0, R10 .text:00041E50 LDR R1, =dword_61648 .text:00041E54 MOV R2, #3 .text:00041E58 BL strncasecmp .text:00041E5C CMP R0, #0 .text:00041E60 MOV R0, #3 .text:00041E64 BEQ loc_41E84 .text:00041E68 MOV R0, R10 .text:00041E6C LDR R1, =aInfinity ; "infinity" .text:00041E70 MOV R2, #8 .text:00041E74 BL strncasecmp .text:00041E78 CMP R0, #0 .text:00041E7C BNE loc_41EA0 .text:00041E80 MOV R0, #8 .text:00041E84 .text:00041E84 loc_41E84 ; CODE XREF: __strtof_internal+188j .text:00041E84 LDR R1, [R11,#var_80] .text:00041E88 CMP R1, #0 .text:00041E8C ADDNE R3, R10, R0 .text:00041E90 STRNE R3, [R1] .text:00041E94 LDR R2, [R11,#var_84] .text:00041E98 CMP R2, #0 .text:00041E9C B loc_433A4 .text:00041EA0 ; --------------------------------------------------------------------------- .text:00041EA0 .text:00041EA0 loc_41EA0 ; CODE XREF: __strtof_internal+16Cj .text:00041EA0 ; __strtof_internal+1A0j .text:00041EA0 LDR R3, [R8] .text:00041EA4 LDR R2, [R3,R6,LSL#2] .text:00041EA8 CMP R2, #0x6E .text:00041EAC BNE loc_41FB8 .text:00041EB0 MOV R0, R10 .text:00041EB4 LDR R1, =aNan_0 ; "nan" .text:00041EB8 MOV R2, #3 .text:00041EBC BL strncasecmp .text:00041EC0 CMP R0, #0 .text:00041EC4 BNE loc_41FB8 .text:00041EC8 LDRB R3, [R10,#3]! .text:00041ECC LDR R5, =0x7FFFFFFF .text:00041ED0 CMP R3, #0x28 .text:00041ED4 BNE loc_41FA0 .text:00041ED8 MOV R0, R10 .text:00041EDC MOV R1, R8 .text:00041EE0 .text:00041EE0 loc_41EE0 ; CODE XREF: __strtof_internal+210j .text:00041EE0 ; __strtof_internal+22Cj ... .text:00041EE0 LDRB R3, [R10,#1]! .text:00041EE4 SUB R3, R3, #0x30 .text:00041EE8 CMP R3, #9 .text:00041EEC BLS loc_41EE0 .text:00041EF0 LDRB R2, [R10] .text:00041EF4 LDR R3, [R1] .text:00041EF8 LDR R3, [R3,R2,LSL#2] .text:00041EFC CMP R3, #0x60 .text:00041F00 BLE loc_41F0C .text:00041F04 CMP R3, #0x7A .text:00041F08 BLE loc_41EE0 .text:00041F0C .text:00041F0C loc_41F0C ; CODE XREF: __strtof_internal+224j .text:00041F0C AND R3, R2, #0xFF .text:00041F10 CMP R3, #0x5F .text:00041F14 BEQ loc_41EE0 .text:00041F18 CMP R3, #0x29 .text:00041F1C MOVNE R10, R0 .text:00041F20 BNE loc_41FA0 .text:00041F24 ADD R0, R0, #1 .text:00041F28 SUB R1, R11, #-var_6C .text:00041F2C MOV R2, #0 .text:00041F30 MOV R3, R2 .text:00041F34 BL __strtoull_internal .text:00041F38 LDR R3, [R11,#var_6C] .text:00041F3C MOV R8, R1 .text:00041F40 MOV R7, R0 .text:00041F44 CMP R3, R10 .text:00041F48 BNE loc_41FA0 .text:00041F4C ADR R1, dword_42098 .text:00041F50 LDMIA R1, {R1,R2} .text:00041F54 MOV R6, #0 .text:00041F58 MOV R5, #0x400000 .text:00041F5C AND R1, R1, R7 .text:00041F60 AND R2, R2, R8 .text:00041F64 ORRS R1, R1, R2 .text:00041F68 MOVEQ R3, #0 .text:00041F6C MOVNE R3, #1 .text:00041F70 MOV R4, #0 .text:00041F74 RSBS R1, R3, #0 .text:00041F78 RSC R2, R4, #0 .text:00041F7C BIC R5, R5, R1 .text:00041F80 BIC R6, R6, R2 .text:00041F84 AND R1, R1, R7 .text:00041F88 AND R2, R2, R8 .text:00041F8C ORR R5, R5, R1 .text:00041F90 ORR R6, R6, R2 .text:00041F94 BIC R5, R5, #0x80000000 .text:00041F98 ORR R5, R5, #0x7F000000 .text:00041F9C ORR R5, R5, #0x800000 .text:00041FA0 .text:00041FA0 loc_41FA0 ; CODE XREF: __strtof_internal+1F8j .text:00041FA0 ; __strtof_internal+244j ... .text:00041FA0 LDR R3, [R11,#var_80] .text:00041FA4 CMP R3, #0 .text:00041FA8 STRNE R10, [R3] .text:00041FAC STR R5, [SP,#0xEC+var_F0]! .text:00041FB0 LDC p1, c0, [SP+0xF0+var_F0],#4 .text:00041FB4 B locret_44FF8 .text:00041FB8 ; --------------------------------------------------------------------------- .text:00041FB8 .text:00041FB8 loc_41FB8 ; CODE XREF: __strtof_internal+1D0j .text:00041FB8 ; __strtof_internal+1E8j .text:00041FB8 LDR R6, [R11,#var_80] .text:00041FBC CMP R6, #0 .text:00041FC0 LDRNE R12, [R11,#var_7C] .text:00041FC4 STRNE R12, [R6] .text:00041FC8 B loc_4247C .text:00041FCC ; --------------------------------------------------------------------------- .text:00041FCC .text:00041FCC loc_41FCC ; CODE XREF: __strtof_internal+148j .text:00041FCC ; __strtof_internal+154j .text:00041FCC CMP R6, #0x30 .text:00041FD0 BNE loc_42000 .text:00041FD4 LDR R1, =__ctype_tolower .text:00041FD8 LDRB R0, [R10,#1] .text:00041FDC LDR R3, [R1] .text:00041FE0 LDR R2, [R3,R0,LSL#2] .text:00041FE4 CMP R2, #0x78 .text:00041FE8 BNE loc_42000 .text:00041FEC MOV LR, #0x10 .text:00041FF0 STR LR, [R11,#var_88] .text:00041FF4 MOV R0, #0 .text:00041FF8 STR R0, [R11,#var_AC] .text:00041FFC LDRB R6, [R10,#2]! .text:00042000 .text:00042000 loc_42000 ; CODE XREF: __strtof_internal+2F4j .text:00042000 ; __strtof_internal+30Cj .text:00042000 STR R10, [R11,#var_94] .text:00042004 LDR R1, [R11,#var_A8] .text:00042008 CMP R1, #0 .text:0004200C MOV R7, R10 .text:00042010 BNE loc_4202C .text:00042014 CMP R6, #0x30 .text:00042018 BNE loc_420A0 .text:0004201C .text:0004201C loc_4201C ; CODE XREF: __strtof_internal+348j .text:0004201C LDRB R6, [R10,#1]! .text:00042020 CMP R6, #0x30 .text:00042024 BEQ loc_4201C .text:00042028 B loc_420A0 .text:0004202C ; --------------------------------------------------------------------------- .text:0004202C .text:0004202C loc_4202C ; CODE XREF: __strtof_internal+334j .text:0004202C ; __strtof_internal+39Cj .text:0004202C CMP R6, #0x30 .text:00042030 BEQ loc_42074 .text:00042034 LDR R2, [R11,#var_A8] .text:00042038 LDRB R3, [R2] .text:0004203C MOV R4, #0 .text:00042040 CMP R3, R4 .text:00042044 B loc_42058 .text:00042048 ; --------------------------------------------------------------------------- .text:00042048 .text:00042048 loc_42048 ; CODE XREF: __strtof_internal+384j .text:00042048 LDR R12, [R11,#var_A8] .text:0004204C ADD R4, R4, #1 .text:00042050 LDRB R3, [R12,R4] .text:00042054 CMP R3, #0 .text:00042058 .text:00042058 loc_42058 ; CODE XREF: __strtof_internal+368j .text:00042058 BEQ loc_42064 .text:0004205C CMP R6, R3 .text:00042060 BEQ loc_42048 .text:00042064 .text:00042064 loc_42064 ; CODE XREF: __strtof_internal:loc_42058j .text:00042064 LDR LR, [R11,#var_A8] .text:00042068 LDRB R3, [LR,R4] .text:0004206C CMP R3, #0 .text:00042070 BNE loc_420A0 .text:00042074 .text:00042074 loc_42074 ; CODE XREF: __strtof_internal+354j .text:00042074 LDRB R6, [R10,#1]! .text:00042078 B loc_4202C .text:00042078 ; --------------------------------------------------------------------------- .text:0004207C off_4207C DCD _nl_current_LC_NUMERIC ; DATA XREF: __strtof_internal+30r .text:0004207C ; __strtof_internal+74r .text:00042080 off_42080 DCD __ctype_b ; DATA XREF: __strtof_internal+A8r .text:00042084 off_42084 DCD __ctype_tolower ; DATA XREF: __strtof_internal+158r .text:00042084 ; __strtof_internal+2F8r .text:00042088 off_42088 DCD dword_61648 ; DATA XREF: __strtof_internal+174r .text:0004208C off_4208C DCD aInfinity ; DATA XREF: __strtof_internal+190r .text:0004208C ; "infinity" .text:00042090 off_42090 DCD aNan_0 ; DATA XREF: __strtof_internal+1D8r .text:00042090 ; "nan" .text:00042094 dword_42094 DCD 0x7FFFFFFF ; DATA XREF: __strtof_internal+1F0r .text:00042098 dword_42098 DCD 0x7FFFFF, 0 ; DATA XREF: __strtof_internal+270o .text:000420A0 ; --------------------------------------------------------------------------- .text:000420A0 .text:000420A0 loc_420A0 ; CODE XREF: __strtof_internal+33Cj .text:000420A0 ; __strtof_internal+34Cj ... .text:000420A0 SUB R3, R6, #0x30 .text:000420A4 CMP R3, #9 .text:000420A8 BLS loc_42150 .text:000420AC LDR R0, [R11,#var_88] .text:000420B0 CMP R0, #0x10 .text:000420B4 BNE loc_42150 .text:000420B8 LDR R3, =__ctype_tolower .text:000420BC LDR R1, [R3] .text:000420C0 LDR R2, [R1,#0x184] .text:000420C4 MOV R8, R3 .text:000420C8 CMP R6, R2 .text:000420CC BLT loc_420DC .text:000420D0 LDR R3, [R1,#0x198] .text:000420D4 CMP R6, R3 .text:000420D8 BLE loc_42150 .text:000420DC .text:000420DC loc_420DC ; CODE XREF: __strtof_internal+3F0j .text:000420DC LDR R1, [R11,#var_A0] .text:000420E0 LDRB R2, [R1] .text:000420E4 MOV R4, #0 .text:000420E8 CMP R2, R4 .text:000420EC BEQ loc_4211C .text:000420F0 LDRB R3, [R10] .text:000420F4 CMP R2, R3 .text:000420F8 BNE loc_4211C .text:000420FC .text:000420FC loc_420FC ; CODE XREF: __strtof_internal+43Cj .text:000420FC LDR R3, [R11,#var_A0] .text:00042100 ADD R4, R4, #1 .text:00042104 LDRB R2, [R3,R4] .text:00042108 CMP R2, #0 .text:0004210C BEQ loc_4211C .text:00042110 LDRB R3, [R10,R4] .text:00042114 CMP R2, R3 .text:00042118 BEQ loc_420FC .text:0004211C .text:0004211C loc_4211C ; CODE XREF: __strtof_internal+410j .text:0004211C ; __strtof_internal+41Cj ... .text:0004211C LDR R12, [R11,#var_A0] .text:00042120 LDRB R3, [R12,R4] .text:00042124 CMP R3, #0 .text:00042128 BEQ loc_42150 .text:0004212C LDR LR, [R11,#var_88] .text:00042130 CMP LR, #0x10 .text:00042134 BNE loc_42150 .text:00042138 LDR R0, [R11,#var_94] .text:0004213C CMP R10, R0 .text:00042140 BEQ loc_42150 .text:00042144 LDR R3, [R8] .text:00042148 LDR R2, [R3,R6,LSL#2] .text:0004214C CMP R2, #0x70 .text:00042150 .text:00042150 loc_42150 ; CODE XREF: __strtof_internal+3CCj .text:00042150 ; __strtof_internal+3D8j ... .text:00042150 MOV R1, #0 .text:00042154 STR R1, [R11,#var_98] .text:00042158 LDR R1, =__ctype_tolower .text:0004215C STR R10, [R11,#var_94] .text:00042160 .text:00042160 loc_42160 ; CODE XREF: __strtof_internal+520j .text:00042160 SUB R3, R6, #0x30 .text:00042164 CMP R3, #9 .text:00042168 BLS loc_42190 .text:0004216C LDR R2, [R11,#var_88] .text:00042170 CMP R2, #0x10 .text:00042174 BNE loc_421A0 .text:00042178 LDR R3, [R1] .text:0004217C LDR R3, [R3,R6,LSL#2] .text:00042180 CMP R3, #0x60 .text:00042184 BLE loc_421A0 .text:00042188 CMP R3, #0x66 .text:0004218C BGT loc_421A0 .text:00042190 .text:00042190 loc_42190 ; CODE XREF: __strtof_internal+48Cj .text:00042190 LDR R3, [R11,#var_98] .text:00042194 ADD R3, R3, #1 .text:00042198 STR R3, [R11,#var_98] .text:0004219C B loc_421F8 .text:000421A0 ; --------------------------------------------------------------------------- .text:000421A0 .text:000421A0 loc_421A0 ; CODE XREF: __strtof_internal+498j .text:000421A0 ; __strtof_internal+4A8j ... .text:000421A0 LDR R12, [R11,#var_A8] .text:000421A4 CMP R12, #0 .text:000421A8 BEQ loc_42200 .text:000421AC LDRB R2, [R12] .text:000421B0 MOV R4, #0 .text:000421B4 CMP R2, R4 .text:000421B8 BEQ loc_421E8 .text:000421BC LDRB R3, [R10] .text:000421C0 CMP R2, R3 .text:000421C4 BNE loc_421E8 .text:000421C8 .text:000421C8 loc_421C8 ; CODE XREF: __strtof_internal+508j .text:000421C8 LDR LR, [R11,#var_A8] .text:000421CC ADD R4, R4, #1 .text:000421D0 LDRB R2, [LR,R4] .text:000421D4 CMP R2, #0 .text:000421D8 BEQ loc_421E8 .text:000421DC LDRB R3, [R10,R4] .text:000421E0 CMP R2, R3 .text:000421E4 BEQ loc_421C8 .text:000421E8 .text:000421E8 loc_421E8 ; CODE XREF: __strtof_internal+4DCj .text:000421E8 ; __strtof_internal+4E8j ... .text:000421E8 LDR R0, [R11,#var_A8] .text:000421EC LDRB R3, [R0,R4] .text:000421F0 CMP R3, #0 .text:000421F4 BNE loc_42200 .text:000421F8 .text:000421F8 loc_421F8 ; CODE XREF: __strtof_internal+4C0j .text:000421F8 LDRB R6, [R10,#1]! .text:000421FC B loc_42160 .text:00042200 ; --------------------------------------------------------------------------- .text:00042200 .text:00042200 loc_42200 ; CODE XREF: __strtof_internal+4CCj .text:00042200 ; __strtof_internal+518j .text:00042200 LDR R1, [R11,#var_AC] .text:00042204 LDR R2, [R11,#var_98] .text:00042208 CMP R1, #0 .text:0004220C CMPNE R2, #0 .text:00042210 BLE loc_424D0 .text:00042214 MOV R8, R10 .text:00042218 CMP R1, #0 .text:0004221C MOVEQ R2, R10 .text:00042220 BEQ loc_42440 .text:00042224 LDR R0, [R11,#var_A8] .text:00042228 BL strlen .text:0004222C CMP R10, R7 .text:00042230 BLS loc_42434 .text:00042234 .text:00042234 loc_42234 ; CODE XREF: __strtof_internal+754j .text:00042234 SUB R12, R8, #1 .text:00042238 CMP R12, R7 .text:0004223C LDR R4, [R11,#var_AC] .text:00042240 BCC loc_422C4 .text:00042244 LDR R3, [R11,#var_A8] .text:00042248 SUB R9, R0, #2 .text:0004224C LDRB R5, [R3] .text:00042250 .text:00042250 loc_42250 ; CODE XREF: __strtof_internal+5E4j .text:00042250 ADD R3, R0, R12 .text:00042254 LDRB R2, [R3,#-1] .text:00042258 CMP R2, R5 .text:0004225C BNE loc_422B8 .text:00042260 LDR R1, [R11,#var_A8] .text:00042264 MOV LR, #1 .text:00042268 LDRB R2, [R1,LR] .text:0004226C CMP R2, #0 .text:00042270 BEQ loc_422A8 .text:00042274 LDRB R3, [R12,R9] .text:00042278 CMP R2, R3 .text:0004227C BNE loc_422A8 .text:00042280 SUB R1, R0, #2 .text:00042284 .text:00042284 loc_42284 ; CODE XREF: __strtof_internal+5C8j .text:00042284 LDR R3, [R11,#var_A8] .text:00042288 ADD LR, LR, #1 .text:0004228C LDRB R2, [R3,LR] .text:00042290 SUB R1, R1, #1 .text:00042294 CMP R2, #0 .text:00042298 BEQ loc_422A8 .text:0004229C LDRB R3, [R12,R1] .text:000422A0 CMP R2, R3 .text:000422A4 BEQ loc_42284 .text:000422A8 .text:000422A8 loc_422A8 ; CODE XREF: __strtof_internal+594j .text:000422A8 ; __strtof_internal+5A0j ... .text:000422A8 LDR R1, [R11,#var_A8] .text:000422AC LDRB R3, [R1,LR] .text:000422B0 CMP R3, #0 .text:000422B4 BEQ loc_422C4 .text:000422B8 .text:000422B8 loc_422B8 ; CODE XREF: __strtof_internal+580j .text:000422B8 SUB R12, R12, #1 .text:000422BC CMP R12, R7 .text:000422C0 BCS loc_42250 .text:000422C4 .text:000422C4 loc_422C4 ; CODE XREF: __strtof_internal+564j .text:000422C4 ; __strtof_internal+5D8j .text:000422C4 CMP R12, R7 .text:000422C8 BCC loc_42378 .text:000422CC LDR R2, [R11,#var_AC] .text:000422D0 LDRB R1, [R2] .text:000422D4 RSB R2, R12, R8 .text:000422D8 ADD R3, R1, #1 .text:000422DC CMP R2, R3 .text:000422E0 BNE loc_42420 .text:000422E4 SUB R9, R12, #1 .text:000422E8 .text:000422E8 loc_422E8 ; CODE XREF: __strtof_internal+698j .text:000422E8 ; __strtof_internal+738j .text:000422E8 ADD R4, R4, #1 .text:000422EC MOV R3, R4 .text:000422F0 LDRB R2, [R3],#-1 .text:000422F4 CMP R2, #0 .text:000422F8 MOVEQ R4, R3 .text:000422FC LDRB R1, [R4] .text:00042300 SUB R12, R12, #1 .text:00042304 CMP R1, #0xFF .text:00042308 BNE loc_42380 .text:0004230C CMP R12, R7 .text:00042310 BCC loc_42370 .text:00042314 .text:00042314 loc_42314 ; CODE XREF: __strtof_internal+690j .text:00042314 LDR R3, [R11,#var_A8] .text:00042318 LDRB R1, [R3] .text:0004231C MOV LR, #0 .text:00042320 CMP R1, LR .text:00042324 BEQ loc_42354 .text:00042328 ADD R2, R0, R12 .text:0004232C B loc_42348 .text:00042330 ; --------------------------------------------------------------------------- .text:00042330 .text:00042330 loc_42330 ; CODE XREF: __strtof_internal+674j .text:00042330 LDR R3, [R11,#var_A8] .text:00042334 ADD LR, LR, #1 .text:00042338 LDRB R1, [R3,LR] .text:0004233C SUB R2, R2, #1 .text:00042340 CMP R1, #0 .text:00042344 BEQ loc_42354 .text:00042348 .text:00042348 loc_42348 ; CODE XREF: __strtof_internal+650j .text:00042348 LDRB R3, [R2,#-1] .text:0004234C CMP R1, R3 .text:00042350 BEQ loc_42330 .text:00042354 .text:00042354 loc_42354 ; CODE XREF: __strtof_internal+648j .text:00042354 ; __strtof_internal+668j .text:00042354 LDR R1, [R11,#var_A8] .text:00042358 LDRB R3, [R1,LR] .text:0004235C CMP R3, #0 .text:00042360 BEQ loc_42370 .text:00042364 SUB R12, R12, #1 .text:00042368 CMP R12, R7 .text:0004236C BCS loc_42314 .text:00042370 .text:00042370 loc_42370 ; CODE XREF: __strtof_internal+634j .text:00042370 ; __strtof_internal+684j .text:00042370 CMP R12, R7 .text:00042374 BCS loc_422E8 .text:00042378 .text:00042378 loc_42378 ; CODE XREF: __strtof_internal+5ECj .text:00042378 ; __strtof_internal+720j .text:00042378 MOV R2, R8 .text:0004237C B loc_42440 .text:00042380 ; --------------------------------------------------------------------------- .text:00042380 .text:00042380 loc_42380 ; CODE XREF: __strtof_internal+62Cj .text:00042380 CMP R12, R7 .text:00042384 MOV R5, R12 .text:00042388 BCC loc_423E8 .text:0004238C .text:0004238C loc_4238C ; CODE XREF: __strtof_internal+708j .text:0004238C LDR R2, [R11,#var_A8] .text:00042390 LDRB R1, [R2] .text:00042394 MOV LR, #0 .text:00042398 CMP R1, LR .text:0004239C BEQ loc_423CC .text:000423A0 ADD R2, R0, R12 .text:000423A4 B loc_423C0 .text:000423A8 ; --------------------------------------------------------------------------- .text:000423A8 .text:000423A8 loc_423A8 ; CODE XREF: __strtof_internal+6ECj .text:000423A8 LDR R3, [R11,#var_A8] .text:000423AC ADD LR, LR, #1 .text:000423B0 LDRB R1, [R3,LR] .text:000423B4 SUB R2, R2, #1 .text:000423B8 CMP R1, #0 .text:000423BC BEQ loc_423CC .text:000423C0 .text:000423C0 loc_423C0 ; CODE XREF: __strtof_internal+6C8j .text:000423C0 LDRB R3, [R2,#-1] .text:000423C4 CMP R1, R3 .text:000423C8 BEQ loc_423A8 .text:000423CC .text:000423CC loc_423CC ; CODE XREF: __strtof_internal+6C0j .text:000423CC ; __strtof_internal+6E0j .text:000423CC LDR R1, [R11,#var_A8] .text:000423D0 LDRB R3, [R1,LR] .text:000423D4 CMP R3, #0 .text:000423D8 BEQ loc_423E8 .text:000423DC SUB R12, R12, #1 .text:000423E0 CMP R12, R7 .text:000423E4 BCS loc_4238C .text:000423E8 .text:000423E8 loc_423E8 ; CODE XREF: __strtof_internal+6ACj .text:000423E8 ; __strtof_internal+6FCj .text:000423E8 CMP R12, R7 .text:000423EC BCS loc_42400 .text:000423F0 LDRB R2, [R4] .text:000423F4 RSB R3, R12, R5 .text:000423F8 CMP R3, R2 .text:000423FC BLE loc_42378 .text:00042400 .text:00042400 loc_42400 ; CODE XREF: __strtof_internal+710j .text:00042400 CMP R12, R7 .text:00042404 BCC loc_42418 .text:00042408 LDRB R2, [R4] .text:0004240C RSB R3, R12, R5 .text:00042410 CMP R3, R2 .text:00042414 BEQ loc_422E8 .text:00042418 .text:00042418 loc_42418 ; CODE XREF: __strtof_internal+728j .text:00042418 MOV R8, R9 .text:0004241C B loc_4242C .text:00042420 ; --------------------------------------------------------------------------- .text:00042420 .text:00042420 loc_42420 ; CODE XREF: __strtof_internal+604j .text:00042420 ADDGT R3, R12, R1 .text:00042424 ADDGT R8, R3, #1 .text:00042428 MOVLE R8, R12 .text:0004242C .text:0004242C loc_4242C ; CODE XREF: __strtof_internal+740j .text:0004242C CMP R8, R7 .text:00042430 BHI loc_42234 .text:00042434 .text:00042434 loc_42434 ; CODE XREF: __strtof_internal+554j .text:00042434 CMP R8, R7 .text:00042438 MOVCS R2, R8 .text:0004243C MOVCC R2, R7 .text:00042440 .text:00042440 loc_42440 ; CODE XREF: __strtof_internal+544j .text:00042440 ; __strtof_internal+6A0j .text:00042440 CMP R10, R2 .text:00042444 BEQ loc_424D0 .text:00042448 CMP R2, R7 .text:0004244C BNE loc_42464 .text:00042450 LDR R2, [R11,#var_80] .text:00042454 CMP R2, #0 .text:00042458 LDRNE R3, [R11,#var_7C] .text:0004245C STRNE R3, [R2] .text:00042460 B loc_4247C .text:00042464 ; --------------------------------------------------------------------------- .text:00042464 .text:00042464 loc_42464 ; CODE XREF: __strtof_internal+770j .text:00042464 LDR R6, [R11,#var_94] .text:00042468 CMP R2, R6 .text:0004246C BCS loc_42488 .text:00042470 LDR R12, [R11,#var_80] .text:00042474 CMP R12, #0 .text:00042478 STRNE R2, [R12] .text:0004247C .text:0004247C loc_4247C ; CODE XREF: __strtof_internal+2ECj .text:0004247C ; __strtof_internal+784j .text:0004247C CDP p1, 0, c8,c0,c8, 0 .text:00042480 B locret_44FF8 .text:00042480 ; --------------------------------------------------------------------------- .text:00042484 off_42484 DCD __ctype_tolower ; DATA XREF: __strtof_internal+3DCr .text:00042484 ; __strtof_internal+47Cr .text:00042488 ; --------------------------------------------------------------------------- .text:00042488 .text:00042488 loc_42488 ; CODE XREF: __strtof_internal+790j .text:00042488 MOV R10, R2 .text:0004248C LDR R2, [R11,#var_94] .text:00042490 MOV LR, #0 .text:00042494 STR LR, [R11,#var_98] .text:00042498 CMP R2, R10 .text:0004249C BCS loc_424C0 .text:000424A0 .text:000424A0 loc_424A0 ; CODE XREF: __strtof_internal+7E0j .text:000424A0 LDRB R3, [R2],#1 .text:000424A4 LDR R0, [R11,#var_98] .text:000424A8 SUB R3, R3, #0x30 .text:000424AC CMP R3, #9 .text:000424B0 ADDLS R0, R0, #1 .text:000424B4 CMP R2, R10 .text:000424B8 STR R0, [R11,#var_98] .text:000424BC BCC loc_424A0 .text:000424C0 .text:000424C0 loc_424C0 ; CODE XREF: __strtof_internal+7C0j .text:000424C0 LDR R1, [R11,#var_98] .text:000424C4 MOV LR, #0 .text:000424C8 STR R1, [R11,#var_9C] .text:000424CC B loc_427F8 .text:000424D0 ; --------------------------------------------------------------------------- .text:000424D0 .text:000424D0 loc_424D0 ; CODE XREF: __strtof_internal+534j .text:000424D0 ; __strtof_internal+768j .text:000424D0 LDR R2, [R11,#var_98] .text:000424D4 STR R2, [R11,#var_9C] .text:000424D8 MOV R4, #0 .text:000424DC LDR R3, [R11,#var_A0] .text:000424E0 CMP R2, #0 .text:000424E4 LDRB R2, [R3] .text:000424E8 MOVNE LR, #0 .text:000424EC MOVEQ LR, 0xFFFFFFFF .text:000424F0 CMP R2, R4 .text:000424F4 BEQ loc_42524 .text:000424F8 LDRB R3, [R10] .text:000424FC CMP R2, R3 .text:00042500 BNE loc_42524 .text:00042504 .text:00042504 loc_42504 ; CODE XREF: __strtof_internal+844j .text:00042504 LDR R12, [R11,#var_A0] .text:00042508 ADD R4, R4, #1 .text:0004250C LDRB R2, [R12,R4] .text:00042510 CMP R2, #0 .text:00042514 BEQ loc_42524 .text:00042518 LDRB R3, [R10,R4] .text:0004251C CMP R2, R3 .text:00042520 BEQ loc_42504 .text:00042524 .text:00042524 loc_42524 ; CODE XREF: __strtof_internal+818j .text:00042524 ; __strtof_internal+824j ... .text:00042524 LDR R0, [R11,#var_A0] .text:00042528 LDRB R3, [R0,R4] .text:0004252C CMP R3, #0 .text:00042530 BNE loc_425BC .text:00042534 LDR R1, [R11,#var_A4] .text:00042538 LDRB R6, [R10,R1]! .text:0004253C SUB R3, R6, #0x30 .text:00042540 CMP R3, #9 .text:00042544 BLS loc_42570 .text:00042548 LDR R2, [R11,#var_88] .text:0004254C CMP R2, #0x10 .text:00042550 BNE loc_425BC .text:00042554 .text:00042554 loc_42554 ; CODE XREF: __strtof_internal+8DCj .text:00042554 LDR R3, =__ctype_tolower .text:00042558 LDR R2, [R3] .text:0004255C LDR R3, [R2,R6,LSL#2] .text:00042560 CMP R3, #0x60 .text:00042564 BLE loc_425BC .text:00042568 CMP R3, #0x66 .text:0004256C BGT loc_425BC .text:00042570 .text:00042570 loc_42570 ; CODE XREF: __strtof_internal+868j .text:00042570 ; __strtof_internal+8D0j .text:00042570 CMN LR, #1 .text:00042574 MOVNE R3, #0 .text:00042578 MOVEQ R3, #1 .text:0004257C CMP R6, #0x30 .text:00042580 LDR R6, [R11,#var_98] .text:00042584 MOVEQ R3, #0 .text:00042588 LDR R12, [R11,#var_9C] .text:0004258C CMP R3, #0 .text:00042590 LDR R0, [R11,#var_98] .text:00042594 SUBNE LR, R6, R12 .text:00042598 LDRB R6, [R10,#1]! .text:0004259C ADD R0, R0, #1 .text:000425A0 STR R0, [R11,#var_98] .text:000425A4 SUB R3, R6, #0x30 .text:000425A8 CMP R3, #9 .text:000425AC BLS loc_42570 .text:000425B0 LDR R1, [R11,#var_88] .text:000425B4 CMP R1, #0x10 .text:000425B8 BEQ loc_42554 .text:000425BC .text:000425BC loc_425BC ; CODE XREF: __strtof_internal+854j .text:000425BC ; __strtof_internal+874j ... .text:000425BC LDR R2, [R11,#var_88] .text:000425C0 MOV R0, R10 .text:000425C4 CMP R2, #0x10 .text:000425C8 BNE loc_425E0 .text:000425CC LDR R3, =__ctype_tolower .text:000425D0 LDR R2, [R3] .text:000425D4 LDR R1, [R2,R6,LSL#2] .text:000425D8 CMP R1, #0x70 .text:000425DC BEQ loc_42600 .text:000425E0 .text:000425E0 loc_425E0 ; CODE XREF: __strtof_internal+8ECj .text:000425E0 LDR R3, [R11,#var_88] .text:000425E4 CMP R3, #0x10 .text:000425E8 BEQ loc_42730 .text:000425EC LDR R3, =__ctype_tolower .text:000425F0 LDR R2, [R3] .text:000425F4 LDR R1, [R2,R6,LSL#2] .text:000425F8 CMP R1, #0x65 .text:000425FC BNE loc_42730 .text:00042600 .text:00042600 loc_42600 ; CODE XREF: __strtof_internal+900j .text:00042600 LDRB R6, [R10,#1]! .text:00042604 MOV R4, #0 .text:00042608 CMP R6, #0x2D .text:0004260C ADDEQ R4, R4, #1 .text:00042610 BEQ loc_4261C .text:00042614 CMP R6, #0x2B .text:00042618 BNE loc_42620 .text:0004261C .text:0004261C loc_4261C ; CODE XREF: __strtof_internal+934j .text:0004261C LDRB R6, [R10,#1]! .text:00042620 .text:00042620 loc_42620 ; CODE XREF: __strtof_internal+93Cj .text:00042620 SUB R3, R6, #0x30 .text:00042624 CMP R3, #9 .text:00042628 BHI loc_4272C .text:0004262C LDR R12, [R11,#var_88] .text:00042630 CMP R12, #0x10 .text:00042634 BNE loc_4265C .text:00042638 CMP R4, #0 .text:0004263C LDRNE R1, [R11,#var_9C] .text:00042640 MOVNE R3, R1,LSL#2 .text:00042644 ADDNE R12, R3, #0x95 .text:00042648 BNE loc_42674 .text:0004264C LDR R2, [R11,#var_9C] .text:00042650 ADD R3, LR, #0x80 .text:00042654 SUB R12, R3, R2,LSL#2 .text:00042658 B loc_42674 .text:0004265C ; --------------------------------------------------------------------------- .text:0004265C .text:0004265C loc_4265C ; CODE XREF: __strtof_internal+958j .text:0004265C CMP R4, #0 .text:00042660 LDRNE R3, [R11,#var_9C] .text:00042664 ADDNE R12, R3, #0x3D .text:00042668 LDREQ R1, [R11,#var_9C] .text:0004266C ADDEQ R3, LR, #0x26 .text:00042670 RSBEQ R12, R1, R3 .text:00042674 .text:00042674 loc_42674 ; CODE XREF: __strtof_internal+96Cj .text:00042674 ; __strtof_internal+97Cj ... .text:00042674 LDR R3, [R11,#var_78] .text:00042678 ADD R3, R3, R3,LSL#2 .text:0004267C MOV R3, R3,LSL#1 .text:00042680 CMP R3, R12 .text:00042684 STR R3, [R11,#var_78] .text:00042688 BLE loc_426F8 .text:0004268C CMN LR, #1 .text:00042690 BNE loc_426A8 .text:00042694 LDR R2, [R11,#var_84] .text:00042698 CMP R2, #0 .text:0004269C CDPNE p1, 1, c8,c0,c8, 0 .text:000426A0 CDPEQ p1, 0, c8,c0,c8, 0 .text:000426A4 B loc_426D4 .text:000426A8 ; --------------------------------------------------------------------------- .text:000426A8 .text:000426A8 loc_426A8 ; CODE XREF: __strtof_internal+9B4j .text:000426A8 BL __errno_location .text:000426AC CMP R4, #0 .text:000426B0 MOV R3, #0x22 .text:000426B4 STR R3, [R0] .text:000426B8 BNE loc_426D0 .text:000426BC LDR R3, [R11,#var_84] .text:000426C0 CMP R3, #0 .text:000426C4 LDC p1, c0, dword_428E4 .text:000426C8 LDCNE p1, c0, dword_428E8 .text:000426CC B loc_426D4 .text:000426D0 ; --------------------------------------------------------------------------- .text:000426D0 .text:000426D0 loc_426D0 ; CODE XREF: __strtof_internal+9DCj .text:000426D0 CDP p1, 0, c8,c0,c8, 0 .text:000426D4 .text:000426D4 loc_426D4 ; CODE XREF: __strtof_internal+9C8j .text:000426D4 ; __strtof_internal+9F0j ... .text:000426D4 LDRB R3, [R10,#1]! .text:000426D8 SUB R3, R3, #0x30 .text:000426DC CMP R3, #9 .text:000426E0 BLS loc_426D4 .text:000426E4 LDR R6, [R11,#var_80] .text:000426E8 CMP R6, #0 .text:000426EC BEQ locret_44FF8 .text:000426F0 STR R10, [R6] .text:000426F4 B locret_44FF8 .text:000426F8 ; --------------------------------------------------------------------------- .text:000426F8 .text:000426F8 loc_426F8 ; CODE XREF: __strtof_internal+9ACj .text:000426F8 LDR R3, [R11,#var_78] .text:000426FC SUB R3, R3, #0x30 .text:00042700 ADD R3, R3, R6 .text:00042704 STR R3, [R11,#var_78] .text:00042708 LDRB R6, [R10,#1]! .text:0004270C MOV R1, R3 .text:00042710 SUB R2, R6, #0x30 .text:00042714 CMP R2, #9 .text:00042718 BLS loc_42674 .text:0004271C CMP R4, #0 .text:00042720 RSBNE R3, R1, #0 .text:00042724 STRNE R3, [R11,#var_78] .text:00042728 B loc_42730 .text:0004272C ; --------------------------------------------------------------------------- .text:0004272C .text:0004272C loc_4272C ; CODE XREF: __strtof_internal+94Cj .text:0004272C MOV R10, R0 .text:00042730 .text:00042730 loc_42730 ; CODE XREF: __strtof_internal+90Cj .text:00042730 ; __strtof_internal+920j ... .text:00042730 SUB R1, R11, #-var_9C .text:00042734 LDMIA R1, {R1,R12} .text:00042738 CMP R12, R1 .text:0004273C BLE loc_42768 .text:00042740 LDRB R3, [R0,#-1] .text:00042744 CMP R3, #0x30 .text:00042748 BNE loc_42768 .text:0004274C .text:0004274C loc_4274C ; CODE XREF: __strtof_internal+A88j .text:0004274C LDR R2, [R11,#var_98] .text:00042750 SUB R0, R0, #1 .text:00042754 LDRB R3, [R0,#-1] .text:00042758 SUB R2, R2, #1 .text:0004275C CMP R3, #0x30 .text:00042760 STR R2, [R11,#var_98] .text:00042764 BEQ loc_4274C .text:00042768 .text:00042768 loc_42768 ; CODE XREF: __strtof_internal+A60j .text:00042768 ; __strtof_internal+A6Cj .text:00042768 SUB R6, R11, #-var_9C .text:0004276C LDMIA R6, {R6,R12} .text:00042770 CMP R6, #0 .text:00042774 MOVLE R3, #0 .text:00042778 MOVGT R3, #1 .text:0004277C CMP R12, R6 .text:00042780 MOVNE R3, #0 .text:00042784 CMP R3, #0 .text:00042788 BEQ loc_427F8 .text:0004278C LDR R3, [R11,#var_78] .text:00042790 CMP R3, #0 .text:00042794 BGE loc_427F8 .text:00042798 B loc_427A0 .text:0004279C ; --------------------------------------------------------------------------- .text:0004279C .text:0004279C loc_4279C ; CODE XREF: __strtof_internal+AD0j .text:0004279C SUB R0, R0, #1 .text:000427A0 .text:000427A0 loc_427A0 ; CODE XREF: __strtof_internal+ABCj .text:000427A0 ; __strtof_internal+B18j .text:000427A0 LDRB R3, [R0,#-1] .text:000427A4 SUB R3, R3, #0x30 .text:000427A8 CMP R3, #9 .text:000427AC BHI loc_4279C .text:000427B0 LDRB R3, [R0,#-1] .text:000427B4 CMP R3, #0x30 .text:000427B8 BNE loc_427F8 .text:000427BC LDR R1, [R11,#var_98] .text:000427C0 LDR R2, [R11,#var_78] .text:000427C4 SUB R0, R0, #1 .text:000427C8 LDR R3, [R11,#var_9C] .text:000427CC SUB R1, R1, #1 .text:000427D0 SUB R3, R3, #1 .text:000427D4 STR R1, [R11,#var_98] .text:000427D8 ADD R2, R2, #1 .text:000427DC CMP R1, #0 .text:000427E0 STR R3, [R11,#var_9C] .text:000427E4 MOVLE R3, #0 .text:000427E8 MOVGT R3, R2,LSR#31 .text:000427EC CMP R3, #0 .text:000427F0 STR R2, [R11,#var_78] .text:000427F4 BNE loc_427A0 .text:000427F8 .text:000427F8 loc_427F8 ; CODE XREF: __strtof_internal+7F0j .text:000427F8 ; __strtof_internal+AACj ... .text:000427F8 LDR R6, [R11,#var_80] .text:000427FC CMP R6, #0 .text:00042800 STRNE R10, [R6] .text:00042804 LDR R12, [R11,#var_98] .text:00042808 CMP R12, #0 .text:0004280C BNE loc_42824 .text:00042810 LDR LR, [R11,#var_84] .text:00042814 CMP LR, #0 .text:00042818 CDPNE p1, 1, c8,c0,c8, 0 .text:0004281C CDPEQ p1, 0, c8,c0,c8, 0 .text:00042820 B locret_44FF8 .text:00042824 ; --------------------------------------------------------------------------- .text:00042824 .text:00042824 loc_42824 ; CODE XREF: __strtof_internal+B30j .text:00042824 CMP LR, #0 .text:00042828 BEQ loc_428F8 .text:0004282C LDR R0, [R11,#var_A0] .text:00042830 LDRB R5, [R0] .text:00042834 .text:00042834 loc_42834 ; CODE XREF: __strtof_internal+BE0j .text:00042834 LDR R1, [R11,#var_94] .text:00042838 LDRB R3, [R1] .text:0004283C CMP R3, R5 .text:00042840 BNE loc_428B0 .text:00042844 LDR R3, [R11,#var_A0] .text:00042848 LDR R1, [R11,#var_78] .text:0004284C LDR R6, [R11,#var_A4] .text:00042850 MOV R4, #1 .text:00042854 LDRB R2, [R3,R4] .text:00042858 ADD R0, LR, R6 .text:0004285C LDR R3, [R11,#var_98] .text:00042860 CMP R2, #0 .text:00042864 RSB R12, LR, R3 .text:00042868 BEQ loc_428A0 .text:0004286C LDR R6, [R11,#var_94] .text:00042870 LDRB R3, [R6,#1] .text:00042874 CMP R2, R3 .text:00042878 BNE loc_428A0 .text:0004287C .text:0004287C loc_4287C ; CODE XREF: __strtof_internal+BC0j .text:0004287C LDR R3, [R11,#var_A0] .text:00042880 ADD R4, R4, #1 .text:00042884 LDRB R2, [R3,R4] .text:00042888 CMP R2, #0 .text:0004288C BEQ loc_428A0 .text:00042890 LDR R6, [R11,#var_94] .text:00042894 LDRB R3, [R6,R4] .text:00042898 CMP R2, R3 .text:0004289C BEQ loc_4287C .text:000428A0 .text:000428A0 loc_428A0 ; CODE XREF: __strtof_internal+B8Cj .text:000428A0 ; __strtof_internal+B9Cj ... .text:000428A0 LDR R2, [R11,#var_A0] .text:000428A4 LDRB R3, [R2,R4] .text:000428A8 CMP R3, #0 .text:000428AC BEQ loc_428C0 .text:000428B0 .text:000428B0 loc_428B0 ; CODE XREF: __strtof_internal+B64j .text:000428B0 LDR R3, [R11,#var_94] .text:000428B4 ADD R3, R3, #1 .text:000428B8 STR R3, [R11,#var_94] .text:000428BC B loc_42834 .text:000428C0 ; --------------------------------------------------------------------------- .text:000428C0 .text:000428C0 loc_428C0 ; CODE XREF: __strtof_internal+BD0j .text:000428C0 LDR R6, [R11,#var_94] .text:000428C4 ADD R6, R6, R0 .text:000428C8 LDR R0, [R11,#var_88] .text:000428CC STR R6, [R11,#var_94] .text:000428D0 CMP R0, #0x10 .text:000428D4 BNE loc_428EC .text:000428D8 SUB R3, R1, LR,LSL#2 .text:000428DC B loc_428F0 .text:000428DC ; --------------------------------------------------------------------------- .text:000428E0 off_428E0 DCD __ctype_tolower ; DATA XREF: __strtof_internal:loc_42554r .text:000428E0 ; __strtof_internal+8F0r ... .text:000428E4 dword_428E4 DCD 0x7F800000 ; DATA XREF: __strtof_internal+9E8r .text:000428E8 dword_428E8 DCD 0xFF800000 ; DATA XREF: __strtof_internal+9ECr .text:000428EC ; --------------------------------------------------------------------------- .text:000428EC .text:000428EC loc_428EC ; CODE XREF: __strtof_internal+BF8j .text:000428EC RSB R3, LR, R1 .text:000428F0 .text:000428F0 loc_428F0 ; CODE XREF: __strtof_internal+C00j .text:000428F0 STR R3, [R11,#var_78] .text:000428F4 STR R12, [R11,#var_98] .text:000428F8 .text:000428F8 loc_428F8 ; CODE XREF: __strtof_internal+B4Cj .text:000428F8 LDR R1, [R11,#var_88] .text:000428FC CMP R1, #0x10 .text:00042900 BNE loc_42F38 .text:00042904 LDR R2, [R11,#var_94] .text:00042908 LDR R6, =__ctype_b .text:0004290C LDRB R3, [R2] .text:00042910 MOV R5, #0 .text:00042914 LDR R1, [R6] .text:00042918 MOV R3, R3,LSL#1 .text:0004291C ADD R3, R3, R1 .text:00042920 LDRB R2, [R3,#1] .text:00042924 SUB R12, R11, #-var_70 .text:00042928 LDR LR, [R11,#var_98] .text:0004292C TST R2, #0x10 .text:00042930 LDR R2, [R11,#var_9C] .text:00042934 SUB R0, LR, #1 .text:00042938 STR R12, [R11,#var_D0] .text:0004293C SUB R6, R2, #1 .text:00042940 BNE loc_42964 .text:00042944 .text:00042944 loc_42944 ; CODE XREF: __strtof_internal+C84j .text:00042944 LDR R12, [R11,#var_94] .text:00042948 LDRB R3, [R12,#1]! .text:0004294C STR R12, [R11,#var_94] .text:00042950 MOV R3, R3,LSL#1 .text:00042954 ADD R3, R3, R1 .text:00042958 LDRB R2, [R3,#1] .text:0004295C TST R2, #0x10 .text:00042960 BEQ loc_42944 .text:00042964 .text:00042964 loc_42964 ; CODE XREF: __strtof_internal+C64j .text:00042964 LDR LR, [R11,#var_94] .text:00042968 LDRB R3, [LR] .text:0004296C MOV R4, R5,LSL#2 .text:00042970 CMP R3, #0x30 .text:00042974 BNE loc_4298C .text:00042978 .text:00042978 loc_42978 ; CODE XREF: __strtof_internal+CACj .text:00042978 LDR R1, [R11,#var_94] .text:0004297C LDRB R3, [R1,#1]! .text:00042980 CMP R3, #0x30 .text:00042984 STR R1, [R11,#var_94] .text:00042988 BEQ loc_42978 .text:0004298C .text:0004298C loc_4298C ; CODE XREF: __strtof_internal+C98j .text:0004298C LDR R2, [R11,#var_94] .text:00042990 LDR LR, =__ctype_b .text:00042994 LDRB R12, [R2] .text:00042998 LDR R3, [LR] .text:0004299C MOV R2, R12,LSL#1 .text:000429A0 ADD R2, R2, R3 .text:000429A4 LDRB R1, [R2,#1] .text:000429A8 TST R1, #8 .text:000429AC BEQ loc_429C4 .text:000429B0 LDR R1, [R11,#var_94] .text:000429B4 SUB LR, R12, #0x30 .text:000429B8 ADD R1, R1, #1 .text:000429BC STR R1, [R11,#var_94] .text:000429C0 B loc_429E0 .text:000429C4 ; --------------------------------------------------------------------------- .text:000429C4 .text:000429C4 loc_429C4 ; CODE XREF: __strtof_internal+CD0j .text:000429C4 LDR R3, =__ctype_tolower .text:000429C8 LDR R2, [R3] .text:000429CC LDR R1, [R2,R12,LSL#2] .text:000429D0 LDR R2, [R11,#var_94] .text:000429D4 ADD R2, R2, #1 .text:000429D8 SUB LR, R1, #0x57 .text:000429DC STR R2, [R11,#var_94] .text:000429E0 .text:000429E0 loc_429E0 ; CODE XREF: __strtof_internal+CE4j .text:000429E0 LDR R3, =nbits.138 .text:000429E4 LDR R3, [R3,LR,LSL#2] .text:000429E8 LDR R12, [R11,#var_D0] .text:000429EC RSB R2, R3, #0x17 .text:000429F0 STR R3, [R11,#var_90] .text:000429F4 ADD R3, R2, #1 .text:000429F8 MOV R3, LR,LSL R3 .text:000429FC STR R3, [R4,R12] .text:00042A00 CMP R0, #0 .text:00042A04 STR R0, [R11,#var_98] .text:00042A08 MOV R12, R2 .text:00042A0C MOV R3, R6,LSL#2 .text:00042A10 LDR LR, [R11,#var_90] .text:00042A14 SUB R3, R3, #1 .text:00042A18 LDR R2, [R11,#var_78] .text:00042A1C ADD R3, LR, R3 .text:00042A20 ADD R2, R2, R3 .text:00042A24 STR R2, [R11,#var_78] .text:00042A28 BLE loc_42D04 .text:00042A2C CMP R5, #0 .text:00042A30 BLT loc_42D04 .text:00042A34 MOV R10, #1 .text:00042A38 MOV R9, 0x7FFFFFFF .text:00042A3C LDR R4, [R11,#var_D0] .text:00042A40 .text:00042A40 loc_42A40 ; CODE XREF: __strtof_internal+1024j .text:00042A40 LDR R0, [R11,#var_94] .text:00042A44 LDR R2, =__ctype_b .text:00042A48 LDR R6, [R11,#var_A4] .text:00042A4C LDRB R3, [R0] .text:00042A50 LDR R1, [R2] .text:00042A54 MOV R3, R3,LSL#1 .text:00042A58 ADD R3, R3, R1 .text:00042A5C LDRB R2, [R3,#1] .text:00042A60 ADD R3, R0, R6 .text:00042A64 TST R2, #0x10 .text:00042A68 MOVEQ R0, R3 .text:00042A6C STR R0, [R11,#var_94] .text:00042A70 LDRB R0, [R0] .text:00042A74 MOV R3, R0,LSL#1 .text:00042A78 ADD R3, R3, R1 .text:00042A7C LDRB R2, [R3,#1] .text:00042A80 TST R2, #8 .text:00042A84 BEQ loc_42A9C .text:00042A88 SUB LR, R0, #0x30 .text:00042A8C LDR R0, [R11,#var_94] .text:00042A90 ADD R0, R0, #1 .text:00042A94 STR R0, [R11,#var_94] .text:00042A98 B loc_42AB8 .text:00042A9C ; --------------------------------------------------------------------------- .text:00042A9C .text:00042A9C loc_42A9C ; CODE XREF: __strtof_internal+DA8j .text:00042A9C LDR R3, =__ctype_tolower .text:00042AA0 LDR R2, [R3] .text:00042AA4 LDR R1, [R2,R0,LSL#2] .text:00042AA8 LDR R2, [R11,#var_94] .text:00042AAC ADD R2, R2, #1 .text:00042AB0 SUB LR, R1, #0x57 .text:00042AB4 STR R2, [R11,#var_94] .text:00042AB8 .text:00042AB8 loc_42AB8 ; CODE XREF: __strtof_internal+DBCj .text:00042AB8 ADD R3, R12, #1 .text:00042ABC CMP R3, #3 .text:00042AC0 BLE loc_42AE0 .text:00042AC4 MOV R1, R5,LSL#2 .text:00042AC8 SUB R2, R12, #3 .text:00042ACC LDR R3, [R1,R4] .text:00042AD0 SUB R12, R12, #4 .text:00042AD4 ORR R3, R3, LR,LSL R2 .text:00042AD8 STR R3, [R1,R4] .text:00042ADC B loc_42CE8 .text:00042AE0 ; --------------------------------------------------------------------------- .text:00042AE0 .text:00042AE0 loc_42AE0 ; CODE XREF: __strtof_internal+DE4j .text:00042AE0 MOV R0, R5,LSL#2 .text:00042AE4 SUBS R5, R5, #1 .text:00042AE8 RSB R3, R12, #3 .text:00042AEC LDR R1, [R0,R4] .text:00042AF0 ADD R2, R12, #0x1D .text:00042AF4 ORR R1, R1, LR,LSR R3 .text:00042AF8 MOV LR, LR,LSL R2 .text:00042AFC STR R1, [R0,R4] .text:00042B00 BPL loc_42CDC .text:00042B04 MOV R7, LR .text:00042B08 LDR R3, [R11,#var_98] .text:00042B0C MOV R8, #0x1F .text:00042B10 LDR R4, [R11,#var_78] .text:00042B14 CMP R3, #0 .text:00042B18 MOVLE R6, #0 .text:00042B1C MOVGT R6, #1 .text:00042B20 CMN R4, #0x7E .text:00042B24 BGE loc_42C78 .text:00042B28 RSB R12, R4, #0xFC000002 .text:00042B2C ADD R12, R12, #0x3FC0000 .text:00042B30 ADD R12, R12, #0x3FC00 .text:00042B34 ADD R12, R12, #0x380 .text:00042B38 CMP R12, #0x18 .text:00042B3C BGT loc_44DBC .text:00042B40 TST LR, R9 .text:00042B44 ORRNE R6, R6, #1 .text:00042B48 CMP R12, #0x18 .text:00042B4C BNE loc_42B94 .text:00042B50 MOV R8, #0x17 .text:00042B54 MOV R2, #0 .text:00042B58 LDR R7, [R11,#var_70] .text:00042B5C .text:00042B5C loc_42B5C ; CODE XREF: __strtof_internal+E98j .text:00042B5C LDR R12, [R11,#var_D0] .text:00042B60 LDR R3, [R12,R2,LSL#2] .text:00042B64 ADD R2, R2, #1 .text:00042B68 CMP R3, #0 .text:00042B6C ORRNE R6, R6, #1 .text:00042B70 CMP R2, #0 .text:00042B74 BLE loc_42B5C .text:00042B78 MOV R1, #0 .text:00042B7C MOV R3, R12 .text:00042B80 MOV R2, R3 .text:00042B84 .text:00042B84 loc_42B84 ; CODE XREF: __strtof_internal+EB0j .text:00042B84 STR R1, [R3],#-4 .text:00042B88 CMP R3, R2 .text:00042B8C BGE loc_42B84 .text:00042B90 B loc_42C74 .text:00042B94 ; --------------------------------------------------------------------------- .text:00042B94 .text:00042B94 loc_42B94 ; CODE XREF: __strtof_internal+E70j .text:00042B94 CMP R12, #0x1F .text:00042B98 BLE loc_42C50 .text:00042B9C SUB R3, R12, #1 .text:00042BA0 CMP R3, #0 .text:00042BA4 ADDLT R2, R3, #0x1F .text:00042BA8 MOVGE R2, R3 .text:00042BAC MOV R2, R2,ASR#5 .text:00042BB0 SUB R8, R3, R2,LSL#5 .text:00042BB4 MOV R1, #0 .text:00042BB8 LDR LR, [R11,#var_D0] .text:00042BBC CMP R1, R2 .text:00042BC0 LDR R7, [LR,R2,LSL#2] .text:00042BC4 MOV LR, R12,ASR#31 .text:00042BC8 BGE loc_42BE8 .text:00042BCC .text:00042BCC loc_42BCC ; CODE XREF: __strtof_internal+F08j .text:00042BCC LDR R0, [R11,#var_D0] .text:00042BD0 LDR R3, [R0,R1,LSL#2] .text:00042BD4 ADD R1, R1, #1 .text:00042BD8 CMP R3, #0 .text:00042BDC ORRNE R6, R6, #1 .text:00042BE0 CMP R1, R2 .text:00042BE4 BLT loc_42BCC .text:00042BE8 .text:00042BE8 loc_42BE8 ; CODE XREF: __strtof_internal+EECj .text:00042BE8 MOV R3, R10,LSL R8 .text:00042BEC SUB R3, R3, #1 .text:00042BF0 TST R7, R3 .text:00042BF4 ORRNE R6, R6, #1 .text:00042BF8 MOV R3, LR,LSR#27 .text:00042BFC ADD R3, R12, R3 .text:00042C00 MOV R4, R3,ASR#5 .text:00042C04 RSB R5, R4, #1 .text:00042C08 MOV R2, R5 .text:00042C0C LDR R0, [R11,#var_D0] .text:00042C10 SUB R3, R12, R4,LSL#5 .text:00042C14 ADD R1, R0, R4,LSL#2 .text:00042C18 BL __mpn_rshift .text:00042C1C MOV R1, #0 .text:00042C20 CMP R1, R4 .text:00042C24 BGE loc_42C74 .text:00042C28 MOV R0, R4 .text:00042C2C LDR R3, [R11,#var_D0] .text:00042C30 MOV R12, R1 .text:00042C34 ADD R2, R3, R5,LSL#2 .text:00042C38 .text:00042C38 loc_42C38 ; CODE XREF: __strtof_internal+F6Cj .text:00042C38 MOV R3, R1,LSL#2 .text:00042C3C ADD R1, R1, #1 .text:00042C40 CMP R1, R0 .text:00042C44 STR R12, [R3,R2] .text:00042C48 BLT loc_42C38 .text:00042C4C B loc_42C74 .text:00042C50 ; --------------------------------------------------------------------------- .text:00042C50 .text:00042C50 loc_42C50 ; CODE XREF: __strtof_internal+EBCj .text:00042C50 CMP R12, #0 .text:00042C54 BLE loc_42C74 .text:00042C58 SUB R8, R12, #1 .text:00042C5C MOV R2, #1 .text:00042C60 LDR R0, [R11,#var_D0] .text:00042C64 MOV R3, R12 .text:00042C68 LDR R7, [R11,#var_70] .text:00042C6C MOV R1, R0 .text:00042C70 BL __mpn_rshift .text:00042C74 .text:00042C74 loc_42C74 ; CODE XREF: __strtof_internal+EB4j .text:00042C74 ; __strtof_internal+F48j ... .text:00042C74 MOV R4, 0xFFFFFF81 .text:00042C78 .text:00042C78 loc_42C78 ; CODE XREF: __strtof_internal+E48j .text:00042C78 MOV R3, R7,LSR R8 .text:00042C7C TST R3, #1 .text:00042C80 BEQ loc_44FA8 .text:00042C84 CMP R6, #0 .text:00042C88 LDR R6, [R11,#var_D0] .text:00042C8C LDR R2, [R6] .text:00042C90 BNE loc_42CAC .text:00042C94 TST R2, #1 .text:00042C98 BNE loc_42CAC .text:00042C9C MOV R3, R10,LSL R8 .text:00042CA0 .text:00042CA0 loc_42CA0 ; CODE XREF: __strtof_internal+19C8j .text:00042CA0 ; __strtof_internal+2544j .text:00042CA0 SUB R3, R3, #1 .text:00042CA4 TST R7, R3 .text:00042CA8 BEQ loc_44FA8 .text:00042CAC .text:00042CAC loc_42CAC ; CODE XREF: __strtof_internal+FB4j .text:00042CAC ; __strtof_internal+FBCj ... .text:00042CAC ADD R3, R2, #1 .text:00042CB0 LDR R12, [R11,#var_D0] .text:00042CB4 CMP R3, R2 .text:00042CB8 STR R3, [R12] .text:00042CBC LDR LR, [R11,#var_D0] .text:00042CC0 LDR R3, [LR] .text:00042CC4 TST R3, #0x1000000 .text:00042CC8 BNE loc_44F6C .text:00042CCC B loc_44F98 .text:00042CCC ; --------------------------------------------------------------------------- .text:00042CD0 off_42CD0 DCD __ctype_b ; DATA XREF: __strtof_internal+C2Cr .text:00042CD0 ; __strtof_internal+CB4r ... .text:00042CD4 off_42CD4 DCD __ctype_tolower ; DATA XREF: __strtof_internal:loc_429C4r .text:00042CD4 ; __strtof_internal:loc_42A9Cr .text:00042CD8 off_42CD8 DCD nbits.138 ; DATA XREF: __strtof_internal:loc_429E0r .text:00042CDC ; --------------------------------------------------------------------------- .text:00042CDC .text:00042CDC loc_42CDC ; CODE XREF: __strtof_internal+E24j .text:00042CDC LDR R2, [R11,#var_D0] .text:00042CE0 ADD R12, R12, #0x1C .text:00042CE4 STR LR, [R2,R5,LSL#2] .text:00042CE8 .text:00042CE8 loc_42CE8 ; CODE XREF: __strtof_internal+E00j .text:00042CE8 LDR R3, [R11,#var_98] .text:00042CEC SUB R3, R3, #1 .text:00042CF0 CMP R3, #0 .text:00042CF4 STR R3, [R11,#var_98] .text:00042CF8 BLE loc_42D04 .text:00042CFC CMP R5, #0 .text:00042D00 BGE loc_42A40 .text:00042D04 .text:00042D04 loc_42D04 ; CODE XREF: __strtof_internal+D4Cj .text:00042D04 ; __strtof_internal+D54j ... .text:00042D04 MOV R2, #0 .text:00042D08 CMP R2, R5 .text:00042D0C BGE loc_42D2C .text:00042D10 MOV R0, R2 .text:00042D14 LDR R1, [R11,#var_D0] .text:00042D18 .text:00042D18 loc_42D18 ; CODE XREF: __strtof_internal+104Cj .text:00042D18 MOV R3, R2,LSL#2 .text:00042D1C ADD R2, R2, #1 .text:00042D20 CMP R2, R5 .text:00042D24 STR R0, [R3,R1] .text:00042D28 BLT loc_42D18 .text:00042D2C .text:00042D2C loc_42D2C ; CODE XREF: __strtof_internal+1030j .text:00042D2C MOV R1, #0 .text:00042D30 MOV R6, R1 .text:00042D34 MOV R8, R6 .text:00042D38 LDR R4, [R11,#var_78] .text:00042D3C MOV R7, R6 .text:00042D40 CMN R4, #0x7E .text:00042D44 BGE loc_42E94 .text:00042D48 RSB R12, R4, #0xFC000002 .text:00042D4C ADD R12, R12, #0x3FC0000 .text:00042D50 ADD R12, R12, #0x3FC00 .text:00042D54 ADD R12, R12, #0x380 .text:00042D58 CMP R12, #0x18 .text:00042D5C BGT loc_44DBC .text:00042D60 MOV R7, R6 .text:00042D64 CMP R12, #0x18 .text:00042D68 BNE loc_42DB0 .text:00042D6C MOV R8, #0x17 .text:00042D70 MOV R2, R1 .text:00042D74 LDR R6, [R11,#var_70] .text:00042D78 .text:00042D78 loc_42D78 ; CODE XREF: __strtof_internal+10B4j .text:00042D78 LDR R12, [R11,#var_D0] .text:00042D7C LDR R3, [R12,R2,LSL#2] .text:00042D80 ADD R2, R2, #1 .text:00042D84 CMP R3, #0 .text:00042D88 ORRNE R7, R7, #1 .text:00042D8C CMP R2, #0 .text:00042D90 BLE loc_42D78 .text:00042D94 MOV R1, #0 .text:00042D98 MOV R3, R12 .text:00042D9C MOV R2, R3 .text:00042DA0 .text:00042DA0 loc_42DA0 ; CODE XREF: __strtof_internal+10CCj .text:00042DA0 STR R1, [R3],#-4 .text:00042DA4 CMP R3, R2 .text:00042DA8 BGE loc_42DA0 .text:00042DAC B loc_42E90 .text:00042DB0 ; --------------------------------------------------------------------------- .text:00042DB0 .text:00042DB0 loc_42DB0 ; CODE XREF: __strtof_internal+108Cj .text:00042DB0 CMP R12, #0x1F .text:00042DB4 BLE loc_42E6C .text:00042DB8 SUB R3, R12, #1 .text:00042DBC CMP R3, #0 .text:00042DC0 ADDLT R2, R3, #0x1F .text:00042DC4 MOVGE R2, R3 .text:00042DC8 MOV R2, R2,ASR#5 .text:00042DCC SUB R8, R3, R2,LSL#5 .text:00042DD0 LDR LR, [R11,#var_D0] .text:00042DD4 CMP R7, R2 .text:00042DD8 LDR R6, [LR,R2,LSL#2] .text:00042DDC MOV LR, R12,ASR#31 .text:00042DE0 BGE loc_42E00 .text:00042DE4 .text:00042DE4 loc_42DE4 ; CODE XREF: __strtof_internal+1120j .text:00042DE4 LDR R0, [R11,#var_D0] .text:00042DE8 LDR R3, [R0,R1,LSL#2] .text:00042DEC ADD R1, R1, #1 .text:00042DF0 CMP R3, #0 .text:00042DF4 ORRNE R7, R7, #1 .text:00042DF8 CMP R1, R2 .text:00042DFC BLT loc_42DE4 .text:00042E00 .text:00042E00 loc_42E00 ; CODE XREF: __strtof_internal+1104j .text:00042E00 MOV R3, #1 .text:00042E04 MOV R3, R3,LSL R8 .text:00042E08 SUB R3, R3, #1 .text:00042E0C TST R6, R3 .text:00042E10 ORRNE R7, R7, #1 .text:00042E14 MOV R3, LR,LSR#27 .text:00042E18 ADD R3, R12, R3 .text:00042E1C MOV R4, R3,ASR#5 .text:00042E20 RSB R5, R4, #1 .text:00042E24 MOV R2, R5 .text:00042E28 LDR R0, [R11,#var_D0] .text:00042E2C SUB R3, R12, R4,LSL#5 .text:00042E30 ADD R1, R0, R4,LSL#2 .text:00042E34 BL __mpn_rshift .text:00042E38 MOV R1, #0 .text:00042E3C CMP R1, R4 .text:00042E40 BGE loc_42E90 .text:00042E44 MOV R0, R4 .text:00042E48 LDR R3, [R11,#var_D0] .text:00042E4C MOV R12, R1 .text:00042E50 ADD R2, R3, R5,LSL#2 .text:00042E54 .text:00042E54 loc_42E54 ; CODE XREF: __strtof_internal+1188j .text:00042E54 MOV R3, R1,LSL#2 .text:00042E58 ADD R1, R1, #1 .text:00042E5C CMP R1, R0 .text:00042E60 STR R12, [R3,R2] .text:00042E64 BLT loc_42E54 .text:00042E68 B loc_42E90 .text:00042E6C ; --------------------------------------------------------------------------- .text:00042E6C .text:00042E6C loc_42E6C ; CODE XREF: __strtof_internal+10D8j .text:00042E6C CMP R12, #0 .text:00042E70 BLE loc_42E90 .text:00042E74 SUB R8, R12, #1 .text:00042E78 MOV R2, #1 .text:00042E7C LDR R0, [R11,#var_D0] .text:00042E80 MOV R3, R12 .text:00042E84 LDR R6, [R11,#var_70] .text:00042E88 MOV R1, R0 .text:00042E8C BL __mpn_rshift .text:00042E90 .text:00042E90 loc_42E90 ; CODE XREF: __strtof_internal+10D0j .text:00042E90 ; __strtof_internal+1164j ... .text:00042E90 MOV R4, 0xFFFFFF81 .text:00042E94 .text:00042E94 loc_42E94 ; CODE XREF: __strtof_internal+1068j .text:00042E94 MOV R3, R6,LSR R8 .text:00042E98 TST R3, #1 .text:00042E9C BEQ loc_42F24 .text:00042EA0 LDR R12, [R11,#var_D0] .text:00042EA4 CMP R7, #0 .text:00042EA8 LDR R2, [R12] .text:00042EAC BNE loc_42ECC .text:00042EB0 TST R2, #1 .text:00042EB4 BNE loc_42ECC .text:00042EB8 MOV R3, #1 .text:00042EBC MOV R3, R3,LSL R8 .text:00042EC0 SUB R3, R3, #1 .text:00042EC4 TST R6, R3 .text:00042EC8 BEQ loc_42F24 .text:00042ECC .text:00042ECC loc_42ECC ; CODE XREF: __strtof_internal+11D0j .text:00042ECC ; __strtof_internal+11D8j .text:00042ECC ADD R3, R2, #1 .text:00042ED0 LDR LR, [R11,#var_D0] .text:00042ED4 CMP R3, R2 .text:00042ED8 STR R3, [LR] .text:00042EDC LDR R0, [R11,#var_D0] .text:00042EE0 LDR R3, [R0] .text:00042EE4 TST R3, #0x1000000 .text:00042EE8 BEQ loc_42F14 .text:00042EEC MOV R1, R0 .text:00042EF0 MOV R2, #1 .text:00042EF4 MOV R3, R2 .text:00042EF8 BL __mpn_rshift .text:00042EFC LDR R1, [R11,#var_D0] .text:00042F00 LDR R3, [R1] .text:00042F04 ADD R4, R4, #1 .text:00042F08 ORR R3, R3, #0x800000 .text:00042F0C STR R3, [R1] .text:00042F10 B loc_42F24 .text:00042F14 ; --------------------------------------------------------------------------- .text:00042F14 .text:00042F14 loc_42F14 ; CODE XREF: __strtof_internal+120Cj .text:00042F14 CMN R4, #0x7F .text:00042F18 BNE loc_42F24 .text:00042F1C TST R3, #0x800000 .text:00042F20 MOVNE R4, 0xFFFFFF82 .text:00042F24 .text:00042F24 loc_42F24 ; CODE XREF: __strtof_internal+11C0j .text:00042F24 ; __strtof_internal+11ECj ... .text:00042F24 CMP R4, #0x80 .text:00042F28 BLE loc_44FD8 .text:00042F2C LDR R2, [R11,#var_84] .text:00042F30 CMP R2, #0 .text:00042F34 B loc_44FB8 .text:00042F38 ; --------------------------------------------------------------------------- .text:00042F38 .text:00042F38 loc_42F38 ; CODE XREF: __strtof_internal+C24j .text:00042F38 LDR R3, [R11,#var_78] .text:00042F3C CMP R3, #0 .text:00042F40 MOV R1, R3 .text:00042F44 BGE loc_42F5C .text:00042F48 LDR R6, [R11,#var_9C] .text:00042F4C RSB R3, R6, #0 .text:00042F50 CMP R1, R3 .text:00042F54 MOVGE R3, R1 .text:00042F58 B loc_42F70 .text:00042F5C ; --------------------------------------------------------------------------- .text:00042F5C .text:00042F5C loc_42F5C ; CODE XREF: __strtof_internal+1268j .text:00042F5C LDR R12, [R11,#var_98] .text:00042F60 LDR LR, [R11,#var_9C] .text:00042F64 RSB R3, LR, R12 .text:00042F68 CMP R1, R3 .text:00042F6C MOVLT R3, R1 .text:00042F70 .text:00042F70 loc_42F70 ; CODE XREF: __strtof_internal+127Cj .text:00042F70 LDR R0, [R11,#var_9C] .text:00042F74 RSB R2, R3, R1 .text:00042F78 STR R2, [R11,#var_78] .text:00042F7C ADD R0, R0, R3 .text:00042F80 ADD R3, R0, R2 .text:00042F84 CMP R3, #0x27 .text:00042F88 STR R0, [R11,#var_9C] .text:00042F8C BGT loc_43390 .text:00042F90 CMN R2, #0x2C .text:00042F94 BGE loc_42FAC .text:00042F98 BL __errno_location .text:00042F9C CDP p1, 0, c8,c0,c8, 0 .text:00042FA0 MOV R3, #0x22 .text:00042FA4 STR R3, [R0] .text:00042FA8 B locret_44FF8 .text:00042FAC ; --------------------------------------------------------------------------- .text:00042FAC .text:00042FAC loc_42FAC ; CODE XREF: __strtof_internal+12B8j .text:00042FAC SUB R9, R11, #-var_48 .text:00042FB0 SUB R10, R11, #-var_74 .text:00042FB4 LDR R2, [R11,#var_9C] .text:00042FB8 SUB R3, R11, #-var_78 .text:00042FBC STR R3, [R11,#var_CC] .text:00042FC0 CMP R2, #0 .text:00042FC4 BLE loc_43A1C .text:00042FC8 MOV R1, R2 .text:00042FCC MOV R7, #0 .text:00042FD0 MOV R0, R7 .text:00042FD4 LDR R5, [R11,#var_94] .text:00042FD8 MOV R6, R10 .text:00042FDC STR R7, [R11,#var_74] .text:00042FE0 .text:00042FE0 loc_42FE0 ; CODE XREF: __strtof_internal+147Cj .text:00042FE0 CMP R0, #9 .text:00042FE4 SUB R8, R1, #1 .text:00042FE8 BNE loc_430BC .text:00042FEC LDR R2, [R6] .text:00042FF0 CMP R2, #0 .text:00042FF4 STREQ R7, [R11,#var_48] .text:00042FF8 MOVEQ R3, #1 .text:00042FFC BEQ loc_430B0 .text:00043000 SUB R0, R11, #-var_48 .text:00043004 MOV R1, R0 .text:00043008 MOV R3, 0x3B9ACA00 .text:00043014 BL __mpn_mul_1 .text:00043018 SUB LR, R11, #-var_44 .text:0004301C LDR R1, [R11,#var_48] .text:00043020 MOV R4, LR .text:00043024 LDR R12, [R6] .text:00043028 ADD R3, R7, R1 .text:0004302C CMP R3, R1 .text:00043030 STR R3, [R11,#var_48] .text:00043034 BCS loc_43064 .text:00043038 SUBS R12, R12, #1 .text:0004303C BEQ loc_4305C .text:00043040 .text:00043040 loc_43040 ; CODE XREF: __strtof_internal+137Cj .text:00043040 LDR R3, [LR],#4 .text:00043044 ADD R1, R3, #1 .text:00043048 CMP R1, #0 .text:0004304C STR R1, [R4],#4 .text:00043050 BNE loc_43064 .text:00043054 SUBS R12, R12, #1 .text:00043058 BNE loc_43040 .text:0004305C .text:0004305C loc_4305C ; CODE XREF: __strtof_internal+1360j .text:0004305C MOV R3, #1 .text:00043060 B loc_43094 .text:00043064 ; --------------------------------------------------------------------------- .text:00043064 .text:00043064 loc_43064 ; CODE XREF: __strtof_internal+1358j .text:00043064 ; __strtof_internal+1374j .text:00043064 CMP R4, LR .text:00043068 BEQ loc_43090 .text:0004306C MOV R2, #0 .text:00043070 SUB R1, R12, #1 .text:00043074 CMP R2, R1 .text:00043078 BGE loc_43090 .text:0004307C .text:0004307C loc_4307C ; CODE XREF: __strtof_internal+13B0j .text:0004307C LDR R3, [LR,R2,LSL#2] .text:00043080 STR R3, [R4,R2,LSL#2] .text:00043084 ADD R2, R2, #1 .text:00043088 CMP R2, R1 .text:0004308C BLT loc_4307C .text:00043090 .text:00043090 loc_43090 ; CODE XREF: __strtof_internal+138Cj .text:00043090 ; __strtof_internal+139Cj .text:00043090 MOV R3, #0 .text:00043094 .text:00043094 loc_43094 ; CODE XREF: __strtof_internal+1384j .text:00043094 ADDS R0, R0, R3 .text:00043098 BEQ loc_430B4 .text:0004309C LDR R2, [R6] .text:000430A0 SUB R12, R11, #-var_48 .text:000430A4 STR R0, [R12,R2,LSL#2] .text:000430A8 LDR R3, [R6] .text:000430AC ADD R3, R3, #1 .text:000430B0 .text:000430B0 loc_430B0 ; CODE XREF: __strtof_internal+1320j .text:000430B0 STR R3, [R6] .text:000430B4 .text:000430B4 loc_430B4 ; CODE XREF: __strtof_internal+13BCj .text:000430B4 MOV R7, #0 .text:000430B8 MOV R0, R7 .text:000430BC .text:000430BC loc_430BC ; CODE XREF: __strtof_internal+130Cj .text:000430BC MOV R2, R7,LSL#2 .text:000430C0 LDRB R1, [R5] .text:000430C4 ADD R12, R0, #1 .text:000430C8 SUB R3, R1, #0x30 .text:000430CC CMP R3, #9 .text:000430D0 BLS loc_43140 .text:000430D4 LDR LR, [R11,#var_A8] .text:000430D8 CMP LR, #0 .text:000430DC BEQ loc_43138 .text:000430E0 LDRB R3, [LR] .text:000430E4 CMP R1, R3 .text:000430E8 BNE loc_43138 .text:000430EC MOV R0, #1 .text:000430F0 LDRB R1, [LR,R0] .text:000430F4 CMP R1, #0 .text:000430F8 BEQ loc_43128 .text:000430FC LDRB R3, [R5,#1] .text:00043100 CMP R1, R3 .text:00043104 BNE loc_43128 .text:00043108 .text:00043108 loc_43108 ; CODE XREF: __strtof_internal+1448j .text:00043108 LDR R3, [R11,#var_A8] .text:0004310C ADD R0, R0, #1 .text:00043110 LDRB R1, [R3,R0] .text:00043114 CMP R1, #0 .text:00043118 BEQ loc_43128 .text:0004311C LDRB R3, [R5,R0] .text:00043120 CMP R1, R3 .text:00043124 BEQ loc_43108 .text:00043128 .text:00043128 loc_43128 ; CODE XREF: __strtof_internal+141Cj .text:00043128 ; __strtof_internal+1428j ... .text:00043128 LDR LR, [R11,#var_A8] .text:0004312C LDRB R3, [LR,R0] .text:00043130 CMP R3, #0 .text:00043134 BEQ loc_4313C .text:00043138 .text:00043138 loc_43138 ; CODE XREF: __strtof_internal+1400j .text:00043138 ; __strtof_internal+140Cj .text:00043138 LDR R0, [R11,#var_A4] .text:0004313C .text:0004313C loc_4313C ; CODE XREF: __strtof_internal+1458j .text:0004313C ADD R5, R5, R0 .text:00043140 .text:00043140 loc_43140 ; CODE XREF: __strtof_internal+13F4j .text:00043140 MOV R0, R12 .text:00043144 SUBS R1, R8, #0 .text:00043148 LDRB R3, [R5],#1 .text:0004314C ADD R2, R2, R7 .text:00043150 ADD R3, R3, R2,LSL#1 .text:00043154 SUB R7, R3, #0x30 .text:00043158 BGT loc_42FE0 .text:0004315C LDR R2, [R11,#var_78] .text:00043160 CMP R2, #0 .text:00043164 BLE loc_43190 .text:00043168 ADD R3, R12, R2 .text:0004316C CMP R3, #9 .text:00043170 BGT loc_43190 .text:00043174 LDR R1, =_tens_in_limb .text:00043178 LDR R12, [R1,R3,LSL#2] .text:0004317C LDR R2, [R1,R2,LSL#2] .text:00043180 MOV R3, #0 .text:00043184 STR R3, [R11,#var_78] .text:00043188 MUL R7, R2, R7 .text:0004318C B loc_43198 .text:00043190 ; --------------------------------------------------------------------------- .text:00043190 .text:00043190 loc_43190 ; CODE XREF: __strtof_internal+1488j .text:00043190 ; __strtof_internal+1494j .text:00043190 LDR R2, =_tens_in_limb .text:00043194 LDR R12, [R2,R12,LSL#2] .text:00043198 .text:00043198 loc_43198 ; CODE XREF: __strtof_internal+14B0j .text:00043198 LDR R2, [R6] .text:0004319C CMP R2, #0 .text:000431A0 STREQ R7, [R11,#var_48] .text:000431A4 MOVEQ R3, #1 .text:000431A8 BEQ loc_43250 .text:000431AC SUB R0, R11, #-var_48 .text:000431B0 MOV R1, R0 .text:000431B4 MOV R3, R12 .text:000431B8 BL __mpn_mul_1 .text:000431BC SUB LR, R11, #-var_44 .text:000431C0 LDR R1, [R11,#var_48] .text:000431C4 MOV R4, LR .text:000431C8 LDR R12, [R6] .text:000431CC ADD R3, R7, R1 .text:000431D0 CMP R3, R1 .text:000431D4 STR R3, [R11,#var_48] .text:000431D8 BCS loc_43208 .text:000431DC SUBS R12, R12, #1 .text:000431E0 BEQ loc_43200 .text:000431E4 .text:000431E4 loc_431E4 ; CODE XREF: __strtof_internal+1520j .text:000431E4 LDR R3, [LR],#4 .text:000431E8 ADD R1, R3, #1 .text:000431EC CMP R1, #0 .text:000431F0 STR R1, [R4],#4 .text:000431F4 BNE loc_43208 .text:000431F8 SUBS R12, R12, #1 .text:000431FC BNE loc_431E4 .text:00043200 .text:00043200 loc_43200 ; CODE XREF: __strtof_internal+1504j .text:00043200 MOV R3, #1 .text:00043204 B loc_43238 .text:00043208 ; --------------------------------------------------------------------------- .text:00043208 .text:00043208 loc_43208 ; CODE XREF: __strtof_internal+14FCj .text:00043208 ; __strtof_internal+1518j .text:00043208 CMP R4, LR .text:0004320C BEQ loc_43234 .text:00043210 MOV R2, #0 .text:00043214 SUB R1, R12, #1 .text:00043218 CMP R2, R1 .text:0004321C BGE loc_43234 .text:00043220 .text:00043220 loc_43220 ; CODE XREF: __strtof_internal+1554j .text:00043220 LDR R3, [LR,R2,LSL#2] .text:00043224 STR R3, [R4,R2,LSL#2] .text:00043228 ADD R2, R2, #1 .text:0004322C CMP R2, R1 .text:00043230 BLT loc_43220 .text:00043234 .text:00043234 loc_43234 ; CODE XREF: __strtof_internal+1530j .text:00043234 ; __strtof_internal+1540j .text:00043234 MOV R3, #0 .text:00043238 .text:00043238 loc_43238 ; CODE XREF: __strtof_internal+1528j .text:00043238 ADDS R0, R0, R3 .text:0004323C BEQ loc_43254 .text:00043240 LDR R3, [R6] .text:00043244 SUB R12, R11, #-var_48 .text:00043248 STR R0, [R12,R3,LSL#2] .text:0004324C ADD R3, R3, #1 .text:00043250 .text:00043250 loc_43250 ; CODE XREF: __strtof_internal+14CCj .text:00043250 STR R3, [R6] .text:00043254 .text:00043254 loc_43254 ; CODE XREF: __strtof_internal+1560j .text:00043254 LDR R3, [R11,#var_78] .text:00043258 STR R5, [R11,#var_94] .text:0004325C CMP R3, #0 .text:00043260 MOV R1, R3 .text:00043264 BLE loc_43338 .text:00043268 MOV R6, R9 .text:0004326C SUB R5, R11, #-var_68 .text:00043270 MOV R8, #1 .text:00043274 LDR R7, =_fpioconst_pow10 .text:00043278 .text:00043278 loc_43278 ; CODE XREF: __strtof_internal+1638j .text:00043278 TST R1, R8 .text:0004327C BEQ loc_43308 .text:00043280 EOR R3, R1, R8 .text:00043284 STR R3, [R11,#var_78] .text:00043288 LDR R2, [R7,#(_fpioconst_pow10+4 - 0x61998)] .text:0004328C LDR R12, [R11,#var_74] .text:00043290 SUB R4, R2, #2 .text:00043294 CMP R12, R4 .text:00043298 BLT loc_432C0 .text:0004329C STR R4, [SP,#0xEC+var_EC] .text:000432A0 MOV R0, R5 .text:000432A4 LDR LR, =(__tens+8) .text:000432A8 MOV R1, R6 .text:000432AC LDR R3, [R7] .text:000432B0 MOV R2, R12 .text:000432B4 ADD R3, LR, R3,LSL#2 .text:000432B8 BL __mpn_mul .text:000432BC B loc_432E0 .text:000432C0 ; --------------------------------------------------------------------------- .text:000432C0 .text:000432C0 loc_432C0 ; CODE XREF: __strtof_internal+15BCj .text:000432C0 STR R12, [SP,#0xEC+var_EC] .text:000432C4 MOV R0, R5 .text:000432C8 LDR R12, =(__tens+8) .text:000432CC MOV R2, R4 .text:000432D0 LDR R1, [R7] .text:000432D4 MOV R3, R6 .text:000432D8 ADD R1, R12, R1,LSL#2 .text:000432DC BL __mpn_mul .text:000432E0 .text:000432E0 loc_432E0 ; CODE XREF: __strtof_internal+15E0j .text:000432E0 LDR R3, [R11,#var_74] .text:000432E4 CMP R0, #0 .text:000432E8 ADD R2, R3, R4 .text:000432EC STR R2, [R11,#var_74] .text:000432F0 SUBEQ R3, R2, #1 .text:000432F4 STREQ R3, [R11,#var_74] .text:000432F8 MOV R3, R6 .text:000432FC MOV R6, R5 .text:00043300 MOV R5, R3 .text:00043304 LDR R1, [R11,#var_78] .text:00043308 .text:00043308 loc_43308 ; CODE XREF: __strtof_internal+15A0j .text:00043308 MOV R8, R8,LSL#1 .text:0004330C ADD R7, R7, #0x10 .text:00043310 CMP R1, #0 .text:00043314 BNE loc_43278 .text:00043318 SUB LR, R11, #-var_68 .text:0004331C CMP R6, LR .text:00043320 BNE loc_43338 .text:00043324 MOV R0, R9 .text:00043328 LDR R2, [R11,#var_74] .text:0004332C MOV R1, LR .text:00043330 MOV R2, R2,LSL#2 .text:00043334 BL memcpy .text:00043338 .text:00043338 loc_43338 ; CODE XREF: __strtof_internal+1588j .text:00043338 ; __strtof_internal+1644j .text:00043338 LDR R2, [R11,#var_74] .text:0004333C SUB R3, R2, #1 .text:00043340 LDR R3, [R9,R3,LSL#2] .text:00043344 MOV LR, R2 .text:00043348 CMP R3, #0x10000 .text:0004334C BCS loc_43360 .text:00043350 CMP R3, #0xFF .text:00043354 MOVHI R1, #8 .text:00043358 MOVLS R1, #0 .text:0004335C B loc_4336C .text:00043360 ; --------------------------------------------------------------------------- .text:00043360 .text:00043360 loc_43360 ; CODE XREF: __strtof_internal+1670j .text:00043360 CMP R3, #0x1000000 .text:00043364 MOVCS R1, #0x18 .text:00043368 MOVCC R1, #0x10 .text:0004336C .text:0004336C loc_4336C ; CODE XREF: __strtof_internal+1680j .text:0004336C LDR R0, =__clz_tab_1 .text:00043370 MOV R2, R3,LSR R1 .text:00043374 LDRB R3, [R0,R2] .text:00043378 ADD R3, R3, R1 .text:0004337C RSB R3, R3, #0x20 .text:00043380 RSB R3, R3, LR,LSL#5 .text:00043384 CMP R3, #0x80 .text:00043388 STR R3, [R11,#var_90] .text:0004338C BLE loc_433B8 .text:00043390 .text:00043390 loc_43390 ; CODE XREF: __strtof_internal+12B0j .text:00043390 BL __errno_location .text:00043394 LDR R1, [R11,#var_84] .text:00043398 MOV R3, #0x22 .text:0004339C STR R3, [R0] .text:000433A0 CMP R1, #0 .text:000433A4 .text:000433A4 loc_433A4 ; CODE XREF: __strtof_internal+1C0j .text:000433A4 LDR R3, =0x7F800000 .text:000433A8 LDRNE R3, =0xFF800000 .text:000433AC STR R3, [SP,#0xEC+var_F0]! .text:000433B0 LDC p1, c0, [SP+0xF0+var_F0],#4 .text:000433B4 B locret_44FF8 .text:000433B8 ; --------------------------------------------------------------------------- .text:000433B8 .text:000433B8 loc_433B8 ; CODE XREF: __strtof_internal+16B0j .text:000433B8 LDR R2, [R11,#var_90] .text:000433BC CMP R2, #0x18 .text:000433C0 BLE loc_436A8 .text:000433C4 SUB R3, R2, #0x18 .text:000433C8 CMP R3, #0 .text:000433CC ADDLT R2, R3, #0x1F .text:000433D0 MOVGE R2, R3 .text:000433D4 MOV R4, R2,ASR#5 .text:000433D8 MOV R7, R4 .text:000433DC SUB R4, R3, R4,LSL#5 .text:000433E0 CMP R4, #0 .text:000433E4 MOVNE R10, R7 .text:000433E8 SUBEQ R10, R7, #1 .text:000433EC SUBNE R3, R4, #1 .text:000433F0 MOVEQ R3, #0x1F .text:000433F4 STR R3, [R11,#var_B0] .text:000433F8 BNE loc_43440 .text:000433FC LDR R12, [R11,#var_90] .text:00043400 SUB R6, R11, #-var_70 .text:00043404 STR R6, [R11,#var_D0] .text:00043408 SUB R12, R12, #1 .text:0004340C STR R12, [R11,#var_DC] .text:00043410 ADD R3, R11, R7,LSL#2 .text:00043414 SUB R3, R3, #0x28 .text:00043418 LDR R2, [R3,#-0x20] .text:0004341C MOV R0, R10,LSL#2 .text:00043420 STR R2, [R11,#var_70] .text:00043424 B loc_434C4 .text:00043424 ; --------------------------------------------------------------------------- .text:00043428 off_43428 DCD _tens_in_limb ; DATA XREF: __strtof_internal+1498r .text:00043428 ; __strtof_internal:loc_43190r .text:0004342C off_4342C DCD _fpioconst_pow10 ; DATA XREF: __strtof_internal+1598r .text:00043430 off_43430 DCD __tens+8 ; DATA XREF: __strtof_internal+15C8r .text:00043430 ; __strtof_internal+15ECr .text:00043434 off_43434 DCD __clz_tab_1 ; DATA XREF: __strtof_internal:loc_4336Cr .text:00043438 dword_43438 DCD 0x7F800000 ; DATA XREF: __strtof_internal:loc_433A4r .text:0004343C dword_4343C DCD 0xFF800000 ; DATA XREF: __strtof_internal+16CCr .text:00043440 ; --------------------------------------------------------------------------- .text:00043440 .text:00043440 loc_43440 ; CODE XREF: __strtof_internal+171Cj .text:00043440 MOV R12, R7 .text:00043444 SUB R3, LR, #1 .text:00043448 LDR R0, [R11,#var_90] .text:0004344C SUB LR, R11, #-var_70 .text:00043450 STR LR, [R11,#var_D0] .text:00043454 CMP R12, R3 .text:00043458 SUB R0, R0, #1 .text:0004345C STR R0, [R11,#var_DC] .text:00043460 MOV R0, R10,LSL#2 .text:00043464 BGE loc_434B0 .text:00043468 MOV R1, LR .text:0004346C MOV R5, R9 .text:00043470 RSB R8, R4, #0x20 .text:00043474 MOV R3, R12,LSL#2 .text:00043478 ADD LR, R3, #4 .text:0004347C MOV R6, #0 .text:00043480 .text:00043480 loc_43480 ; CODE XREF: __strtof_internal+17D0j .text:00043480 LDR R3, [R5,LR] .text:00043484 LDR R2, [R5,R12,LSL#2] .text:00043488 MOV R3, R3,LSL R8 .text:0004348C ORR R3, R3, R2,LSR R4 .text:00043490 STR R3, [R6,R1] .text:00043494 ADD LR, LR, #4 .text:00043498 ADD R12, R12, #1 .text:0004349C LDR R3, [R11,#var_74] .text:000434A0 ADD R6, R6, #4 .text:000434A4 SUB R3, R3, #1 .text:000434A8 CMP R12, R3 .text:000434AC BLT loc_43480 .text:000434B0 .text:000434B0 loc_434B0 ; CODE XREF: __strtof_internal+1788j .text:000434B0 RSB R3, R7, R12 .text:000434B4 CMP R3, #0 .text:000434B8 LDRLE R3, [R9,R12,LSL#2] .text:000434BC MOVLE R3, R3,LSR R4 .text:000434C0 STRLE R3, [R11,#var_70] .text:000434C4 .text:000434C4 loc_434C4 ; CODE XREF: __strtof_internal+1748j .text:000434C4 LDR R3, [R11,#var_48] .text:000434C8 MOV R12, #0 .text:000434CC CMP R3, R12 .text:000434D0 BNE loc_434E8 .text:000434D4 MOV R2, R9 .text:000434D8 .text:000434D8 loc_434D8 ; CODE XREF: __strtof_internal+1808j .text:000434D8 ADD R12, R12, #1 .text:000434DC LDR R3, [R2,R12,LSL#2] .text:000434E0 CMP R3, #0 .text:000434E4 BEQ loc_434D8 .text:000434E8 .text:000434E8 loc_434E8 ; CODE XREF: __strtof_internal+17F4j .text:000434E8 LDR R4, [R11,#var_DC] .text:000434EC LDR R8, [R11,#var_B0] .text:000434F0 SUB R1, R11, #-var_9C .text:000434F4 LDMIA R1, {R1,R2} .text:000434F8 CMP R12, R10 .text:000434FC MOVGE R3, #0 .text:00043500 MOVLT R3, #1 .text:00043504 LDR R7, [R9,R0] .text:00043508 CMP R1, R2 .text:0004350C MOVGE R6, R3 .text:00043510 MOVLT R6, #1 .text:00043514 CMN R4, #0x7E .text:00043518 BGE loc_43678 .text:0004351C RSB R12, R4, #0xFC000002 .text:00043520 ADD R12, R12, #0x3FC0000 .text:00043524 ADD R12, R12, #0x3FC00 .text:00043528 ADD R12, R12, #0x380 .text:0004352C CMP R12, #0x18 .text:00043530 BGT loc_44DBC .text:00043534 MOV R2, #1 .text:00043538 MOV R3, R2,LSL R8 .text:0004353C SUB R3, R3, #1 .text:00043540 TST R7, R3 .text:00043544 ORRNE R6, R6, #1 .text:00043548 CMP R12, #0x18 .text:0004354C BNE loc_43594 .text:00043550 MOV R8, #0x17 .text:00043554 SUB R2, R2, #1 .text:00043558 LDR R7, [R11,#var_70] .text:0004355C .text:0004355C loc_4355C ; CODE XREF: __strtof_internal+1898j .text:0004355C LDR R12, [R11,#var_D0] .text:00043560 LDR R3, [R12,R2,LSL#2] .text:00043564 ADD R2, R2, #1 .text:00043568 CMP R3, #0 .text:0004356C ORRNE R6, R6, #1 .text:00043570 CMP R2, #0 .text:00043574 BLE loc_4355C .text:00043578 MOV R1, #0 .text:0004357C MOV R3, R12 .text:00043580 MOV R2, R3 .text:00043584 .text:00043584 loc_43584 ; CODE XREF: __strtof_internal+18B0j .text:00043584 STR R1, [R3],#-4 .text:00043588 CMP R3, R2 .text:0004358C BGE loc_43584 .text:00043590 B loc_43674 .text:00043594 ; --------------------------------------------------------------------------- .text:00043594 .text:00043594 loc_43594 ; CODE XREF: __strtof_internal+1870j .text:00043594 CMP R12, #0x1F .text:00043598 BLE loc_43654 .text:0004359C SUB R3, R12, #1 .text:000435A0 CMP R3, #0 .text:000435A4 ADDLT R2, R3, #0x1F .text:000435A8 MOVGE R2, R3 .text:000435AC MOV R2, R2,ASR#5 .text:000435B0 SUB R8, R3, R2,LSL#5 .text:000435B4 MOV R1, #0 .text:000435B8 LDR LR, [R11,#var_D0] .text:000435BC CMP R1, R2 .text:000435C0 LDR R7, [LR,R2,LSL#2] .text:000435C4 MOV LR, R12,ASR#31 .text:000435C8 BGE loc_435E8 .text:000435CC .text:000435CC loc_435CC ; CODE XREF: __strtof_internal+1908j .text:000435CC LDR R0, [R11,#var_D0] .text:000435D0 LDR R3, [R0,R1,LSL#2] .text:000435D4 ADD R1, R1, #1 .text:000435D8 CMP R3, #0 .text:000435DC ORRNE R6, R6, #1 .text:000435E0 CMP R1, R2 .text:000435E4 BLT loc_435CC .text:000435E8 .text:000435E8 loc_435E8 ; CODE XREF: __strtof_internal+18ECj .text:000435E8 MOV R3, #1 .text:000435EC MOV R3, R3,LSL R8 .text:000435F0 SUB R3, R3, #1 .text:000435F4 TST R7, R3 .text:000435F8 ORRNE R6, R6, #1 .text:000435FC MOV R3, LR,LSR#27 .text:00043600 ADD R3, R12, R3 .text:00043604 MOV R4, R3,ASR#5 .text:00043608 RSB R5, R4, #1 .text:0004360C MOV R2, R5 .text:00043610 LDR R0, [R11,#var_D0] .text:00043614 SUB R3, R12, R4,LSL#5 .text:00043618 ADD R1, R0, R4,LSL#2 .text:0004361C BL __mpn_rshift .text:00043620 MOV R1, #0 .text:00043624 CMP R1, R4 .text:00043628 BGE loc_43674 .text:0004362C MOV R0, R4 .text:00043630 LDR R3, [R11,#var_D0] .text:00043634 MOV R12, R1 .text:00043638 ADD R2, R3, R5,LSL#2 .text:0004363C .text:0004363C loc_4363C ; CODE XREF: __strtof_internal+1970j .text:0004363C MOV R3, R1,LSL#2 .text:00043640 ADD R1, R1, #1 .text:00043644 CMP R1, R0 .text:00043648 STR R12, [R3,R2] .text:0004364C BLT loc_4363C .text:00043650 B loc_43674 .text:00043654 ; --------------------------------------------------------------------------- .text:00043654 .text:00043654 loc_43654 ; CODE XREF: __strtof_internal+18BCj .text:00043654 CMP R12, #0 .text:00043658 BLE loc_43674 .text:0004365C SUB R8, R12, #1 .text:00043660 LDR R0, [R11,#var_D0] .text:00043664 MOV R3, R12 .text:00043668 LDR R7, [R11,#var_70] .text:0004366C MOV R1, R0 .text:00043670 BL __mpn_rshift .text:00043674 .text:00043674 loc_43674 ; CODE XREF: __strtof_internal+18B4j .text:00043674 ; __strtof_internal+194Cj ... .text:00043674 MOV R4, 0xFFFFFF81 .text:00043678 .text:00043678 loc_43678 ; CODE XREF: __strtof_internal+183Cj .text:00043678 MOV R3, R7,LSR R8 .text:0004367C TST R3, #1 .text:00043680 BEQ loc_44FA8 .text:00043684 CMP R6, #0 .text:00043688 LDR R6, [R11,#var_D0] .text:0004368C LDR R2, [R6] .text:00043690 BNE loc_42CAC .text:00043694 TST R2, #1 .text:00043698 BNE loc_42CAC .text:0004369C MOV R3, #1 .text:000436A0 MOV R3, R3,LSL R8 .text:000436A4 B loc_42CA0 .text:000436A8 ; --------------------------------------------------------------------------- .text:000436A8 .text:000436A8 loc_436A8 ; CODE XREF: __strtof_internal+16E4j .text:000436A8 LDR R2, [R11,#var_98] .text:000436AC LDR R3, [R11,#var_9C] .text:000436B0 CMP R2, R3 .text:000436B4 BNE loc_43A0C .text:000436B8 LDR R6, [R11,#var_90] .text:000436BC SUB R2, R6, #1 .text:000436C0 CMP R2, #0 .text:000436C4 ADDLT R3, R2, #0x1F .text:000436C8 MOVGE R3, R2 .text:000436CC BIC R3, R3, #0x1F .text:000436D0 RSB R3, R3, R2 .text:000436D4 CMP R3, #0x17 .text:000436D8 STR R2, [R11,#var_DC] .text:000436DC BNE loc_43738 .text:000436E0 RSB R0, LR, #1 .text:000436E4 SUB R4, R11, #-var_70 .text:000436E8 ADD R0, R4, R0,LSL#2 .text:000436EC MOV R1, R9 .text:000436F0 MOV R2, LR,LSL#2 .text:000436F4 BL memcpy .text:000436F8 MOV R1, #0 .text:000436FC LDR R3, [R11,#var_74] .text:00043700 STR R4, [R11,#var_D0] .text:00043704 RSB R3, R3, #1 .text:00043708 CMP R1, R3 .text:0004370C BGE loc_43800 .text:00043710 MOV R12, R4 .text:00043714 MOV R0, R1 .text:00043718 .text:00043718 loc_43718 ; CODE XREF: __strtof_internal+1A54j .text:00043718 MOV R3, R1,LSL#2 .text:0004371C STR R0, [R3,R12] .text:00043720 LDR R2, [R11,#var_74] .text:00043724 ADD R1, R1, #1 .text:00043728 RSB R2, R2, #1 .text:0004372C CMP R1, R2 .text:00043730 BLT loc_43718 .text:00043734 B loc_43800 .text:00043738 ; --------------------------------------------------------------------------- .text:00043738 .text:00043738 loc_43738 ; CODE XREF: __strtof_internal+1A00j .text:00043738 CMP R3, #0x16 .text:0004373C BGT loc_4379C .text:00043740 RSB R0, LR, #1 .text:00043744 SUB R4, R11, #-var_70 .text:00043748 ADD R0, R4, R0,LSL#2 .text:0004374C MOV R1, R9 .text:00043750 MOV R2, LR .text:00043754 RSB R3, R3, #0x17 .text:00043758 BL __mpn_lshift .text:0004375C MOV R1, #0 .text:00043760 LDR R3, [R11,#var_74] .text:00043764 STR R4, [R11,#var_D0] .text:00043768 RSB R3, R3, #1 .text:0004376C CMP R1, R3 .text:00043770 BGE loc_43800 .text:00043774 MOV R12, R4 .text:00043778 MOV R0, R1 .text:0004377C .text:0004377C loc_4377C ; CODE XREF: __strtof_internal+1AB8j .text:0004377C MOV R3, R1,LSL#2 .text:00043780 STR R0, [R3,R12] .text:00043784 LDR R2, [R11,#var_74] .text:00043788 ADD R1, R1, #1 .text:0004378C RSB R2, R2, #1 .text:00043790 CMP R1, R2 .text:00043794 BLT loc_4377C .text:00043798 B loc_43800 .text:0004379C ; --------------------------------------------------------------------------- .text:0004379C .text:0004379C loc_4379C ; CODE XREF: __strtof_internal+1A60j .text:0004379C RSB R0, LR, #1 .text:000437A0 SUB R4, R11, #-var_70 .text:000437A4 ADD R0, R4, R0,LSL#2 .text:000437A8 MOV R1, R9 .text:000437AC MOV R2, LR .text:000437B0 SUB R3, R3, #0x17 .text:000437B4 BL __mpn_rshift .text:000437B8 LDR R3, [R11,#var_74] .text:000437BC RSB R3, R3, #0 .text:000437C0 STR R0, [R4,R3,LSL#2] .text:000437C4 MOV R1, #0 .text:000437C8 LDR R3, [R11,#var_74] .text:000437CC STR R4, [R11,#var_D0] .text:000437D0 RSB R3, R3, #0 .text:000437D4 CMP R1, R3 .text:000437D8 BGE loc_43800 .text:000437DC MOV R12, R4 .text:000437E0 MOV R0, R1 .text:000437E4 .text:000437E4 loc_437E4 ; CODE XREF: __strtof_internal+1B20j .text:000437E4 MOV R3, R1,LSL#2 .text:000437E8 STR R0, [R3,R12] .text:000437EC LDR R2, [R11,#var_74] .text:000437F0 ADD R1, R1, #1 .text:000437F4 RSB R2, R2, #0 .text:000437F8 CMP R1, R2 .text:000437FC BLT loc_437E4 .text:00043800 .text:00043800 loc_43800 ; CODE XREF: __strtof_internal+1A30j .text:00043800 ; __strtof_internal+1A58j ... .text:00043800 MOV R1, #0 .text:00043804 MOV R6, R1 .text:00043808 MOV R8, R6 .text:0004380C LDR R4, [R11,#var_DC] .text:00043810 MOV R7, R6 .text:00043814 CMN R4, #0x7E .text:00043818 BGE loc_43968 .text:0004381C RSB R12, R4, #0xFC000002 .text:00043820 ADD R12, R12, #0x3FC0000 .text:00043824 ADD R12, R12, #0x3FC00 .text:00043828 ADD R12, R12, #0x380 .text:0004382C CMP R12, #0x18 .text:00043830 BGT loc_44DBC .text:00043834 MOV R7, R6 .text:00043838 CMP R12, #0x18 .text:0004383C BNE loc_43884 .text:00043840 MOV R8, #0x17 .text:00043844 MOV R2, R1 .text:00043848 LDR R6, [R11,#var_70] .text:0004384C .text:0004384C loc_4384C ; CODE XREF: __strtof_internal+1B88j .text:0004384C LDR R12, [R11,#var_D0] .text:00043850 LDR R3, [R12,R2,LSL#2] .text:00043854 ADD R2, R2, #1 .text:00043858 CMP R3, #0 .text:0004385C ORRNE R7, R7, #1 .text:00043860 CMP R2, #0 .text:00043864 BLE loc_4384C .text:00043868 MOV R1, #0 .text:0004386C MOV R3, R12 .text:00043870 MOV R2, R3 .text:00043874 .text:00043874 loc_43874 ; CODE XREF: __strtof_internal+1BA0j .text:00043874 STR R1, [R3],#-4 .text:00043878 CMP R3, R2 .text:0004387C BGE loc_43874 .text:00043880 B loc_43964 .text:00043884 ; --------------------------------------------------------------------------- .text:00043884 .text:00043884 loc_43884 ; CODE XREF: __strtof_internal+1B60j .text:00043884 CMP R12, #0x1F .text:00043888 BLE loc_43940 .text:0004388C SUB R3, R12, #1 .text:00043890 CMP R3, #0 .text:00043894 ADDLT R2, R3, #0x1F .text:00043898 MOVGE R2, R3 .text:0004389C MOV R2, R2,ASR#5 .text:000438A0 SUB R8, R3, R2,LSL#5 .text:000438A4 LDR LR, [R11,#var_D0] .text:000438A8 CMP R7, R2 .text:000438AC LDR R6, [LR,R2,LSL#2] .text:000438B0 MOV LR, R12,ASR#31 .text:000438B4 BGE loc_438D4 .text:000438B8 .text:000438B8 loc_438B8 ; CODE XREF: __strtof_internal+1BF4j .text:000438B8 LDR R0, [R11,#var_D0] .text:000438BC LDR R3, [R0,R1,LSL#2] .text:000438C0 ADD R1, R1, #1 .text:000438C4 CMP R3, #0 .text:000438C8 ORRNE R7, R7, #1 .text:000438CC CMP R1, R2 .text:000438D0 BLT loc_438B8 .text:000438D4 .text:000438D4 loc_438D4 ; CODE XREF: __strtof_internal+1BD8j .text:000438D4 MOV R3, #1 .text:000438D8 MOV R3, R3,LSL R8 .text:000438DC SUB R3, R3, #1 .text:000438E0 TST R6, R3 .text:000438E4 ORRNE R7, R7, #1 .text:000438E8 MOV R3, LR,LSR#27 .text:000438EC ADD R3, R12, R3 .text:000438F0 MOV R4, R3,ASR#5 .text:000438F4 RSB R5, R4, #1 .text:000438F8 MOV R2, R5 .text:000438FC LDR R0, [R11,#var_D0] .text:00043900 SUB R3, R12, R4,LSL#5 .text:00043904 ADD R1, R0, R4,LSL#2 .text:00043908 BL __mpn_rshift .text:0004390C MOV R1, #0 .text:00043910 CMP R1, R4 .text:00043914 BGE loc_43964 .text:00043918 MOV R0, R4 .text:0004391C LDR R3, [R11,#var_D0] .text:00043920 MOV R12, R1 .text:00043924 ADD R2, R3, R5,LSL#2 .text:00043928 .text:00043928 loc_43928 ; CODE XREF: __strtof_internal+1C5Cj .text:00043928 MOV R3, R1,LSL#2 .text:0004392C ADD R1, R1, #1 .text:00043930 CMP R1, R0 .text:00043934 STR R12, [R3,R2] .text:00043938 BLT loc_43928 .text:0004393C B loc_43964 .text:00043940 ; --------------------------------------------------------------------------- .text:00043940 .text:00043940 loc_43940 ; CODE XREF: __strtof_internal+1BACj .text:00043940 CMP R12, #0 .text:00043944 BLE loc_43964 .text:00043948 SUB R8, R12, #1 .text:0004394C MOV R2, #1 .text:00043950 LDR R0, [R11,#var_D0] .text:00043954 MOV R3, R12 .text:00043958 LDR R6, [R11,#var_70] .text:0004395C MOV R1, R0 .text:00043960 BL __mpn_rshift .text:00043964 .text:00043964 loc_43964 ; CODE XREF: __strtof_internal+1BA4j .text:00043964 ; __strtof_internal+1C38j ... .text:00043964 MOV R4, 0xFFFFFF81 .text:00043968 .text:00043968 loc_43968 ; CODE XREF: __strtof_internal+1B3Cj .text:00043968 MOV R3, R6,LSR R8 .text:0004396C TST R3, #1 .text:00043970 BEQ loc_439F8 .text:00043974 LDR R12, [R11,#var_D0] .text:00043978 CMP R7, #0 .text:0004397C LDR R2, [R12] .text:00043980 BNE loc_439A0 .text:00043984 TST R2, #1 .text:00043988 BNE loc_439A0 .text:0004398C MOV R3, #1 .text:00043990 MOV R3, R3,LSL R8 .text:00043994 SUB R3, R3, #1 .text:00043998 TST R6, R3 .text:0004399C BEQ loc_439F8 .text:000439A0 .text:000439A0 loc_439A0 ; CODE XREF: __strtof_internal+1CA4j .text:000439A0 ; __strtof_internal+1CACj .text:000439A0 ADD R3, R2, #1 .text:000439A4 LDR LR, [R11,#var_D0] .text:000439A8 CMP R3, R2 .text:000439AC STR R3, [LR] .text:000439B0 LDR R0, [R11,#var_D0] .text:000439B4 LDR R3, [R0] .text:000439B8 TST R3, #0x1000000 .text:000439BC BEQ loc_439E8 .text:000439C0 MOV R1, R0 .text:000439C4 MOV R2, #1 .text:000439C8 MOV R3, R2 .text:000439CC BL __mpn_rshift .text:000439D0 LDR R1, [R11,#var_D0] .text:000439D4 LDR R3, [R1] .text:000439D8 ADD R4, R4, #1 .text:000439DC ORR R3, R3, #0x800000 .text:000439E0 STR R3, [R1] .text:000439E4 B loc_439F8 .text:000439E8 ; --------------------------------------------------------------------------- .text:000439E8 .text:000439E8 loc_439E8 ; CODE XREF: __strtof_internal+1CE0j .text:000439E8 CMN R4, #0x7F .text:000439EC BNE loc_439F8 .text:000439F0 TST R3, #0x800000 .text:000439F4 MOVNE R4, 0xFFFFFF82 .text:000439F8 .text:000439F8 loc_439F8 ; CODE XREF: __strtof_internal+1C94j .text:000439F8 ; __strtof_internal+1CC0j ... .text:000439F8 CMP R4, #0x80 .text:000439FC BLE loc_44FD8 .text:00043A00 LDR R2, [R11,#var_84] .text:00043A04 CMP R2, #0 .text:00043A08 B loc_44FB8 .text:00043A0C ; --------------------------------------------------------------------------- .text:00043A0C .text:00043A0C loc_43A0C ; CODE XREF: __strtof_internal+19D8j .text:00043A0C SUB R0, R11, #-var_70 .text:00043A10 MOV R1, R9 .text:00043A14 MOV R2, LR,LSL#2 .text:00043A18 BL memcpy .text:00043A1C .text:00043A1C loc_43A1C ; CODE XREF: __strtof_internal+12E8j .text:00043A1C SUB R4, R11, #-var_68 .text:00043A20 LDR R3, [R11,#var_90] .text:00043A24 MOV R1, #3 .text:00043A28 RSB R5, R3, #0x1A .text:00043A2C MOV R0, R5 .text:00043A30 BL __divsi3 .text:00043A34 LDR R6, [R11,#var_98] .text:00043A38 MOV R8, R9 .text:00043A3C LDR R12, [R11,#var_9C] .text:00043A40 ADD R0, R0, #1 .text:00043A44 RSB R3, R12, R6 .text:00043A48 CMP R3, R0 .text:00043A4C LDR R6, =_fpioconst_pow10 .text:00043A50 BLE loc_43A7C .text:00043A54 MOV R0, R5 .text:00043A58 MOV R1, #3 .text:00043A5C BL __divsi3 .text:00043A60 LDR LR, [R11,#var_9C] .text:00043A64 ADD R0, LR, R0 .text:00043A68 ADD R0, R0, #1 .text:00043A6C STR R0, [R11,#var_98] .text:00043A70 MOV R0, #1 .text:00043A74 STR R0, [R11,#var_B4] .text:00043A78 B loc_43A84 .text:00043A7C ; --------------------------------------------------------------------------- .text:00043A7C .text:00043A7C loc_43A7C ; CODE XREF: __strtof_internal+1D74j .text:00043A7C MOV R1, #0 .text:00043A80 STR R1, [R11,#var_B4] .text:00043A84 .text:00043A84 loc_43A84 ; CODE XREF: __strtof_internal+1D9Cj .text:00043A84 MOV R2, #0 .text:00043A88 STR R2, [R11,#var_8C] .text:00043A8C SUB LR, R11, #-var_70 .text:00043A90 STR LR, [R11,#var_D0] .text:00043A94 LDR R3, [R11,#var_98] .text:00043A98 LDR R12, [R11,#var_9C] .text:00043A9C RSB R2, R12, R3 .text:00043AA0 LDR R3, [R11,#var_78] .text:00043AA4 MOV R7, #1 .text:00043AA8 STR R2, [R11,#var_E4] .text:00043AAC RSB R5, R3, R2 .text:00043AB0 .text:00043AB0 loc_43AB0 ; CODE XREF: __strtof_internal+1E6Cj .text:00043AB0 TST R5, R7 .text:00043AB4 BEQ loc_43B3C .text:00043AB8 LDR R0, [R11,#var_8C] .text:00043ABC EOR R5, R5, R7 .text:00043AC0 CMP R0, #0 .text:00043AC4 BNE loc_43AEC .text:00043AC8 LDMIA R6, {R1,R3} .text:00043ACC SUB R3, R3, #2 .text:00043AD0 STR R3, [R11,#var_8C] .text:00043AD4 LDR R2, =(__tens+8) .text:00043AD8 MOV R0, R4 .text:00043ADC ADD R1, R2, R1,LSL#2 .text:00043AE0 MOV R2, R3,LSL#2 .text:00043AE4 BL memcpy .text:00043AE8 B loc_43B3C .text:00043AEC ; --------------------------------------------------------------------------- .text:00043AEC .text:00043AEC loc_43AEC ; CODE XREF: __strtof_internal+1DE8j .text:00043AEC LDR R3, [R11,#var_8C] .text:00043AF0 STR R3, [SP,#0xEC+var_EC] .text:00043AF4 LDR R12, =(__tens+8) .text:00043AF8 MOV R0, R8 .text:00043AFC LDR R1, [R6] .text:00043B00 MOV R3, R4 .text:00043B04 LDR R2, [R6,#4] .text:00043B08 ADD R1, R12, R1,LSL#2 .text:00043B0C SUB R2, R2, #2 .text:00043B10 BL __mpn_mul .text:00043B14 MOV R3, R4 .text:00043B18 MOV R4, R8 .text:00043B1C LDR LR, [R11,#var_8C] .text:00043B20 MOV R8, R3 .text:00043B24 LDR R2, [R6,#4] .text:00043B28 SUB R3, LR, #2 .text:00043B2C ADD R3, R3, R2 .text:00043B30 CMP R0, #0 .text:00043B34 SUBEQ R3, R3, #1 .text:00043B38 STR R3, [R11,#var_8C] .text:00043B3C .text:00043B3C loc_43B3C ; CODE XREF: __strtof_internal+1DD8j .text:00043B3C ; __strtof_internal+1E0Cj .text:00043B3C MOV R7, R7,LSL#1 .text:00043B40 ADD R6, R6, #0x10 .text:00043B44 CMP R5, #0 .text:00043B48 BNE loc_43AB0 .text:00043B4C CMP R4, R9 .text:00043B50 BNE loc_43B68 .text:00043B54 SUB R0, R11, #-var_68 .text:00043B58 LDR R3, [R11,#var_8C] .text:00043B5C MOV R1, R9 .text:00043B60 MOV R2, R3,LSL#2 .text:00043B64 BL memcpy .text:00043B68 .text:00043B68 loc_43B68 ; CODE XREF: __strtof_internal+1E74j .text:00043B68 MOV R6, R5 .text:00043B6C STR R6, [R11,#var_74] .text:00043B70 LDR R4, [R11,#var_94] .text:00043B74 LDR R12, [R11,#var_8C] .text:00043B78 MOV R0, R6 .text:00043B7C LDR R1, [R11,#var_E4] .text:00043B80 SUB R12, R12, #1 .text:00043B84 STR R12, [R11,#var_D8] .text:00043B88 .text:00043B88 loc_43B88 ; CODE XREF: __strtof_internal+2020j .text:00043B88 CMP R0, #9 .text:00043B8C SUB R7, R1, #1 .text:00043B90 BNE loc_43C60 .text:00043B94 LDR R2, [R10] .text:00043B98 CMP R2, #0 .text:00043B9C STREQ R6, [R11,#var_48] .text:00043BA0 MOVEQ R3, #1 .text:00043BA4 BEQ loc_43C54 .text:00043BA8 SUB R0, R11, #-var_48 .text:00043BAC MOV R1, R0 .text:00043BB0 MOV R3, 0x3B9ACA00 .text:00043BBC BL __mpn_mul_1 .text:00043BC0 SUB LR, R11, #-var_44 .text:00043BC4 LDR R1, [R11,#var_48] .text:00043BC8 MOV R5, LR .text:00043BCC LDR R12, [R10] .text:00043BD0 ADD R3, R6, R1 .text:00043BD4 CMP R3, R1 .text:00043BD8 STR R3, [R11,#var_48] .text:00043BDC BCS loc_43C0C .text:00043BE0 SUBS R12, R12, #1 .text:00043BE4 BEQ loc_43C04 .text:00043BE8 .text:00043BE8 loc_43BE8 ; CODE XREF: __strtof_internal+1F24j .text:00043BE8 LDR R3, [LR],#4 .text:00043BEC ADD R1, R3, #1 .text:00043BF0 CMP R1, #0 .text:00043BF4 STR R1, [R5],#4 .text:00043BF8 BNE loc_43C0C .text:00043BFC SUBS R12, R12, #1 .text:00043C00 BNE loc_43BE8 .text:00043C04 .text:00043C04 loc_43C04 ; CODE XREF: __strtof_internal+1F08j .text:00043C04 MOV R3, #1 .text:00043C08 B loc_43C3C .text:00043C0C ; --------------------------------------------------------------------------- .text:00043C0C .text:00043C0C loc_43C0C ; CODE XREF: __strtof_internal+1F00j .text:00043C0C ; __strtof_internal+1F1Cj .text:00043C0C CMP R5, LR .text:00043C10 BEQ loc_43C38 .text:00043C14 MOV R2, #0 .text:00043C18 SUB R1, R12, #1 .text:00043C1C CMP R2, R1 .text:00043C20 BGE loc_43C38 .text:00043C24 .text:00043C24 loc_43C24 ; CODE XREF: __strtof_internal+1F58j .text:00043C24 LDR R3, [LR,R2,LSL#2] .text:00043C28 STR R3, [R5,R2,LSL#2] .text:00043C2C ADD R2, R2, #1 .text:00043C30 CMP R2, R1 .text:00043C34 BLT loc_43C24 .text:00043C38 .text:00043C38 loc_43C38 ; CODE XREF: __strtof_internal+1F34j .text:00043C38 ; __strtof_internal+1F44j .text:00043C38 MOV R3, #0 .text:00043C3C .text:00043C3C loc_43C3C ; CODE XREF: __strtof_internal+1F2Cj .text:00043C3C ADDS R0, R0, R3 .text:00043C40 BEQ loc_43C58 .text:00043C44 LDR R2, [R10] .text:00043C48 STR R0, [R9,R2,LSL#2] .text:00043C4C LDR R3, [R10] .text:00043C50 ADD R3, R3, #1 .text:00043C54 .text:00043C54 loc_43C54 ; CODE XREF: __strtof_internal+1EC8j .text:00043C54 STR R3, [R10] .text:00043C58 .text:00043C58 loc_43C58 ; CODE XREF: __strtof_internal+1F64j .text:00043C58 MOV R6, #0 .text:00043C5C MOV R0, R6 .text:00043C60 .text:00043C60 loc_43C60 ; CODE XREF: __strtof_internal+1EB4j .text:00043C60 MOV R2, R6,LSL#2 .text:00043C64 LDRB R1, [R4] .text:00043C68 ADD R12, R0, #1 .text:00043C6C SUB R3, R1, #0x30 .text:00043C70 CMP R3, #9 .text:00043C74 BLS loc_43CE4 .text:00043C78 LDR LR, [R11,#var_A8] .text:00043C7C CMP LR, #0 .text:00043C80 BEQ loc_43CDC .text:00043C84 LDRB R3, [LR] .text:00043C88 CMP R1, R3 .text:00043C8C BNE loc_43CDC .text:00043C90 MOV R0, #1 .text:00043C94 LDRB R1, [LR,R0] .text:00043C98 CMP R1, #0 .text:00043C9C BEQ loc_43CCC .text:00043CA0 LDRB R3, [R4,#1] .text:00043CA4 CMP R1, R3 .text:00043CA8 BNE loc_43CCC .text:00043CAC .text:00043CAC loc_43CAC ; CODE XREF: __strtof_internal+1FECj .text:00043CAC LDR R3, [R11,#var_A8] .text:00043CB0 ADD R0, R0, #1 .text:00043CB4 LDRB R1, [R3,R0] .text:00043CB8 CMP R1, #0 .text:00043CBC BEQ loc_43CCC .text:00043CC0 LDRB R3, [R4,R0] .text:00043CC4 CMP R1, R3 .text:00043CC8 BEQ loc_43CAC .text:00043CCC .text:00043CCC loc_43CCC ; CODE XREF: __strtof_internal+1FC0j .text:00043CCC ; __strtof_internal+1FCCj ... .text:00043CCC LDR LR, [R11,#var_A8] .text:00043CD0 LDRB R3, [LR,R0] .text:00043CD4 CMP R3, #0 .text:00043CD8 BEQ loc_43CE0 .text:00043CDC .text:00043CDC loc_43CDC ; CODE XREF: __strtof_internal+1FA4j .text:00043CDC ; __strtof_internal+1FB0j .text:00043CDC LDR R0, [R11,#var_A4] .text:00043CE0 .text:00043CE0 loc_43CE0 ; CODE XREF: __strtof_internal+1FFCj .text:00043CE0 ADD R4, R4, R0 .text:00043CE4 .text:00043CE4 loc_43CE4 ; CODE XREF: __strtof_internal+1F98j .text:00043CE4 MOV R0, R12 .text:00043CE8 SUBS R1, R7, #0 .text:00043CEC LDRB R3, [R4],#1 .text:00043CF0 ADD R2, R2, R6 .text:00043CF4 ADD R3, R3, R2,LSL#1 .text:00043CF8 SUB R6, R3, #0x30 .text:00043CFC BGT loc_43B88 .text:00043D00 LDR R1, [R11,#var_CC] .text:00043D04 LDR R2, [R1] .text:00043D08 CMP R2, #0 .text:00043D0C BLE loc_43D38 .text:00043D10 ADD R3, R12, R2 .text:00043D14 CMP R3, #9 .text:00043D18 BGT loc_43D38 .text:00043D1C LDR LR, =_tens_in_limb .text:00043D20 LDR R12, [LR,R3,LSL#2] .text:00043D24 LDR R2, [LR,R2,LSL#2] .text:00043D28 MOV R3, #0 .text:00043D2C STR R3, [R1] .text:00043D30 MUL R6, R2, R6 .text:00043D34 B loc_43D40 .text:00043D38 ; --------------------------------------------------------------------------- .text:00043D38 .text:00043D38 loc_43D38 ; CODE XREF: __strtof_internal+2030j .text:00043D38 ; __strtof_internal+203Cj .text:00043D38 LDR R0, =_tens_in_limb .text:00043D3C LDR R12, [R0,R12,LSL#2] .text:00043D40 .text:00043D40 loc_43D40 ; CODE XREF: __strtof_internal+2058j .text:00043D40 LDR R2, [R10] .text:00043D44 CMP R2, #0 .text:00043D48 STREQ R6, [R11,#var_48] .text:00043D4C MOVEQ R3, #1 .text:00043D50 BEQ loc_43DF4 .text:00043D54 SUB R0, R11, #-var_48 .text:00043D58 MOV R1, R0 .text:00043D5C MOV R3, R12 .text:00043D60 BL __mpn_mul_1 .text:00043D64 SUB LR, R11, #-var_44 .text:00043D68 LDR R1, [R11,#var_48] .text:00043D6C MOV R4, LR .text:00043D70 LDR R12, [R10] .text:00043D74 ADD R3, R6, R1 .text:00043D78 CMP R3, R1 .text:00043D7C STR R3, [R11,#var_48] .text:00043D80 BCS loc_43DB0 .text:00043D84 SUBS R12, R12, #1 .text:00043D88 BEQ loc_43DA8 .text:00043D8C .text:00043D8C loc_43D8C ; CODE XREF: __strtof_internal+20C8j .text:00043D8C LDR R3, [LR],#4 .text:00043D90 ADD R1, R3, #1 .text:00043D94 CMP R1, #0 .text:00043D98 STR R1, [R4],#4 .text:00043D9C BNE loc_43DB0 .text:00043DA0 SUBS R12, R12, #1 .text:00043DA4 BNE loc_43D8C .text:00043DA8 .text:00043DA8 loc_43DA8 ; CODE XREF: __strtof_internal+20ACj .text:00043DA8 MOV R3, #1 .text:00043DAC B loc_43DE0 .text:00043DB0 ; --------------------------------------------------------------------------- .text:00043DB0 .text:00043DB0 loc_43DB0 ; CODE XREF: __strtof_internal+20A4j .text:00043DB0 ; __strtof_internal+20C0j .text:00043DB0 CMP R4, LR .text:00043DB4 BEQ loc_43DDC .text:00043DB8 MOV R2, #0 .text:00043DBC SUB R1, R12, #1 .text:00043DC0 CMP R2, R1 .text:00043DC4 BGE loc_43DDC .text:00043DC8 .text:00043DC8 loc_43DC8 ; CODE XREF: __strtof_internal+20FCj .text:00043DC8 LDR R3, [LR,R2,LSL#2] .text:00043DCC STR R3, [R4,R2,LSL#2] .text:00043DD0 ADD R2, R2, #1 .text:00043DD4 CMP R2, R1 .text:00043DD8 BLT loc_43DC8 .text:00043DDC .text:00043DDC loc_43DDC ; CODE XREF: __strtof_internal+20D8j .text:00043DDC ; __strtof_internal+20E8j .text:00043DDC MOV R3, #0 .text:00043DE0 .text:00043DE0 loc_43DE0 ; CODE XREF: __strtof_internal+20D0j .text:00043DE0 ADDS R0, R0, R3 .text:00043DE4 BEQ loc_43DF8 .text:00043DE8 LDR R3, [R10] .text:00043DEC STR R0, [R9,R3,LSL#2] .text:00043DF0 ADD R3, R3, #1 .text:00043DF4 .text:00043DF4 loc_43DF4 ; CODE XREF: __strtof_internal+2074j .text:00043DF4 STR R3, [R10] .text:00043DF8 .text:00043DF8 loc_43DF8 ; CODE XREF: __strtof_internal+2108j .text:00043DF8 LDR R3, [R11,#var_D8] .text:00043DFC SUB R1, R11, #-var_68 .text:00043E00 LDR R2, [R1,R3,LSL#2] .text:00043E04 CMP R2, #0x10000 .text:00043E08 BCS loc_43E28 .text:00043E0C CMP R2, #0xFF .text:00043E10 MOVHI R1, #8 .text:00043E14 MOVLS R1, #0 .text:00043E18 B loc_43E34 .text:00043E18 ; --------------------------------------------------------------------------- .text:00043E1C off_43E1C DCD _fpioconst_pow10 ; DATA XREF: __strtof_internal+1D70r .text:00043E20 off_43E20 DCD __tens+8 ; DATA XREF: __strtof_internal+1DF8r .text:00043E20 ; __strtof_internal+1E18r .text:00043E24 off_43E24 DCD _tens_in_limb ; DATA XREF: __strtof_internal+2040r .text:00043E24 ; __strtof_internal:loc_43D38r .text:00043E28 ; --------------------------------------------------------------------------- .text:00043E28 .text:00043E28 loc_43E28 ; CODE XREF: __strtof_internal+212Cj .text:00043E28 CMP R2, #0x1000000 .text:00043E2C MOVCS R1, #0x18 .text:00043E30 MOVCC R1, #0x10 .text:00043E34 .text:00043E34 loc_43E34 ; CODE XREF: __strtof_internal+213Cj .text:00043E34 LDR R6, =__clz_tab_1 .text:00043E38 MOV R2, R2,LSR R1 .text:00043E3C LDRB R3, [R6,R2] .text:00043E40 ADD R3, R3, R1 .text:00043E44 RSB R4, R3, #0x20 .text:00043E48 CMP R4, #0 .text:00043E4C BLE loc_43E8C .text:00043E50 SUB R0, R11, #-var_68 .text:00043E54 MOV R1, R0 .text:00043E58 LDR R2, [R11,#var_8C] .text:00043E5C MOV R3, R4 .text:00043E60 BL __mpn_lshift .text:00043E64 MOV R0, R9 .text:00043E68 MOV R1, R9 .text:00043E6C LDR R2, [R11,#var_74] .text:00043E70 MOV R3, R4 .text:00043E74 BL __mpn_lshift .text:00043E78 CMP R0, #0 .text:00043E7C LDRNE R3, [R11,#var_74] .text:00043E80 STRNE R0, [R9,R3,LSL#2] .text:00043E84 ADDNE R3, R3, #1 .text:00043E88 STRNE R3, [R11,#var_74] .text:00043E8C .text:00043E8C loc_43E8C ; CODE XREF: __strtof_internal+2170j .text:00043E8C LDR R12, [R11,#var_8C] .text:00043E90 LDR LR, [R11,#var_90] .text:00043E94 CMP R12, #1 .text:00043E98 STR LR, [R11,#var_78] .text:00043E9C BEQ loc_43EAC .text:00043EA0 CMP R12, #2 .text:00043EA4 BEQ loc_44224 .text:00043EA8 B loc_447C0 .text:00043EAC ; --------------------------------------------------------------------------- .text:00043EAC .text:00043EAC loc_43EAC ; CODE XREF: __strtof_internal+21C0j .text:00043EAC LDR R7, [R11,#var_68] .text:00043EB0 MOV R9, #0 .text:00043EB4 LDR R8, [R11,#var_48] .text:00043EB8 MOV R10, R7,LSR#16 .text:00043EBC MOV R0, R7,LSL#16 .text:00043EC0 MOV R0, R0,LSR#16 .text:00043EC4 STR R0, [R11,#var_B8] .text:00043EC8 .text:00043EC8 loc_43EC8 ; CODE XREF: __strtof_internal+238Cj .text:00043EC8 MOV R0, R8 .text:00043ECC MOV R1, R10 .text:00043ED0 BL __umodsi3 .text:00043ED4 MOV R4, R0 .text:00043ED8 MOV R0, R8 .text:00043EDC MOV R1, R10 .text:00043EE0 BL __udivsi3 .text:00043EE4 LDR R3, [R11,#var_B8] .text:00043EE8 MOV R6, R0 .text:00043EEC MUL R3, R6, R3 .text:00043EF0 MOV R4, R4,LSL#16 .text:00043EF4 CMP R4, R3 .text:00043EF8 BCS loc_43F14 .text:00043EFC SUB R6, R6, #1 .text:00043F00 ADDS R4, R4, R7 .text:00043F04 BCS loc_43F14 .text:00043F08 CMP R4, R3 .text:00043F0C SUBCC R6, R6, #1 .text:00043F10 ADDCC R4, R4, R7 .text:00043F14 .text:00043F14 loc_43F14 ; CODE XREF: __strtof_internal+221Cj .text:00043F14 ; __strtof_internal+2228j .text:00043F14 RSB R4, R3, R4 .text:00043F18 MOV R0, R4 .text:00043F1C MOV R1, R10 .text:00043F20 BL __umodsi3 .text:00043F24 MOV R5, R0 .text:00043F28 MOV R0, R4 .text:00043F2C MOV R1, R10 .text:00043F30 BL __udivsi3 .text:00043F34 LDR R3, [R11,#var_B8] .text:00043F38 MUL R3, R0, R3 .text:00043F3C MOV R5, R5,LSL#16 .text:00043F40 CMP R5, R3 .text:00043F44 BCS loc_43F60 .text:00043F48 SUB R0, R0, #1 .text:00043F4C ADDS R5, R5, R7 .text:00043F50 BCS loc_43F60 .text:00043F54 CMP R5, R3 .text:00043F58 SUBCC R0, R0, #1 .text:00043F5C ADDCC R5, R5, R7 .text:00043F60 .text:00043F60 loc_43F60 ; CODE XREF: __strtof_internal+2268j .text:00043F60 ; __strtof_internal+2274j .text:00043F60 RSB R5, R3, R5 .text:00043F64 MOV R8, R5 .text:00043F68 ORR R4, R0, R6,LSL#16 .text:00043F6C LDR R1, [R11,#var_90] .text:00043F70 CMP R1, #0 .text:00043F74 BNE loc_43FFC .text:00043F78 CMP R4, #0 .text:00043F7C MOVEQ R1, #0x20 .text:00043F80 BEQ loc_43FBC .text:00043F84 CMP R4, #0x10000 .text:00043F88 BCS loc_43F9C .text:00043F8C CMP R4, #0xFF .text:00043F90 MOVHI R1, #8 .text:00043F94 MOVLS R1, #0 .text:00043F98 B loc_43FA8 .text:00043F9C ; --------------------------------------------------------------------------- .text:00043F9C .text:00043F9C loc_43F9C ; CODE XREF: __strtof_internal+22ACj .text:00043F9C CMP R4, #0x1000000 .text:00043FA0 MOVCS R1, #0x18 .text:00043FA4 MOVCC R1, #0x10 .text:00043FA8 .text:00043FA8 loc_43FA8 ; CODE XREF: __strtof_internal+22BCj .text:00043FA8 LDR R6, =__clz_tab_1 .text:00043FAC MOV R2, R4,LSR R1 .text:00043FB0 LDRB R3, [R6,R2] .text:00043FB4 ADD R3, R3, R1 .text:00043FB8 RSB R1, R3, #0x20 .text:00043FBC .text:00043FBC loc_43FBC ; CODE XREF: __strtof_internal+22A4j .text:00043FBC RSB R2, R1, #0x20 .text:00043FC0 LDR R3, [R11,#var_78] .text:00043FC4 CMP R2, #0x18 .text:00043FC8 RSB R3, R1, R3 .text:00043FCC STR R3, [R11,#var_78] .text:00043FD0 BLE loc_43FEC .text:00043FD4 ADD R9, R1, #0x18 .text:00043FD8 MOV R12, #0x19 .text:00043FDC STR R12, [R11,#var_90] .text:00043FE0 RSB R3, R9, #0x20 .text:00043FE4 MOV R3, R4,LSR R3 .text:00043FE8 B loc_44054 .text:00043FEC ; --------------------------------------------------------------------------- .text:00043FEC .text:00043FEC loc_43FEC ; CODE XREF: __strtof_internal+22F4j .text:00043FEC RSB R1, R1, #0 .text:00043FF0 STR R1, [R11,#var_90] .text:00043FF4 STR R4, [R11,#var_70] .text:00043FF8 B loc_44058 .text:00043FFC ; --------------------------------------------------------------------------- .text:00043FFC .text:00043FFC loc_43FFC ; CODE XREF: __strtof_internal+2298j .text:00043FFC LDR LR, [R11,#var_90] .text:00044000 ADD R3, LR, #0x20 .text:00044004 CMP R3, #0x18 .text:00044008 LDRLE R0, [R11,#var_D0] .text:0004400C STRLE R4, [R0] .text:00044010 BLE loc_44058 .text:00044014 LDR R1, [R11,#var_90] .text:00044018 RSB R9, R1, #0x18 .text:0004401C CMP R9, #0 .text:00044020 BLE loc_44058 .text:00044024 CMP R9, #0x20 .text:00044028 LDREQ R2, [R11,#var_D0] .text:0004402C STREQ R4, [R2] .text:00044030 BEQ loc_44058 .text:00044034 MOV R2, #1 .text:00044038 LDR R0, [R11,#var_D0] .text:0004403C MOV R3, R9 .text:00044040 MOV R1, R0 .text:00044044 BL __mpn_lshift .text:00044048 LDR R3, [R11,#var_70] .text:0004404C RSB R2, R9, #0x20 .text:00044050 ORR R3, R3, R4,LSR R2 .text:00044054 .text:00044054 loc_44054 ; CODE XREF: __strtof_internal+230Cj .text:00044054 STR R3, [R11,#var_70] .text:00044058 .text:00044058 loc_44058 ; CODE XREF: __strtof_internal+231Cj .text:00044058 ; __strtof_internal+2334j ... .text:00044058 LDR R3, [R11,#var_90] .text:0004405C ADD R3, R3, #0x20 .text:00044060 CMP R3, #0x18 .text:00044064 STR R3, [R11,#var_90] .text:00044068 BLE loc_43EC8 .text:0004406C MOV R7, R4 .text:00044070 RSB R8, R9, #0x1F .text:00044074 LDR R12, [R11,#var_B4] .text:00044078 SUBS R3, R5, #0 .text:0004407C MOVNE R3, #1 .text:00044080 LDR R2, [R11,#var_78] .text:00044084 ORR R6, R12, R3 .text:00044088 SUB R4, R2, #1 .text:0004408C CMN R4, #0x7E .text:00044090 BGE loc_441F4 .text:00044094 RSB R12, R4, #0xFC000002 .text:00044098 ADD R12, R12, #0x3FC0000 .text:0004409C ADD R12, R12, #0x3FC00 .text:000440A0 ADD R12, R12, #0x380 .text:000440A4 CMP R12, #0x18 .text:000440A8 BGT loc_44DBC .text:000440AC MOV R2, #1 .text:000440B0 MOV R3, R2,LSL R8 .text:000440B4 SUB R3, R3, #1 .text:000440B8 TST R7, R3 .text:000440BC ORRNE R6, R6, #1 .text:000440C0 CMP R12, #0x18 .text:000440C4 BNE loc_4410C .text:000440C8 MOV R8, #0x17 .text:000440CC SUB R2, R2, #1 .text:000440D0 LDR R7, [R11,#var_70] .text:000440D4 .text:000440D4 loc_440D4 ; CODE XREF: __strtof_internal+2410j .text:000440D4 LDR LR, [R11,#var_D0] .text:000440D8 LDR R3, [LR,R2,LSL#2] .text:000440DC ADD R2, R2, #1 .text:000440E0 CMP R3, #0 .text:000440E4 ORRNE R6, R6, #1 .text:000440E8 CMP R2, #0 .text:000440EC BLE loc_440D4 .text:000440F0 MOV R1, #0 .text:000440F4 MOV R3, LR .text:000440F8 MOV R2, R3 .text:000440FC .text:000440FC loc_440FC ; CODE XREF: __strtof_internal+2428j .text:000440FC STR R1, [R3],#-4 .text:00044100 CMP R3, R2 .text:00044104 BGE loc_440FC .text:00044108 B loc_441F0 .text:0004410C ; --------------------------------------------------------------------------- .text:0004410C .text:0004410C loc_4410C ; CODE XREF: __strtof_internal+23E8j .text:0004410C CMP R12, #0x1F .text:00044110 BLE loc_441D0 .text:00044114 SUB R3, R12, #1 .text:00044118 CMP R3, #0 .text:0004411C ADDLT R2, R3, #0x1F .text:00044120 MOVGE R2, R3 .text:00044124 MOV R2, R2,ASR#5 .text:00044128 SUB R8, R3, R2,LSL#5 .text:0004412C MOV R1, #0 .text:00044130 CMP R1, R2 .text:00044134 LDR R0, [R11,#var_D0] .text:00044138 MOV LR, R12,ASR#31 .text:0004413C LDR R7, [R0,R2,LSL#2] .text:00044140 BGE loc_44160 .text:00044144 .text:00044144 loc_44144 ; CODE XREF: __strtof_internal+2480j .text:00044144 LDR R0, [R11,#var_D0] .text:00044148 LDR R3, [R0,R1,LSL#2] .text:0004414C ADD R1, R1, #1 .text:00044150 CMP R3, #0 .text:00044154 ORRNE R6, R6, #1 .text:00044158 CMP R1, R2 .text:0004415C BLT loc_44144 .text:00044160 .text:00044160 loc_44160 ; CODE XREF: __strtof_internal+2464j .text:00044160 MOV R3, #1 .text:00044164 MOV R3, R3,LSL R8 .text:00044168 SUB R3, R3, #1 .text:0004416C TST R7, R3 .text:00044170 ORRNE R6, R6, #1 .text:00044174 MOV R3, LR,LSR#27 .text:00044178 ADD R3, R12, R3 .text:0004417C MOV R4, R3,ASR#5 .text:00044180 RSB R5, R4, #1 .text:00044184 MOV R2, R5 .text:00044188 LDR R0, [R11,#var_D0] .text:0004418C SUB R3, R12, R4,LSL#5 .text:00044190 ADD R1, R0, R4,LSL#2 .text:00044194 BL __mpn_rshift .text:00044198 MOV R1, #0 .text:0004419C CMP R1, R4 .text:000441A0 BGE loc_441F0 .text:000441A4 MOV R0, R4 .text:000441A8 LDR R3, [R11,#var_D0] .text:000441AC MOV R12, R1 .text:000441B0 ADD R2, R3, R5,LSL#2 .text:000441B4 .text:000441B4 loc_441B4 ; CODE XREF: __strtof_internal+24E8j .text:000441B4 MOV R3, R1,LSL#2 .text:000441B8 ADD R1, R1, #1 .text:000441BC CMP R1, R0 .text:000441C0 STR R12, [R3,R2] .text:000441C4 BLT loc_441B4 .text:000441C8 B loc_441F0 .text:000441C8 ; --------------------------------------------------------------------------- .text:000441CC off_441CC DCD __clz_tab_1 ; DATA XREF: __strtof_internal:loc_43E34r .text:000441CC ; __strtof_internal:loc_43FA8r .text:000441D0 ; --------------------------------------------------------------------------- .text:000441D0 .text:000441D0 loc_441D0 ; CODE XREF: __strtof_internal+2434j .text:000441D0 CMP R12, #0 .text:000441D4 BLE loc_441F0 .text:000441D8 SUB R8, R12, #1 .text:000441DC LDR R0, [R11,#var_D0] .text:000441E0 MOV R3, R12 .text:000441E4 LDR R7, [R11,#var_70] .text:000441E8 MOV R1, R0 .text:000441EC BL __mpn_rshift .text:000441F0 .text:000441F0 loc_441F0 ; CODE XREF: __strtof_internal+242Cj .text:000441F0 ; __strtof_internal+24C4j ... .text:000441F0 MOV R4, 0xFFFFFF81 .text:000441F4 .text:000441F4 loc_441F4 ; CODE XREF: __strtof_internal+23B4j .text:000441F4 MOV R3, R7,LSR R8 .text:000441F8 TST R3, #1 .text:000441FC BEQ loc_44FA8 .text:00044200 CMP R6, #0 .text:00044204 LDR R6, [R11,#var_D0] .text:00044208 LDR R2, [R6] .text:0004420C BNE loc_42CAC .text:00044210 TST R2, #1 .text:00044214 BNE loc_42CAC .text:00044218 MOV R3, #1 .text:0004421C MOV R3, R3,LSL R8 .text:00044220 B loc_42CA0 .text:00044224 ; --------------------------------------------------------------------------- .text:00044224 .text:00044224 loc_44224 ; CODE XREF: __strtof_internal+21C8j .text:00044224 MOV R4, #0 .text:00044228 STR R4, [R11,#var_BC] .text:0004422C LDR R3, [R11,#var_74] .text:00044230 LDR R12, [R11,#var_68] .text:00044234 LDR R2, [R11,#var_8C] .text:00044238 LDR R9, [R11,#var_64] .text:0004423C CMP R3, R2 .text:00044240 BGE loc_442D8 .text:00044244 LDR R3, [R11,#var_48] .text:00044248 CMP R3, R9 .text:0004424C MOVCS R5, R4 .text:00044250 MOVCS R8, R3 .text:00044254 BCS loc_442E0 .text:00044258 LDR R3, [R11,#var_90] .text:0004425C CMP R3, #0 .text:00044260 SUBLE R3, R3, #0x20 .text:00044264 STRLE R3, [R11,#var_78] .text:00044268 BLE loc_442CC .text:0004426C LDR R6, [R11,#var_90] .text:00044270 ADD R3, R6, #0x20 .text:00044274 CMP R3, #0x18 .text:00044278 MOV R5, R3 .text:0004427C LDRLE LR, [R11,#var_D0] .text:00044280 STRLE R4, [LR] .text:00044284 BLE loc_442C8 .text:00044288 LDR R0, [R11,#var_90] .text:0004428C RSB R0, R0, #0x18 .text:00044290 CMP R0, #0 .text:00044294 STR R0, [R11,#var_BC] .text:00044298 BLE loc_442C8 .text:0004429C CMP R0, #0x20 .text:000442A0 LDREQ R1, [R11,#var_D0] .text:000442A4 STREQ R4, [R1] .text:000442A8 BEQ loc_442C8 .text:000442AC STR R12, [R11,#var_E8] .text:000442B0 LDR R0, [R11,#var_D0] .text:000442B4 MOV R2, #1 .text:000442B8 LDR R3, [R11,#var_BC] .text:000442BC MOV R1, R0 .text:000442C0 BL __mpn_lshift .text:000442C4 LDR R12, [R11,#var_E8] .text:000442C8 .text:000442C8 loc_442C8 ; CODE XREF: __strtof_internal+25A8j .text:000442C8 ; __strtof_internal+25BCj ... .text:000442C8 STR R5, [R11,#var_90] .text:000442CC .text:000442CC loc_442CC ; CODE XREF: __strtof_internal+258Cj .text:000442CC MOV R8, #0 .text:000442D0 LDR R5, [R11,#var_48] .text:000442D4 B loc_442E0 .text:000442D8 ; --------------------------------------------------------------------------- .text:000442D8 .text:000442D8 loc_442D8 ; CODE XREF: __strtof_internal+2564j .text:000442D8 LDR R5, [R11,#var_44] .text:000442DC LDR R8, [R11,#var_48] .text:000442E0 .text:000442E0 loc_442E0 ; CODE XREF: __strtof_internal+2578j .text:000442E0 ; __strtof_internal+25F8j .text:000442E0 LDR R2, [R11,#var_90] .text:000442E4 CMP R2, #0x18 .text:000442E8 BGT loc_4456C .text:000442EC .text:000442EC loc_442EC ; CODE XREF: __strtof_internal+288Cj .text:000442EC CMP R5, R9 .text:000442F0 BNE loc_44324 .text:000442F4 MOV R4, 0xFFFFFFFF .text:000442F8 ADDS R0, R8, R5 .text:000442FC BCC loc_44310 .text:00044300 RSB R3, R12, R0 .text:00044304 MOVS R8, R12 .text:00044308 ADC R5, R3, #0 .text:0004430C B loc_44458 .text:00044310 ; --------------------------------------------------------------------------- .text:00044310 .text:00044310 loc_44310 ; CODE XREF: __strtof_internal+2620j .text:00044310 CMP R12, #0 .text:00044314 MOVEQ R5, R12 .text:00044318 SUBNE R5, R12, #1 .text:0004431C RSB R8, R12, #0 .text:00044320 B loc_44414 .text:00044324 ; --------------------------------------------------------------------------- .text:00044324 .text:00044324 loc_44324 ; CODE XREF: __strtof_internal+2614j .text:00044324 MOV R10, R9,LSL#16 .text:00044328 STR R12, [R11,#var_E8] .text:0004432C MOV R10, R10,LSR#16 .text:00044330 MOV R0, R5 .text:00044334 MOV R7, R9,LSR#16 .text:00044338 MOV R1, R7 .text:0004433C BL __umodsi3 .text:00044340 MOV R4, R0 .text:00044344 MOV R0, R5 .text:00044348 MOV R1, R7 .text:0004434C BL __udivsi3 .text:00044350 MOV R6, R0 .text:00044354 MUL R2, R10, R6 .text:00044358 MOV R3, R8,LSR#16 .text:0004435C ORR R4, R3, R4,LSL#16 .text:00044360 LDR R12, [R11,#var_E8] .text:00044364 CMP R4, R2 .text:00044368 BCS loc_44384 .text:0004436C SUB R6, R6, #1 .text:00044370 ADDS R4, R4, R9 .text:00044374 BCS loc_44384 .text:00044378 CMP R4, R2 .text:0004437C SUBCC R6, R6, #1 .text:00044380 ADDCC R4, R4, R9 .text:00044384 .text:00044384 loc_44384 ; CODE XREF: __strtof_internal+268Cj .text:00044384 ; __strtof_internal+2698j .text:00044384 STR R12, [R11,#var_E8] .text:00044388 RSB R4, R2, R4 .text:0004438C MOV R0, R4 .text:00044390 MOV R1, R7 .text:00044394 BL __umodsi3 .text:00044398 MOV R5, R0 .text:0004439C MOV R0, R4 .text:000443A0 MOV R1, R7 .text:000443A4 BL __udivsi3 .text:000443A8 MUL R2, R10, R0 .text:000443AC MOV R3, R8,LSL#16 .text:000443B0 MOV R3, R3,LSR#16 .text:000443B4 ORR R5, R3, R5,LSL#16 .text:000443B8 LDR R12, [R11,#var_E8] .text:000443BC CMP R5, R2 .text:000443C0 BCS loc_443DC .text:000443C4 SUB R0, R0, #1 .text:000443C8 ADDS R5, R5, R9 .text:000443CC BCS loc_443DC .text:000443D0 CMP R5, R2 .text:000443D4 SUBCC R0, R0, #1 .text:000443D8 ADDCC R5, R5, R9 .text:000443DC .text:000443DC loc_443DC ; CODE XREF: __strtof_internal+26E4j .text:000443DC ; __strtof_internal+26F0j .text:000443DC ORR R4, R0, R6,LSL#16 .text:000443E0 RSB R0, R2, R5 .text:000443E4 MOV R1, R12,LSR#16 .text:000443E8 MOV R5, R4,LSR#16 .text:000443EC BIC R2, R12, R1,LSL#16 .text:000443F0 BIC R3, R4, R5,LSL#16 .text:000443F4 MUL R8, R2, R3 .text:000443F8 MUL R3, R1, R3 .text:000443FC MUL R2, R5, R2 .text:00044400 MUL R5, R1, R5 .text:00044404 ADDS R2, R3, R2 .text:00044408 ADDCS R5, R5, #0x10000 .text:0004440C ADDS R8, R8, R2,LSL#16 .text:00044410 ADC R5, R5, R2,LSR#16 .text:00044414 .text:00044414 loc_44414 ; CODE XREF: __strtof_internal+2644j .text:00044414 ; __strtof_internal+2768j .text:00044414 CMP R5, R0 .text:00044418 BHI loc_44430 .text:0004441C MOVNE R3, #0 .text:00044420 MOVEQ R3, #1 .text:00044424 CMP R3, #0 .text:00044428 CMPNE R8, #0 .text:0004442C BEQ loc_44448 .text:00044430 .text:00044430 loc_44430 ; CODE XREF: __strtof_internal+273Cj .text:00044430 SUB R4, R4, #1 .text:00044434 SUBS R3, R8, R12 .text:00044438 SBC R5, R5, #0 .text:0004443C MOV R8, R3 .text:00044440 ADDS R0, R0, R9 .text:00044444 BCC loc_44414 .text:00044448 .text:00044448 loc_44448 ; CODE XREF: __strtof_internal+2750j .text:00044448 MOV LR, #0 .text:0004444C SUBS R6, LR, R8 .text:00044450 SBC R5, R0, R5 .text:00044454 MOV R8, R6 .text:00044458 .text:00044458 loc_44458 ; CODE XREF: __strtof_internal+2630j .text:00044458 LDR R0, [R11,#var_90] .text:0004445C CMP R0, #0 .text:00044460 BNE loc_444EC .text:00044464 CMP R4, #0 .text:00044468 MOVEQ R1, #0x20 .text:0004446C BEQ loc_444A8 .text:00044470 CMP R4, #0x10000 .text:00044474 BCS loc_44488 .text:00044478 CMP R4, #0xFF .text:0004447C MOVHI R1, #8 .text:00044480 MOVLS R1, #0 .text:00044484 B loc_44494 .text:00044488 ; --------------------------------------------------------------------------- .text:00044488 .text:00044488 loc_44488 ; CODE XREF: __strtof_internal+2798j .text:00044488 CMP R4, #0x1000000 .text:0004448C MOVCS R1, #0x18 .text:00044490 MOVCC R1, #0x10 .text:00044494 .text:00044494 loc_44494 ; CODE XREF: __strtof_internal+27A8j .text:00044494 LDR R6, =__clz_tab_1 .text:00044498 MOV R2, R4,LSR R1 .text:0004449C LDRB R3, [R6,R2] .text:000444A0 ADD R3, R3, R1 .text:000444A4 RSB R1, R3, #0x20 .text:000444A8 .text:000444A8 loc_444A8 ; CODE XREF: __strtof_internal+2790j .text:000444A8 RSB R2, R1, #0x20 .text:000444AC LDR R3, [R11,#var_78] .text:000444B0 CMP R2, #0x18 .text:000444B4 RSB R3, R1, R3 .text:000444B8 STR R3, [R11,#var_78] .text:000444BC BLE loc_444DC .text:000444C0 ADD R1, R1, #0x18 .text:000444C4 STR R1, [R11,#var_BC] .text:000444C8 MOV LR, #0x19 .text:000444CC STR LR, [R11,#var_90] .text:000444D0 RSB R3, R1, #0x20 .text:000444D4 MOV R3, R4,LSR R3 .text:000444D8 B loc_44554 .text:000444DC ; --------------------------------------------------------------------------- .text:000444DC .text:000444DC loc_444DC ; CODE XREF: __strtof_internal+27E0j .text:000444DC RSB R1, R1, #0 .text:000444E0 STR R1, [R11,#var_90] .text:000444E4 STR R4, [R11,#var_70] .text:000444E8 B loc_44558 .text:000444EC ; --------------------------------------------------------------------------- .text:000444EC .text:000444EC loc_444EC ; CODE XREF: __strtof_internal+2784j .text:000444EC LDR R0, [R11,#var_90] .text:000444F0 ADD R3, R0, #0x20 .text:000444F4 CMP R3, #0x18 .text:000444F8 LDRLE R1, [R11,#var_D0] .text:000444FC STRLE R4, [R1] .text:00044500 BLE loc_44558 .text:00044504 LDR R2, [R11,#var_90] .text:00044508 RSB R2, R2, #0x18 .text:0004450C CMP R2, #0 .text:00044510 STR R2, [R11,#var_BC] .text:00044514 BLE loc_44558 .text:00044518 CMP R2, #0x20 .text:0004451C LDREQ R3, [R11,#var_D0] .text:00044520 STREQ R4, [R3] .text:00044524 BEQ loc_44558 .text:00044528 STR R12, [R11,#var_E8] .text:0004452C LDR R0, [R11,#var_D0] .text:00044530 MOV R2, #1 .text:00044534 LDR R3, [R11,#var_BC] .text:00044538 MOV R1, R0 .text:0004453C BL __mpn_lshift .text:00044540 LDR R3, [R11,#var_70] .text:00044544 LDR R6, [R11,#var_BC] .text:00044548 LDR R12, [R11,#var_E8] .text:0004454C RSB R2, R6, #0x20 .text:00044550 ORR R3, R3, R4,LSR R2 .text:00044554 .text:00044554 loc_44554 ; CODE XREF: __strtof_internal+27FCj .text:00044554 STR R3, [R11,#var_70] .text:00044558 .text:00044558 loc_44558 ; CODE XREF: __strtof_internal+280Cj .text:00044558 ; __strtof_internal+2824j ... .text:00044558 LDR LR, [R11,#var_90] .text:0004455C ADD LR, LR, #0x20 .text:00044560 CMP LR, #0x18 .text:00044564 STR LR, [R11,#var_90] .text:00044568 BLE loc_442EC .text:0004456C .text:0004456C loc_4456C ; CODE XREF: __strtof_internal+260Cj .text:0004456C LDR R3, [R11,#var_78] .text:00044570 LDR R0, [R11,#var_B4] .text:00044574 MOV R2, #0 .text:00044578 LDR R6, [R11,#var_BC] .text:0004457C CMP R5, R2 .text:00044580 CMPEQ R0, R2 .text:00044584 SUB R1, R3, #1 .text:00044588 RSB R3, R6, #0x1F .text:0004458C BNE loc_44598 .text:00044590 CMP R8, R2 .text:00044594 BEQ loc_4459C .text:00044598 .text:00044598 loc_44598 ; CODE XREF: __strtof_internal+28B0j .text:00044598 MOV R2, #1 .text:0004459C .text:0004459C loc_4459C ; CODE XREF: __strtof_internal+28B8j .text:0004459C MOV R5, R1 .text:000445A0 MOV R7, R4 .text:000445A4 MOV R8, R3 .text:000445A8 MOV R6, R2 .text:000445AC CMN R5, #0x7E .text:000445B0 BGE loc_44710 .text:000445B4 RSB R12, R5, #0xFC000002 .text:000445B8 ADD R12, R12, #0x3FC0000 .text:000445BC ADD R12, R12, #0x3FC00 .text:000445C0 ADD R12, R12, #0x380 .text:000445C4 CMP R12, #0x18 .text:000445C8 BGT loc_44DBC .text:000445CC MOV R2, #1 .text:000445D0 MOV R3, R2,LSL R8 .text:000445D4 SUB R3, R3, #1 .text:000445D8 TST R7, R3 .text:000445DC ORRNE R6, R6, #1 .text:000445E0 CMP R12, #0x18 .text:000445E4 BNE loc_4462C .text:000445E8 MOV R8, #0x17 .text:000445EC SUB R2, R2, #1 .text:000445F0 LDR R7, [R11,#var_70] .text:000445F4 .text:000445F4 loc_445F4 ; CODE XREF: __strtof_internal+2930j .text:000445F4 LDR R12, [R11,#var_D0] .text:000445F8 LDR R3, [R12,R2,LSL#2] .text:000445FC ADD R2, R2, #1 .text:00044600 CMP R3, #0 .text:00044604 ORRNE R6, R6, #1 .text:00044608 CMP R2, #0 .text:0004460C BLE loc_445F4 .text:00044610 MOV R1, #0 .text:00044614 MOV R3, R12 .text:00044618 MOV R2, R3 .text:0004461C .text:0004461C loc_4461C ; CODE XREF: __strtof_internal+2948j .text:0004461C STR R1, [R3],#-4 .text:00044620 CMP R3, R2 .text:00044624 BGE loc_4461C .text:00044628 B loc_4470C .text:0004462C ; --------------------------------------------------------------------------- .text:0004462C .text:0004462C loc_4462C ; CODE XREF: __strtof_internal+2908j .text:0004462C CMP R12, #0x1F .text:00044630 BLE loc_446EC .text:00044634 SUB R3, R12, #1 .text:00044638 CMP R3, #0 .text:0004463C ADDLT R2, R3, #0x1F .text:00044640 MOVGE R2, R3 .text:00044644 MOV R2, R2,ASR#5 .text:00044648 SUB R8, R3, R2,LSL#5 .text:0004464C MOV R1, #0 .text:00044650 LDR LR, [R11,#var_D0] .text:00044654 CMP R1, R2 .text:00044658 LDR R7, [LR,R2,LSL#2] .text:0004465C MOV LR, R12,ASR#31 .text:00044660 BGE loc_44680 .text:00044664 .text:00044664 loc_44664 ; CODE XREF: __strtof_internal+29A0j .text:00044664 LDR R0, [R11,#var_D0] .text:00044668 LDR R3, [R0,R1,LSL#2] .text:0004466C ADD R1, R1, #1 .text:00044670 CMP R3, #0 .text:00044674 ORRNE R6, R6, #1 .text:00044678 CMP R1, R2 .text:0004467C BLT loc_44664 .text:00044680 .text:00044680 loc_44680 ; CODE XREF: __strtof_internal+2984j .text:00044680 MOV R3, #1 .text:00044684 MOV R3, R3,LSL R8 .text:00044688 SUB R3, R3, #1 .text:0004468C TST R7, R3 .text:00044690 ORRNE R6, R6, #1 .text:00044694 MOV R3, LR,LSR#27 .text:00044698 ADD R3, R12, R3 .text:0004469C MOV R4, R3,ASR#5 .text:000446A0 RSB R5, R4, #1 .text:000446A4 MOV R2, R5 .text:000446A8 LDR R0, [R11,#var_D0] .text:000446AC SUB R3, R12, R4,LSL#5 .text:000446B0 ADD R1, R0, R4,LSL#2 .text:000446B4 BL __mpn_rshift .text:000446B8 MOV R1, #0 .text:000446BC CMP R1, R4 .text:000446C0 BGE loc_4470C .text:000446C4 MOV R0, R4 .text:000446C8 LDR R3, [R11,#var_D0] .text:000446CC MOV R12, R1 .text:000446D0 ADD R2, R3, R5,LSL#2 .text:000446D4 .text:000446D4 loc_446D4 ; CODE XREF: __strtof_internal+2A08j .text:000446D4 MOV R3, R1,LSL#2 .text:000446D8 ADD R1, R1, #1 .text:000446DC CMP R1, R0 .text:000446E0 STR R12, [R3,R2] .text:000446E4 BLT loc_446D4 .text:000446E8 B loc_4470C .text:000446EC ; --------------------------------------------------------------------------- .text:000446EC .text:000446EC loc_446EC ; CODE XREF: __strtof_internal+2954j .text:000446EC CMP R12, #0 .text:000446F0 BLE loc_4470C .text:000446F4 SUB R8, R12, #1 .text:000446F8 LDR R0, [R11,#var_D0] .text:000446FC MOV R3, R12 .text:00044700 LDR R7, [R11,#var_70] .text:00044704 MOV R1, R0 .text:00044708 BL __mpn_rshift .text:0004470C .text:0004470C loc_4470C ; CODE XREF: __strtof_internal+294Cj .text:0004470C ; __strtof_internal+29E4j ... .text:0004470C MOV R5, 0xFFFFFF81 .text:00044710 .text:00044710 loc_44710 ; CODE XREF: __strtof_internal+28D4j .text:00044710 MOV R3, R7,LSR R8 .text:00044714 TST R3, #1 .text:00044718 BEQ loc_447A4 .text:0004471C CMP R6, #0 .text:00044720 LDR R6, [R11,#var_D0] .text:00044724 LDR R2, [R6] .text:00044728 BNE loc_44748 .text:0004472C TST R2, #1 .text:00044730 BNE loc_44748 .text:00044734 MOV R3, #1 .text:00044738 MOV R3, R3,LSL R8 .text:0004473C SUB R3, R3, #1 .text:00044740 TST R7, R3 .text:00044744 BEQ loc_447A4 .text:00044748 .text:00044748 loc_44748 ; CODE XREF: __strtof_internal+2A4Cj .text:00044748 ; __strtof_internal+2A54j .text:00044748 ADD R3, R2, #1 .text:0004474C LDR R12, [R11,#var_D0] .text:00044750 CMP R3, R2 .text:00044754 STR R3, [R12] .text:00044758 LDR LR, [R11,#var_D0] .text:0004475C LDR R3, [LR] .text:00044760 TST R3, #0x1000000 .text:00044764 BEQ loc_44794 .text:00044768 MOV R0, LR .text:0004476C MOV R1, R0 .text:00044770 MOV R2, #1 .text:00044774 MOV R3, R2 .text:00044778 BL __mpn_rshift .text:0004477C LDR R0, [R11,#var_D0] .text:00044780 LDR R3, [R0] .text:00044784 ADD R5, R5, #1 .text:00044788 ORR R3, R3, #0x800000 .text:0004478C STR R3, [R0] .text:00044790 B loc_447A4 .text:00044794 ; --------------------------------------------------------------------------- .text:00044794 .text:00044794 loc_44794 ; CODE XREF: __strtof_internal+2A88j .text:00044794 CMN R5, #0x7F .text:00044798 BNE loc_447A4 .text:0004479C TST R3, #0x800000 .text:000447A0 MOVNE R5, 0xFFFFFF82 .text:000447A4 .text:000447A4 loc_447A4 ; CODE XREF: __strtof_internal+2A3Cj .text:000447A4 ; __strtof_internal+2A68j ... .text:000447A4 CMP R5, #0x80 .text:000447A8 BGT loc_44FB0 .text:000447AC LDR R0, [R11,#var_D0] .text:000447B0 LDR R2, [R11,#var_84] .text:000447B4 MOV R1, R5 .text:000447B8 B loc_44FE4 .text:000447B8 ; --------------------------------------------------------------------------- .text:000447BC off_447BC DCD __clz_tab_1 ; DATA XREF: __strtof_internal:loc_44494r .text:000447C0 ; --------------------------------------------------------------------------- .text:000447C0 .text:000447C0 loc_447C0 ; CODE XREF: __strtof_internal+21CCj .text:000447C0 MOV R6, #0 .text:000447C4 STR R6, [R11,#var_C4] .text:000447C8 LDR R2, [R11,#var_74] .text:000447CC LDR R3, [R11,#var_8C] .text:000447D0 RSB R1, R2, R3 .text:000447D4 ADD R12, R11, R1,LSL#2 .text:000447D8 SUB R12, R12, #0x68 .text:000447DC LDR R3, [R11,#var_D8] .text:000447E0 MOV R1, R12 .text:000447E4 LDR R12, [R11,#var_8C] .text:000447E8 SUB LR, R11, #-var_68 .text:000447EC LDR R10, [LR,R3,LSL#2] .text:000447F0 SUB R4, R12, #2 .text:000447F4 LDR LR, [LR,R4,LSL#2] .text:000447F8 STR LR, [R11,#var_C0] .text:000447FC MOV R0, R9 .text:00044800 BL __mpn_cmp .text:00044804 CMP R0, R6 .text:00044808 STR R4, [R11,#var_D4] .text:0004480C BLE loc_44824 .text:00044810 LDR R3, [R11,#var_74] .text:00044814 MOV R2, R3,LSL#2 .text:00044818 STR R6, [R9,R2] .text:0004481C ADD R3, R3, #1 .text:00044820 STR R3, [R11,#var_74] .text:00044824 .text:00044824 loc_44824 ; CODE XREF: __strtof_internal+2B30j .text:00044824 LDR R2, [R11,#var_74] .text:00044828 LDR R0, [R11,#var_8C] .text:0004482C CMP R2, R0 .text:00044830 BGE loc_44A14 .text:00044834 LDR R1, [R11,#var_90] .text:00044838 RSB LR, R2, R0 .text:0004483C CMP R1, #0 .text:00044840 BGT loc_448C8 .text:00044844 SUBS R0, R2, #0 .text:00044848 ADD R12, LR, #1 .text:0004484C LDR R3, [R11,#var_8C] .text:00044850 MOV R5, LR,LSL#5 .text:00044854 MOV R3, R3,LSL#2 .text:00044858 STR R3, [R11,#var_E0] .text:0004485C BLE loc_44890 .text:00044860 MOV R4, R9 .text:00044864 MOV R3, R2,LSL#2 .text:00044868 SUB R1, R3, #4 .text:0004486C ADD R2, R2, LR .text:00044870 MOV R2, R2,LSL#2 .text:00044874 .text:00044874 loc_44874 ; CODE XREF: __strtof_internal+2BB0j .text:00044874 LDR R3, [R4,R1] .text:00044878 SUB R1, R1, #4 .text:0004487C SUB R0, R0, #1 .text:00044880 CMP R0, #0 .text:00044884 STR R3, [R4,R2] .text:00044888 SUB R2, R2, #4 .text:0004488C BGT loc_44874 .text:00044890 .text:00044890 loc_44890 ; CODE XREF: __strtof_internal+2B80j .text:00044890 MOV R2, #0 .text:00044894 CMP R2, R12 .text:00044898 BGE loc_448B8 .text:0004489C MOV R1, R9 .text:000448A0 MOV R0, R2 .text:000448A4 .text:000448A4 loc_448A4 ; CODE XREF: __strtof_internal+2BD8j .text:000448A4 MOV R3, R2,LSL#2 .text:000448A8 ADD R2, R2, #1 .text:000448AC CMP R2, R12 .text:000448B0 STR R0, [R1,R3] .text:000448B4 BLT loc_448A4 .text:000448B8 .text:000448B8 loc_448B8 ; CODE XREF: __strtof_internal+2BBCj .text:000448B8 LDR R3, [R11,#var_78] .text:000448BC RSB R3, R5, R3 .text:000448C0 STR R3, [R11,#var_78] .text:000448C4 B loc_44A4C .text:000448C8 ; --------------------------------------------------------------------------- .text:000448C8 .text:000448C8 loc_448C8 ; CODE XREF: __strtof_internal+2B64j .text:000448C8 MOV R2, LR,LSL#5 .text:000448CC LDR R12, [R11,#var_90] .text:000448D0 MOV R5, R2 .text:000448D4 ADD R3, R12, R2 .text:000448D8 CMP R3, #0x18 .text:000448DC BGT loc_44960 .text:000448E0 LDR R0, [R11,#var_D0] .text:000448E4 STR R6, [R0] .text:000448E8 LDR R1, [R11,#var_8C] .text:000448EC MOV R1, R1,LSL#2 .text:000448F0 STR R1, [R11,#var_E0] .text:000448F4 LDR R1, [R11,#var_74] .text:000448F8 ADD R12, LR, #1 .text:000448FC CMP R1, #0 .text:00044900 BLE loc_44934 .text:00044904 MOV R4, R9 .text:00044908 MOV R3, R1,LSL#2 .text:0004490C SUB R0, R3, #4 .text:00044910 ADD R2, R1, LR .text:00044914 MOV R2, R2,LSL#2 .text:00044918 .text:00044918 loc_44918 ; CODE XREF: __strtof_internal+2C54j .text:00044918 LDR R3, [R4,R0] .text:0004491C SUB R0, R0, #4 .text:00044920 SUB R1, R1, #1 .text:00044924 CMP R1, #0 .text:00044928 STR R3, [R4,R2] .text:0004492C SUB R2, R2, #4 .text:00044930 BGT loc_44918 .text:00044934 .text:00044934 loc_44934 ; CODE XREF: __strtof_internal+2C24j .text:00044934 MOV R2, #0 .text:00044938 CMP R2, R12 .text:0004493C BGE loc_44A04 .text:00044940 MOV R1, R9 .text:00044944 MOV R0, R2 .text:00044948 .text:00044948 loc_44948 ; CODE XREF: __strtof_internal+2C7Cj .text:00044948 MOV R3, R2,LSL#2 .text:0004494C ADD R2, R2, #1 .text:00044950 CMP R2, R12 .text:00044954 STR R0, [R1,R3] .text:00044958 BLT loc_44948 .text:0004495C B loc_44A04 .text:00044960 ; --------------------------------------------------------------------------- .text:00044960 .text:00044960 loc_44960 ; CODE XREF: __strtof_internal+2C00j .text:00044960 LDR R2, [R11,#var_90] .text:00044964 RSB R2, R2, #0x18 .text:00044968 CMP R2, #0x1F .text:0004496C STR R2, [R11,#var_C4] .text:00044970 BLE loc_449C8 .text:00044974 SUBS R4, R2, #0 .text:00044978 ADDLT R4, R2, #0x1F .text:0004497C MOV R4, R4,ASR#5 .text:00044980 LDR R3, [R11,#var_D0] .text:00044984 MOV R2, #1 .text:00044988 LDR R12, [R11,#var_C4] .text:0004498C ADD R0, R3, R4,LSL#2 .text:00044990 MOV R1, R3 .text:00044994 SUB R3, R12, R4,LSL#5 .text:00044998 BL __mpn_lshift .text:0004499C LDR LR, [R11,#var_8C] .text:000449A0 CMP R4, #0 .text:000449A4 MOV LR, LR,LSL#2 .text:000449A8 STR LR, [R11,#var_E0] .text:000449AC BLT loc_44A04 .text:000449B0 MOV R3, R6 .text:000449B4 LDR R2, [R11,#var_D0] .text:000449B8 .text:000449B8 loc_449B8 ; CODE XREF: __strtof_internal+2CE4j .text:000449B8 STR R3, [R2,R4,LSL#2] .text:000449BC SUBS R4, R4, #1 .text:000449C0 BPL loc_449B8 .text:000449C4 B loc_44A04 .text:000449C8 ; --------------------------------------------------------------------------- .text:000449C8 .text:000449C8 loc_449C8 ; CODE XREF: __strtof_internal+2C94j .text:000449C8 LDR R0, [R11,#var_C4] .text:000449CC LDR R1, [R11,#var_8C] .text:000449D0 CMP R0, #0 .text:000449D4 MOV R1, R1,LSL#2 .text:000449D8 STR R1, [R11,#var_E0] .text:000449DC BLE loc_44A04 .text:000449E0 CMP R0, #0x20 .text:000449E4 LDREQ R2, [R11,#var_D0] .text:000449E8 STREQ R6, [R2] .text:000449EC BEQ loc_44A04 .text:000449F0 LDR R0, [R11,#var_D0] .text:000449F4 MOV R2, #1 .text:000449F8 LDR R3, [R11,#var_C4] .text:000449FC MOV R1, R0 .text:00044A00 BL __mpn_lshift .text:00044A04 .text:00044A04 loc_44A04 ; CODE XREF: __strtof_internal+2C60j .text:00044A04 ; __strtof_internal+2C80j ... .text:00044A04 LDR R3, [R11,#var_90] .text:00044A08 ADD R3, R3, R5 .text:00044A0C STR R3, [R11,#var_90] .text:00044A10 B loc_44A4C .text:00044A14 ; --------------------------------------------------------------------------- .text:00044A14 .text:00044A14 loc_44A14 ; CODE XREF: __strtof_internal+2B54j .text:00044A14 LDR R12, [R11,#var_8C] .text:00044A18 CMP R2, #0 .text:00044A1C MOV R12, R12,LSL#2 .text:00044A20 STR R12, [R11,#var_E0] .text:00044A24 BLE loc_44A4C .text:00044A28 MOV R0, R9 .text:00044A2C MOV R3, R2,LSL#2 .text:00044A30 SUB R1, R3, #4 .text:00044A34 .text:00044A34 loc_44A34 ; CODE XREF: __strtof_internal+2D6Cj .text:00044A34 LDR R3, [R0,R1] .text:00044A38 SUB R1, R1, #4 .text:00044A3C STR R3, [R0,R2,LSL#2] .text:00044A40 SUB R2, R2, #1 .text:00044A44 CMP R2, #0 .text:00044A48 BGT loc_44A34 .text:00044A4C .text:00044A4C loc_44A4C ; CODE XREF: __strtof_internal+2BE8j .text:00044A4C ; __strtof_internal+2D34j ... .text:00044A4C MOV R3, #0 .text:00044A50 LDR R0, [R11,#var_E0] .text:00044A54 SUB LR, R11, #-var_68 .text:00044A58 STR R3, [LR,R0] .text:00044A5C LDR R1, [R11,#var_90] .text:00044A60 CMP R1, #0x18 .text:00044A64 LDR R5, [R9,R0] .text:00044A68 BGT loc_44D48 .text:00044A6C STR R9, [R11,#var_C8] .text:00044A70 .text:00044A70 loc_44A70 ; CODE XREF: __strtof_internal+3068j .text:00044A70 CMP R5, R10 .text:00044A74 LDREQ R3, [R11,#var_8C] .text:00044A78 MOVEQ R6, 0xFFFFFFFF .text:00044A7C ADDEQ R2, R3, #1 .text:00044A80 BEQ loc_44BBC .text:00044A84 MOV R8, R10,LSL#16 .text:00044A88 MOV R8, R8,LSR#16 .text:00044A8C MOV R0, R5 .text:00044A90 MOV R7, R10,LSR#16 .text:00044A94 MOV R1, R7 .text:00044A98 BL __umodsi3 .text:00044A9C MOV R4, R0 .text:00044AA0 MOV R0, R5 .text:00044AA4 MOV R1, R7 .text:00044AA8 BL __udivsi3 .text:00044AAC MOV R6, R0 .text:00044AB0 MUL R2, R8, R6 .text:00044AB4 LDR R12, [R11,#var_D8] .text:00044AB8 LDR R3, [R9,R12,LSL#2] .text:00044ABC MOV R3, R3,LSR#16 .text:00044AC0 ORR R4, R3, R4,LSL#16 .text:00044AC4 CMP R4, R2 .text:00044AC8 BCS loc_44AE4 .text:00044ACC SUB R6, R6, #1 .text:00044AD0 ADDS R4, R4, R10 .text:00044AD4 BCS loc_44AE4 .text:00044AD8 CMP R4, R2 .text:00044ADC SUBCC R6, R6, #1 .text:00044AE0 ADDCC R4, R4, R10 .text:00044AE4 .text:00044AE4 loc_44AE4 ; CODE XREF: __strtof_internal+2DECj .text:00044AE4 ; __strtof_internal+2DF8j .text:00044AE4 RSB R4, R2, R4 .text:00044AE8 MOV R0, R4 .text:00044AEC MOV R1, R7 .text:00044AF0 BL __umodsi3 .text:00044AF4 MOV R5, R0 .text:00044AF8 MOV R0, R4 .text:00044AFC MOV R1, R7 .text:00044B00 BL __udivsi3 .text:00044B04 MUL R2, R8, R0 .text:00044B08 LDR LR, [R11,#var_D8] .text:00044B0C LDR R3, [R9,LR,LSL#2] .text:00044B10 MOV R3, R3,LSL#16 .text:00044B14 MOV R3, R3,LSR#16 .text:00044B18 ORR R5, R3, R5,LSL#16 .text:00044B1C CMP R5, R2 .text:00044B20 BCS loc_44B3C .text:00044B24 SUB R0, R0, #1 .text:00044B28 ADDS R5, R5, R10 .text:00044B2C BCS loc_44B3C .text:00044B30 CMP R5, R2 .text:00044B34 SUBCC R0, R0, #1 .text:00044B38 ADDCC R5, R5, R10 .text:00044B3C .text:00044B3C loc_44B3C ; CODE XREF: __strtof_internal+2E44j .text:00044B3C ; __strtof_internal+2E50j .text:00044B3C ORR R6, R0, R6,LSL#16 .text:00044B40 RSB R0, R2, R5 .text:00044B44 LDR LR, [R11,#var_C0] .text:00044B48 MOV R1, LR,LSR#16 .text:00044B4C MOV R12, R6,LSR#16 .text:00044B50 BIC R2, LR, R1,LSL#16 .text:00044B54 BIC R3, R6, R12,LSL#16 .text:00044B58 MUL R5, R2, R3 .text:00044B5C MUL R3, R1, R3 .text:00044B60 MUL R2, R12, R2 .text:00044B64 MUL R12, R1, R12 .text:00044B68 ADDS R2, R3, R2 .text:00044B6C ADDCS R12, R12, #0x10000 .text:00044B70 ADDS R5, R5, R2,LSL#16 .text:00044B74 ADC R12, R12, R2,LSR#16 .text:00044B78 LDR R1, [R11,#var_8C] .text:00044B7C ADD R2, R1, #1 .text:00044B80 B loc_44B94 .text:00044B84 ; --------------------------------------------------------------------------- .text:00044B84 .text:00044B84 loc_44B84 ; CODE XREF: __strtof_internal+2EDCj .text:00044B84 LDR R3, [R11,#var_C0] .text:00044B88 CMP R5, R3 .text:00044B8C SUBCC R12, R12, #1 .text:00044B90 RSB R5, R3, R5 .text:00044B94 .text:00044B94 loc_44B94 ; CODE XREF: __strtof_internal+2EA4j .text:00044B94 CMP R12, R0 .text:00044B98 BHI loc_44BB0 .text:00044B9C BNE loc_44BBC .text:00044BA0 LDR LR, [R11,#var_D4] .text:00044BA4 LDR R3, [R9,LR,LSL#2] .text:00044BA8 CMP R5, R3 .text:00044BAC BLS loc_44BBC .text:00044BB0 .text:00044BB0 loc_44BB0 ; CODE XREF: __strtof_internal+2EBCj .text:00044BB0 SUB R6, R6, #1 .text:00044BB4 ADDS R0, R0, R10 .text:00044BB8 BCC loc_44B84 .text:00044BBC .text:00044BBC loc_44BBC ; CODE XREF: __strtof_internal+2DA4j .text:00044BBC ; __strtof_internal+2EC0j ... .text:00044BBC SUB R1, R11, #-var_68 .text:00044BC0 LDR R0, [R11,#var_C8] .text:00044BC4 MOV R3, R6 .text:00044BC8 BL __mpn_submul_1 .text:00044BCC LDR R1, [R11,#var_C8] .text:00044BD0 LDR R2, [R11,#var_E0] .text:00044BD4 LDR R3, [R1,R2] .text:00044BD8 CMP R3, R0 .text:00044BDC BEQ loc_44BF8 .text:00044BE0 MOV R0, R9 .text:00044BE4 MOV R1, R9 .text:00044BE8 SUB R2, R11, #-var_68 .text:00044BEC LDR R3, [R11,#var_8C] .text:00044BF0 SUB R6, R6, #1 .text:00044BF4 BL __mpn_add_n .text:00044BF8 .text:00044BF8 loc_44BF8 ; CODE XREF: __strtof_internal+2F00j .text:00044BF8 LDR R3, [R11,#var_D8] .text:00044BFC LDR R12, [R11,#var_D8] .text:00044C00 LDR LR, [R11,#var_E0] .text:00044C04 MOV R2, R3,LSL#2 .text:00044C08 LDR R3, [R9,R2] .text:00044C0C CMP R12, #0 .text:00044C10 MOV R5, R3 .text:00044C14 STR R3, [R9,LR] .text:00044C18 BLE loc_44C3C .text:00044C1C MOV R1, R9 .text:00044C20 SUB R2, R2, #4 .text:00044C24 .text:00044C24 loc_44C24 ; CODE XREF: __strtof_internal+2F5Cj .text:00044C24 LDR R3, [R1,R2] .text:00044C28 SUB R2, R2, #4 .text:00044C2C STR R3, [R1,R12,LSL#2] .text:00044C30 SUB R12, R12, #1 .text:00044C34 CMP R12, #0 .text:00044C38 BGT loc_44C24 .text:00044C3C .text:00044C3C loc_44C3C ; CODE XREF: __strtof_internal+2F3Cj .text:00044C3C LDR R0, [R11,#var_90] .text:00044C40 CMP R0, #0 .text:00044C44 BNE loc_44CD0 .text:00044C48 CMP R6, #0 .text:00044C4C MOVEQ R1, #0x20 .text:00044C50 BEQ loc_44C8C .text:00044C54 CMP R6, #0x10000 .text:00044C58 BCS loc_44C6C .text:00044C5C CMP R6, #0xFF .text:00044C60 MOVHI R1, #8 .text:00044C64 MOVLS R1, #0 .text:00044C68 B loc_44C78 .text:00044C6C ; --------------------------------------------------------------------------- .text:00044C6C .text:00044C6C loc_44C6C ; CODE XREF: __strtof_internal+2F7Cj .text:00044C6C CMP R6, #0x1000000 .text:00044C70 MOVCS R1, #0x18 .text:00044C74 MOVCC R1, #0x10 .text:00044C78 .text:00044C78 loc_44C78 ; CODE XREF: __strtof_internal+2F8Cj .text:00044C78 LDR R12, =__clz_tab_1 .text:00044C7C MOV R2, R6,LSR R1 .text:00044C80 LDRB R3, [R12,R2] .text:00044C84 ADD R3, R3, R1 .text:00044C88 RSB R1, R3, #0x20 .text:00044C8C .text:00044C8C loc_44C8C ; CODE XREF: __strtof_internal+2F74j .text:00044C8C RSB R2, R1, #0x20 .text:00044C90 LDR R3, [R11,#var_78] .text:00044C94 CMP R2, #0x18 .text:00044C98 RSB R3, R1, R3 .text:00044C9C STR R3, [R11,#var_78] .text:00044CA0 BLE loc_44CC0 .text:00044CA4 ADD R1, R1, #0x18 .text:00044CA8 STR R1, [R11,#var_C4] .text:00044CAC MOV LR, #0x19 .text:00044CB0 STR LR, [R11,#var_90] .text:00044CB4 RSB R3, R1, #0x20 .text:00044CB8 MOV R3, R6,LSR R3 .text:00044CBC B loc_44D30 .text:00044CC0 ; --------------------------------------------------------------------------- .text:00044CC0 .text:00044CC0 loc_44CC0 ; CODE XREF: __strtof_internal+2FC4j .text:00044CC0 RSB R1, R1, #0 .text:00044CC4 STR R1, [R11,#var_90] .text:00044CC8 STR R6, [R11,#var_70] .text:00044CCC B loc_44D34 .text:00044CD0 ; --------------------------------------------------------------------------- .text:00044CD0 .text:00044CD0 loc_44CD0 ; CODE XREF: __strtof_internal+2F68j .text:00044CD0 LDR R0, [R11,#var_90] .text:00044CD4 ADD R3, R0, #0x20 .text:00044CD8 CMP R3, #0x18 .text:00044CDC LDRLE R1, [R11,#var_D0] .text:00044CE0 STRLE R6, [R1] .text:00044CE4 BLE loc_44D34 .text:00044CE8 LDR R2, [R11,#var_90] .text:00044CEC RSB R2, R2, #0x18 .text:00044CF0 CMP R2, #0 .text:00044CF4 STR R2, [R11,#var_C4] .text:00044CF8 BLE loc_44D34 .text:00044CFC CMP R2, #0x20 .text:00044D00 LDREQ R3, [R11,#var_D0] .text:00044D04 STREQ R6, [R3] .text:00044D08 BEQ loc_44D34 .text:00044D0C LDR R0, [R11,#var_D0] .text:00044D10 MOV R2, #1 .text:00044D14 LDR R3, [R11,#var_C4] .text:00044D18 MOV R1, R0 .text:00044D1C BL __mpn_lshift .text:00044D20 LDR R12, [R11,#var_C4] .text:00044D24 LDR R3, [R11,#var_70] .text:00044D28 RSB R2, R12, #0x20 .text:00044D2C ORR R3, R3, R6,LSR R2 .text:00044D30 .text:00044D30 loc_44D30 ; CODE XREF: __strtof_internal+2FE0j .text:00044D30 STR R3, [R11,#var_70] .text:00044D34 .text:00044D34 loc_44D34 ; CODE XREF: __strtof_internal+2FF0j .text:00044D34 ; __strtof_internal+3008j ... .text:00044D34 LDR LR, [R11,#var_90] .text:00044D38 ADD LR, LR, #0x20 .text:00044D3C CMP LR, #0x18 .text:00044D40 STR LR, [R11,#var_90] .text:00044D44 BLE loc_44A70 .text:00044D48 .text:00044D48 loc_44D48 ; CODE XREF: __strtof_internal+2D8Cj .text:00044D48 LDR R12, [R11,#var_8C] .text:00044D4C LDR R1, [R11,#var_78] .text:00044D50 LDR R0, [R11,#var_C4] .text:00044D54 LDR R3, [R9,R12,LSL#2] .text:00044D58 RSB R2, R0, #0x1F .text:00044D5C CMP R12, #0 .text:00044D60 CMPGE R3, #0 .text:00044D64 BNE loc_44D80 .text:00044D68 MOV R0, R9 .text:00044D6C .text:00044D6C loc_44D6C ; CODE XREF: __strtof_internal+30A0j .text:00044D6C SUB R12, R12, #1 .text:00044D70 LDR R3, [R0,R12,LSL#2] .text:00044D74 CMP R12, #0 .text:00044D78 CMPGE R3, #0 .text:00044D7C BEQ loc_44D6C .text:00044D80 .text:00044D80 loc_44D80 ; CODE XREF: __strtof_internal+3088j .text:00044D80 SUB R4, R1, #1 .text:00044D84 MOV R7, R6 .text:00044D88 MOV R8, R2 .text:00044D8C MVN R3, R12 .text:00044D90 MOV R3, R3,LSR#31 .text:00044D94 LDR R1, [R11,#var_B4] .text:00044D98 CMN R4, #0x7E .text:00044D9C ORR R6, R1, R3 .text:00044DA0 BGE loc_44F14 .text:00044DA4 RSB R12, R4, #0xFC000002 .text:00044DA8 ADD R12, R12, #0x3FC0000 .text:00044DAC ADD R12, R12, #0x3FC00 .text:00044DB0 ADD R12, R12, #0x380 .text:00044DB4 CMP R12, #0x18 .text:00044DB8 BLE loc_44DD0 .text:00044DBC .text:00044DBC loc_44DBC ; CODE XREF: __strtof_internal+E60j .text:00044DBC ; __strtof_internal+1080j ... .text:00044DBC BL __errno_location .text:00044DC0 MOV R3, #0x21 .text:00044DC4 STR R3, [R0] .text:00044DC8 LDR R2, =0 .text:00044DCC B loc_44FF0 .text:00044DD0 ; --------------------------------------------------------------------------- .text:00044DD0 .text:00044DD0 loc_44DD0 ; CODE XREF: __strtof_internal+30DCj .text:00044DD0 MOV R2, #1 .text:00044DD4 MOV R3, R2,LSL R8 .text:00044DD8 SUB R3, R3, #1 .text:00044DDC TST R7, R3 .text:00044DE0 ORRNE R6, R6, #1 .text:00044DE4 CMP R12, #0x18 .text:00044DE8 BNE loc_44E30 .text:00044DEC MOV R8, #0x17 .text:00044DF0 SUB R2, R2, #1 .text:00044DF4 LDR R7, [R11,#var_70] .text:00044DF8 .text:00044DF8 loc_44DF8 ; CODE XREF: __strtof_internal+3134j .text:00044DF8 LDR R12, [R11,#var_D0] .text:00044DFC LDR R3, [R12,R2,LSL#2] .text:00044E00 ADD R2, R2, #1 .text:00044E04 CMP R3, #0 .text:00044E08 ORRNE R6, R6, #1 .text:00044E0C CMP R2, #0 .text:00044E10 BLE loc_44DF8 .text:00044E14 MOV R1, #0 .text:00044E18 MOV R3, R12 .text:00044E1C MOV R2, R3 .text:00044E20 .text:00044E20 loc_44E20 ; CODE XREF: __strtof_internal+314Cj .text:00044E20 STR R1, [R3],#-4 .text:00044E24 CMP R3, R2 .text:00044E28 BGE loc_44E20 .text:00044E2C B loc_44F10 .text:00044E30 ; --------------------------------------------------------------------------- .text:00044E30 .text:00044E30 loc_44E30 ; CODE XREF: __strtof_internal+310Cj .text:00044E30 CMP R12, #0x1F .text:00044E34 BLE loc_44EF0 .text:00044E38 SUB R3, R12, #1 .text:00044E3C CMP R3, #0 .text:00044E40 ADDLT R2, R3, #0x1F .text:00044E44 MOVGE R2, R3 .text:00044E48 MOV R2, R2,ASR#5 .text:00044E4C SUB R8, R3, R2,LSL#5 .text:00044E50 MOV R1, #0 .text:00044E54 LDR LR, [R11,#var_D0] .text:00044E58 CMP R1, R2 .text:00044E5C LDR R7, [LR,R2,LSL#2] .text:00044E60 MOV LR, R12,ASR#31 .text:00044E64 BGE loc_44E84 .text:00044E68 .text:00044E68 loc_44E68 ; CODE XREF: __strtof_internal+31A4j .text:00044E68 LDR R0, [R11,#var_D0] .text:00044E6C LDR R3, [R0,R1,LSL#2] .text:00044E70 ADD R1, R1, #1 .text:00044E74 CMP R3, #0 .text:00044E78 ORRNE R6, R6, #1 .text:00044E7C CMP R1, R2 .text:00044E80 BLT loc_44E68 .text:00044E84 .text:00044E84 loc_44E84 ; CODE XREF: __strtof_internal+3188j .text:00044E84 MOV R3, #1 .text:00044E88 MOV R3, R3,LSL R8 .text:00044E8C SUB R3, R3, #1 .text:00044E90 TST R7, R3 .text:00044E94 ORRNE R6, R6, #1 .text:00044E98 MOV R3, LR,LSR#27 .text:00044E9C ADD R3, R12, R3 .text:00044EA0 MOV R4, R3,ASR#5 .text:00044EA4 RSB R5, R4, #1 .text:00044EA8 MOV R2, R5 .text:00044EAC LDR R0, [R11,#var_D0] .text:00044EB0 SUB R3, R12, R4,LSL#5 .text:00044EB4 ADD R1, R0, R4,LSL#2 .text:00044EB8 BL __mpn_rshift .text:00044EBC MOV R1, #0 .text:00044EC0 CMP R1, R4 .text:00044EC4 BGE loc_44F10 .text:00044EC8 MOV R0, R4 .text:00044ECC LDR R3, [R11,#var_D0] .text:00044ED0 MOV R12, R1 .text:00044ED4 ADD R2, R3, R5,LSL#2 .text:00044ED8 .text:00044ED8 loc_44ED8 ; CODE XREF: __strtof_internal+320Cj .text:00044ED8 MOV R3, R1,LSL#2 .text:00044EDC ADD R1, R1, #1 .text:00044EE0 CMP R1, R0 .text:00044EE4 STR R12, [R3,R2] .text:00044EE8 BLT loc_44ED8 .text:00044EEC B loc_44F10 .text:00044EF0 ; --------------------------------------------------------------------------- .text:00044EF0 .text:00044EF0 loc_44EF0 ; CODE XREF: __strtof_internal+3158j .text:00044EF0 CMP R12, #0 .text:00044EF4 BLE loc_44F10 .text:00044EF8 SUB R8, R12, #1 .text:00044EFC LDR R0, [R11,#var_D0] .text:00044F00 MOV R3, R12 .text:00044F04 LDR R7, [R11,#var_70] .text:00044F08 MOV R1, R0 .text:00044F0C BL __mpn_rshift .text:00044F10 .text:00044F10 loc_44F10 ; CODE XREF: __strtof_internal+3150j .text:00044F10 ; __strtof_internal+31E8j ... .text:00044F10 MOV R4, 0xFFFFFF81 .text:00044F14 .text:00044F14 loc_44F14 ; CODE XREF: __strtof_internal+30C4j .text:00044F14 MOV R3, R7,LSR R8 .text:00044F18 TST R3, #1 .text:00044F1C BEQ loc_44FA8 .text:00044F20 CMP R6, #0 .text:00044F24 LDR R6, [R11,#var_D0] .text:00044F28 LDR R2, [R6] .text:00044F2C BNE loc_44F4C .text:00044F30 TST R2, #1 .text:00044F34 BNE loc_44F4C .text:00044F38 MOV R3, #1 .text:00044F3C MOV R3, R3,LSL R8 .text:00044F40 SUB R3, R3, #1 .text:00044F44 TST R7, R3 .text:00044F48 BEQ loc_44FA8 .text:00044F4C .text:00044F4C loc_44F4C ; CODE XREF: __strtof_internal+3250j .text:00044F4C ; __strtof_internal+3258j .text:00044F4C ADD R3, R2, #1 .text:00044F50 LDR R12, [R11,#var_D0] .text:00044F54 CMP R3, R2 .text:00044F58 STR R3, [R12] .text:00044F5C LDR LR, [R11,#var_D0] .text:00044F60 LDR R3, [LR] .text:00044F64 TST R3, #0x1000000 .text:00044F68 BEQ loc_44F98 .text:00044F6C .text:00044F6C loc_44F6C ; CODE XREF: __strtof_internal+FECj .text:00044F6C MOV R0, LR .text:00044F70 MOV R1, R0 .text:00044F74 MOV R2, #1 .text:00044F78 MOV R3, R2 .text:00044F7C BL __mpn_rshift .text:00044F80 LDR R0, [R11,#var_D0] .text:00044F84 LDR R3, [R0] .text:00044F88 ADD R4, R4, #1 .text:00044F8C ORR R3, R3, #0x800000 .text:00044F90 STR R3, [R0] .text:00044F94 B loc_44FA8 .text:00044F98 ; --------------------------------------------------------------------------- .text:00044F98 .text:00044F98 loc_44F98 ; CODE XREF: __strtof_internal+FF0j .text:00044F98 ; __strtof_internal+328Cj .text:00044F98 CMN R4, #0x7F .text:00044F9C BNE loc_44FA8 .text:00044FA0 TST R3, #0x800000 .text:00044FA4 MOVNE R4, 0xFFFFFF82 .text:00044FA8 .text:00044FA8 loc_44FA8 ; CODE XREF: __strtof_internal+FA4j .text:00044FA8 ; __strtof_internal+FCCj ... .text:00044FA8 CMP R4, #0x80 .text:00044FAC BLE loc_44FD8 .text:00044FB0 .text:00044FB0 loc_44FB0 ; CODE XREF: __strtof_internal+2ACCj .text:00044FB0 LDR R1, [R11,#var_84] .text:00044FB4 CMP R1, #0 .text:00044FB8 .text:00044FB8 loc_44FB8 ; CODE XREF: __strtof_internal+1258j .text:00044FB8 ; __strtof_internal+1D2Cj .text:00044FB8 LDR R3, =0x7F800000 .text:00044FBC LDRNE R3, =0xFF800000 .text:00044FC0 MOV R2, R3 .text:00044FC4 B loc_44FF0 .text:00044FC4 ; --------------------------------------------------------------------------- .text:00044FC8 off_44FC8 DCD __clz_tab_1 ; DATA XREF: __strtof_internal:loc_44C78r .text:00044FCC dword_44FCC DCD 0 ; DATA XREF: __strtof_internal+30ECr .text:00044FD0 dword_44FD0 DCD 0x7F800000 ; DATA XREF: __strtof_internal:loc_44FB8r .text:00044FD4 dword_44FD4 DCD 0xFF800000 ; DATA XREF: __strtof_internal+32E0r .text:00044FD8 ; --------------------------------------------------------------------------- .text:00044FD8 .text:00044FD8 loc_44FD8 ; CODE XREF: __strtof_internal+124Cj .text:00044FD8 ; __strtof_internal+1D20j ... .text:00044FD8 LDR R0, [R11,#var_D0] .text:00044FDC LDR R2, [R11,#var_84] .text:00044FE0 MOV R1, R4 .text:00044FE4 .text:00044FE4 loc_44FE4 ; CODE XREF: __strtof_internal+2ADCj .text:00044FE4 BL __mpn_construct_float .text:00044FE8 STC p1, c0, [SP,#0xEC+var_F0]! .text:00044FEC LDR R2, [SP+0xF0+var_F0],#4 .text:00044FF0 .text:00044FF0 loc_44FF0 ; CODE XREF: __strtof_internal+30F0j .text:00044FF0 ; __strtof_internal+32E8j .text:00044FF0 STR R2, [SP,#0xEC+var_F0]! .text:00044FF4 LDC p1, c0, [SP+0xF0+var_F0],#4 .text:00044FF8 .text:00044FF8 locret_44FF8 ; CODE XREF: __strtof_internal+2D8j .text:00044FF8 ; __strtof_internal+7A4j ... .text:00044FF8 LDMDB R11, {R4-R11,SP,PC} .text:00044FF8 ; End of function __strtof_internal .text:00044FF8 .text:00044FFC .text:00044FFC ; =============== S U B R O U T I N E ======================================= .text:00044FFC .text:00044FFC ; Attributes: bp-based frame .text:00044FFC .text:00044FFC WEAK strtof .text:00044FFC strtof .text:00044FFC MOV R12, SP .text:00045000 STMFD SP!, {R11,R12,LR,PC} .text:00045004 SUB R11, R12, #4 .text:00045008 MOV R2, #0 .text:0004500C BL __strtof_internal .text:00045010 LDMDB R11, {R11,SP,PC} .text:00045010 ; End of function strtof .text:00045010 .text:00045014 .text:00045014 ; =============== S U B R O U T I N E ======================================= .text:00045014 .text:00045014 ; Attributes: bp-based frame .text:00045014 .text:00045014 EXPORT __strtod_internal .text:00045014 __strtod_internal ; CODE XREF: _IO_vfscanf+3FA4p .text:00045014 ; strtod+10p ... .text:00045014 .text:00045014 var_1FC = -0x1FC .text:00045014 var_1F4 = -0x1F4 .text:00045014 var_1F0 = -0x1F0 .text:00045014 var_1EC = -0x1EC .text:00045014 var_1E8 = -0x1E8 .text:00045014 var_1E4 = -0x1E4 .text:00045014 var_1E0 = -0x1E0 .text:00045014 var_1DC = -0x1DC .text:00045014 var_1D8 = -0x1D8 .text:00045014 var_1D4 = -0x1D4 .text:00045014 var_1D0 = -0x1D0 .text:00045014 var_1CC = -0x1CC .text:00045014 var_1C8 = -0x1C8 .text:00045014 var_1C4 = -0x1C4 .text:00045014 var_1C0 = -0x1C0 .text:00045014 var_1BC = -0x1BC .text:00045014 var_1B8 = -0x1B8 .text:00045014 var_1B4 = -0x1B4 .text:00045014 var_1B0 = -0x1B0 .text:00045014 var_1AC = -0x1AC .text:00045014 var_1A0 = -0x1A0 .text:00045014 var_19C = -0x19C .text:00045014 var_198 = -0x198 .text:00045014 var_194 = -0x194 .text:00045014 var_190 = -0x190 .text:00045014 var_18C = -0x18C .text:00045014 var_188 = -0x188 .text:00045014 var_184 = -0x184 .text:00045014 var_180 = -0x180 .text:00045014 var_17C = -0x17C .text:00045014 var_178 = -0x178 .text:00045014 var_174 = -0x174 .text:00045014 var_170 = -0x170 .text:00045014 var_16C = -0x16C .text:00045014 var_168 = -0x168 .text:00045014 var_164 = -0x164 .text:00045014 var_15C = -0x15C .text:00045014 var_158 = -0x158 .text:00045014 var_154 = -0x154 .text:00045014 var_C0 = -0xC0 .text:00045014 var_BC = -0xBC .text:00045014 .text:00045014 MOV R12, SP .text:00045018 STMFD SP!, {R4-R12,LR,PC} .text:0004501C SUB R11, R12, #4 .text:00045020 MOV R3, #0xA .text:00045024 SUB SP, SP, #0x1CC .text:00045028 STR R3, [R11,#var_17C] .text:0004502C MOV R4, #0 .text:00045030 STR R4, [R11,#var_19C] .text:00045034 STR R0, [R11,#var_170] .text:00045038 CMP R2, R4 .text:0004503C STR R1, [R11,#var_174] .text:00045040 BEQ loc_45084 .text:00045044 LDR R2, =_nl_current_LC_NUMERIC .text:00045048 LDR R1, [R2] .text:0004504C LDR R12, [R1,#0x28] .text:00045050 STR R12, [R11,#var_1A0] .text:00045054 LDRB R3, [R12] .text:00045058 CMP R3, #0xFF .text:0004505C CMPNE R3, R4 .text:00045060 STREQ R4, [R11,#var_1A0] .text:00045064 BEQ loc_45090 .text:00045068 LDR R1, [R1,#0x24] .text:0004506C STR R1, [R11,#var_19C] .text:00045070 LDRB R3, [R1] .text:00045074 CMP R3, #0 .text:00045078 STREQ R3, [R11,#var_19C] .text:0004507C STREQ R3, [R11,#var_1A0] .text:00045080 B loc_45090 .text:00045084 ; --------------------------------------------------------------------------- .text:00045084 .text:00045084 loc_45084 ; CODE XREF: __strtod_internal+2Cj .text:00045084 LDR LR, [R11,#var_19C] .text:00045088 LDR R2, =_nl_current_LC_NUMERIC .text:0004508C STR LR, [R11,#var_1A0] .text:00045090 .text:00045090 loc_45090 ; CODE XREF: __strtod_internal+50j .text:00045090 ; __strtod_internal+6Cj .text:00045090 LDR R3, [R2] .text:00045094 LDR R3, [R3,#0x20] .text:00045098 STR R3, [R11,#var_194] .text:0004509C MOV R0, R3 .text:000450A0 BL strlen .text:000450A4 MOV R3, #0 .text:000450A8 STR R3, [R11,#var_16C] .text:000450AC STR R0, [R11,#var_198] .text:000450B0 LDR R1, [R11,#var_170] .text:000450B4 STR R3, [R11,#var_178] .text:000450B8 SUB R1, R1, #1 .text:000450BC STR R1, [R11,#var_188] .text:000450C0 STR R3, [R11,#var_184] .text:000450C4 LDR R2, =__ctype_b .text:000450C8 LDR R1, [R2] .text:000450CC .text:000450CC loc_450CC ; CODE XREF: __strtod_internal+D4j .text:000450CC LDR R3, [R11,#var_188] .text:000450D0 LDRB R6, [R3,#1]! .text:000450D4 STR R3, [R11,#var_188] .text:000450D8 MOV R3, R6,LSL#1 .text:000450DC ADD R3, R3, R1 .text:000450E0 LDRB R2, [R3,#1] .text:000450E4 TST R2, #0x20 .text:000450E8 BNE loc_450CC .text:000450EC CMP R6, #0x2D .text:000450F0 BNE loc_4510C .text:000450F4 MOV R4, #1 .text:000450F8 STR R4, [R11,#var_178] .text:000450FC LDR R12, [R11,#var_188] .text:00045100 LDRB R6, [R12,#1]! .text:00045104 STR R12, [R11,#var_188] .text:00045108 B loc_4511C .text:0004510C ; --------------------------------------------------------------------------- .text:0004510C .text:0004510C loc_4510C ; CODE XREF: __strtod_internal+DCj .text:0004510C CMP R6, #0x2B .text:00045110 LDREQ LR, [R11,#var_188] .text:00045114 LDREQB R6, [LR,#1]! .text:00045118 STREQ LR, [R11,#var_188] .text:0004511C .text:0004511C loc_4511C ; CODE XREF: __strtod_internal+F4j .text:0004511C LDR R0, [R11,#var_194] .text:00045120 LDRB R2, [R0] .text:00045124 MOV R4, #0 .text:00045128 CMP R2, R4 .text:0004512C BEQ loc_45164 .text:00045130 LDR R1, [R11,#var_188] .text:00045134 LDRB R3, [R1] .text:00045138 CMP R3, R2 .text:0004513C BNE loc_45164 .text:00045140 .text:00045140 loc_45140 ; CODE XREF: __strtod_internal+14Cj .text:00045140 LDR R3, [R11,#var_194] .text:00045144 ADD R4, R4, #1 .text:00045148 LDRB R2, [R3,R4] .text:0004514C CMP R2, #0 .text:00045150 BEQ loc_45164 .text:00045154 LDR R12, [R11,#var_188] .text:00045158 LDRB R3, [R12,R4] .text:0004515C CMP R3, R2 .text:00045160 BEQ loc_45140 .text:00045164 .text:00045164 loc_45164 ; CODE XREF: __strtod_internal+118j .text:00045164 ; __strtod_internal+128j ... .text:00045164 LDR LR, [R11,#var_194] .text:00045168 LDRB R3, [LR,R4] .text:0004516C CMP R3, #0 .text:00045170 BNE loc_4518C .text:00045174 LDR R0, [R11,#var_188] .text:00045178 LDRB R3, [R0,#1] .text:0004517C CMP R3, #0x2F .text:00045180 BLS loc_4518C .text:00045184 CMP R3, #0x39 .text:00045188 BLS loc_453C8 .text:0004518C .text:0004518C loc_4518C ; CODE XREF: __strtod_internal+15Cj .text:0004518C ; __strtod_internal+16Cj .text:0004518C SUB R3, R6, #0x30 .text:00045190 CMP R3, #9 .text:00045194 BLS loc_453C8 .text:00045198 LDR R3, =__ctype_tolower .text:0004519C LDR R2, [R3] .text:000451A0 LDR R1, [R2,R6,LSL#2] .text:000451A4 MOV R5, R3 .text:000451A8 CMP R1, #0x69 .text:000451AC BNE loc_45224 .text:000451B0 LDR R0, [R11,#var_188] .text:000451B4 LDR R1, =dword_616D4 .text:000451B8 MOV R2, #3 .text:000451BC BL strncasecmp .text:000451C0 CMP R0, #0 .text:000451C4 MOV R0, #3 .text:000451C8 BEQ loc_451E8 .text:000451CC LDR R0, [R11,#var_188] .text:000451D0 LDR R1, =aInfinity_0 ; "infinity" .text:000451D4 MOV R2, #8 .text:000451D8 BL strncasecmp .text:000451DC CMP R0, #0 .text:000451E0 BNE loc_45224 .text:000451E4 MOV R0, #8 .text:000451E8 .text:000451E8 loc_451E8 ; CODE XREF: __strtod_internal+1B4j .text:000451E8 LDR R1, [R11,#var_174] .text:000451EC CMP R1, #0 .text:000451F0 LDRNE R2, [R11,#var_188] .text:000451F4 ADDNE R3, R2, R0 .text:000451F8 STRNE R3, [R1] .text:000451FC LDR R3, [R11,#var_178] .text:00045200 CMP R3, #0 .text:00045204 BEQ loc_45218 .text:00045208 LDR R3, =dword_616E4 .text:0004520C .text:0004520C loc_4520C ; CODE XREF: __strtod_internal+14D0j .text:0004520C ; __strtod_internal+1914j .text:0004520C LDC p1, c8, [R3] .text:00045210 CDP p1, 1, c8,c0,c0, 4 .text:00045214 B locret_48AAC .text:00045218 ; --------------------------------------------------------------------------- .text:00045218 .text:00045218 loc_45218 ; CODE XREF: __strtod_internal+1F0j .text:00045218 LDR R3, =dword_616EC .text:0004521C LDC p1, c8, [R3] .text:00045220 B locret_48AAC .text:00045224 ; --------------------------------------------------------------------------- .text:00045224 .text:00045224 loc_45224 ; CODE XREF: __strtod_internal+198j .text:00045224 ; __strtod_internal+1CCj .text:00045224 LDR R3, [R5] .text:00045228 LDR R2, [R3,R6,LSL#2] .text:0004522C CMP R2, #0x6E .text:00045230 BNE loc_4537C .text:00045234 LDR R0, [R11,#var_188] .text:00045238 LDR R1, =dword_616F4 .text:0004523C MOV R2, #3 .text:00045240 BL strncasecmp .text:00045244 CMP R0, #0 .text:00045248 BNE loc_4537C .text:0004524C LDR R4, [R11,#var_188] .text:00045250 LDRB R3, [R4,#3]! .text:00045254 ADR R9, dword_453B0 .text:00045258 LDMIA R9, {R9,R10} .text:0004525C CMP R3, #0x28 .text:00045260 STR R4, [R11,#var_188] .text:00045264 BNE loc_45360 .text:00045268 MOV R0, R4 .text:0004526C MOV R1, R5 .text:00045270 .text:00045270 loc_45270 ; CODE XREF: __strtod_internal+270j .text:00045270 ; __strtod_internal+28Cj ... .text:00045270 LDR R12, [R11,#var_188] .text:00045274 LDRB R3, [R12,#1]! .text:00045278 SUB R3, R3, #0x30 .text:0004527C CMP R3, #9 .text:00045280 STR R12, [R11,#var_188] .text:00045284 BLS loc_45270 .text:00045288 LDRB R2, [R12] .text:0004528C LDR R3, [R1] .text:00045290 LDR R3, [R3,R2,LSL#2] .text:00045294 CMP R3, #0x60 .text:00045298 BLE loc_452A4 .text:0004529C CMP R3, #0x7A .text:000452A0 BLE loc_45270 .text:000452A4 .text:000452A4 loc_452A4 ; CODE XREF: __strtod_internal+284j .text:000452A4 AND R3, R2, #0xFF .text:000452A8 CMP R3, #0x5F .text:000452AC BEQ loc_45270 .text:000452B0 CMP R3, #0x29 .text:000452B4 STRNE R0, [R11,#var_188] .text:000452B8 BNE loc_45360 .text:000452BC ADD R0, R0, #1 .text:000452C0 SUB R1, R11, #-var_15C .text:000452C4 MOV R2, #0 .text:000452C8 MOV R3, R2 .text:000452CC BL __strtoull_internal .text:000452D0 LDR R3, [R11,#var_15C] .text:000452D4 LDR LR, [R11,#var_188] .text:000452D8 SUB R2, R11, #-var_1A0 .text:000452DC STMDB R2, {R0,R1} .text:000452E0 CMP R3, LR .text:000452E4 BNE loc_45360 .text:000452E8 ADR R9, dword_453B0 .text:000452EC LDMIA R9, {R9,R10} .text:000452F0 ADR R1, dword_453B8 .text:000452F4 LDMIA R1, {R1,R2} .text:000452F8 SUB R4, R11, #-var_1A0 .text:000452FC LDMDB R4, {R3,R4} .text:00045300 SUB R12, R11, #-var_1A0 .text:00045304 ADR R7, dword_453C0 .text:00045308 LDMIA R7, {R7,R8} .text:0004530C AND R1, R1, R3 .text:00045310 AND R2, R2, R4 .text:00045314 ORRS R1, R1, R2 .text:00045318 MOVEQ R3, #0 .text:0004531C MOVNE R3, #1 .text:00045320 MOV R4, #0 .text:00045324 RSBS R1, R3, #0 .text:00045328 RSC R2, R4, #0 .text:0004532C LDMDB R12, {R3,R4} .text:00045330 BIC R7, R7, R1 .text:00045334 BIC R8, R8, R2 .text:00045338 AND R3, R3, R1 .text:0004533C AND R4, R4, R2 .text:00045340 ORR R3, R3, R7 .text:00045344 ORR R4, R4, R8 .text:00045348 MOV R5, R4 .text:0004534C MOV R5, R5,LSL#12 .text:00045350 ORR R5, R5, R9,LSR#20 .text:00045354 MOV R5, R5,ROR#12 .text:00045358 MOV R9, R5 .text:0004535C MOV R10, R3 .text:00045360 .text:00045360 loc_45360 ; CODE XREF: __strtod_internal+250j .text:00045360 ; __strtod_internal+2A4j ... .text:00045360 LDR LR, [R11,#var_174] .text:00045364 CMP LR, #0 .text:00045368 LDRNE R0, [R11,#var_188] .text:0004536C STRNE R0, [LR] .text:00045370 STMFD SP!, {R9,R10} .text:00045374 LDC p1, c8, [SP+0x1FC+var_1FC],#8 .text:00045378 B locret_48AAC .text:0004537C ; --------------------------------------------------------------------------- .text:0004537C .text:0004537C loc_4537C ; CODE XREF: __strtod_internal+21Cj .text:0004537C ; __strtod_internal+234j .text:0004537C LDR R1, [R11,#var_174] .text:00045380 CMP R1, #0 .text:00045384 LDRNE R2, [R11,#var_170] .text:00045388 STRNE R2, [R1] .text:0004538C B loc_45890 .text:0004538C ; --------------------------------------------------------------------------- .text:00045390 off_45390 DCD _nl_current_LC_NUMERIC ; DATA XREF: __strtod_internal+30r .text:00045390 ; __strtod_internal+74r .text:00045394 off_45394 DCD __ctype_b ; DATA XREF: __strtod_internal+B0r .text:00045398 off_45398 DCD __ctype_tolower ; DATA XREF: __strtod_internal+184r .text:0004539C off_4539C DCD dword_616D4 ; DATA XREF: __strtod_internal+1A0r .text:000453A0 off_453A0 DCD aInfinity_0 ; DATA XREF: __strtod_internal+1BCr .text:000453A0 ; "infinity" .text:000453A4 off_453A4 DCD dword_616E4 ; DATA XREF: __strtod_internal+1F4r .text:000453A8 off_453A8 DCD dword_616EC ; DATA XREF: __strtod_internal:loc_45218r .text:000453AC off_453AC DCD dword_616F4 ; DATA XREF: __strtod_internal+224r .text:000453B0 dword_453B0 DCD 0x7FFFFFFF, 0xFFFFFFFF .text:000453B0 ; DATA XREF: __strtod_internal+240o .text:000453B0 ; __strtod_internal+2D4o .text:000453B8 dword_453B8 DCD 0xFFFFFFFF, 0xFFFFF ; DATA XREF: __strtod_internal+2DCo .text:000453C0 dword_453C0 DCD 0 ; DATA XREF: __strtod_internal+2F0o .text:000453C4 DCD 0x80000 .text:000453C8 ; --------------------------------------------------------------------------- .text:000453C8 .text:000453C8 loc_453C8 ; CODE XREF: __strtod_internal+174j .text:000453C8 ; __strtod_internal+180j .text:000453C8 CMP R6, #0x30 .text:000453CC BNE loc_45408 .text:000453D0 LDR R3, [R11,#var_188] .text:000453D4 LDR R1, =__ctype_tolower .text:000453D8 LDRB R0, [R3,#1] .text:000453DC LDR R3, [R1] .text:000453E0 LDR R2, [R3,R0,LSL#2] .text:000453E4 CMP R2, #0x78 .text:000453E8 BNE loc_45408 .text:000453EC MOV R4, #0x10 .text:000453F0 STR R4, [R11,#var_17C] .text:000453F4 MOV R12, #0 .text:000453F8 STR R12, [R11,#var_1A0] .text:000453FC LDR LR, [R11,#var_188] .text:00045400 LDRB R6, [LR,#2]! .text:00045404 STR LR, [R11,#var_188] .text:00045408 .text:00045408 loc_45408 ; CODE XREF: __strtod_internal+3B8j .text:00045408 ; __strtod_internal+3D4j .text:00045408 LDR R0, [R11,#var_19C] .text:0004540C LDR R9, [R11,#var_188] .text:00045410 CMP R0, #0 .text:00045414 MOV R7, R9 .text:00045418 BNE loc_4543C .text:0004541C CMP R6, #0x30 .text:00045420 BNE loc_45494 .text:00045424 .text:00045424 loc_45424 ; CODE XREF: __strtod_internal+420j .text:00045424 LDR R1, [R11,#var_188] .text:00045428 LDRB R6, [R1,#1]! .text:0004542C CMP R6, #0x30 .text:00045430 STR R1, [R11,#var_188] .text:00045434 BEQ loc_45424 .text:00045438 B loc_45494 .text:0004543C ; --------------------------------------------------------------------------- .text:0004543C .text:0004543C loc_4543C ; CODE XREF: __strtod_internal+404j .text:0004543C ; __strtod_internal+47Cj .text:0004543C CMP R6, #0x30 .text:00045440 BEQ loc_45484 .text:00045444 LDR R2, [R11,#var_19C] .text:00045448 LDRB R3, [R2] .text:0004544C MOV R4, #0 .text:00045450 CMP R3, R4 .text:00045454 B loc_45468 .text:00045458 ; --------------------------------------------------------------------------- .text:00045458 .text:00045458 loc_45458 ; CODE XREF: __strtod_internal+45Cj .text:00045458 LDR R12, [R11,#var_19C] .text:0004545C ADD R4, R4, #1 .text:00045460 LDRB R3, [R12,R4] .text:00045464 CMP R3, #0 .text:00045468 .text:00045468 loc_45468 ; CODE XREF: __strtod_internal+440j .text:00045468 BEQ loc_45474 .text:0004546C CMP R6, R3 .text:00045470 BEQ loc_45458 .text:00045474 .text:00045474 loc_45474 ; CODE XREF: __strtod_internal:loc_45468j .text:00045474 LDR LR, [R11,#var_19C] .text:00045478 LDRB R3, [LR,R4] .text:0004547C CMP R3, #0 .text:00045480 BNE loc_45494 .text:00045484 .text:00045484 loc_45484 ; CODE XREF: __strtod_internal+42Cj .text:00045484 LDR R0, [R11,#var_188] .text:00045488 LDRB R6, [R0,#1]! .text:0004548C STR R0, [R11,#var_188] .text:00045490 B loc_4543C .text:00045494 ; --------------------------------------------------------------------------- .text:00045494 .text:00045494 loc_45494 ; CODE XREF: __strtod_internal+40Cj .text:00045494 ; __strtod_internal+424j ... .text:00045494 SUB R3, R6, #0x30 .text:00045498 CMP R3, #9 .text:0004549C BLS loc_4554C .text:000454A0 LDR R1, [R11,#var_17C] .text:000454A4 CMP R1, #0x10 .text:000454A8 BNE loc_4554C .text:000454AC LDR R3, =__ctype_tolower .text:000454B0 LDR R1, [R3] .text:000454B4 LDR R2, [R1,#0x184] .text:000454B8 MOV R5, R3 .text:000454BC CMP R6, R2 .text:000454C0 BLT loc_454D0 .text:000454C4 LDR R3, [R1,#0x198] .text:000454C8 CMP R6, R3 .text:000454CC BLE loc_4554C .text:000454D0 .text:000454D0 loc_454D0 ; CODE XREF: __strtod_internal+4ACj .text:000454D0 LDR R3, [R11,#var_194] .text:000454D4 LDRB R2, [R3] .text:000454D8 MOV R4, #0 .text:000454DC CMP R2, R4 .text:000454E0 BEQ loc_45518 .text:000454E4 LDR R12, [R11,#var_188] .text:000454E8 LDRB R3, [R12] .text:000454EC CMP R2, R3 .text:000454F0 BNE loc_45518 .text:000454F4 .text:000454F4 loc_454F4 ; CODE XREF: __strtod_internal+500j .text:000454F4 LDR LR, [R11,#var_194] .text:000454F8 ADD R4, R4, #1 .text:000454FC LDRB R2, [LR,R4] .text:00045500 CMP R2, #0 .text:00045504 BEQ loc_45518 .text:00045508 LDR R0, [R11,#var_188] .text:0004550C LDRB R3, [R0,R4] .text:00045510 CMP R2, R3 .text:00045514 BEQ loc_454F4 .text:00045518 .text:00045518 loc_45518 ; CODE XREF: __strtod_internal+4CCj .text:00045518 ; __strtod_internal+4DCj ... .text:00045518 LDR R1, [R11,#var_194] .text:0004551C LDRB R3, [R1,R4] .text:00045520 CMP R3, #0 .text:00045524 BEQ loc_4554C .text:00045528 LDR R2, [R11,#var_17C] .text:0004552C CMP R2, #0x10 .text:00045530 BNE loc_4554C .text:00045534 LDR R3, [R11,#var_188] .text:00045538 CMP R3, R9 .text:0004553C BEQ loc_4554C .text:00045540 LDR R3, [R5] .text:00045544 LDR R2, [R3,R6,LSL#2] .text:00045548 CMP R2, #0x70 .text:0004554C .text:0004554C loc_4554C ; CODE XREF: __strtod_internal+488j .text:0004554C ; __strtod_internal+494j ... .text:0004554C MOV R4, #0 .text:00045550 STR R4, [R11,#var_18C] .text:00045554 LDR R9, [R11,#var_188] .text:00045558 LDR R1, =__ctype_tolower .text:0004555C .text:0004555C loc_4555C ; CODE XREF: __strtod_internal+5F4j .text:0004555C SUB R3, R6, #0x30 .text:00045560 CMP R3, #9 .text:00045564 BLS loc_4558C .text:00045568 LDR R12, [R11,#var_17C] .text:0004556C CMP R12, #0x10 .text:00045570 BNE loc_4559C .text:00045574 LDR R3, [R1] .text:00045578 LDR R3, [R3,R6,LSL#2] .text:0004557C CMP R3, #0x60 .text:00045580 BLE loc_4559C .text:00045584 CMP R3, #0x66 .text:00045588 BGT loc_4559C .text:0004558C .text:0004558C loc_4558C ; CODE XREF: __strtod_internal+550j .text:0004558C LDR LR, [R11,#var_18C] .text:00045590 ADD LR, LR, #1 .text:00045594 STR LR, [R11,#var_18C] .text:00045598 B loc_455FC .text:0004559C ; --------------------------------------------------------------------------- .text:0004559C .text:0004559C loc_4559C ; CODE XREF: __strtod_internal+55Cj .text:0004559C ; __strtod_internal+56Cj ... .text:0004559C LDR R0, [R11,#var_19C] .text:000455A0 CMP R0, #0 .text:000455A4 BEQ loc_4560C .text:000455A8 LDRB R2, [R0] .text:000455AC MOV R4, #0 .text:000455B0 CMP R2, R4 .text:000455B4 BEQ loc_455EC .text:000455B8 LDR R12, [R11,#var_188] .text:000455BC LDRB R3, [R12] .text:000455C0 CMP R2, R3 .text:000455C4 BNE loc_455EC .text:000455C8 .text:000455C8 loc_455C8 ; CODE XREF: __strtod_internal+5D4j .text:000455C8 LDR LR, [R11,#var_19C] .text:000455CC ADD R4, R4, #1 .text:000455D0 LDRB R2, [LR,R4] .text:000455D4 CMP R2, #0 .text:000455D8 BEQ loc_455EC .text:000455DC LDR R0, [R11,#var_188] .text:000455E0 LDRB R3, [R0,R4] .text:000455E4 CMP R2, R3 .text:000455E8 BEQ loc_455C8 .text:000455EC .text:000455EC loc_455EC ; CODE XREF: __strtod_internal+5A0j .text:000455EC ; __strtod_internal+5B0j ... .text:000455EC LDR R2, [R11,#var_19C] .text:000455F0 LDRB R3, [R2,R4] .text:000455F4 CMP R3, #0 .text:000455F8 BNE loc_4560C .text:000455FC .text:000455FC loc_455FC ; CODE XREF: __strtod_internal+584j .text:000455FC LDR R3, [R11,#var_188] .text:00045600 LDRB R6, [R3,#1]! .text:00045604 STR R3, [R11,#var_188] .text:00045608 B loc_4555C .text:0004560C ; --------------------------------------------------------------------------- .text:0004560C .text:0004560C loc_4560C ; CODE XREF: __strtod_internal+590j .text:0004560C ; __strtod_internal+5E4j .text:0004560C LDR R4, [R11,#var_1A0] .text:00045610 LDR R12, [R11,#var_18C] .text:00045614 CMP R4, #0 .text:00045618 CMPNE R12, #0 .text:0004561C BLE loc_458E8 .text:00045620 CMP R4, #0 .text:00045624 LDR R8, [R11,#var_188] .text:00045628 BNE loc_45634 .text:0004562C .text:0004562C loc_4562C ; CODE XREF: __strtod_internal+6C8j .text:0004562C ; __strtod_internal+778j ... .text:0004562C MOV R2, R8 .text:00045630 B loc_45854 .text:00045634 ; --------------------------------------------------------------------------- .text:00045634 .text:00045634 loc_45634 ; CODE XREF: __strtod_internal+614j .text:00045634 LDR R0, [R11,#var_19C] .text:00045638 BL strlen .text:0004563C LDR LR, [R11,#var_188] .text:00045640 CMP LR, R7 .text:00045644 BLS loc_45848 .text:00045648 .text:00045648 loc_45648 ; CODE XREF: __strtod_internal+830j .text:00045648 SUB R12, R8, #1 .text:0004564C CMP R12, R7 .text:00045650 LDR R4, [R11,#var_1A0] .text:00045654 BCC loc_456D8 .text:00045658 LDR R1, [R11,#var_19C] .text:0004565C SUB R10, R0, #2 .text:00045660 LDRB R5, [R1] .text:00045664 .text:00045664 loc_45664 ; CODE XREF: __strtod_internal+6C0j .text:00045664 ADD R3, R0, R12 .text:00045668 LDRB R2, [R3,#-1] .text:0004566C CMP R2, R5 .text:00045670 BNE loc_456CC .text:00045674 LDR R3, [R11,#var_19C] .text:00045678 MOV LR, #1 .text:0004567C LDRB R2, [R3,LR] .text:00045680 CMP R2, #0 .text:00045684 BEQ loc_456BC .text:00045688 LDRB R3, [R12,R10] .text:0004568C CMP R2, R3 .text:00045690 BNE loc_456BC .text:00045694 SUB R1, R0, #2 .text:00045698 .text:00045698 loc_45698 ; CODE XREF: __strtod_internal+6A4j .text:00045698 LDR R3, [R11,#var_19C] .text:0004569C ADD LR, LR, #1 .text:000456A0 LDRB R2, [R3,LR] .text:000456A4 SUB R1, R1, #1 .text:000456A8 CMP R2, #0 .text:000456AC BEQ loc_456BC .text:000456B0 LDRB R3, [R12,R1] .text:000456B4 CMP R2, R3 .text:000456B8 BEQ loc_45698 .text:000456BC .text:000456BC loc_456BC ; CODE XREF: __strtod_internal+670j .text:000456BC ; __strtod_internal+67Cj ... .text:000456BC LDR R1, [R11,#var_19C] .text:000456C0 LDRB R3, [R1,LR] .text:000456C4 CMP R3, #0 .text:000456C8 BEQ loc_456D8 .text:000456CC .text:000456CC loc_456CC ; CODE XREF: __strtod_internal+65Cj .text:000456CC SUB R12, R12, #1 .text:000456D0 CMP R12, R7 .text:000456D4 BCS loc_45664 .text:000456D8 .text:000456D8 loc_456D8 ; CODE XREF: __strtod_internal+640j .text:000456D8 ; __strtod_internal+6B4j .text:000456D8 CMP R12, R7 .text:000456DC BCC loc_4562C .text:000456E0 LDR R2, [R11,#var_1A0] .text:000456E4 LDRB R1, [R2] .text:000456E8 RSB R2, R12, R8 .text:000456EC ADD R3, R1, #1 .text:000456F0 CMP R2, R3 .text:000456F4 BNE loc_45834 .text:000456F8 SUB R10, R12, #1 .text:000456FC .text:000456FC loc_456FC ; CODE XREF: __strtod_internal+774j .text:000456FC ; __strtod_internal+814j .text:000456FC ADD R4, R4, #1 .text:00045700 MOV R3, R4 .text:00045704 LDRB R2, [R3],#-1 .text:00045708 CMP R2, #0 .text:0004570C MOVEQ R4, R3 .text:00045710 LDRB R1, [R4] .text:00045714 SUB R12, R12, #1 .text:00045718 CMP R1, #0xFF .text:0004571C BNE loc_45790 .text:00045720 CMP R12, R7 .text:00045724 BCC loc_45784 .text:00045728 .text:00045728 loc_45728 ; CODE XREF: __strtod_internal+76Cj .text:00045728 LDR R3, [R11,#var_19C] .text:0004572C LDRB R1, [R3] .text:00045730 MOV LR, #0 .text:00045734 CMP R1, LR .text:00045738 BEQ loc_45768 .text:0004573C ADD R2, R0, R12 .text:00045740 B loc_4575C .text:00045744 ; --------------------------------------------------------------------------- .text:00045744 .text:00045744 loc_45744 ; CODE XREF: __strtod_internal+750j .text:00045744 LDR R3, [R11,#var_19C] .text:00045748 ADD LR, LR, #1 .text:0004574C LDRB R1, [R3,LR] .text:00045750 SUB R2, R2, #1 .text:00045754 CMP R1, #0 .text:00045758 BEQ loc_45768 .text:0004575C .text:0004575C loc_4575C ; CODE XREF: __strtod_internal+72Cj .text:0004575C LDRB R3, [R2,#-1] .text:00045760 CMP R1, R3 .text:00045764 BEQ loc_45744 .text:00045768 .text:00045768 loc_45768 ; CODE XREF: __strtod_internal+724j .text:00045768 ; __strtod_internal+744j .text:00045768 LDR R1, [R11,#var_19C] .text:0004576C LDRB R3, [R1,LR] .text:00045770 CMP R3, #0 .text:00045774 BEQ loc_45784 .text:00045778 SUB R12, R12, #1 .text:0004577C CMP R12, R7 .text:00045780 BCS loc_45728 .text:00045784 .text:00045784 loc_45784 ; CODE XREF: __strtod_internal+710j .text:00045784 ; __strtod_internal+760j .text:00045784 CMP R12, R7 .text:00045788 BCS loc_456FC .text:0004578C B loc_4562C .text:00045790 ; --------------------------------------------------------------------------- .text:00045790 .text:00045790 loc_45790 ; CODE XREF: __strtod_internal+708j .text:00045790 CMP R12, R7 .text:00045794 MOV R5, R12 .text:00045798 BCC loc_457FC .text:0004579C .text:0004579C loc_4579C ; CODE XREF: __strtod_internal+7E4j .text:0004579C LDR R2, [R11,#var_19C] .text:000457A0 LDRB R1, [R2] .text:000457A4 MOV LR, #0 .text:000457A8 CMP R1, LR .text:000457AC BEQ loc_457E0 .text:000457B0 ADD R2, R0, R12 .text:000457B4 B loc_457D4 .text:000457B4 ; --------------------------------------------------------------------------- .text:000457B8 off_457B8 DCD __ctype_tolower ; DATA XREF: __strtod_internal+3C0r .text:000457B8 ; __strtod_internal+498r ... .text:000457BC ; --------------------------------------------------------------------------- .text:000457BC .text:000457BC loc_457BC ; CODE XREF: __strtod_internal+7C8j .text:000457BC LDR R3, [R11,#var_19C] .text:000457C0 ADD LR, LR, #1 .text:000457C4 LDRB R1, [R3,LR] .text:000457C8 SUB R2, R2, #1 .text:000457CC CMP R1, #0 .text:000457D0 BEQ loc_457E0 .text:000457D4 .text:000457D4 loc_457D4 ; CODE XREF: __strtod_internal+7A0j .text:000457D4 LDRB R3, [R2,#-1] .text:000457D8 CMP R1, R3 .text:000457DC BEQ loc_457BC .text:000457E0 .text:000457E0 loc_457E0 ; CODE XREF: __strtod_internal+798j .text:000457E0 ; __strtod_internal+7BCj .text:000457E0 LDR R1, [R11,#var_19C] .text:000457E4 LDRB R3, [R1,LR] .text:000457E8 CMP R3, #0 .text:000457EC BEQ loc_457FC .text:000457F0 SUB R12, R12, #1 .text:000457F4 CMP R12, R7 .text:000457F8 BCS loc_4579C .text:000457FC .text:000457FC loc_457FC ; CODE XREF: __strtod_internal+784j .text:000457FC ; __strtod_internal+7D8j .text:000457FC CMP R12, R7 .text:00045800 BCS loc_45814 .text:00045804 LDRB R2, [R4] .text:00045808 RSB R3, R12, R5 .text:0004580C CMP R3, R2 .text:00045810 BLE loc_4562C .text:00045814 .text:00045814 loc_45814 ; CODE XREF: __strtod_internal+7ECj .text:00045814 CMP R12, R7 .text:00045818 BCC loc_4582C .text:0004581C LDRB R2, [R4] .text:00045820 RSB R3, R12, R5 .text:00045824 CMP R3, R2 .text:00045828 BEQ loc_456FC .text:0004582C .text:0004582C loc_4582C ; CODE XREF: __strtod_internal+804j .text:0004582C MOV R8, R10 .text:00045830 B loc_45840 .text:00045834 ; --------------------------------------------------------------------------- .text:00045834 .text:00045834 loc_45834 ; CODE XREF: __strtod_internal+6E0j .text:00045834 ADDGT R3, R12, R1 .text:00045838 ADDGT R8, R3, #1 .text:0004583C MOVLE R8, R12 .text:00045840 .text:00045840 loc_45840 ; CODE XREF: __strtod_internal+81Cj .text:00045840 CMP R8, R7 .text:00045844 BHI loc_45648 .text:00045848 .text:00045848 loc_45848 ; CODE XREF: __strtod_internal+630j .text:00045848 CMP R8, R7 .text:0004584C MOVCS R2, R8 .text:00045850 MOVCC R2, R7 .text:00045854 .text:00045854 loc_45854 ; CODE XREF: __strtod_internal+61Cj .text:00045854 LDR R3, [R11,#var_188] .text:00045858 CMP R3, R2 .text:0004585C BEQ loc_458E8 .text:00045860 CMP R2, R7 .text:00045864 BNE loc_4587C .text:00045868 LDR R4, [R11,#var_174] .text:0004586C CMP R4, #0 .text:00045870 LDRNE R12, [R11,#var_170] .text:00045874 STRNE R12, [R4] .text:00045878 B loc_45890 .text:0004587C ; --------------------------------------------------------------------------- .text:0004587C .text:0004587C loc_4587C ; CODE XREF: __strtod_internal+850j .text:0004587C CMP R2, R9 .text:00045880 BCS loc_45898 .text:00045884 LDR LR, [R11,#var_174] .text:00045888 CMP LR, #0 .text:0004588C STRNE R2, [LR] .text:00045890 .text:00045890 loc_45890 ; CODE XREF: __strtod_internal+378j .text:00045890 ; __strtod_internal+864j .text:00045890 CDP p1, 0, c8,c0,c8, 4 .text:00045894 B locret_48AAC .text:00045898 ; --------------------------------------------------------------------------- .text:00045898 .text:00045898 loc_45898 ; CODE XREF: __strtod_internal+86Cj .text:00045898 STR R2, [R11,#var_188] .text:0004589C MOV R0, #0 .text:000458A0 LDR R1, [R11,#var_188] .text:000458A4 MOV R2, R9 .text:000458A8 STR R0, [R11,#var_18C] .text:000458AC CMP R9, R1 .text:000458B0 BCS loc_458D8 .text:000458B4 .text:000458B4 loc_458B4 ; CODE XREF: __strtod_internal+8C0j .text:000458B4 LDRB R3, [R2],#1 .text:000458B8 SUB R4, R11, #-var_18C .text:000458BC LDMIA R4, {R4,R12} .text:000458C0 SUB R3, R3, #0x30 .text:000458C4 CMP R3, #9 .text:000458C8 ADDLS R4, R4, #1 .text:000458CC CMP R2, R12 .text:000458D0 STR R4, [R11,#var_18C] .text:000458D4 BCC loc_458B4 .text:000458D8 .text:000458D8 loc_458D8 ; CODE XREF: __strtod_internal+89Cj .text:000458D8 LDR LR, [R11,#var_18C] .text:000458DC STR LR, [R11,#var_190] .text:000458E0 MOV LR, #0 .text:000458E4 B loc_45C64 .text:000458E8 ; --------------------------------------------------------------------------- .text:000458E8 .text:000458E8 loc_458E8 ; CODE XREF: __strtod_internal+608j .text:000458E8 ; __strtod_internal+848j .text:000458E8 LDR R0, [R11,#var_18C] .text:000458EC STR R0, [R11,#var_190] .text:000458F0 MOV R4, #0 .text:000458F4 LDR R1, [R11,#var_194] .text:000458F8 CMP R0, #0 .text:000458FC LDRB R2, [R1] .text:00045900 MOVNE LR, #0 .text:00045904 MOVEQ LR, 0xFFFFFFFF .text:00045908 CMP R2, R4 .text:0004590C BEQ loc_45944 .text:00045910 LDR R12, [R11,#var_188] .text:00045914 LDRB R3, [R12] .text:00045918 CMP R2, R3 .text:0004591C BNE loc_45944 .text:00045920 .text:00045920 loc_45920 ; CODE XREF: __strtod_internal+92Cj .text:00045920 LDR R0, [R11,#var_194] .text:00045924 ADD R4, R4, #1 .text:00045928 LDRB R2, [R0,R4] .text:0004592C CMP R2, #0 .text:00045930 BEQ loc_45944 .text:00045934 LDR R1, [R11,#var_188] .text:00045938 LDRB R3, [R1,R4] .text:0004593C CMP R2, R3 .text:00045940 BEQ loc_45920 .text:00045944 .text:00045944 loc_45944 ; CODE XREF: __strtod_internal+8F8j .text:00045944 ; __strtod_internal+908j ... .text:00045944 LDR R2, [R11,#var_194] .text:00045948 LDRB R3, [R2,R4] .text:0004594C CMP R3, #0 .text:00045950 BNE loc_459E8 .text:00045954 LDR R3, [R11,#var_188] .text:00045958 LDR R4, [R11,#var_198] .text:0004595C LDRB R6, [R3,R4]! .text:00045960 STR R3, [R11,#var_188] .text:00045964 SUB R3, R6, #0x30 .text:00045968 CMP R3, #9 .text:0004596C BLS loc_45998 .text:00045970 LDR R12, [R11,#var_17C] .text:00045974 CMP R12, #0x10 .text:00045978 BNE loc_459E8 .text:0004597C .text:0004597C loc_4597C ; CODE XREF: __strtod_internal+9D0j .text:0004597C LDR R3, =__ctype_tolower .text:00045980 LDR R2, [R3] .text:00045984 LDR R3, [R2,R6,LSL#2] .text:00045988 CMP R3, #0x60 .text:0004598C BLE loc_459E8 .text:00045990 CMP R3, #0x66 .text:00045994 BGT loc_459E8 .text:00045998 .text:00045998 loc_45998 ; CODE XREF: __strtod_internal+958j .text:00045998 ; __strtod_internal+9C4j .text:00045998 CMN LR, #1 .text:0004599C MOVNE R3, #0 .text:000459A0 MOVEQ R3, #1 .text:000459A4 CMP R6, #0x30 .text:000459A8 LDR R0, [R11,#var_18C] .text:000459AC MOVEQ R3, #0 .text:000459B0 LDR R1, [R11,#var_190] .text:000459B4 CMP R3, #0 .text:000459B8 LDR R2, [R11,#var_188] .text:000459BC SUBNE LR, R0, R1 .text:000459C0 LDRB R6, [R2,#1]! .text:000459C4 ADD R0, R0, #1 .text:000459C8 STR R0, [R11,#var_18C] .text:000459CC SUB R3, R6, #0x30 .text:000459D0 CMP R3, #9 .text:000459D4 STR R2, [R11,#var_188] .text:000459D8 BLS loc_45998 .text:000459DC LDR R3, [R11,#var_17C] .text:000459E0 CMP R3, #0x10 .text:000459E4 BEQ loc_4597C .text:000459E8 .text:000459E8 loc_459E8 ; CODE XREF: __strtod_internal+93Cj .text:000459E8 ; __strtod_internal+964j ... .text:000459E8 LDR R4, [R11,#var_17C] .text:000459EC LDR R0, [R11,#var_188] .text:000459F0 CMP R4, #0x10 .text:000459F4 BNE loc_45A0C .text:000459F8 LDR R3, =__ctype_tolower .text:000459FC LDR R2, [R3] .text:00045A00 LDR R1, [R2,R6,LSL#2] .text:00045A04 CMP R1, #0x70 .text:00045A08 BEQ loc_45A2C .text:00045A0C .text:00045A0C loc_45A0C ; CODE XREF: __strtod_internal+9E0j .text:00045A0C LDR R12, [R11,#var_17C] .text:00045A10 CMP R12, #0x10 .text:00045A14 BEQ loc_45B98 .text:00045A18 LDR R3, =__ctype_tolower .text:00045A1C LDR R2, [R3] .text:00045A20 LDR R1, [R2,R6,LSL#2] .text:00045A24 CMP R1, #0x65 .text:00045A28 BNE loc_45B98 .text:00045A2C .text:00045A2C loc_45A2C ; CODE XREF: __strtod_internal+9F4j .text:00045A2C LDR R1, [R11,#var_188] .text:00045A30 LDRB R6, [R1,#1]! .text:00045A34 MOV R4, #0 .text:00045A38 CMP R6, #0x2D .text:00045A3C STR R1, [R11,#var_188] .text:00045A40 LDREQB R6, [R1,#1]! .text:00045A44 ADDEQ R4, R4, #1 .text:00045A48 STREQ R1, [R11,#var_188] .text:00045A4C BEQ loc_45A60 .text:00045A50 CMP R6, #0x2B .text:00045A54 LDREQ R2, [R11,#var_188] .text:00045A58 LDREQB R6, [R2,#1]! .text:00045A5C STREQ R2, [R11,#var_188] .text:00045A60 .text:00045A60 loc_45A60 ; CODE XREF: __strtod_internal+A38j .text:00045A60 SUB R3, R6, #0x30 .text:00045A64 CMP R3, #9 .text:00045A68 BHI loc_45B94 .text:00045A6C LDR R3, [R11,#var_17C] .text:00045A70 CMP R3, #0x10 .text:00045A74 BNE loc_45AA4 .text:00045A78 CMP R4, #0 .text:00045A7C BEQ loc_45A94 .text:00045A80 MOV R3, #0x430 .text:00045A84 LDR R1, [R11,#var_190] .text:00045A88 ADD R3, R3, #2 .text:00045A8C ADD R12, R3, R1,LSL#2 .text:00045A90 B loc_45ABC .text:00045A94 ; --------------------------------------------------------------------------- .text:00045A94 .text:00045A94 loc_45A94 ; CODE XREF: __strtod_internal+A68j .text:00045A94 LDR R2, [R11,#var_190] .text:00045A98 ADD R3, LR, #0x400 .text:00045A9C SUB R12, R3, R2,LSL#2 .text:00045AA0 B loc_45ABC .text:00045AA4 ; --------------------------------------------------------------------------- .text:00045AA4 .text:00045AA4 loc_45AA4 ; CODE XREF: __strtod_internal+A60j .text:00045AA4 CMP R4, #0 .text:00045AA8 LDRNE R3, [R11,#var_190] .text:00045AAC ADDNE R12, R3, #0x168 .text:00045AB0 LDREQ R1, [R11,#var_190] .text:00045AB4 ADDEQ R3, LR, #0x134 .text:00045AB8 RSBEQ R12, R1, R3 .text:00045ABC .text:00045ABC loc_45ABC ; CODE XREF: __strtod_internal+A7Cj .text:00045ABC ; __strtod_internal+A8Cj ... .text:00045ABC LDR R3, [R11,#var_16C] .text:00045AC0 ADD R3, R3, R3,LSL#2 .text:00045AC4 MOV R3, R3,LSL#1 .text:00045AC8 CMP R3, R12 .text:00045ACC STR R3, [R11,#var_16C] .text:00045AD0 BLE loc_45B58 .text:00045AD4 CMN LR, #1 .text:00045AD8 BNE loc_45AF0 .text:00045ADC LDR R2, [R11,#var_178] .text:00045AE0 CMP R2, #0 .text:00045AE4 CDPNE p1, 1, c8,c0,c8, 4 .text:00045AE8 CDPEQ p1, 0, c8,c0,c8, 4 .text:00045AEC B loc_45B2C .text:00045AF0 ; --------------------------------------------------------------------------- .text:00045AF0 .text:00045AF0 loc_45AF0 ; CODE XREF: __strtod_internal+AC4j .text:00045AF0 BL __errno_location .text:00045AF4 CMP R4, #0 .text:00045AF8 MOV R3, #0x22 .text:00045AFC STR R3, [R0] .text:00045B00 BNE loc_45B28 .text:00045B04 LDR R3, [R11,#var_178] .text:00045B08 CMP R3, #0 .text:00045B0C LDRNE R3, =dword_616F8 .text:00045B10 LDCNE p1, c8, [R3] .text:00045B14 CDPNE p1, 1, c8,c0,c0, 4 .text:00045B18 BNE loc_45B2C .text:00045B1C LDR R3, =dword_61700 .text:00045B20 LDC p1, c8, [R3] .text:00045B24 B loc_45B2C .text:00045B28 ; --------------------------------------------------------------------------- .text:00045B28 .text:00045B28 loc_45B28 ; CODE XREF: __strtod_internal+AECj .text:00045B28 CDP p1, 0, c8,c0,c8, 4 .text:00045B2C .text:00045B2C loc_45B2C ; CODE XREF: __strtod_internal+AD8j .text:00045B2C ; __strtod_internal+B04j ... .text:00045B2C LDR R4, [R11,#var_188] .text:00045B30 LDRB R3, [R4,#1]! .text:00045B34 SUB R3, R3, #0x30 .text:00045B38 CMP R3, #9 .text:00045B3C STR R4, [R11,#var_188] .text:00045B40 BLS loc_45B2C .text:00045B44 LDR R12, [R11,#var_174] .text:00045B48 CMP R12, #0 .text:00045B4C BEQ locret_48AAC .text:00045B50 STR R4, [R12] .text:00045B54 B locret_48AAC .text:00045B58 ; --------------------------------------------------------------------------- .text:00045B58 .text:00045B58 loc_45B58 ; CODE XREF: __strtod_internal+ABCj .text:00045B58 LDR R3, [R11,#var_16C] .text:00045B5C SUB R3, R3, #0x30 .text:00045B60 ADD R3, R3, R6 .text:00045B64 STR R3, [R11,#var_16C] .text:00045B68 LDR R1, [R11,#var_188] .text:00045B6C LDRB R6, [R1,#1]! .text:00045B70 STR R1, [R11,#var_188] .text:00045B74 MOV R1, R3 .text:00045B78 SUB R2, R6, #0x30 .text:00045B7C CMP R2, #9 .text:00045B80 BLS loc_45ABC .text:00045B84 CMP R4, #0 .text:00045B88 RSBNE R3, R1, #0 .text:00045B8C STRNE R3, [R11,#var_16C] .text:00045B90 B loc_45B98 .text:00045B94 ; --------------------------------------------------------------------------- .text:00045B94 .text:00045B94 loc_45B94 ; CODE XREF: __strtod_internal+A54j .text:00045B94 STR R0, [R11,#var_188] .text:00045B98 .text:00045B98 loc_45B98 ; CODE XREF: __strtod_internal+A00j .text:00045B98 ; __strtod_internal+A14j ... .text:00045B98 LDR R2, [R11,#var_18C] .text:00045B9C LDR R3, [R11,#var_190] .text:00045BA0 CMP R2, R3 .text:00045BA4 BLE loc_45BD0 .text:00045BA8 LDRB R3, [R0,#-1] .text:00045BAC CMP R3, #0x30 .text:00045BB0 BNE loc_45BD0 .text:00045BB4 .text:00045BB4 loc_45BB4 ; CODE XREF: __strtod_internal+BB8j .text:00045BB4 LDR R4, [R11,#var_18C] .text:00045BB8 SUB R0, R0, #1 .text:00045BBC LDRB R3, [R0,#-1] .text:00045BC0 SUB R4, R4, #1 .text:00045BC4 CMP R3, #0x30 .text:00045BC8 STR R4, [R11,#var_18C] .text:00045BCC BEQ loc_45BB4 .text:00045BD0 .text:00045BD0 loc_45BD0 ; CODE XREF: __strtod_internal+B90j .text:00045BD0 ; __strtod_internal+B9Cj .text:00045BD0 LDR R12, [R11,#var_190] .text:00045BD4 LDR R1, [R11,#var_18C] .text:00045BD8 CMP R12, #0 .text:00045BDC MOVLE R3, #0 .text:00045BE0 MOVGT R3, #1 .text:00045BE4 CMP R1, R12 .text:00045BE8 MOVNE R3, #0 .text:00045BEC CMP R3, #0 .text:00045BF0 BEQ loc_45C64 .text:00045BF4 LDR R3, [R11,#var_16C] .text:00045BF8 CMP R3, #0 .text:00045BFC BGE loc_45C64 .text:00045C00 B loc_45C08 .text:00045C04 ; --------------------------------------------------------------------------- .text:00045C04 .text:00045C04 loc_45C04 ; CODE XREF: __strtod_internal+C00j .text:00045C04 SUB R0, R0, #1 .text:00045C08 .text:00045C08 loc_45C08 ; CODE XREF: __strtod_internal+BECj .text:00045C08 ; __strtod_internal+C4Cj .text:00045C08 LDRB R3, [R0,#-1] .text:00045C0C SUB R3, R3, #0x30 .text:00045C10 CMP R3, #9 .text:00045C14 BHI loc_45C04 .text:00045C18 LDRB R3, [R0,#-1] .text:00045C1C CMP R3, #0x30 .text:00045C20 BNE loc_45C64 .text:00045C24 LDR R2, [R11,#var_18C] .text:00045C28 LDR R3, [R11,#var_190] .text:00045C2C SUB R2, R2, #1 .text:00045C30 STR R2, [R11,#var_18C] .text:00045C34 SUB R3, R3, #1 .text:00045C38 STR R3, [R11,#var_190] .text:00045C3C LDR R2, [R11,#var_16C] .text:00045C40 SUB R0, R0, #1 .text:00045C44 LDR R4, [R11,#var_18C] .text:00045C48 ADD R2, R2, #1 .text:00045C4C CMP R4, #0 .text:00045C50 MOVLE R3, #0 .text:00045C54 MOVGT R3, R2,LSR#31 .text:00045C58 CMP R3, #0 .text:00045C5C STR R2, [R11,#var_16C] .text:00045C60 BNE loc_45C08 .text:00045C64 .text:00045C64 loc_45C64 ; CODE XREF: __strtod_internal+8D0j .text:00045C64 ; __strtod_internal+BDCj ... .text:00045C64 LDR R12, [R11,#var_174] .text:00045C68 CMP R12, #0 .text:00045C6C LDRNE R0, [R11,#var_188] .text:00045C70 STRNE R0, [R12] .text:00045C74 LDR R1, [R11,#var_18C] .text:00045C78 CMP R1, #0 .text:00045C7C BNE loc_45C94 .text:00045C80 LDR R2, [R11,#var_178] .text:00045C84 CMP R2, #0 .text:00045C88 CDPNE p1, 1, c8,c0,c8, 4 .text:00045C8C CDPEQ p1, 0, c8,c0,c8, 4 .text:00045C90 B locret_48AAC .text:00045C94 ; --------------------------------------------------------------------------- .text:00045C94 .text:00045C94 loc_45C94 ; CODE XREF: __strtod_internal+C68j .text:00045C94 CMP LR, #0 .text:00045C98 BEQ loc_45D4C .text:00045C9C LDR R3, [R11,#var_194] .text:00045CA0 LDRB R5, [R3] .text:00045CA4 .text:00045CA4 loc_45CA4 ; CODE XREF: __strtod_internal+D04j .text:00045CA4 LDRB R3, [R9] .text:00045CA8 CMP R3, R5 .text:00045CAC BNE loc_45D14 .text:00045CB0 LDR R12, [R11,#var_194] .text:00045CB4 LDR R1, [R11,#var_16C] .text:00045CB8 LDR R3, [R11,#var_198] .text:00045CBC MOV R4, #1 .text:00045CC0 LDRB R2, [R12,R4] .text:00045CC4 ADD R0, LR, R3 .text:00045CC8 LDR R3, [R11,#var_18C] .text:00045CCC CMP R2, #0 .text:00045CD0 RSB R12, LR, R3 .text:00045CD4 BEQ loc_45D04 .text:00045CD8 LDRB R3, [R9,#1] .text:00045CDC CMP R2, R3 .text:00045CE0 BNE loc_45D04 .text:00045CE4 .text:00045CE4 loc_45CE4 ; CODE XREF: __strtod_internal+CECj .text:00045CE4 LDR R3, [R11,#var_194] .text:00045CE8 ADD R4, R4, #1 .text:00045CEC LDRB R2, [R3,R4] .text:00045CF0 CMP R2, #0 .text:00045CF4 BEQ loc_45D04 .text:00045CF8 LDRB R3, [R9,R4] .text:00045CFC CMP R2, R3 .text:00045D00 BEQ loc_45CE4 .text:00045D04 .text:00045D04 loc_45D04 ; CODE XREF: __strtod_internal+CC0j .text:00045D04 ; __strtod_internal+CCCj ... .text:00045D04 LDR R2, [R11,#var_194] .text:00045D08 LDRB R3, [R2,R4] .text:00045D0C CMP R3, #0 .text:00045D10 BEQ loc_45D1C .text:00045D14 .text:00045D14 loc_45D14 ; CODE XREF: __strtod_internal+C98j .text:00045D14 ADD R9, R9, #1 .text:00045D18 B loc_45CA4 .text:00045D1C ; --------------------------------------------------------------------------- .text:00045D1C .text:00045D1C loc_45D1C ; CODE XREF: __strtod_internal+CFCj .text:00045D1C LDR R3, [R11,#var_17C] .text:00045D20 ADD R9, R9, R0 .text:00045D24 CMP R3, #0x10 .text:00045D28 BNE loc_45D40 .text:00045D2C SUB R3, R1, LR,LSL#2 .text:00045D30 B loc_45D44 .text:00045D30 ; --------------------------------------------------------------------------- .text:00045D34 off_45D34 DCD __ctype_tolower ; DATA XREF: __strtod_internal:loc_4597Cr .text:00045D34 ; __strtod_internal+9E4r ... .text:00045D38 off_45D38 DCD dword_616F8 ; DATA XREF: __strtod_internal+AF8r .text:00045D3C off_45D3C DCD dword_61700 ; DATA XREF: __strtod_internal+B08r .text:00045D40 ; --------------------------------------------------------------------------- .text:00045D40 .text:00045D40 loc_45D40 ; CODE XREF: __strtod_internal+D14j .text:00045D40 RSB R3, LR, R1 .text:00045D44 .text:00045D44 loc_45D44 ; CODE XREF: __strtod_internal+D1Cj .text:00045D44 STR R3, [R11,#var_16C] .text:00045D48 STR R12, [R11,#var_18C] .text:00045D4C .text:00045D4C loc_45D4C ; CODE XREF: __strtod_internal+C84j .text:00045D4C LDR R4, [R11,#var_17C] .text:00045D50 CMP R4, #0x10 .text:00045D54 BNE loc_46464 .text:00045D58 LDRB R3, [R9] .text:00045D5C LDR R12, =__ctype_b .text:00045D60 MOV R5, #1 .text:00045D64 LDR R1, [R12] .text:00045D68 MOV R3, R3,LSL R5 .text:00045D6C ADD R3, R3, R1 .text:00045D70 LDRB R2, [R3,#1] .text:00045D74 SUB R10, R11, #-var_164 .text:00045D78 LDR LR, [R11,#var_18C] .text:00045D7C TST R2, #0x10 .text:00045D80 LDR R2, [R11,#var_190] .text:00045D84 SUB R0, LR, #1 .text:00045D88 SUB R6, R2, #1 .text:00045D8C BNE loc_45DA8 .text:00045D90 .text:00045D90 loc_45D90 ; CODE XREF: __strtod_internal+D90j .text:00045D90 LDRB R3, [R9,#1]! .text:00045D94 MOV R3, R3,LSL#1 .text:00045D98 ADD R3, R3, R1 .text:00045D9C LDRB R2, [R3,#1] .text:00045DA0 TST R2, #0x10 .text:00045DA4 BEQ loc_45D90 .text:00045DA8 .text:00045DA8 loc_45DA8 ; CODE XREF: __strtod_internal+D78j .text:00045DA8 LDRB R3, [R9] .text:00045DAC MOV R4, R5,LSL#2 .text:00045DB0 CMP R3, #0x30 .text:00045DB4 BNE loc_45DC4 .text:00045DB8 .text:00045DB8 loc_45DB8 ; CODE XREF: __strtod_internal+DACj .text:00045DB8 LDRB R3, [R9,#1]! .text:00045DBC CMP R3, #0x30 .text:00045DC0 BEQ loc_45DB8 .text:00045DC4 .text:00045DC4 loc_45DC4 ; CODE XREF: __strtod_internal+DA0j .text:00045DC4 LDR LR, =__ctype_b .text:00045DC8 LDRB R12, [R9] .text:00045DCC LDR R3, [LR] .text:00045DD0 MOV R2, R12,LSL#1 .text:00045DD4 ADD R2, R2, R3 .text:00045DD8 LDRB R1, [R2,#1] .text:00045DDC TST R1, #8 .text:00045DE0 SUBNE LR, R12, #0x30 .text:00045DE4 ADDNE R9, R9, #1 .text:00045DE8 BNE loc_45E00 .text:00045DEC LDR R3, =__ctype_tolower .text:00045DF0 LDR R2, [R3] .text:00045DF4 LDR R1, [R2,R12,LSL#2] .text:00045DF8 ADD R9, R9, #1 .text:00045DFC SUB LR, R1, #0x57 .text:00045E00 .text:00045E00 loc_45E00 ; CODE XREF: __strtod_internal+DD4j .text:00045E00 LDR R3, =nbits.138_0 .text:00045E04 LDR R3, [R3,LR,LSL#2] .text:00045E08 RSB R2, R3, #0x14 .text:00045E0C STR R3, [R11,#var_184] .text:00045E10 ADD R3, R2, #1 .text:00045E14 MOV R3, LR,LSL R3 .text:00045E18 STR R3, [R4,R10] .text:00045E1C CMP R0, #0 .text:00045E20 STR R0, [R11,#var_18C] .text:00045E24 MOV R12, R2 .text:00045E28 MOV R3, R6,LSL#2 .text:00045E2C LDR R0, [R11,#var_184] .text:00045E30 SUB R3, R3, #1 .text:00045E34 LDR R2, [R11,#var_16C] .text:00045E38 ADD R3, R0, R3 .text:00045E3C ADD R2, R2, R3 .text:00045E40 STR R2, [R11,#var_16C] .text:00045E44 BLE loc_461BC .text:00045E48 CMP R5, #0 .text:00045E4C BLT loc_461BC .text:00045E50 MOV R4, R10 .text:00045E54 .text:00045E54 loc_45E54 ; CODE XREF: __strtod_internal+11A4j .text:00045E54 LDRB R3, [R9] .text:00045E58 LDR R2, =__ctype_b .text:00045E5C LDR LR, [R11,#var_198] .text:00045E60 LDR R1, [R2] .text:00045E64 MOV R3, R3,LSL#1 .text:00045E68 ADD R3, R3, R1 .text:00045E6C LDRB R2, [R3,#1] .text:00045E70 ADD R3, R9, LR .text:00045E74 TST R2, #0x10 .text:00045E78 MOVEQ R9, R3 .text:00045E7C LDRB R0, [R9] .text:00045E80 MOV R3, R0,LSL#1 .text:00045E84 ADD R3, R3, R1 .text:00045E88 LDRB R2, [R3,#1] .text:00045E8C TST R2, #8 .text:00045E90 SUBNE LR, R0, #0x30 .text:00045E94 ADDNE R9, R9, #1 .text:00045E98 BNE loc_45EB0 .text:00045E9C LDR R3, =__ctype_tolower .text:00045EA0 LDR R2, [R3] .text:00045EA4 LDR R1, [R2,R0,LSL#2] .text:00045EA8 ADD R9, R9, #1 .text:00045EAC SUB LR, R1, #0x57 .text:00045EB0 .text:00045EB0 loc_45EB0 ; CODE XREF: __strtod_internal+E84j .text:00045EB0 ADD R3, R12, #1 .text:00045EB4 CMP R3, #3 .text:00045EB8 BLE loc_45ED8 .text:00045EBC MOV R1, R5,LSL#2 .text:00045EC0 SUB R2, R12, #3 .text:00045EC4 LDR R3, [R1,R4] .text:00045EC8 SUB R12, R12, #4 .text:00045ECC ORR R3, R3, LR,LSL R2 .text:00045ED0 STR R3, [R1,R4] .text:00045ED4 B loc_461A0 .text:00045ED8 ; --------------------------------------------------------------------------- .text:00045ED8 .text:00045ED8 loc_45ED8 ; CODE XREF: __strtod_internal+EA4j .text:00045ED8 MOV R0, R5,LSL#2 .text:00045EDC SUBS R5, R5, #1 .text:00045EE0 RSB R3, R12, #3 .text:00045EE4 LDR R1, [R0,R4] .text:00045EE8 ADD R2, R12, #0x1D .text:00045EEC ORR R1, R1, LR,LSR R3 .text:00045EF0 MOV LR, LR,LSL R2 .text:00045EF4 STR R1, [R0,R4] .text:00045EF8 BPL loc_46198 .text:00045EFC MOV R7, LR .text:00045F00 MOV R8, #0x1F .text:00045F04 MOV R3, 0xFFFFFC03 .text:00045F08 LDR R0, [R11,#var_18C] .text:00045F0C SUB R3, R3, #1 .text:00045F10 LDR R4, [R11,#var_16C] .text:00045F14 CMP R0, #0 .text:00045F18 MOVLE R6, #0 .text:00045F1C MOVGT R6, #1 .text:00045F20 CMP R4, R3 .text:00045F24 BGE loc_4606C .text:00045F28 RSB R12, R4, #0xFC000002 .text:00045F2C ADD R12, R12, #0x3FC0000 .text:00045F30 ADD R12, R12, #0x3FC00 .text:00045F34 CMP R12, #0x35 .text:00045F38 BGT loc_48804 .text:00045F3C BICS R1, LR, #0x80000000 .text:00045F40 ORRNE R6, R6, #1 .text:00045F44 CMP R12, #0x35 .text:00045F48 BNE loc_45F8C .text:00045F4C MOV R8, #0x14 .text:00045F50 MOV R2, #0 .text:00045F54 LDR R7, [R10,#4] .text:00045F58 .text:00045F58 loc_45F58 ; CODE XREF: __strtod_internal+F58j .text:00045F58 LDR R3, [R10,R2,LSL#2] .text:00045F5C ADD R2, R2, #1 .text:00045F60 CMP R3, #0 .text:00045F64 ORRNE R6, R6, #1 .text:00045F68 CMP R2, #1 .text:00045F6C BLE loc_45F58 .text:00045F70 MOV R1, #0 .text:00045F74 ADD R3, R10, #4 .text:00045F78 MOV R2, R10 .text:00045F7C .text:00045F7C loc_45F7C ; CODE XREF: __strtod_internal+F70j .text:00045F7C STR R1, [R3],#-4 .text:00045F80 CMP R3, R2 .text:00045F84 BGE loc_45F7C .text:00045F88 B loc_46064 .text:00045F8C ; --------------------------------------------------------------------------- .text:00045F8C .text:00045F8C loc_45F8C ; CODE XREF: __strtod_internal+F34j .text:00045F8C CMP R12, #0x1F .text:00045F90 BLE loc_46040 .text:00045F94 SUB R3, R12, #1 .text:00045F98 CMP R3, #0 .text:00045F9C ADDLT R2, R3, #0x1F .text:00045FA0 MOVGE R2, R3 .text:00045FA4 MOV R2, R2,ASR#5 .text:00045FA8 SUB R8, R3, R2,LSL#5 .text:00045FAC MOV R1, #0 .text:00045FB0 CMP R1, R2 .text:00045FB4 MOV LR, R12,ASR#31 .text:00045FB8 LDR R7, [R10,R2,LSL#2] .text:00045FBC BGE loc_45FD8 .text:00045FC0 .text:00045FC0 loc_45FC0 ; CODE XREF: __strtod_internal+FC0j .text:00045FC0 LDR R3, [R10,R1,LSL#2] .text:00045FC4 ADD R1, R1, #1 .text:00045FC8 CMP R3, #0 .text:00045FCC ORRNE R6, R6, #1 .text:00045FD0 CMP R1, R2 .text:00045FD4 BLT loc_45FC0 .text:00045FD8 .text:00045FD8 loc_45FD8 ; CODE XREF: __strtod_internal+FA8j .text:00045FD8 MOV R2, #1 .text:00045FDC MOV R3, R2,LSL R8 .text:00045FE0 SUB R3, R3, #1 .text:00045FE4 TST R7, R3 .text:00045FE8 ORRNE R6, R6, #1 .text:00045FEC MOV R0, R10 .text:00045FF0 MOV R3, LR,LSR#27 .text:00045FF4 ADD R3, R12, R3 .text:00045FF8 MOV R4, R3,ASR#5 .text:00045FFC ADD R1, R10, R4,LSL#2 .text:00046000 RSB R5, R4, #2 .text:00046004 MOV R2, R5 .text:00046008 SUB R3, R12, R4,LSL#5 .text:0004600C BL __mpn_rshift .text:00046010 MOV R1, #0 .text:00046014 CMP R1, R4 .text:00046018 BGE loc_46064 .text:0004601C MOV R0, R4 .text:00046020 ADD R2, R10, R5,LSL#2 .text:00046024 MOV R12, R1 .text:00046028 .text:00046028 loc_46028 ; CODE XREF: __strtod_internal+1024j .text:00046028 MOV R3, R1,LSL#2 .text:0004602C ADD R1, R1, #1 .text:00046030 CMP R1, R0 .text:00046034 STR R12, [R3,R2] .text:00046038 BLT loc_46028 .text:0004603C B loc_46064 .text:00046040 ; --------------------------------------------------------------------------- .text:00046040 .text:00046040 loc_46040 ; CODE XREF: __strtod_internal+F7Cj .text:00046040 CMP R12, #0 .text:00046044 BLE loc_46064 .text:00046048 SUB R8, R12, #1 .text:0004604C MOV R0, R10 .text:00046050 MOV R1, R10 .text:00046054 MOV R2, #2 .text:00046058 MOV R3, R12 .text:0004605C LDR R7, [R11,#var_164] .text:00046060 BL __mpn_rshift .text:00046064 .text:00046064 loc_46064 ; CODE XREF: __strtod_internal+F74j .text:00046064 ; __strtod_internal+1004j ... .text:00046064 MOV R4, 0xFFFFFC01 .text:0004606C .text:0004606C loc_4606C ; CODE XREF: __strtod_internal+F10j .text:0004606C MOV R3, R7,LSR R8 .text:00046070 TST R3, #1 .text:00046074 BEQ loc_4616C .text:00046078 CMP R6, #0 .text:0004607C LDR R2, [R10] .text:00046080 BNE loc_460A0 .text:00046084 TST R2, #1 .text:00046088 BNE loc_460A0 .text:0004608C MOV R12, #1 .text:00046090 MOV R3, R12,LSL R8 .text:00046094 SUB R3, R3, #1 .text:00046098 TST R7, R3 .text:0004609C BEQ loc_4616C .text:000460A0 .text:000460A0 loc_460A0 ; CODE XREF: __strtod_internal+106Cj .text:000460A0 ; __strtod_internal+1074j .text:000460A0 MOV R1, #2 .text:000460A4 ADD R0, R10, #4 .text:000460A8 MOV R12, R0 .text:000460AC ADD R3, R2, #1 .text:000460B0 CMP R3, R2 .text:000460B4 STR R3, [R10] .text:000460B8 BCS loc_460EC .text:000460BC SUB R1, R1, #1 .text:000460C0 .text:000460C0 loc_460C0 ; CODE XREF: __strtod_internal+10C4j .text:000460C0 LDR R3, [R0],#4 .text:000460C4 ADD R2, R3, #1 .text:000460C8 CMP R2, #0 .text:000460CC STR R2, [R12],#4 .text:000460D0 BNE loc_460EC .text:000460D4 SUBS R1, R1, #1 .text:000460D8 BNE loc_460C0 .text:000460DC B loc_46118 .text:000460DC ; --------------------------------------------------------------------------- .text:000460E0 off_460E0 DCD __ctype_b ; DATA XREF: __strtod_internal+D48r .text:000460E0 ; __strtod_internal:loc_45DC4r ... .text:000460E4 off_460E4 DCD __ctype_tolower ; DATA XREF: __strtod_internal+DD8r .text:000460E4 ; __strtod_internal+E88r .text:000460E8 off_460E8 DCD nbits.138_0 ; DATA XREF: __strtod_internal:loc_45E00r .text:000460EC ; --------------------------------------------------------------------------- .text:000460EC .text:000460EC loc_460EC ; CODE XREF: __strtod_internal+10A4j .text:000460EC ; __strtod_internal+10BCj .text:000460EC CMP R12, R0 .text:000460F0 BEQ loc_46118 .text:000460F4 MOV R2, #0 .text:000460F8 SUB R1, R1, #1 .text:000460FC CMP R2, R1 .text:00046100 BGE loc_46118 .text:00046104 .text:00046104 loc_46104 ; CODE XREF: __strtod_internal+1100j .text:00046104 LDR R3, [R0,R2,LSL#2] .text:00046108 STR R3, [R12,R2,LSL#2] .text:0004610C ADD R2, R2, #1 .text:00046110 CMP R2, R1 .text:00046114 BLT loc_46104 .text:00046118 .text:00046118 loc_46118 ; CODE XREF: __strtod_internal+10C8j .text:00046118 ; __strtod_internal+10DCj ... .text:00046118 LDR R2, [R10,#4] .text:0004611C TST R2, #0x200000 .text:00046120 BEQ loc_4614C .text:00046124 MOV R0, R10 .text:00046128 MOV R1, R10 .text:0004612C MOV R2, #2 .text:00046130 MOV R3, #1 .text:00046134 BL __mpn_rshift .text:00046138 LDR R3, [R10,#4] .text:0004613C ADD R4, R4, #1 .text:00046140 ORR R3, R3, #0x100000 .text:00046144 STR R3, [R10,#4] .text:00046148 B loc_4616C .text:0004614C ; --------------------------------------------------------------------------- .text:0004614C .text:0004614C loc_4614C ; CODE XREF: __strtod_internal+110Cj .text:0004614C MOV R3, 0xFFFFFC01 .text:00046154 CMP R4, R3 .text:00046158 BNE loc_4616C .text:0004615C TST R2, #0x100000 .text:00046160 MOV R3, 0xFFFFFC02 .text:00046168 MOVNE R4, R3 .text:0004616C .text:0004616C loc_4616C ; CODE XREF: __strtod_internal+1060j .text:0004616C ; __strtod_internal+1088j ... .text:0004616C CMP R4, #0x400 .text:00046170 BLE loc_48A8C .text:00046174 LDR LR, [R11,#var_178] .text:00046178 CMP LR, #0 .text:0004617C LDRNE R3, =dword_616C4 .text:00046180 LDCNE p1, c8, [R3] .text:00046184 CDPNE p1, 1, c8,c0,c0, 4 .text:00046188 BNE loc_48A9C .text:0004618C LDR R3, =dword_616CC .text:00046190 LDC p1, c8, [R3] .text:00046194 B loc_48A9C .text:00046198 ; --------------------------------------------------------------------------- .text:00046198 .text:00046198 loc_46198 ; CODE XREF: __strtod_internal+EE4j .text:00046198 ADD R12, R12, #0x1C .text:0004619C STR LR, [R10,R5,LSL#2] .text:000461A0 .text:000461A0 loc_461A0 ; CODE XREF: __strtod_internal+EC0j .text:000461A0 LDR R0, [R11,#var_18C] .text:000461A4 SUB R0, R0, #1 .text:000461A8 CMP R0, #0 .text:000461AC STR R0, [R11,#var_18C] .text:000461B0 BLE loc_461BC .text:000461B4 CMP R5, #0 .text:000461B8 BGE loc_45E54 .text:000461BC .text:000461BC loc_461BC ; CODE XREF: __strtod_internal+E30j .text:000461BC ; __strtod_internal+E38j ... .text:000461BC MOV R2, #0 .text:000461C0 CMP R2, R5 .text:000461C4 BGE loc_461E4 .text:000461C8 MOV R1, R10 .text:000461CC MOV R0, R2 .text:000461D0 .text:000461D0 loc_461D0 ; CODE XREF: __strtod_internal+11CCj .text:000461D0 MOV R3, R2,LSL#2 .text:000461D4 ADD R2, R2, #1 .text:000461D8 CMP R2, R5 .text:000461DC STR R0, [R3,R1] .text:000461E0 BLT loc_461D0 .text:000461E4 .text:000461E4 loc_461E4 ; CODE XREF: __strtod_internal+11B0j .text:000461E4 MOV R1, #0 .text:000461E8 MOV R6, R1 .text:000461EC MOV R8, R6 .text:000461F0 MOV R7, R6 .text:000461F4 MOV R3, 0xFFFFFC03 .text:000461F8 LDR R4, [R11,#var_16C] .text:000461FC SUB R3, R3, #1 .text:00046200 CMP R4, R3 .text:00046204 BGE loc_46344 .text:00046208 RSB R12, R4, #0xFC000002 .text:0004620C ADD R12, R12, #0x3FC0000 .text:00046210 ADD R12, R12, #0x3FC00 .text:00046214 CMP R12, #0x35 .text:00046218 BGT loc_48804 .text:0004621C MOV R7, R6 .text:00046220 CMP R12, #0x35 .text:00046224 BNE loc_46268 .text:00046228 MOV R8, #0x14 .text:0004622C MOV R2, R1 .text:00046230 LDR R6, [R10,#4] .text:00046234 .text:00046234 loc_46234 ; CODE XREF: __strtod_internal+1234j .text:00046234 LDR R3, [R10,R2,LSL#2] .text:00046238 ADD R2, R2, #1 .text:0004623C CMP R3, #0 .text:00046240 ORRNE R7, R7, #1 .text:00046244 CMP R2, #1 .text:00046248 BLE loc_46234 .text:0004624C MOV R1, #0 .text:00046250 ADD R3, R10, #4 .text:00046254 MOV R2, R10 .text:00046258 .text:00046258 loc_46258 ; CODE XREF: __strtod_internal+124Cj .text:00046258 STR R1, [R3],#-4 .text:0004625C CMP R3, R2 .text:00046260 BGE loc_46258 .text:00046264 B loc_4633C .text:00046268 ; --------------------------------------------------------------------------- .text:00046268 .text:00046268 loc_46268 ; CODE XREF: __strtod_internal+1210j .text:00046268 CMP R12, #0x1F .text:0004626C BLE loc_46318 .text:00046270 SUB R3, R12, #1 .text:00046274 CMP R3, #0 .text:00046278 ADDLT R2, R3, #0x1F .text:0004627C MOVGE R2, R3 .text:00046280 MOV R2, R2,ASR#5 .text:00046284 SUB R8, R3, R2,LSL#5 .text:00046288 CMP R7, R2 .text:0004628C MOV LR, R12,ASR#31 .text:00046290 LDR R6, [R10,R2,LSL#2] .text:00046294 BGE loc_462B0 .text:00046298 .text:00046298 loc_46298 ; CODE XREF: __strtod_internal+1298j .text:00046298 LDR R3, [R10,R1,LSL#2] .text:0004629C ADD R1, R1, #1 .text:000462A0 CMP R3, #0 .text:000462A4 ORRNE R7, R7, #1 .text:000462A8 CMP R1, R2 .text:000462AC BLT loc_46298 .text:000462B0 .text:000462B0 loc_462B0 ; CODE XREF: __strtod_internal+1280j .text:000462B0 MOV R3, #1 .text:000462B4 MOV R3, R3,LSL R8 .text:000462B8 SUB R3, R3, #1 .text:000462BC TST R6, R3 .text:000462C0 ORRNE R7, R7, #1 .text:000462C4 MOV R0, R10 .text:000462C8 MOV R3, LR,LSR#27 .text:000462CC ADD R3, R12, R3 .text:000462D0 MOV R4, R3,ASR#5 .text:000462D4 ADD R1, R10, R4,LSL#2 .text:000462D8 RSB R5, R4, #2 .text:000462DC MOV R2, R5 .text:000462E0 SUB R3, R12, R4,LSL#5 .text:000462E4 BL __mpn_rshift .text:000462E8 MOV R1, #0 .text:000462EC CMP R1, R4 .text:000462F0 BGE loc_4633C .text:000462F4 MOV R0, R4 .text:000462F8 ADD R2, R10, R5,LSL#2 .text:000462FC MOV R12, R1 .text:00046300 .text:00046300 loc_46300 ; CODE XREF: __strtod_internal+12FCj .text:00046300 MOV R3, R1,LSL#2 .text:00046304 ADD R1, R1, #1 .text:00046308 CMP R1, R0 .text:0004630C STR R12, [R3,R2] .text:00046310 BLT loc_46300 .text:00046314 B loc_4633C .text:00046318 ; --------------------------------------------------------------------------- .text:00046318 .text:00046318 loc_46318 ; CODE XREF: __strtod_internal+1258j .text:00046318 CMP R12, #0 .text:0004631C BLE loc_4633C .text:00046320 SUB R8, R12, #1 .text:00046324 MOV R0, R10 .text:00046328 MOV R1, R10 .text:0004632C MOV R2, #2 .text:00046330 MOV R3, R12 .text:00046334 LDR R6, [R11,#var_164] .text:00046338 BL __mpn_rshift .text:0004633C .text:0004633C loc_4633C ; CODE XREF: __strtod_internal+1250j .text:0004633C ; __strtod_internal+12DCj ... .text:0004633C MOV R4, 0xFFFFFC01 .text:00046344 .text:00046344 loc_46344 ; CODE XREF: __strtod_internal+11F0j .text:00046344 MOV R3, R6,LSR R8 .text:00046348 TST R3, #1 .text:0004634C BEQ loc_46438 .text:00046350 CMP R7, #0 .text:00046354 LDR R2, [R10] .text:00046358 BNE loc_46378 .text:0004635C TST R2, #1 .text:00046360 BNE loc_46378 .text:00046364 MOV R3, #1 .text:00046368 MOV R3, R3,LSL R8 .text:0004636C SUB R3, R3, #1 .text:00046370 TST R6, R3 .text:00046374 BEQ loc_46438 .text:00046378 .text:00046378 loc_46378 ; CODE XREF: __strtod_internal+1344j .text:00046378 ; __strtod_internal+134Cj .text:00046378 MOV R1, #2 .text:0004637C ADD R0, R10, #4 .text:00046380 MOV R12, R0 .text:00046384 ADD R3, R2, #1 .text:00046388 CMP R3, R2 .text:0004638C STR R3, [R10] .text:00046390 BCS loc_463B8 .text:00046394 SUB R1, R1, #1 .text:00046398 .text:00046398 loc_46398 ; CODE XREF: __strtod_internal+139Cj .text:00046398 LDR R3, [R0],#4 .text:0004639C ADD R2, R3, #1 .text:000463A0 CMP R2, #0 .text:000463A4 STR R2, [R12],#4 .text:000463A8 BNE loc_463B8 .text:000463AC SUBS R1, R1, #1 .text:000463B0 BNE loc_46398 .text:000463B4 B loc_463E4 .text:000463B8 ; --------------------------------------------------------------------------- .text:000463B8 .text:000463B8 loc_463B8 ; CODE XREF: __strtod_internal+137Cj .text:000463B8 ; __strtod_internal+1394j .text:000463B8 CMP R12, R0 .text:000463BC BEQ loc_463E4 .text:000463C0 MOV R2, #0 .text:000463C4 SUB R1, R1, #1 .text:000463C8 CMP R2, R1 .text:000463CC BGE loc_463E4 .text:000463D0 .text:000463D0 loc_463D0 ; CODE XREF: __strtod_internal+13CCj .text:000463D0 LDR R3, [R0,R2,LSL#2] .text:000463D4 STR R3, [R12,R2,LSL#2] .text:000463D8 ADD R2, R2, #1 .text:000463DC CMP R2, R1 .text:000463E0 BLT loc_463D0 .text:000463E4 .text:000463E4 loc_463E4 ; CODE XREF: __strtod_internal+13A0j .text:000463E4 ; __strtod_internal+13A8j ... .text:000463E4 LDR R2, [R10,#4] .text:000463E8 TST R2, #0x200000 .text:000463EC BEQ loc_46418 .text:000463F0 MOV R0, R10 .text:000463F4 MOV R1, R10 .text:000463F8 MOV R2, #2 .text:000463FC MOV R3, #1 .text:00046400 BL __mpn_rshift .text:00046404 LDR R3, [R10,#4] .text:00046408 ADD R4, R4, #1 .text:0004640C ORR R3, R3, #0x100000 .text:00046410 STR R3, [R10,#4] .text:00046414 B loc_46438 .text:00046418 ; --------------------------------------------------------------------------- .text:00046418 .text:00046418 loc_46418 ; CODE XREF: __strtod_internal+13D8j .text:00046418 MOV R3, 0xFFFFFC01 .text:00046420 CMP R4, R3 .text:00046424 BNE loc_46438 .text:00046428 TST R2, #0x100000 .text:0004642C MOV R3, 0xFFFFFC02 .text:00046434 MOVNE R4, R3 .text:00046438 .text:00046438 loc_46438 ; CODE XREF: __strtod_internal+1338j .text:00046438 ; __strtod_internal+1360j ... .text:00046438 CMP R4, #0x400 .text:0004643C BLE loc_48A8C .text:00046440 LDR R1, [R11,#var_178] .text:00046444 CMP R1, #0 .text:00046448 LDRNE R3, =dword_616C4 .text:0004644C LDCNE p1, c8, [R3] .text:00046450 CDPNE p1, 1, c8,c0,c0, 4 .text:00046454 BNE loc_48A9C .text:00046458 LDR R3, =dword_616CC .text:0004645C LDC p1, c8, [R3] .text:00046460 B loc_48A9C .text:00046464 ; --------------------------------------------------------------------------- .text:00046464 .text:00046464 loc_46464 ; CODE XREF: __strtod_internal+D40j .text:00046464 LDR R3, [R11,#var_16C] .text:00046468 CMP R3, #0 .text:0004646C MOV R1, R3 .text:00046470 BGE loc_4648C .text:00046474 LDR R2, [R11,#var_190] .text:00046478 RSB R3, R2, #0 .text:0004647C CMP R1, R3 .text:00046480 MOVGE R2, R1 .text:00046484 MOVLT R2, R3 .text:00046488 B loc_464A4 .text:0004648C ; --------------------------------------------------------------------------- .text:0004648C .text:0004648C loc_4648C ; CODE XREF: __strtod_internal+145Cj .text:0004648C LDR R4, [R11,#var_18C] .text:00046490 LDR R12, [R11,#var_190] .text:00046494 RSB R3, R12, R4 .text:00046498 CMP R1, R3 .text:0004649C MOVLT R2, R1 .text:000464A0 MOVGE R2, R3 .text:000464A4 .text:000464A4 loc_464A4 ; CODE XREF: __strtod_internal+1474j .text:000464A4 MOV R3, 0x135 .text:000464AC LDR LR, [R11,#var_190] .text:000464B0 RSB R1, R2, R1 .text:000464B4 STR R1, [R11,#var_16C] .text:000464B8 ADD LR, LR, R2 .text:000464BC ADD R2, LR, R1 .text:000464C0 CMP R2, R3 .text:000464C4 STR LR, [R11,#var_190] .text:000464C8 BLE loc_464F4 .text:000464CC BL __errno_location .text:000464D0 LDR R1, [R11,#var_178] .text:000464D4 MOV R3, #0x22 .text:000464D8 STR R3, [R0] .text:000464DC CMP R1, #0 .text:000464E0 LDR R3, =dword_61748 .text:000464E4 BNE loc_4520C .text:000464E8 LDR R3, =dword_61750 .text:000464EC LDC p1, c8, [R3] .text:000464F0 B locret_48AAC .text:000464F4 ; --------------------------------------------------------------------------- .text:000464F4 .text:000464F4 loc_464F4 ; CODE XREF: __strtod_internal+14B4j .text:000464F4 CMN R1, #0x144 .text:000464F8 BGT loc_46520 .text:000464FC BL __errno_location .text:00046500 CDP p1, 0, c8,c0,c8, 4 .text:00046504 MOV R3, #0x22 .text:00046508 STR R3, [R0] .text:0004650C B locret_48AAC .text:0004650C ; --------------------------------------------------------------------------- .text:00046510 off_46510 DCD dword_616C4 ; DATA XREF: __strtod_internal+1168r .text:00046510 ; __strtod_internal+1434r .text:00046514 off_46514 DCD dword_616CC ; DATA XREF: __strtod_internal+1178r .text:00046514 ; __strtod_internal+1444r .text:00046518 off_46518 DCD dword_61748 ; DATA XREF: __strtod_internal+14CCr .text:0004651C off_4651C DCD dword_61750 ; DATA XREF: __strtod_internal+14D4r .text:00046520 ; --------------------------------------------------------------------------- .text:00046520 .text:00046520 loc_46520 ; CODE XREF: __strtod_internal+14E4j .text:00046520 SUB R3, R11, #-var_C0 .text:00046524 STR R3, [R11,#var_1D8] .text:00046528 SUB R4, R11, #-var_168 .text:0004652C STR R4, [R11,#var_1D4] .text:00046530 LDR R2, [R11,#var_190] .text:00046534 SUB R12, R11, #-var_16C .text:00046538 STR R12, [R11,#var_1D0] .text:0004653C CMP R2, #0 .text:00046540 BLE loc_47120 .text:00046544 MOV R5, R9 .text:00046548 MOV R1, R2 .text:0004654C MOV R7, #0 .text:00046550 MOV R0, R7 .text:00046554 MOV R10, R3 .text:00046558 MOV R6, R4 .text:0004655C MOV R9, R12 .text:00046560 STR R7, [R11,#var_168] .text:00046564 .text:00046564 loc_46564 ; CODE XREF: __strtod_internal+16C8j .text:00046564 CMP R0, #9 .text:00046568 SUB R8, R1, #1 .text:0004656C BNE loc_4663C .text:00046570 LDR R2, [R6] .text:00046574 CMP R2, #0 .text:00046578 STREQ R7, [R11,#var_C0] .text:0004657C MOVEQ R3, #1 .text:00046580 BEQ loc_46630 .text:00046584 SUB R0, R11, #-var_C0 .text:00046588 MOV R1, R0 .text:0004658C MOV R3, 0x3B9ACA00 .text:00046598 BL __mpn_mul_1 .text:0004659C SUB LR, R11, #-var_BC .text:000465A0 LDR R1, [R11,#var_C0] .text:000465A4 MOV R4, LR .text:000465A8 LDR R12, [R6] .text:000465AC ADD R3, R7, R1 .text:000465B0 CMP R3, R1 .text:000465B4 STR R3, [R11,#var_C0] .text:000465B8 BCS loc_465E8 .text:000465BC SUBS R12, R12, #1 .text:000465C0 BEQ loc_465E0 .text:000465C4 .text:000465C4 loc_465C4 ; CODE XREF: __strtod_internal+15C8j .text:000465C4 LDR R3, [LR],#4 .text:000465C8 ADD R1, R3, #1 .text:000465CC CMP R1, #0 .text:000465D0 STR R1, [R4],#4 .text:000465D4 BNE loc_465E8 .text:000465D8 SUBS R12, R12, #1 .text:000465DC BNE loc_465C4 .text:000465E0 .text:000465E0 loc_465E0 ; CODE XREF: __strtod_internal+15ACj .text:000465E0 MOV R3, #1 .text:000465E4 B loc_46618 .text:000465E8 ; --------------------------------------------------------------------------- .text:000465E8 .text:000465E8 loc_465E8 ; CODE XREF: __strtod_internal+15A4j .text:000465E8 ; __strtod_internal+15C0j .text:000465E8 CMP R4, LR .text:000465EC BEQ loc_46614 .text:000465F0 MOV R2, #0 .text:000465F4 SUB R1, R12, #1 .text:000465F8 CMP R2, R1 .text:000465FC BGE loc_46614 .text:00046600 .text:00046600 loc_46600 ; CODE XREF: __strtod_internal+15FCj .text:00046600 LDR R3, [LR,R2,LSL#2] .text:00046604 STR R3, [R4,R2,LSL#2] .text:00046608 ADD R2, R2, #1 .text:0004660C CMP R2, R1 .text:00046610 BLT loc_46600 .text:00046614 .text:00046614 loc_46614 ; CODE XREF: __strtod_internal+15D8j .text:00046614 ; __strtod_internal+15E8j .text:00046614 MOV R3, #0 .text:00046618 .text:00046618 loc_46618 ; CODE XREF: __strtod_internal+15D0j .text:00046618 ADDS R0, R0, R3 .text:0004661C BEQ loc_46634 .text:00046620 LDR R2, [R6] .text:00046624 STR R0, [R10,R2,LSL#2] .text:00046628 LDR R3, [R6] .text:0004662C ADD R3, R3, #1 .text:00046630 .text:00046630 loc_46630 ; CODE XREF: __strtod_internal+156Cj .text:00046630 STR R3, [R6] .text:00046634 .text:00046634 loc_46634 ; CODE XREF: __strtod_internal+1608j .text:00046634 MOV R7, #0 .text:00046638 MOV R0, R7 .text:0004663C .text:0004663C loc_4663C ; CODE XREF: __strtod_internal+1558j .text:0004663C MOV R2, R7,LSL#2 .text:00046640 LDRB R1, [R5] .text:00046644 ADD R12, R0, #1 .text:00046648 SUB R3, R1, #0x30 .text:0004664C CMP R3, #9 .text:00046650 BLS loc_466C4 .text:00046654 LDR LR, [R11,#var_19C] .text:00046658 CMP LR, #0 .text:0004665C BEQ loc_466BC .text:00046660 LDRB R3, [LR] .text:00046664 CMP R1, R3 .text:00046668 BNE loc_466BC .text:0004666C MOV R0, #1 .text:00046670 LDRB R1, [LR,R0] .text:00046674 CMP R1, #0 .text:00046678 BEQ loc_466A8 .text:0004667C LDRB R3, [R5,#1] .text:00046680 CMP R1, R3 .text:00046684 BNE loc_466A8 .text:00046688 .text:00046688 loc_46688 ; CODE XREF: __strtod_internal+1690j .text:00046688 LDR R3, [R11,#var_19C] .text:0004668C ADD R0, R0, #1 .text:00046690 LDRB R1, [R3,R0] .text:00046694 CMP R1, #0 .text:00046698 BEQ loc_466A8 .text:0004669C LDRB R3, [R5,R0] .text:000466A0 CMP R1, R3 .text:000466A4 BEQ loc_46688 .text:000466A8 .text:000466A8 loc_466A8 ; CODE XREF: __strtod_internal+1664j .text:000466A8 ; __strtod_internal+1670j ... .text:000466A8 LDR R4, [R11,#var_19C] .text:000466AC LDRB R3, [R4,R0] .text:000466B0 CMP R3, #0 .text:000466B4 ADDEQ R5, R5, R0 .text:000466B8 BEQ loc_466C4 .text:000466BC .text:000466BC loc_466BC ; CODE XREF: __strtod_internal+1648j .text:000466BC ; __strtod_internal+1654j .text:000466BC LDR LR, [R11,#var_198] .text:000466C0 ADD R5, R5, LR .text:000466C4 .text:000466C4 loc_466C4 ; CODE XREF: __strtod_internal+163Cj .text:000466C4 ; __strtod_internal+16A4j .text:000466C4 MOV R0, R12 .text:000466C8 SUBS R1, R8, #0 .text:000466CC LDRB R3, [R5],#1 .text:000466D0 ADD R2, R2, R7 .text:000466D4 ADD R3, R3, R2,LSL#1 .text:000466D8 SUB R7, R3, #0x30 .text:000466DC BGT loc_46564 .text:000466E0 LDR R2, [R9] .text:000466E4 CMP R2, #0 .text:000466E8 BLE loc_46714 .text:000466EC ADD R3, R12, R2 .text:000466F0 CMP R3, #9 .text:000466F4 BGT loc_46714 .text:000466F8 LDR R0, =_tens_in_limb_0 .text:000466FC LDR R12, [R0,R3,LSL#2] .text:00046700 LDR R2, [R0,R2,LSL#2] .text:00046704 MOV R3, #0 .text:00046708 STR R3, [R9] .text:0004670C MUL R7, R2, R7 .text:00046710 B loc_4671C .text:00046714 ; --------------------------------------------------------------------------- .text:00046714 .text:00046714 loc_46714 ; CODE XREF: __strtod_internal+16D4j .text:00046714 ; __strtod_internal+16E0j .text:00046714 LDR R1, =_tens_in_limb_0 .text:00046718 LDR R12, [R1,R12,LSL#2] .text:0004671C .text:0004671C loc_4671C ; CODE XREF: __strtod_internal+16FCj .text:0004671C LDR R2, [R6] .text:00046720 CMP R2, #0 .text:00046724 STREQ R7, [R11,#var_C0] .text:00046728 MOVEQ R3, #1 .text:0004672C BEQ loc_467D0 .text:00046730 SUB R0, R11, #-var_C0 .text:00046734 MOV R1, R0 .text:00046738 MOV R3, R12 .text:0004673C BL __mpn_mul_1 .text:00046740 SUB LR, R11, #-var_BC .text:00046744 LDR R1, [R11,#var_C0] .text:00046748 MOV R4, LR .text:0004674C LDR R12, [R6] .text:00046750 ADD R3, R7, R1 .text:00046754 CMP R3, R1 .text:00046758 STR R3, [R11,#var_C0] .text:0004675C BCS loc_4678C .text:00046760 SUBS R12, R12, #1 .text:00046764 BEQ loc_46784 .text:00046768 .text:00046768 loc_46768 ; CODE XREF: __strtod_internal+176Cj .text:00046768 LDR R3, [LR],#4 .text:0004676C ADD R1, R3, #1 .text:00046770 CMP R1, #0 .text:00046774 STR R1, [R4],#4 .text:00046778 BNE loc_4678C .text:0004677C SUBS R12, R12, #1 .text:00046780 BNE loc_46768 .text:00046784 .text:00046784 loc_46784 ; CODE XREF: __strtod_internal+1750j .text:00046784 MOV R3, #1 .text:00046788 B loc_467BC .text:0004678C ; --------------------------------------------------------------------------- .text:0004678C .text:0004678C loc_4678C ; CODE XREF: __strtod_internal+1748j .text:0004678C ; __strtod_internal+1764j .text:0004678C CMP R4, LR .text:00046790 BEQ loc_467B8 .text:00046794 MOV R2, #0 .text:00046798 SUB R1, R12, #1 .text:0004679C CMP R2, R1 .text:000467A0 BGE loc_467B8 .text:000467A4 .text:000467A4 loc_467A4 ; CODE XREF: __strtod_internal+17A0j .text:000467A4 LDR R3, [LR,R2,LSL#2] .text:000467A8 STR R3, [R4,R2,LSL#2] .text:000467AC ADD R2, R2, #1 .text:000467B0 CMP R2, R1 .text:000467B4 BLT loc_467A4 .text:000467B8 .text:000467B8 loc_467B8 ; CODE XREF: __strtod_internal+177Cj .text:000467B8 ; __strtod_internal+178Cj .text:000467B8 MOV R3, #0 .text:000467BC .text:000467BC loc_467BC ; CODE XREF: __strtod_internal+1774j .text:000467BC ADDS R0, R0, R3 .text:000467C0 BEQ loc_467D4 .text:000467C4 LDR R3, [R6] .text:000467C8 STR R0, [R10,R3,LSL#2] .text:000467CC ADD R3, R3, #1 .text:000467D0 .text:000467D0 loc_467D0 ; CODE XREF: __strtod_internal+1718j .text:000467D0 STR R3, [R6] .text:000467D4 .text:000467D4 loc_467D4 ; CODE XREF: __strtod_internal+17ACj .text:000467D4 LDR R3, [R11,#var_16C] .text:000467D8 MOV R9, R5 .text:000467DC CMP R3, #0 .text:000467E0 MOV R1, R3 .text:000467E4 BLE loc_468B4 .text:000467E8 LDR R6, [R11,#var_1D8] .text:000467EC SUB R5, R11, #-var_158 .text:000467F0 LDR R7, =_fpioconst_pow10 .text:000467F4 MOV R8, #1 .text:000467F8 LDR R10, =(__tens+8) .text:000467FC .text:000467FC loc_467FC ; CODE XREF: __strtod_internal+187Cj .text:000467FC TST R1, R8 .text:00046800 BEQ loc_46884 .text:00046804 EOR R3, R1, R8 .text:00046808 STR R3, [R11,#var_16C] .text:0004680C LDR R2, [R7,#(_fpioconst_pow10+4 - 0x61998)] .text:00046810 LDR R12, [R11,#var_168] .text:00046814 SUB R4, R2, #2 .text:00046818 CMP R12, R4 .text:0004681C BLT loc_46840 .text:00046820 STR R4, [SP,#0x1F4+var_1F4] .text:00046824 MOV R0, R5 .text:00046828 MOV R1, R6 .text:0004682C LDR R3, [R7] .text:00046830 MOV R2, R12 .text:00046834 ADD R3, R10, R3,LSL#2 .text:00046838 BL __mpn_mul .text:0004683C B loc_4685C .text:00046840 ; --------------------------------------------------------------------------- .text:00046840 .text:00046840 loc_46840 ; CODE XREF: __strtod_internal+1808j .text:00046840 STR R12, [SP,#0x1F4+var_1F4] .text:00046844 MOV R0, R5 .text:00046848 MOV R2, R4 .text:0004684C LDR R1, [R7] .text:00046850 MOV R3, R6 .text:00046854 ADD R1, R10, R1,LSL#2 .text:00046858 BL __mpn_mul .text:0004685C .text:0004685C loc_4685C ; CODE XREF: __strtod_internal+1828j .text:0004685C LDR R3, [R11,#var_168] .text:00046860 CMP R0, #0 .text:00046864 ADD R2, R3, R4 .text:00046868 STR R2, [R11,#var_168] .text:0004686C SUBEQ R3, R2, #1 .text:00046870 STREQ R3, [R11,#var_168] .text:00046874 MOV R3, R6 .text:00046878 MOV R6, R5 .text:0004687C MOV R5, R3 .text:00046880 LDR R1, [R11,#var_16C] .text:00046884 .text:00046884 loc_46884 ; CODE XREF: __strtod_internal+17ECj .text:00046884 MOV R8, R8,LSL#1 .text:00046888 ADD R7, R7, #0x10 .text:0004688C CMP R1, #0 .text:00046890 BNE loc_467FC .text:00046894 SUB R2, R11, #-var_158 .text:00046898 CMP R6, R2 .text:0004689C BNE loc_468B4 .text:000468A0 LDR R2, [R11,#var_168] .text:000468A4 SUB R1, R11, #-var_158 .text:000468A8 LDR R0, [R11,#var_1D8] .text:000468AC MOV R2, R2,LSL#2 .text:000468B0 BL memcpy .text:000468B4 .text:000468B4 loc_468B4 ; CODE XREF: __strtod_internal+17D0j .text:000468B4 ; __strtod_internal+1888j .text:000468B4 LDR R2, [R11,#var_168] .text:000468B8 LDR R4, [R11,#var_1D8] .text:000468BC SUB R3, R2, #1 .text:000468C0 LDR R3, [R4,R3,LSL#2] .text:000468C4 MOV LR, R2 .text:000468C8 CMP R3, #0x10000 .text:000468CC BCS loc_468E0 .text:000468D0 CMP R3, #0xFF .text:000468D4 MOVHI R1, #8 .text:000468D8 MOVLS R1, #0 .text:000468DC B loc_468EC .text:000468E0 ; --------------------------------------------------------------------------- .text:000468E0 .text:000468E0 loc_468E0 ; CODE XREF: __strtod_internal+18B8j .text:000468E0 CMP R3, #0x1000000 .text:000468E4 MOVCS R1, #0x18 .text:000468E8 MOVCC R1, #0x10 .text:000468EC .text:000468EC loc_468EC ; CODE XREF: __strtod_internal+18C8j .text:000468EC LDR R12, =__clz_tab_1 .text:000468F0 MOV R2, R3,LSR R1 .text:000468F4 LDRB R3, [R12,R2] .text:000468F8 ADD R3, R3, R1 .text:000468FC RSB R3, R3, #0x20 .text:00046900 RSB R3, R3, LR,LSL#5 .text:00046904 CMP R3, #0x400 .text:00046908 STR R3, [R11,#var_184] .text:0004690C BLE loc_46938 .text:00046910 BL __errno_location .text:00046914 LDR LR, [R11,#var_178] .text:00046918 MOV R3, #0x22 .text:0004691C STR R3, [R0] .text:00046920 CMP LR, #0 .text:00046924 LDR R3, =dword_61758 .text:00046928 BNE loc_4520C .text:0004692C LDR R3, =dword_61760 .text:00046930 LDC p1, c8, [R3] .text:00046934 B locret_48AAC .text:00046938 ; --------------------------------------------------------------------------- .text:00046938 .text:00046938 loc_46938 ; CODE XREF: __strtod_internal+18F8j .text:00046938 LDR R0, [R11,#var_184] .text:0004693C CMP R0, #0x35 .text:00046940 BLE loc_46D1C .text:00046944 SUB R3, R0, #0x35 .text:00046948 CMP R3, #0 .text:0004694C ADDLT R2, R3, #0x1F .text:00046950 MOVGE R2, R3 .text:00046954 MOV R12, R2,ASR#5 .text:00046958 MOV R5, R12 .text:0004695C SUB R12, R3, R12,LSL#5 .text:00046960 CMP R12, #0 .text:00046964 MOVNE R7, R5 .text:00046968 SUBEQ R7, R5, #1 .text:0004696C SUBNE R1, R12, #1 .text:00046970 MOVEQ R1, #0x1F .text:00046974 STR R1, [R11,#var_1AC] .text:00046978 BNE loc_469C0 .text:0004697C SUB R9, R0, #1 .text:00046980 ADD R3, R11, R5,LSL#2 .text:00046984 SUB R3, R3, #0x28 .text:00046988 SUB R3, R3, #0x98 .text:0004698C LDMIA R3, {R0,R1} .text:00046990 MOV R3, R7,LSL#2 .text:00046994 STR R3, [R11,#var_1EC] .text:00046998 SUB R2, R11, #-var_164 .text:0004699C MOV R10, R2 .text:000469A0 STMIA R2, {R0,R1} .text:000469A4 B loc_46A44 .text:000469A4 ; --------------------------------------------------------------------------- .text:000469A8 off_469A8 DCD _tens_in_limb_0 ; DATA XREF: __strtod_internal+16E4r .text:000469A8 ; __strtod_internal:loc_46714r .text:000469AC off_469AC DCD _fpioconst_pow10 ; DATA XREF: __strtod_internal+17DCr .text:000469B0 off_469B0 DCD __tens+8 ; DATA XREF: __strtod_internal+17E4r .text:000469B4 off_469B4 DCD __clz_tab_1 ; DATA XREF: __strtod_internal:loc_468ECr .text:000469B8 off_469B8 DCD dword_61758 ; DATA XREF: __strtod_internal+1910r .text:000469BC off_469BC DCD dword_61760 ; DATA XREF: __strtod_internal+1918r .text:000469C0 ; --------------------------------------------------------------------------- .text:000469C0 .text:000469C0 loc_469C0 ; CODE XREF: __strtod_internal+1964j .text:000469C0 MOV R1, R5 .text:000469C4 SUB R3, LR, #1 .text:000469C8 CMP R1, R3 .text:000469CC SUB R10, R11, #-var_164 .text:000469D0 LDR R4, [R11,#var_184] .text:000469D4 MOV LR, R7,LSL#2 .text:000469D8 STR LR, [R11,#var_1EC] .text:000469DC SUB R9, R4, #1 .text:000469E0 BGE loc_46A2C .text:000469E4 MOV R8, R10 .text:000469E8 RSB R6, R12, #0x20 .text:000469EC MOV R3, R1,LSL#2 .text:000469F0 ADD R0, R3, #4 .text:000469F4 MOV R4, #0 .text:000469F8 LDR LR, [R11,#var_1D8] .text:000469FC .text:000469FC loc_469FC ; CODE XREF: __strtod_internal+1A14j .text:000469FC LDR R3, [LR,R0] .text:00046A00 LDR R2, [LR,R1,LSL#2] .text:00046A04 MOV R3, R3,LSL R6 .text:00046A08 ORR R3, R3, R2,LSR R12 .text:00046A0C STR R3, [R4,R8] .text:00046A10 ADD R0, R0, #4 .text:00046A14 ADD R1, R1, #1 .text:00046A18 LDR R3, [R11,#var_168] .text:00046A1C ADD R4, R4, #4 .text:00046A20 SUB R3, R3, #1 .text:00046A24 CMP R1, R3 .text:00046A28 BLT loc_469FC .text:00046A2C .text:00046A2C loc_46A2C ; CODE XREF: __strtod_internal+19CCj .text:00046A2C RSB R3, R5, R1 .text:00046A30 CMP R3, #1 .text:00046A34 LDRLE R0, [R11,#var_1D8] .text:00046A38 LDRLE R3, [R0,R1,LSL#2] .text:00046A3C MOVLE R3, R3,LSR R12 .text:00046A40 STRLE R3, [R10,#4] .text:00046A44 .text:00046A44 loc_46A44 ; CODE XREF: __strtod_internal+1990j .text:00046A44 LDR R3, [R11,#var_C0] .text:00046A48 MOV R1, #0 .text:00046A4C CMP R3, R1 .text:00046A50 BNE loc_46A68 .text:00046A54 LDR R2, [R11,#var_1D8] .text:00046A58 .text:00046A58 loc_46A58 ; CODE XREF: __strtod_internal+1A50j .text:00046A58 ADD R1, R1, #1 .text:00046A5C LDR R3, [R2,R1,LSL#2] .text:00046A60 CMP R3, #0 .text:00046A64 BEQ loc_46A58 .text:00046A68 .text:00046A68 loc_46A68 ; CODE XREF: __strtod_internal+1A3Cj .text:00046A68 LDR R8, [R11,#var_1AC] .text:00046A6C CMP R1, R7 .text:00046A70 MOVGE R2, #0 .text:00046A74 MOVLT R2, #1 .text:00046A78 SUB R1, R11, #-var_190 .text:00046A7C LDMIA R1, {R1,R3} .text:00046A80 LDR R12, [R11,#var_1D8] .text:00046A84 MOV R4, R9 .text:00046A88 LDR LR, [R11,#var_1EC] .text:00046A8C CMP R1, R3 .text:00046A90 MOVGE R6, R2 .text:00046A94 MOVLT R6, #1 .text:00046A98 MOV R3, 0xFFFFFC02 .text:00046AA0 CMP R9, R3 .text:00046AA4 LDR R7, [R12,LR] .text:00046AA8 BGE loc_46BFC .text:00046AAC RSB R12, R9, #0xFC000002 .text:00046AB0 ADD R12, R12, #0x3FC0000 .text:00046AB4 ADD R12, R12, #0x3FC00 .text:00046AB8 CMP R12, #0x35 .text:00046ABC BGT loc_48804 .text:00046AC0 MOV R3, #1 .text:00046AC4 MOV R3, R3,LSL R8 .text:00046AC8 SUB R3, R3, #1 .text:00046ACC TST R7, R3 .text:00046AD0 ORRNE R6, R6, #1 .text:00046AD4 CMP R12, #0x35 .text:00046AD8 BNE loc_46B1C .text:00046ADC MOV R8, #0x14 .text:00046AE0 MOV R2, #0 .text:00046AE4 LDR R7, [R10,#4] .text:00046AE8 .text:00046AE8 loc_46AE8 ; CODE XREF: __strtod_internal+1AE8j .text:00046AE8 LDR R3, [R10,R2,LSL#2] .text:00046AEC ADD R2, R2, #1 .text:00046AF0 CMP R3, #0 .text:00046AF4 ORRNE R6, R6, #1 .text:00046AF8 CMP R2, #1 .text:00046AFC BLE loc_46AE8 .text:00046B00 MOV R1, #0 .text:00046B04 ADD R3, R10, #4 .text:00046B08 MOV R2, R10 .text:00046B0C .text:00046B0C loc_46B0C ; CODE XREF: __strtod_internal+1B00j .text:00046B0C STR R1, [R3],#-4 .text:00046B10 CMP R3, R2 .text:00046B14 BGE loc_46B0C .text:00046B18 B loc_46BF4 .text:00046B1C ; --------------------------------------------------------------------------- .text:00046B1C .text:00046B1C loc_46B1C ; CODE XREF: __strtod_internal+1AC4j .text:00046B1C CMP R12, #0x1F .text:00046B20 BLE loc_46BD0 .text:00046B24 SUB R3, R12, #1 .text:00046B28 CMP R3, #0 .text:00046B2C ADDLT R2, R3, #0x1F .text:00046B30 MOVGE R2, R3 .text:00046B34 MOV R2, R2,ASR#5 .text:00046B38 SUB R8, R3, R2,LSL#5 .text:00046B3C MOV R1, #0 .text:00046B40 CMP R1, R2 .text:00046B44 MOV LR, R12,ASR#31 .text:00046B48 LDR R7, [R10,R2,LSL#2] .text:00046B4C BGE loc_46B68 .text:00046B50 .text:00046B50 loc_46B50 ; CODE XREF: __strtod_internal+1B50j .text:00046B50 LDR R3, [R10,R1,LSL#2] .text:00046B54 ADD R1, R1, #1 .text:00046B58 CMP R3, #0 .text:00046B5C ORRNE R6, R6, #1 .text:00046B60 CMP R1, R2 .text:00046B64 BLT loc_46B50 .text:00046B68 .text:00046B68 loc_46B68 ; CODE XREF: __strtod_internal+1B38j .text:00046B68 MOV R3, #1 .text:00046B6C MOV R3, R3,LSL R8 .text:00046B70 SUB R3, R3, #1 .text:00046B74 TST R7, R3 .text:00046B78 ORRNE R6, R6, #1 .text:00046B7C MOV R0, R10 .text:00046B80 MOV R3, LR,LSR#27 .text:00046B84 ADD R3, R12, R3 .text:00046B88 MOV R4, R3,ASR#5 .text:00046B8C ADD R1, R10, R4,LSL#2 .text:00046B90 RSB R5, R4, #2 .text:00046B94 MOV R2, R5 .text:00046B98 SUB R3, R12, R4,LSL#5 .text:00046B9C BL __mpn_rshift .text:00046BA0 MOV R1, #0 .text:00046BA4 CMP R1, R4 .text:00046BA8 BGE loc_46BF4 .text:00046BAC MOV R0, R4 .text:00046BB0 ADD R2, R10, R5,LSL#2 .text:00046BB4 MOV R12, R1 .text:00046BB8 .text:00046BB8 loc_46BB8 ; CODE XREF: __strtod_internal+1BB4j .text:00046BB8 MOV R3, R1,LSL#2 .text:00046BBC ADD R1, R1, #1 .text:00046BC0 CMP R1, R0 .text:00046BC4 STR R12, [R3,R2] .text:00046BC8 BLT loc_46BB8 .text:00046BCC B loc_46BF4 .text:00046BD0 ; --------------------------------------------------------------------------- .text:00046BD0 .text:00046BD0 loc_46BD0 ; CODE XREF: __strtod_internal+1B0Cj .text:00046BD0 CMP R12, #0 .text:00046BD4 BLE loc_46BF4 .text:00046BD8 SUB R8, R12, #1 .text:00046BDC MOV R0, R10 .text:00046BE0 MOV R1, R10 .text:00046BE4 MOV R2, #2 .text:00046BE8 MOV R3, R12 .text:00046BEC LDR R7, [R11,#var_164] .text:00046BF0 BL __mpn_rshift .text:00046BF4 .text:00046BF4 loc_46BF4 ; CODE XREF: __strtod_internal+1B04j .text:00046BF4 ; __strtod_internal+1B94j ... .text:00046BF4 MOV R4, 0xFFFFFC01 .text:00046BFC .text:00046BFC loc_46BFC ; CODE XREF: __strtod_internal+1A94j .text:00046BFC MOV R3, R7,LSR R8 .text:00046C00 TST R3, #1 .text:00046C04 BEQ loc_46CF0 .text:00046C08 CMP R6, #0 .text:00046C0C LDR R2, [R10] .text:00046C10 BNE loc_46C30 .text:00046C14 TST R2, #1 .text:00046C18 BNE loc_46C30 .text:00046C1C MOV R3, #1 .text:00046C20 MOV R3, R3,LSL R8 .text:00046C24 SUB R3, R3, #1 .text:00046C28 TST R7, R3 .text:00046C2C BEQ loc_46CF0 .text:00046C30 .text:00046C30 loc_46C30 ; CODE XREF: __strtod_internal+1BFCj .text:00046C30 ; __strtod_internal+1C04j .text:00046C30 MOV R1, #2 .text:00046C34 ADD R0, R10, #4 .text:00046C38 MOV R12, R0 .text:00046C3C ADD R3, R2, #1 .text:00046C40 CMP R3, R2 .text:00046C44 STR R3, [R10] .text:00046C48 BCS loc_46C70 .text:00046C4C SUB R1, R1, #1 .text:00046C50 .text:00046C50 loc_46C50 ; CODE XREF: __strtod_internal+1C54j .text:00046C50 LDR R3, [R0],#4 .text:00046C54 ADD R2, R3, #1 .text:00046C58 CMP R2, #0 .text:00046C5C STR R2, [R12],#4 .text:00046C60 BNE loc_46C70 .text:00046C64 SUBS R1, R1, #1 .text:00046C68 BNE loc_46C50 .text:00046C6C B loc_46C9C .text:00046C70 ; --------------------------------------------------------------------------- .text:00046C70 .text:00046C70 loc_46C70 ; CODE XREF: __strtod_internal+1C34j .text:00046C70 ; __strtod_internal+1C4Cj .text:00046C70 CMP R12, R0 .text:00046C74 BEQ loc_46C9C .text:00046C78 MOV R2, #0 .text:00046C7C SUB R1, R1, #1 .text:00046C80 CMP R2, R1 .text:00046C84 BGE loc_46C9C .text:00046C88 .text:00046C88 loc_46C88 ; CODE XREF: __strtod_internal+1C84j .text:00046C88 LDR R3, [R0,R2,LSL#2] .text:00046C8C STR R3, [R12,R2,LSL#2] .text:00046C90 ADD R2, R2, #1 .text:00046C94 CMP R2, R1 .text:00046C98 BLT loc_46C88 .text:00046C9C .text:00046C9C loc_46C9C ; CODE XREF: __strtod_internal+1C58j .text:00046C9C ; __strtod_internal+1C60j ... .text:00046C9C LDR R2, [R10,#4] .text:00046CA0 TST R2, #0x200000 .text:00046CA4 BEQ loc_46CD0 .text:00046CA8 MOV R0, R10 .text:00046CAC MOV R1, R10 .text:00046CB0 MOV R2, #2 .text:00046CB4 MOV R3, #1 .text:00046CB8 BL __mpn_rshift .text:00046CBC LDR R3, [R10,#4] .text:00046CC0 ADD R4, R4, #1 .text:00046CC4 ORR R3, R3, #0x100000 .text:00046CC8 STR R3, [R10,#4] .text:00046CCC B loc_46CF0 .text:00046CD0 ; --------------------------------------------------------------------------- .text:00046CD0 .text:00046CD0 loc_46CD0 ; CODE XREF: __strtod_internal+1C90j .text:00046CD0 MOV R3, 0xFFFFFC01 .text:00046CD8 CMP R4, R3 .text:00046CDC BNE loc_46CF0 .text:00046CE0 TST R2, #0x100000 .text:00046CE4 MOV R3, 0xFFFFFC02 .text:00046CEC MOVNE R4, R3 .text:00046CF0 .text:00046CF0 loc_46CF0 ; CODE XREF: __strtod_internal+1BF0j .text:00046CF0 ; __strtod_internal+1C18j ... .text:00046CF0 CMP R4, #0x400 .text:00046CF4 BLE loc_48A8C .text:00046CF8 LDR R0, [R11,#var_178] .text:00046CFC CMP R0, #0 .text:00046D00 LDRNE R3, =dword_616C4 .text:00046D04 LDCNE p1, c8, [R3] .text:00046D08 CDPNE p1, 1, c8,c0,c0, 4 .text:00046D0C BNE loc_48A9C .text:00046D10 LDR R3, =dword_616CC .text:00046D14 LDC p1, c8, [R3] .text:00046D18 B loc_48A9C .text:00046D1C ; --------------------------------------------------------------------------- .text:00046D1C .text:00046D1C loc_46D1C ; CODE XREF: __strtod_internal+192Cj .text:00046D1C LDR R1, [R11,#var_18C] .text:00046D20 LDR R2, [R11,#var_190] .text:00046D24 CMP R1, R2 .text:00046D28 BNE loc_470FC .text:00046D2C LDR R3, [R11,#var_184] .text:00046D30 SUB R2, R3, #1 .text:00046D34 CMP R2, #0 .text:00046D38 ADDLT R3, R2, #0x1F .text:00046D3C MOVGE R3, R2 .text:00046D40 BIC R3, R3, #0x1F .text:00046D44 RSB R3, R3, R2 .text:00046D48 CMP R3, #0x14 .text:00046D4C MOV R9, R2 .text:00046D50 BNE loc_46DAC .text:00046D54 RSB R0, LR, #2 .text:00046D58 SUB R4, R11, #-var_164 .text:00046D5C ADD R0, R4, R0,LSL#2 .text:00046D60 LDR R1, [R11,#var_1D8] .text:00046D64 MOV R2, LR,LSL#2 .text:00046D68 BL memcpy .text:00046D6C MOV R1, #0 .text:00046D70 LDR R3, [R11,#var_168] .text:00046D74 MOV R10, R4 .text:00046D78 RSB R3, R3, #2 .text:00046D7C CMP R1, R3 .text:00046D80 BGE loc_46E74 .text:00046D84 MOV R12, R10 .text:00046D88 MOV R0, R1 .text:00046D8C .text:00046D8C loc_46D8C ; CODE XREF: __strtod_internal+1D90j .text:00046D8C MOV R3, R1,LSL#2 .text:00046D90 STR R0, [R3,R12] .text:00046D94 LDR R2, [R11,#var_168] .text:00046D98 ADD R1, R1, #1 .text:00046D9C RSB R2, R2, #2 .text:00046DA0 CMP R1, R2 .text:00046DA4 BLT loc_46D8C .text:00046DA8 B loc_46E74 .text:00046DAC ; --------------------------------------------------------------------------- .text:00046DAC .text:00046DAC loc_46DAC ; CODE XREF: __strtod_internal+1D3Cj .text:00046DAC CMP R3, #0x13 .text:00046DB0 BGT loc_46E10 .text:00046DB4 RSB R0, LR, #2 .text:00046DB8 SUB R4, R11, #-var_164 .text:00046DBC ADD R0, R4, R0,LSL#2 .text:00046DC0 MOV R2, LR .text:00046DC4 LDR R1, [R11,#var_1D8] .text:00046DC8 RSB R3, R3, #0x14 .text:00046DCC BL __mpn_lshift .text:00046DD0 MOV R1, #0 .text:00046DD4 LDR R3, [R11,#var_168] .text:00046DD8 MOV R10, R4 .text:00046DDC RSB R3, R3, #2 .text:00046DE0 CMP R1, R3 .text:00046DE4 BGE loc_46E74 .text:00046DE8 MOV R12, R10 .text:00046DEC MOV R0, R1 .text:00046DF0 .text:00046DF0 loc_46DF0 ; CODE XREF: __strtod_internal+1DF4j .text:00046DF0 MOV R3, R1,LSL#2 .text:00046DF4 STR R0, [R3,R12] .text:00046DF8 LDR R2, [R11,#var_168] .text:00046DFC ADD R1, R1, #1 .text:00046E00 RSB R2, R2, #2 .text:00046E04 CMP R1, R2 .text:00046E08 BLT loc_46DF0 .text:00046E0C B loc_46E74 .text:00046E10 ; --------------------------------------------------------------------------- .text:00046E10 .text:00046E10 loc_46E10 ; CODE XREF: __strtod_internal+1D9Cj .text:00046E10 RSB R0, LR, #2 .text:00046E14 SUB R4, R11, #-var_164 .text:00046E18 ADD R0, R4, R0,LSL#2 .text:00046E1C MOV R2, LR .text:00046E20 LDR R1, [R11,#var_1D8] .text:00046E24 SUB R3, R3, #0x14 .text:00046E28 BL __mpn_rshift .text:00046E2C LDR R3, [R11,#var_168] .text:00046E30 RSB R3, R3, #1 .text:00046E34 STR R0, [R4,R3,LSL#2] .text:00046E38 MOV R1, #0 .text:00046E3C LDR R3, [R11,#var_168] .text:00046E40 MOV R10, R4 .text:00046E44 RSB R3, R3, #1 .text:00046E48 CMP R1, R3 .text:00046E4C BGE loc_46E74 .text:00046E50 MOV R12, R10 .text:00046E54 MOV R0, R1 .text:00046E58 .text:00046E58 loc_46E58 ; CODE XREF: __strtod_internal+1E5Cj .text:00046E58 MOV R3, R1,LSL#2 .text:00046E5C STR R0, [R3,R12] .text:00046E60 LDR R2, [R11,#var_168] .text:00046E64 ADD R1, R1, #1 .text:00046E68 RSB R2, R2, #1 .text:00046E6C CMP R1, R2 .text:00046E70 BLT loc_46E58 .text:00046E74 .text:00046E74 loc_46E74 ; CODE XREF: __strtod_internal+1D6Cj .text:00046E74 ; __strtod_internal+1D94j ... .text:00046E74 MOV R4, R9 .text:00046E78 MOV R1, #0 .text:00046E7C MOV R6, R1 .text:00046E80 MOV R8, R6 .text:00046E84 MOV R7, R6 .text:00046E88 MOV R3, 0xFFFFFC02 .text:00046E90 CMP R4, R3 .text:00046E94 BGE loc_46FD4 .text:00046E98 RSB R12, R4, #0xFC000002 .text:00046E9C ADD R12, R12, #0x3FC0000 .text:00046EA0 ADD R12, R12, #0x3FC00 .text:00046EA4 CMP R12, #0x35 .text:00046EA8 BGT loc_48804 .text:00046EAC MOV R7, R6 .text:00046EB0 CMP R12, #0x35 .text:00046EB4 BNE loc_46EF8 .text:00046EB8 MOV R8, #0x14 .text:00046EBC MOV R2, R1 .text:00046EC0 LDR R6, [R10,#4] .text:00046EC4 .text:00046EC4 loc_46EC4 ; CODE XREF: __strtod_internal+1EC4j .text:00046EC4 LDR R3, [R10,R2,LSL#2] .text:00046EC8 ADD R2, R2, #1 .text:00046ECC CMP R3, #0 .text:00046ED0 ORRNE R7, R7, #1 .text:00046ED4 CMP R2, #1 .text:00046ED8 BLE loc_46EC4 .text:00046EDC MOV R1, #0 .text:00046EE0 ADD R3, R10, #4 .text:00046EE4 MOV R2, R10 .text:00046EE8 .text:00046EE8 loc_46EE8 ; CODE XREF: __strtod_internal+1EDCj .text:00046EE8 STR R1, [R3],#-4 .text:00046EEC CMP R3, R2 .text:00046EF0 BGE loc_46EE8 .text:00046EF4 B loc_46FCC .text:00046EF8 ; --------------------------------------------------------------------------- .text:00046EF8 .text:00046EF8 loc_46EF8 ; CODE XREF: __strtod_internal+1EA0j .text:00046EF8 CMP R12, #0x1F .text:00046EFC BLE loc_46FA8 .text:00046F00 SUB R3, R12, #1 .text:00046F04 CMP R3, #0 .text:00046F08 ADDLT R2, R3, #0x1F .text:00046F0C MOVGE R2, R3 .text:00046F10 MOV R2, R2,ASR#5 .text:00046F14 SUB R8, R3, R2,LSL#5 .text:00046F18 CMP R7, R2 .text:00046F1C MOV LR, R12,ASR#31 .text:00046F20 LDR R6, [R10,R2,LSL#2] .text:00046F24 BGE loc_46F40 .text:00046F28 .text:00046F28 loc_46F28 ; CODE XREF: __strtod_internal+1F28j .text:00046F28 LDR R3, [R10,R1,LSL#2] .text:00046F2C ADD R1, R1, #1 .text:00046F30 CMP R3, #0 .text:00046F34 ORRNE R7, R7, #1 .text:00046F38 CMP R1, R2 .text:00046F3C BLT loc_46F28 .text:00046F40 .text:00046F40 loc_46F40 ; CODE XREF: __strtod_internal+1F10j .text:00046F40 MOV R3, #1 .text:00046F44 MOV R3, R3,LSL R8 .text:00046F48 SUB R3, R3, #1 .text:00046F4C TST R6, R3 .text:00046F50 ORRNE R7, R7, #1 .text:00046F54 MOV R0, R10 .text:00046F58 MOV R3, LR,LSR#27 .text:00046F5C ADD R3, R12, R3 .text:00046F60 MOV R4, R3,ASR#5 .text:00046F64 ADD R1, R10, R4,LSL#2 .text:00046F68 RSB R5, R4, #2 .text:00046F6C MOV R2, R5 .text:00046F70 SUB R3, R12, R4,LSL#5 .text:00046F74 BL __mpn_rshift .text:00046F78 MOV R1, #0 .text:00046F7C CMP R1, R4 .text:00046F80 BGE loc_46FCC .text:00046F84 MOV R0, R4 .text:00046F88 ADD R2, R10, R5,LSL#2 .text:00046F8C MOV R12, R1 .text:00046F90 .text:00046F90 loc_46F90 ; CODE XREF: __strtod_internal+1F8Cj .text:00046F90 MOV R3, R1,LSL#2 .text:00046F94 ADD R1, R1, #1 .text:00046F98 CMP R1, R0 .text:00046F9C STR R12, [R3,R2] .text:00046FA0 BLT loc_46F90 .text:00046FA4 B loc_46FCC .text:00046FA8 ; --------------------------------------------------------------------------- .text:00046FA8 .text:00046FA8 loc_46FA8 ; CODE XREF: __strtod_internal+1EE8j .text:00046FA8 CMP R12, #0 .text:00046FAC BLE loc_46FCC .text:00046FB0 SUB R8, R12, #1 .text:00046FB4 MOV R0, R10 .text:00046FB8 MOV R1, R10 .text:00046FBC MOV R2, #2 .text:00046FC0 MOV R3, R12 .text:00046FC4 LDR R6, [R11,#var_164] .text:00046FC8 BL __mpn_rshift .text:00046FCC .text:00046FCC loc_46FCC ; CODE XREF: __strtod_internal+1EE0j .text:00046FCC ; __strtod_internal+1F6Cj ... .text:00046FCC MOV R4, 0xFFFFFC01 .text:00046FD4 .text:00046FD4 loc_46FD4 ; CODE XREF: __strtod_internal+1E80j .text:00046FD4 MOV R3, R6,LSR R8 .text:00046FD8 TST R3, #1 .text:00046FDC BEQ loc_470D0 .text:00046FE0 CMP R7, #0 .text:00046FE4 LDR R2, [R10] .text:00046FE8 BNE loc_47008 .text:00046FEC TST R2, #1 .text:00046FF0 BNE loc_47008 .text:00046FF4 MOV R3, #1 .text:00046FF8 MOV R3, R3,LSL R8 .text:00046FFC SUB R3, R3, #1 .text:00047000 TST R6, R3 .text:00047004 BEQ loc_470D0 .text:00047008 .text:00047008 loc_47008 ; CODE XREF: __strtod_internal+1FD4j .text:00047008 ; __strtod_internal+1FDCj .text:00047008 MOV R1, #2 .text:0004700C ADD R0, R10, #4 .text:00047010 MOV R12, R0 .text:00047014 ADD R3, R2, #1 .text:00047018 CMP R3, R2 .text:0004701C STR R3, [R10] .text:00047020 BCS loc_47048 .text:00047024 SUB R1, R1, #1 .text:00047028 .text:00047028 loc_47028 ; CODE XREF: __strtod_internal+202Cj .text:00047028 LDR R3, [R0],#4 .text:0004702C ADD R2, R3, #1 .text:00047030 CMP R2, #0 .text:00047034 STR R2, [R12],#4 .text:00047038 BNE loc_47048 .text:0004703C SUBS R1, R1, #1 .text:00047040 BNE loc_47028 .text:00047044 B loc_47074 .text:00047048 ; --------------------------------------------------------------------------- .text:00047048 .text:00047048 loc_47048 ; CODE XREF: __strtod_internal+200Cj .text:00047048 ; __strtod_internal+2024j .text:00047048 CMP R12, R0 .text:0004704C BEQ loc_47074 .text:00047050 MOV R2, #0 .text:00047054 SUB R1, R1, #1 .text:00047058 CMP R2, R1 .text:0004705C BGE loc_47074 .text:00047060 .text:00047060 loc_47060 ; CODE XREF: __strtod_internal+205Cj .text:00047060 LDR R3, [R0,R2,LSL#2] .text:00047064 STR R3, [R12,R2,LSL#2] .text:00047068 ADD R2, R2, #1 .text:0004706C CMP R2, R1 .text:00047070 BLT loc_47060 .text:00047074 .text:00047074 loc_47074 ; CODE XREF: __strtod_internal+2030j .text:00047074 ; __strtod_internal+2038j ... .text:00047074 LDR R2, [R10,#4] .text:00047078 TST R2, #0x200000 .text:0004707C BEQ loc_470B0 .text:00047080 MOV R0, R10 .text:00047084 MOV R1, R10 .text:00047088 MOV R2, #2 .text:0004708C MOV R3, #1 .text:00047090 BL __mpn_rshift .text:00047094 LDR R3, [R10,#4] .text:00047098 ADD R4, R4, #1 .text:0004709C ORR R3, R3, #0x100000 .text:000470A0 STR R3, [R10,#4] .text:000470A4 B loc_470D0 .text:000470A4 ; --------------------------------------------------------------------------- .text:000470A8 off_470A8 DCD dword_616C4 ; DATA XREF: __strtod_internal+1CECr .text:000470AC off_470AC DCD dword_616CC ; DATA XREF: __strtod_internal+1CFCr .text:000470B0 ; --------------------------------------------------------------------------- .text:000470B0 .text:000470B0 loc_470B0 ; CODE XREF: __strtod_internal+2068j .text:000470B0 MOV R3, 0xFFFFFC01 .text:000470B8 CMP R4, R3 .text:000470BC BNE loc_470D0 .text:000470C0 TST R2, #0x100000 .text:000470C4 MOV R3, 0xFFFFFC02 .text:000470CC MOVNE R4, R3 .text:000470D0 .text:000470D0 loc_470D0 ; CODE XREF: __strtod_internal+1FC8j .text:000470D0 ; __strtod_internal+1FF0j ... .text:000470D0 CMP R4, #0x400 .text:000470D4 BLE loc_48A8C .text:000470D8 LDR R4, [R11,#var_178] .text:000470DC CMP R4, #0 .text:000470E0 LDRNE R3, =dword_616C4 .text:000470E4 LDCNE p1, c8, [R3] .text:000470E8 CDPNE p1, 1, c8,c0,c0, 4 .text:000470EC BNE loc_48A9C .text:000470F0 LDR R3, =dword_616CC .text:000470F4 LDC p1, c8, [R3] .text:000470F8 B loc_48A9C .text:000470FC ; --------------------------------------------------------------------------- .text:000470FC .text:000470FC loc_470FC ; CODE XREF: __strtod_internal+1D14j .text:000470FC SUB R4, R11, #-var_164 .text:00047100 MOV R0, R4 .text:00047104 LDR R1, [R11,#var_1D8] .text:00047108 MOV R2, LR,LSL#2 .text:0004710C BL memcpy .text:00047110 LDR R2, [R11,#var_168] .text:00047114 CMP R2, #1 .text:00047118 MOVLE R3, #0 .text:0004711C STRLE R3, [R4,R2,LSL#2] .text:00047120 .text:00047120 loc_47120 ; CODE XREF: __strtod_internal+152Cj .text:00047120 SUB R4, R11, #-var_158 .text:00047124 LDR R12, [R11,#var_184] .text:00047128 MOV R1, #3 .text:0004712C LDR R8, [R11,#var_1D8] .text:00047130 RSB R5, R12, #0x37 .text:00047134 MOV R0, R5 .text:00047138 BL __divsi3 .text:0004713C SUB R1, R11, #-var_190 .text:00047140 LDMIA R1, {R1,LR} .text:00047144 ADD R0, R0, #1 .text:00047148 LDR R6, =_fpioconst_pow10 .text:0004714C RSB R3, R1, LR .text:00047150 CMP R3, R0 .text:00047154 BLE loc_47180 .text:00047158 MOV R0, R5 .text:0004715C MOV R1, #3 .text:00047160 BL __divsi3 .text:00047164 LDR R2, [R11,#var_190] .text:00047168 MOV R3, #1 .text:0004716C STR R3, [R11,#var_1B0] .text:00047170 ADD R0, R2, R0 .text:00047174 ADD R0, R0, #1 .text:00047178 STR R0, [R11,#var_18C] .text:0004717C B loc_47188 .text:00047180 ; --------------------------------------------------------------------------- .text:00047180 .text:00047180 loc_47180 ; CODE XREF: __strtod_internal+2140j .text:00047180 MOV R12, #0 .text:00047184 STR R12, [R11,#var_1B0] .text:00047188 .text:00047188 loc_47188 ; CODE XREF: __strtod_internal+2168j .text:00047188 MOV LR, #0 .text:0004718C STR LR, [R11,#var_180] .text:00047190 LDR R0, [R11,#var_18C] .text:00047194 MOV R7, #1 .text:00047198 LDR R1, [R11,#var_190] .text:0004719C SUB R10, R11, #-var_164 .text:000471A0 LDR R3, [R11,#var_16C] .text:000471A4 RSB R2, R1, R0 .text:000471A8 RSB R5, R3, R2 .text:000471AC STR R2, [R11,#var_1E8] .text:000471B0 .text:000471B0 loc_471B0 ; CODE XREF: __strtod_internal+2238j .text:000471B0 TST R5, R7 .text:000471B4 BEQ loc_47240 .text:000471B8 LDR R2, [R11,#var_180] .text:000471BC EOR R5, R5, R7 .text:000471C0 CMP R2, #0 .text:000471C4 BNE loc_471F0 .text:000471C8 LDMIA R6, {R1,R3} .text:000471CC SUB R3, R3, #2 .text:000471D0 STR R3, [R11,#var_180] .text:000471D4 LDR R3, =(__tens+8) .text:000471D8 MOV R0, R4 .text:000471DC LDR R12, [R11,#var_180] .text:000471E0 ADD R1, R3, R1,LSL#2 .text:000471E4 MOV R2, R12,LSL#2 .text:000471E8 BL memcpy .text:000471EC B loc_47240 .text:000471F0 ; --------------------------------------------------------------------------- .text:000471F0 .text:000471F0 loc_471F0 ; CODE XREF: __strtod_internal+21B0j .text:000471F0 LDR LR, [R11,#var_180] .text:000471F4 STR LR, [SP,#0x1F4+var_1F4] .text:000471F8 LDR R12, =(__tens+8) .text:000471FC MOV R0, R8 .text:00047200 LDR R1, [R6] .text:00047204 MOV R3, R4 .text:00047208 LDR R2, [R6,#4] .text:0004720C ADD R1, R12, R1,LSL#2 .text:00047210 SUB R2, R2, #2 .text:00047214 BL __mpn_mul .text:00047218 MOV R3, R4 .text:0004721C MOV R4, R8 .text:00047220 LDR LR, [R11,#var_180] .text:00047224 MOV R8, R3 .text:00047228 LDR R2, [R6,#4] .text:0004722C SUB R3, LR, #2 .text:00047230 ADD R3, R3, R2 .text:00047234 CMP R0, #0 .text:00047238 SUBEQ R3, R3, #1 .text:0004723C STR R3, [R11,#var_180] .text:00047240 .text:00047240 loc_47240 ; CODE XREF: __strtod_internal+21A0j .text:00047240 ; __strtod_internal+21D8j .text:00047240 MOV R7, R7,LSL#1 .text:00047244 ADD R6, R6, #0x10 .text:00047248 CMP R5, #0 .text:0004724C BNE loc_471B0 .text:00047250 LDR R0, [R11,#var_1D8] .text:00047254 CMP R4, R0 .text:00047258 BNE loc_47270 .text:0004725C LDR R3, [R11,#var_180] .text:00047260 SUB R0, R11, #-var_158 .text:00047264 LDR R1, [R11,#var_1D8] .text:00047268 MOV R2, R3,LSL#2 .text:0004726C BL memcpy .text:00047270 .text:00047270 loc_47270 ; CODE XREF: __strtod_internal+2244j .text:00047270 MOV R6, R5 .text:00047274 STR R6, [R11,#var_168] .text:00047278 MOV R4, R9 .text:0004727C LDR R12, [R11,#var_180] .text:00047280 MOV R0, R6 .text:00047284 LDR R1, [R11,#var_1E8] .text:00047288 SUB R12, R12, #1 .text:0004728C STR R12, [R11,#var_1E0] .text:00047290 .text:00047290 loc_47290 ; CODE XREF: __strtod_internal+240Cj .text:00047290 CMP R0, #9 .text:00047294 SUB R7, R1, #1 .text:00047298 BNE loc_4737C .text:0004729C LDR LR, [R11,#var_1D4] .text:000472A0 LDR R2, [LR] .text:000472A4 CMP R2, #0 .text:000472A8 STREQ R6, [R11,#var_C0] .text:000472AC MOVEQ R3, #1 .text:000472B0 BEQ loc_47370 .text:000472B4 SUB R0, R11, #-var_C0 .text:000472B8 MOV R1, R0 .text:000472BC MOV R3, 0x3B9ACA00 .text:000472C8 BL __mpn_mul_1 .text:000472CC SUB LR, R11, #-var_BC .text:000472D0 LDR R1, [R11,#var_C0] .text:000472D4 MOV R5, LR .text:000472D8 LDR R2, [R11,#var_1D4] .text:000472DC ADD R3, R6, R1 .text:000472E0 LDR R12, [R2] .text:000472E4 CMP R3, R1 .text:000472E8 STR R3, [R11,#var_C0] .text:000472EC BCS loc_4731C .text:000472F0 SUBS R12, R12, #1 .text:000472F4 BEQ loc_47314 .text:000472F8 .text:000472F8 loc_472F8 ; CODE XREF: __strtod_internal+22FCj .text:000472F8 LDR R3, [LR],#4 .text:000472FC ADD R1, R3, #1 .text:00047300 CMP R1, #0 .text:00047304 STR R1, [R5],#4 .text:00047308 BNE loc_4731C .text:0004730C SUBS R12, R12, #1 .text:00047310 BNE loc_472F8 .text:00047314 .text:00047314 loc_47314 ; CODE XREF: __strtod_internal+22E0j .text:00047314 MOV R3, #1 .text:00047318 B loc_4734C .text:0004731C ; --------------------------------------------------------------------------- .text:0004731C .text:0004731C loc_4731C ; CODE XREF: __strtod_internal+22D8j .text:0004731C ; __strtod_internal+22F4j .text:0004731C CMP R5, LR .text:00047320 BEQ loc_47348 .text:00047324 MOV R2, #0 .text:00047328 SUB R1, R12, #1 .text:0004732C CMP R2, R1 .text:00047330 BGE loc_47348 .text:00047334 .text:00047334 loc_47334 ; CODE XREF: __strtod_internal+2330j .text:00047334 LDR R3, [LR,R2,LSL#2] .text:00047338 STR R3, [R5,R2,LSL#2] .text:0004733C ADD R2, R2, #1 .text:00047340 CMP R2, R1 .text:00047344 BLT loc_47334 .text:00047348 .text:00047348 loc_47348 ; CODE XREF: __strtod_internal+230Cj .text:00047348 ; __strtod_internal+231Cj .text:00047348 MOV R3, #0 .text:0004734C .text:0004734C loc_4734C ; CODE XREF: __strtod_internal+2304j .text:0004734C ADDS R0, R0, R3 .text:00047350 BEQ loc_47374 .text:00047354 LDR R3, [R11,#var_1D4] .text:00047358 LDR R12, [R11,#var_1D8] .text:0004735C LDR R2, [R3] .text:00047360 STR R0, [R12,R2,LSL#2] .text:00047364 LDR LR, [R11,#var_1D4] .text:00047368 LDR R3, [LR] .text:0004736C ADD R3, R3, #1 .text:00047370 .text:00047370 loc_47370 ; CODE XREF: __strtod_internal+229Cj .text:00047370 STR R3, [LR] .text:00047374 .text:00047374 loc_47374 ; CODE XREF: __strtod_internal+233Cj .text:00047374 MOV R6, #0 .text:00047378 MOV R0, R6 .text:0004737C .text:0004737C loc_4737C ; CODE XREF: __strtod_internal+2284j .text:0004737C MOV R2, R6,LSL#2 .text:00047380 LDRB R1, [R4] .text:00047384 ADD R12, R0, #1 .text:00047388 SUB R3, R1, #0x30 .text:0004738C CMP R3, #9 .text:00047390 BLS loc_47408 .text:00047394 LDR R0, [R11,#var_19C] .text:00047398 CMP R0, #0 .text:0004739C BEQ loc_47400 .text:000473A0 LDRB R3, [R0] .text:000473A4 CMP R1, R3 .text:000473A8 BNE loc_47400 .text:000473AC LDR R3, [R11,#var_19C] .text:000473B0 MOV R0, #1 .text:000473B4 LDRB R1, [R3,R0] .text:000473B8 CMP R1, #0 .text:000473BC BEQ loc_473EC .text:000473C0 LDRB R3, [R4,#1] .text:000473C4 CMP R1, R3 .text:000473C8 BNE loc_473EC .text:000473CC .text:000473CC loc_473CC ; CODE XREF: __strtod_internal+23D4j .text:000473CC LDR LR, [R11,#var_19C] .text:000473D0 ADD R0, R0, #1 .text:000473D4 LDRB R1, [LR,R0] .text:000473D8 CMP R1, #0 .text:000473DC BEQ loc_473EC .text:000473E0 LDRB R3, [R4,R0] .text:000473E4 CMP R1, R3 .text:000473E8 BEQ loc_473CC .text:000473EC .text:000473EC loc_473EC ; CODE XREF: __strtod_internal+23A8j .text:000473EC ; __strtod_internal+23B4j ... .text:000473EC LDR R1, [R11,#var_19C] .text:000473F0 LDRB R3, [R1,R0] .text:000473F4 CMP R3, #0 .text:000473F8 ADDEQ R4, R4, R0 .text:000473FC BEQ loc_47408 .text:00047400 .text:00047400 loc_47400 ; CODE XREF: __strtod_internal+2388j .text:00047400 ; __strtod_internal+2394j .text:00047400 LDR R3, [R11,#var_198] .text:00047404 ADD R4, R4, R3 .text:00047408 .text:00047408 loc_47408 ; CODE XREF: __strtod_internal+237Cj .text:00047408 ; __strtod_internal+23E8j .text:00047408 MOV R0, R12 .text:0004740C SUBS R1, R7, #0 .text:00047410 LDRB R3, [R4],#1 .text:00047414 ADD R2, R2, R6 .text:00047418 ADD R3, R3, R2,LSL#1 .text:0004741C SUB R6, R3, #0x30 .text:00047420 BGT loc_47290 .text:00047424 LDR R4, [R11,#var_1D0] .text:00047428 LDR R2, [R4] .text:0004742C CMP R2, #0 .text:00047430 BLE loc_4745C .text:00047434 ADD R3, R12, R2 .text:00047438 CMP R3, #9 .text:0004743C BGT loc_4745C .text:00047440 LDR LR, =_tens_in_limb_0 .text:00047444 LDR R12, [LR,R3,LSL#2] .text:00047448 LDR R2, [LR,R2,LSL#2] .text:0004744C MOV R3, #0 .text:00047450 STR R3, [R4] .text:00047454 MUL R6, R2, R6 .text:00047458 B loc_47464 .text:0004745C ; --------------------------------------------------------------------------- .text:0004745C .text:0004745C loc_4745C ; CODE XREF: __strtod_internal+241Cj .text:0004745C ; __strtod_internal+2428j .text:0004745C LDR R0, =_tens_in_limb_0 .text:00047460 LDR R12, [R0,R12,LSL#2] .text:00047464 .text:00047464 loc_47464 ; CODE XREF: __strtod_internal+2444j .text:00047464 LDR R1, [R11,#var_1D4] .text:00047468 LDR R2, [R1] .text:0004746C CMP R2, #0 .text:00047470 BNE loc_47498 .text:00047474 STR R6, [R11,#var_C0] .text:00047478 MOV R3, #1 .text:0004747C STR R3, [R1] .text:00047480 B loc_47548 .text:00047480 ; --------------------------------------------------------------------------- .text:00047484 off_47484 DCD dword_616C4 ; DATA XREF: __strtod_internal+20CCr .text:00047488 off_47488 DCD dword_616CC ; DATA XREF: __strtod_internal+20DCr .text:0004748C off_4748C DCD _fpioconst_pow10 ; DATA XREF: __strtod_internal+2134r .text:00047490 off_47490 DCD __tens+8 ; DATA XREF: __strtod_internal+21C0r .text:00047490 ; __strtod_internal+21E4r .text:00047494 off_47494 DCD _tens_in_limb_0 ; DATA XREF: __strtod_internal+242Cr .text:00047494 ; __strtod_internal:loc_4745Cr .text:00047498 ; --------------------------------------------------------------------------- .text:00047498 .text:00047498 loc_47498 ; CODE XREF: __strtod_internal+245Cj .text:00047498 SUB R0, R11, #-var_C0 .text:0004749C MOV R1, R0 .text:000474A0 MOV R3, R12 .text:000474A4 BL __mpn_mul_1 .text:000474A8 SUB LR, R11, #-var_BC .text:000474AC LDR R1, [R11,#var_C0] .text:000474B0 MOV R4, LR .text:000474B4 LDR R2, [R11,#var_1D4] .text:000474B8 ADD R3, R6, R1 .text:000474BC LDR R12, [R2] .text:000474C0 CMP R3, R1 .text:000474C4 STR R3, [R11,#var_C0] .text:000474C8 BCS loc_474F8 .text:000474CC SUBS R12, R12, #1 .text:000474D0 BEQ loc_474F0 .text:000474D4 .text:000474D4 loc_474D4 ; CODE XREF: __strtod_internal+24D8j .text:000474D4 LDR R3, [LR],#4 .text:000474D8 ADD R1, R3, #1 .text:000474DC CMP R1, #0 .text:000474E0 STR R1, [R4],#4 .text:000474E4 BNE loc_474F8 .text:000474E8 SUBS R12, R12, #1 .text:000474EC BNE loc_474D4 .text:000474F0 .text:000474F0 loc_474F0 ; CODE XREF: __strtod_internal+24BCj .text:000474F0 MOV R3, #1 .text:000474F4 B loc_47528 .text:000474F8 ; --------------------------------------------------------------------------- .text:000474F8 .text:000474F8 loc_474F8 ; CODE XREF: __strtod_internal+24B4j .text:000474F8 ; __strtod_internal+24D0j .text:000474F8 CMP R4, LR .text:000474FC BEQ loc_47524 .text:00047500 MOV R2, #0 .text:00047504 SUB R1, R12, #1 .text:00047508 CMP R2, R1 .text:0004750C BGE loc_47524 .text:00047510 .text:00047510 loc_47510 ; CODE XREF: __strtod_internal+250Cj .text:00047510 LDR R3, [LR,R2,LSL#2] .text:00047514 STR R3, [R4,R2,LSL#2] .text:00047518 ADD R2, R2, #1 .text:0004751C CMP R2, R1 .text:00047520 BLT loc_47510 .text:00047524 .text:00047524 loc_47524 ; CODE XREF: __strtod_internal+24E8j .text:00047524 ; __strtod_internal+24F8j .text:00047524 MOV R3, #0 .text:00047528 .text:00047528 loc_47528 ; CODE XREF: __strtod_internal+24E0j .text:00047528 ADDS R0, R0, R3 .text:0004752C BEQ loc_47548 .text:00047530 LDR R4, [R11,#var_1D4] .text:00047534 LDR R12, [R11,#var_1D8] .text:00047538 LDR R3, [R4] .text:0004753C STR R0, [R12,R3,LSL#2] .text:00047540 ADD R3, R3, #1 .text:00047544 STR R3, [R4] .text:00047548 .text:00047548 loc_47548 ; CODE XREF: __strtod_internal+246Cj .text:00047548 ; __strtod_internal+2518j .text:00047548 LDR R0, [R11,#var_1E0] .text:0004754C SUB LR, R11, #-var_158 .text:00047550 LDR R2, [LR,R0,LSL#2] .text:00047554 CMP R2, #0x10000 .text:00047558 BCS loc_4756C .text:0004755C CMP R2, #0xFF .text:00047560 MOVHI R1, #8 .text:00047564 MOVLS R1, #0 .text:00047568 B loc_47578 .text:0004756C ; --------------------------------------------------------------------------- .text:0004756C .text:0004756C loc_4756C ; CODE XREF: __strtod_internal+2544j .text:0004756C CMP R2, #0x1000000 .text:00047570 MOVCS R1, #0x18 .text:00047574 MOVCC R1, #0x10 .text:00047578 .text:00047578 loc_47578 ; CODE XREF: __strtod_internal+2554j .text:00047578 LDR R4, =__clz_tab_1 .text:0004757C MOV R2, R2,LSR R1 .text:00047580 LDRB R3, [R4,R2] .text:00047584 ADD R3, R3, R1 .text:00047588 RSB R4, R3, #0x20 .text:0004758C CMP R4, #0 .text:00047590 BLE loc_475D8 .text:00047594 SUB R0, R11, #-var_158 .text:00047598 MOV R1, R0 .text:0004759C LDR R2, [R11,#var_180] .text:000475A0 MOV R3, R4 .text:000475A4 BL __mpn_lshift .text:000475A8 LDR R0, [R11,#var_1D8] .text:000475AC MOV R3, R4 .text:000475B0 LDR R2, [R11,#var_168] .text:000475B4 MOV R1, R0 .text:000475B8 BL __mpn_lshift .text:000475BC CMP R0, #0 .text:000475C0 BEQ loc_475D8 .text:000475C4 LDR R3, [R11,#var_168] .text:000475C8 LDR R12, [R11,#var_1D8] .text:000475CC STR R0, [R12,R3,LSL#2] .text:000475D0 ADD R3, R3, #1 .text:000475D4 STR R3, [R11,#var_168] .text:000475D8 .text:000475D8 loc_475D8 ; CODE XREF: __strtod_internal+257Cj .text:000475D8 ; __strtod_internal+25ACj .text:000475D8 SUB R0, R11, #-var_184 .text:000475DC LDMIA R0, {R0,LR} .text:000475E0 CMP LR, #1 .text:000475E4 STR R0, [R11,#var_16C] .text:000475E8 BEQ loc_475F8 .text:000475EC CMP LR, #2 .text:000475F0 BEQ loc_47AB0 .text:000475F4 B loc_48164 .text:000475F8 ; --------------------------------------------------------------------------- .text:000475F8 .text:000475F8 loc_475F8 ; CODE XREF: __strtod_internal+25D4j .text:000475F8 MOV R1, #0 .text:000475FC STR R1, [R11,#var_1B4] .text:00047600 LDR R6, [R11,#var_158] .text:00047604 LDR R8, [R11,#var_C0] .text:00047608 MOV R9, R6,LSR#16 .text:0004760C MOV R2, R6,LSL#16 .text:00047610 MOV R2, R2,LSR#16 .text:00047614 STR R2, [R11,#var_1B8] .text:00047618 .text:00047618 loc_47618 ; CODE XREF: __strtod_internal+27F0j .text:00047618 MOV R0, R8 .text:0004761C MOV R1, R9 .text:00047620 BL __umodsi3 .text:00047624 MOV R4, R0 .text:00047628 MOV R0, R8 .text:0004762C MOV R1, R9 .text:00047630 BL __udivsi3 .text:00047634 LDR R3, [R11,#var_1B8] .text:00047638 MOV R5, R0 .text:0004763C MUL R3, R5, R3 .text:00047640 MOV R4, R4,LSL#16 .text:00047644 CMP R4, R3 .text:00047648 BCS loc_47664 .text:0004764C SUB R5, R5, #1 .text:00047650 ADDS R4, R4, R6 .text:00047654 BCS loc_47664 .text:00047658 CMP R4, R3 .text:0004765C SUBCC R5, R5, #1 .text:00047660 ADDCC R4, R4, R6 .text:00047664 .text:00047664 loc_47664 ; CODE XREF: __strtod_internal+2634j .text:00047664 ; __strtod_internal+2640j .text:00047664 RSB R4, R3, R4 .text:00047668 MOV R0, R4 .text:0004766C MOV R1, R9 .text:00047670 BL __umodsi3 .text:00047674 MOV R7, R0 .text:00047678 MOV R0, R4 .text:0004767C MOV R1, R9 .text:00047680 BL __udivsi3 .text:00047684 LDR R3, [R11,#var_1B8] .text:00047688 MUL R3, R0, R3 .text:0004768C MOV R7, R7,LSL#16 .text:00047690 CMP R7, R3 .text:00047694 BCS loc_476B0 .text:00047698 SUB R0, R0, #1 .text:0004769C ADDS R7, R7, R6 .text:000476A0 BCS loc_476B0 .text:000476A4 CMP R7, R3 .text:000476A8 SUBCC R0, R0, #1 .text:000476AC ADDCC R7, R7, R6 .text:000476B0 .text:000476B0 loc_476B0 ; CODE XREF: __strtod_internal+2680j .text:000476B0 ; __strtod_internal+268Cj .text:000476B0 RSB R7, R3, R7 .text:000476B4 MOV R8, R7 .text:000476B8 ORR R4, R0, R5,LSL#16 .text:000476BC LDR R3, [R11,#var_184] .text:000476C0 CMP R3, #0 .text:000476C4 BNE loc_47758 .text:000476C8 CMP R4, #0 .text:000476CC MOVEQ R1, #0x20 .text:000476D0 BEQ loc_4770C .text:000476D4 CMP R4, #0x10000 .text:000476D8 BCS loc_476EC .text:000476DC CMP R4, #0xFF .text:000476E0 MOVHI R1, #8 .text:000476E4 MOVLS R1, #0 .text:000476E8 B loc_476F8 .text:000476EC ; --------------------------------------------------------------------------- .text:000476EC .text:000476EC loc_476EC ; CODE XREF: __strtod_internal+26C4j .text:000476EC CMP R4, #0x1000000 .text:000476F0 MOVCS R1, #0x18 .text:000476F4 MOVCC R1, #0x10 .text:000476F8 .text:000476F8 loc_476F8 ; CODE XREF: __strtod_internal+26D4j .text:000476F8 LDR R12, =__clz_tab_1 .text:000476FC MOV R2, R4,LSR R1 .text:00047700 LDRB R3, [R12,R2] .text:00047704 ADD R3, R3, R1 .text:00047708 RSB R1, R3, #0x20 .text:0004770C .text:0004770C loc_4770C ; CODE XREF: __strtod_internal+26BCj .text:0004770C RSB R2, R1, #0x20 .text:00047710 LDR R3, [R11,#var_16C] .text:00047714 CMP R2, #0x35 .text:00047718 RSB R3, R1, R3 .text:0004771C STR R3, [R11,#var_16C] .text:00047720 BLE loc_47740 .text:00047724 ADD R1, R1, #0x35 .text:00047728 STR R1, [R11,#var_1B4] .text:0004772C MOV LR, #0x36 .text:00047730 STR LR, [R11,#var_184] .text:00047734 RSB R3, R1, #0x20 .text:00047738 MOV R3, R4,LSR R3 .text:0004773C B loc_477F0 .text:00047740 ; --------------------------------------------------------------------------- .text:00047740 .text:00047740 loc_47740 ; CODE XREF: __strtod_internal+270Cj .text:00047740 MOV R3, #0 .text:00047744 STR R3, [R10,#4] .text:00047748 RSB R1, R1, #0 .text:0004774C STR R1, [R11,#var_184] .text:00047750 STR R4, [R11,#var_164] .text:00047754 B loc_477F4 .text:00047758 ; --------------------------------------------------------------------------- .text:00047758 .text:00047758 loc_47758 ; CODE XREF: __strtod_internal+26B0j .text:00047758 LDR R0, [R11,#var_184] .text:0004775C ADD R3, R0, #0x20 .text:00047760 CMP R3, #0x35 .text:00047764 BGT loc_4778C .text:00047768 MOV R2, #1 .text:0004776C ADD R1, R10, #4 .text:00047770 .text:00047770 loc_47770 ; CODE XREF: __strtod_internal+276Cj .text:00047770 LDR R3, [R1,#-4]! .text:00047774 STR R3, [R10,R2,LSL#2] .text:00047778 SUB R2, R2, #1 .text:0004777C CMP R2, #0 .text:00047780 BGT loc_47770 .text:00047784 STR R4, [R10] .text:00047788 B loc_477F4 .text:0004778C ; --------------------------------------------------------------------------- .text:0004778C .text:0004778C loc_4778C ; CODE XREF: __strtod_internal+2750j .text:0004778C LDR R1, [R11,#var_184] .text:00047790 RSB R1, R1, #0x35 .text:00047794 CMP R1, #0 .text:00047798 STR R1, [R11,#var_1B4] .text:0004779C BLE loc_477F4 .text:000477A0 CMP R1, #0x20 .text:000477A4 BNE loc_477CC .text:000477A8 MOV R2, #1 .text:000477AC ADD R1, R10, #4 .text:000477B0 .text:000477B0 loc_477B0 ; CODE XREF: __strtod_internal+27ACj .text:000477B0 LDR R3, [R1,#-4]! .text:000477B4 STR R3, [R10,R2,LSL#2] .text:000477B8 SUB R2, R2, #1 .text:000477BC CMP R2, #0 .text:000477C0 BGT loc_477B0 .text:000477C4 STR R4, [R10] .text:000477C8 B loc_477F4 .text:000477CC ; --------------------------------------------------------------------------- .text:000477CC .text:000477CC loc_477CC ; CODE XREF: __strtod_internal+2790j .text:000477CC MOV R0, R10 .text:000477D0 MOV R1, R10 .text:000477D4 LDR R3, [R11,#var_1B4] .text:000477D8 MOV R2, #2 .text:000477DC BL __mpn_lshift .text:000477E0 LDR R12, [R11,#var_1B4] .text:000477E4 LDR R3, [R11,#var_164] .text:000477E8 RSB R2, R12, #0x20 .text:000477EC ORR R3, R3, R4,LSR R2 .text:000477F0 .text:000477F0 loc_477F0 ; CODE XREF: __strtod_internal+2728j .text:000477F0 STR R3, [R11,#var_164] .text:000477F4 .text:000477F4 loc_477F4 ; CODE XREF: __strtod_internal+2740j .text:000477F4 ; __strtod_internal+2774j ... .text:000477F4 LDR LR, [R11,#var_184] .text:000477F8 ADD LR, LR, #0x20 .text:000477FC CMP LR, #0x35 .text:00047800 STR LR, [R11,#var_184] .text:00047804 BLE loc_47618 .text:00047808 MOV R8, R4 .text:0004780C SUBS R3, R7, #0 .text:00047810 MOVNE R3, #1 .text:00047814 MOV R2, 0xFFFFFC03 .text:00047818 LDR R1, [R11,#var_1B0] .text:0004781C SUB R2, R2, #1 .text:00047820 LDR R0, [R11,#var_1B4] .text:00047824 ORR R6, R1, R3 .text:00047828 LDR R3, [R11,#var_16C] .text:0004782C RSB R9, R0, #0x1F .text:00047830 SUB R4, R3, #1 .text:00047834 CMP R4, R2 .text:00047838 BGE loc_47990 .text:0004783C RSB R12, R4, #0xFC000002 .text:00047840 ADD R12, R12, #0x3FC0000 .text:00047844 ADD R12, R12, #0x3FC00 .text:00047848 CMP R12, #0x35 .text:0004784C BGT loc_48804 .text:00047850 MOV R3, #1 .text:00047854 MOV R3, R3,LSL R9 .text:00047858 SUB R3, R3, #1 .text:0004785C TST R8, R3 .text:00047860 ORRNE R6, R6, #1 .text:00047864 CMP R12, #0x35 .text:00047868 BNE loc_478B0 .text:0004786C MOV R9, #0x14 .text:00047870 MOV R2, #0 .text:00047874 LDR R8, [R10,#4] .text:00047878 .text:00047878 loc_47878 ; CODE XREF: __strtod_internal+2878j .text:00047878 LDR R3, [R10,R2,LSL#2] .text:0004787C ADD R2, R2, #1 .text:00047880 CMP R3, #0 .text:00047884 ORRNE R6, R6, #1 .text:00047888 CMP R2, #1 .text:0004788C BLE loc_47878 .text:00047890 MOV R1, #0 .text:00047894 ADD R3, R10, #4 .text:00047898 MOV R2, R10 .text:0004789C .text:0004789C loc_4789C ; CODE XREF: __strtod_internal+2890j .text:0004789C STR R1, [R3],#-4 .text:000478A0 CMP R3, R2 .text:000478A4 BGE loc_4789C .text:000478A8 B loc_47988 .text:000478A8 ; --------------------------------------------------------------------------- .text:000478AC off_478AC DCD __clz_tab_1 ; DATA XREF: __strtod_internal:loc_47578r .text:000478AC ; __strtod_internal:loc_476F8r .text:000478B0 ; --------------------------------------------------------------------------- .text:000478B0 .text:000478B0 loc_478B0 ; CODE XREF: __strtod_internal+2854j .text:000478B0 CMP R12, #0x1F .text:000478B4 BLE loc_47964 .text:000478B8 SUB R3, R12, #1 .text:000478BC CMP R3, #0 .text:000478C0 ADDLT R2, R3, #0x1F .text:000478C4 MOVGE R2, R3 .text:000478C8 MOV R2, R2,ASR#5 .text:000478CC SUB R9, R3, R2,LSL#5 .text:000478D0 MOV R1, #0 .text:000478D4 CMP R1, R2 .text:000478D8 MOV LR, R12,ASR#31 .text:000478DC LDR R8, [R10,R2,LSL#2] .text:000478E0 BGE loc_478FC .text:000478E4 .text:000478E4 loc_478E4 ; CODE XREF: __strtod_internal+28E4j .text:000478E4 LDR R3, [R10,R1,LSL#2] .text:000478E8 ADD R1, R1, #1 .text:000478EC CMP R3, #0 .text:000478F0 ORRNE R6, R6, #1 .text:000478F4 CMP R1, R2 .text:000478F8 BLT loc_478E4 .text:000478FC .text:000478FC loc_478FC ; CODE XREF: __strtod_internal+28CCj .text:000478FC MOV R3, #1 .text:00047900 MOV R3, R3,LSL R9 .text:00047904 SUB R3, R3, #1 .text:00047908 TST R8, R3 .text:0004790C ORRNE R6, R6, #1 .text:00047910 MOV R0, R10 .text:00047914 MOV R3, LR,LSR#27 .text:00047918 ADD R3, R12, R3 .text:0004791C MOV R4, R3,ASR#5 .text:00047920 ADD R1, R10, R4,LSL#2 .text:00047924 RSB R5, R4, #2 .text:00047928 MOV R2, R5 .text:0004792C SUB R3, R12, R4,LSL#5 .text:00047930 BL __mpn_rshift .text:00047934 MOV R1, #0 .text:00047938 CMP R1, R4 .text:0004793C BGE loc_47988 .text:00047940 MOV R0, R4 .text:00047944 ADD R2, R10, R5,LSL#2 .text:00047948 MOV R12, R1 .text:0004794C .text:0004794C loc_4794C ; CODE XREF: __strtod_internal+2948j .text:0004794C MOV R3, R1,LSL#2 .text:00047950 ADD R1, R1, #1 .text:00047954 CMP R1, R0 .text:00047958 STR R12, [R3,R2] .text:0004795C BLT loc_4794C .text:00047960 B loc_47988 .text:00047964 ; --------------------------------------------------------------------------- .text:00047964 .text:00047964 loc_47964 ; CODE XREF: __strtod_internal+28A0j .text:00047964 CMP R12, #0 .text:00047968 BLE loc_47988 .text:0004796C SUB R9, R12, #1 .text:00047970 MOV R0, R10 .text:00047974 MOV R1, R10 .text:00047978 MOV R2, #2 .text:0004797C MOV R3, R12 .text:00047980 LDR R8, [R11,#var_164] .text:00047984 BL __mpn_rshift .text:00047988 .text:00047988 loc_47988 ; CODE XREF: __strtod_internal+2894j .text:00047988 ; __strtod_internal+2928j ... .text:00047988 MOV R4, 0xFFFFFC01 .text:00047990 .text:00047990 loc_47990 ; CODE XREF: __strtod_internal+2824j .text:00047990 MOV R3, R8,LSR R9 .text:00047994 TST R3, #1 .text:00047998 BEQ loc_47A84 .text:0004799C CMP R6, #0 .text:000479A0 LDR R2, [R10] .text:000479A4 BNE loc_479C4 .text:000479A8 TST R2, #1 .text:000479AC BNE loc_479C4 .text:000479B0 MOV R3, #1 .text:000479B4 MOV R3, R3,LSL R9 .text:000479B8 SUB R3, R3, #1 .text:000479BC TST R8, R3 .text:000479C0 BEQ loc_47A84 .text:000479C4 .text:000479C4 loc_479C4 ; CODE XREF: __strtod_internal+2990j .text:000479C4 ; __strtod_internal+2998j .text:000479C4 MOV R1, #2 .text:000479C8 ADD R0, R10, #4 .text:000479CC MOV R12, R0 .text:000479D0 ADD R3, R2, #1 .text:000479D4 CMP R3, R2 .text:000479D8 STR R3, [R10] .text:000479DC BCS loc_47A04 .text:000479E0 SUB R1, R1, #1 .text:000479E4 .text:000479E4 loc_479E4 ; CODE XREF: __strtod_internal+29E8j .text:000479E4 LDR R3, [R0],#4 .text:000479E8 ADD R2, R3, #1 .text:000479EC CMP R2, #0 .text:000479F0 STR R2, [R12],#4 .text:000479F4 BNE loc_47A04 .text:000479F8 SUBS R1, R1, #1 .text:000479FC BNE loc_479E4 .text:00047A00 B loc_47A30 .text:00047A04 ; --------------------------------------------------------------------------- .text:00047A04 .text:00047A04 loc_47A04 ; CODE XREF: __strtod_internal+29C8j .text:00047A04 ; __strtod_internal+29E0j .text:00047A04 CMP R12, R0 .text:00047A08 BEQ loc_47A30 .text:00047A0C MOV R2, #0 .text:00047A10 SUB R1, R1, #1 .text:00047A14 CMP R2, R1 .text:00047A18 BGE loc_47A30 .text:00047A1C .text:00047A1C loc_47A1C ; CODE XREF: __strtod_internal+2A18j .text:00047A1C LDR R3, [R0,R2,LSL#2] .text:00047A20 STR R3, [R12,R2,LSL#2] .text:00047A24 ADD R2, R2, #1 .text:00047A28 CMP R2, R1 .text:00047A2C BLT loc_47A1C .text:00047A30 .text:00047A30 loc_47A30 ; CODE XREF: __strtod_internal+29ECj .text:00047A30 ; __strtod_internal+29F4j ... .text:00047A30 LDR R2, [R10,#4] .text:00047A34 TST R2, #0x200000 .text:00047A38 BEQ loc_47A64 .text:00047A3C MOV R0, R10 .text:00047A40 MOV R1, R10 .text:00047A44 MOV R2, #2 .text:00047A48 MOV R3, #1 .text:00047A4C BL __mpn_rshift .text:00047A50 LDR R3, [R10,#4] .text:00047A54 ADD R4, R4, #1 .text:00047A58 ORR R3, R3, #0x100000 .text:00047A5C STR R3, [R10,#4] .text:00047A60 B loc_47A84 .text:00047A64 ; --------------------------------------------------------------------------- .text:00047A64 .text:00047A64 loc_47A64 ; CODE XREF: __strtod_internal+2A24j .text:00047A64 MOV R3, 0xFFFFFC01 .text:00047A6C CMP R4, R3 .text:00047A70 BNE loc_47A84 .text:00047A74 TST R2, #0x100000 .text:00047A78 MOV R3, 0xFFFFFC02 .text:00047A80 MOVNE R4, R3 .text:00047A84 .text:00047A84 loc_47A84 ; CODE XREF: __strtod_internal+2984j .text:00047A84 ; __strtod_internal+29ACj ... .text:00047A84 CMP R4, #0x400 .text:00047A88 BLE loc_48A8C .text:00047A8C LDR R2, [R11,#var_178] .text:00047A90 CMP R2, #0 .text:00047A94 LDRNE R3, =dword_616C4 .text:00047A98 LDCNE p1, c8, [R3] .text:00047A9C CDPNE p1, 1, c8,c0,c0, 4 .text:00047AA0 BNE loc_48A9C .text:00047AA4 LDR R3, =dword_616CC .text:00047AA8 LDC p1, c8, [R3] .text:00047AAC B loc_48A9C .text:00047AB0 ; --------------------------------------------------------------------------- .text:00047AB0 .text:00047AB0 loc_47AB0 ; CODE XREF: __strtod_internal+25DCj .text:00047AB0 MOV R4, #0 .text:00047AB4 STR R4, [R11,#var_1C0] .text:00047AB8 LDR R12, [R11,#var_158] .text:00047ABC STR R12, [R11,#var_1BC] .text:00047AC0 LDR R3, [R11,#var_168] .text:00047AC4 LDR LR, [R11,#var_180] .text:00047AC8 CMP R3, LR .text:00047ACC LDR R12, [R11,#var_154] .text:00047AD0 BGE loc_47BA4 .text:00047AD4 LDR R3, [R11,#var_C0] .text:00047AD8 CMP R3, R12 .text:00047ADC MOVCS R5, R4 .text:00047AE0 MOVCS R8, R3 .text:00047AE4 BCS loc_47BAC .text:00047AE8 LDR R0, [R11,#var_184] .text:00047AEC CMP R0, #0 .text:00047AF0 SUBLE R3, R0, #0x20 .text:00047AF4 STRLE R3, [R11,#var_16C] .text:00047AF8 BLE loc_47B98 .text:00047AFC LDR R1, [R11,#var_184] .text:00047B00 ADD R3, R1, #0x20 .text:00047B04 CMP R3, #0x35 .text:00047B08 MOV R5, R3 .text:00047B0C BGT loc_47B38 .text:00047B10 MOV R2, #1 .text:00047B14 ADD R1, R10, #4 .text:00047B18 .text:00047B18 loc_47B18 ; CODE XREF: __strtod_internal+2B14j .text:00047B18 LDR R3, [R1,#-4]! .text:00047B1C STR R3, [R10,R2,LSL#2] .text:00047B20 SUB R2, R2, #1 .text:00047B24 CMP R2, #0 .text:00047B28 BGT loc_47B18 .text:00047B2C LDR R2, [R11,#var_1C0] .text:00047B30 STR R2, [R10] .text:00047B34 B loc_47B94 .text:00047B38 ; --------------------------------------------------------------------------- .text:00047B38 .text:00047B38 loc_47B38 ; CODE XREF: __strtod_internal+2AF8j .text:00047B38 LDR R3, [R11,#var_184] .text:00047B3C RSB R3, R3, #0x35 .text:00047B40 CMP R3, #0 .text:00047B44 STR R3, [R11,#var_1C0] .text:00047B48 BLE loc_47B94 .text:00047B4C CMP R3, #0x20 .text:00047B50 BNE loc_47B78 .text:00047B54 MOV R2, #1 .text:00047B58 ADD R1, R10, #4 .text:00047B5C .text:00047B5C loc_47B5C ; CODE XREF: __strtod_internal+2B58j .text:00047B5C LDR R3, [R1,#-4]! .text:00047B60 STR R3, [R10,R2,LSL#2] .text:00047B64 SUB R2, R2, #1 .text:00047B68 CMP R2, #0 .text:00047B6C BGT loc_47B5C .text:00047B70 STR R4, [R10] .text:00047B74 B loc_47B94 .text:00047B78 ; --------------------------------------------------------------------------- .text:00047B78 .text:00047B78 loc_47B78 ; CODE XREF: __strtod_internal+2B3Cj .text:00047B78 STR R12, [R11,#var_1F0] .text:00047B7C LDR R2, [R11,#var_180] .text:00047B80 MOV R0, R10 .text:00047B84 LDR R3, [R11,#var_1C0] .text:00047B88 MOV R1, R10 .text:00047B8C BL __mpn_lshift .text:00047B90 LDR R12, [R11,#var_1F0] .text:00047B94 .text:00047B94 loc_47B94 ; CODE XREF: __strtod_internal+2B20j .text:00047B94 ; __strtod_internal+2B34j ... .text:00047B94 STR R5, [R11,#var_184] .text:00047B98 .text:00047B98 loc_47B98 ; CODE XREF: __strtod_internal+2AE4j .text:00047B98 MOV R8, #0 .text:00047B9C LDR R5, [R11,#var_C0] .text:00047BA0 B loc_47BAC .text:00047BA4 ; --------------------------------------------------------------------------- .text:00047BA4 .text:00047BA4 loc_47BA4 ; CODE XREF: __strtod_internal+2ABCj .text:00047BA4 LDR R5, [R11,#var_BC] .text:00047BA8 LDR R8, [R11,#var_C0] .text:00047BAC .text:00047BAC loc_47BAC ; CODE XREF: __strtod_internal+2AD0j .text:00047BAC ; __strtod_internal+2B8Cj .text:00047BAC LDR LR, [R11,#var_184] .text:00047BB0 CMP LR, #0x35 .text:00047BB4 BGT loc_47E94 .text:00047BB8 .text:00047BB8 loc_47BB8 ; CODE XREF: __strtod_internal+2E7Cj .text:00047BB8 CMP R5, R12 .text:00047BBC BNE loc_47BF8 .text:00047BC0 MOV R4, 0xFFFFFFFF .text:00047BC4 ADDS R0, R8, R5 .text:00047BC8 BCC loc_47BE0 .text:00047BCC LDR R1, [R11,#var_1BC] .text:00047BD0 RSB R3, R1, R0 .text:00047BD4 MOVS R8, R1 .text:00047BD8 ADC R5, R3, #0 .text:00047BDC B loc_47D34 .text:00047BE0 ; --------------------------------------------------------------------------- .text:00047BE0 .text:00047BE0 loc_47BE0 ; CODE XREF: __strtod_internal+2BB4j .text:00047BE0 LDR R5, [R11,#var_1BC] .text:00047BE4 MOV R2, R5 .text:00047BE8 CMP R2, #0 .text:00047BEC SUBNE R5, R5, #1 .text:00047BF0 RSB R8, R2, #0 .text:00047BF4 B loc_47CEC .text:00047BF8 ; --------------------------------------------------------------------------- .text:00047BF8 .text:00047BF8 loc_47BF8 ; CODE XREF: __strtod_internal+2BA8j .text:00047BF8 MOV R6, R12,LSL#16 .text:00047BFC STR R12, [R11,#var_1F0] .text:00047C00 MOV R6, R6,LSR#16 .text:00047C04 MOV R0, R5 .text:00047C08 MOV R9, R12,LSR#16 .text:00047C0C MOV R1, R9 .text:00047C10 BL __umodsi3 .text:00047C14 MOV R4, R0 .text:00047C18 MOV R0, R5 .text:00047C1C MOV R1, R9 .text:00047C20 BL __udivsi3 .text:00047C24 MOV R7, R0 .text:00047C28 MUL R2, R6, R7 .text:00047C2C MOV R3, R8,LSR#16 .text:00047C30 ORR R4, R3, R4,LSL#16 .text:00047C34 LDR R12, [R11,#var_1F0] .text:00047C38 CMP R4, R2 .text:00047C3C BCS loc_47C58 .text:00047C40 SUB R7, R7, #1 .text:00047C44 ADDS R4, R4, R12 .text:00047C48 BCS loc_47C58 .text:00047C4C CMP R4, R2 .text:00047C50 SUBCC R7, R7, #1 .text:00047C54 ADDCC R4, R4, R12 .text:00047C58 .text:00047C58 loc_47C58 ; CODE XREF: __strtod_internal+2C28j .text:00047C58 ; __strtod_internal+2C34j .text:00047C58 STR R12, [R11,#var_1F0] .text:00047C5C RSB R4, R2, R4 .text:00047C60 MOV R0, R4 .text:00047C64 MOV R1, R9 .text:00047C68 BL __umodsi3 .text:00047C6C MOV R5, R0 .text:00047C70 MOV R0, R4 .text:00047C74 MOV R1, R9 .text:00047C78 BL __udivsi3 .text:00047C7C MUL R2, R6, R0 .text:00047C80 MOV R3, R8,LSL#16 .text:00047C84 MOV R3, R3,LSR#16 .text:00047C88 ORR R5, R3, R5,LSL#16 .text:00047C8C LDR R12, [R11,#var_1F0] .text:00047C90 CMP R5, R2 .text:00047C94 BCS loc_47CB0 .text:00047C98 SUB R0, R0, #1 .text:00047C9C ADDS R5, R5, R12 .text:00047CA0 BCS loc_47CB0 .text:00047CA4 CMP R5, R2 .text:00047CA8 SUBCC R0, R0, #1 .text:00047CAC ADDCC R5, R5, R12 .text:00047CB0 .text:00047CB0 loc_47CB0 ; CODE XREF: __strtod_internal+2C80j .text:00047CB0 ; __strtod_internal+2C8Cj .text:00047CB0 ORR R4, R0, R7,LSL#16 .text:00047CB4 RSB R0, R2, R5 .text:00047CB8 LDR LR, [R11,#var_1BC] .text:00047CBC MOV R1, LR,LSR#16 .text:00047CC0 MOV R5, R4,LSR#16 .text:00047CC4 BIC R2, LR, R1,LSL#16 .text:00047CC8 BIC R3, R4, R5,LSL#16 .text:00047CCC MUL R8, R2, R3 .text:00047CD0 MUL R3, R1, R3 .text:00047CD4 MUL R2, R5, R2 .text:00047CD8 MUL R5, R1, R5 .text:00047CDC ADDS R2, R3, R2 .text:00047CE0 ADDCS R5, R5, #0x10000 .text:00047CE4 ADDS R8, R8, R2,LSL#16 .text:00047CE8 ADC R5, R5, R2,LSR#16 .text:00047CEC .text:00047CEC loc_47CEC ; CODE XREF: __strtod_internal+2BE0j .text:00047CEC ; __strtod_internal+2D0Cj .text:00047CEC CMP R5, R0 .text:00047CF0 BHI loc_47D08 .text:00047CF4 MOVNE R3, #0 .text:00047CF8 MOVEQ R3, #1 .text:00047CFC CMP R3, #0 .text:00047D00 CMPNE R8, #0 .text:00047D04 BEQ loc_47D24 .text:00047D08 .text:00047D08 loc_47D08 ; CODE XREF: __strtod_internal+2CDCj .text:00047D08 SUB R4, R4, #1 .text:00047D0C LDR R2, [R11,#var_1BC] .text:00047D10 SUBS R1, R8, R2 .text:00047D14 SBC R5, R5, #0 .text:00047D18 MOV R8, R1 .text:00047D1C ADDS R0, R0, R12 .text:00047D20 BCC loc_47CEC .text:00047D24 .text:00047D24 loc_47D24 ; CODE XREF: __strtod_internal+2CF0j .text:00047D24 MOV LR, #0 .text:00047D28 SUBS R3, LR, R8 .text:00047D2C SBC R5, R0, R5 .text:00047D30 MOV R8, R3 .text:00047D34 .text:00047D34 loc_47D34 ; CODE XREF: __strtod_internal+2BC8j .text:00047D34 LDR R0, [R11,#var_184] .text:00047D38 CMP R0, #0 .text:00047D3C BNE loc_47DD0 .text:00047D40 CMP R4, #0 .text:00047D44 MOVEQ R1, #0x20 .text:00047D48 BEQ loc_47D84 .text:00047D4C CMP R4, #0x10000 .text:00047D50 BCS loc_47D64 .text:00047D54 CMP R4, #0xFF .text:00047D58 MOVHI R1, #8 .text:00047D5C MOVLS R1, #0 .text:00047D60 B loc_47D70 .text:00047D64 ; --------------------------------------------------------------------------- .text:00047D64 .text:00047D64 loc_47D64 ; CODE XREF: __strtod_internal+2D3Cj .text:00047D64 CMP R4, #0x1000000 .text:00047D68 MOVCS R1, #0x18 .text:00047D6C MOVCC R1, #0x10 .text:00047D70 .text:00047D70 loc_47D70 ; CODE XREF: __strtod_internal+2D4Cj .text:00047D70 LDR LR, =__clz_tab_1 .text:00047D74 MOV R2, R4,LSR R1 .text:00047D78 LDRB R3, [LR,R2] .text:00047D7C ADD R3, R3, R1 .text:00047D80 RSB R1, R3, #0x20 .text:00047D84 .text:00047D84 loc_47D84 ; CODE XREF: __strtod_internal+2D34j .text:00047D84 RSB R2, R1, #0x20 .text:00047D88 LDR R3, [R11,#var_16C] .text:00047D8C CMP R2, #0x35 .text:00047D90 RSB R3, R1, R3 .text:00047D94 STR R3, [R11,#var_16C] .text:00047D98 BLE loc_47DB8 .text:00047D9C ADD R1, R1, #0x35 .text:00047DA0 STR R1, [R11,#var_1C0] .text:00047DA4 MOV R0, #0x36 .text:00047DA8 STR R0, [R11,#var_184] .text:00047DAC RSB R3, R1, #0x20 .text:00047DB0 MOV R3, R4,LSR R3 .text:00047DB4 B loc_47E7C .text:00047DB8 ; --------------------------------------------------------------------------- .text:00047DB8 .text:00047DB8 loc_47DB8 ; CODE XREF: __strtod_internal+2D84j .text:00047DB8 MOV R2, #0 .text:00047DBC STR R2, [R10,#4] .text:00047DC0 RSB R1, R1, #0 .text:00047DC4 STR R1, [R11,#var_184] .text:00047DC8 STR R4, [R11,#var_164] .text:00047DCC B loc_47E80 .text:00047DD0 ; --------------------------------------------------------------------------- .text:00047DD0 .text:00047DD0 loc_47DD0 ; CODE XREF: __strtod_internal+2D28j .text:00047DD0 LDR LR, [R11,#var_184] .text:00047DD4 ADD R3, LR, #0x20 .text:00047DD8 CMP R3, #0x35 .text:00047DDC BGT loc_47E04 .text:00047DE0 MOV R2, #1 .text:00047DE4 ADD R1, R10, #4 .text:00047DE8 .text:00047DE8 loc_47DE8 ; CODE XREF: __strtod_internal+2DE4j .text:00047DE8 LDR R3, [R1,#-4]! .text:00047DEC STR R3, [R10,R2,LSL#2] .text:00047DF0 SUB R2, R2, #1 .text:00047DF4 CMP R2, #0 .text:00047DF8 BGT loc_47DE8 .text:00047DFC STR R4, [R10] .text:00047E00 B loc_47E80 .text:00047E04 ; --------------------------------------------------------------------------- .text:00047E04 .text:00047E04 loc_47E04 ; CODE XREF: __strtod_internal+2DC8j .text:00047E04 LDR R0, [R11,#var_184] .text:00047E08 RSB R0, R0, #0x35 .text:00047E0C CMP R0, #0 .text:00047E10 STR R0, [R11,#var_1C0] .text:00047E14 BLE loc_47E80 .text:00047E18 CMP R0, #0x20 .text:00047E1C BNE loc_47E50 .text:00047E20 MOV R2, #1 .text:00047E24 ADD R1, R10, #4 .text:00047E28 .text:00047E28 loc_47E28 ; CODE XREF: __strtod_internal+2E24j .text:00047E28 LDR R3, [R1,#-4]! .text:00047E2C STR R3, [R10,R2,LSL#2] .text:00047E30 SUB R2, R2, #1 .text:00047E34 CMP R2, #0 .text:00047E38 BGT loc_47E28 .text:00047E3C STR R4, [R10] .text:00047E40 B loc_47E80 .text:00047E40 ; --------------------------------------------------------------------------- .text:00047E44 off_47E44 DCD dword_616C4 ; DATA XREF: __strtod_internal+2A80r .text:00047E48 off_47E48 DCD dword_616CC ; DATA XREF: __strtod_internal+2A90r .text:00047E4C off_47E4C DCD __clz_tab_1 ; DATA XREF: __strtod_internal:loc_47D70r .text:00047E50 ; --------------------------------------------------------------------------- .text:00047E50 .text:00047E50 loc_47E50 ; CODE XREF: __strtod_internal+2E08j .text:00047E50 STR R12, [R11,#var_1F0] .text:00047E54 MOV R0, R10 .text:00047E58 MOV R1, R10 .text:00047E5C LDR R3, [R11,#var_1C0] .text:00047E60 MOV R2, #2 .text:00047E64 BL __mpn_lshift .text:00047E68 LDR R3, [R11,#var_164] .text:00047E6C LDR R1, [R11,#var_1C0] .text:00047E70 LDR R12, [R11,#var_1F0] .text:00047E74 RSB R2, R1, #0x20 .text:00047E78 ORR R3, R3, R4,LSR R2 .text:00047E7C .text:00047E7C loc_47E7C ; CODE XREF: __strtod_internal+2DA0j .text:00047E7C STR R3, [R11,#var_164] .text:00047E80 .text:00047E80 loc_47E80 ; CODE XREF: __strtod_internal+2DB8j .text:00047E80 ; __strtod_internal+2DECj ... .text:00047E80 LDR R2, [R11,#var_184] .text:00047E84 ADD R2, R2, #0x20 .text:00047E88 CMP R2, #0x35 .text:00047E8C STR R2, [R11,#var_184] .text:00047E90 BLE loc_47BB8 .text:00047E94 .text:00047E94 loc_47E94 ; CODE XREF: __strtod_internal+2BA0j .text:00047E94 LDR R3, [R11,#var_16C] .text:00047E98 LDR R12, [R11,#var_1B0] .text:00047E9C MOV R2, #0 .text:00047EA0 LDR LR, [R11,#var_1C0] .text:00047EA4 CMP R5, R2 .text:00047EA8 CMPEQ R12, R2 .text:00047EAC SUB R1, R3, #1 .text:00047EB0 RSB R3, LR, #0x1F .text:00047EB4 BNE loc_47EC0 .text:00047EB8 CMP R8, R2 .text:00047EBC BEQ loc_47EC4 .text:00047EC0 .text:00047EC0 loc_47EC0 ; CODE XREF: __strtod_internal+2EA0j .text:00047EC0 MOV R2, #1 .text:00047EC4 .text:00047EC4 loc_47EC4 ; CODE XREF: __strtod_internal+2EA8j .text:00047EC4 MOV R5, R1 .text:00047EC8 MOV R7, R4 .text:00047ECC MOV R8, R3 .text:00047ED0 MOV R6, R2 .text:00047ED4 MOV R3, 0xFFFFFC02 .text:00047EDC CMP R5, R3 .text:00047EE0 BGE loc_48034 .text:00047EE4 RSB R12, R5, #0xFC000002 .text:00047EE8 ADD R12, R12, #0x3FC0000 .text:00047EEC ADD R12, R12, #0x3FC00 .text:00047EF0 CMP R12, #0x35 .text:00047EF4 BGT loc_48804 .text:00047EF8 MOV R3, #1 .text:00047EFC MOV R3, R3,LSL R8 .text:00047F00 SUB R3, R3, #1 .text:00047F04 TST R7, R3 .text:00047F08 ORRNE R6, R6, #1 .text:00047F0C CMP R12, #0x35 .text:00047F10 BNE loc_47F54 .text:00047F14 MOV R8, #0x14 .text:00047F18 MOV R2, #0 .text:00047F1C LDR R7, [R10,#4] .text:00047F20 .text:00047F20 loc_47F20 ; CODE XREF: __strtod_internal+2F20j .text:00047F20 LDR R3, [R10,R2,LSL#2] .text:00047F24 ADD R2, R2, #1 .text:00047F28 CMP R3, #0 .text:00047F2C ORRNE R6, R6, #1 .text:00047F30 CMP R2, #1 .text:00047F34 BLE loc_47F20 .text:00047F38 MOV R1, #0 .text:00047F3C ADD R3, R10, #4 .text:00047F40 MOV R2, R10 .text:00047F44 .text:00047F44 loc_47F44 ; CODE XREF: __strtod_internal+2F38j .text:00047F44 STR R1, [R3],#-4 .text:00047F48 CMP R3, R2 .text:00047F4C BGE loc_47F44 .text:00047F50 B loc_4802C .text:00047F54 ; --------------------------------------------------------------------------- .text:00047F54 .text:00047F54 loc_47F54 ; CODE XREF: __strtod_internal+2EFCj .text:00047F54 CMP R12, #0x1F .text:00047F58 BLE loc_48008 .text:00047F5C SUB R3, R12, #1 .text:00047F60 CMP R3, #0 .text:00047F64 ADDLT R2, R3, #0x1F .text:00047F68 MOVGE R2, R3 .text:00047F6C MOV R2, R2,ASR#5 .text:00047F70 SUB R8, R3, R2,LSL#5 .text:00047F74 MOV R1, #0 .text:00047F78 CMP R1, R2 .text:00047F7C MOV LR, R12,ASR#31 .text:00047F80 LDR R7, [R10,R2,LSL#2] .text:00047F84 BGE loc_47FA0 .text:00047F88 .text:00047F88 loc_47F88 ; CODE XREF: __strtod_internal+2F88j .text:00047F88 LDR R3, [R10,R1,LSL#2] .text:00047F8C ADD R1, R1, #1 .text:00047F90 CMP R3, #0 .text:00047F94 ORRNE R6, R6, #1 .text:00047F98 CMP R1, R2 .text:00047F9C BLT loc_47F88 .text:00047FA0 .text:00047FA0 loc_47FA0 ; CODE XREF: __strtod_internal+2F70j .text:00047FA0 MOV R3, #1 .text:00047FA4 MOV R3, R3,LSL R8 .text:00047FA8 SUB R3, R3, #1 .text:00047FAC TST R7, R3 .text:00047FB0 ORRNE R6, R6, #1 .text:00047FB4 MOV R0, R10 .text:00047FB8 MOV R3, LR,LSR#27 .text:00047FBC ADD R3, R12, R3 .text:00047FC0 MOV R4, R3,ASR#5 .text:00047FC4 ADD R1, R10, R4,LSL#2 .text:00047FC8 RSB R5, R4, #2 .text:00047FCC MOV R2, R5 .text:00047FD0 SUB R3, R12, R4,LSL#5 .text:00047FD4 BL __mpn_rshift .text:00047FD8 MOV R1, #0 .text:00047FDC CMP R1, R4 .text:00047FE0 BGE loc_4802C .text:00047FE4 MOV R0, R4 .text:00047FE8 ADD R2, R10, R5,LSL#2 .text:00047FEC MOV R12, R1 .text:00047FF0 .text:00047FF0 loc_47FF0 ; CODE XREF: __strtod_internal+2FECj .text:00047FF0 MOV R3, R1,LSL#2 .text:00047FF4 ADD R1, R1, #1 .text:00047FF8 CMP R1, R0 .text:00047FFC STR R12, [R3,R2] .text:00048000 BLT loc_47FF0 .text:00048004 B loc_4802C .text:00048008 ; --------------------------------------------------------------------------- .text:00048008 .text:00048008 loc_48008 ; CODE XREF: __strtod_internal+2F44j .text:00048008 CMP R12, #0 .text:0004800C BLE loc_4802C .text:00048010 SUB R8, R12, #1 .text:00048014 MOV R0, R10 .text:00048018 MOV R1, R10 .text:0004801C MOV R2, #2 .text:00048020 MOV R3, R12 .text:00048024 LDR R7, [R11,#var_164] .text:00048028 BL __mpn_rshift .text:0004802C .text:0004802C loc_4802C ; CODE XREF: __strtod_internal+2F3Cj .text:0004802C ; __strtod_internal+2FCCj ... .text:0004802C MOV R5, 0xFFFFFC01 .text:00048034 .text:00048034 loc_48034 ; CODE XREF: __strtod_internal+2ECCj .text:00048034 MOV R3, R7,LSR R8 .text:00048038 TST R3, #1 .text:0004803C BEQ loc_48128 .text:00048040 CMP R6, #0 .text:00048044 LDR R2, [R10] .text:00048048 BNE loc_48068 .text:0004804C TST R2, #1 .text:00048050 BNE loc_48068 .text:00048054 MOV R3, #1 .text:00048058 MOV R3, R3,LSL R8 .text:0004805C SUB R3, R3, #1 .text:00048060 TST R7, R3 .text:00048064 BEQ loc_48128 .text:00048068 .text:00048068 loc_48068 ; CODE XREF: __strtod_internal+3034j .text:00048068 ; __strtod_internal+303Cj .text:00048068 MOV R1, #2 .text:0004806C ADD R0, R10, #4 .text:00048070 MOV R12, R0 .text:00048074 ADD R3, R2, #1 .text:00048078 CMP R3, R2 .text:0004807C STR R3, [R10] .text:00048080 BCS loc_480A8 .text:00048084 SUB R1, R1, #1 .text:00048088 .text:00048088 loc_48088 ; CODE XREF: __strtod_internal+308Cj .text:00048088 LDR R3, [R0],#4 .text:0004808C ADD R2, R3, #1 .text:00048090 CMP R2, #0 .text:00048094 STR R2, [R12],#4 .text:00048098 BNE loc_480A8 .text:0004809C SUBS R1, R1, #1 .text:000480A0 BNE loc_48088 .text:000480A4 B loc_480D4 .text:000480A8 ; --------------------------------------------------------------------------- .text:000480A8 .text:000480A8 loc_480A8 ; CODE XREF: __strtod_internal+306Cj .text:000480A8 ; __strtod_internal+3084j .text:000480A8 CMP R12, R0 .text:000480AC BEQ loc_480D4 .text:000480B0 MOV R2, #0 .text:000480B4 SUB R1, R1, #1 .text:000480B8 CMP R2, R1 .text:000480BC BGE loc_480D4 .text:000480C0 .text:000480C0 loc_480C0 ; CODE XREF: __strtod_internal+30BCj .text:000480C0 LDR R3, [R0,R2,LSL#2] .text:000480C4 STR R3, [R12,R2,LSL#2] .text:000480C8 ADD R2, R2, #1 .text:000480CC CMP R2, R1 .text:000480D0 BLT loc_480C0 .text:000480D4 .text:000480D4 loc_480D4 ; CODE XREF: __strtod_internal+3090j .text:000480D4 ; __strtod_internal+3098j ... .text:000480D4 LDR R2, [R10,#4] .text:000480D8 TST R2, #0x200000 .text:000480DC BEQ loc_48108 .text:000480E0 MOV R0, R10 .text:000480E4 MOV R1, R10 .text:000480E8 MOV R2, #2 .text:000480EC MOV R3, #1 .text:000480F0 BL __mpn_rshift .text:000480F4 LDR R3, [R10,#4] .text:000480F8 ADD R5, R5, #1 .text:000480FC ORR R3, R3, #0x100000 .text:00048100 STR R3, [R10,#4] .text:00048104 B loc_48128 .text:00048108 ; --------------------------------------------------------------------------- .text:00048108 .text:00048108 loc_48108 ; CODE XREF: __strtod_internal+30C8j .text:00048108 MOV R3, 0xFFFFFC01 .text:00048110 CMP R5, R3 .text:00048114 BNE loc_48128 .text:00048118 TST R2, #0x100000 .text:0004811C MOV R3, 0xFFFFFC02 .text:00048124 MOVNE R5, R3 .text:00048128 .text:00048128 loc_48128 ; CODE XREF: __strtod_internal+3028j .text:00048128 ; __strtod_internal+3050j ... .text:00048128 CMP R5, #0x400 .text:0004812C BLE loc_48154 .text:00048130 LDR R0, [R11,#var_178] .text:00048134 CMP R0, #0 .text:00048138 LDRNE R3, =dword_616C4 .text:0004813C LDCNE p1, c8, [R3] .text:00048140 CDPNE p1, 1, c8,c0,c0, 4 .text:00048144 BNE loc_48A9C .text:00048148 LDR R3, =dword_616CC .text:0004814C LDC p1, c8, [R3] .text:00048150 B loc_48A9C .text:00048154 ; --------------------------------------------------------------------------- .text:00048154 .text:00048154 loc_48154 ; CODE XREF: __strtod_internal+3118j .text:00048154 MOV R0, R10 .text:00048158 LDR R2, [R11,#var_178] .text:0004815C MOV R1, R5 .text:00048160 B loc_48A98 .text:00048164 ; --------------------------------------------------------------------------- .text:00048164 .text:00048164 loc_48164 ; CODE XREF: __strtod_internal+25E0j .text:00048164 MOV R6, #0 .text:00048168 STR R6, [R11,#var_1C8] .text:0004816C LDR R2, [R11,#var_168] .text:00048170 LDR R3, [R11,#var_180] .text:00048174 SUB R12, R11, #-var_158 .text:00048178 LDR LR, [R11,#var_1E0] .text:0004817C RSB R1, R2, R3 .text:00048180 ADD R4, R11, R1,LSL#2 .text:00048184 SUB R4, R4, #0x158 .text:00048188 MOV R1, R4 .text:0004818C SUB R4, R3, #2 .text:00048190 MOV R3, R12 .text:00048194 LDR R3, [R3,R4,LSL#2] .text:00048198 LDR R8, [R12,LR,LSL#2] .text:0004819C STR R3, [R11,#var_1C4] .text:000481A0 LDR R0, [R11,#var_1D8] .text:000481A4 BL __mpn_cmp .text:000481A8 CMP R0, R6 .text:000481AC STR R4, [R11,#var_1DC] .text:000481B0 BLE loc_481CC .text:000481B4 LDR R3, [R11,#var_168] .text:000481B8 LDR R4, [R11,#var_1D8] .text:000481BC MOV R2, R3,LSL#2 .text:000481C0 STR R6, [R4,R2] .text:000481C4 ADD R3, R3, #1 .text:000481C8 STR R3, [R11,#var_168] .text:000481CC .text:000481CC loc_481CC ; CODE XREF: __strtod_internal+319Cj .text:000481CC LDR R2, [R11,#var_168] .text:000481D0 LDR R12, [R11,#var_180] .text:000481D4 CMP R2, R12 .text:000481D8 BGE loc_483F0 .text:000481DC LDR LR, [R11,#var_184] .text:000481E0 RSB R4, R2, R12 .text:000481E4 CMP LR, #0 .text:000481E8 BGT loc_4826C .text:000481EC SUBS R0, R2, #0 .text:000481F0 MOV R1, R12,LSL#2 .text:000481F4 ADD LR, R4, #1 .text:000481F8 MOV R5, R4,LSL#5 .text:000481FC STR R1, [R11,#var_1E4] .text:00048200 BLE loc_48234 .text:00048204 MOV R3, R2,LSL#2 .text:00048208 SUB R1, R3, #4 .text:0004820C ADD R2, R2, R4 .text:00048210 MOV R2, R2,LSL#2 .text:00048214 LDR R12, [R11,#var_1D8] .text:00048218 .text:00048218 loc_48218 ; CODE XREF: __strtod_internal+321Cj .text:00048218 LDR R3, [R12,R1] .text:0004821C SUB R1, R1, #4 .text:00048220 SUB R0, R0, #1 .text:00048224 CMP R0, #0 .text:00048228 STR R3, [R12,R2] .text:0004822C SUB R2, R2, #4 .text:00048230 BGT loc_48218 .text:00048234 .text:00048234 loc_48234 ; CODE XREF: __strtod_internal+31ECj .text:00048234 MOV R2, #0 .text:00048238 CMP R2, LR .text:0004823C BGE loc_4825C .text:00048240 MOV R0, R2 .text:00048244 LDR R1, [R11,#var_1D8] .text:00048248 .text:00048248 loc_48248 ; CODE XREF: __strtod_internal+3244j .text:00048248 MOV R3, R2,LSL#2 .text:0004824C ADD R2, R2, #1 .text:00048250 CMP R2, LR .text:00048254 STR R0, [R1,R3] .text:00048258 BLT loc_48248 .text:0004825C .text:0004825C loc_4825C ; CODE XREF: __strtod_internal+3228j .text:0004825C LDR R3, [R11,#var_16C] .text:00048260 RSB R3, R5, R3 .text:00048264 STR R3, [R11,#var_16C] .text:00048268 B loc_48428 .text:0004826C ; --------------------------------------------------------------------------- .text:0004826C .text:0004826C loc_4826C ; CODE XREF: __strtod_internal+31D4j .text:0004826C MOV R2, R4,LSL#5 .text:00048270 LDR R12, [R11,#var_184] .text:00048274 MOV R5, R2 .text:00048278 ADD R3, R12, R2 .text:0004827C CMP R3, #0x35 .text:00048280 BGT loc_48324 .text:00048284 MOV R2, #1 .text:00048288 LDR LR, [R11,#var_180] .text:0004828C ADD R1, R10, #4 .text:00048290 MOV LR, LR,LSL#2 .text:00048294 STR LR, [R11,#var_1E4] .text:00048298 ADD LR, R4, R2 .text:0004829C .text:0004829C loc_4829C ; CODE XREF: __strtod_internal+3298j .text:0004829C LDR R3, [R1,#-4]! .text:000482A0 STR R3, [R10,R2,LSL#2] .text:000482A4 SUB R2, R2, #1 .text:000482A8 CMP R2, #0 .text:000482AC BGT loc_4829C .text:000482B0 LDR R0, [R11,#var_1C8] .text:000482B4 MOV R3, #0 .text:000482B8 STMIA R10, {R0,R3} .text:000482BC LDR R1, [R11,#var_168] .text:000482C0 CMP R1, R3 .text:000482C4 BLE loc_482F8 .text:000482C8 MOV R3, R1,LSL#2 .text:000482CC SUB R0, R3, #4 .text:000482D0 ADD R2, R1, R4 .text:000482D4 MOV R2, R2,LSL#2 .text:000482D8 LDR R12, [R11,#var_1D8] .text:000482DC .text:000482DC loc_482DC ; CODE XREF: __strtod_internal+32E0j .text:000482DC LDR R3, [R12,R0] .text:000482E0 SUB R0, R0, #4 .text:000482E4 SUB R1, R1, #1 .text:000482E8 CMP R1, #0 .text:000482EC STR R3, [R12,R2] .text:000482F0 SUB R2, R2, #4 .text:000482F4 BGT loc_482DC .text:000482F8 .text:000482F8 loc_482F8 ; CODE XREF: __strtod_internal+32B0j .text:000482F8 MOV R2, #0 .text:000482FC CMP R2, LR .text:00048300 BGE loc_483E0 .text:00048304 MOV R0, R2 .text:00048308 LDR R1, [R11,#var_1D8] .text:0004830C .text:0004830C loc_4830C ; CODE XREF: __strtod_internal+3308j .text:0004830C MOV R3, R2,LSL#2 .text:00048310 ADD R2, R2, #1 .text:00048314 CMP R2, LR .text:00048318 STR R0, [R1,R3] .text:0004831C BLT loc_4830C .text:00048320 B loc_483E0 .text:00048324 ; --------------------------------------------------------------------------- .text:00048324 .text:00048324 loc_48324 ; CODE XREF: __strtod_internal+326Cj .text:00048324 LDR R1, [R11,#var_184] .text:00048328 RSB R1, R1, #0x35 .text:0004832C CMP R1, #0x1F .text:00048330 STR R1, [R11,#var_1C8] .text:00048334 BLE loc_48388 .text:00048338 SUBS R4, R1, #0 .text:0004833C ADDLT R4, R1, #0x1F .text:00048340 MOV R4, R4,ASR#5 .text:00048344 ADD R0, R10, R4,LSL#2 .text:00048348 MOV R1, R10 .text:0004834C LDR R12, [R11,#var_1C8] .text:00048350 MOV R2, #2 .text:00048354 SUB R3, R12, R4,LSL#5 .text:00048358 BL __mpn_lshift .text:0004835C LDR LR, [R11,#var_180] .text:00048360 CMP R4, #0 .text:00048364 MOV LR, LR,LSL#2 .text:00048368 STR LR, [R11,#var_1E4] .text:0004836C BLT loc_483E0 .text:00048370 MOV R2, R10 .text:00048374 MOV R3, R6 .text:00048378 .text:00048378 loc_48378 ; CODE XREF: __strtod_internal+336Cj .text:00048378 STR R3, [R2,R4,LSL#2] .text:0004837C SUBS R4, R4, #1 .text:00048380 BPL loc_48378 .text:00048384 B loc_483E0 .text:00048388 ; --------------------------------------------------------------------------- .text:00048388 .text:00048388 loc_48388 ; CODE XREF: __strtod_internal+3320j .text:00048388 LDR R0, [R11,#var_1C8] .text:0004838C LDR R1, [R11,#var_180] .text:00048390 CMP R0, #0 .text:00048394 MOV R1, R1,LSL#2 .text:00048398 STR R1, [R11,#var_1E4] .text:0004839C BLE loc_483E0 .text:000483A0 CMP R0, #0x20 .text:000483A4 BNE loc_483CC .text:000483A8 MOV R2, #1 .text:000483AC ADD R1, R10, #4 .text:000483B0 .text:000483B0 loc_483B0 ; CODE XREF: __strtod_internal+33ACj .text:000483B0 LDR R3, [R1,#-4]! .text:000483B4 STR R3, [R10,R2,LSL#2] .text:000483B8 SUB R2, R2, #1 .text:000483BC CMP R2, #0 .text:000483C0 BGT loc_483B0 .text:000483C4 STR R6, [R10] .text:000483C8 B loc_483E0 .text:000483CC ; --------------------------------------------------------------------------- .text:000483CC .text:000483CC loc_483CC ; CODE XREF: __strtod_internal+3390j .text:000483CC MOV R0, R10 .text:000483D0 MOV R1, R10 .text:000483D4 LDR R3, [R11,#var_1C8] .text:000483D8 MOV R2, #2 .text:000483DC BL __mpn_lshift .text:000483E0 .text:000483E0 loc_483E0 ; CODE XREF: __strtod_internal+32ECj .text:000483E0 ; __strtod_internal+330Cj ... .text:000483E0 LDR R2, [R11,#var_184] .text:000483E4 ADD R2, R2, R5 .text:000483E8 STR R2, [R11,#var_184] .text:000483EC B loc_48428 .text:000483F0 ; --------------------------------------------------------------------------- .text:000483F0 .text:000483F0 loc_483F0 ; CODE XREF: __strtod_internal+31C4j .text:000483F0 LDR R3, [R11,#var_180] .text:000483F4 CMP R2, #0 .text:000483F8 MOV R3, R3,LSL#2 .text:000483FC STR R3, [R11,#var_1E4] .text:00048400 BLE loc_48428 .text:00048404 MOV R3, R2,LSL#2 .text:00048408 SUB R1, R3, #4 .text:0004840C LDR R0, [R11,#var_1D8] .text:00048410 .text:00048410 loc_48410 ; CODE XREF: __strtod_internal+3410j .text:00048410 LDR R3, [R0,R1] .text:00048414 SUB R1, R1, #4 .text:00048418 STR R3, [R0,R2,LSL#2] .text:0004841C SUB R2, R2, #1 .text:00048420 CMP R2, #0 .text:00048424 BGT loc_48410 .text:00048428 .text:00048428 loc_48428 ; CODE XREF: __strtod_internal+3254j .text:00048428 ; __strtod_internal+33D8j ... .text:00048428 MOV R3, #0 .text:0004842C LDR R12, [R11,#var_1E4] .text:00048430 SUB R4, R11, #-var_158 .text:00048434 STR R3, [R4,R12] .text:00048438 LDR LR, [R11,#var_184] .text:0004843C LDR R0, [R11,#var_1D8] .text:00048440 CMP LR, #0x35 .text:00048444 LDR R5, [R0,R12] .text:00048448 BGT loc_48788 .text:0004844C STR R0, [R11,#var_1CC] .text:00048450 .text:00048450 loc_48450 ; CODE XREF: __strtod_internal+3770j .text:00048450 CMP R5, R8 .text:00048454 BNE loc_48470 .text:00048458 LDR R1, [R11,#var_180] .text:0004845C MOV R6, 0xFFFFFFFF .text:00048460 ADD R2, R1, #1 .text:00048464 B loc_485B4 .text:00048464 ; --------------------------------------------------------------------------- .text:00048468 off_48468 DCD dword_616C4 ; DATA XREF: __strtod_internal+3124r .text:0004846C off_4846C DCD dword_616CC ; DATA XREF: __strtod_internal+3134r .text:00048470 ; --------------------------------------------------------------------------- .text:00048470 .text:00048470 loc_48470 ; CODE XREF: __strtod_internal+3440j .text:00048470 MOV R6, R8,LSL#16 .text:00048474 MOV R6, R6,LSR#16 .text:00048478 MOV R0, R5 .text:0004847C MOV R9, R8,LSR#16 .text:00048480 MOV R1, R9 .text:00048484 BL __umodsi3 .text:00048488 MOV R4, R0 .text:0004848C MOV R0, R5 .text:00048490 MOV R1, R9 .text:00048494 BL __udivsi3 .text:00048498 MOV R7, R0 .text:0004849C MUL R2, R6, R7 .text:000484A0 LDR R12, [R11,#var_1D8] .text:000484A4 LDR LR, [R11,#var_1E0] .text:000484A8 LDR R3, [R12,LR,LSL#2] .text:000484AC MOV R3, R3,LSR#16 .text:000484B0 ORR R4, R3, R4,LSL#16 .text:000484B4 CMP R4, R2 .text:000484B8 BCS loc_484D4 .text:000484BC SUB R7, R7, #1 .text:000484C0 ADDS R4, R4, R8 .text:000484C4 BCS loc_484D4 .text:000484C8 CMP R4, R2 .text:000484CC SUBCC R7, R7, #1 .text:000484D0 ADDCC R4, R4, R8 .text:000484D4 .text:000484D4 loc_484D4 ; CODE XREF: __strtod_internal+34A4j .text:000484D4 ; __strtod_internal+34B0j .text:000484D4 RSB R4, R2, R4 .text:000484D8 MOV R0, R4 .text:000484DC MOV R1, R9 .text:000484E0 BL __umodsi3 .text:000484E4 MOV R5, R0 .text:000484E8 MOV R0, R4 .text:000484EC MOV R1, R9 .text:000484F0 BL __udivsi3 .text:000484F4 MUL R2, R6, R0 .text:000484F8 LDR R1, [R11,#var_1D8] .text:000484FC LDR R4, [R11,#var_1E0] .text:00048500 LDR R3, [R1,R4,LSL#2] .text:00048504 MOV R3, R3,LSL#16 .text:00048508 MOV R3, R3,LSR#16 .text:0004850C ORR R5, R3, R5,LSL#16 .text:00048510 CMP R5, R2 .text:00048514 BCS loc_48530 .text:00048518 SUB R0, R0, #1 .text:0004851C ADDS R5, R5, R8 .text:00048520 BCS loc_48530 .text:00048524 CMP R5, R2 .text:00048528 SUBCC R0, R0, #1 .text:0004852C ADDCC R5, R5, R8 .text:00048530 .text:00048530 loc_48530 ; CODE XREF: __strtod_internal+3500j .text:00048530 ; __strtod_internal+350Cj .text:00048530 ORR R6, R0, R7,LSL#16 .text:00048534 RSB R0, R2, R5 .text:00048538 LDR LR, [R11,#var_1C4] .text:0004853C MOV R1, LR,LSR#16 .text:00048540 MOV R12, R6,LSR#16 .text:00048544 BIC R2, LR, R1,LSL#16 .text:00048548 BIC R3, R6, R12,LSL#16 .text:0004854C MUL R5, R2, R3 .text:00048550 MUL R3, R1, R3 .text:00048554 MUL R2, R12, R2 .text:00048558 MUL R12, R1, R12 .text:0004855C ADDS R2, R3, R2 .text:00048560 ADDCS R12, R12, #0x10000 .text:00048564 ADDS R5, R5, R2,LSL#16 .text:00048568 ADC R12, R12, R2,LSR#16 .text:0004856C LDR R1, [R11,#var_180] .text:00048570 ADD R2, R1, #1 .text:00048574 B loc_48588 .text:00048578 ; --------------------------------------------------------------------------- .text:00048578 .text:00048578 loc_48578 ; CODE XREF: __strtod_internal+359Cj .text:00048578 LDR R3, [R11,#var_1C4] .text:0004857C CMP R5, R3 .text:00048580 SUBCC R12, R12, #1 .text:00048584 RSB R5, R3, R5 .text:00048588 .text:00048588 loc_48588 ; CODE XREF: __strtod_internal+3560j .text:00048588 CMP R12, R0 .text:0004858C BHI loc_485A8 .text:00048590 BNE loc_485B4 .text:00048594 LDR R4, [R11,#var_1D8] .text:00048598 LDR LR, [R11,#var_1DC] .text:0004859C LDR R3, [R4,LR,LSL#2] .text:000485A0 CMP R5, R3 .text:000485A4 BLS loc_485B4 .text:000485A8 .text:000485A8 loc_485A8 ; CODE XREF: __strtod_internal+3578j .text:000485A8 SUB R6, R6, #1 .text:000485AC ADDS R0, R0, R8 .text:000485B0 BCC loc_48578 .text:000485B4 .text:000485B4 loc_485B4 ; CODE XREF: __strtod_internal+3450j .text:000485B4 ; __strtod_internal+357Cj ... .text:000485B4 SUB R1, R11, #-var_158 .text:000485B8 LDR R0, [R11,#var_1CC] .text:000485BC MOV R3, R6 .text:000485C0 BL __mpn_submul_1 .text:000485C4 LDR R1, [R11,#var_1CC] .text:000485C8 LDR R2, [R11,#var_1E4] .text:000485CC LDR R3, [R1,R2] .text:000485D0 CMP R3, R0 .text:000485D4 BEQ loc_485F0 .text:000485D8 SUB R2, R11, #-var_158 .text:000485DC LDR R0, [R11,#var_1D8] .text:000485E0 SUB R6, R6, #1 .text:000485E4 LDR R3, [R11,#var_180] .text:000485E8 MOV R1, R0 .text:000485EC BL __mpn_add_n .text:000485F0 .text:000485F0 loc_485F0 ; CODE XREF: __strtod_internal+35C0j .text:000485F0 LDR R3, [R11,#var_1E0] .text:000485F4 LDR R4, [R11,#var_1D8] .text:000485F8 LDR R2, [R11,#var_1E0] .text:000485FC LDR R12, [R11,#var_1E4] .text:00048600 MOV R1, R3,LSL#2 .text:00048604 LDR R3, [R4,R1] .text:00048608 CMP R2, #0 .text:0004860C MOV R5, R3 .text:00048610 STR R3, [R4,R12] .text:00048614 BLE loc_48638 .text:00048618 SUB R1, R1, #4 .text:0004861C LDR R0, [R11,#var_1D8] .text:00048620 .text:00048620 loc_48620 ; CODE XREF: __strtod_internal+3620j .text:00048620 LDR R3, [R0,R1] .text:00048624 SUB R1, R1, #4 .text:00048628 STR R3, [R0,R2,LSL#2] .text:0004862C SUB R2, R2, #1 .text:00048630 CMP R2, #0 .text:00048634 BGT loc_48620 .text:00048638 .text:00048638 loc_48638 ; CODE XREF: __strtod_internal+3600j .text:00048638 LDR LR, [R11,#var_184] .text:0004863C CMP LR, #0 .text:00048640 BNE loc_486D8 .text:00048644 CMP R6, #0 .text:00048648 MOVEQ R1, #0x20 .text:0004864C BEQ loc_48688 .text:00048650 CMP R6, #0x10000 .text:00048654 BCS loc_48668 .text:00048658 CMP R6, #0xFF .text:0004865C MOVHI R1, #8 .text:00048660 MOVLS R1, #0 .text:00048664 B loc_48674 .text:00048668 ; --------------------------------------------------------------------------- .text:00048668 .text:00048668 loc_48668 ; CODE XREF: __strtod_internal+3640j .text:00048668 CMP R6, #0x1000000 .text:0004866C MOVCS R1, #0x18 .text:00048670 MOVCC R1, #0x10 .text:00048674 .text:00048674 loc_48674 ; CODE XREF: __strtod_internal+3650j .text:00048674 LDR R0, =__clz_tab_1 .text:00048678 MOV R2, R6,LSR R1 .text:0004867C LDRB R3, [R0,R2] .text:00048680 ADD R3, R3, R1 .text:00048684 RSB R1, R3, #0x20 .text:00048688 .text:00048688 loc_48688 ; CODE XREF: __strtod_internal+3638j .text:00048688 RSB R2, R1, #0x20 .text:0004868C LDR R3, [R11,#var_16C] .text:00048690 CMP R2, #0x35 .text:00048694 RSB R3, R1, R3 .text:00048698 STR R3, [R11,#var_16C] .text:0004869C BLE loc_486C0 .text:000486A0 ADD R1, R1, #0x35 .text:000486A4 STR R1, [R11,#var_1C8] .text:000486A8 LDR R2, [R11,#var_1C8] .text:000486AC MOV R1, #0x36 .text:000486B0 STR R1, [R11,#var_184] .text:000486B4 RSB R3, R2, #0x20 .text:000486B8 MOV R3, R6,LSR R3 .text:000486BC B loc_48770 .text:000486C0 ; --------------------------------------------------------------------------- .text:000486C0 .text:000486C0 loc_486C0 ; CODE XREF: __strtod_internal+3688j .text:000486C0 MOV R3, #0 .text:000486C4 STR R3, [R10,#4] .text:000486C8 RSB R1, R1, #0 .text:000486CC STR R1, [R11,#var_184] .text:000486D0 STR R6, [R11,#var_164] .text:000486D4 B loc_48774 .text:000486D8 ; --------------------------------------------------------------------------- .text:000486D8 .text:000486D8 loc_486D8 ; CODE XREF: __strtod_internal+362Cj .text:000486D8 LDR R4, [R11,#var_184] .text:000486DC ADD R3, R4, #0x20 .text:000486E0 CMP R3, #0x35 .text:000486E4 BGT loc_4870C .text:000486E8 MOV R2, #1 .text:000486EC ADD R1, R10, #4 .text:000486F0 .text:000486F0 loc_486F0 ; CODE XREF: __strtod_internal+36ECj .text:000486F0 LDR R3, [R1,#-4]! .text:000486F4 STR R3, [R10,R2,LSL#2] .text:000486F8 SUB R2, R2, #1 .text:000486FC CMP R2, #0 .text:00048700 BGT loc_486F0 .text:00048704 STR R6, [R10] .text:00048708 B loc_48774 .text:0004870C ; --------------------------------------------------------------------------- .text:0004870C .text:0004870C loc_4870C ; CODE XREF: __strtod_internal+36D0j .text:0004870C LDR R12, [R11,#var_184] .text:00048710 RSB R12, R12, #0x35 .text:00048714 CMP R12, #0 .text:00048718 STR R12, [R11,#var_1C8] .text:0004871C BLE loc_48774 .text:00048720 CMP R12, #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+372Cj .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_48774 .text:0004874C ; --------------------------------------------------------------------------- .text:0004874C .text:0004874C loc_4874C ; CODE XREF: __strtod_internal+3710j .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 LDR LR, [R11,#var_1C8] .text:00048764 LDR R3, [R11,#var_164] .text:00048768 RSB R2, LR, #0x20 .text:0004876C ORR R3, R3, R6,LSR R2 .text:00048770 .text:00048770 loc_48770 ; CODE XREF: __strtod_internal+36A8j .text:00048770 STR R3, [R11,#var_164] .text:00048774 .text:00048774 loc_48774 ; CODE XREF: __strtod_internal+36C0j .text:00048774 ; __strtod_internal+36F4j ... .text:00048774 LDR R0, [R11,#var_184] .text:00048778 ADD R0, R0, #0x20 .text:0004877C CMP R0, #0x35 .text:00048780 STR R0, [R11,#var_184] .text:00048784 BLE loc_48450 .text:00048788 .text:00048788 loc_48788 ; CODE XREF: __strtod_internal+3434j .text:00048788 LDR R2, [R11,#var_180] .text:0004878C LDR R1, [R11,#var_1D8] .text:00048790 LDR R3, [R1,R2,LSL#2] .text:00048794 CMP R2, #0 .text:00048798 CMPGE R3, #0 .text:0004879C LDR R3, [R11,#var_1C8] .text:000487A0 LDR R1, [R11,#var_16C] .text:000487A4 RSB R12, R3, #0x1F .text:000487A8 BNE loc_487C4 .text:000487AC LDR R0, [R11,#var_1D8] .text:000487B0 .text:000487B0 loc_487B0 ; CODE XREF: __strtod_internal+37ACj .text:000487B0 SUB R2, R2, #1 .text:000487B4 LDR R3, [R0,R2,LSL#2] .text:000487B8 CMP R2, #0 .text:000487BC CMPGE R3, #0 .text:000487C0 BEQ loc_487B0 .text:000487C4 .text:000487C4 loc_487C4 ; CODE XREF: __strtod_internal+3794j .text:000487C4 SUB R4, R1, #1 .text:000487C8 MOV R7, R6 .text:000487CC MOV R8, R12 .text:000487D0 MVN R2, R2 .text:000487D4 MOV R2, R2,LSR#31 .text:000487D8 MOV R3, 0xFFFFFC02 .text:000487E0 LDR R12, [R11,#var_1B0] .text:000487E4 CMP R4, R3 .text:000487E8 ORR R6, R12, R2 .text:000487EC BGE loc_48958 .text:000487F0 RSB R12, R4, #0xFC000002 .text:000487F4 ADD R12, R12, #0x3FC0000 .text:000487F8 ADD R12, R12, #0x3FC00 .text:000487FC CMP R12, #0x35 .text:00048800 BLE loc_4881C .text:00048804 .text:00048804 loc_48804 ; CODE XREF: __strtod_internal+F24j .text:00048804 ; __strtod_internal+1204j ... .text:00048804 BL __errno_location .text:00048808 MOV R3, #0x21 .text:0004880C STR R3, [R0] .text:00048810 ADR R3, dword_48A30 .text:00048814 LDMIA R3, {R3,R4} .text:00048818 B loc_48AA4 .text:0004881C ; --------------------------------------------------------------------------- .text:0004881C .text:0004881C loc_4881C ; CODE XREF: __strtod_internal+37ECj .text:0004881C MOV R3, #1 .text:00048820 MOV R3, R3,LSL R8 .text:00048824 SUB R3, R3, #1 .text:00048828 TST R7, R3 .text:0004882C ORRNE R6, R6, #1 .text:00048830 CMP R12, #0x35 .text:00048834 BNE loc_48878 .text:00048838 MOV R8, #0x14 .text:0004883C MOV R2, #0 .text:00048840 LDR R7, [R10,#4] .text:00048844 .text:00048844 loc_48844 ; CODE XREF: __strtod_internal+3844j .text:00048844 LDR R3, [R10,R2,LSL#2] .text:00048848 ADD R2, R2, #1 .text:0004884C CMP R3, #0 .text:00048850 ORRNE R6, R6, #1 .text:00048854 CMP R2, #1 .text:00048858 BLE loc_48844 .text:0004885C MOV R1, #0 .text:00048860 ADD R3, R10, #4 .text:00048864 MOV R2, R10 .text:00048868 .text:00048868 loc_48868 ; CODE XREF: __strtod_internal+385Cj .text:00048868 STR R1, [R3],#-4 .text:0004886C CMP R3, R2 .text:00048870 BGE loc_48868 .text:00048874 B loc_48950 .text:00048878 ; --------------------------------------------------------------------------- .text:00048878 .text:00048878 loc_48878 ; CODE XREF: __strtod_internal+3820j .text:00048878 CMP R12, #0x1F .text:0004887C BLE loc_4892C .text:00048880 SUB R3, R12, #1 .text:00048884 CMP R3, #0 .text:00048888 ADDLT R2, R3, #0x1F .text:0004888C MOVGE R2, R3 .text:00048890 MOV R2, R2,ASR#5 .text:00048894 SUB R8, R3, R2,LSL#5 .text:00048898 MOV R1, #0 .text:0004889C CMP R1, R2 .text:000488A0 MOV LR, R12,ASR#31 .text:000488A4 LDR R7, [R10,R2,LSL#2] .text:000488A8 BGE loc_488C4 .text:000488AC .text:000488AC loc_488AC ; CODE XREF: __strtod_internal+38ACj .text:000488AC LDR R3, [R10,R1,LSL#2] .text:000488B0 ADD R1, R1, #1 .text:000488B4 CMP R3, #0 .text:000488B8 ORRNE R6, R6, #1 .text:000488BC CMP R1, R2 .text:000488C0 BLT loc_488AC .text:000488C4 .text:000488C4 loc_488C4 ; CODE XREF: __strtod_internal+3894j .text:000488C4 MOV R3, #1 .text:000488C8 MOV R3, R3,LSL R8 .text:000488CC SUB R3, R3, #1 .text:000488D0 TST R7, R3 .text:000488D4 ORRNE R6, R6, #1 .text:000488D8 MOV R0, R10 .text:000488DC MOV R3, LR,LSR#27 .text:000488E0 ADD R3, R12, R3 .text:000488E4 MOV R4, R3,ASR#5 .text:000488E8 ADD R1, R10, R4,LSL#2 .text:000488EC RSB R5, R4, #2 .text:000488F0 MOV R2, R5 .text:000488F4 SUB R3, R12, R4,LSL#5 .text:000488F8 BL __mpn_rshift .text:000488FC MOV R1, #0 .text:00048900 CMP R1, R4 .text:00048904 BGE loc_48950 .text:00048908 MOV R0, R4 .text:0004890C ADD R2, R10, R5,LSL#2 .text:00048910 MOV R12, R1 .text:00048914 .text:00048914 loc_48914 ; CODE XREF: __strtod_internal+3910j .text:00048914 MOV R3, R1,LSL#2 .text:00048918 ADD R1, R1, #1 .text:0004891C CMP R1, R0 .text:00048920 STR R12, [R3,R2] .text:00048924 BLT loc_48914 .text:00048928 B loc_48950 .text:0004892C ; --------------------------------------------------------------------------- .text:0004892C .text:0004892C loc_4892C ; CODE XREF: __strtod_internal+3868j .text:0004892C CMP R12, #0 .text:00048930 BLE loc_48950 .text:00048934 SUB R8, R12, #1 .text:00048938 MOV R0, R10 .text:0004893C MOV R1, R10 .text:00048940 MOV R2, #2 .text:00048944 MOV R3, R12 .text:00048948 LDR R7, [R11,#var_164] .text:0004894C BL __mpn_rshift .text:00048950 .text:00048950 loc_48950 ; CODE XREF: __strtod_internal+3860j .text:00048950 ; __strtod_internal+38F0j ... .text:00048950 MOV R4, 0xFFFFFC01 .text:00048958 .text:00048958 loc_48958 ; CODE XREF: __strtod_internal+37D8j .text:00048958 MOV R3, R7,LSR R8 .text:0004895C TST R3, #1 .text:00048960 BEQ loc_48A58 .text:00048964 CMP R6, #0 .text:00048968 LDR R2, [R10] .text:0004896C BNE loc_4898C .text:00048970 TST R2, #1 .text:00048974 BNE loc_4898C .text:00048978 MOV R3, #1 .text:0004897C MOV R3, R3,LSL R8 .text:00048980 SUB R3, R3, #1 .text:00048984 TST R7, R3 .text:00048988 BEQ loc_48A58 .text:0004898C .text:0004898C loc_4898C ; CODE XREF: __strtod_internal+3958j .text:0004898C ; __strtod_internal+3960j .text:0004898C MOV R1, #2 .text:00048990 ADD R0, R10, #4 .text:00048994 MOV R12, R0 .text:00048998 ADD R3, R2, #1 .text:0004899C CMP R3, R2 .text:000489A0 STR R3, [R10] .text:000489A4 BCS loc_489CC .text:000489A8 SUB R1, R1, #1 .text:000489AC .text:000489AC loc_489AC ; CODE XREF: __strtod_internal+39B0j .text:000489AC LDR R3, [R0],#4 .text:000489B0 ADD R2, R3, #1 .text:000489B4 CMP R2, #0 .text:000489B8 STR R2, [R12],#4 .text:000489BC BNE loc_489CC .text:000489C0 SUBS R1, R1, #1 .text:000489C4 BNE loc_489AC .text:000489C8 B loc_489F8 .text:000489CC ; --------------------------------------------------------------------------- .text:000489CC .text:000489CC loc_489CC ; CODE XREF: __strtod_internal+3990j .text:000489CC ; __strtod_internal+39A8j .text:000489CC CMP R12, R0 .text:000489D0 BEQ loc_489F8 .text:000489D4 MOV R2, #0 .text:000489D8 SUB R1, R1, #1 .text:000489DC CMP R2, R1 .text:000489E0 BGE loc_489F8 .text:000489E4 .text:000489E4 loc_489E4 ; CODE XREF: __strtod_internal+39E0j .text:000489E4 LDR R3, [R0,R2,LSL#2] .text:000489E8 STR R3, [R12,R2,LSL#2] .text:000489EC ADD R2, R2, #1 .text:000489F0 CMP R2, R1 .text:000489F4 BLT loc_489E4 .text:000489F8 .text:000489F8 loc_489F8 ; CODE XREF: __strtod_internal+39B4j .text:000489F8 ; __strtod_internal+39BCj ... .text:000489F8 LDR R2, [R10,#4] .text:000489FC TST R2, #0x200000 .text:00048A00 BEQ loc_48A38 .text:00048A04 MOV R0, R10 .text:00048A08 MOV R1, R10 .text:00048A0C MOV R2, #2 .text:00048A10 MOV R3, #1 .text:00048A14 BL __mpn_rshift .text:00048A18 LDR R3, [R10,#4] .text:00048A1C ADD R4, R4, #1 .text:00048A20 ORR R3, R3, #0x100000 .text:00048A24 STR R3, [R10,#4] .text:00048A28 B loc_48A58 .text:00048A28 ; --------------------------------------------------------------------------- .text:00048A2C off_48A2C DCD __clz_tab_1 ; DATA XREF: __strtod_internal:loc_48674r .text:00048A30 dword_48A30 DCD 0, 0 ; DATA XREF: __strtod_internal+37FCo .text:00048A38 ; --------------------------------------------------------------------------- .text:00048A38 .text:00048A38 loc_48A38 ; CODE XREF: __strtod_internal+39ECj .text:00048A38 MOV R3, 0xFFFFFC01 .text:00048A40 CMP R4, R3 .text:00048A44 BNE loc_48A58 .text:00048A48 TST R2, #0x100000 .text:00048A4C MOV R3, 0xFFFFFC02 .text:00048A54 MOVNE R4, R3 .text:00048A58 .text:00048A58 loc_48A58 ; CODE XREF: __strtod_internal+394Cj .text:00048A58 ; __strtod_internal+3974j ... .text:00048A58 CMP R4, #0x400 .text:00048A5C BLE loc_48A8C .text:00048A60 LDR LR, [R11,#var_178] .text:00048A64 CMP LR, #0 .text:00048A68 LDRNE R3, =dword_616C4 .text:00048A6C LDCNE p1, c8, [R3] .text:00048A70 CDPNE p1, 1, c8,c0,c0, 4 .text:00048A74 BNE loc_48A9C .text:00048A78 LDR R3, =dword_616CC .text:00048A7C LDC p1, c8, [R3] .text:00048A80 B loc_48A9C .text:00048A80 ; --------------------------------------------------------------------------- .text:00048A84 off_48A84 DCD dword_616C4 ; DATA XREF: __strtod_internal+3A54r .text:00048A88 off_48A88 DCD dword_616CC ; DATA XREF: __strtod_internal+3A64r .text:00048A8C ; --------------------------------------------------------------------------- .text:00048A8C .text:00048A8C loc_48A8C ; CODE XREF: __strtod_internal+115Cj .text:00048A8C ; __strtod_internal+1428j ... .text:00048A8C MOV R0, R10 .text:00048A90 LDR R2, [R11,#var_178] .text:00048A94 MOV R1, R4 .text:00048A98 .text:00048A98 loc_48A98 ; CODE XREF: __strtod_internal+314Cj .text:00048A98 BL __mpn_construct_double .text:00048A9C .text:00048A9C loc_48A9C ; CODE XREF: __strtod_internal+1174j .text:00048A9C ; __strtod_internal+1180j ... .text:00048A9C STC p1, c8, [SP,#0x1F4+var_1FC]! .text:00048AA0 LDMFD SP!, {R3,R4} .text:00048AA4 .text:00048AA4 loc_48AA4 ; CODE XREF: __strtod_internal+3804j .text:00048AA4 STMFD SP!, {R3,R4} .text:00048AA8 LDC p1, c8, [SP+0x1FC+var_1FC],#8 .text:00048AAC .text:00048AAC locret_48AAC ; CODE XREF: __strtod_internal+200j .text:00048AAC ; __strtod_internal+20Cj ... .text:00048AAC LDMDB R11, {R4-R11,SP,PC} .text:00048AAC ; End of function __strtod_internal .text:00048AAC .text:00048AB0 .text:00048AB0 ; =============== S U B R O U T I N E ======================================= .text:00048AB0 .text:00048AB0 ; Attributes: bp-based frame .text:00048AB0 .text:00048AB0 WEAK strtod .text:00048AB0 strtod .text:00048AB0 MOV R12, SP .text:00048AB4 STMFD SP!, {R11,R12,LR,PC} .text:00048AB8 SUB R11, R12, #4 .text:00048ABC MOV R2, #0 .text:00048AC0 BL __strtod_internal .text:00048AC4 LDMDB R11, {R11,SP,PC} .text:00048AC4 ; End of function strtod .text:00048AC4 .text:00048AC8 .text:00048AC8 ; =============== S U B R O U T I N E ======================================= .text:00048AC8 .text:00048AC8 ; Attributes: bp-based frame .text:00048AC8 .text:00048AC8 EXPORT __strtold_internal .text:00048AC8 __strtold_internal ; CODE XREF: _IO_vfscanf+3F30p .text:00048AC8 MOV R12, SP .text:00048ACC STMFD SP!, {R11,R12,LR,PC} .text:00048AD0 SUB R11, R12, #4 .text:00048AD4 BL __strtod_internal .text:00048AD8 LDMDB R11, {R11,SP,PC} .text:00048AD8 ; End of function __strtold_internal .text:00048AD8 .text:00048ADC .text:00048ADC ; =============== S U B R O U T I N E ======================================= .text:00048ADC .text:00048ADC ; Attributes: bp-based frame .text:00048ADC .text:00048ADC EXPORT strtold .text:00048ADC strtold .text:00048ADC MOV R12, SP .text:00048AE0 STMFD SP!, {R11,R12,LR,PC} .text:00048AE4 SUB R11, R12, #4 .text:00048AE8 MOV R2, #0 .text:00048AEC BL __strtod_internal .text:00048AF0 LDMDB R11, {R11,SP,PC} .text:00048AF0 ; End of function strtold .text:00048AF0 .text:00048AF4 .text:00048AF4 ; =============== S U B R O U T I N E ======================================= .text:00048AF4 .text:00048AF4 ; Attributes: bp-based frame .text:00048AF4 .text:00048AF4 EXPORT __mpn_add_n .text:00048AF4 __mpn_add_n ; CODE XREF: __strtof_internal+2F18p .text:00048AF4 ; __strtod_internal+35D8p ... .text:00048AF4 MOV R12, SP .text:00048AF8 STMFD SP!, {R4,R11,R12,LR,PC} .text:00048AFC SUB R11, R12, #4 .text:00048B00 RSB R12, R3, #0 .text:00048B04 MOV R3, R12,LSL#2 .text:00048B08 RSB R4, R3, R1 .text:00048B0C RSB R1, R3, R2 .text:00048B10 RSB LR, R3, R0 .text:00048B14 MOV R0, #0 .text:00048B18 .text:00048B18 loc_48B18 ; CODE XREF: __mpn_add_n+48j .text:00048B18 LDR R2, [R1,R12,LSL#2] .text:00048B1C LDR R3, [R4,R12,LSL#2] .text:00048B20 ADDS R2, R2, R0 .text:00048B24 MOVCC R0, #0 .text:00048B28 MOVCS R0, #1 .text:00048B2C ADDS R2, R2, R3 .text:00048B30 ADDCS R0, R0, #1 .text:00048B34 STR R2, [LR,R12,LSL#2] .text:00048B38 ADDS R12, R12, #1 .text:00048B3C BNE loc_48B18 .text:00048B40 LDMDB R11, {R4,R11,SP,PC} .text:00048B40 ; End of function __mpn_add_n .text:00048B40 .text:00048B44 .text:00048B44 ; =============== S U B R O U T I N E ======================================= .text:00048B44 .text:00048B44 ; Attributes: bp-based frame .text:00048B44 .text:00048B44 EXPORT __mpn_cmp .text:00048B44 __mpn_cmp ; CODE XREF: __printf_fp+89Cp .text:00048B44 ; __strtof_internal+2B24p ... .text:00048B44 MOV R12, SP .text:00048B48 STMFD SP!, {R11,R12,LR,PC} .text:00048B4C SUB R11, R12, #4 .text:00048B50 SUBS R12, R2, #1 .text:00048B54 BMI loc_48B70 .text:00048B58 .text:00048B58 loc_48B58 ; CODE XREF: __mpn_cmp+28j .text:00048B58 LDR R2, [R0,R12,LSL#2] .text:00048B5C LDR R3, [R1,R12,LSL#2] .text:00048B60 CMP R2, R3 .text:00048B64 BNE loc_48B78 .text:00048B68 SUBS R12, R12, #1 .text:00048B6C BPL loc_48B58 .text:00048B70 .text:00048B70 loc_48B70 ; CODE XREF: __mpn_cmp+10j .text:00048B70 MOV R0, #0 .text:00048B74 LDMDB R11, {R11,SP,PC} .text:00048B78 ; --------------------------------------------------------------------------- .text:00048B78 .text:00048B78 loc_48B78 ; CODE XREF: __mpn_cmp+20j .text:00048B78 MOVLS R0, 0xFFFFFFFF .text:00048B7C MOVHI R0, #1 .text:00048B80 LDMDB R11, {R11,SP,PC} .text:00048B80 ; End of function __mpn_cmp .text:00048B80 .text:00048B84 .text:00048B84 ; =============== S U B R O U T I N E ======================================= .text:00048B84 .text:00048B84 ; Attributes: bp-based frame .text:00048B84 .text:00048B84 EXPORT __mpn_divrem .text:00048B84 __mpn_divrem ; CODE XREF: hack_digit.159+E0p .text:00048B84 .text:00048B84 var_5C = -0x5C .text:00048B84 var_58 = -0x58 .text:00048B84 var_54 = -0x54 .text:00048B84 var_50 = -0x50 .text:00048B84 var_4C = -0x4C .text:00048B84 var_48 = -0x48 .text:00048B84 var_44 = -0x44 .text:00048B84 var_40 = -0x40 .text:00048B84 var_3C = -0x3C .text:00048B84 var_38 = -0x38 .text:00048B84 var_34 = -0x34 .text:00048B84 var_30 = -0x30 .text:00048B84 var_2C = -0x2C .text:00048B84 arg_0 = 4 .text:00048B84 arg_4 = 8 .text:00048B84 .text:00048B84 MOV R12, SP .text:00048B88 STMFD SP!, {R4-R12,LR,PC} .text:00048B8C SUB R11, R12, #4 .text:00048B90 SUB SP, SP, #0x34 .text:00048B94 STR R0, [R11,#var_2C] .text:00048B98 STR R2, [R11,#var_34] .text:00048B9C MOV R0, #0 .text:00048BA0 STR R0, [R11,#var_38] .text:00048BA4 LDR R2, [R11,#arg_4] .text:00048BA8 MOV R6, R3 .text:00048BAC STR R1, [R11,#var_30] .text:00048BB0 CMP R2, #1 .text:00048BB4 BEQ loc_48BE8 .text:00048BB8 BGT loc_48BC8 .text:00048BBC CMP R2, R0 .text:00048BC0 BEQ loc_48BD8 .text:00048BC4 B loc_4903C .text:00048BC8 ; --------------------------------------------------------------------------- .text:00048BC8 .text:00048BC8 loc_48BC8 ; CODE XREF: __mpn_divrem+34j .text:00048BC8 LDR R3, [R11,#arg_4] .text:00048BCC CMP R3, #2 .text:00048BD0 BEQ loc_48DE8 .text:00048BD4 B loc_4903C .text:00048BD8 ; --------------------------------------------------------------------------- .text:00048BD8 .text:00048BD8 loc_48BD8 ; CODE XREF: __mpn_divrem+3Cj .text:00048BD8 LDR R1, [R11,#var_38] .text:00048BDC MOV R0, #1 .text:00048BE0 BL __divsi3 .text:00048BE4 B locret_49310 .text:00048BE8 ; --------------------------------------------------------------------------- .text:00048BE8 .text:00048BE8 loc_48BE8 ; CODE XREF: __mpn_divrem+30j .text:00048BE8 LDR R12, [R11,#var_34] .text:00048BEC LDR LR, [R11,#arg_0] .text:00048BF0 ADD R3, R12, R6,LSL#2 .text:00048BF4 LDR R4, [R3,#-4] .text:00048BF8 LDR R7, [LR] .text:00048BFC CMP R4, R7 .text:00048C00 LDRCS R0, [R11,#arg_4] .text:00048C04 RSBCS R4, R7, R4 .text:00048C08 STRCS R0, [R11,#var_38] .text:00048C0C SUB R1, R11, #-var_30 .text:00048C10 LDMIA R1, {R1,R2} .text:00048C14 MOV R3, R1,LSL#2 .text:00048C18 ADD R2, R2, R3 .text:00048C1C STR R2, [R11,#var_2C] .text:00048C20 STR R3, [R11,#var_54] .text:00048C24 SUBS R8, R6, #2 .text:00048C28 SUB R3, R1, #1 .text:00048C2C STR R3, [R11,#var_50] .text:00048C30 BMI loc_48D0C .text:00048C34 MOV R10, R7,LSR#16 .text:00048C38 MOV R12, R7,LSL#16 .text:00048C3C MOV R12, R12,LSR#16 .text:00048C40 STR R12, [R11,#var_3C] .text:00048C44 .text:00048C44 loc_48C44 ; CODE XREF: __mpn_divrem+184j .text:00048C44 MOV R0, R4 .text:00048C48 MOV R1, R10 .text:00048C4C BL __umodsi3 .text:00048C50 MOV R5, R0 .text:00048C54 MOV R0, R4 .text:00048C58 MOV R1, R10 .text:00048C5C BL __udivsi3 .text:00048C60 LDR R1, [R11,#var_3C] .text:00048C64 MOV R6, R0 .text:00048C68 MUL R1, R6, R1 .text:00048C6C LDR LR, [R11,#var_34] .text:00048C70 LDR R2, [LR,R8,LSL#2] .text:00048C74 MOV R3, R2,LSR#16 .text:00048C78 ORR R5, R3, R5,LSL#16 .text:00048C7C MOV R9, R2 .text:00048C80 CMP R5, R1 .text:00048C84 BCS loc_48CA0 .text:00048C88 SUB R6, R6, #1 .text:00048C8C ADDS R5, R5, R7 .text:00048C90 BCS loc_48CA0 .text:00048C94 CMP R5, R1 .text:00048C98 SUBCC R6, R6, #1 .text:00048C9C ADDCC R5, R5, R7 .text:00048CA0 .text:00048CA0 loc_48CA0 ; CODE XREF: __mpn_divrem+100j .text:00048CA0 ; __mpn_divrem+10Cj .text:00048CA0 RSB R5, R1, R5 .text:00048CA4 MOV R0, R5 .text:00048CA8 MOV R1, R10 .text:00048CAC BL __umodsi3 .text:00048CB0 MOV R4, R0 .text:00048CB4 MOV R0, R5 .text:00048CB8 MOV R1, R10 .text:00048CBC BL __udivsi3 .text:00048CC0 LDR R1, [R11,#var_3C] .text:00048CC4 MUL R1, R0, R1 .text:00048CC8 MOV R3, R9,LSL#16 .text:00048CCC MOV R3, R3,LSR#16 .text:00048CD0 ORR R4, R3, R4,LSL#16 .text:00048CD4 CMP R4, R1 .text:00048CD8 BCS loc_48CF4 .text:00048CDC SUB R0, R0, #1 .text:00048CE0 ADDS R4, R4, R7 .text:00048CE4 BCS loc_48CF4 .text:00048CE8 CMP R4, R1 .text:00048CEC SUBCC R0, R0, #1 .text:00048CF0 ADDCC R4, R4, R7 .text:00048CF4 .text:00048CF4 loc_48CF4 ; CODE XREF: __mpn_divrem+154j .text:00048CF4 ; __mpn_divrem+160j .text:00048CF4 ORR R3, R0, R6,LSL#16 .text:00048CF8 LDR R0, [R11,#var_2C] .text:00048CFC RSB R4, R1, R4 .text:00048D00 STR R3, [R0,R8,LSL#2] .text:00048D04 SUBS R8, R8, #1 .text:00048D08 BPL loc_48C44 .text:00048D0C .text:00048D0C loc_48D0C ; CODE XREF: __mpn_divrem+ACj .text:00048D0C LDR R1, [R11,#var_2C] .text:00048D10 SUB R2, R11, #-var_54 .text:00048D14 LDMIA R2, {R2,R8} .text:00048D18 RSB R1, R2, R1 .text:00048D1C CMP R8, #0 .text:00048D20 STR R1, [R11,#var_2C] .text:00048D24 BLT loc_48DDC .text:00048D28 MOV R10, R7,LSR#16 .text:00048D2C MOV R9, R7,LSL#16 .text:00048D30 MOV R9, R9,LSR#16 .text:00048D34 .text:00048D34 loc_48D34 ; CODE XREF: __mpn_divrem+254j .text:00048D34 MOV R0, R4 .text:00048D38 MOV R1, R10 .text:00048D3C BL __umodsi3 .text:00048D40 MOV R5, R0 .text:00048D44 MOV R0, R4 .text:00048D48 MOV R1, R10 .text:00048D4C BL __udivsi3 .text:00048D50 MOV R6, R0 .text:00048D54 MUL R3, R9, R6 .text:00048D58 MOV R5, R5,LSL#16 .text:00048D5C CMP R5, R3 .text:00048D60 BCS loc_48D7C .text:00048D64 SUB R6, R6, #1 .text:00048D68 ADDS R5, R5, R7 .text:00048D6C BCS loc_48D7C .text:00048D70 CMP R5, R3 .text:00048D74 SUBCC R6, R6, #1 .text:00048D78 ADDCC R5, R5, R7 .text:00048D7C .text:00048D7C loc_48D7C ; CODE XREF: __mpn_divrem+1DCj .text:00048D7C ; __mpn_divrem+1E8j .text:00048D7C RSB R5, R3, R5 .text:00048D80 MOV R0, R5 .text:00048D84 MOV R1, R10 .text:00048D88 BL __umodsi3 .text:00048D8C MOV R4, R0 .text:00048D90 MOV R0, R5 .text:00048D94 MOV R1, R10 .text:00048D98 BL __udivsi3 .text:00048D9C MUL R3, R9, R0 .text:00048DA0 MOV R4, R4,LSL#16 .text:00048DA4 CMP R4, R3 .text:00048DA8 BCS loc_48DC4 .text:00048DAC SUB R0, R0, #1 .text:00048DB0 ADDS R4, R4, R7 .text:00048DB4 BCS loc_48DC4 .text:00048DB8 CMP R4, R3 .text:00048DBC SUBCC R0, R0, #1 .text:00048DC0 ADDCC R4, R4, R7 .text:00048DC4 .text:00048DC4 loc_48DC4 ; CODE XREF: __mpn_divrem+224j .text:00048DC4 ; __mpn_divrem+230j .text:00048DC4 RSB R4, R3, R4 .text:00048DC8 LDR R12, [R11,#var_2C] .text:00048DCC ORR R3, R0, R6,LSL#16 .text:00048DD0 STR R3, [R12,R8,LSL#2] .text:00048DD4 SUBS R8, R8, #1 .text:00048DD8 BPL loc_48D34 .text:00048DDC .text:00048DDC loc_48DDC ; CODE XREF: __mpn_divrem+1A0j .text:00048DDC LDR LR, [R11,#var_34] .text:00048DE0 STR R4, [LR] .text:00048DE4 B loc_4930C .text:00048DE8 ; --------------------------------------------------------------------------- .text:00048DE8 .text:00048DE8 loc_48DE8 ; CODE XREF: __mpn_divrem+4Cj .text:00048DE8 MOV R3, R6,LSL#2 .text:00048DEC LDR R0, [R11,#var_34] .text:00048DF0 SUB R3, R3, #8 .text:00048DF4 ADD R0, R0, R3 .text:00048DF8 STR R0, [R11,#var_34] .text:00048DFC LDR R1, [R11,#arg_0] .text:00048E00 LDR R5, [R0,#4] .text:00048E04 LDR R8, [R1,#4] .text:00048E08 LDR R7, [R0] .text:00048E0C LDR R2, [R1] .text:00048E10 CMP R5, R8 .text:00048E14 STR R2, [R11,#var_44] .text:00048E18 BCC loc_48E50 .text:00048E1C LDR R12, [R11,#var_44] .text:00048E20 MOVLS R2, #0 .text:00048E24 MOVHI R2, #1 .text:00048E28 CMP R7, R12 .text:00048E2C MOVCC R3, #0 .text:00048E30 MOVCS R3, #1 .text:00048E34 ORRS R2, R2, R3 .text:00048E38 BEQ loc_48E50 .text:00048E3C SUBS LR, R7, R12 .text:00048E40 SBC R5, R5, R8 .text:00048E44 MOV R7, LR .text:00048E48 MOV R0, #1 .text:00048E4C STR R0, [R11,#var_38] .text:00048E50 .text:00048E50 loc_48E50 ; CODE XREF: __mpn_divrem+294j .text:00048E50 ; __mpn_divrem+2B4j .text:00048E50 LDR R1, [R11,#var_30] .text:00048E54 ADD R3, R1, R6 .text:00048E58 SUBS R3, R3, #3 .text:00048E5C STR R3, [R11,#var_40] .text:00048E60 BMI loc_4902C .text:00048E64 .text:00048E64 loc_48E64 ; CODE XREF: __mpn_divrem+4A4j .text:00048E64 LDR R2, [R11,#var_40] .text:00048E68 LDR R3, [R11,#var_30] .text:00048E6C CMP R2, R3 .text:00048E70 LDRGE R12, [R11,#var_34] .text:00048E74 SUBGE R12, R12, #4 .text:00048E78 STRGE R12, [R11,#var_34] .text:00048E7C LDRLT LR, [R11,#var_34] .text:00048E80 MOVLT R3, #0 .text:00048E84 STRLT R3, [LR] .text:00048E88 CMP R5, R8 .text:00048E8C BNE loc_48EDC .text:00048E90 MOV R12, 0xFFFFFFFF .text:00048E94 ADDS R0, R7, R5 .text:00048E98 BCC loc_48EC4 .text:00048E9C LDR LR, [R11,#var_34] .text:00048EA0 LDR R1, [R11,#var_44] .text:00048EA4 LDR R3, [LR] .text:00048EA8 RSB R2, R1, R0 .text:00048EAC LDR R0, [R11,#var_40] .text:00048EB0 ADDS R7, R3, R1 .text:00048EB4 ADC R5, R2, #0 .text:00048EB8 LDR R2, [R11,#var_2C] .text:00048EBC ADD R1, R0, R12 .text:00048EC0 B loc_4901C .text:00048EC4 ; --------------------------------------------------------------------------- .text:00048EC4 .text:00048EC4 loc_48EC4 ; CODE XREF: __mpn_divrem+314j .text:00048EC4 LDR R5, [R11,#var_44] .text:00048EC8 MOV R3, R5 .text:00048ECC CMP R3, #0 .text:00048ED0 SUBNE R5, R5, #1 .text:00048ED4 RSB R7, R3, #0 .text:00048ED8 B loc_48FC0 .text:00048EDC ; --------------------------------------------------------------------------- .text:00048EDC .text:00048EDC loc_48EDC ; CODE XREF: __mpn_divrem+308j .text:00048EDC MOV R9, R8,LSL#16 .text:00048EE0 MOV R9, R9,LSR#16 .text:00048EE4 MOV R0, R5 .text:00048EE8 MOV R10, R8,LSR#16 .text:00048EEC MOV R1, R10 .text:00048EF0 BL __umodsi3 .text:00048EF4 MOV R4, R0 .text:00048EF8 MOV R0, R5 .text:00048EFC MOV R1, R10 .text:00048F00 BL __udivsi3 .text:00048F04 MOV R6, R0 .text:00048F08 MUL R2, R9, R6 .text:00048F0C MOV R3, R7,LSR#16 .text:00048F10 ORR R4, R3, R4,LSL#16 .text:00048F14 CMP R4, R2 .text:00048F18 BCS loc_48F34 .text:00048F1C SUB R6, R6, #1 .text:00048F20 ADDS R4, R4, R8 .text:00048F24 BCS loc_48F34 .text:00048F28 CMP R4, R2 .text:00048F2C SUBCC R6, R6, #1 .text:00048F30 ADDCC R4, R4, R8 .text:00048F34 .text:00048F34 loc_48F34 ; CODE XREF: __mpn_divrem+394j .text:00048F34 ; __mpn_divrem+3A0j .text:00048F34 RSB R4, R2, R4 .text:00048F38 MOV R0, R4 .text:00048F3C MOV R1, R10 .text:00048F40 BL __umodsi3 .text:00048F44 MOV R5, R0 .text:00048F48 MOV R0, R4 .text:00048F4C MOV R1, R10 .text:00048F50 BL __udivsi3 .text:00048F54 MUL R2, R9, R0 .text:00048F58 MOV R3, R7,LSL#16 .text:00048F5C MOV R3, R3,LSR#16 .text:00048F60 ORR R5, R3, R5,LSL#16 .text:00048F64 CMP R5, R2 .text:00048F68 BCS loc_48F84 .text:00048F6C SUB R0, R0, #1 .text:00048F70 ADDS R5, R5, R8 .text:00048F74 BCS loc_48F84 .text:00048F78 CMP R5, R2 .text:00048F7C SUBCC R0, R0, #1 .text:00048F80 ADDCC R5, R5, R8 .text:00048F84 .text:00048F84 loc_48F84 ; CODE XREF: __mpn_divrem+3E4j .text:00048F84 ; __mpn_divrem+3F0j .text:00048F84 ORR R12, R0, R6,LSL#16 .text:00048F88 RSB R0, R2, R5 .text:00048F8C LDR LR, [R11,#var_44] .text:00048F90 MOV R1, LR,LSR#16 .text:00048F94 MOV R5, R12,LSR#16 .text:00048F98 BIC R2, LR, R1,LSL#16 .text:00048F9C BIC R3, R12, R5,LSL#16 .text:00048FA0 MUL R7, R2, R3 .text:00048FA4 MUL R3, R1, R3 .text:00048FA8 MUL R2, R5, R2 .text:00048FAC MUL R5, R1, R5 .text:00048FB0 ADDS R2, R3, R2 .text:00048FB4 ADDCS R5, R5, #0x10000 .text:00048FB8 ADDS R7, R7, R2,LSL#16 .text:00048FBC ADC R5, R5, R2,LSR#16 .text:00048FC0 .text:00048FC0 loc_48FC0 ; CODE XREF: __mpn_divrem+354j .text:00048FC0 LDR R2, [R11,#var_40] .text:00048FC4 LDR R3, [R11,#var_34] .text:00048FC8 SUB R1, R2, #1 .text:00048FCC LDR R2, [R3] .text:00048FD0 .text:00048FD0 loc_48FD0 ; CODE XREF: __mpn_divrem+480j .text:00048FD0 CMP R5, R0 .text:00048FD4 BHI loc_48FEC .text:00048FD8 MOVNE R3, #0 .text:00048FDC MOVEQ R3, #1 .text:00048FE0 CMP R3, #0 .text:00048FE4 CMPNE R7, R2 .text:00048FE8 BLS loc_49008 .text:00048FEC .text:00048FEC loc_48FEC ; CODE XREF: __mpn_divrem+450j .text:00048FEC SUB R12, R12, #1 .text:00048FF0 LDR R3, [R11,#var_44] .text:00048FF4 SUBS LR, R7, R3 .text:00048FF8 SBC R5, R5, #0 .text:00048FFC MOV R7, LR .text:00049000 ADDS R0, R0, R8 .text:00049004 BCC loc_48FD0 .text:00049008 .text:00049008 loc_49008 ; CODE XREF: __mpn_divrem+464j .text:00049008 SUBS LR, R2, R7 .text:0004900C SBC R5, R0, R5 .text:00049010 LDR R0, [R11,#var_40] .text:00049014 LDR R2, [R11,#var_2C] .text:00049018 MOV R7, LR .text:0004901C .text:0004901C loc_4901C ; CODE XREF: __mpn_divrem+33Cj .text:0004901C STR R12, [R2,R0,LSL#2] .text:00049020 CMP R1, #0 .text:00049024 STR R1, [R11,#var_40] .text:00049028 BGE loc_48E64 .text:0004902C .text:0004902C loc_4902C ; CODE XREF: __mpn_divrem+2DCj .text:0004902C LDR R3, [R11,#var_34] .text:00049030 STR R5, [R3,#4] .text:00049034 STR R7, [R3] .text:00049038 B loc_4930C .text:0004903C ; --------------------------------------------------------------------------- .text:0004903C .text:0004903C loc_4903C ; CODE XREF: __mpn_divrem+40j .text:0004903C ; __mpn_divrem+50j .text:0004903C LDR R12, [R11,#arg_4] .text:00049040 LDR LR, [R11,#var_34] .text:00049044 RSB R3, R12, R6 .text:00049048 ADD LR, LR, R3,LSL#2 .text:0004904C STR LR, [R11,#var_34] .text:00049050 MOV R1, 0xFFFFFFFC .text:00049054 LDR R0, [R11,#arg_0] .text:00049058 MOV R3, R12,LSL#2 .text:0004905C ADD R4, R3, LR .text:00049060 LDR R5, [R4,R1] .text:00049064 ADD R2, R3, R0 .text:00049068 LDR R7, [R2,R1] .text:0004906C STR R3, [R11,#var_58] .text:00049070 CMP R5, R7 .text:00049074 LDR R9, [R2,#-8] .text:00049078 BCC loc_490B4 .text:0004907C BHI loc_49098 .text:00049080 MOV R0, LR .text:00049084 LDR R1, [R11,#arg_0] .text:00049088 SUB R2, R12, #1 .text:0004908C BL __mpn_cmp .text:00049090 CMP R0, #0 .text:00049094 BLT loc_490B4 .text:00049098 .text:00049098 loc_49098 ; CODE XREF: __mpn_divrem+4F8j .text:00049098 MOV R12, #1 .text:0004909C STR R12, [R11,#var_38] .text:000490A0 LDR R0, [R11,#var_34] .text:000490A4 LDMIB R11, {R2,R3} .text:000490A8 MOV R1, R0 .text:000490AC BL __mpn_sub_n .text:000490B0 LDR R5, [R4,#-4] .text:000490B4 .text:000490B4 loc_490B4 ; CODE XREF: __mpn_divrem+4F4j .text:000490B4 ; __mpn_divrem+510j .text:000490B4 LDR LR, [R11,#var_30] .text:000490B8 LDR R0, [R11,#arg_4] .text:000490BC ADD R3, LR, R6 .text:000490C0 RSB R3, R0, R3 .text:000490C4 SUBS R3, R3, #1 .text:000490C8 STR R3, [R11,#var_48] .text:000490CC BMI loc_4930C .text:000490D0 .text:000490D0 loc_490D0 ; CODE XREF: __mpn_divrem+784j .text:000490D0 LDR R1, [R11,#var_48] .text:000490D4 LDR R2, [R11,#var_30] .text:000490D8 CMP R1, R2 .text:000490DC BLT loc_49104 .text:000490E0 LDR R3, [R11,#var_34] .text:000490E4 SUB R12, R1, #1 .text:000490E8 STR R12, [R11,#var_5C] .text:000490EC SUB R3, R3, #4 .text:000490F0 STR R3, [R11,#var_34] .text:000490F4 LDR LR, [R11,#arg_4] .text:000490F8 LDR LR, [R3,LR,LSL#2] .text:000490FC STR LR, [R11,#var_4C] .text:00049100 B loc_4915C .text:00049104 ; --------------------------------------------------------------------------- .text:00049104 .text:00049104 loc_49104 ; CODE XREF: __mpn_divrem+558j .text:00049104 LDR R0, [R11,#var_58] .text:00049108 LDR R1, [R11,#var_34] .text:0004910C ADD R3, R0, R1 .text:00049110 LDR R3, [R3,#-4] .text:00049114 STR R3, [R11,#var_4C] .text:00049118 LDR R3, [R11,#arg_4] .text:0004911C LDR R12, [R11,#var_48] .text:00049120 SUBS R2, R3, #1 .text:00049124 SUB R12, R12, #1 .text:00049128 STR R12, [R11,#var_5C] .text:0004912C BMI loc_49150 .text:00049130 MOV R0, #4 .text:00049134 MLA R1, R2, R0, R1 .text:00049138 .text:00049138 loc_49138 ; CODE XREF: __mpn_divrem+5C8j .text:00049138 LDR LR, [R11,#var_34] .text:0004913C LDR R3, [LR,R2,LSL#2] .text:00049140 SUBS R2, R2, #1 .text:00049144 STR R3, [R1,R0] .text:00049148 SUB R1, R1, #4 .text:0004914C BPL loc_49138 .text:00049150 .text:00049150 loc_49150 ; CODE XREF: __mpn_divrem+5A8j .text:00049150 LDR R0, [R11,#var_34] .text:00049154 MOV R3, #0 .text:00049158 STR R3, [R0] .text:0004915C .text:0004915C loc_4915C ; CODE XREF: __mpn_divrem+57Cj .text:0004915C CMP R5, R7 .text:00049160 MOVEQ R4, 0xFFFFFFFF .text:00049164 BEQ loc_492AC .text:00049168 MOV R10, R7,LSL#16 .text:0004916C MOV R10, R10,LSR#16 .text:00049170 MOV R0, R5 .text:00049174 MOV R8, R7,LSR#16 .text:00049178 MOV R1, R8 .text:0004917C BL __umodsi3 .text:00049180 MOV R4, R0 .text:00049184 MOV R0, R5 .text:00049188 MOV R1, R8 .text:0004918C BL __udivsi3 .text:00049190 MOV R6, R0 .text:00049194 MUL R1, R10, R6 .text:00049198 LDR R3, [R11,#var_58] .text:0004919C LDR R12, [R11,#var_34] .text:000491A0 ADD R2, R3, R12 .text:000491A4 LDR R3, [R2,#-4] .text:000491A8 MOV R3, R3,LSR#16 .text:000491AC ORR R4, R3, R4,LSL#16 .text:000491B0 CMP R4, R1 .text:000491B4 BCS loc_491D0 .text:000491B8 SUB R6, R6, #1 .text:000491BC ADDS R4, R4, R7 .text:000491C0 BCS loc_491D0 .text:000491C4 CMP R4, R1 .text:000491C8 SUBCC R6, R6, #1 .text:000491CC ADDCC R4, R4, R7 .text:000491D0 .text:000491D0 loc_491D0 ; CODE XREF: __mpn_divrem+630j .text:000491D0 ; __mpn_divrem+63Cj .text:000491D0 RSB R4, R1, R4 .text:000491D4 MOV R0, R4 .text:000491D8 MOV R1, R8 .text:000491DC BL __umodsi3 .text:000491E0 MOV R5, R0 .text:000491E4 MOV R0, R4 .text:000491E8 MOV R1, R8 .text:000491EC BL __udivsi3 .text:000491F0 MUL R1, R10, R0 .text:000491F4 LDR LR, [R11,#var_58] .text:000491F8 LDR R3, [R11,#var_34] .text:000491FC ADD R2, LR, R3 .text:00049200 LDR R3, [R2,#-4] .text:00049204 MOV R3, R3,LSL#16 .text:00049208 MOV R3, R3,LSR#16 .text:0004920C ORR R5, R3, R5,LSL#16 .text:00049210 CMP R5, R1 .text:00049214 BCS loc_49230 .text:00049218 SUB R0, R0, #1 .text:0004921C ADDS R5, R5, R7 .text:00049220 BCS loc_49230 .text:00049224 CMP R5, R1 .text:00049228 SUBCC R0, R0, #1 .text:0004922C ADDCC R5, R5, R7 .text:00049230 .text:00049230 loc_49230 ; CODE XREF: __mpn_divrem+690j .text:00049230 ; __mpn_divrem+69Cj .text:00049230 ORR R4, R0, R6,LSL#16 .text:00049234 RSB R0, R1, R5 .text:00049238 MOV R1, R9,LSR#16 .text:0004923C MOV R12, R4,LSR#16 .text:00049240 BIC R2, R9, R1,LSL#16 .text:00049244 BIC R3, R4, R12,LSL#16 .text:00049248 MUL R5, R2, R3 .text:0004924C MUL R3, R1, R3 .text:00049250 MUL R2, R12, R2 .text:00049254 MUL R12, R1, R12 .text:00049258 ADDS R2, R3, R2 .text:0004925C ADDCS R12, R12, #0x10000 .text:00049260 ADDS R5, R5, R2,LSL#16 .text:00049264 ADC R12, R12, R2,LSR#16 .text:00049268 LDR LR, [R11,#var_58] .text:0004926C LDR R3, [R11,#var_34] .text:00049270 MOV R1, 0xFFFFFFF8 .text:00049274 ADD R2, LR, R3 .text:00049278 B loc_49288 .text:0004927C ; --------------------------------------------------------------------------- .text:0004927C .text:0004927C loc_4927C ; CODE XREF: __mpn_divrem+724j .text:0004927C CMP R5, R9 .text:00049280 SUBCC R12, R12, #1 .text:00049284 RSB R5, R9, R5 .text:00049288 .text:00049288 loc_49288 ; CODE XREF: __mpn_divrem+6F4j .text:00049288 CMP R12, R0 .text:0004928C BHI loc_492A0 .text:00049290 BNE loc_492AC .text:00049294 LDR R3, [R2,R1] .text:00049298 CMP R5, R3 .text:0004929C BLS loc_492AC .text:000492A0 .text:000492A0 loc_492A0 ; CODE XREF: __mpn_divrem+708j .text:000492A0 SUB R4, R4, #1 .text:000492A4 ADDS R0, R0, R7 .text:000492A8 BCC loc_4927C .text:000492AC .text:000492AC loc_492AC ; CODE XREF: __mpn_divrem+5E0j .text:000492AC ; __mpn_divrem+70Cj ... .text:000492AC LDR R0, [R11,#var_34] .text:000492B0 LDMIB R11, {R1,R2} .text:000492B4 MOV R3, R4 .text:000492B8 BL __mpn_submul_1 .text:000492BC LDR R12, [R11,#var_4C] .text:000492C0 CMP R12, R0 .text:000492C4 BEQ loc_492E0 .text:000492C8 LDR R0, [R11,#var_34] .text:000492CC LDR R2, [R11,#arg_0] .text:000492D0 SUB R4, R4, #1 .text:000492D4 LDR R3, [R11,#arg_4] .text:000492D8 MOV R1, R0 .text:000492DC BL __mpn_add_n .text:000492E0 .text:000492E0 loc_492E0 ; CODE XREF: __mpn_divrem+740j .text:000492E0 LDR LR, [R11,#var_48] .text:000492E4 LDR R0, [R11,#var_2C] .text:000492E8 STR R4, [R0,LR,LSL#2] .text:000492EC LDR R1, [R11,#var_5C] .text:000492F0 CMP R1, #0 .text:000492F4 STR R1, [R11,#var_48] .text:000492F8 LDR R2, [R11,#var_58] .text:000492FC LDR R12, [R11,#var_34] .text:00049300 ADD R3, R2, R12 .text:00049304 LDR R5, [R3,#-4] .text:00049308 BGE loc_490D0 .text:0004930C .text:0004930C loc_4930C ; CODE XREF: __mpn_divrem+260j .text:0004930C ; __mpn_divrem+4B4j ... .text:0004930C LDR R0, [R11,#var_38] .text:00049310 .text:00049310 locret_49310 ; CODE XREF: __mpn_divrem+60j .text:00049310 LDMDB R11, {R4-R11,SP,PC} .text:00049310 ; End of function __mpn_divrem .text:00049310 .text:00049314 .text:00049314 ; =============== S U B R O U T I N E ======================================= .text:00049314 .text:00049314 ; Attributes: bp-based frame .text:00049314 .text:00049314 EXPORT __mpn_lshift .text:00049314 __mpn_lshift ; CODE XREF: __printf_fp+778p .text:00049314 ; __printf_fp+BA0p ... .text:00049314 MOV R12, SP .text:00049318 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:0004931C SUB R11, R12, #4 .text:00049320 SUB R2, R2, #1 .text:00049324 MOV R5, R1 .text:00049328 LDR R12, [R5,R2,LSL#2] .text:0004932C SUBS R2, R2, #1 .text:00049330 MOV R4, R3 .text:00049334 ADD R0, R0, #4 .text:00049338 RSB LR, R4, #0x20 .text:0004933C MOV R1, R12 .text:00049340 MOV R6, R12,LSR LR .text:00049344 BMI loc_49364 .text:00049348 .text:00049348 loc_49348 ; CODE XREF: __mpn_lshift+4Cj .text:00049348 LDR R12, [R5,R2,LSL#2] .text:0004934C MOV R3, R12,LSR LR .text:00049350 ORR R3, R3, R1,LSL R4 .text:00049354 MOV R1, R12 .text:00049358 STR R3, [R0,R2,LSL#2] .text:0004935C SUBS R2, R2, #1 .text:00049360 BPL loc_49348 .text:00049364 .text:00049364 loc_49364 ; CODE XREF: __mpn_lshift+30j .text:00049364 MOV R3, R12,LSL R4 .text:00049368 STR R3, [R0,R2,LSL#2] .text:0004936C MOV R0, R6 .text:00049370 LDMDB R11, {R4-R6,R11,SP,PC} .text:00049370 ; End of function __mpn_lshift .text:00049370 .text:00049374 .text:00049374 ; =============== S U B R O U T I N E ======================================= .text:00049374 .text:00049374 ; Attributes: bp-based frame .text:00049374 .text:00049374 EXPORT __mpn_rshift .text:00049374 __mpn_rshift ; CODE XREF: __printf_fp+BECp .text:00049374 ; __printf_fp+C14p ... .text:00049374 MOV R12, SP .text:00049378 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0004937C SUB R11, R12, #4 .text:00049380 MOV LR, #1 .text:00049384 MOV R6, R1 .text:00049388 MOV R5, R2 .text:0004938C CMP LR, R5 .text:00049390 MOV R4, R3 .text:00049394 SUB R0, R0, #4 .text:00049398 LDR R12, [R6] .text:0004939C RSB R2, R4, #0x20 .text:000493A0 MOV R1, R12 .text:000493A4 MOV R7, R12,LSL R2 .text:000493A8 BGE loc_493CC .text:000493AC .text:000493AC loc_493AC ; CODE XREF: __mpn_rshift+54j .text:000493AC LDR R12, [R6,LR,LSL#2] .text:000493B0 MOV R3, R12,LSL R2 .text:000493B4 ORR R3, R3, R1,LSR R4 .text:000493B8 MOV R1, R12 .text:000493BC STR R3, [R0,LR,LSL#2] .text:000493C0 ADD LR, LR, #1 .text:000493C4 CMP LR, R5 .text:000493C8 BLT loc_493AC .text:000493CC .text:000493CC loc_493CC ; CODE XREF: __mpn_rshift+34j .text:000493CC MOV R3, R12,LSR R4 .text:000493D0 STR R3, [R0,LR,LSL#2] .text:000493D4 MOV R0, R7 .text:000493D8 LDMDB R11, {R4-R7,R11,SP,PC} .text:000493D8 ; End of function __mpn_rshift .text:000493D8 .text:000493DC .text:000493DC ; =============== S U B R O U T I N E ======================================= .text:000493DC .text:000493DC ; Attributes: bp-based frame .text:000493DC .text:000493DC EXPORT __mpn_mul .text:000493DC __mpn_mul ; CODE XREF: __printf_fp+85Cp .text:000493DC ; __printf_fp:loc_21E2Cp ... .text:000493DC .text:000493DC var_38 = -0x38 .text:000493DC var_34 = -0x34 .text:000493DC var_30 = -0x30 .text:000493DC var_2C = -0x2C .text:000493DC arg_0 = 4 .text:000493DC .text:000493DC MOV R12, SP .text:000493E0 STMFD SP!, {R4-R12,LR,PC} .text:000493E4 SUB R11, R12, #4 .text:000493E8 MOV R4, R0 .text:000493EC MOV R8, R1 .text:000493F0 SUB SP, SP, #0x10 .text:000493F4 LDR R10, [R11,#arg_0] .text:000493F8 MOV R5, R2 .text:000493FC STR R3, [R11,#var_2C] .text:00049400 ADD R3, R4, R5,LSL#2 .text:00049404 CMP R10, #0x1F .text:00049408 MOV R6, R10,LSL#2 .text:0004940C ADD R3, R3, R6 .text:00049410 SUB R3, R3, #4 .text:00049414 STR R3, [R11,#var_30] .text:00049418 BGT loc_49510 .text:0004941C CMP R10, #0 .text:00049420 MOVEQ R0, R10 .text:00049424 BEQ locret_496EC .text:00049428 LDR R2, [R11,#var_2C] .text:0004942C LDR R3, [R2] .text:00049430 CMP R3, #1 .text:00049434 BHI loc_49490 .text:00049438 BNE loc_49464 .text:0004943C MOV R2, #0 .text:00049440 CMP R2, R5 .text:00049444 ADD R1, R4, #4 .text:00049448 BGE loc_49488 .text:0004944C .text:0004944C loc_4944C ; CODE XREF: __mpn_mul+80j .text:0004944C LDR R3, [R8,R2,LSL#2] .text:00049450 STR R3, [R4,R2,LSL#2] .text:00049454 ADD R2, R2, #1 .text:00049458 CMP R2, R5 .text:0004945C BLT loc_4944C .text:00049460 B loc_49488 .text:00049464 ; --------------------------------------------------------------------------- .text:00049464 .text:00049464 loc_49464 ; CODE XREF: __mpn_mul+5Cj .text:00049464 MOV R3, #0 .text:00049468 CMP R3, R5 .text:0004946C ADD R1, R4, #4 .text:00049470 BGE loc_49488 .text:00049474 MOV R2, R3 .text:00049478 .text:00049478 loc_49478 ; CODE XREF: __mpn_mul+A8j .text:00049478 STR R2, [R4,R3,LSL#2] .text:0004947C ADD R3, R3, #1 .text:00049480 CMP R3, R5 .text:00049484 BLT loc_49478 .text:00049488 .text:00049488 loc_49488 ; CODE XREF: __mpn_mul+6Cj .text:00049488 ; __mpn_mul+84j ... .text:00049488 MOV R0, #0 .text:0004948C B loc_494A4 .text:00049490 ; --------------------------------------------------------------------------- .text:00049490 .text:00049490 loc_49490 ; CODE XREF: __mpn_mul+58j .text:00049490 MOV R0, R4 .text:00049494 MOV R1, R8 .text:00049498 MOV R2, R5 .text:0004949C BL __mpn_mul_1 .text:000494A0 ADD R1, R4, #4 .text:000494A4 .text:000494A4 loc_494A4 ; CODE XREF: __mpn_mul+B0j .text:000494A4 STR R0, [R4,R5,LSL#2] .text:000494A8 MOV R4, R1 .text:000494AC MOV R6, #1 .text:000494B0 CMP R6, R10 .text:000494B4 BGE locret_496EC .text:000494B8 .text:000494B8 loc_494B8 ; CODE XREF: __mpn_mul+12Cj .text:000494B8 LDR R2, [R11,#var_2C] .text:000494BC LDR R3, [R2,R6,LSL#2] .text:000494C0 CMP R3, #1 .text:000494C4 BHI loc_494E8 .text:000494C8 MOV R0, #0 .text:000494CC BNE loc_494F8 .text:000494D0 MOV R0, R4 .text:000494D4 MOV R1, R4 .text:000494D8 MOV R2, R8 .text:000494DC MOV R3, R5 .text:000494E0 BL __mpn_add_n .text:000494E4 B loc_494F8 .text:000494E8 ; --------------------------------------------------------------------------- .text:000494E8 .text:000494E8 loc_494E8 ; CODE XREF: __mpn_mul+E8j .text:000494E8 MOV R0, R4 .text:000494EC MOV R1, R8 .text:000494F0 MOV R2, R5 .text:000494F4 BL __mpn_addmul_1 .text:000494F8 .text:000494F8 loc_494F8 ; CODE XREF: __mpn_mul+F0j .text:000494F8 ; __mpn_mul+108j .text:000494F8 STR R0, [R4,R5,LSL#2] .text:000494FC ADD R4, R4, #4 .text:00049500 ADD R6, R6, #1 .text:00049504 CMP R6, R10 .text:00049508 BLT loc_494B8 .text:0004950C B locret_496EC .text:00049510 ; --------------------------------------------------------------------------- .text:00049510 .text:00049510 loc_49510 ; CODE XREF: __mpn_mul+3Cj .text:00049510 MOV R7, R10,LSL#3 .text:00049514 RSB SP, R7, SP .text:00049518 ADD R9, SP, #0x38+var_34 .text:0004951C STR R9, [SP,#0x38+var_38] .text:00049520 LDR R2, [R11,#var_2C] .text:00049524 MOV R0, R4 .text:00049528 MOV R1, R8 .text:0004952C MOV R3, R10 .text:00049530 BL __mpn_impn_mul_n .text:00049534 ADD R4, R4, R6 .text:00049538 ADD R8, R8, R6 .text:0004953C RSB R5, R10, R5 .text:00049540 CMP R5, R10 .text:00049544 STR R6, [R11,#var_34] .text:00049548 BLT loc_49630 .text:0004954C RSB SP, R7, SP .text:00049550 ADD R7, SP, #0x38+var_34 .text:00049554 .text:00049554 loc_49554 ; CODE XREF: __mpn_mul+250j .text:00049554 CMP R10, #0x1F .text:00049558 BLE loc_495DC .text:0004955C STR R9, [SP,#0x38+var_38] .text:00049560 MOV R0, R7 .text:00049564 MOV R1, R8 .text:00049568 LDR R2, [R11,#var_2C] .text:0004956C MOV R3, R10 .text:00049570 BL __mpn_impn_mul_n .text:00049574 .text:00049574 loc_49574 ; CODE XREF: __mpn_mul+214j .text:00049574 MOV R0, R4 .text:00049578 MOV R1, R4 .text:0004957C MOV R2, R7 .text:00049580 MOV R3, R10 .text:00049584 BL __mpn_add_n .text:00049588 ADD R2, R6, R4 .text:0004958C ADD LR, R6, R7 .text:00049590 MOV R12, R10 .text:00049594 ADD LR, LR, #4 .text:00049598 ADD R2, R2, #4 .text:0004959C LDR R3, [R6,R7] .text:000495A0 RSB R5, R10, R5 .text:000495A4 ADD R0, R0, R3 .text:000495A8 CMP R0, R3 .text:000495AC STR R0, [R6,R4] .text:000495B0 BCS loc_495F4 .text:000495B4 SUBS R12, R10, #1 .text:000495B8 BEQ loc_49620 .text:000495BC .text:000495BC loc_495BC ; CODE XREF: __mpn_mul+1F8j .text:000495BC LDR R3, [LR],#4 .text:000495C0 ADD R3, R3, #1 .text:000495C4 CMP R3, #0 .text:000495C8 STR R3, [R2],#4 .text:000495CC BNE loc_495F4 .text:000495D0 SUBS R12, R12, #1 .text:000495D4 BNE loc_495BC .text:000495D8 B loc_49620 .text:000495DC ; --------------------------------------------------------------------------- .text:000495DC .text:000495DC loc_495DC ; CODE XREF: __mpn_mul+17Cj .text:000495DC MOV R0, R7 .text:000495E0 MOV R1, R8 .text:000495E4 LDR R2, [R11,#var_2C] .text:000495E8 MOV R3, R10 .text:000495EC BL __mpn_impn_mul_n_basecase .text:000495F0 B loc_49574 .text:000495F4 ; --------------------------------------------------------------------------- .text:000495F4 .text:000495F4 loc_495F4 ; CODE XREF: __mpn_mul+1D4j .text:000495F4 ; __mpn_mul+1F0j .text:000495F4 CMP R2, LR .text:000495F8 BEQ loc_49620 .text:000495FC MOV R1, #0 .text:00049600 SUB R0, R12, #1 .text:00049604 CMP R1, R0 .text:00049608 BGE loc_49620 .text:0004960C .text:0004960C loc_4960C ; CODE XREF: __mpn_mul+240j .text:0004960C LDR R3, [LR,R1,LSL#2] .text:00049610 STR R3, [R2,R1,LSL#2] .text:00049614 ADD R1, R1, #1 .text:00049618 CMP R1, R0 .text:0004961C BLT loc_4960C .text:00049620 .text:00049620 loc_49620 ; CODE XREF: __mpn_mul+1DCj .text:00049620 ; __mpn_mul+1FCj ... .text:00049620 ADD R4, R4, R6 .text:00049624 ADD R8, R8, R6 .text:00049628 CMP R5, R10 .text:0004962C BGE loc_49554 .text:00049630 .text:00049630 loc_49630 ; CODE XREF: __mpn_mul+16Cj .text:00049630 CMP R5, #0 .text:00049634 BEQ loc_496E4 .text:00049638 STR R5, [SP,#0x38+var_38] .text:0004963C MOV R0, R9 .text:00049640 MOV R2, R10 .text:00049644 LDR R1, [R11,#var_2C] .text:00049648 MOV R3, R8 .text:0004964C BL __mpn_mul .text:00049650 MOV R0, R4 .text:00049654 MOV R1, R4 .text:00049658 MOV R2, R9 .text:0004965C MOV R3, R10 .text:00049660 BL __mpn_add_n .text:00049664 LDR R3, [R11,#var_34] .text:00049668 MOV R12, R5 .text:0004966C ADD R6, R3, R4 .text:00049670 ADD LR, R3, R9 .text:00049674 ADD LR, LR, #4 .text:00049678 LDR R2, [R3,R9] .text:0004967C ADD R6, R6, #4 .text:00049680 ADD R0, R0, R2 .text:00049684 CMP R0, R2 .text:00049688 STR R0, [R3,R4] .text:0004968C BCS loc_496B8 .text:00049690 SUBS R12, R12, #1 .text:00049694 BEQ loc_496E4 .text:00049698 .text:00049698 loc_49698 ; CODE XREF: __mpn_mul+2D4j .text:00049698 LDR R3, [LR],#4 .text:0004969C ADD R2, R3, #1 .text:000496A0 CMP R2, #0 .text:000496A4 STR R2, [R6],#4 .text:000496A8 BNE loc_496B8 .text:000496AC SUBS R12, R12, #1 .text:000496B0 BNE loc_49698 .text:000496B4 B loc_496E4 .text:000496B8 ; --------------------------------------------------------------------------- .text:000496B8 .text:000496B8 loc_496B8 ; CODE XREF: __mpn_mul+2B0j .text:000496B8 ; __mpn_mul+2CCj .text:000496B8 CMP R6, LR .text:000496BC BEQ loc_496E4 .text:000496C0 MOV R1, #0 .text:000496C4 SUB R2, R12, #1 .text:000496C8 CMP R1, R2 .text:000496CC BGE loc_496E4 .text:000496D0 .text:000496D0 loc_496D0 ; CODE XREF: __mpn_mul+304j .text:000496D0 LDR R3, [LR,R1,LSL#2] .text:000496D4 STR R3, [R6,R1,LSL#2] .text:000496D8 ADD R1, R1, #1 .text:000496DC CMP R1, R2 .text:000496E0 BLT loc_496D0 .text:000496E4 .text:000496E4 loc_496E4 ; CODE XREF: __mpn_mul+258j .text:000496E4 ; __mpn_mul+2B8j ... .text:000496E4 LDR R2, [R11,#var_30] .text:000496E8 LDR R0, [R2] .text:000496EC .text:000496EC locret_496EC ; CODE XREF: __mpn_mul+48j .text:000496EC ; __mpn_mul+D8j ... .text:000496EC LDMDB R11, {R4-R11,SP,PC} .text:000496EC ; End of function __mpn_mul .text:000496EC .text:000496F0 .text:000496F0 ; =============== S U B R O U T I N E ======================================= .text:000496F0 .text:000496F0 ; Attributes: bp-based frame .text:000496F0 .text:000496F0 EXPORT __mpn_mul_1 .text:000496F0 __mpn_mul_1 ; CODE XREF: hack_digit.159+90p .text:000496F0 ; hack_digit.159+168p ... .text:000496F0 MOV R12, SP .text:000496F4 STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:000496F8 SUB R11, R12, #4 .text:000496FC MOV R5, R3 .text:00049700 RSB R4, R2, #0 .text:00049704 MOV R3, R4,LSL#2 .text:00049708 RSB R8, R3, R1 .text:0004970C RSB R7, R3, R0 .text:00049710 MOV R6, #0 .text:00049714 .text:00049714 loc_49714 ; CODE XREF: __mpn_mul_1+6Cj .text:00049714 LDR R3, [R8,R4,LSL#2] .text:00049718 MOV R12, R3,LSR#16 .text:0004971C MOV LR, R5,LSR#16 .text:00049720 BIC R0, R3, R12,LSL#16 .text:00049724 BIC R1, R5, LR,LSL#16 .text:00049728 MUL R2, R0, R1 .text:0004972C MUL R1, R12, R1 .text:00049730 MUL R0, LR, R0 .text:00049734 MUL LR, R12, LR .text:00049738 ADDS R0, R1, R0 .text:0004973C ADDCS LR, LR, #0x10000 .text:00049740 ADDS R2, R2, R0,LSL#16 .text:00049744 ADC LR, LR, R0,LSR#16 .text:00049748 ADDS R2, R2, R6 .text:0004974C MOVCC R6, LR .text:00049750 ADDCS R6, LR, #1 .text:00049754 STR R2, [R7,R4,LSL#2] .text:00049758 ADDS R4, R4, #1 .text:0004975C BNE loc_49714 .text:00049760 MOV R0, R6 .text:00049764 LDMDB R11, {R4-R8,R11,SP,PC} .text:00049764 ; End of function __mpn_mul_1 .text:00049764 .text:00049768 .text:00049768 ; =============== S U B R O U T I N E ======================================= .text:00049768 .text:00049768 ; Attributes: bp-based frame .text:00049768 .text:00049768 EXPORT __mpn_impn_mul_n_basecase .text:00049768 __mpn_impn_mul_n_basecase ; CODE XREF: __mpn_mul+210p .text:00049768 ; __mpn_impn_mul_n+98p ... .text:00049768 MOV R12, SP .text:0004976C STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:00049770 SUB R11, R12, #4 .text:00049774 MOV R8, R2 .text:00049778 MOV R4, R0 .text:0004977C MOV R7, R1 .text:00049780 LDR R12, [R8] .text:00049784 MOV R5, R3 .text:00049788 CMP R12, #1 .text:0004978C BHI loc_497E8 .text:00049790 BNE loc_497BC .text:00049794 MOV R2, #0 .text:00049798 CMP R2, R5 .text:0004979C ADD R1, R4, #4 .text:000497A0 BGE loc_497E0 .text:000497A4 .text:000497A4 loc_497A4 ; CODE XREF: __mpn_impn_mul_n_basecase+4Cj .text:000497A4 LDR R3, [R7,R2,LSL#2] .text:000497A8 STR R3, [R4,R2,LSL#2] .text:000497AC ADD R2, R2, #1 .text:000497B0 CMP R2, R5 .text:000497B4 BLT loc_497A4 .text:000497B8 B loc_497E0 .text:000497BC ; --------------------------------------------------------------------------- .text:000497BC .text:000497BC loc_497BC ; CODE XREF: __mpn_impn_mul_n_basecase+28j .text:000497BC MOV R3, #0 .text:000497C0 CMP R3, R5 .text:000497C4 ADD R1, R4, #4 .text:000497C8 BGE loc_497E0 .text:000497CC MOV R2, R3 .text:000497D0 .text:000497D0 loc_497D0 ; CODE XREF: __mpn_impn_mul_n_basecase+74j .text:000497D0 STR R2, [R4,R3,LSL#2] .text:000497D4 ADD R3, R3, #1 .text:000497D8 CMP R3, R5 .text:000497DC BLT loc_497D0 .text:000497E0 .text:000497E0 loc_497E0 ; CODE XREF: __mpn_impn_mul_n_basecase+38j .text:000497E0 ; __mpn_impn_mul_n_basecase+50j ... .text:000497E0 MOV R0, #0 .text:000497E4 B loc_49800 .text:000497E8 ; --------------------------------------------------------------------------- .text:000497E8 .text:000497E8 loc_497E8 ; CODE XREF: __mpn_impn_mul_n_basecase+24j .text:000497E8 MOV R0, R4 .text:000497EC MOV R1, R7 .text:000497F0 MOV R2, R5 .text:000497F4 MOV R3, R12 .text:000497F8 BL __mpn_mul_1 .text:000497FC ADD R1, R4, #4 .text:00049800 .text:00049800 loc_49800 ; CODE XREF: __mpn_impn_mul_n_basecase+7Cj .text:00049800 STR R0, [R4,R5,LSL#2] .text:00049804 MOV R4, R1 .text:00049808 MOV R6, #1 .text:0004980C CMP R6, R5 .text:00049810 LDMGEDB R11, {R4-R8,R11,SP,PC} .text:00049814 .text:00049814 loc_49814 ; CODE XREF: __mpn_impn_mul_n_basecase+FCj .text:00049814 LDR R12, [R8,R6,LSL#2] .text:00049818 CMP R12, #1 .text:0004981C BHI loc_49840 .text:00049820 MOV R0, #0 .text:00049824 BNE loc_49854 .text:00049828 MOV R0, R4 .text:0004982C MOV R1, R4 .text:00049830 MOV R2, R7 .text:00049834 MOV R3, R5 .text:00049838 BL __mpn_add_n .text:0004983C B loc_49854 .text:00049840 ; --------------------------------------------------------------------------- .text:00049840 .text:00049840 loc_49840 ; CODE XREF: __mpn_impn_mul_n_basecase+B4j .text:00049840 MOV R0, R4 .text:00049844 MOV R1, R7 .text:00049848 MOV R2, R5 .text:0004984C MOV R3, R12 .text:00049850 BL __mpn_addmul_1 .text:00049854 .text:00049854 loc_49854 ; CODE XREF: __mpn_impn_mul_n_basecase+BCj .text:00049854 ; __mpn_impn_mul_n_basecase+D4j .text:00049854 STR R0, [R4,R5,LSL#2] .text:00049858 ADD R4, R4, #4 .text:0004985C ADD R6, R6, #1 .text:00049860 CMP R6, R5 .text:00049864 BLT loc_49814 .text:00049868 LDMDB R11, {R4-R8,R11,SP,PC} .text:00049868 ; End of function __mpn_impn_mul_n_basecase .text:00049868 .text:0004986C .text:0004986C ; =============== S U B R O U T I N E ======================================= .text:0004986C .text:0004986C ; Attributes: bp-based frame .text:0004986C .text:0004986C EXPORT __mpn_impn_mul_n .text:0004986C __mpn_impn_mul_n ; CODE XREF: __mpn_mul+154p .text:0004986C ; __mpn_mul+194p ... .text:0004986C .text:0004986C var_38 = -0x38 .text:0004986C var_34 = -0x34 .text:0004986C var_30 = -0x30 .text:0004986C var_2C = -0x2C .text:0004986C arg_0 = 4 .text:0004986C .text:0004986C MOV R12, SP .text:00049870 STMFD SP!, {R4-R12,LR,PC} .text:00049874 SUB R11, R12, #4 .text:00049878 SUB SP, SP, #0x10 .text:0004987C STR R3, [R11,#var_2C] .text:00049880 MOV R6, R0 .text:00049884 MOV R10, R1 .text:00049888 MOV R9, R2 .text:0004988C TST R3, #1 .text:00049890 BEQ loc_49938 .text:00049894 SUB R5, R3, #1 .text:00049898 CMP R5, #0x1F .text:0004989C BLE loc_498F4 .text:000498A0 LDR R1, [R11,#arg_0] .text:000498A4 STR R1, [SP,#0x38+var_38] .text:000498A8 MOV R3, R5 .text:000498AC MOV R1, R10 .text:000498B0 BL __mpn_impn_mul_n .text:000498B4 .text:000498B4 loc_498B4 ; CODE XREF: __mpn_impn_mul_n+9Cj .text:000498B4 ADD R4, R6, R5,LSL#2 .text:000498B8 MOV R0, R4 .text:000498BC MOV R1, R10 .text:000498C0 LDR R3, [R9,R5,LSL#2] .text:000498C4 MOV R2, R5 .text:000498C8 BL __mpn_addmul_1 .text:000498CC STR R0, [R6,R5,LSL#3] .text:000498D0 LDR R2, [R11,#var_2C] .text:000498D4 MOV R0, R4 .text:000498D8 LDR R3, [R10,R5,LSL#2] .text:000498DC MOV R1, R9 .text:000498E0 BL __mpn_addmul_1 .text:000498E4 LDR R2, [R11,#var_2C] .text:000498E8 ADD R3, R5, R2 .text:000498EC STR R0, [R6,R3,LSL#2] .text:000498F0 B locret_49CA0 .text:000498F4 ; --------------------------------------------------------------------------- .text:000498F4 .text:000498F4 loc_498F4 ; CODE XREF: __mpn_impn_mul_n+30j .text:000498F4 MOV R0, R6 .text:000498F8 MOV R1, R10 .text:000498FC MOV R2, R9 .text:00049900 MOV R3, R5 .text:00049904 BL __mpn_impn_mul_n_basecase .text:00049908 B loc_498B4 .text:0004990C ; --------------------------------------------------------------------------- .text:0004990C .text:0004990C loc_4990C ; CODE XREF: __mpn_impn_mul_n+D8j .text:0004990C MOV R12, R4,LSL#2 .text:00049910 LDR R3, [R11,#var_2C] .text:00049914 ADD R1, R10, R12 .text:00049918 MOV LR, R3,LSL#2 .text:0004991C STR LR, [R11,#var_34] .text:00049920 ADD R2, R9, R12 .text:00049924 MOV R8, R12 .text:00049928 ADD R0, R6, LR .text:0004992C MOV R3, R4 .text:00049930 BL __mpn_impn_mul_n_basecase .text:00049934 B loc_49974 .text:00049938 ; --------------------------------------------------------------------------- .text:00049938 .text:00049938 loc_49938 ; CODE XREF: __mpn_impn_mul_n+24j .text:00049938 LDR R12, [R11,#var_2C] .text:0004993C MOV R4, R12,ASR#1 .text:00049940 CMP R4, #0x1F .text:00049944 BLE loc_4990C .text:00049948 MOV LR, R12,LSL#2 .text:0004994C LDR R3, [R11,#arg_0] .text:00049950 ADD R0, R6, LR .text:00049954 STR R3, [SP,#0x38+var_38] .text:00049958 MOV R12, R4,LSL#2 .text:0004995C ADD R1, R10, R12 .text:00049960 STR LR, [R11,#var_34] .text:00049964 ADD R2, R9, R12 .text:00049968 MOV R8, R12 .text:0004996C MOV R3, R4 .text:00049970 BL __mpn_impn_mul_n .text:00049974 .text:00049974 loc_49974 ; CODE XREF: __mpn_impn_mul_n+C8j .text:00049974 ADD R5, R10, R8 .text:00049978 MOV R0, R5 .text:0004997C MOV R1, R10 .text:00049980 MOV R2, R4 .text:00049984 BL __mpn_cmp .text:00049988 CMP R0, #0 .text:0004998C BLT loc_499B0 .text:00049990 MOV R12, #0 .text:00049994 STR R12, [R11,#var_30] .text:00049998 MOV R0, R6 .text:0004999C MOV R1, R5 .text:000499A0 MOV R2, R10 .text:000499A4 MOV R3, R4 .text:000499A8 BL __mpn_sub_n .text:000499AC B loc_499CC .text:000499B0 ; --------------------------------------------------------------------------- .text:000499B0 .text:000499B0 loc_499B0 ; CODE XREF: __mpn_impn_mul_n+120j .text:000499B0 MOV R12, #1 .text:000499B4 STR R12, [R11,#var_30] .text:000499B8 MOV R0, R6 .text:000499BC MOV R1, R10 .text:000499C0 MOV R2, R5 .text:000499C4 MOV R3, R4 .text:000499C8 BL __mpn_sub_n .text:000499CC .text:000499CC loc_499CC ; CODE XREF: __mpn_impn_mul_n+140j .text:000499CC ADD R5, R9, R8 .text:000499D0 MOV R0, R5 .text:000499D4 MOV R1, R9 .text:000499D8 MOV R2, R4 .text:000499DC BL __mpn_cmp .text:000499E0 CMP R0, #0 .text:000499E4 BLT loc_49A24 .text:000499E8 LDR R12, [R11,#var_30] .text:000499EC EOR R12, R12, #1 .text:000499F0 STR R12, [R11,#var_30] .text:000499F4 ADD R0, R6, R8 .text:000499F8 MOV R1, R5 .text:000499FC MOV R2, R9 .text:00049A00 MOV R3, R4 .text:00049A04 BL __mpn_sub_n .text:00049A08 B loc_49A38 .text:00049A0C ; --------------------------------------------------------------------------- .text:00049A0C .text:00049A0C loc_49A0C ; CODE XREF: __mpn_impn_mul_n+1D0j .text:00049A0C MOV R1, R6 .text:00049A10 ADD R2, R6, R8 .text:00049A14 LDR R0, [R11,#arg_0] .text:00049A18 MOV R3, R4 .text:00049A1C BL __mpn_impn_mul_n_basecase .text:00049A20 B loc_49A64 .text:00049A24 ; --------------------------------------------------------------------------- .text:00049A24 .text:00049A24 loc_49A24 ; CODE XREF: __mpn_impn_mul_n+178j .text:00049A24 ADD R0, R6, R8 .text:00049A28 MOV R1, R9 .text:00049A2C MOV R2, R5 .text:00049A30 MOV R3, R4 .text:00049A34 BL __mpn_sub_n .text:00049A38 .text:00049A38 loc_49A38 ; CODE XREF: __mpn_impn_mul_n+19Cj .text:00049A38 CMP R4, #0x1F .text:00049A3C BLE loc_49A0C .text:00049A40 LDR R1, [R11,#arg_0] .text:00049A44 LDR R2, [R11,#var_34] .text:00049A48 ADD R3, R1, R2 .text:00049A4C STR R3, [SP,#0x38+var_38] .text:00049A50 MOV R0, R1 .text:00049A54 MOV R1, R6 .text:00049A58 ADD R2, R6, R8 .text:00049A5C MOV R3, R4 .text:00049A60 BL __mpn_impn_mul_n .text:00049A64 .text:00049A64 loc_49A64 ; CODE XREF: __mpn_impn_mul_n+1B4j .text:00049A64 MOV R1, #0 .text:00049A68 CMP R1, R4 .text:00049A6C BGE loc_49A94 .text:00049A70 LDR R3, [R11,#var_34] .text:00049A74 ADD R12, R8, R6 .text:00049A78 ADD R0, R3, R6 .text:00049A7C .text:00049A7C loc_49A7C ; CODE XREF: __mpn_impn_mul_n+224j .text:00049A7C MOV R3, R1,LSL#2 .text:00049A80 ADD R1, R1, #1 .text:00049A84 LDR R2, [R3,R0] .text:00049A88 CMP R1, R4 .text:00049A8C STR R2, [R3,R12] .text:00049A90 BLT loc_49A7C .text:00049A94 .text:00049A94 loc_49A94 ; CODE XREF: __mpn_impn_mul_n+200j .text:00049A94 LDR R12, [R11,#var_34] .text:00049A98 MOV R3, R4 .text:00049A9C ADD R0, R6, R12 .text:00049AA0 MOV R1, R0 .text:00049AA4 ADD R2, R0, R8 .text:00049AA8 BL __mpn_add_n .text:00049AAC LDR R1, [R11,#var_30] .text:00049AB0 MOV R7, R0 .text:00049AB4 CMP R1, #0 .text:00049AB8 BEQ loc_49AF0 .text:00049ABC LDR R2, [R11,#arg_0] .text:00049AC0 ADD R0, R6, R8 .text:00049AC4 LDR R3, [R11,#var_2C] .text:00049AC8 MOV R1, R0 .text:00049ACC BL __mpn_sub_n .text:00049AD0 RSB R7, R0, R7 .text:00049AD4 B loc_49B08 .text:00049AD8 ; --------------------------------------------------------------------------- .text:00049AD8 .text:00049AD8 loc_49AD8 ; CODE XREF: __mpn_impn_mul_n+2A0j .text:00049AD8 MOV R1, R10 .text:00049ADC MOV R2, R9 .text:00049AE0 LDR R0, [R11,#arg_0] .text:00049AE4 MOV R3, R4 .text:00049AE8 BL __mpn_impn_mul_n_basecase .text:00049AEC B loc_49B34 .text:00049AF0 ; --------------------------------------------------------------------------- .text:00049AF0 .text:00049AF0 loc_49AF0 ; CODE XREF: __mpn_impn_mul_n+24Cj .text:00049AF0 LDR R2, [R11,#arg_0] .text:00049AF4 ADD R0, R6, R8 .text:00049AF8 LDR R3, [R11,#var_2C] .text:00049AFC MOV R1, R0 .text:00049B00 BL __mpn_add_n .text:00049B04 ADD R7, R7, R0 .text:00049B08 .text:00049B08 loc_49B08 ; CODE XREF: __mpn_impn_mul_n+268j .text:00049B08 CMP R4, #0x1F .text:00049B0C BLE loc_49AD8 .text:00049B10 LDR R2, [R11,#arg_0] .text:00049B14 LDR R12, [R11,#var_34] .text:00049B18 ADD R3, R2, R12 .text:00049B1C STR R3, [SP,#0x38+var_38] .text:00049B20 MOV R1, R10 .text:00049B24 MOV R0, R2 .text:00049B28 MOV R2, R9 .text:00049B2C MOV R3, R4 .text:00049B30 BL __mpn_impn_mul_n .text:00049B34 .text:00049B34 loc_49B34 ; CODE XREF: __mpn_impn_mul_n+280j .text:00049B34 ADD R5, R6, R8 .text:00049B38 LDR R2, [R11,#arg_0] .text:00049B3C MOV R0, R5 .text:00049B40 LDR R3, [R11,#var_2C] .text:00049B44 MOV R1, R5 .text:00049B48 BL __mpn_add_n .text:00049B4C ADDS R7, R7, R0 .text:00049B50 BEQ loc_49BD8 .text:00049B54 LDR R1, [R11,#var_34] .text:00049B58 LDR R3, [R11,#var_34] .text:00049B5C ADD R0, R1, R5 .text:00049B60 MOV R1, R4 .text:00049B64 LDR R2, [R3,R5] .text:00049B68 ADD R12, R0, #4 .text:00049B6C ADD R3, R7, R2 .text:00049B70 CMP R3, R2 .text:00049B74 LDR R2, [R11,#var_34] .text:00049B78 MOV R0, R12 .text:00049B7C STR R3, [R2,R5] .text:00049B80 BCS loc_49BAC .text:00049B84 SUBS R1, R4, #1 .text:00049B88 BEQ loc_49BD8 .text:00049B8C .text:00049B8C loc_49B8C ; CODE XREF: __mpn_impn_mul_n+338j .text:00049B8C LDR R3, [R12],#4 .text:00049B90 ADD R2, R3, #1 .text:00049B94 CMP R2, #0 .text:00049B98 STR R2, [R0],#4 .text:00049B9C BNE loc_49BAC .text:00049BA0 SUBS R1, R1, #1 .text:00049BA4 BNE loc_49B8C .text:00049BA8 B loc_49BD8 .text:00049BAC ; --------------------------------------------------------------------------- .text:00049BAC .text:00049BAC loc_49BAC ; CODE XREF: __mpn_impn_mul_n+314j .text:00049BAC ; __mpn_impn_mul_n+330j .text:00049BAC CMP R0, R12 .text:00049BB0 BEQ loc_49BD8 .text:00049BB4 MOV R2, #0 .text:00049BB8 SUB R1, R1, #1 .text:00049BBC CMP R2, R1 .text:00049BC0 BGE loc_49BD8 .text:00049BC4 .text:00049BC4 loc_49BC4 ; CODE XREF: __mpn_impn_mul_n+368j .text:00049BC4 LDR R3, [R12,R2,LSL#2] .text:00049BC8 STR R3, [R0,R2,LSL#2] .text:00049BCC ADD R2, R2, #1 .text:00049BD0 CMP R2, R1 .text:00049BD4 BLT loc_49BC4 .text:00049BD8 .text:00049BD8 loc_49BD8 ; CODE XREF: __mpn_impn_mul_n+2E4j .text:00049BD8 ; __mpn_impn_mul_n+31Cj ... .text:00049BD8 MOV R2, #0 .text:00049BDC CMP R2, R4 .text:00049BE0 BGE loc_49BFC .text:00049BE4 .text:00049BE4 loc_49BE4 ; CODE XREF: __mpn_impn_mul_n+38Cj .text:00049BE4 LDR R12, [R11,#arg_0] .text:00049BE8 LDR R3, [R12,R2,LSL#2] .text:00049BEC STR R3, [R6,R2,LSL#2] .text:00049BF0 ADD R2, R2, #1 .text:00049BF4 CMP R2, R4 .text:00049BF8 BLT loc_49BE4 .text:00049BFC .text:00049BFC loc_49BFC ; CODE XREF: __mpn_impn_mul_n+374j .text:00049BFC ADD R0, R6, R8 .text:00049C00 LDR R3, [R11,#arg_0] .text:00049C04 MOV R1, R0 .text:00049C08 ADD R2, R3, R8 .text:00049C0C MOV R3, R4 .text:00049C10 BL __mpn_add_n .text:00049C14 CMP R0, #0 .text:00049C18 BEQ locret_49CA0 .text:00049C1C LDR R12, [R11,#var_34] .text:00049C20 LDR R2, [R11,#var_2C] .text:00049C24 LDR R3, [R11,#var_34] .text:00049C28 ADD R0, R12, R6 .text:00049C2C LDR R1, [R3,R6] .text:00049C30 ADD R12, R0, #4 .text:00049C34 ADD R3, R1, #1 .text:00049C38 CMP R3, R1 .text:00049C3C LDR R1, [R11,#var_34] .text:00049C40 MOV R0, R12 .text:00049C44 STR R3, [R1,R6] .text:00049C48 BCS loc_49C74 .text:00049C4C SUBS R2, R2, #1 .text:00049C50 BEQ locret_49CA0 .text:00049C54 .text:00049C54 loc_49C54 ; CODE XREF: __mpn_impn_mul_n+400j .text:00049C54 LDR R3, [R12],#4 .text:00049C58 ADD R1, R3, #1 .text:00049C5C CMP R1, #0 .text:00049C60 STR R1, [R0],#4 .text:00049C64 BNE loc_49C74 .text:00049C68 SUBS R2, R2, #1 .text:00049C6C BNE loc_49C54 .text:00049C70 B locret_49CA0 .text:00049C74 ; --------------------------------------------------------------------------- .text:00049C74 .text:00049C74 loc_49C74 ; CODE XREF: __mpn_impn_mul_n+3DCj .text:00049C74 ; __mpn_impn_mul_n+3F8j .text:00049C74 CMP R0, R12 .text:00049C78 BEQ locret_49CA0 .text:00049C7C MOV R1, #0 .text:00049C80 SUB R2, R2, #1 .text:00049C84 CMP R1, R2 .text:00049C88 BGE locret_49CA0 .text:00049C8C .text:00049C8C loc_49C8C ; CODE XREF: __mpn_impn_mul_n+430j .text:00049C8C LDR R3, [R12,R1,LSL#2] .text:00049C90 STR R3, [R0,R1,LSL#2] .text:00049C94 ADD R1, R1, #1 .text:00049C98 CMP R1, R2 .text:00049C9C BLT loc_49C8C .text:00049CA0 .text:00049CA0 locret_49CA0 ; CODE XREF: __mpn_impn_mul_n+84j .text:00049CA0 ; __mpn_impn_mul_n+3ACj ... .text:00049CA0 LDMDB R11, {R4-R11,SP,PC} .text:00049CA0 ; End of function __mpn_impn_mul_n .text:00049CA0 .text:00049CA4 .text:00049CA4 ; =============== S U B R O U T I N E ======================================= .text:00049CA4 .text:00049CA4 ; Attributes: bp-based frame .text:00049CA4 .text:00049CA4 EXPORT __mpn_impn_sqr_n_basecase .text:00049CA4 __mpn_impn_sqr_n_basecase ; CODE XREF: __mpn_impn_sqr_n+88p .text:00049CA4 ; __mpn_impn_sqr_n+B0p ... .text:00049CA4 MOV R12, SP .text:00049CA8 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:00049CAC SUB R11, R12, #4 .text:00049CB0 MOV R7, R1 .text:00049CB4 MOV R4, R0 .text:00049CB8 LDR R3, [R7] .text:00049CBC MOV R5, R2 .text:00049CC0 CMP R3, #1 .text:00049CC4 BHI loc_49D20 .text:00049CC8 BNE loc_49CF4 .text:00049CCC MOV R2, #0 .text:00049CD0 CMP R2, R5 .text:00049CD4 ADD R1, R4, #4 .text:00049CD8 BGE loc_49D18 .text:00049CDC .text:00049CDC loc_49CDC ; CODE XREF: __mpn_impn_sqr_n_basecase+48j .text:00049CDC LDR R3, [R7,R2,LSL#2] .text:00049CE0 STR R3, [R4,R2,LSL#2] .text:00049CE4 ADD R2, R2, #1 .text:00049CE8 CMP R2, R5 .text:00049CEC BLT loc_49CDC .text:00049CF0 B loc_49D18 .text:00049CF4 ; --------------------------------------------------------------------------- .text:00049CF4 .text:00049CF4 loc_49CF4 ; CODE XREF: __mpn_impn_sqr_n_basecase+24j .text:00049CF4 MOV R3, #0 .text:00049CF8 CMP R3, R5 .text:00049CFC ADD R1, R4, #4 .text:00049D00 BGE loc_49D18 .text:00049D04 MOV R2, R3 .text:00049D08 .text:00049D08 loc_49D08 ; CODE XREF: __mpn_impn_sqr_n_basecase+70j .text:00049D08 STR R2, [R4,R3,LSL#2] .text:00049D0C ADD R3, R3, #1 .text:00049D10 CMP R3, R5 .text:00049D14 BLT loc_49D08 .text:00049D18 .text:00049D18 loc_49D18 ; CODE XREF: __mpn_impn_sqr_n_basecase+34j .text:00049D18 ; __mpn_impn_sqr_n_basecase+4Cj ... .text:00049D18 MOV R0, #0 .text:00049D1C B loc_49D34 .text:00049D20 ; --------------------------------------------------------------------------- .text:00049D20 .text:00049D20 loc_49D20 ; CODE XREF: __mpn_impn_sqr_n_basecase+20j .text:00049D20 MOV R0, R4 .text:00049D24 MOV R1, R7 .text:00049D28 MOV R2, R5 .text:00049D2C BL __mpn_mul_1 .text:00049D30 ADD R1, R4, #4 .text:00049D34 .text:00049D34 loc_49D34 ; CODE XREF: __mpn_impn_sqr_n_basecase+78j .text:00049D34 STR R0, [R4,R5,LSL#2] .text:00049D38 MOV R4, R1 .text:00049D3C MOV R6, #1 .text:00049D40 CMP R6, R5 .text:00049D44 LDMGEDB R11, {R4-R7,R11,SP,PC} .text:00049D48 .text:00049D48 loc_49D48 ; CODE XREF: __mpn_impn_sqr_n_basecase+F0j .text:00049D48 LDR R3, [R7,R6,LSL#2] .text:00049D4C CMP R3, #1 .text:00049D50 BHI loc_49D74 .text:00049D54 MOV R0, #0 .text:00049D58 BNE loc_49D84 .text:00049D5C MOV R0, R4 .text:00049D60 MOV R1, R4 .text:00049D64 MOV R2, R7 .text:00049D68 MOV R3, R5 .text:00049D6C BL __mpn_add_n .text:00049D70 B loc_49D84 .text:00049D74 ; --------------------------------------------------------------------------- .text:00049D74 .text:00049D74 loc_49D74 ; CODE XREF: __mpn_impn_sqr_n_basecase+ACj .text:00049D74 MOV R0, R4 .text:00049D78 MOV R1, R7 .text:00049D7C MOV R2, R5 .text:00049D80 BL __mpn_addmul_1 .text:00049D84 .text:00049D84 loc_49D84 ; CODE XREF: __mpn_impn_sqr_n_basecase+B4j .text:00049D84 ; __mpn_impn_sqr_n_basecase+CCj .text:00049D84 STR R0, [R4,R5,LSL#2] .text:00049D88 ADD R4, R4, #4 .text:00049D8C ADD R6, R6, #1 .text:00049D90 CMP R6, R5 .text:00049D94 BLT loc_49D48 .text:00049D98 LDMDB R11, {R4-R7,R11,SP,PC} .text:00049D98 ; End of function __mpn_impn_sqr_n_basecase .text:00049D98 .text:00049D9C .text:00049D9C ; =============== S U B R O U T I N E ======================================= .text:00049D9C .text:00049D9C ; Attributes: bp-based frame .text:00049D9C .text:00049D9C EXPORT __mpn_impn_sqr_n .text:00049D9C __mpn_impn_sqr_n ; CODE XREF: __mpn_impn_sqr_n+38p .text:00049D9C ; __mpn_impn_sqr_n+E8p ... .text:00049D9C .text:00049D9C var_30 = -0x30 .text:00049D9C var_2C = -0x2C .text:00049D9C .text:00049D9C MOV R12, SP .text:00049DA0 STMFD SP!, {R4-R12,LR,PC} .text:00049DA4 SUB R11, R12, #4 .text:00049DA8 SUB SP, SP, #8 .text:00049DAC STR R2, [R11,#var_2C] .text:00049DB0 MOV R6, R0 .text:00049DB4 MOV R7, R1 .text:00049DB8 MOV R8, R3 .text:00049DBC TST R2, #1 .text:00049DC0 BEQ loc_49E54 .text:00049DC4 SUB R5, R2, #1 .text:00049DC8 CMP R5, #0x1F .text:00049DCC BLE loc_49E18 .text:00049DD0 MOV R2, R5 .text:00049DD4 BL __mpn_impn_sqr_n .text:00049DD8 .text:00049DD8 loc_49DD8 ; CODE XREF: __mpn_impn_sqr_n+8Cj .text:00049DD8 ADD R4, R6, R5,LSL#2 .text:00049DDC MOV R0, R4 .text:00049DE0 MOV R1, R7 .text:00049DE4 LDR R3, [R7,R5,LSL#2] .text:00049DE8 MOV R2, R5 .text:00049DEC BL __mpn_addmul_1 .text:00049DF0 STR R0, [R6,R5,LSL#3] .text:00049DF4 LDR R2, [R11,#var_2C] .text:00049DF8 MOV R1, R7 .text:00049DFC LDR R3, [R1,R5,LSL#2] .text:00049E00 MOV R0, R4 .text:00049E04 BL __mpn_addmul_1 .text:00049E08 LDR R2, [R11,#var_2C] .text:00049E0C ADD R3, R5, R2 .text:00049E10 STR R0, [R6,R3,LSL#2] .text:00049E14 B locret_4A0F0 .text:00049E18 ; --------------------------------------------------------------------------- .text:00049E18 .text:00049E18 loc_49E18 ; CODE XREF: __mpn_impn_sqr_n+30j .text:00049E18 MOV R0, R6 .text:00049E1C MOV R1, R7 .text:00049E20 MOV R2, R5 .text:00049E24 BL __mpn_impn_sqr_n_basecase .text:00049E28 B loc_49DD8 .text:00049E2C ; --------------------------------------------------------------------------- .text:00049E2C .text:00049E2C loc_49E2C ; CODE XREF: __mpn_impn_sqr_n+C4j .text:00049E2C LDR R3, [R11,#var_2C] .text:00049E30 MOV R12, R3,LSL#2 .text:00049E34 MOV R3, R4,LSL#2 .text:00049E38 STR R3, [R11,#var_30] .text:00049E3C MOV R2, R4 .text:00049E40 ADD R0, R6, R12 .text:00049E44 ADD R1, R7, R3 .text:00049E48 MOV R10, R12 .text:00049E4C BL __mpn_impn_sqr_n_basecase .text:00049E50 B loc_49E88 .text:00049E54 ; --------------------------------------------------------------------------- .text:00049E54 .text:00049E54 loc_49E54 ; CODE XREF: __mpn_impn_sqr_n+24j .text:00049E54 LDR R2, [R11,#var_2C] .text:00049E58 MOV R4, R2,ASR#1 .text:00049E5C CMP R4, #0x1F .text:00049E60 BLE loc_49E2C .text:00049E64 MOV LR, R2,LSL#2 .text:00049E68 ADD R0, R6, LR .text:00049E6C MOV R12, R4,LSL#2 .text:00049E70 ADD R1, R7, R12 .text:00049E74 STR R12, [R11,#var_30] .text:00049E78 MOV R2, R4 .text:00049E7C MOV R3, R8 .text:00049E80 MOV R10, LR .text:00049E84 BL __mpn_impn_sqr_n .text:00049E88 .text:00049E88 loc_49E88 ; CODE XREF: __mpn_impn_sqr_n+B4j .text:00049E88 MOV R1, R7 .text:00049E8C LDR R3, [R11,#var_30] .text:00049E90 MOV R2, R4 .text:00049E94 ADD R5, R7, R3 .text:00049E98 MOV R0, R5 .text:00049E9C BL __mpn_cmp .text:00049EA0 CMP R0, #0 .text:00049EA4 BLT loc_49EE8 .text:00049EA8 MOV R0, R6 .text:00049EAC MOV R1, R5 .text:00049EB0 MOV R2, R7 .text:00049EB4 MOV R3, R4 .text:00049EB8 BL __mpn_sub_n .text:00049EBC B loc_49EFC .text:00049EC0 ; --------------------------------------------------------------------------- .text:00049EC0 .text:00049EC0 loc_49EC0 ; CODE XREF: __mpn_impn_sqr_n+164j .text:00049EC0 MOV R0, R8 .text:00049EC4 MOV R1, R6 .text:00049EC8 MOV R2, R4 .text:00049ECC BL __mpn_impn_sqr_n_basecase .text:00049ED0 B loc_49F18 .text:00049ED4 ; --------------------------------------------------------------------------- .text:00049ED4 .text:00049ED4 loc_49ED4 ; CODE XREF: __mpn_impn_sqr_n+1E8j .text:00049ED4 MOV R0, R8 .text:00049ED8 MOV R1, R7 .text:00049EDC MOV R2, R4 .text:00049EE0 BL __mpn_impn_sqr_n_basecase .text:00049EE4 B loc_49F9C .text:00049EE8 ; --------------------------------------------------------------------------- .text:00049EE8 .text:00049EE8 loc_49EE8 ; CODE XREF: __mpn_impn_sqr_n+108j .text:00049EE8 MOV R0, R6 .text:00049EEC MOV R1, R7 .text:00049EF0 MOV R2, R5 .text:00049EF4 MOV R3, R4 .text:00049EF8 BL __mpn_sub_n .text:00049EFC .text:00049EFC loc_49EFC ; CODE XREF: __mpn_impn_sqr_n+120j .text:00049EFC CMP R4, #0x1F .text:00049F00 BLE loc_49EC0 .text:00049F04 MOV R0, R8 .text:00049F08 MOV R1, R6 .text:00049F0C MOV R2, R4 .text:00049F10 ADD R3, R8, R10 .text:00049F14 BL __mpn_impn_sqr_n .text:00049F18 .text:00049F18 loc_49F18 ; CODE XREF: __mpn_impn_sqr_n+134j .text:00049F18 MOV R1, #0 .text:00049F1C CMP R1, R4 .text:00049F20 BGE loc_49F48 .text:00049F24 LDR R2, [R11,#var_30] .text:00049F28 ADD R0, R10, R6 .text:00049F2C ADD R12, R2, R6 .text:00049F30 .text:00049F30 loc_49F30 ; CODE XREF: __mpn_impn_sqr_n+1A8j .text:00049F30 MOV R3, R1,LSL#2 .text:00049F34 ADD R1, R1, #1 .text:00049F38 LDR R2, [R3,R0] .text:00049F3C CMP R1, R4 .text:00049F40 STR R2, [R3,R12] .text:00049F44 BLT loc_49F30 .text:00049F48 .text:00049F48 loc_49F48 ; CODE XREF: __mpn_impn_sqr_n+184j .text:00049F48 ADD R0, R6, R10 .text:00049F4C LDR R3, [R11,#var_30] .text:00049F50 MOV R1, R0 .text:00049F54 ADD R2, R0, R3 .text:00049F58 MOV R3, R4 .text:00049F5C BL __mpn_add_n .text:00049F60 LDR R2, [R11,#var_30] .text:00049F64 MOV R9, R0 .text:00049F68 LDR R3, [R11,#var_2C] .text:00049F6C ADD R0, R6, R2 .text:00049F70 MOV R1, R0 .text:00049F74 MOV R2, R8 .text:00049F78 BL __mpn_sub_n .text:00049F7C RSB R9, R0, R9 .text:00049F80 CMP R4, #0x1F .text:00049F84 BLE loc_49ED4 .text:00049F88 MOV R0, R8 .text:00049F8C MOV R1, R7 .text:00049F90 MOV R2, R4 .text:00049F94 ADD R3, R8, R10 .text:00049F98 BL __mpn_impn_sqr_n .text:00049F9C .text:00049F9C loc_49F9C ; CODE XREF: __mpn_impn_sqr_n+148j .text:00049F9C LDR R3, [R11,#var_30] .text:00049FA0 MOV R2, R8 .text:00049FA4 ADD R5, R6, R3 .text:00049FA8 MOV R0, R5 .text:00049FAC LDR R3, [R11,#var_2C] .text:00049FB0 MOV R1, R5 .text:00049FB4 BL __mpn_add_n .text:00049FB8 ADDS R9, R9, R0 .text:00049FBC BEQ loc_4A038 .text:00049FC0 ADD R0, R10, R5 .text:00049FC4 MOV R1, R4 .text:00049FC8 ADD R12, R0, #4 .text:00049FCC LDR R2, [R10,R5] .text:00049FD0 MOV R0, R12 .text:00049FD4 ADD R3, R9, R2 .text:00049FD8 CMP R3, R2 .text:00049FDC STR R3, [R10,R5] .text:00049FE0 BCS loc_4A00C .text:00049FE4 SUBS R1, R4, #1 .text:00049FE8 BEQ loc_4A038 .text:00049FEC .text:00049FEC loc_49FEC ; CODE XREF: __mpn_impn_sqr_n+268j .text:00049FEC LDR R3, [R12],#4 .text:00049FF0 ADD R2, R3, #1 .text:00049FF4 CMP R2, #0 .text:00049FF8 STR R2, [R0],#4 .text:00049FFC BNE loc_4A00C .text:0004A000 SUBS R1, R1, #1 .text:0004A004 BNE loc_49FEC .text:0004A008 B loc_4A038 .text:0004A00C ; --------------------------------------------------------------------------- .text:0004A00C .text:0004A00C loc_4A00C ; CODE XREF: __mpn_impn_sqr_n+244j .text:0004A00C ; __mpn_impn_sqr_n+260j .text:0004A00C CMP R0, R12 .text:0004A010 BEQ loc_4A038 .text:0004A014 MOV R2, #0 .text:0004A018 SUB R1, R1, #1 .text:0004A01C CMP R2, R1 .text:0004A020 BGE loc_4A038 .text:0004A024 .text:0004A024 loc_4A024 ; CODE XREF: __mpn_impn_sqr_n+298j .text:0004A024 LDR R3, [R12,R2,LSL#2] .text:0004A028 STR R3, [R0,R2,LSL#2] .text:0004A02C ADD R2, R2, #1 .text:0004A030 CMP R2, R1 .text:0004A034 BLT loc_4A024 .text:0004A038 .text:0004A038 loc_4A038 ; CODE XREF: __mpn_impn_sqr_n+220j .text:0004A038 ; __mpn_impn_sqr_n+24Cj ... .text:0004A038 MOV R2, #0 .text:0004A03C CMP R2, R4 .text:0004A040 BGE loc_4A058 .text:0004A044 .text:0004A044 loc_4A044 ; CODE XREF: __mpn_impn_sqr_n+2B8j .text:0004A044 LDR R3, [R8,R2,LSL#2] .text:0004A048 STR R3, [R6,R2,LSL#2] .text:0004A04C ADD R2, R2, #1 .text:0004A050 CMP R2, R4 .text:0004A054 BLT loc_4A044 .text:0004A058 .text:0004A058 loc_4A058 ; CODE XREF: __mpn_impn_sqr_n+2A4j .text:0004A058 LDR R2, [R11,#var_30] .text:0004A05C MOV R3, R4 .text:0004A060 ADD R0, R6, R2 .text:0004A064 MOV R1, R0 .text:0004A068 ADD R2, R8, R2 .text:0004A06C BL __mpn_add_n .text:0004A070 CMP R0, #0 .text:0004A074 BEQ locret_4A0F0 .text:0004A078 ADD R0, R10, R6 .text:0004A07C ADD R12, R0, #4 .text:0004A080 LDR R1, [R10,R6] .text:0004A084 MOV R0, R12 .text:0004A088 LDR R2, [R11,#var_2C] .text:0004A08C ADD R3, R1, #1 .text:0004A090 CMP R3, R1 .text:0004A094 STR R3, [R10,R6] .text:0004A098 BCS loc_4A0C4 .text:0004A09C SUBS R2, R2, #1 .text:0004A0A0 BEQ locret_4A0F0 .text:0004A0A4 .text:0004A0A4 loc_4A0A4 ; CODE XREF: __mpn_impn_sqr_n+320j .text:0004A0A4 LDR R3, [R12],#4 .text:0004A0A8 ADD R1, R3, #1 .text:0004A0AC CMP R1, #0 .text:0004A0B0 STR R1, [R0],#4 .text:0004A0B4 BNE loc_4A0C4 .text:0004A0B8 SUBS R2, R2, #1 .text:0004A0BC BNE loc_4A0A4 .text:0004A0C0 B locret_4A0F0 .text:0004A0C4 ; --------------------------------------------------------------------------- .text:0004A0C4 .text:0004A0C4 loc_4A0C4 ; CODE XREF: __mpn_impn_sqr_n+2FCj .text:0004A0C4 ; __mpn_impn_sqr_n+318j .text:0004A0C4 CMP R0, R12 .text:0004A0C8 BEQ locret_4A0F0 .text:0004A0CC MOV R1, #0 .text:0004A0D0 SUB R2, R2, #1 .text:0004A0D4 CMP R1, R2 .text:0004A0D8 BGE locret_4A0F0 .text:0004A0DC .text:0004A0DC loc_4A0DC ; CODE XREF: __mpn_impn_sqr_n+350j .text:0004A0DC LDR R3, [R12,R1,LSL#2] .text:0004A0E0 STR R3, [R0,R1,LSL#2] .text:0004A0E4 ADD R1, R1, #1 .text:0004A0E8 CMP R1, R2 .text:0004A0EC BLT loc_4A0DC .text:0004A0F0 .text:0004A0F0 locret_4A0F0 ; CODE XREF: __mpn_impn_sqr_n+78j .text:0004A0F0 ; __mpn_impn_sqr_n+2D8j ... .text:0004A0F0 LDMDB R11, {R4-R11,SP,PC} .text:0004A0F0 ; End of function __mpn_impn_sqr_n .text:0004A0F0 .text:0004A0F4 .text:0004A0F4 ; =============== S U B R O U T I N E ======================================= .text:0004A0F4 .text:0004A0F4 ; Attributes: bp-based frame .text:0004A0F4 .text:0004A0F4 EXPORT __mpn_mul_n .text:0004A0F4 __mpn_mul_n .text:0004A0F4 .text:0004A0F4 var_10 = -0x10 .text:0004A0F4 var_C = -0xC .text:0004A0F4 .text:0004A0F4 MOV R12, SP .text:0004A0F8 STMFD SP!, {R11,R12,LR,PC} .text:0004A0FC SUB R11, R12, #4 .text:0004A100 CMP R1, R2 .text:0004A104 MOV R12, R3 .text:0004A108 SUB SP, SP, #4 .text:0004A10C BNE loc_4A140 .text:0004A110 CMP R12, #0x1F .text:0004A114 BGT loc_4A128 .text:0004A118 MOV R1, R2 .text:0004A11C MOV R2, R12 .text:0004A120 BL __mpn_impn_sqr_n_basecase .text:0004A124 B locret_4A168 .text:0004A128 ; --------------------------------------------------------------------------- .text:0004A128 .text:0004A128 loc_4A128 ; CODE XREF: __mpn_mul_n+20j .text:0004A128 SUB SP, SP, R12,LSL#3 .text:0004A12C MOV R1, R2 .text:0004A130 MOV R2, R12 .text:0004A134 ADD R3, SP, #0x10+var_C .text:0004A138 BL __mpn_impn_sqr_n .text:0004A13C B locret_4A168 .text:0004A140 ; --------------------------------------------------------------------------- .text:0004A140 .text:0004A140 loc_4A140 ; CODE XREF: __mpn_mul_n+18j .text:0004A140 CMP R12, #0x1F .text:0004A144 BGT loc_4A154 .text:0004A148 MOV R3, R12 .text:0004A14C BL __mpn_impn_mul_n_basecase .text:0004A150 B locret_4A168 .text:0004A154 ; --------------------------------------------------------------------------- .text:0004A154 .text:0004A154 loc_4A154 ; CODE XREF: __mpn_mul_n+50j .text:0004A154 SUB SP, SP, R12,LSL#3 .text:0004A158 ADD R3, SP, #0x10+var_C .text:0004A15C STR R3, [SP,#0x10+var_10] .text:0004A160 MOV R3, R12 .text:0004A164 BL __mpn_impn_mul_n .text:0004A168 .text:0004A168 locret_4A168 ; CODE XREF: __mpn_mul_n+30j .text:0004A168 ; __mpn_mul_n+48j ... .text:0004A168 LDMDB R11, {R11,SP,PC} .text:0004A168 ; End of function __mpn_mul_n .text:0004A168 .text:0004A16C .text:0004A16C ; =============== S U B R O U T I N E ======================================= .text:0004A16C .text:0004A16C ; Attributes: bp-based frame .text:0004A16C .text:0004A16C EXPORT __mpn_sub_n .text:0004A16C __mpn_sub_n ; CODE XREF: __mpn_divrem+528p .text:0004A16C ; __mpn_impn_mul_n+13Cp ... .text:0004A16C MOV R12, SP .text:0004A170 STMFD SP!, {R4,R11,R12,LR,PC} .text:0004A174 SUB R11, R12, #4 .text:0004A178 RSB R12, R3, #0 .text:0004A17C MOV R3, R12,LSL#2 .text:0004A180 RSB R4, R3, R1 .text:0004A184 RSB R1, R3, R2 .text:0004A188 RSB LR, R3, R0 .text:0004A18C MOV R0, #0 .text:0004A190 .text:0004A190 loc_4A190 ; CODE XREF: __mpn_sub_n+4Cj .text:0004A190 LDR R3, [R1,R12,LSL#2] .text:0004A194 LDR R2, [R4,R12,LSL#2] .text:0004A198 ADDS R3, R3, R0 .text:0004A19C MOVCC R0, #0 .text:0004A1A0 MOVCS R0, #1 .text:0004A1A4 RSB R3, R3, R2 .text:0004A1A8 CMP R3, R2 .text:0004A1AC ADDHI R0, R0, #1 .text:0004A1B0 STR R3, [LR,R12,LSL#2] .text:0004A1B4 ADDS R12, R12, #1 .text:0004A1B8 BNE loc_4A190 .text:0004A1BC LDMDB R11, {R4,R11,SP,PC} .text:0004A1BC ; End of function __mpn_sub_n .text:0004A1BC .text:0004A1C0 .text:0004A1C0 ; =============== S U B R O U T I N E ======================================= .text:0004A1C0 .text:0004A1C0 ; Attributes: bp-based frame .text:0004A1C0 .text:0004A1C0 EXPORT __mpn_submul_1 .text:0004A1C0 __mpn_submul_1 ; CODE XREF: __strtof_internal+2EECp .text:0004A1C0 ; __strtod_internal+35ACp ... .text:0004A1C0 MOV R12, SP .text:0004A1C4 STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:0004A1C8 SUB R11, R12, #4 .text:0004A1CC MOV R5, R3 .text:0004A1D0 RSB R4, R2, #0 .text:0004A1D4 MOV R3, R4,LSL#2 .text:0004A1D8 RSB R7, R3, R0 .text:0004A1DC RSB R8, R3, R1 .text:0004A1E0 MOV R6, #0 .text:0004A1E4 .text:0004A1E4 loc_4A1E4 ; CODE XREF: __mpn_submul_1+7Cj .text:0004A1E4 LDR R3, [R8,R4,LSL#2] .text:0004A1E8 MOV R12, R3,LSR#16 .text:0004A1EC MOV LR, R5,LSR#16 .text:0004A1F0 BIC R0, R3, R12,LSL#16 .text:0004A1F4 BIC R1, R5, LR,LSL#16 .text:0004A1F8 MUL R2, R0, R1 .text:0004A1FC MUL R1, R12, R1 .text:0004A200 MUL R0, LR, R0 .text:0004A204 MUL LR, R12, LR .text:0004A208 ADDS R0, R1, R0 .text:0004A20C ADDCS LR, LR, #0x10000 .text:0004A210 ADDS R2, R2, R0,LSL#16 .text:0004A214 ADC LR, LR, R0,LSR#16 .text:0004A218 ADDS R2, R2, R6 .text:0004A21C LDR R3, [R7,R4,LSL#2] .text:0004A220 MOVCC R6, LR .text:0004A224 ADDCS R6, LR, #1 .text:0004A228 RSB R2, R2, R3 .text:0004A22C CMP R2, R3 .text:0004A230 ADDHI R6, R6, #1 .text:0004A234 STR R2, [R7,R4,LSL#2] .text:0004A238 ADDS R4, R4, #1 .text:0004A23C BNE loc_4A1E4 .text:0004A240 MOV R0, R6 .text:0004A244 LDMDB R11, {R4-R8,R11,SP,PC} .text:0004A244 ; End of function __mpn_submul_1 .text:0004A244 .text:0004A248 .text:0004A248 ; =============== S U B R O U T I N E ======================================= .text:0004A248 .text:0004A248 ; Attributes: bp-based frame .text:0004A248 .text:0004A248 EXPORT __mpn_extract_double .text:0004A248 __mpn_extract_double ; CODE XREF: __printf_fp+28Cp .text:0004A248 MOV R12, SP .text:0004A24C STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:0004A250 SUB R11, R12, #4 .text:0004A254 MOV LR, 0x7FF .text:0004A25C LDMIB R11, {R4,R5} .text:0004A260 MOV R6, R2 .text:0004A264 AND LR, LR, R4,LSR#20 .text:0004A268 MOV R1, R4,LSR#31 .text:0004A26C STR R1, [R3] .text:0004A270 SUB R12, LR, #0x3FC .text:0004A274 SUB R12, R12, #3 .text:0004A278 STR R12, [R6] .text:0004A27C BIC R3, R4, #0xFF000000 .text:0004A280 MOV R4, R5 .text:0004A284 STR R4, [R0] .text:0004A288 BIC R3, R3, #0xF00000 .text:0004A28C CMP LR, #0 .text:0004A290 STR R3, [R0,#4] .text:0004A294 BNE loc_4A3B0 .text:0004A298 CMP R4, #0 .text:0004A29C BNE loc_4A2AC .text:0004A2A0 CMP R3, #0 .text:0004A2A4 STREQ R3, [R6] .text:0004A2A8 BEQ loc_4A3B8 .text:0004A2AC .text:0004A2AC loc_4A2AC ; CODE XREF: __mpn_extract_double+54j .text:0004A2AC LDR R3, [R0,#4] .text:0004A2B0 CMP R3, #0 .text:0004A2B4 MOV LR, R3 .text:0004A2B8 BEQ loc_4A324 .text:0004A2BC CMP R3, #0x10000 .text:0004A2C0 BCS loc_4A2D4 .text:0004A2C4 CMP R3, #0xFF .text:0004A2C8 MOVHI R12, #8 .text:0004A2CC MOVLS R12, #0 .text:0004A2D0 B loc_4A2E0 .text:0004A2D4 ; --------------------------------------------------------------------------- .text:0004A2D4 .text:0004A2D4 loc_4A2D4 ; CODE XREF: __mpn_extract_double+78j .text:0004A2D4 CMP R3, #0x1000000 .text:0004A2D8 MOVCS R12, #0x18 .text:0004A2DC MOVCC R12, #0x10 .text:0004A2E0 .text:0004A2E0 loc_4A2E0 ; CODE XREF: __mpn_extract_double+88j .text:0004A2E0 LDR R1, =__clz_tab_1 .text:0004A2E4 MOV R3, R3,LSR R12 .text:0004A2E8 LDRB R2, [R1,R3] .text:0004A2EC ADD R2, R2, R12 .text:0004A2F0 RSB R12, R2, #0x15 .text:0004A2F4 LDR R1, [R0] .text:0004A2F8 RSB R3, R12, #0x20 .text:0004A2FC MOV R3, R1,LSR R3 .text:0004A300 ORR R3, R3, LR,LSL R12 .text:0004A304 STR R3, [R0,#4] .text:0004A308 RSB R2, R12, #0xFC000002 .text:0004A30C MOV R1, R1,LSL R12 .text:0004A310 STR R1, [R0] .text:0004A314 ADD R2, R2, #0x3FC0000 .text:0004A318 ADD R2, R2, #0x3FC00 .text:0004A31C STR R2, [R6] .text:0004A320 B loc_4A3B8 .text:0004A324 ; --------------------------------------------------------------------------- .text:0004A324 .text:0004A324 loc_4A324 ; CODE XREF: __mpn_extract_double+70j .text:0004A324 LDR R2, [R0] .text:0004A328 CMP R2, #0x10000 .text:0004A32C MOV LR, R2 .text:0004A330 BCS loc_4A344 .text:0004A334 CMP LR, #0xFF .text:0004A338 MOVHI R12, #8 .text:0004A33C MOVLS R12, #0 .text:0004A340 B loc_4A350 .text:0004A344 ; --------------------------------------------------------------------------- .text:0004A344 .text:0004A344 loc_4A344 ; CODE XREF: __mpn_extract_double+E8j .text:0004A344 CMP LR, #0x1000000 .text:0004A348 MOVCS R12, #0x18 .text:0004A34C MOVCC R12, #0x10 .text:0004A350 .text:0004A350 loc_4A350 ; CODE XREF: __mpn_extract_double+F8j .text:0004A350 LDR R1, =__clz_tab_1 .text:0004A354 MOV R2, R2,LSR R12 .text:0004A358 LDRB R3, [R1,R2] .text:0004A35C ADD R3, R3, R12 .text:0004A360 RSB R12, R3, #0x20 .text:0004A364 CMP R12, #0xA .text:0004A368 BLE loc_4A380 .text:0004A36C SUB R3, R12, #0xB .text:0004A370 MOV R3, LR,LSL R3 .text:0004A374 STR R3, [R0,#4] .text:0004A378 MOV R2, #0 .text:0004A37C B loc_4A394 .text:0004A380 ; --------------------------------------------------------------------------- .text:0004A380 .text:0004A380 loc_4A380 ; CODE XREF: __mpn_extract_double+120j .text:0004A380 RSB R3, R12, #0xB .text:0004A384 MOV R3, LR,LSR R3 .text:0004A388 STR R3, [R0,#4] .text:0004A38C ADD R2, R12, #0x15 .text:0004A390 MOV R2, LR,LSL R2 .text:0004A394 .text:0004A394 loc_4A394 ; CODE XREF: __mpn_extract_double+134j .text:0004A394 STR R2, [R0] .text:0004A398 RSB R3, R12, #0xFF000000 .text:0004A39C ADD R3, R3, #0xFF0000 .text:0004A3A0 ADD R3, R3, #0xFB00 .text:0004A3A4 ADD R3, R3, #0xED .text:0004A3A8 STR R3, [R6] .text:0004A3AC B loc_4A3B8 .text:0004A3B0 ; --------------------------------------------------------------------------- .text:0004A3B0 .text:0004A3B0 loc_4A3B0 ; CODE XREF: __mpn_extract_double+4Cj .text:0004A3B0 ORR R3, R3, #0x100000 .text:0004A3B4 STR R3, [R0,#4] .text:0004A3B8 .text:0004A3B8 loc_4A3B8 ; CODE XREF: __mpn_extract_double+60j .text:0004A3B8 ; __mpn_extract_double+D8j ... .text:0004A3B8 MOV R0, #2 .text:0004A3BC LDMDB R11, {R4-R6,R11,SP,PC} .text:0004A3BC ; End of function __mpn_extract_double .text:0004A3BC .text:0004A3BC ; --------------------------------------------------------------------------- .text:0004A3C0 off_4A3C0 DCD __clz_tab_1 ; DATA XREF: __mpn_extract_double:loc_4A2E0r .text:0004A3C0 ; __mpn_extract_double:loc_4A350r .text:0004A3C4 .text:0004A3C4 ; =============== S U B R O U T I N E ======================================= .text:0004A3C4 .text:0004A3C4 ; Attributes: bp-based frame .text:0004A3C4 .text:0004A3C4 EXPORT __mpn_construct_float .text:0004A3C4 __mpn_construct_float ; CODE XREF: __strtof_internal:loc_44FE4p .text:0004A3C4 .text:0004A3C4 var_10 = -0x10 .text:0004A3C4 .text:0004A3C4 MOV R12, SP .text:0004A3C8 STMFD SP!, {R11,R12,LR,PC} .text:0004A3CC SUB R11, R12, #4 .text:0004A3D0 BIC R3, R12, #0x80000000 .text:0004A3D4 ORR R12, R3, R2,LSL#31 .text:0004A3D8 BIC R2, R12, #0x7F000000 .text:0004A3DC BIC R2, R2, #0x800000 .text:0004A3E0 ADD R1, R1, #0x7F .text:0004A3E4 AND R1, R1, #0xFF .text:0004A3E8 LDR R3, [R0] .text:0004A3EC ORR R12, R2, R1,LSL#23 .text:0004A3F0 MOV R3, R3,LSL#9 .text:0004A3F4 ORR R3, R3, R12,LSR#23 .text:0004A3F8 MOV R12, R3,ROR#9 .text:0004A3FC STR R12, [SP,#0xC+var_10]! .text:0004A400 LDC p1, c0, [SP+0x10+var_10],#4 .text:0004A404 LDMDB R11, {R11,SP,PC} .text:0004A404 ; End of function __mpn_construct_float .text:0004A404 .text:0004A408 .text:0004A408 ; =============== S U B R O U T I N E ======================================= .text:0004A408 .text:0004A408 ; Attributes: bp-based frame .text:0004A408 .text:0004A408 EXPORT __mpn_construct_double .text:0004A408 __mpn_construct_double ; CODE XREF: __strtod_internal:loc_48A98p .text:0004A408 .text:0004A408 var_1C = -0x1C .text:0004A408 .text:0004A408 MOV R12, SP .text:0004A40C STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0004A410 SUB R11, R12, #4 .text:0004A414 BIC R3, R4, #0x80000000 .text:0004A418 ORR R4, R3, R2,LSL#31 .text:0004A41C ADD R1, R1, #0x3FC .text:0004A420 ADD R1, R1, #3 .text:0004A424 MOV R2, 0x7FF .text:0004A42C AND R1, R1, R2 .text:0004A430 BIC R2, R4, R2,LSL#20 .text:0004A434 LDR R3, [R0,#4] .text:0004A438 ORR R4, R2, R1,LSL#20 .text:0004A43C LDR R5, [R0] .text:0004A440 MOV R3, R3,LSL#12 .text:0004A444 ORR R3, R3, R4,LSR#20 .text:0004A448 MOV R3, R3,ROR#12 .text:0004A44C MOV R4, R3 .text:0004A450 STMFD SP!, {R4,R5} .text:0004A454 LDC p1, c8, [SP+0x1C+var_1C],#8 .text:0004A458 LDMDB R11, {R4,R5,R11,SP,PC} .text:0004A458 ; End of function __mpn_construct_double .text:0004A458 .text:0004A45C .text:0004A45C ; =============== S U B R O U T I N E ======================================= .text:0004A45C .text:0004A45C ; Attributes: bp-based frame .text:0004A45C .text:0004A45C EXPORT _itoa .text:0004A45C _itoa ; CODE XREF: vfprintf+C84p .text:0004A45C ; vfprintf+2D1Cp ... .text:0004A45C .text:0004A45C var_48 = -0x48 .text:0004A45C var_44 = -0x44 .text:0004A45C var_40 = -0x40 .text:0004A45C var_3C = -0x3C .text:0004A45C var_38 = -0x38 .text:0004A45C var_34 = -0x34 .text:0004A45C var_30 = -0x30 .text:0004A45C var_2C = -0x2C .text:0004A45C arg_0 = 4 .text:0004A45C .text:0004A45C MOV R12, SP .text:0004A460 STMFD SP!, {R4-R12,LR,PC} .text:0004A464 SUB R11, R12, #4 .text:0004A468 SUB SP, SP, #0x20 .text:0004A46C STR R2, [R11,#var_40] .text:0004A470 LDR R4, =_itoa_lower_digits .text:0004A474 MOV R10, R1 .text:0004A478 MOV R9, R0 .text:0004A47C LDR R1, =_itoa_upper_digits ; "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" .text:0004A480 LDR R12, [R11,#arg_0] .text:0004A484 LDR R2, =(_fpioconst_pow10+0x68) .text:0004A488 STR R3, [R11,#var_38] .text:0004A48C CMP R12, #0 .text:0004A490 MOVNE R4, R1 .text:0004A494 MOV R12, R3 .text:0004A498 STR R4, [R11,#var_3C] .text:0004A49C CMP R3, #8 .text:0004A4A0 ADD R3, R3, R12,LSL#2 .text:0004A4A4 ADD R3, R2, R3,LSL#2 .text:0004A4A8 STR R3, [R11,#var_44] .text:0004A4AC BEQ loc_4A4BC .text:0004A4B0 CMP R12, #0x10 .text:0004A4B4 BEQ loc_4A550 .text:0004A4B8 B loc_4A5B8 .text:0004A4BC ; --------------------------------------------------------------------------- .text:0004A4BC .text:0004A4BC loc_4A4BC ; CODE XREF: _itoa+50j .text:0004A4BC MOV R3, R10 .text:0004A4C0 SUBS R12, R3, #0 .text:0004A4C4 BEQ loc_4A528 .text:0004A4C8 MOV R0, R9 .text:0004A4CC MOV R1, #0xA .text:0004A4D0 AND LR, R12, #1 .text:0004A4D4 MOV R12, R12,LSR#1 .text:0004A4D8 .text:0004A4D8 loc_4A4D8 ; CODE XREF: _itoa+A0j .text:0004A4D8 LDR R4, [R11,#var_3C] .text:0004A4DC AND R2, R0, #7 .text:0004A4E0 LDRB R3, [R4,R2] .text:0004A4E4 LDR R2, [R11,#var_40] .text:0004A4E8 STRB R3, [R2,#-1]! .text:0004A4EC MOV R0, R0,LSR#3 .text:0004A4F0 SUB R1, R1, #1 .text:0004A4F4 CMP R1, #0 .text:0004A4F8 STR R2, [R11,#var_40] .text:0004A4FC BGT loc_4A4D8 .text:0004A500 ORR R0, R0, LR,LSL#2 .text:0004A504 CMP R12, #0 .text:0004A508 MOVEQ R12, R0 .text:0004A50C BEQ loc_4A52C .text:0004A510 LDR R4, [R11,#var_3C] .text:0004A514 LDR LR, [R11,#var_40] .text:0004A518 LDRB R3, [R4,R0] .text:0004A51C STRB R3, [LR,#-1]! .text:0004A520 STR LR, [R11,#var_40] .text:0004A524 B loc_4A52C .text:0004A528 ; --------------------------------------------------------------------------- .text:0004A528 .text:0004A528 loc_4A528 ; CODE XREF: _itoa+68j .text:0004A528 MOV R12, R9 .text:0004A52C .text:0004A52C loc_4A52C ; CODE XREF: _itoa+B0j .text:0004A52C ; _itoa+C8j ... .text:0004A52C LDR R0, [R11,#var_3C] .text:0004A530 LDR R1, [R11,#var_40] .text:0004A534 AND R3, R12, #7 .text:0004A538 LDRB R2, [R0,R3] .text:0004A53C STRB R2, [R1,#-1]! .text:0004A540 MOVS R12, R12,LSR#3 .text:0004A544 STR R1, [R11,#var_40] .text:0004A548 BNE loc_4A52C .text:0004A54C B loc_4AAE0 .text:0004A550 ; --------------------------------------------------------------------------- .text:0004A550 .text:0004A550 loc_4A550 ; CODE XREF: _itoa+58j .text:0004A550 MOV R3, R10 .text:0004A554 SUBS R1, R3, #0 .text:0004A558 BEQ loc_4A590 .text:0004A55C MOV R0, R9 .text:0004A560 MOV R12, #8 .text:0004A564 .text:0004A564 loc_4A564 ; CODE XREF: _itoa+12Cj .text:0004A564 LDR R4, [R11,#var_3C] .text:0004A568 LDR LR, [R11,#var_40] .text:0004A56C AND R2, R0, #0xF .text:0004A570 LDRB R3, [R4,R2] .text:0004A574 STRB R3, [LR,#-1]! .text:0004A578 MOV R0, R0,LSR#4 .text:0004A57C SUB R12, R12, #1 .text:0004A580 CMP R12, #0 .text:0004A584 STR LR, [R11,#var_40] .text:0004A588 BGT loc_4A564 .text:0004A58C B loc_4A594 .text:0004A590 ; --------------------------------------------------------------------------- .text:0004A590 .text:0004A590 loc_4A590 ; CODE XREF: _itoa+FCj .text:0004A590 MOV R1, R9 .text:0004A594 .text:0004A594 loc_4A594 ; CODE XREF: _itoa+130j .text:0004A594 ; _itoa+154j .text:0004A594 LDR R0, [R11,#var_3C] .text:0004A598 AND R3, R1, #0xF .text:0004A59C LDRB R2, [R0,R3] .text:0004A5A0 LDR R3, [R11,#var_40] .text:0004A5A4 STRB R2, [R3,#-1]! .text:0004A5A8 MOVS R1, R1,LSR#4 .text:0004A5AC STR R3, [R11,#var_40] .text:0004A5B0 BNE loc_4A594 .text:0004A5B4 B loc_4AAE0 .text:0004A5B8 ; --------------------------------------------------------------------------- .text:0004A5B8 .text:0004A5B8 loc_4A5B8 ; CODE XREF: _itoa+5Cj .text:0004A5B8 MOV R1, R10 .text:0004A5BC MOV R2, #0 .text:0004A5C0 CMP R1, R2 .text:0004A5C4 BEQ loc_4A980 .text:0004A5C8 LDR R4, [R11,#var_44] .text:0004A5CC LDR R3, [R4,#0xC] .text:0004A5D0 LDRB R12, [R4,#8] .text:0004A5D4 CMP R1, R3 .text:0004A5D8 MOV R6, R3,LSL R12 .text:0004A5DC STR R12, [R11,#var_48] .text:0004A5E0 BCC loc_4A898 .text:0004A5E4 CMP R12, R2 .text:0004A5E8 MOVEQ R7, R12 .text:0004A5EC BEQ loc_4A608 .text:0004A5F0 LDR LR, [R11,#var_48] .text:0004A5F4 MOV R1, R10 .text:0004A5F8 MOV R0, R9 .text:0004A5FC RSB R2, LR, #0x40 .text:0004A600 BL __lshrdi3 .text:0004A604 MOV R7, R0 .text:0004A608 .text:0004A608 loc_4A608 ; CODE XREF: _itoa+190j .text:0004A608 LDR R2, [R11,#var_48] .text:0004A60C MOV R1, R10 .text:0004A610 MOV R0, R9 .text:0004A614 RSB R4, R2, #0x20 .text:0004A618 MOV R2, R4 .text:0004A61C BL __lshrdi3 .text:0004A620 LDR R12, [R11,#var_44] .text:0004A624 LDR R3, [R12,#0x10] .text:0004A628 MOV R12, R7,LSR#16 .text:0004A62C MOV R8, R3,LSR#16 .text:0004A630 BIC R1, R7, R12,LSL#16 .text:0004A634 BIC R2, R3, R8,LSL#16 .text:0004A638 MUL LR, R1, R2 .text:0004A63C MUL R2, R12, R2 .text:0004A640 MUL R1, R8, R1 .text:0004A644 MUL R8, R12, R8 .text:0004A648 ADDS R1, R2, R1 .text:0004A64C ADDCS R8, R8, #0x10000 .text:0004A650 ADDS LR, LR, R1,LSL#16 .text:0004A654 ADC R8, R8, R1,LSR#16 .text:0004A658 ADD R8, R8, R7 .text:0004A65C MOV LR, R8,LSR#16 .text:0004A660 MOV R2, R6,LSR#16 .text:0004A664 BIC R12, R8, LR,LSL#16 .text:0004A668 BIC R1, R6, R2,LSL#16 .text:0004A66C MUL R3, R12, R1 .text:0004A670 MUL R1, LR, R1 .text:0004A674 MUL R12, R2, R12 .text:0004A678 MUL R2, LR, R2 .text:0004A67C ADDS R12, R1, R12 .text:0004A680 ADDCS R2, R2, #0x10000 .text:0004A684 ADDS R3, R3, R12,LSL#16 .text:0004A688 ADC R2, R2, R12,LSR#16 .text:0004A68C SUBS LR, R0, R3 .text:0004A690 SBC R3, R7, R2 .text:0004A694 CMP R3, #0 .text:0004A698 MOV R7, R4 .text:0004A69C BEQ loc_4A6C8 .text:0004A6A0 ADD R8, R8, #1 .text:0004A6A4 SUBS R0, LR, R6 .text:0004A6A8 SBC R3, R3, #0 .text:0004A6AC MOV LR, R0 .text:0004A6B0 CMP R3, #0 .text:0004A6B4 BEQ loc_4A6C8 .text:0004A6B8 SUBS R1, LR, R6 .text:0004A6BC SBC R3, R3, #0 .text:0004A6C0 MOV LR, R1 .text:0004A6C4 ADD R8, R8, #1 .text:0004A6C8 .text:0004A6C8 loc_4A6C8 ; CODE XREF: _itoa+240j .text:0004A6C8 ; _itoa+258j .text:0004A6C8 CMP LR, R6 .text:0004A6CC RSBCS LR, R6, LR .text:0004A6D0 ADDCS R8, R8, #1 .text:0004A6D4 LDR R2, [R11,#var_48] .text:0004A6D8 MOV R4, R9,LSL R2 .text:0004A6DC LDR R12, [R11,#var_44] .text:0004A6E0 LDR R3, [R12,#0x10] .text:0004A6E4 MOV R0, LR,LSR#16 .text:0004A6E8 MOV R5, R3,LSR#16 .text:0004A6EC BIC R1, LR, R0,LSL#16 .text:0004A6F0 BIC R2, R3, R5,LSL#16 .text:0004A6F4 MUL R12, R1, R2 .text:0004A6F8 MUL R2, R0, R2 .text:0004A6FC MUL R1, R5, R1 .text:0004A700 MUL R5, R0, R5 .text:0004A704 ADDS R1, R2, R1 .text:0004A708 ADDCS R5, R5, #0x10000 .text:0004A70C ADDS R12, R12, R1,LSL#16 .text:0004A710 ADC R5, R5, R1,LSR#16 .text:0004A714 ADD R5, R5, LR .text:0004A718 MOV R12, R5,LSR#16 .text:0004A71C MOV R2, R6,LSR#16 .text:0004A720 BIC R0, R5, R12,LSL#16 .text:0004A724 BIC R1, R6, R2,LSL#16 .text:0004A728 MUL R3, R0, R1 .text:0004A72C MUL R1, R12, R1 .text:0004A730 MUL R0, R2, R0 .text:0004A734 MUL R2, R12, R2 .text:0004A738 ADDS R0, R1, R0 .text:0004A73C ADDCS R2, R2, #0x10000 .text:0004A740 ADDS R3, R3, R0,LSL#16 .text:0004A744 ADC R2, R2, R0,LSR#16 .text:0004A748 SUBS R0, R4, R3 .text:0004A74C SBC R3, LR, R2 .text:0004A750 MOV R2, R0 .text:0004A754 CMP R3, #0 .text:0004A758 BEQ loc_4A784 .text:0004A75C ADD R5, R5, #1 .text:0004A760 SUBS R1, R2, R6 .text:0004A764 SBC R3, R3, #0 .text:0004A768 MOV R2, R1 .text:0004A76C CMP R3, #0 .text:0004A770 BEQ loc_4A784 .text:0004A774 SUBS R4, R2, R6 .text:0004A778 SBC R3, R3, #0 .text:0004A77C MOV R2, R4 .text:0004A780 ADD R5, R5, #1 .text:0004A784 .text:0004A784 loc_4A784 ; CODE XREF: _itoa+2FCj .text:0004A784 ; _itoa+314j .text:0004A784 CMP R2, R6 .text:0004A788 RSBCS R2, R6, R2 .text:0004A78C ADDCS R5, R5, #1 .text:0004A790 LDR R12, [R11,#var_48] .text:0004A794 CMP R12, #0 .text:0004A798 MOV R3, R2,LSR R12 .text:0004A79C STR R3, [R11,#var_2C] .text:0004A7A0 BNE loc_4A7B8 .text:0004A7A4 MOV R7, R8 .text:0004A7A8 B loc_4A7C4 .text:0004A7A8 ; --------------------------------------------------------------------------- .text:0004A7AC off_4A7AC DCD _itoa_lower_digits ; DATA XREF: _itoa+14r .text:0004A7B0 off_4A7B0 DCD _itoa_upper_digits ; DATA XREF: _itoa+20r .text:0004A7B0 ; "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" .text:0004A7B4 off_4A7B4 DCD _fpioconst_pow10+0x68 ; DATA XREF: _itoa+28r .text:0004A7B8 ; --------------------------------------------------------------------------- .text:0004A7B8 .text:0004A7B8 loc_4A7B8 ; CODE XREF: _itoa+344j .text:0004A7B8 LDR LR, [R11,#var_48] .text:0004A7BC MOV R3, R5,LSR R7 .text:0004A7C0 ORR R7, R3, R8,LSL LR .text:0004A7C4 .text:0004A7C4 loc_4A7C4 ; CODE XREF: _itoa+34Cj .text:0004A7C4 LDR R0, [R11,#var_48] .text:0004A7C8 MOV R4, R5,LSL R0 .text:0004A7CC LDR R1, [R11,#var_44] .text:0004A7D0 LDR R3, [R1,#0x10] .text:0004A7D4 MOV R0, R7,LSR#16 .text:0004A7D8 MOV LR, R3,LSR#16 .text:0004A7DC BIC R1, R7, R0,LSL#16 .text:0004A7E0 BIC R2, R3, LR,LSL#16 .text:0004A7E4 MUL R12, R1, R2 .text:0004A7E8 MUL R2, R0, R2 .text:0004A7EC MUL R1, LR, R1 .text:0004A7F0 MUL LR, R0, LR .text:0004A7F4 ADDS R1, R2, R1 .text:0004A7F8 ADDCS LR, LR, #0x10000 .text:0004A7FC ADDS R12, R12, R1,LSL#16 .text:0004A800 ADC LR, LR, R1,LSR#16 .text:0004A804 ADD LR, LR, R7 .text:0004A808 MOV R12, LR,LSR#16 .text:0004A80C MOV R2, R6,LSR#16 .text:0004A810 BIC R0, LR, R12,LSL#16 .text:0004A814 BIC R1, R6, R2,LSL#16 .text:0004A818 MUL R3, R0, R1 .text:0004A81C MUL R1, R12, R1 .text:0004A820 MUL R0, R2, R0 .text:0004A824 MUL R2, R12, R2 .text:0004A828 ADDS R0, R1, R0 .text:0004A82C ADDCS R2, R2, #0x10000 .text:0004A830 ADDS R3, R3, R0,LSL#16 .text:0004A834 ADC R2, R2, R0,LSR#16 .text:0004A838 SUBS R12, R4, R3 .text:0004A83C SBC R3, R7, R2 .text:0004A840 MOV R2, R12 .text:0004A844 CMP R3, #0 .text:0004A848 BEQ loc_4A874 .text:0004A84C ADD LR, LR, #1 .text:0004A850 SUBS R0, R2, R6 .text:0004A854 SBC R3, R3, #0 .text:0004A858 MOV R2, R0 .text:0004A85C CMP R3, #0 .text:0004A860 BEQ loc_4A874 .text:0004A864 SUBS R1, R2, R6 .text:0004A868 SBC R3, R3, #0 .text:0004A86C MOV R2, R1 .text:0004A870 ADD LR, LR, #1 .text:0004A874 .text:0004A874 loc_4A874 ; CODE XREF: _itoa+3ECj .text:0004A874 ; _itoa+404j .text:0004A874 CMP R2, R6 .text:0004A878 RSBCS R2, R6, R2 .text:0004A87C ADDCS LR, LR, #1 .text:0004A880 STR LR, [R11,#var_34] .text:0004A884 LDR R4, [R11,#var_48] .text:0004A888 MOV R3, R2,LSR R4 .text:0004A88C MOV R7, #3 .text:0004A890 STR R3, [R11,#var_30] .text:0004A894 B loc_4A988 .text:0004A898 ; --------------------------------------------------------------------------- .text:0004A898 .text:0004A898 loc_4A898 ; CODE XREF: _itoa+184j .text:0004A898 LDR R2, [R11,#var_48] .text:0004A89C MOV R1, R10 .text:0004A8A0 MOV R0, R9 .text:0004A8A4 BL __ashldi3 .text:0004A8A8 MOV R10, R1 .text:0004A8AC MOV R9, R0 .text:0004A8B0 MOV R1, R10 .text:0004A8B4 LDR R12, [R11,#var_44] .text:0004A8B8 LDR R3, [R12,#0x10] .text:0004A8BC MOV LR, R1,LSR#16 .text:0004A8C0 MOV R5, R3,LSR#16 .text:0004A8C4 BIC R12, R1, LR,LSL#16 .text:0004A8C8 BIC R0, R3, R5,LSL#16 .text:0004A8CC MUL R4, R12, R0 .text:0004A8D0 MUL R0, LR, R0 .text:0004A8D4 MUL R12, R5, R12 .text:0004A8D8 MUL R5, LR, R5 .text:0004A8DC ADDS R12, R0, R12 .text:0004A8E0 ADDCS R5, R5, #0x10000 .text:0004A8E4 ADDS R4, R4, R12,LSL#16 .text:0004A8E8 ADC R5, R5, R12,LSR#16 .text:0004A8EC ADD R5, R5, R1 .text:0004A8F0 MOV R4, R5,LSR#16 .text:0004A8F4 MOV R0, R6,LSR#16 .text:0004A8F8 BIC LR, R5, R4,LSL#16 .text:0004A8FC BIC R12, R6, R0,LSL#16 .text:0004A900 MUL R3, LR, R12 .text:0004A904 MUL R12, R4, R12 .text:0004A908 MUL LR, R0, LR .text:0004A90C MUL R0, R4, R0 .text:0004A910 ADDS LR, R12, LR .text:0004A914 ADDCS R0, R0, #0x10000 .text:0004A918 ADDS R3, R3, LR,LSL#16 .text:0004A91C ADC R0, R0, LR,LSR#16 .text:0004A920 SUBS R2, R9, R3 .text:0004A924 SBC R3, R1, R0 .text:0004A928 CMP R3, #0 .text:0004A92C BEQ loc_4A958 .text:0004A930 ADD R5, R5, #1 .text:0004A934 SUBS LR, R2, R6 .text:0004A938 SBC R3, R3, #0 .text:0004A93C MOV R2, LR .text:0004A940 CMP R3, #0 .text:0004A944 BEQ loc_4A958 .text:0004A948 SUBS R0, R2, R6 .text:0004A94C SBC R3, R3, #0 .text:0004A950 MOV R2, R0 .text:0004A954 ADD R5, R5, #1 .text:0004A958 .text:0004A958 loc_4A958 ; CODE XREF: _itoa+4D0j .text:0004A958 ; _itoa+4E8j .text:0004A958 CMP R2, R6 .text:0004A95C RSBCS R2, R6, R2 .text:0004A960 ADDCS R5, R5, #1 .text:0004A964 STR R5, [R11,#var_34] .text:0004A968 LDR R1, [R11,#var_44] .text:0004A96C LDRB R3, [R1,#8] .text:0004A970 MOV R7, #2 .text:0004A974 MOV R3, R2,LSR R3 .text:0004A978 STR R3, [R11,#var_30] .text:0004A97C B loc_4A988 .text:0004A980 ; --------------------------------------------------------------------------- .text:0004A980 .text:0004A980 loc_4A980 ; CODE XREF: _itoa+168j .text:0004A980 MOV R7, #1 .text:0004A984 STR R9, [R11,#var_34] .text:0004A988 .text:0004A988 loc_4A988 ; CODE XREF: _itoa+438j .text:0004A988 ; _itoa+520j .text:0004A988 SUB R8, R11, #-var_34 .text:0004A98C .text:0004A98C loc_4A98C ; CODE XREF: _itoa+680j .text:0004A98C LDR R2, [R11,#var_44] .text:0004A990 SUB R7, R7, #1 .text:0004A994 LDR R4, [R8,R7,LSL#2] .text:0004A998 LDRB R3, [R2,#4] .text:0004A99C MOV R6, #0 .text:0004A9A0 LDR R5, [R2] .text:0004A9A4 CMP R3, R6 .text:0004A9A8 BEQ loc_4AA2C .text:0004A9AC CMP R4, R6 .text:0004A9B0 BEQ loc_4AA9C .text:0004A9B4 .text:0004A9B4 loc_4A9B4 ; CODE XREF: _itoa+5C8j .text:0004A9B4 MOV R0, R4,LSR#16 .text:0004A9B8 MOV R1, R5,LSR#16 .text:0004A9BC BIC R2, R4, R0,LSL#16 .text:0004A9C0 BIC R3, R5, R1,LSL#16 .text:0004A9C4 MUL R12, R2, R3 .text:0004A9C8 MUL R3, R0, R3 .text:0004A9CC MUL R2, R1, R2 .text:0004A9D0 MUL R1, R0, R1 .text:0004A9D4 ADDS R2, R3, R2 .text:0004A9D8 ADDCS R1, R1, #0x10000 .text:0004A9DC ADDS R12, R12, R2,LSL#16 .text:0004A9E0 ADC R1, R1, R2,LSR#16 .text:0004A9E4 LDR R12, [R11,#var_44] .text:0004A9E8 RSB LR, R1, R4 .text:0004A9EC LDRB R3, [R12,#5] .text:0004A9F0 ADD R1, R1, LR,LSR#1 .text:0004A9F4 LDR R2, [R11,#var_38] .text:0004A9F8 SUB R3, R3, #1 .text:0004A9FC MOV R1, R1,LSR R3 .text:0004AA00 MUL R2, R1, R2 .text:0004AA04 SUB R0, R11, #-var_40 .text:0004AA08 LDMIA R0, {R0,LR} .text:0004AA0C RSB R2, R2, R4 .text:0004AA10 LDRB R3, [LR,R2] .text:0004AA14 STRB R3, [R0,#-1]! .text:0004AA18 ADD R6, R6, #1 .text:0004AA1C SUBS R4, R1, #0 .text:0004AA20 STR R0, [R11,#var_40] .text:0004AA24 BNE loc_4A9B4 .text:0004AA28 B loc_4AA9C .text:0004AA2C ; --------------------------------------------------------------------------- .text:0004AA2C .text:0004AA2C loc_4AA2C ; CODE XREF: _itoa+54Cj .text:0004AA2C CMP R4, #0 .text:0004AA30 BEQ loc_4AA9C .text:0004AA34 .text:0004AA34 loc_4AA34 ; CODE XREF: _itoa+63Cj .text:0004AA34 LDR R2, [R11,#var_44] .text:0004AA38 LDRB R1, [R2,#5] .text:0004AA3C MOV R12, R4,LSR#16 .text:0004AA40 MOV R3, R5,LSR#16 .text:0004AA44 BIC R0, R4, R12,LSL#16 .text:0004AA48 BIC R2, R5, R3,LSL#16 .text:0004AA4C MUL LR, R0, R2 .text:0004AA50 MUL R2, R12, R2 .text:0004AA54 MUL R0, R3, R0 .text:0004AA58 MUL R3, R12, R3 .text:0004AA5C ADDS R0, R2, R0 .text:0004AA60 ADDCS R3, R3, #0x10000 .text:0004AA64 ADDS LR, LR, R0,LSL#16 .text:0004AA68 ADC R3, R3, R0,LSR#16 .text:0004AA6C LDR R2, [R11,#var_38] .text:0004AA70 MOV R3, R3,LSR R1 .text:0004AA74 MUL R2, R3, R2 .text:0004AA78 LDR R12, [R11,#var_40] .text:0004AA7C RSB R2, R2, R4 .text:0004AA80 LDR R4, [R11,#var_3C] .text:0004AA84 LDRB R1, [R4,R2] .text:0004AA88 STRB R1, [R12,#-1]! .text:0004AA8C ADD R6, R6, #1 .text:0004AA90 SUBS R4, R3, #0 .text:0004AA94 STR R12, [R11,#var_40] .text:0004AA98 BNE loc_4AA34 .text:0004AA9C .text:0004AA9C loc_4AA9C ; CODE XREF: _itoa+554j .text:0004AA9C ; _itoa+5CCj ... .text:0004AA9C CMP R7, #0 .text:0004AAA0 BEQ loc_4AAD8 .text:0004AAA4 LDR LR, [R11,#var_44] .text:0004AAA8 LDRB R3, [LR,#9] .text:0004AAAC CMP R6, R3 .text:0004AAB0 BGE loc_4AAD8 .text:0004AAB4 MOV R2, #0x30 .text:0004AAB8 .text:0004AAB8 loc_4AAB8 ; CODE XREF: _itoa+678j .text:0004AAB8 LDR R0, [R11,#var_40] .text:0004AABC STRB R2, [R0,#-1]! .text:0004AAC0 STR R0, [R11,#var_40] .text:0004AAC4 LDR R1, [R11,#var_44] .text:0004AAC8 LDRB R3, [R1,#9] .text:0004AACC ADD R6, R6, #1 .text:0004AAD0 CMP R6, R3 .text:0004AAD4 BLT loc_4AAB8 .text:0004AAD8 .text:0004AAD8 loc_4AAD8 ; CODE XREF: _itoa+644j .text:0004AAD8 ; _itoa+654j .text:0004AAD8 CMP R7, #0 .text:0004AADC BNE loc_4A98C .text:0004AAE0 .text:0004AAE0 loc_4AAE0 ; CODE XREF: _itoa+F0j .text:0004AAE0 ; _itoa+158j .text:0004AAE0 LDR R0, [R11,#var_40] .text:0004AAE4 LDMDB R11, {R4-R11,SP,PC} .text:0004AAE4 ; End of function _itoa .text:0004AAE4 .text:0004AAE8 .text:0004AAE8 ; =============== S U B R O U T I N E ======================================= .text:0004AAE8 .text:0004AAE8 ; Attributes: bp-based frame .text:0004AAE8 .text:0004AAE8 EXPORT _itowa .text:0004AAE8 _itowa ; CODE XREF: __printf_fphex+4E8p .text:0004AAE8 ; vfwprintf+F04p ... .text:0004AAE8 .text:0004AAE8 var_48 = -0x48 .text:0004AAE8 var_44 = -0x44 .text:0004AAE8 var_40 = -0x40 .text:0004AAE8 var_3C = -0x3C .text:0004AAE8 var_38 = -0x38 .text:0004AAE8 var_34 = -0x34 .text:0004AAE8 var_30 = -0x30 .text:0004AAE8 var_2C = -0x2C .text:0004AAE8 arg_0 = 4 .text:0004AAE8 .text:0004AAE8 MOV R12, SP .text:0004AAEC STMFD SP!, {R4-R12,LR,PC} .text:0004AAF0 SUB R11, R12, #4 .text:0004AAF4 SUB SP, SP, #0x20 .text:0004AAF8 STR R2, [R11,#var_40] .text:0004AAFC LDR R4, =_itowa_lower_digits .text:0004AB00 MOV R10, R1 .text:0004AB04 MOV R9, R0 .text:0004AB08 LDR R1, =_itowa_upper_digits .text:0004AB0C LDR R12, [R11,#arg_0] .text:0004AB10 LDR R2, =(_fpioconst_pow10+0x68) .text:0004AB14 STR R3, [R11,#var_38] .text:0004AB18 CMP R12, #0 .text:0004AB1C MOVNE R4, R1 .text:0004AB20 MOV R12, R3 .text:0004AB24 STR R4, [R11,#var_3C] .text:0004AB28 CMP R3, #8 .text:0004AB2C ADD R3, R3, R12,LSL#2 .text:0004AB30 ADD R3, R2, R3,LSL#2 .text:0004AB34 STR R3, [R11,#var_44] .text:0004AB38 BEQ loc_4AB48 .text:0004AB3C CMP R12, #0x10 .text:0004AB40 BEQ loc_4ABDC .text:0004AB44 B loc_4AC44 .text:0004AB48 ; --------------------------------------------------------------------------- .text:0004AB48 .text:0004AB48 loc_4AB48 ; CODE XREF: _itowa+50j .text:0004AB48 MOV R3, R10 .text:0004AB4C SUBS R12, R3, #0 .text:0004AB50 BEQ loc_4ABB4 .text:0004AB54 MOV R0, R9 .text:0004AB58 MOV R1, #0xA .text:0004AB5C AND LR, R12, #1 .text:0004AB60 MOV R12, R12,LSR#1 .text:0004AB64 .text:0004AB64 loc_4AB64 ; CODE XREF: _itowa+A0j .text:0004AB64 LDR R4, [R11,#var_3C] .text:0004AB68 AND R2, R0, #7 .text:0004AB6C LDR R3, [R4,R2,LSL#2] .text:0004AB70 LDR R2, [R11,#var_40] .text:0004AB74 STR R3, [R2,#-4]! .text:0004AB78 MOV R0, R0,LSR#3 .text:0004AB7C SUB R1, R1, #1 .text:0004AB80 CMP R1, #0 .text:0004AB84 STR R2, [R11,#var_40] .text:0004AB88 BGT loc_4AB64 .text:0004AB8C ORR R0, R0, LR,LSL#2 .text:0004AB90 CMP R12, #0 .text:0004AB94 MOVEQ R12, R0 .text:0004AB98 BEQ loc_4ABB8 .text:0004AB9C LDR R4, [R11,#var_3C] .text:0004ABA0 LDR LR, [R11,#var_40] .text:0004ABA4 LDR R3, [R4,R0,LSL#2] .text:0004ABA8 STR R3, [LR,#-4]! .text:0004ABAC STR LR, [R11,#var_40] .text:0004ABB0 B loc_4ABB8 .text:0004ABB4 ; --------------------------------------------------------------------------- .text:0004ABB4 .text:0004ABB4 loc_4ABB4 ; CODE XREF: _itowa+68j .text:0004ABB4 MOV R12, R9 .text:0004ABB8 .text:0004ABB8 loc_4ABB8 ; CODE XREF: _itowa+B0j .text:0004ABB8 ; _itowa+C8j ... .text:0004ABB8 LDR R0, [R11,#var_3C] .text:0004ABBC LDR R1, [R11,#var_40] .text:0004ABC0 AND R3, R12, #7 .text:0004ABC4 LDR R2, [R0,R3,LSL#2] .text:0004ABC8 STR R2, [R1,#-4]! .text:0004ABCC MOVS R12, R12,LSR#3 .text:0004ABD0 STR R1, [R11,#var_40] .text:0004ABD4 BNE loc_4ABB8 .text:0004ABD8 B loc_4B16C .text:0004ABDC ; --------------------------------------------------------------------------- .text:0004ABDC .text:0004ABDC loc_4ABDC ; CODE XREF: _itowa+58j .text:0004ABDC MOV R3, R10 .text:0004ABE0 SUBS R1, R3, #0 .text:0004ABE4 BEQ loc_4AC1C .text:0004ABE8 MOV R0, R9 .text:0004ABEC MOV R12, #8 .text:0004ABF0 .text:0004ABF0 loc_4ABF0 ; CODE XREF: _itowa+12Cj .text:0004ABF0 LDR R4, [R11,#var_3C] .text:0004ABF4 LDR LR, [R11,#var_40] .text:0004ABF8 AND R2, R0, #0xF .text:0004ABFC LDR R3, [R4,R2,LSL#2] .text:0004AC00 STR R3, [LR,#-4]! .text:0004AC04 MOV R0, R0,LSR#4 .text:0004AC08 SUB R12, R12, #1 .text:0004AC0C CMP R12, #0 .text:0004AC10 STR LR, [R11,#var_40] .text:0004AC14 BGT loc_4ABF0 .text:0004AC18 B loc_4AC20 .text:0004AC1C ; --------------------------------------------------------------------------- .text:0004AC1C .text:0004AC1C loc_4AC1C ; CODE XREF: _itowa+FCj .text:0004AC1C MOV R1, R9 .text:0004AC20 .text:0004AC20 loc_4AC20 ; CODE XREF: _itowa+130j .text:0004AC20 ; _itowa+154j .text:0004AC20 LDR R0, [R11,#var_3C] .text:0004AC24 AND R3, R1, #0xF .text:0004AC28 LDR R2, [R0,R3,LSL#2] .text:0004AC2C LDR R3, [R11,#var_40] .text:0004AC30 STR R2, [R3,#-4]! .text:0004AC34 MOVS R1, R1,LSR#4 .text:0004AC38 STR R3, [R11,#var_40] .text:0004AC3C BNE loc_4AC20 .text:0004AC40 B loc_4B16C .text:0004AC44 ; --------------------------------------------------------------------------- .text:0004AC44 .text:0004AC44 loc_4AC44 ; CODE XREF: _itowa+5Cj .text:0004AC44 MOV R1, R10 .text:0004AC48 MOV R2, #0 .text:0004AC4C CMP R1, R2 .text:0004AC50 BEQ loc_4B00C .text:0004AC54 LDR R4, [R11,#var_44] .text:0004AC58 LDR R3, [R4,#0xC] .text:0004AC5C LDRB R12, [R4,#8] .text:0004AC60 CMP R1, R3 .text:0004AC64 MOV R6, R3,LSL R12 .text:0004AC68 STR R12, [R11,#var_48] .text:0004AC6C BCC loc_4AF24 .text:0004AC70 CMP R12, R2 .text:0004AC74 MOVEQ R7, R12 .text:0004AC78 BEQ loc_4AC94 .text:0004AC7C LDR LR, [R11,#var_48] .text:0004AC80 MOV R1, R10 .text:0004AC84 MOV R0, R9 .text:0004AC88 RSB R2, LR, #0x40 .text:0004AC8C BL __lshrdi3 .text:0004AC90 MOV R7, R0 .text:0004AC94 .text:0004AC94 loc_4AC94 ; CODE XREF: _itowa+190j .text:0004AC94 LDR R2, [R11,#var_48] .text:0004AC98 MOV R1, R10 .text:0004AC9C MOV R0, R9 .text:0004ACA0 RSB R4, R2, #0x20 .text:0004ACA4 MOV R2, R4 .text:0004ACA8 BL __lshrdi3 .text:0004ACAC LDR R12, [R11,#var_44] .text:0004ACB0 LDR R3, [R12,#0x10] .text:0004ACB4 MOV R12, R7,LSR#16 .text:0004ACB8 MOV R8, R3,LSR#16 .text:0004ACBC BIC R1, R7, R12,LSL#16 .text:0004ACC0 BIC R2, R3, R8,LSL#16 .text:0004ACC4 MUL LR, R1, R2 .text:0004ACC8 MUL R2, R12, R2 .text:0004ACCC MUL R1, R8, R1 .text:0004ACD0 MUL R8, R12, R8 .text:0004ACD4 ADDS R1, R2, R1 .text:0004ACD8 ADDCS R8, R8, #0x10000 .text:0004ACDC ADDS LR, LR, R1,LSL#16 .text:0004ACE0 ADC R8, R8, R1,LSR#16 .text:0004ACE4 ADD R8, R8, R7 .text:0004ACE8 MOV LR, R8,LSR#16 .text:0004ACEC MOV R2, R6,LSR#16 .text:0004ACF0 BIC R12, R8, LR,LSL#16 .text:0004ACF4 BIC R1, R6, R2,LSL#16 .text:0004ACF8 MUL R3, R12, R1 .text:0004ACFC MUL R1, LR, R1 .text:0004AD00 MUL R12, R2, R12 .text:0004AD04 MUL R2, LR, R2 .text:0004AD08 ADDS R12, R1, R12 .text:0004AD0C ADDCS R2, R2, #0x10000 .text:0004AD10 ADDS R3, R3, R12,LSL#16 .text:0004AD14 ADC R2, R2, R12,LSR#16 .text:0004AD18 SUBS LR, R0, R3 .text:0004AD1C SBC R3, R7, R2 .text:0004AD20 CMP R3, #0 .text:0004AD24 MOV R7, R4 .text:0004AD28 BEQ loc_4AD54 .text:0004AD2C ADD R8, R8, #1 .text:0004AD30 SUBS R0, LR, R6 .text:0004AD34 SBC R3, R3, #0 .text:0004AD38 MOV LR, R0 .text:0004AD3C CMP R3, #0 .text:0004AD40 BEQ loc_4AD54 .text:0004AD44 SUBS R1, LR, R6 .text:0004AD48 SBC R3, R3, #0 .text:0004AD4C MOV LR, R1 .text:0004AD50 ADD R8, R8, #1 .text:0004AD54 .text:0004AD54 loc_4AD54 ; CODE XREF: _itowa+240j .text:0004AD54 ; _itowa+258j .text:0004AD54 CMP LR, R6 .text:0004AD58 RSBCS LR, R6, LR .text:0004AD5C ADDCS R8, R8, #1 .text:0004AD60 LDR R2, [R11,#var_48] .text:0004AD64 MOV R4, R9,LSL R2 .text:0004AD68 LDR R12, [R11,#var_44] .text:0004AD6C LDR R3, [R12,#0x10] .text:0004AD70 MOV R0, LR,LSR#16 .text:0004AD74 MOV R5, R3,LSR#16 .text:0004AD78 BIC R1, LR, R0,LSL#16 .text:0004AD7C BIC R2, R3, R5,LSL#16 .text:0004AD80 MUL R12, R1, R2 .text:0004AD84 MUL R2, R0, R2 .text:0004AD88 MUL R1, R5, R1 .text:0004AD8C MUL R5, R0, R5 .text:0004AD90 ADDS R1, R2, R1 .text:0004AD94 ADDCS R5, R5, #0x10000 .text:0004AD98 ADDS R12, R12, R1,LSL#16 .text:0004AD9C ADC R5, R5, R1,LSR#16 .text:0004ADA0 ADD R5, R5, LR .text:0004ADA4 MOV R12, R5,LSR#16 .text:0004ADA8 MOV R2, R6,LSR#16 .text:0004ADAC BIC R0, R5, R12,LSL#16 .text:0004ADB0 BIC R1, R6, R2,LSL#16 .text:0004ADB4 MUL R3, R0, R1 .text:0004ADB8 MUL R1, R12, R1 .text:0004ADBC MUL R0, R2, R0 .text:0004ADC0 MUL R2, R12, R2 .text:0004ADC4 ADDS R0, R1, R0 .text:0004ADC8 ADDCS R2, R2, #0x10000 .text:0004ADCC ADDS R3, R3, R0,LSL#16 .text:0004ADD0 ADC R2, R2, R0,LSR#16 .text:0004ADD4 SUBS R0, R4, R3 .text:0004ADD8 SBC R3, LR, R2 .text:0004ADDC MOV R2, R0 .text:0004ADE0 CMP R3, #0 .text:0004ADE4 BEQ loc_4AE10 .text:0004ADE8 ADD R5, R5, #1 .text:0004ADEC SUBS R1, R2, R6 .text:0004ADF0 SBC R3, R3, #0 .text:0004ADF4 MOV R2, R1 .text:0004ADF8 CMP R3, #0 .text:0004ADFC BEQ loc_4AE10 .text:0004AE00 SUBS R4, R2, R6 .text:0004AE04 SBC R3, R3, #0 .text:0004AE08 MOV R2, R4 .text:0004AE0C ADD R5, R5, #1 .text:0004AE10 .text:0004AE10 loc_4AE10 ; CODE XREF: _itowa+2FCj .text:0004AE10 ; _itowa+314j .text:0004AE10 CMP R2, R6 .text:0004AE14 RSBCS R2, R6, R2 .text:0004AE18 ADDCS R5, R5, #1 .text:0004AE1C LDR R12, [R11,#var_48] .text:0004AE20 CMP R12, #0 .text:0004AE24 MOV R3, R2,LSR R12 .text:0004AE28 STR R3, [R11,#var_2C] .text:0004AE2C BNE loc_4AE44 .text:0004AE30 MOV R7, R8 .text:0004AE34 B loc_4AE50 .text:0004AE34 ; --------------------------------------------------------------------------- .text:0004AE38 off_4AE38 DCD _itowa_lower_digits ; DATA XREF: _itowa+14r .text:0004AE3C off_4AE3C DCD _itowa_upper_digits ; DATA XREF: _itowa+20r .text:0004AE40 off_4AE40 DCD _fpioconst_pow10+0x68 ; DATA XREF: _itowa+28r .text:0004AE44 ; --------------------------------------------------------------------------- .text:0004AE44 .text:0004AE44 loc_4AE44 ; CODE XREF: _itowa+344j .text:0004AE44 LDR LR, [R11,#var_48] .text:0004AE48 MOV R3, R5,LSR R7 .text:0004AE4C ORR R7, R3, R8,LSL LR .text:0004AE50 .text:0004AE50 loc_4AE50 ; CODE XREF: _itowa+34Cj .text:0004AE50 LDR R0, [R11,#var_48] .text:0004AE54 MOV R4, R5,LSL R0 .text:0004AE58 LDR R1, [R11,#var_44] .text:0004AE5C LDR R3, [R1,#0x10] .text:0004AE60 MOV R0, R7,LSR#16 .text:0004AE64 MOV LR, R3,LSR#16 .text:0004AE68 BIC R1, R7, R0,LSL#16 .text:0004AE6C BIC R2, R3, LR,LSL#16 .text:0004AE70 MUL R12, R1, R2 .text:0004AE74 MUL R2, R0, R2 .text:0004AE78 MUL R1, LR, R1 .text:0004AE7C MUL LR, R0, LR .text:0004AE80 ADDS R1, R2, R1 .text:0004AE84 ADDCS LR, LR, #0x10000 .text:0004AE88 ADDS R12, R12, R1,LSL#16 .text:0004AE8C ADC LR, LR, R1,LSR#16 .text:0004AE90 ADD LR, LR, R7 .text:0004AE94 MOV R12, LR,LSR#16 .text:0004AE98 MOV R2, R6,LSR#16 .text:0004AE9C BIC R0, LR, R12,LSL#16 .text:0004AEA0 BIC R1, R6, R2,LSL#16 .text:0004AEA4 MUL R3, R0, R1 .text:0004AEA8 MUL R1, R12, R1 .text:0004AEAC MUL R0, R2, R0 .text:0004AEB0 MUL R2, R12, R2 .text:0004AEB4 ADDS R0, R1, R0 .text:0004AEB8 ADDCS R2, R2, #0x10000 .text:0004AEBC ADDS R3, R3, R0,LSL#16 .text:0004AEC0 ADC R2, R2, R0,LSR#16 .text:0004AEC4 SUBS R12, R4, R3 .text:0004AEC8 SBC R3, R7, R2 .text:0004AECC MOV R2, R12 .text:0004AED0 CMP R3, #0 .text:0004AED4 BEQ loc_4AF00 .text:0004AED8 ADD LR, LR, #1 .text:0004AEDC SUBS R0, R2, R6 .text:0004AEE0 SBC R3, R3, #0 .text:0004AEE4 MOV R2, R0 .text:0004AEE8 CMP R3, #0 .text:0004AEEC BEQ loc_4AF00 .text:0004AEF0 SUBS R1, R2, R6 .text:0004AEF4 SBC R3, R3, #0 .text:0004AEF8 MOV R2, R1 .text:0004AEFC ADD LR, LR, #1 .text:0004AF00 .text:0004AF00 loc_4AF00 ; CODE XREF: _itowa+3ECj .text:0004AF00 ; _itowa+404j .text:0004AF00 CMP R2, R6 .text:0004AF04 RSBCS R2, R6, R2 .text:0004AF08 ADDCS LR, LR, #1 .text:0004AF0C STR LR, [R11,#var_34] .text:0004AF10 LDR R4, [R11,#var_48] .text:0004AF14 MOV R3, R2,LSR R4 .text:0004AF18 MOV R7, #3 .text:0004AF1C STR R3, [R11,#var_30] .text:0004AF20 B loc_4B014 .text:0004AF24 ; --------------------------------------------------------------------------- .text:0004AF24 .text:0004AF24 loc_4AF24 ; CODE XREF: _itowa+184j .text:0004AF24 LDR R2, [R11,#var_48] .text:0004AF28 MOV R1, R10 .text:0004AF2C MOV R0, R9 .text:0004AF30 BL __ashldi3 .text:0004AF34 MOV R10, R1 .text:0004AF38 MOV R9, R0 .text:0004AF3C MOV R1, R10 .text:0004AF40 LDR R12, [R11,#var_44] .text:0004AF44 LDR R3, [R12,#0x10] .text:0004AF48 MOV LR, R1,LSR#16 .text:0004AF4C MOV R5, R3,LSR#16 .text:0004AF50 BIC R12, R1, LR,LSL#16 .text:0004AF54 BIC R0, R3, R5,LSL#16 .text:0004AF58 MUL R4, R12, R0 .text:0004AF5C MUL R0, LR, R0 .text:0004AF60 MUL R12, R5, R12 .text:0004AF64 MUL R5, LR, R5 .text:0004AF68 ADDS R12, R0, R12 .text:0004AF6C ADDCS R5, R5, #0x10000 .text:0004AF70 ADDS R4, R4, R12,LSL#16 .text:0004AF74 ADC R5, R5, R12,LSR#16 .text:0004AF78 ADD R5, R5, R1 .text:0004AF7C MOV R4, R5,LSR#16 .text:0004AF80 MOV R0, R6,LSR#16 .text:0004AF84 BIC LR, R5, R4,LSL#16 .text:0004AF88 BIC R12, R6, R0,LSL#16 .text:0004AF8C MUL R3, LR, R12 .text:0004AF90 MUL R12, R4, R12 .text:0004AF94 MUL LR, R0, LR .text:0004AF98 MUL R0, R4, R0 .text:0004AF9C ADDS LR, R12, LR .text:0004AFA0 ADDCS R0, R0, #0x10000 .text:0004AFA4 ADDS R3, R3, LR,LSL#16 .text:0004AFA8 ADC R0, R0, LR,LSR#16 .text:0004AFAC SUBS R2, R9, R3 .text:0004AFB0 SBC R3, R1, R0 .text:0004AFB4 CMP R3, #0 .text:0004AFB8 BEQ loc_4AFE4 .text:0004AFBC ADD R5, R5, #1 .text:0004AFC0 SUBS LR, R2, R6 .text:0004AFC4 SBC R3, R3, #0 .text:0004AFC8 MOV R2, LR .text:0004AFCC CMP R3, #0 .text:0004AFD0 BEQ loc_4AFE4 .text:0004AFD4 SUBS R0, R2, R6 .text:0004AFD8 SBC R3, R3, #0 .text:0004AFDC MOV R2, R0 .text:0004AFE0 ADD R5, R5, #1 .text:0004AFE4 .text:0004AFE4 loc_4AFE4 ; CODE XREF: _itowa+4D0j .text:0004AFE4 ; _itowa+4E8j .text:0004AFE4 CMP R2, R6 .text:0004AFE8 RSBCS R2, R6, R2 .text:0004AFEC ADDCS R5, R5, #1 .text:0004AFF0 STR R5, [R11,#var_34] .text:0004AFF4 LDR R1, [R11,#var_44] .text:0004AFF8 LDRB R3, [R1,#8] .text:0004AFFC MOV R7, #2 .text:0004B000 MOV R3, R2,LSR R3 .text:0004B004 STR R3, [R11,#var_30] .text:0004B008 B loc_4B014 .text:0004B00C ; --------------------------------------------------------------------------- .text:0004B00C .text:0004B00C loc_4B00C ; CODE XREF: _itowa+168j .text:0004B00C MOV R7, #1 .text:0004B010 STR R9, [R11,#var_34] .text:0004B014 .text:0004B014 loc_4B014 ; CODE XREF: _itowa+438j .text:0004B014 ; _itowa+520j .text:0004B014 SUB R8, R11, #-var_34 .text:0004B018 .text:0004B018 loc_4B018 ; CODE XREF: _itowa+680j .text:0004B018 LDR R2, [R11,#var_44] .text:0004B01C SUB R7, R7, #1 .text:0004B020 LDR R4, [R8,R7,LSL#2] .text:0004B024 LDRB R3, [R2,#4] .text:0004B028 MOV R6, #0 .text:0004B02C LDR R5, [R2] .text:0004B030 CMP R3, R6 .text:0004B034 BEQ loc_4B0B8 .text:0004B038 CMP R4, R6 .text:0004B03C BEQ loc_4B128 .text:0004B040 .text:0004B040 loc_4B040 ; CODE XREF: _itowa+5C8j .text:0004B040 MOV R0, R4,LSR#16 .text:0004B044 MOV R1, R5,LSR#16 .text:0004B048 BIC R2, R4, R0,LSL#16 .text:0004B04C BIC R3, R5, R1,LSL#16 .text:0004B050 MUL R12, R2, R3 .text:0004B054 MUL R3, R0, R3 .text:0004B058 MUL R2, R1, R2 .text:0004B05C MUL R1, R0, R1 .text:0004B060 ADDS R2, R3, R2 .text:0004B064 ADDCS R1, R1, #0x10000 .text:0004B068 ADDS R12, R12, R2,LSL#16 .text:0004B06C ADC R1, R1, R2,LSR#16 .text:0004B070 LDR R12, [R11,#var_44] .text:0004B074 RSB LR, R1, R4 .text:0004B078 LDRB R3, [R12,#5] .text:0004B07C ADD R1, R1, LR,LSR#1 .text:0004B080 LDR R2, [R11,#var_38] .text:0004B084 SUB R3, R3, #1 .text:0004B088 MOV R1, R1,LSR R3 .text:0004B08C MUL R2, R1, R2 .text:0004B090 SUB R0, R11, #-var_40 .text:0004B094 LDMIA R0, {R0,LR} .text:0004B098 RSB R2, R2, R4 .text:0004B09C LDR R3, [LR,R2,LSL#2] .text:0004B0A0 STR R3, [R0,#-4]! .text:0004B0A4 ADD R6, R6, #1 .text:0004B0A8 SUBS R4, R1, #0 .text:0004B0AC STR R0, [R11,#var_40] .text:0004B0B0 BNE loc_4B040 .text:0004B0B4 B loc_4B128 .text:0004B0B8 ; --------------------------------------------------------------------------- .text:0004B0B8 .text:0004B0B8 loc_4B0B8 ; CODE XREF: _itowa+54Cj .text:0004B0B8 CMP R4, #0 .text:0004B0BC BEQ loc_4B128 .text:0004B0C0 .text:0004B0C0 loc_4B0C0 ; CODE XREF: _itowa+63Cj .text:0004B0C0 LDR R2, [R11,#var_44] .text:0004B0C4 LDRB R1, [R2,#5] .text:0004B0C8 MOV R12, R4,LSR#16 .text:0004B0CC MOV R3, R5,LSR#16 .text:0004B0D0 BIC R0, R4, R12,LSL#16 .text:0004B0D4 BIC R2, R5, R3,LSL#16 .text:0004B0D8 MUL LR, R0, R2 .text:0004B0DC MUL R2, R12, R2 .text:0004B0E0 MUL R0, R3, R0 .text:0004B0E4 MUL R3, R12, R3 .text:0004B0E8 ADDS R0, R2, R0 .text:0004B0EC ADDCS R3, R3, #0x10000 .text:0004B0F0 ADDS LR, LR, R0,LSL#16 .text:0004B0F4 ADC R3, R3, R0,LSR#16 .text:0004B0F8 LDR R2, [R11,#var_38] .text:0004B0FC MOV R3, R3,LSR R1 .text:0004B100 MUL R2, R3, R2 .text:0004B104 LDR R12, [R11,#var_40] .text:0004B108 RSB R2, R2, R4 .text:0004B10C LDR R4, [R11,#var_3C] .text:0004B110 LDR R1, [R4,R2,LSL#2] .text:0004B114 STR R1, [R12,#-4]! .text:0004B118 ADD R6, R6, #1 .text:0004B11C SUBS R4, R3, #0 .text:0004B120 STR R12, [R11,#var_40] .text:0004B124 BNE loc_4B0C0 .text:0004B128 .text:0004B128 loc_4B128 ; CODE XREF: _itowa+554j .text:0004B128 ; _itowa+5CCj ... .text:0004B128 CMP R7, #0 .text:0004B12C BEQ loc_4B164 .text:0004B130 LDR LR, [R11,#var_44] .text:0004B134 LDRB R3, [LR,#9] .text:0004B138 CMP R6, R3 .text:0004B13C BGE loc_4B164 .text:0004B140 MOV R2, #0x30 .text:0004B144 .text:0004B144 loc_4B144 ; CODE XREF: _itowa+678j .text:0004B144 LDR R0, [R11,#var_40] .text:0004B148 STR R2, [R0,#-4]! .text:0004B14C STR R0, [R11,#var_40] .text:0004B150 LDR R1, [R11,#var_44] .text:0004B154 LDRB R3, [R1,#9] .text:0004B158 ADD R6, R6, #1 .text:0004B15C CMP R6, R3 .text:0004B160 BLT loc_4B144 .text:0004B164 .text:0004B164 loc_4B164 ; CODE XREF: _itowa+644j .text:0004B164 ; _itowa+654j .text:0004B164 CMP R7, #0 .text:0004B168 BNE loc_4B018 .text:0004B16C .text:0004B16C loc_4B16C ; CODE XREF: _itowa+F0j .text:0004B16C ; _itowa+158j .text:0004B16C LDR R0, [R11,#var_40] .text:0004B170 LDMDB R11, {R4-R11,SP,PC} .text:0004B170 ; End of function _itowa .text:0004B170 .text:0004B174 .text:0004B174 ; =============== S U B R O U T I N E ======================================= .text:0004B174 .text:0004B174 ; Attributes: bp-based frame .text:0004B174 .text:0004B174 EXPORT _IO_file_doallocate .text:0004B174 _IO_file_doallocate ; CODE XREF: _IO_wfile_doallocate+20p .text:0004B174 .text:0004B174 var_80 = -0x80 .text:0004B174 var_7C = -0x7C .text:0004B174 var_78 = -0x78 .text:0004B174 var_68 = -0x68 .text:0004B174 var_44 = -0x44 .text:0004B174 .text:0004B174 MOV R12, SP .text:0004B178 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:0004B17C MOV R4, R0 .text:0004B180 SUB SP, SP, #0x68 .text:0004B184 LDR R3, [R4,#0x38] .text:0004B188 SUB R11, R12, #4 .text:0004B18C CMP R3, #0 .text:0004B190 BLT loc_4B1B8 .text:0004B194 LDRB R3, [R4,#0x46] .text:0004B198 MOV R3, R3,LSL#24 .text:0004B19C ADD R3, R4, R3,ASR#24 .text:0004B1A0 LDR R2, [R3,#0x94] .text:0004B1A4 SUB R1, R11, #-var_78 .text:0004B1A8 MOV LR, PC .text:0004B1AC LDR PC, [R2,#0x48] .text:0004B1B0 CMP R0, #0 .text:0004B1B4 BGE loc_4B1C4 .text:0004B1B8 .text:0004B1B8 loc_4B1B8 ; CODE XREF: _IO_file_doallocate+1Cj .text:0004B1B8 MOV R6, #0 .text:0004B1BC MOV R5, #0x2000 .text:0004B1C0 B loc_4B1E8 .text:0004B1C4 ; --------------------------------------------------------------------------- .text:0004B1C4 .text:0004B1C4 loc_4B1C4 ; CODE XREF: _IO_file_doallocate+40j .text:0004B1C4 LDR R3, [R11,#var_68] .text:0004B1C8 LDR R2, [R11,#var_44] .text:0004B1CC AND R6, R3, #0xF000 .text:0004B1D0 CMP R6, #0x2000 .text:0004B1D4 MOVNE R6, #0 .text:0004B1D8 MOVEQ R6, #1 .text:0004B1DC CMP R2, #0 .text:0004B1E0 MOVGT R5, R2 .text:0004B1E4 MOVLE R5, #0x2000 .text:0004B1E8 .text:0004B1E8 loc_4B1E8 ; CODE XREF: _IO_file_doallocate+4Cj .text:0004B1E8 ADD R1, R5, #0xFF0 .text:0004B1EC ADD R1, R1, #0xF .text:0004B1F0 MOV R3, 0xFFFFFFFF .text:0004B1F4 STR R3, [SP,#0x80+var_80] .text:0004B1F8 MOV R2, #0 .text:0004B1FC MOV R0, R2 .text:0004B200 STR R2, [SP,#0x80+var_7C] .text:0004B204 BIC R1, R1, #0xFF0 .text:0004B208 BIC R1, R1, #0xF .text:0004B20C ADD R2, R2, #3 .text:0004B210 ADD R3, R3, #0x23 .text:0004B214 BL mmap .text:0004B218 MOV R1, R0 .text:0004B21C CMN R1, #1 .text:0004B220 BEQ locret_4B258 .text:0004B224 MOV R0, R4 .text:0004B228 ADD R2, R1, R5 .text:0004B22C MOV R3, #1 .text:0004B230 BL _IO_setb .text:0004B234 CMP R6, #0 .text:0004B238 BEQ loc_4B254 .text:0004B23C LDR R0, [R4,#0x38] .text:0004B240 BL isatty .text:0004B244 CMP R0, #0 .text:0004B248 LDRNE R3, [R4] .text:0004B24C ORRNE R3, R3, #0x200 .text:0004B250 STRNE R3, [R4] .text:0004B254 .text:0004B254 loc_4B254 ; CODE XREF: _IO_file_doallocate+C4j .text:0004B254 MOV R0, #1 .text:0004B258 .text:0004B258 locret_4B258 ; CODE XREF: _IO_file_doallocate+ACj .text:0004B258 LDMDB R11, {R4-R6,R11,SP,PC} .text:0004B258 ; End of function _IO_file_doallocate .text:0004B258 .text:0004B25C .text:0004B25C ; =============== S U B R O U T I N E ======================================= .text:0004B25C .text:0004B25C ; Attributes: bp-based frame .text:0004B25C .text:0004B25C EXPORT _IO_wfile_doallocate .text:0004B25C _IO_wfile_doallocate .text:0004B25C .text:0004B25C var_80 = -0x80 .text:0004B25C var_7C = -0x7C .text:0004B25C var_78 = -0x78 .text:0004B25C var_68 = -0x68 .text:0004B25C var_44 = -0x44 .text:0004B25C .text:0004B25C MOV R12, SP .text:0004B260 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:0004B264 MOV R4, R0 .text:0004B268 SUB SP, SP, #0x68 .text:0004B26C LDR R3, [R4,#0x1C] .text:0004B270 SUB R11, R12, #4 .text:0004B274 CMP R3, #0 .text:0004B278 BNE loc_4B280 .text:0004B27C BL _IO_file_doallocate .text:0004B280 .text:0004B280 loc_4B280 ; CODE XREF: _IO_wfile_doallocate+1Cj .text:0004B280 LDR R3, [R4,#0x38] .text:0004B284 CMP R3, #0 .text:0004B288 BLT loc_4B2B4 .text:0004B28C LDRB R3, [R4,#0x46] .text:0004B290 MOV R0, R4 .text:0004B294 MOV R3, R3,LSL#24 .text:0004B298 ADD R3, R4, R3,ASR#24 .text:0004B29C LDR R2, [R3,#0x94] .text:0004B2A0 SUB R1, R11, #-var_78 .text:0004B2A4 MOV LR, PC .text:0004B2A8 LDR PC, [R2,#0x48] .text:0004B2AC CMP R0, #0 .text:0004B2B0 BGE loc_4B2C0 .text:0004B2B4 .text:0004B2B4 loc_4B2B4 ; CODE XREF: _IO_wfile_doallocate+2Cj .text:0004B2B4 MOV R6, #0 .text:0004B2B8 MOV R1, #0x2000 .text:0004B2BC B loc_4B2E4 .text:0004B2C0 ; --------------------------------------------------------------------------- .text:0004B2C0 .text:0004B2C0 loc_4B2C0 ; CODE XREF: _IO_wfile_doallocate+54j .text:0004B2C0 LDR R3, [R11,#var_68] .text:0004B2C4 LDR R2, [R11,#var_44] .text:0004B2C8 AND R6, R3, #0xF000 .text:0004B2CC CMP R6, #0x2000 .text:0004B2D0 MOVNE R6, #0 .text:0004B2D4 MOVEQ R6, #1 .text:0004B2D8 CMP R2, #0 .text:0004B2DC MOVGT R1, R2 .text:0004B2E0 MOVLE R1, #0x2000 .text:0004B2E4 .text:0004B2E4 loc_4B2E4 ; CODE XREF: _IO_wfile_doallocate+60j .text:0004B2E4 MOV R5, R1,LSL#2 .text:0004B2E8 ADD R1, R5, #0xFF0 .text:0004B2EC ADD R1, R1, #0xF .text:0004B2F0 MOV R3, 0xFFFFFFFF .text:0004B2F4 STR R3, [SP,#0x80+var_80] .text:0004B2F8 MOV R2, #0 .text:0004B2FC MOV R0, R2 .text:0004B300 STR R2, [SP,#0x80+var_7C] .text:0004B304 BIC R1, R1, #0xFF0 .text:0004B308 BIC R1, R1, #0xF .text:0004B30C ADD R2, R2, #3 .text:0004B310 ADD R3, R3, #0x23 .text:0004B314 BL mmap .text:0004B318 MOV R1, R0 .text:0004B31C CMN R1, #1 .text:0004B320 BEQ locret_4B358 .text:0004B324 MOV R0, R4 .text:0004B328 ADD R2, R1, R5 .text:0004B32C MOV R3, #1 .text:0004B330 BL _IO_wsetb .text:0004B334 CMP R6, #0 .text:0004B338 BEQ loc_4B354 .text:0004B33C LDR R0, [R4,#0x38] .text:0004B340 BL isatty .text:0004B344 CMP R0, #0 .text:0004B348 LDRNE R3, [R4] .text:0004B34C ORRNE R3, R3, #0x200 .text:0004B350 STRNE R3, [R4] .text:0004B354 .text:0004B354 loc_4B354 ; CODE XREF: _IO_wfile_doallocate+DCj .text:0004B354 MOV R0, #1 .text:0004B358 .text:0004B358 locret_4B358 ; CODE XREF: _IO_wfile_doallocate+C4j .text:0004B358 LDMDB R11, {R4-R6,R11,SP,PC} .text:0004B358 ; End of function _IO_wfile_doallocate .text:0004B358 .text:0004B35C .text:0004B35C ; =============== S U B R O U T I N E ======================================= .text:0004B35C .text:0004B35C ; Attributes: bp-based frame .text:0004B35C .text:0004B35C WEAK getdelim .text:0004B35C getdelim ; CODE XREF: read_conf_file+380p .text:0004B35C .text:0004B35C var_40 = -0x40 .text:0004B35C var_3C = -0x3C .text:0004B35C var_38 = -0x38 .text:0004B35C .text:0004B35C MOV R12, SP ; Alternative name is '_IO_getdelim' .text:0004B360 STMFD SP!, {R4-R12,LR,PC} .text:0004B364 SUB R11, R12, #4 .text:0004B368 MOV R9, #0 .text:0004B36C MOV R8, R0 .text:0004B370 MOV R10, R1 .text:0004B374 CMP R10, R9 .text:0004B378 CMPNE R8, R9 .text:0004B37C MOV R4, R3 .text:0004B380 SUB SP, SP, #0x18 .text:0004B384 STR R2, [R11,#var_3C] .text:0004B388 BNE loc_4B3A0 .text:0004B38C BL __errno_location .text:0004B390 MOV R3, #0x16 .text:0004B394 STR R3, [R0] .text:0004B398 MOV R0, 0xFFFFFFFF .text:0004B39C B locret_4B550 .text:0004B3A0 ; --------------------------------------------------------------------------- .text:0004B3A0 .text:0004B3A0 loc_4B3A0 ; CODE XREF: getdelim+2Cj .text:0004B3A0 LDR R3, [R4] .text:0004B3A4 STR R9, [R11,#var_40] .text:0004B3A8 TST R3, #0x8000 .text:0004B3AC BNE loc_4B3C0 .text:0004B3B0 LDR R3, =0 .text:0004B3B4 SUBS R3, R3, #0 .text:0004B3B8 MOVNE R3, #1 .text:0004B3BC STR R3, [R11,#var_40] .text:0004B3C0 .text:0004B3C0 loc_4B3C0 ; CODE XREF: getdelim+50j .text:0004B3C0 LDR R3, [R11,#var_40] .text:0004B3C4 CMP R3, #0 .text:0004B3C8 BEQ loc_4B3DC .text:0004B3CC SUB R0, R11, #-var_38 .text:0004B3D0 LDR R1, =funlockfile .text:0004B3D4 MOV R2, R4 .text:0004B3D8 BL 0 .text:0004B3DC .text:0004B3DC loc_4B3DC ; CODE XREF: getdelim+6Cj .text:0004B3DC LDR R3, [R4] .text:0004B3E0 TST R3, #0x8000 .text:0004B3E4 BNE loc_4B3F0 .text:0004B3E8 MOV R0, R4 .text:0004B3EC BL flockfile .text:0004B3F0 .text:0004B3F0 loc_4B3F0 ; CODE XREF: getdelim+88j .text:0004B3F0 LDR R3, [R4] .text:0004B3F4 TST R3, #0x20 .text:0004B3F8 BNE loc_4B45C .text:0004B3FC LDR R3, [R8] .text:0004B400 CMP R3, #0 .text:0004B404 BEQ loc_4B414 .text:0004B408 LDR R3, [R10] .text:0004B40C CMP R3, #0 .text:0004B410 BNE loc_4B42C .text:0004B414 .text:0004B414 loc_4B414 ; CODE XREF: getdelim+A8j .text:0004B414 MOV R0, #0x78 .text:0004B418 STR R0, [R10] .text:0004B41C BL malloc .text:0004B420 CMP R0, #0 .text:0004B424 STR R0, [R8] .text:0004B428 BEQ loc_4B45C .text:0004B42C .text:0004B42C loc_4B42C ; CODE XREF: getdelim+B4j .text:0004B42C ADD R3, R4, #8 .text:0004B430 LDMDA R3, {R3,R5} .text:0004B434 SUB R5, R5, R3 .text:0004B438 LDR R0, [R4,#4] .text:0004B43C CMP R5, #0 .text:0004B440 BGT loc_4B47C .text:0004B444 MOV R0, R4 .text:0004B448 BL __underflow .text:0004B44C CMN R0, #1 .text:0004B450 BNE loc_4B46C .text:0004B454 MOV R5, R0 .text:0004B458 B loc_4B520 .text:0004B45C ; --------------------------------------------------------------------------- .text:0004B45C .text:0004B45C loc_4B45C ; CODE XREF: getdelim+9Cj .text:0004B45C ; getdelim+CCj ... .text:0004B45C MOV R5, 0xFFFFFFFF .text:0004B460 B loc_4B520 .text:0004B460 ; --------------------------------------------------------------------------- .text:0004B464 dword_4B464 DCD 0 ; DATA XREF: getdelim+54r .text:0004B468 off_4B468 DCD funlockfile ; DATA XREF: getdelim+74r .text:0004B46C ; --------------------------------------------------------------------------- .text:0004B46C .text:0004B46C loc_4B46C ; CODE XREF: getdelim+F4j .text:0004B46C ; getdelim+1B0j .text:0004B46C ADD R3, R4, #8 .text:0004B470 LDMDA R3, {R3,R5} .text:0004B474 SUB R5, R5, R3 .text:0004B478 LDR R0, [R4,#4] .text:0004B47C .text:0004B47C loc_4B47C ; CODE XREF: getdelim+E4j .text:0004B47C LDR R1, [R11,#var_3C] .text:0004B480 MOV R2, R5 .text:0004B484 BL memchr .text:0004B488 SUBS R6, R0, #0 .text:0004B48C LDRNE R3, [R4,#4] .text:0004B490 RSBNE R3, R3, R6 .text:0004B494 ADDNE R5, R3, #1 .text:0004B498 ADD R3, R9, R5 .text:0004B49C ADD R1, R3, #1 .text:0004B4A0 LDR R2, [R10] .text:0004B4A4 MOV R7, R3 .text:0004B4A8 CMP R1, R2 .text:0004B4AC BLS loc_4B4D4 .text:0004B4B0 MOV R3, R2,LSL#1 .text:0004B4B4 CMP R1, R3 .text:0004B4B8 MOVCC R1, R3 .text:0004B4BC STR R1, [R10] .text:0004B4C0 LDR R0, [R8] .text:0004B4C4 BL realloc .text:0004B4C8 CMP R0, #0 .text:0004B4CC STR R0, [R8] .text:0004B4D0 BEQ loc_4B45C .text:0004B4D4 .text:0004B4D4 loc_4B4D4 ; CODE XREF: getdelim+150j .text:0004B4D4 LDR R0, [R8] .text:0004B4D8 MOV R2, R5 .text:0004B4DC LDR R1, [R4,#4] .text:0004B4E0 ADD R0, R0, R9 .text:0004B4E4 MOV R9, R7 .text:0004B4E8 BL memcpy .text:0004B4EC LDR R3, [R4,#4] .text:0004B4F0 CMP R6, #0 .text:0004B4F4 ADD R3, R3, R5 .text:0004B4F8 STR R3, [R4,#4] .text:0004B4FC BNE loc_4B510 .text:0004B500 MOV R0, R4 .text:0004B504 BL __underflow .text:0004B508 CMN R0, #1 .text:0004B50C BNE loc_4B46C .text:0004B510 .text:0004B510 loc_4B510 ; CODE XREF: getdelim+1A0j .text:0004B510 MOV R5, R7 .text:0004B514 LDR R2, [R8] .text:0004B518 MOV R3, #0 .text:0004B51C STRB R3, [R2,R7] .text:0004B520 .text:0004B520 loc_4B520 ; CODE XREF: getdelim+FCj .text:0004B520 ; getdelim+104j .text:0004B520 LDR R3, [R4] .text:0004B524 TST R3, #0x8000 .text:0004B528 BNE loc_4B534 .text:0004B52C MOV R0, R4 .text:0004B530 BL funlockfile .text:0004B534 .text:0004B534 loc_4B534 ; CODE XREF: getdelim+1CCj .text:0004B534 LDR R3, [R11,#var_40] .text:0004B538 CMP R3, #0 .text:0004B53C BEQ loc_4B54C .text:0004B540 SUB R0, R11, #-var_38 .text:0004B544 MOV R1, #0 .text:0004B548 BL 0 .text:0004B54C .text:0004B54C loc_4B54C ; CODE XREF: getdelim+1E0j .text:0004B54C MOV R0, R5 .text:0004B550 .text:0004B550 locret_4B550 ; CODE XREF: getdelim+40j .text:0004B550 LDMDB R11, {R4-R11,SP,PC} .text:0004B550 ; End of function getdelim .text:0004B550 .text:0004B554 .text:0004B554 ; =============== S U B R O U T I N E ======================================= .text:0004B554 .text:0004B554 ; Attributes: bp-based frame .text:0004B554 .text:0004B554 EXPORT _IO_getline .text:0004B554 _IO_getline ; CODE XREF: fgets_unlocked+4Cp .text:0004B554 .text:0004B554 var_14 = -0x14 .text:0004B554 var_10 = -0x10 .text:0004B554 arg_0 = 4 .text:0004B554 .text:0004B554 MOV R12, SP .text:0004B558 STMFD SP!, {R11,R12,LR,PC} .text:0004B55C SUB R11, R12, #4 .text:0004B560 MOV R12, #0 .text:0004B564 SUB SP, SP, #8 .text:0004B568 STR R12, [SP,#0x14+var_10] .text:0004B56C LDR LR, [R11,#arg_0] .text:0004B570 STR LR, [SP,#0x14+var_14] .text:0004B574 BL _IO_getline_info .text:0004B578 LDMDB R11, {R11,SP,PC} .text:0004B578 ; End of function _IO_getline .text:0004B578 .text:0004B57C .text:0004B57C ; =============== S U B R O U T I N E ======================================= .text:0004B57C .text:0004B57C ; Attributes: bp-based frame .text:0004B57C .text:0004B57C EXPORT _IO_getline_info .text:0004B57C _IO_getline_info ; CODE XREF: _IO_getline+20p .text:0004B57C .text:0004B57C arg_0 = 4 .text:0004B57C arg_4 = 8 .text:0004B57C .text:0004B57C MOV R12, SP .text:0004B580 STMFD SP!, {R4-R12,LR,PC} .text:0004B584 SUB R11, R12, #4 .text:0004B588 MOV R8, R2 .text:0004B58C MOV R9, R1 .text:0004B590 MOV R7, R9 .text:0004B594 MOV R6, R0 .text:0004B598 LDR R2, [R11,#arg_4] .text:0004B59C MOV R10, R3 .text:0004B5A0 CMP R2, #0 .text:0004B5A4 MOVNE R3, #0 .text:0004B5A8 STRNE R3, [R2] .text:0004B5AC LDR R3, [R6,#0x5C] .text:0004B5B0 CMP R3, #0 .text:0004B5B4 MOVEQ R3, 0xFFFFFFFF .text:0004B5B8 STREQ R3, [R6,#0x5C] .text:0004B5BC B loc_4B674 .text:0004B5C0 ; --------------------------------------------------------------------------- .text:0004B5C0 .text:0004B5C0 loc_4B5C0 ; CODE XREF: _IO_getline_info+128j .text:0004B5C0 CMP R1, R10 .text:0004B5C4 BNE loc_4B5EC .text:0004B5C8 LDR R3, [R11,#arg_0] .text:0004B5CC CMP R3, #0 .text:0004B5D0 STRGTB R1, [R7],#1 .text:0004B5D4 BGT loc_4B5E4 .text:0004B5D8 BGE loc_4B5E4 .text:0004B5DC MOV R0, R6 .text:0004B5E0 BL _IO_sputbackc .text:0004B5E4 .text:0004B5E4 loc_4B5E4 ; CODE XREF: _IO_getline_info+58j .text:0004B5E4 ; _IO_getline_info+5Cj .text:0004B5E4 RSB R0, R9, R7 .text:0004B5E8 LDMDB R11, {R4-R11,SP,PC} .text:0004B5EC ; --------------------------------------------------------------------------- .text:0004B5EC .text:0004B5EC loc_4B5EC ; CODE XREF: _IO_getline_info+48j .text:0004B5EC SUB R8, R8, #1 .text:0004B5F0 STRB R1, [R7],#1 .text:0004B5F4 B loc_4B674 .text:0004B5F8 ; --------------------------------------------------------------------------- .text:0004B5F8 .text:0004B5F8 loc_4B5F8 ; CODE XREF: _IO_getline_info+114j .text:0004B5F8 CMP R4, R8 .text:0004B5FC MOVCS R4, R8 .text:0004B600 MOV R1, R10 .text:0004B604 MOV R2, R4 .text:0004B608 BL memchr .text:0004B60C SUBS R5, R0, #0 .text:0004B610 BEQ loc_4B650 .text:0004B614 LDR R2, [R11,#arg_0] .text:0004B618 RSB R8, R9, R7 .text:0004B61C LDR R1, [R6,#4] .text:0004B620 CMP R2, #0 .text:0004B624 RSB R4, R1, R5 .text:0004B628 BLT loc_4B638 .text:0004B62C ADD R5, R5, #1 .text:0004B630 CMP R2, #0 .text:0004B634 ADDGT R4, R4, #1 .text:0004B638 .text:0004B638 loc_4B638 ; CODE XREF: _IO_getline_info+ACj .text:0004B638 MOV R0, R7 .text:0004B63C MOV R2, R4 .text:0004B640 BL memcpy .text:0004B644 ADD R0, R8, R4 .text:0004B648 STR R5, [R6,#4] .text:0004B64C LDMDB R11, {R4-R11,SP,PC} .text:0004B650 ; --------------------------------------------------------------------------- .text:0004B650 .text:0004B650 loc_4B650 ; CODE XREF: _IO_getline_info+94j .text:0004B650 MOV R0, R7 .text:0004B654 MOV R2, R4 .text:0004B658 LDR R1, [R6,#4] .text:0004B65C ADD R7, R7, R4 .text:0004B660 BL memcpy .text:0004B664 LDR R3, [R6,#4] .text:0004B668 RSB R8, R4, R8 .text:0004B66C ADD R3, R3, R4 .text:0004B670 STR R3, [R6,#4] .text:0004B674 .text:0004B674 loc_4B674 ; CODE XREF: _IO_getline_info+40j .text:0004B674 ; _IO_getline_info+78j .text:0004B674 CMP R8, #0 .text:0004B678 BEQ loc_4B6B4 .text:0004B67C ADD R3, R6, #8 .text:0004B680 LDMDA R3, {R3,R4} .text:0004B684 SUB R4, R4, R3 .text:0004B688 LDR R0, [R6,#4] .text:0004B68C CMP R4, #0 .text:0004B690 BGT loc_4B5F8 .text:0004B694 MOV R0, R6 .text:0004B698 BL __uflow .text:0004B69C MOV R1, R0 .text:0004B6A0 CMN R1, #1 .text:0004B6A4 BNE loc_4B5C0 .text:0004B6A8 LDR R2, [R11,#arg_4] .text:0004B6AC CMP R2, #0 .text:0004B6B0 STRNE R1, [R2] .text:0004B6B4 .text:0004B6B4 loc_4B6B4 ; CODE XREF: _IO_getline_info+FCj .text:0004B6B4 RSB R0, R9, R7 .text:0004B6B8 LDMDB R11, {R4-R11,SP,PC} .text:0004B6B8 ; End of function _IO_getline_info .text:0004B6B8 .text:0004B6BC .text:0004B6BC ; =============== S U B R O U T I N E ======================================= .text:0004B6BC .text:0004B6BC ; Attributes: bp-based frame .text:0004B6BC .text:0004B6BC EXPORT strcpy .text:0004B6BC strcpy ; CODE XREF: generic_getcwd+2D0p .text:0004B6BC ; __tzstring+90p .text:0004B6BC MOV R12, SP .text:0004B6C0 STMFD SP!, {R11,R12,LR,PC} .text:0004B6C4 SUB R11, R12, #4 .text:0004B6C8 RSB R3, R1, R0 .text:0004B6CC SUB R2, R3, #1 .text:0004B6D0 .text:0004B6D0 loc_4B6D0 ; CODE XREF: strcpy+20j .text:0004B6D0 LDRB R3, [R1],#1 .text:0004B6D4 CMP R3, #0 .text:0004B6D8 STRB R3, [R1,R2] .text:0004B6DC BNE loc_4B6D0 .text:0004B6E0 LDMDB R11, {R11,SP,PC} .text:0004B6E0 ; End of function strcpy .text:0004B6E0 .text:0004B6E4 .text:0004B6E4 ; =============== S U B R O U T I N E ======================================= .text:0004B6E4 .text:0004B6E4 ; Attributes: bp-based frame .text:0004B6E4 .text:0004B6E4 WEAK strndup .text:0004B6E4 strndup ; CODE XREF: _nl_find_locale+57Cp .text:0004B6E4 MOV R12, SP ; Alternative name is '__strndup' .text:0004B6E8 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0004B6EC SUB R11, R12, #4 .text:0004B6F0 MOV R5, R0 .text:0004B6F4 MOV R4, R1 .text:0004B6F8 MOV R1, #0 .text:0004B6FC MOV R2, R4 .text:0004B700 BL memchr .text:0004B704 CMP R0, #0 .text:0004B708 SUBNE R4, R0, R5 .text:0004B70C ADD R0, R4, #1 .text:0004B710 BL malloc .text:0004B714 CMP R0, #0 .text:0004B718 LDMEQDB R11, {R4,R5,R11,SP,PC} .text:0004B71C MOV R3, #0 .text:0004B720 STRB R3, [R0,R4] .text:0004B724 MOV R1, R5 .text:0004B728 MOV R2, R4 .text:0004B72C BL memcpy .text:0004B730 LDMDB R11, {R4,R5,R11,SP,PC} .text:0004B730 ; End of function strndup .text:0004B730 .text:0004B734 .text:0004B734 ; =============== S U B R O U T I N E ======================================= .text:0004B734 .text:0004B734 ; Attributes: bp-based frame .text:0004B734 .text:0004B734 WEAK strncasecmp .text:0004B734 strncasecmp ; CODE XREF: __strtof_internal+17Cp .text:0004B734 ; __strtof_internal+198p ... .text:0004B734 MOV R12, SP .text:0004B738 STMFD SP!, {R4,R11,R12,LR,PC} .text:0004B73C SUB R11, R12, #4 .text:0004B740 MOV R4, R0 .text:0004B744 MOV R12, R2 .text:0004B748 CMP R12, #0 .text:0004B74C CMPNE R4, R1 .text:0004B750 MOVEQ R0, #0 .text:0004B754 LDMEQDB R11, {R4,R11,SP,PC} .text:0004B758 LDR R3, =__ctype_tolower .text:0004B75C LDR LR, [R3] .text:0004B760 .text:0004B760 loc_4B760 ; CODE XREF: strncasecmp+58j .text:0004B760 LDRB R3, [R4],#1 .text:0004B764 LDRB R2, [R1],#1 .text:0004B768 LDRB R0, [LR,R3,LSL#2] .text:0004B76C LDRB R2, [LR,R2,LSL#2] .text:0004B770 SUBS R3, R0, R2 .text:0004B774 MOVNE R3, #1 .text:0004B778 CMP R0, #0 .text:0004B77C MOVEQ R3, #1 .text:0004B780 CMP R3, #0 .text:0004B784 BNE loc_4B798 .text:0004B788 SUBS R12, R12, #1 .text:0004B78C BNE loc_4B760 .text:0004B790 RSB R0, R2, R0 .text:0004B794 LDMDB R11, {R4,R11,SP,PC} .text:0004B798 ; --------------------------------------------------------------------------- .text:0004B798 .text:0004B798 loc_4B798 ; CODE XREF: strncasecmp+50j .text:0004B798 RSB R0, R2, R0 .text:0004B79C LDMDB R11, {R4,R11,SP,PC} .text:0004B79C ; End of function strncasecmp .text:0004B79C .text:0004B79C ; --------------------------------------------------------------------------- .text:0004B7A0 off_4B7A0 DCD __ctype_tolower ; DATA XREF: strncasecmp+24r .text:0004B7A4 .text:0004B7A4 ; =============== S U B R O U T I N E ======================================= .text:0004B7A4 .text:0004B7A4 ; Attributes: bp-based frame .text:0004B7A4 .text:0004B7A4 WEAK argz_create_sep .text:0004B7A4 argz_create_sep ; CODE XREF: setlocale+94p .text:0004B7A4 MOV R12, SP .text:0004B7A8 STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:0004B7AC SUB R11, R12, #4 .text:0004B7B0 MOV R7, R0 .text:0004B7B4 MOV R8, R1 .text:0004B7B8 MOV R5, R2 .text:0004B7BC MOV R6, R3 .text:0004B7C0 BL strlen .text:0004B7C4 ADD R4, R0, #1 .text:0004B7C8 CMP R4, #1 .text:0004B7CC BLS loc_4B850 .text:0004B7D0 MOV R0, R4 .text:0004B7D4 BL malloc .text:0004B7D8 CMP R0, #0 .text:0004B7DC STR R0, [R5] .text:0004B7E0 MOVEQ R0, #0xC .text:0004B7E4 LDMEQDB R11, {R4-R8,R11,SP,PC} .text:0004B7E8 MOV R2, R7 .text:0004B7EC MOV R1, #0 .text:0004B7F0 .text:0004B7F0 loc_4B7F0 ; CODE XREF: argz_create_sep+88j .text:0004B7F0 LDRB R3, [R2] .text:0004B7F4 CMP R3, R8 .text:0004B7F8 BNE loc_4B820 .text:0004B7FC LDR R3, [R5] .text:0004B800 CMP R0, R3 .text:0004B804 BLS loc_4B818 .text:0004B808 LDRB R3, [R0,#-1] .text:0004B80C CMP R3, #0 .text:0004B810 STRNEB R1, [R0],#1 .text:0004B814 BNE loc_4B824 .text:0004B818 .text:0004B818 loc_4B818 ; CODE XREF: argz_create_sep+60j .text:0004B818 SUB R4, R4, #1 .text:0004B81C B loc_4B824 .text:0004B820 ; --------------------------------------------------------------------------- .text:0004B820 .text:0004B820 loc_4B820 ; CODE XREF: argz_create_sep+54j .text:0004B820 STRB R3, [R0],#1 .text:0004B824 .text:0004B824 loc_4B824 ; CODE XREF: argz_create_sep+70j .text:0004B824 ; argz_create_sep+78j .text:0004B824 LDRB R3, [R2],#1 .text:0004B828 CMP R3, #0 .text:0004B82C BNE loc_4B7F0 .text:0004B830 CMP R4, #0 .text:0004B834 BNE loc_4B848 .text:0004B838 LDR R0, [R5] .text:0004B83C BL free .text:0004B840 STR R4, [R5] .text:0004B844 STR R4, [R6] .text:0004B848 .text:0004B848 loc_4B848 ; CODE XREF: argz_create_sep+90j .text:0004B848 STR R4, [R6] .text:0004B84C B loc_4B85C .text:0004B850 ; --------------------------------------------------------------------------- .text:0004B850 .text:0004B850 loc_4B850 ; CODE XREF: argz_create_sep+28j .text:0004B850 MOV R3, #0 .text:0004B854 STR R3, [R5] .text:0004B858 STR R3, [R6] .text:0004B85C .text:0004B85C loc_4B85C ; CODE XREF: argz_create_sep+A8j .text:0004B85C MOV R0, #0 .text:0004B860 LDMDB R11, {R4-R8,R11,SP,PC} .text:0004B860 ; End of function argz_create_sep .text:0004B860 .text:0004B864 .text:0004B864 ; =============== S U B R O U T I N E ======================================= .text:0004B864 .text:0004B864 ; Attributes: bp-based frame .text:0004B864 .text:0004B864 WEAK argz_add_sep .text:0004B864 argz_add_sep ; CODE XREF: setlocale+B0p .text:0004B864 MOV R12, SP ; Alternative name is '__argz_add_sep' .text:0004B868 STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:0004B86C SUB R11, R12, #4 .text:0004B870 MOV R5, R0 .text:0004B874 MOV R7, R2 .text:0004B878 MOV R0, R7 .text:0004B87C MOV R6, R1 .text:0004B880 MOV R8, R3 .text:0004B884 BL strlen .text:0004B888 ADD R4, R0, #1 .text:0004B88C CMP R4, #1 .text:0004B890 BLS loc_4B910 .text:0004B894 LDR R1, [R6] .text:0004B898 LDR R0, [R5] .text:0004B89C ADD R1, R1, R4 .text:0004B8A0 BL realloc .text:0004B8A4 CMP R0, #0 .text:0004B8A8 STR R0, [R5] .text:0004B8AC MOVEQ R0, #0xC .text:0004B8B0 LDMEQDB R11, {R4-R8,R11,SP,PC} .text:0004B8B4 MOV R2, R7 .text:0004B8B8 LDR R3, [R6] .text:0004B8BC MOV R1, #0 .text:0004B8C0 ADD R0, R0, R3 .text:0004B8C4 .text:0004B8C4 loc_4B8C4 ; CODE XREF: argz_add_sep+9Cj .text:0004B8C4 LDRB R3, [R2] .text:0004B8C8 CMP R3, R8 .text:0004B8CC BNE loc_4B8F4 .text:0004B8D0 LDR R3, [R5] .text:0004B8D4 CMP R0, R3 .text:0004B8D8 BLS loc_4B8EC .text:0004B8DC LDRB R3, [R0,#-1] .text:0004B8E0 CMP R3, #0 .text:0004B8E4 STRNEB R1, [R0],#1 .text:0004B8E8 BNE loc_4B8F8 .text:0004B8EC .text:0004B8EC loc_4B8EC ; CODE XREF: argz_add_sep+74j .text:0004B8EC SUB R4, R4, #1 .text:0004B8F0 B loc_4B8F8 .text:0004B8F4 ; --------------------------------------------------------------------------- .text:0004B8F4 .text:0004B8F4 loc_4B8F4 ; CODE XREF: argz_add_sep+68j .text:0004B8F4 STRB R3, [R0],#1 .text:0004B8F8 .text:0004B8F8 loc_4B8F8 ; CODE XREF: argz_add_sep+84j .text:0004B8F8 ; argz_add_sep+8Cj .text:0004B8F8 LDRB R3, [R2],#1 .text:0004B8FC CMP R3, #0 .text:0004B900 BNE loc_4B8C4 .text:0004B904 LDR R3, [R6] .text:0004B908 ADD R3, R3, R4 .text:0004B90C STR R3, [R6] .text:0004B910 .text:0004B910 loc_4B910 ; CODE XREF: argz_add_sep+2Cj .text:0004B910 MOV R0, #0 .text:0004B914 LDMDB R11, {R4-R8,R11,SP,PC} .text:0004B914 ; End of function argz_add_sep .text:0004B914 .text:0004B918 .text:0004B918 ; =============== S U B R O U T I N E ======================================= .text:0004B918 .text:0004B918 ; Attributes: bp-based frame .text:0004B918 .text:0004B918 EXPORT wcschr .text:0004B918 wcschr ; CODE XREF: _nl_init_era_entries+1B4p .text:0004B918 ; _nl_init_era_entries+1D4p ... .text:0004B918 MOV R12, SP .text:0004B91C STMFD SP!, {R11,R12,LR,PC} .text:0004B920 SUB R11, R12, #4 .text:0004B924 MOV R3, R0 .text:0004B928 .text:0004B928 loc_4B928 ; CODE XREF: wcschr+24j .text:0004B928 LDR R0, [R3] .text:0004B92C CMP R0, R1 .text:0004B930 BEQ loc_4B944 .text:0004B934 ADD R3, R3, #4 .text:0004B938 CMP R0, #0 .text:0004B93C BNE loc_4B928 .text:0004B940 LDMDB R11, {R11,SP,PC} .text:0004B944 ; --------------------------------------------------------------------------- .text:0004B944 .text:0004B944 loc_4B944 ; CODE XREF: wcschr+18j .text:0004B944 MOV R0, R3 .text:0004B948 LDMDB R11, {R11,SP,PC} .text:0004B948 ; End of function wcschr .text:0004B948 .text:0004B94C .text:0004B94C ; =============== S U B R O U T I N E ======================================= .text:0004B94C .text:0004B94C ; Attributes: bp-based frame .text:0004B94C .text:0004B94C WEAK mbsinit .text:0004B94C mbsinit ; CODE XREF: mbrtowc+134p .text:0004B94C ; mbsrtowcs+1E8p ... .text:0004B94C MOV R12, SP .text:0004B950 STMFD SP!, {R11,R12,LR,PC} .text:0004B954 SUB R11, R12, #4 .text:0004B958 MOV R2, #0 .text:0004B95C CMP R0, #0 .text:0004B960 BEQ loc_4B970 .text:0004B964 LDR R3, [R0] .text:0004B968 CMP R3, R2 .text:0004B96C BNE loc_4B974 .text:0004B970 .text:0004B970 loc_4B970 ; CODE XREF: mbsinit+14j .text:0004B970 MOV R2, #1 .text:0004B974 .text:0004B974 loc_4B974 ; CODE XREF: mbsinit+20j .text:0004B974 MOV R0, R2 .text:0004B978 LDMDB R11, {R11,SP,PC} .text:0004B978 ; End of function mbsinit .text:0004B978 .text:0004B97C .text:0004B97C ; =============== S U B R O U T I N E ======================================= .text:0004B97C .text:0004B97C ; Attributes: bp-based frame .text:0004B97C .text:0004B97C EXPORT __tzstring .text:0004B97C __tzstring ; CODE XREF: tzset_internal+220p .text:0004B97C ; tzset_internal+464p ... .text:0004B97C MOV R12, SP .text:0004B980 STMFD SP!, {R4-R8,R10-R12,LR,PC} .text:0004B984 SUB R11, R12, #4 .text:0004B988 MOV R8, R0 .text:0004B98C BL strlen .text:0004B990 LDR R3, =tzstring_list .text:0004B994 MOV R7, R0 .text:0004B998 LDR R6, [R3] .text:0004B99C MOV R10, R3 .text:0004B9A0 SUBS R5, R6, #0 .text:0004B9A4 BEQ loc_4B9E4 .text:0004B9A8 .text:0004B9A8 loc_4B9A8 ; CODE XREF: __tzstring+64j .text:0004B9A8 LDR R3, [R5,#4] .text:0004B9AC CMP R7, R3 .text:0004B9B0 BHI loc_4B9D4 .text:0004B9B4 MOV R0, R8 .text:0004B9B8 RSB R3, R7, R3 .text:0004B9BC ADD R3, R3, #8 .text:0004B9C0 ADD R4, R5, R3 .text:0004B9C4 MOV R1, R4 .text:0004B9C8 BL strcmp .text:0004B9CC CMP R0, #0 .text:0004B9D0 BEQ loc_4BA24 .text:0004B9D4 .text:0004B9D4 loc_4B9D4 ; CODE XREF: __tzstring+34j .text:0004B9D4 MOV R6, R5 .text:0004B9D8 LDR R5, [R6] .text:0004B9DC CMP R5, #0 .text:0004B9E0 BNE loc_4B9A8 .text:0004B9E4 .text:0004B9E4 loc_4B9E4 ; CODE XREF: __tzstring+28j .text:0004B9E4 ADD R0, R7, #9 .text:0004B9E8 BL malloc .text:0004B9EC SUBS R5, R0, #0 .text:0004B9F0 MOVEQ R0, R5 .text:0004B9F4 LDMEQDB R11, {R4-R8,R10,R11,SP,PC} .text:0004B9F8 MOV R3, #0 .text:0004B9FC STMIA R5, {R3,R7} .text:0004BA00 ADD R4, R5, #8 .text:0004BA04 MOV R0, R4 .text:0004BA08 MOV R1, R8 .text:0004BA0C BL strcpy .text:0004BA10 CMP R6, #0 .text:0004BA14 MOV R0, R4 .text:0004BA18 BEQ loc_4BA2C .text:0004BA1C STR R5, [R6] .text:0004BA20 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0004BA24 ; --------------------------------------------------------------------------- .text:0004BA24 .text:0004BA24 loc_4BA24 ; CODE XREF: __tzstring+54j .text:0004BA24 MOV R0, R4 .text:0004BA28 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0004BA2C ; --------------------------------------------------------------------------- .text:0004BA2C .text:0004BA2C loc_4BA2C ; CODE XREF: __tzstring+9Cj .text:0004BA2C STR R5, [R10] .text:0004BA30 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0004BA30 ; End of function __tzstring .text:0004BA30 .text:0004BA30 ; --------------------------------------------------------------------------- .text:0004BA34 off_4BA34 DCD tzstring_list ; DATA XREF: __tzstring+14r .text:0004BA38 .text:0004BA38 ; =============== S U B R O U T I N E ======================================= .text:0004BA38 .text:0004BA38 ; Attributes: bp-based frame .text:0004BA38 .text:0004BA38 tzset_internal ; CODE XREF: __tzname_max+28p .text:0004BA38 ; tzset+28p ... .text:0004BA38 .text:0004BA38 var_44 = -0x44 .text:0004BA38 var_40 = -0x40 .text:0004BA38 var_3C = -0x3C .text:0004BA38 var_38 = -0x38 .text:0004BA38 var_34 = -0x34 .text:0004BA38 var_2E = -0x2E .text:0004BA38 var_2D = -0x2D .text:0004BA38 var_2C = -0x2C .text:0004BA38 .text:0004BA38 MOV R12, SP .text:0004BA3C STMFD SP!, {R4-R12,LR,PC} .text:0004BA40 SUB R11, R12, #4 .text:0004BA44 LDR R2, =is_initialized.126 .text:0004BA48 SUB SP, SP, #0x1C .text:0004BA4C LDR R3, [R2] .text:0004BA50 CMP R0, #0 .text:0004BA54 MOVNE R0, #0 .text:0004BA58 MOVEQ R0, #1 .text:0004BA5C CMP R3, #0 .text:0004BA60 MOVEQ R0, #0 .text:0004BA64 CMP R0, #0 .text:0004BA68 BNE locret_4C41C .text:0004BA6C MOV R3, #1 .text:0004BA70 STR R3, [R2] .text:0004BA74 LDR R0, =dword_61E2C .text:0004BA78 BL getenv .text:0004BA7C SUBS R8, R0, #0 .text:0004BA80 LDREQ R8, =byte_61E30 .text:0004BA84 BEQ loc_4BA98 .text:0004BA88 LDRB R2, [R8] .text:0004BA8C LDR R3, =aUniversal ; "Universal" .text:0004BA90 CMP R2, #0 .text:0004BA94 MOVEQ R8, R3 .text:0004BA98 .text:0004BA98 loc_4BA98 ; CODE XREF: tzset_internal+4Cj .text:0004BA98 CMP R8, #0 .text:0004BA9C BEQ loc_4BAB0 .text:0004BAA0 MOV R3, R8 .text:0004BAA4 LDRB R2, [R3],#1 .text:0004BAA8 CMP R2, #0x3A .text:0004BAAC MOVEQ R8, R3 .text:0004BAB0 .text:0004BAB0 loc_4BAB0 ; CODE XREF: tzset_internal+64j .text:0004BAB0 LDR R4, =old_tz .text:0004BAB4 LDR R1, [R4] .text:0004BAB8 CMP R1, #0 .text:0004BABC CMPNE R8, #0 .text:0004BAC0 BEQ loc_4BAD4 .text:0004BAC4 MOV R0, R8 .text:0004BAC8 BL strcmp .text:0004BACC CMP R0, #0 .text:0004BAD0 BEQ locret_4C41C .text:0004BAD4 .text:0004BAD4 loc_4BAD4 ; CODE XREF: tzset_internal+88j .text:0004BAD4 LDR R3, =tz_rules .text:0004BAD8 MOV R2, #0 .text:0004BADC STR R2, [R3] .text:0004BAE0 LDR R1, =old_tz .text:0004BAE4 LDR R0, [R1] .text:0004BAE8 MOV R10, R3 .text:0004BAEC STR R2, [R3,#(dword_7A184 - 0x7A164)] .text:0004BAF0 CMP R0, R2 .text:0004BAF4 BEQ loc_4BAFC .text:0004BAF8 BL free .text:0004BAFC .text:0004BAFC loc_4BAFC ; CODE XREF: tzset_internal+BCj .text:0004BAFC CMP R8, #0 .text:0004BB00 BEQ loc_4BB10 .text:0004BB04 MOV R0, R8 .text:0004BB08 BL strdup .text:0004BB0C B loc_4BB14 .text:0004BB10 ; --------------------------------------------------------------------------- .text:0004BB10 .text:0004BB10 loc_4BB10 ; CODE XREF: tzset_internal+C8j .text:0004BB10 MOV R0, R8 .text:0004BB14 .text:0004BB14 loc_4BB14 ; CODE XREF: tzset_internal+D4j .text:0004BB14 STR R0, [R4] .text:0004BB18 MOV R0, R8 .text:0004BB1C MOV R1, #0 .text:0004BB20 MOV R2, R1 .text:0004BB24 BL __tzfile_read .text:0004BB28 LDR R2, =__use_tzfile .text:0004BB2C LDR R3, [R2] .text:0004BB30 CMP R3, #0 .text:0004BB34 BNE locret_4C41C .text:0004BB38 CMP R8, #0 .text:0004BB3C BEQ loc_4BB68 .text:0004BB40 LDRB R3, [R8] .text:0004BB44 CMP R3, #0 .text:0004BB48 BEQ loc_4BB68 .text:0004BB4C LDR R1, =byte_61E30 .text:0004BB50 CMP R1, #0 .text:0004BB54 BEQ loc_4BBDC .text:0004BB58 MOV R0, R8 .text:0004BB5C BL strcmp .text:0004BB60 CMP R0, #0 .text:0004BB64 BNE loc_4BBDC .text:0004BB68 .text:0004BB68 loc_4BB68 ; CODE XREF: tzset_internal+104j .text:0004BB68 ; tzset_internal+110j .text:0004BB68 MOV R2, #0 .text:0004BB6C STR R2, [R10,#0x24] .text:0004BB70 STR R2, [R10,#4] .text:0004BB74 MOV R3, R2 .text:0004BB78 STRB R3, [R10,#0xC] .text:0004BB7C STRB R2, [R10,#0xD] .text:0004BB80 STRB R3, [R10,#0xA] .text:0004BB84 STRB R3, [R10,#0xB] .text:0004BB88 STRB R3, [R10,#8] .text:0004BB8C STRB R3, [R10,#9] .text:0004BB90 STRB R3, [R10,#0x2C] .text:0004BB94 STRB R3, [R10,#0x2D] .text:0004BB98 STRB R3, [R10,#0x2A] .text:0004BB9C STRB R3, [R10,#0x2B] .text:0004BBA0 STRB R3, [R10,#0x28] .text:0004BBA4 STRB R3, [R10,#0x29] .text:0004BBA8 STR R2, [R10,#0x30] .text:0004BBAC STR R2, [R10,#0x10] .text:0004BBB0 STR R2, [R10,#0x34] .text:0004BBB4 STR R2, [R10,#0x14] .text:0004BBB8 MOV R3, 0xFFFFFFFF .text:0004BBBC STR R3, [R10,#0x38] .text:0004BBC0 STR R3, [R10,#0x18] .text:0004BBC4 STR R2, [R10,#0x3C] .text:0004BBC8 STR R2, [R10,#0x1C] .text:0004BBCC LDR R3, =aUtc ; "UTC" .text:0004BBD0 STR R3, [R10,#0x20] .text:0004BBD4 STR R3, [R10] .text:0004BBD8 B locret_4C41C .text:0004BBDC ; --------------------------------------------------------------------------- .text:0004BBDC .text:0004BBDC loc_4BBDC ; CODE XREF: tzset_internal+11Cj .text:0004BBDC ; tzset_internal+12Cj .text:0004BBDC MOV R0, R10 .text:0004BBE0 MOV R1, #0 .text:0004BBE4 MOV R2, #0x40 .text:0004BBE8 BL memset .text:0004BBEC LDR R3, =dword_61E70 .text:0004BBF0 STR R3, [R10,#0x20] .text:0004BBF4 STR R3, [R10] .text:0004BBF8 MOV R0, R8 .text:0004BBFC BL strlen .text:0004BC00 MOV R2, R0 .text:0004BC04 ADD R3, R2, #4 .text:0004BC08 BIC R3, R3, #3 .text:0004BC0C RSB SP, R3, SP .text:0004BC10 ADD R0, SP, #0x44+var_3C .text:0004BC14 MOV R1, R8 .text:0004BC18 ADD R2, R2, #1 .text:0004BC1C BL memcpy .text:0004BC20 MOV R9, R0 .text:0004BC24 MOV R0, R8 .text:0004BC28 LDR R4, =a09 ; "%[^0-9,+-]" .text:0004BC2C MOV R2, R9 .text:0004BC30 MOV R1, R4 .text:0004BC34 BL sscanf .text:0004BC38 CMP R0, #1 .text:0004BC3C BNE locret_4C41C .text:0004BC40 MOV R0, R9 .text:0004BC44 BL strlen .text:0004BC48 MOV R4, R0 .text:0004BC4C CMP R4, #2 .text:0004BC50 BLS locret_4C41C .text:0004BC54 MOV R0, R9 .text:0004BC58 BL __tzstring .text:0004BC5C STR R0, [R10] .text:0004BC60 LDRB R3, [R8,R4]! .text:0004BC64 AND R0, R3, #0xFF .text:0004BC68 CMP R0, #0 .text:0004BC6C BEQ locret_4C41C .text:0004BC70 CMP R0, #0x2B .text:0004BC74 CMPNE R0, #0x2D .text:0004BC78 BEQ loc_4BC9C .text:0004BC7C LDR R2, =__ctype_b .text:0004BC80 LDRB R3, [R8] .text:0004BC84 LDR R1, [R2] .text:0004BC88 MOV R3, R3,LSL#1 .text:0004BC8C ADD R3, R3, R1 .text:0004BC90 LDRB R2, [R3,#1] .text:0004BC94 TST R2, #8 .text:0004BC98 BEQ locret_4C41C .text:0004BC9C .text:0004BC9C loc_4BC9C ; CODE XREF: tzset_internal+240j .text:0004BC9C CMP R0, #0x2B .text:0004BCA0 CMPNE R0, #0x2D .text:0004BCA4 BNE loc_4BCBC .text:0004BCA8 ADD R8, R8, #1 .text:0004BCAC CMP R0, #0x2D .text:0004BCB0 MOVNE R3, 0xFFFFFFFF .text:0004BCB4 MOVEQ R3, #1 .text:0004BCB8 B loc_4BCC0 .text:0004BCBC ; --------------------------------------------------------------------------- .text:0004BCBC .text:0004BCBC loc_4BCBC ; CODE XREF: tzset_internal+26Cj .text:0004BCBC MOV R3, 0xFFFFFFFF .text:0004BCC0 .text:0004BCC0 loc_4BCC0 ; CODE XREF: tzset_internal+280j .text:0004BCC0 STR R3, [R10,#0x14] .text:0004BCC4 SUB R7, R11, #-var_2E .text:0004BCC8 STR R7, [SP,#0x44+var_44] .text:0004BCCC MOV R0, R8 .text:0004BCD0 SUB R6, R11, #-(var_2C+2) .text:0004BCD4 MOV R2, R6 .text:0004BCD8 SUB R5, R11, #-var_2C .text:0004BCDC LDR R4, =aHuHuHu ; "%hu:%hu:%hu" .text:0004BCE0 MOV R3, R5 .text:0004BCE4 MOV R1, R4 .text:0004BCE8 BL sscanf .text:0004BCEC CMP R0, #2 .text:0004BCF0 BEQ loc_4BD1C .text:0004BCF4 BGT loc_4BD04 .text:0004BCF8 CMP R0, #1 .text:0004BCFC BEQ loc_4BD10 .text:0004BD00 B locret_4C41C .text:0004BD04 ; --------------------------------------------------------------------------- .text:0004BD04 .text:0004BD04 loc_4BD04 ; CODE XREF: tzset_internal+2BCj .text:0004BD04 CMP R0, #3 .text:0004BD08 BEQ loc_4BD28 .text:0004BD0C B locret_4C41C .text:0004BD10 ; --------------------------------------------------------------------------- .text:0004BD10 .text:0004BD10 loc_4BD10 ; CODE XREF: tzset_internal+2C4j .text:0004BD10 MOV R3, #0 .text:0004BD14 STRB R3, [R11,#var_2C] .text:0004BD18 STRB R3, [R11,#var_2C+1] .text:0004BD1C .text:0004BD1C loc_4BD1C ; CODE XREF: tzset_internal+2B8j .text:0004BD1C MOV R3, #0 .text:0004BD20 STRB R3, [R11,#var_2E] .text:0004BD24 STRB R3, [R11,#var_2D] .text:0004BD28 .text:0004BD28 loc_4BD28 ; CODE XREF: tzset_internal+2D0j .text:0004BD28 LDR R3, [R11,#-0x30] .text:0004BD2C MOV R3, R3,LSR#16 .text:0004BD30 CMP R3, #0x3A .text:0004BD34 LDRLSB R2, [R11,#var_2E] .text:0004BD38 LDRLSB R3, [R11,#var_2D] .text:0004BD3C ORRLS R1, R2, R3,LSL#8 .text:0004BD40 MOVHI R1, #0x3B .text:0004BD44 LDR R2, [R11,#var_2C] .text:0004BD48 MOV R3, R2,LSL#16 .text:0004BD4C CMP R3, #0x3A0000 .text:0004BD50 MOV R0, R2 .text:0004BD54 BHI loc_4BD70 .text:0004BD58 LDRB R3, [R11,#var_2C] .text:0004BD5C LDRB R2, [R11,#var_2C+1] .text:0004BD60 ORR R3, R3, R2,LSL#8 .text:0004BD64 RSB R3, R3, R3,LSL#4 .text:0004BD68 ADD R1, R1, R3,LSL#2 .text:0004BD6C B loc_4BD78 .text:0004BD70 ; --------------------------------------------------------------------------- .text:0004BD70 .text:0004BD70 loc_4BD70 ; CODE XREF: tzset_internal+31Cj .text:0004BD70 ADD R1, R1, #0xDD0 .text:0004BD74 ADD R1, R1, #4 .text:0004BD78 .text:0004BD78 loc_4BD78 ; CODE XREF: tzset_internal+334j .text:0004BD78 MOV R3, R0,LSR#16 .text:0004BD7C CMP R3, #0x16 .text:0004BD80 LDR R0, [R10,#0x14] .text:0004BD84 BHI loc_4BDD4 .text:0004BD88 LDRB R3, [R11,#var_2C+2] .text:0004BD8C LDRB R2, [R11,#var_2C+3] .text:0004BD90 ORR R3, R3, R2,LSL#8 .text:0004BD94 RSB R3, R3, R3,LSL#4 .text:0004BD98 RSB R3, R3, R3,LSL#4 .text:0004BD9C ADD R3, R1, R3,LSL#4 .text:0004BDA0 B loc_4BDDC .text:0004BDA0 ; --------------------------------------------------------------------------- .text:0004BDA4 off_4BDA4 DCD is_initialized.126 ; DATA XREF: tzset_internal+Cr .text:0004BDA8 off_4BDA8 DCD dword_61E2C ; DATA XREF: tzset_internal+3Cr .text:0004BDAC off_4BDAC DCD byte_61E30 ; DATA XREF: tzset_internal+48r .text:0004BDAC ; tzset_internal+114r .text:0004BDB0 off_4BDB0 DCD aUniversal ; DATA XREF: tzset_internal+54r .text:0004BDB0 ; "Universal" .text:0004BDB4 off_4BDB4 DCD old_tz ; DATA XREF: tzset_internal:loc_4BAB0r .text:0004BDB4 ; tzset_internal+A8r .text:0004BDB8 off_4BDB8 DCD tz_rules ; DATA XREF: tzset_internal:loc_4BAD4r .text:0004BDBC off_4BDBC DCD __use_tzfile ; DATA XREF: tzset_internal+F0r .text:0004BDC0 off_4BDC0 DCD aUtc ; DATA XREF: tzset_internal+194r .text:0004BDC0 ; "UTC" .text:0004BDC4 off_4BDC4 DCD dword_61E70 ; DATA XREF: tzset_internal+1B4r .text:0004BDC8 off_4BDC8 DCD a09 ; DATA XREF: tzset_internal+1F0r .text:0004BDC8 ; "%[^0-9,+-]" .text:0004BDCC off_4BDCC DCD __ctype_b ; DATA XREF: tzset_internal+244r .text:0004BDD0 off_4BDD0 DCD aHuHuHu ; DATA XREF: tzset_internal+2A4r .text:0004BDD0 ; "%hu:%hu:%hu" .text:0004BDD4 ; --------------------------------------------------------------------------- .text:0004BDD4 .text:0004BDD4 loc_4BDD4 ; CODE XREF: tzset_internal+34Cj .text:0004BDD4 ADD R3, R1, #0x14000 .text:0004BDD8 ADD R3, R3, #0x370 .text:0004BDDC .text:0004BDDC loc_4BDDC ; CODE XREF: tzset_internal+368j .text:0004BDDC MUL R3, R0, R3 .text:0004BDE0 STR R3, [R10,#0x14] .text:0004BDE4 LDR R2, =__ctype_b .text:0004BDE8 MOV R4, #0 .text:0004BDEC LDR R12, [R2] .text:0004BDF0 .text:0004BDF0 loc_4BDF0 ; CODE XREF: tzset_internal+414j .text:0004BDF0 LDRB R3, [R8] .text:0004BDF4 MOV R3, R3,LSL#1 .text:0004BDF8 ADD R3, R3, R12 .text:0004BDFC LDRB R2, [R3,#1] .text:0004BE00 ADD R0, R4, #1 .text:0004BE04 TST R2, #8 .text:0004BE08 BEQ loc_4BE2C .text:0004BE0C LDR R3, =__ctype_b .text:0004BE10 LDR R1, [R3] .text:0004BE14 .text:0004BE14 loc_4BE14 ; CODE XREF: tzset_internal+3F0j .text:0004BE14 LDRB R3, [R8,#1]! .text:0004BE18 MOV R3, R3,LSL#1 .text:0004BE1C ADD R3, R3, R1 .text:0004BE20 LDRB R2, [R3,#1] .text:0004BE24 TST R2, #8 .text:0004BE28 BNE loc_4BE14 .text:0004BE2C .text:0004BE2C loc_4BE2C ; CODE XREF: tzset_internal+3D0j .text:0004BE2C CMP R4, #1 .text:0004BE30 BHI loc_4BE44 .text:0004BE34 MOV R3, R8 .text:0004BE38 LDRB R2, [R3],#1 .text:0004BE3C CMP R2, #0x3A .text:0004BE40 MOVEQ R8, R3 .text:0004BE44 .text:0004BE44 loc_4BE44 ; CODE XREF: tzset_internal+3F8j .text:0004BE44 MOV R4, R0 .text:0004BE48 CMP R4, #2 .text:0004BE4C BLS loc_4BDF0 .text:0004BE50 LDRB R3, [R8] .text:0004BE54 CMP R3, #0 .text:0004BE58 BEQ loc_4C08C .text:0004BE5C MOV R0, R9 .text:0004BE60 BL strlen .text:0004BE64 ADD R3, R9, R0 .text:0004BE68 MOV R0, R8 .text:0004BE6C ADD R5, R3, #1 .text:0004BE70 LDR R1, =a09 ; "%[^0-9,+-]" .text:0004BE74 MOV R2, R5 .text:0004BE78 BL sscanf .text:0004BE7C CMP R0, #1 .text:0004BE80 BNE loc_4C0A0 .text:0004BE84 MOV R0, R5 .text:0004BE88 BL strlen .text:0004BE8C MOV R4, R0 .text:0004BE90 CMP R4, #2 .text:0004BE94 BLS loc_4C0A0 .text:0004BE98 MOV R0, R5 .text:0004BE9C BL __tzstring .text:0004BEA0 STR R0, [R10,#0x20] .text:0004BEA4 LDRB R3, [R8,R4]! .text:0004BEA8 AND R3, R3, #0xFF .text:0004BEAC CMP R3, #0x2B .text:0004BEB0 CMPNE R3, #0x2D .text:0004BEB4 BNE loc_4BECC .text:0004BEB8 ADD R8, R8, #1 .text:0004BEBC CMP R3, #0x2D .text:0004BEC0 MOVNE R3, 0xFFFFFFFF .text:0004BEC4 MOVEQ R3, #1 .text:0004BEC8 B loc_4BED0 .text:0004BECC ; --------------------------------------------------------------------------- .text:0004BECC .text:0004BECC loc_4BECC ; CODE XREF: tzset_internal+47Cj .text:0004BECC MOV R3, 0xFFFFFFFF .text:0004BED0 .text:0004BED0 loc_4BED0 ; CODE XREF: tzset_internal+490j .text:0004BED0 STR R3, [R10,#0x34] .text:0004BED4 SUB R1, R11, #-var_2E .text:0004BED8 STR R1, [SP,#0x44+var_44] .text:0004BEDC MOV R0, R8 .text:0004BEE0 SUB R2, R11, #-(var_2C+2) .text:0004BEE4 LDR R1, =aHuHuHu ; "%hu:%hu:%hu" .text:0004BEE8 SUB R3, R11, #-var_2C .text:0004BEEC BL sscanf .text:0004BEF0 CMP R0, #2 .text:0004BEF4 BEQ loc_4BF28 .text:0004BEF8 BGT loc_4BF08 .text:0004BEFC CMP R0, #1 .text:0004BF00 BEQ loc_4BF1C .text:0004BF04 B loc_4BF10 .text:0004BF08 ; --------------------------------------------------------------------------- .text:0004BF08 .text:0004BF08 loc_4BF08 ; CODE XREF: tzset_internal+4C0j .text:0004BF08 CMP R0, #3 .text:0004BF0C BEQ loc_4BF34 .text:0004BF10 .text:0004BF10 loc_4BF10 ; CODE XREF: tzset_internal+4CCj .text:0004BF10 LDR R3, [R10,#0x14] .text:0004BF14 ADD R3, R3, #0xE10 .text:0004BF18 B loc_4BFBC .text:0004BF1C ; --------------------------------------------------------------------------- .text:0004BF1C .text:0004BF1C loc_4BF1C ; CODE XREF: tzset_internal+4C8j .text:0004BF1C MOV R3, #0 .text:0004BF20 STRB R3, [R11,#var_2C] .text:0004BF24 STRB R3, [R11,#var_2C+1] .text:0004BF28 .text:0004BF28 loc_4BF28 ; CODE XREF: tzset_internal+4BCj .text:0004BF28 MOV R3, #0 .text:0004BF2C STRB R3, [R11,#var_2E] .text:0004BF30 STRB R3, [R11,#var_2D] .text:0004BF34 .text:0004BF34 loc_4BF34 ; CODE XREF: tzset_internal+4D4j .text:0004BF34 LDR R3, [R11,#-0x30] .text:0004BF38 MOV R3, R3,LSR#16 .text:0004BF3C CMP R3, #0x3A .text:0004BF40 LDRLSB R2, [R11,#var_2E] .text:0004BF44 LDRLSB R3, [R11,#var_2D] .text:0004BF48 ORRLS R1, R2, R3,LSL#8 .text:0004BF4C MOVHI R1, #0x3B .text:0004BF50 LDR R2, [R11,#var_2C] .text:0004BF54 MOV R3, R2,LSL#16 .text:0004BF58 CMP R3, #0x3A0000 .text:0004BF5C MOV R0, R2 .text:0004BF60 BHI loc_4BF7C .text:0004BF64 LDRB R3, [R11,#var_2C] .text:0004BF68 LDRB R2, [R11,#var_2C+1] .text:0004BF6C ORR R3, R3, R2,LSL#8 .text:0004BF70 RSB R3, R3, R3,LSL#4 .text:0004BF74 ADD R1, R1, R3,LSL#2 .text:0004BF78 B loc_4BF84 .text:0004BF7C ; --------------------------------------------------------------------------- .text:0004BF7C .text:0004BF7C loc_4BF7C ; CODE XREF: tzset_internal+528j .text:0004BF7C ADD R1, R1, #0xDD0 .text:0004BF80 ADD R1, R1, #4 .text:0004BF84 .text:0004BF84 loc_4BF84 ; CODE XREF: tzset_internal+540j .text:0004BF84 MOV R3, R0,LSR#16 .text:0004BF88 CMP R3, #0x16 .text:0004BF8C LDR R0, [R10,#0x34] .text:0004BF90 BHI loc_4BFB0 .text:0004BF94 LDRB R3, [R11,#var_2C+2] .text:0004BF98 LDRB R2, [R11,#var_2C+3] .text:0004BF9C ORR R3, R3, R2,LSL#8 .text:0004BFA0 RSB R3, R3, R3,LSL#4 .text:0004BFA4 RSB R3, R3, R3,LSL#4 .text:0004BFA8 ADD R3, R1, R3,LSL#4 .text:0004BFAC B loc_4BFB8 .text:0004BFB0 ; --------------------------------------------------------------------------- .text:0004BFB0 .text:0004BFB0 loc_4BFB0 ; CODE XREF: tzset_internal+558j .text:0004BFB0 ADD R3, R1, #0x14000 .text:0004BFB4 ADD R3, R3, #0x370 .text:0004BFB8 .text:0004BFB8 loc_4BFB8 ; CODE XREF: tzset_internal+574j .text:0004BFB8 MUL R3, R0, R3 .text:0004BFBC .text:0004BFBC loc_4BFBC ; CODE XREF: tzset_internal+4E0j .text:0004BFBC STR R3, [R10,#0x34] .text:0004BFC0 LDR R3, =__ctype_b .text:0004BFC4 MOV R4, #0 .text:0004BFC8 LDR R12, [R3] .text:0004BFCC .text:0004BFCC loc_4BFCC ; CODE XREF: tzset_internal+5F0j .text:0004BFCC LDRB R3, [R8] .text:0004BFD0 MOV R3, R3,LSL#1 .text:0004BFD4 ADD R3, R3, R12 .text:0004BFD8 LDRB R2, [R3,#1] .text:0004BFDC ADD R0, R4, #1 .text:0004BFE0 TST R2, #8 .text:0004BFE4 BEQ loc_4C008 .text:0004BFE8 LDR R2, =__ctype_b .text:0004BFEC LDR R1, [R2] .text:0004BFF0 .text:0004BFF0 loc_4BFF0 ; CODE XREF: tzset_internal+5CCj .text:0004BFF0 LDRB R3, [R8,#1]! .text:0004BFF4 MOV R3, R3,LSL#1 .text:0004BFF8 ADD R3, R3, R1 .text:0004BFFC LDRB R2, [R3,#1] .text:0004C000 TST R2, #8 .text:0004C004 BNE loc_4BFF0 .text:0004C008 .text:0004C008 loc_4C008 ; CODE XREF: tzset_internal+5ACj .text:0004C008 CMP R4, #1 .text:0004C00C BHI loc_4C020 .text:0004C010 MOV R3, R8 .text:0004C014 LDRB R2, [R3],#1 .text:0004C018 CMP R2, #0x3A .text:0004C01C MOVEQ R8, R3 .text:0004C020 .text:0004C020 loc_4C020 ; CODE XREF: tzset_internal+5D4j .text:0004C020 MOV R4, R0 .text:0004C024 CMP R4, #2 .text:0004C028 BLS loc_4BFCC .text:0004C02C LDRB R3, [R8] .text:0004C030 CMP R3, #0 .text:0004C034 BEQ loc_4C04C .text:0004C038 CMP R3, #0x2C .text:0004C03C BNE loc_4C0A0 .text:0004C040 LDRB R3, [R8,#1] .text:0004C044 CMP R3, #0 .text:0004C048 BNE loc_4C0A0 .text:0004C04C .text:0004C04C loc_4C04C ; CODE XREF: tzset_internal+5FCj .text:0004C04C LDR R0, [R10] .text:0004C050 LDR R1, [R10,#0x20] .text:0004C054 LDR R2, [R10,#0x14] .text:0004C058 LDR R3, [R10,#0x34] .text:0004C05C BL __tzfile_default .text:0004C060 LDR R1, =__use_tzfile .text:0004C064 LDR R3, [R1] .text:0004C068 CMP R3, #0 .text:0004C06C BEQ loc_4C0A0 .text:0004C070 LDR R2, =old_tz .text:0004C074 LDR R0, [R2] .text:0004C078 BL free .text:0004C07C LDR R1, =old_tz .text:0004C080 MOV R3, #0 .text:0004C084 STR R3, [R1] .text:0004C088 B locret_4C41C .text:0004C08C ; --------------------------------------------------------------------------- .text:0004C08C .text:0004C08C loc_4C08C ; CODE XREF: tzset_internal+420j .text:0004C08C LDR R3, [R10] .text:0004C090 STR R3, [R10,#0x20] .text:0004C094 LDR R3, [R10,#0x14] .text:0004C098 STR R3, [R10,#0x34] .text:0004C09C B loc_4C404 .text:0004C0A0 ; --------------------------------------------------------------------------- .text:0004C0A0 .text:0004C0A0 loc_4C0A0 ; CODE XREF: tzset_internal+448j .text:0004C0A0 ; tzset_internal+45Cj ... .text:0004C0A0 MOV R2, #0 .text:0004C0A4 STR R2, [R11,#var_3C] .text:0004C0A8 .text:0004C0A8 loc_4C0A8 ; CODE XREF: tzset_internal+9C8j .text:0004C0A8 LDRB R3, [R8] .text:0004C0AC CMP R3, #0x2C .text:0004C0B0 ADDEQ R8, R8, #1 .text:0004C0B4 LDRB R12, [R8] .text:0004C0B8 LDR R3, [R11,#var_3C] .text:0004C0BC CMP R12, #0x4A .text:0004C0C0 ADD R5, R10, R3,LSL#5 .text:0004C0C4 BEQ loc_4C0E8 .text:0004C0C8 LDR R1, =__ctype_b .text:0004C0CC MOV R0, R12 .text:0004C0D0 LDR R3, [R1] .text:0004C0D4 MOV R2, R0,LSL#1 .text:0004C0D8 ADD R2, R2, R3 .text:0004C0DC LDRB R1, [R2,#1] .text:0004C0E0 TST R1, #8 .text:0004C0E4 BEQ loc_4C198 .text:0004C0E8 .text:0004C0E8 loc_4C0E8 ; CODE XREF: tzset_internal+68Cj .text:0004C0E8 CMP R12, #0x4A .text:0004C0EC MOVNE R3, #0 .text:0004C0F0 MOVEQ R3, #1 .text:0004C0F4 CMP R3, #1 .text:0004C0F8 STR R3, [R5,#4] .text:0004C0FC BNE loc_4C120 .text:0004C100 LDR R2, =__ctype_b .text:0004C104 LDRB R3, [R8,#1]! .text:0004C108 LDR R1, [R2] .text:0004C10C MOV R3, R3,LSL#1 .text:0004C110 ADD R3, R3, R1 .text:0004C114 LDRB R2, [R3,#1] .text:0004C118 TST R2, #8 .text:0004C11C BEQ loc_4C404 .text:0004C120 .text:0004C120 loc_4C120 ; CODE XREF: tzset_internal+6C4j .text:0004C120 MOV R0, R8 .text:0004C124 SUB R1, R11, #-var_34 .text:0004C128 MOV R2, #0xA .text:0004C12C MOV R3, #0 .text:0004C130 BL __strtoul_internal .text:0004C134 STRB R0, [R5,#0xC] .text:0004C138 LDR R12, [R11,#var_34] .text:0004C13C MOV R0, R0,ASR#8 .text:0004C140 STRB R0, [R5,#0xD] .text:0004C144 CMP R12, R8 .text:0004C148 BEQ loc_4C404 .text:0004C14C MOV R2, #0x16C .text:0004C150 LDR R3, [R5,#0xC] .text:0004C154 ADD R2, R2, #1 .text:0004C158 MOV R3, R3,LSL#16 .text:0004C15C MOV R1, R3,LSR#16 .text:0004C160 CMP R1, R2 .text:0004C164 BHI loc_4C404 .text:0004C168 LDR R3, [R5,#4] .text:0004C16C CMP R3, #1 .text:0004C170 BNE loc_4C17C .text:0004C174 CMP R1, #0 .text:0004C178 BEQ loc_4C404 .text:0004C17C .text:0004C17C loc_4C17C ; CODE XREF: tzset_internal+738j .text:0004C17C MOV R8, R12 .text:0004C180 B loc_4C280 .text:0004C180 ; --------------------------------------------------------------------------- .text:0004C184 off_4C184 DCD __ctype_b ; DATA XREF: tzset_internal+3ACr .text:0004C184 ; tzset_internal+3D4r ... .text:0004C188 off_4C188 DCD a09 ; DATA XREF: tzset_internal+438r .text:0004C188 ; "%[^0-9,+-]" .text:0004C18C off_4C18C DCD aHuHuHu ; DATA XREF: tzset_internal+4ACr .text:0004C18C ; "%hu:%hu:%hu" .text:0004C190 off_4C190 DCD __use_tzfile ; DATA XREF: tzset_internal+628r .text:0004C194 off_4C194 DCD old_tz ; DATA XREF: tzset_internal+638r .text:0004C194 ; tzset_internal+644r .text:0004C198 ; --------------------------------------------------------------------------- .text:0004C198 .text:0004C198 loc_4C198 ; CODE XREF: tzset_internal+6ACj .text:0004C198 AND R2, R0, #0xFF .text:0004C19C CMP R2, #0x4D .text:0004C1A0 BNE loc_4C21C .text:0004C1A4 MOV R3, #2 .text:0004C1A8 STR R3, [R5,#4] .text:0004C1AC ADD R2, R5, #0xC .text:0004C1B0 STR R2, [SP,#0x44+var_44] .text:0004C1B4 SUB R3, R11, #-var_38 .text:0004C1B8 STR R3, [SP,#0x44+var_40] .text:0004C1BC MOV R0, R8 .text:0004C1C0 ADD R2, R5, #8 .text:0004C1C4 LDR R1, =aMHu_Hu_HuN ; "M%hu.%hu.%hu%n" .text:0004C1C8 ADD R3, R5, #0xA .text:0004C1CC BL sscanf .text:0004C1D0 CMP R0, #3 .text:0004C1D4 BNE loc_4C404 .text:0004C1D8 LDR R2, [R5,#8] .text:0004C1DC MOV R3, R2,LSL#16 .text:0004C1E0 MOVS R3, R3,LSR#16 .text:0004C1E4 BEQ loc_4C404 .text:0004C1E8 CMP R3, #0xC .text:0004C1EC BHI loc_4C404 .text:0004C1F0 MOVS R3, R2,LSR#16 .text:0004C1F4 BEQ loc_4C404 .text:0004C1F8 CMP R3, #5 .text:0004C1FC BHI loc_4C404 .text:0004C200 LDR R3, [R5,#0xC] .text:0004C204 MOV R3, R3,LSL#16 .text:0004C208 CMP R3, #0x60000 .text:0004C20C BHI loc_4C404 .text:0004C210 LDR R3, [R11,#var_38] .text:0004C214 ADD R8, R8, R3 .text:0004C218 B loc_4C280 .text:0004C21C ; --------------------------------------------------------------------------- .text:0004C21C .text:0004C21C loc_4C21C ; CODE XREF: tzset_internal+768j .text:0004C21C CMP R2, #0 .text:0004C220 BNE loc_4C404 .text:0004C224 CMP R5, R10 .text:0004C228 MOV R3, #2 .text:0004C22C STR R3, [R5,#4] .text:0004C230 BNE loc_4C25C .text:0004C234 MOV R3, #4 .text:0004C238 STRB R3, [R10,#8] .text:0004C23C STRB R2, [R10,#9] .text:0004C240 MOV R3, #1 .text:0004C244 STRB R3, [R10,#0xA] .text:0004C248 STRB R2, [R10,#0xB] .text:0004C24C MOV R3, R2 .text:0004C250 STRB R3, [R10,#0xC] .text:0004C254 STRB R3, [R10,#0xD] .text:0004C258 B loc_4C280 .text:0004C25C ; --------------------------------------------------------------------------- .text:0004C25C .text:0004C25C loc_4C25C ; CODE XREF: tzset_internal+7F8j .text:0004C25C MOV R3, #0xA .text:0004C260 STRB R3, [R5,#8] .text:0004C264 STRB R2, [R5,#9] .text:0004C268 MOV R3, #5 .text:0004C26C STRB R3, [R5,#0xA] .text:0004C270 STRB R2, [R5,#0xB] .text:0004C274 MOV R3, R2 .text:0004C278 STRB R3, [R5,#0xC] .text:0004C27C STRB R3, [R5,#0xD] .text:0004C280 .text:0004C280 loc_4C280 ; CODE XREF: tzset_internal+748j .text:0004C280 ; tzset_internal+7E0j ... .text:0004C280 LDRB R3, [R8] .text:0004C284 CMP R3, #0 .text:0004C288 CMPNE R3, #0x2F .text:0004C28C BEQ loc_4C298 .text:0004C290 CMP R3, #0x2C .text:0004C294 BNE loc_4C404 .text:0004C298 .text:0004C298 loc_4C298 ; CODE XREF: tzset_internal+854j .text:0004C298 CMP R3, #0x2F .text:0004C29C BNE loc_4C3D4 .text:0004C2A0 LDRB R3, [R8,#1]! .text:0004C2A4 CMP R3, #0 .text:0004C2A8 BEQ loc_4C404 .text:0004C2AC SUB R3, R11, #-var_2E .text:0004C2B0 STR R3, [SP,#0x44+var_44] .text:0004C2B4 MOV R0, R8 .text:0004C2B8 SUB R2, R11, #-(var_2C+2) .text:0004C2BC LDR R1, =aHuHuHu ; "%hu:%hu:%hu" .text:0004C2C0 SUB R3, R11, #-var_2C .text:0004C2C4 BL sscanf .text:0004C2C8 CMP R0, #2 .text:0004C2CC BEQ loc_4C304 .text:0004C2D0 BGT loc_4C2E0 .text:0004C2D4 CMP R0, #1 .text:0004C2D8 BEQ loc_4C2F8 .text:0004C2DC B loc_4C2E8 .text:0004C2E0 ; --------------------------------------------------------------------------- .text:0004C2E0 .text:0004C2E0 loc_4C2E0 ; CODE XREF: tzset_internal+898j .text:0004C2E0 CMP R0, #3 .text:0004C2E4 BEQ loc_4C310 .text:0004C2E8 .text:0004C2E8 loc_4C2E8 ; CODE XREF: tzset_internal+8A4j .text:0004C2E8 MOV R3, #2 .text:0004C2EC STRB R3, [R11,#var_2C+2] .text:0004C2F0 MOV R1, #0 .text:0004C2F4 STRB R1, [R11,#var_2C+3] .text:0004C2F8 .text:0004C2F8 loc_4C2F8 ; CODE XREF: tzset_internal+8A0j .text:0004C2F8 MOV R2, #0 .text:0004C2FC STRB R2, [R11,#var_2C] .text:0004C300 STRB R2, [R11,#var_2C+1] .text:0004C304 .text:0004C304 loc_4C304 ; CODE XREF: tzset_internal+894j .text:0004C304 MOV R3, #0 .text:0004C308 STRB R3, [R11,#var_2E] .text:0004C30C STRB R3, [R11,#var_2D] .text:0004C310 .text:0004C310 loc_4C310 ; CODE XREF: tzset_internal+8ACj .text:0004C310 LDRB R9, [R11,#var_2E] .text:0004C314 LDRB R7, [R11,#var_2C] .text:0004C318 LDRB R6, [R11,#var_2C+2] .text:0004C31C LDR R1, [R11,#var_3C] .text:0004C320 MOV R4, #0 .text:0004C324 LDR R3, =__ctype_b .text:0004C328 ADD LR, R1, #1 .text:0004C32C LDR R12, [R3] .text:0004C330 .text:0004C330 loc_4C330 ; CODE XREF: tzset_internal+954j .text:0004C330 LDRB R3, [R8] .text:0004C334 MOV R3, R3,LSL#1 .text:0004C338 ADD R3, R3, R12 .text:0004C33C LDRB R2, [R3,#1] .text:0004C340 ADD R0, R4, #1 .text:0004C344 TST R2, #8 .text:0004C348 BEQ loc_4C36C .text:0004C34C LDR R2, =__ctype_b .text:0004C350 LDR R1, [R2] .text:0004C354 .text:0004C354 loc_4C354 ; CODE XREF: tzset_internal+930j .text:0004C354 LDRB R3, [R8,#1]! .text:0004C358 MOV R3, R3,LSL#1 .text:0004C35C ADD R3, R3, R1 .text:0004C360 LDRB R2, [R3,#1] .text:0004C364 TST R2, #8 .text:0004C368 BNE loc_4C354 .text:0004C36C .text:0004C36C loc_4C36C ; CODE XREF: tzset_internal+910j .text:0004C36C CMP R4, #1 .text:0004C370 BHI loc_4C384 .text:0004C374 MOV R3, R8 .text:0004C378 LDRB R2, [R3],#1 .text:0004C37C CMP R2, #0x3A .text:0004C380 MOVEQ R8, R3 .text:0004C384 .text:0004C384 loc_4C384 ; CODE XREF: tzset_internal+938j .text:0004C384 MOV R4, R0 .text:0004C388 CMP R4, #2 .text:0004C38C BLS loc_4C330 .text:0004C390 LDRB R3, [R11,#var_2C+3] .text:0004C394 LDRB R2, [R11,#var_2C+1] .text:0004C398 LDRB R1, [R11,#var_2D] .text:0004C39C ORR R3, R6, R3,LSL#8 .text:0004C3A0 RSB R3, R3, R3,LSL#4 .text:0004C3A4 RSB R3, R3, R3,LSL#4 .text:0004C3A8 ORR R2, R7, R2,LSL#8 .text:0004C3AC RSB R2, R2, R2,LSL#4 .text:0004C3B0 MOV R2, R2,LSL#2 .text:0004C3B4 ADD R2, R2, R3,LSL#4 .text:0004C3B8 ORR R1, R9, R1,LSL#8 .text:0004C3BC ADD R2, R2, R1 .text:0004C3C0 STR R2, [R5,#0x10] .text:0004C3C4 B loc_4C3E8 .text:0004C3C4 ; --------------------------------------------------------------------------- .text:0004C3C8 off_4C3C8 DCD aMHu_Hu_HuN ; DATA XREF: tzset_internal+78Cr .text:0004C3C8 ; "M%hu.%hu.%hu%n" .text:0004C3CC off_4C3CC DCD aHuHuHu ; DATA XREF: tzset_internal+884r .text:0004C3CC ; "%hu:%hu:%hu" .text:0004C3D0 off_4C3D0 DCD __ctype_b ; DATA XREF: tzset_internal+8ECr .text:0004C3D0 ; tzset_internal+914r .text:0004C3D4 ; --------------------------------------------------------------------------- .text:0004C3D4 .text:0004C3D4 loc_4C3D4 ; CODE XREF: tzset_internal+864j .text:0004C3D4 MOV R3, #0x1C00 .text:0004C3D8 LDR R1, [R11,#var_3C] .text:0004C3DC ADD R3, R3, #0x20 .text:0004C3E0 STR R3, [R5,#0x10] .text:0004C3E4 ADD LR, R1, #1 .text:0004C3E8 .text:0004C3E8 loc_4C3E8 ; CODE XREF: tzset_internal+98Cj .text:0004C3E8 MOV R3, LR,LSL#16 .text:0004C3EC MOV R3, R3,LSR#16 .text:0004C3F0 STR R3, [R11,#var_3C] .text:0004C3F4 CMP R3, #1 .text:0004C3F8 MOV R3, 0xFFFFFFFF .text:0004C3FC STR R3, [R5,#0x1C] .text:0004C400 BLS loc_4C0A8 .text:0004C404 .text:0004C404 loc_4C404 ; CODE XREF: tzset_internal+664j .text:0004C404 ; tzset_internal+6E4j ... .text:0004C404 LDR R3, [R10,#0x14] .text:0004C408 LDR R2, =timezone .text:0004C40C RSB R3, R3, #0 .text:0004C410 STR R3, [R2] .text:0004C414 B locret_4C41C .text:0004C414 ; --------------------------------------------------------------------------- .text:0004C418 off_4C418 DCD timezone ; DATA XREF: tzset_internal+9D0r .text:0004C41C ; --------------------------------------------------------------------------- .text:0004C41C .text:0004C41C locret_4C41C ; CODE XREF: tzset_internal+30j .text:0004C41C ; tzset_internal+98j ... .text:0004C41C LDMDB R11, {R4-R11,SP,PC} .text:0004C41C ; End of function tzset_internal .text:0004C41C .text:0004C420 .text:0004C420 ; =============== S U B R O U T I N E ======================================= .text:0004C420 .text:0004C420 ; Attributes: bp-based frame .text:0004C420 .text:0004C420 EXPORT __tzname_max .text:0004C420 __tzname_max ; CODE XREF: sysconf:loc_342D0p .text:0004C420 MOV R12, SP .text:0004C424 STMFD SP!, {R11,R12,LR,PC} .text:0004C428 LDR R3, =0 .text:0004C42C SUB R11, R12, #4 .text:0004C430 CMP R3, #0 .text:0004C434 BEQ loc_4C444 .text:0004C438 LDR R0, =tzset_lock .text:0004C43C MOV LR, PC .text:0004C440 MOV PC, R3 .text:0004C444 .text:0004C444 loc_4C444 ; CODE XREF: __tzname_max+14j .text:0004C444 MOV R0, #0 .text:0004C448 BL tzset_internal .text:0004C44C LDR R3, =0 .text:0004C450 CMP R3, #0 .text:0004C454 BEQ loc_4C464 .text:0004C458 LDR R0, =tzset_lock .text:0004C45C MOV LR, PC .text:0004C460 MOV PC, R3 .text:0004C464 .text:0004C464 loc_4C464 ; CODE XREF: __tzname_max+34j .text:0004C464 LDR R3, =__tzname_cur_max .text:0004C468 LDR R0, [R3] .text:0004C46C LDMDB R11, {R11,SP,PC} .text:0004C46C ; End of function __tzname_max .text:0004C46C .text:0004C46C ; --------------------------------------------------------------------------- .text:0004C470 off_4C470 DCD 0 ; DATA XREF: __tzname_max+8r .text:0004C474 off_4C474 DCD tzset_lock ; DATA XREF: __tzname_max+18r .text:0004C474 ; __tzname_max+38r .text:0004C478 off_4C478 DCD 0 ; DATA XREF: __tzname_max+2Cr .text:0004C47C off_4C47C DCD __tzname_cur_max ; DATA XREF: __tzname_max:loc_4C464r .text:0004C480 .text:0004C480 ; =============== S U B R O U T I N E ======================================= .text:0004C480 .text:0004C480 ; Attributes: bp-based frame .text:0004C480 .text:0004C480 compute_change ; CODE XREF: tz_compute+28p .text:0004C480 ; tz_compute+48p ... .text:0004C480 .text:0004C480 var_40 = -0x40 .text:0004C480 var_3C = -0x3C .text:0004C480 var_38 = -0x38 .text:0004C480 var_34 = -0x34 .text:0004C480 var_30 = -0x30 .text:0004C480 var_2C = -0x2C .text:0004C480 .text:0004C480 MOV R12, SP .text:0004C484 STMFD SP!, {R4-R12,LR,PC} .text:0004C488 SUB R11, R12, #4 .text:0004C48C MOV R10, R1 .text:0004C490 CMN R10, #1 .text:0004C494 MOV R7, R0 .text:0004C498 SUB SP, SP, #0x18 .text:0004C49C BEQ loc_4C4B0 .text:0004C4A0 LDR R3, [R7,#0x1C] .text:0004C4A4 CMP R3, R10 .text:0004C4A8 MOVEQ R0, #1 .text:0004C4AC BEQ loc_4C834 .text:0004C4B0 .text:0004C4B0 loc_4C4B0 ; CODE XREF: compute_change+1Cj .text:0004C4B0 MOV R3, 0x7B2 .text:0004C4B8 CMP R10, R3 .text:0004C4BC BLE loc_4C524 .text:0004C4C0 SUB R5, R10, #1 .text:0004C4C4 MOV R0, R5 .text:0004C4C8 MOV R1, #0x64 .text:0004C4CC RSB R4, R3, R10 .text:0004C4D0 ADD R3, R4, R4,LSL#3 .text:0004C4D4 ADD R4, R4, R3,LSL#3 .text:0004C4D8 ADD R4, R4, R4,LSL#2 .text:0004C4DC SUB R4, R4, #0x1EC .text:0004C4E0 CMP R5, #0 .text:0004C4E4 ADDLT R3, R5, #3 .text:0004C4E8 MOVGE R3, R5 .text:0004C4EC ADD R4, R4, R3,ASR#2 .text:0004C4F0 ADD R4, R4, #0x13 .text:0004C4F4 BL __divsi3 .text:0004C4F8 RSB R4, R0, R4 .text:0004C4FC MOV R0, R5 .text:0004C500 MOV R1, #0x190 .text:0004C504 SUB R4, R4, #4 .text:0004C508 BL __divsi3 .text:0004C50C ADD R4, R4, R0 .text:0004C510 ADD R4, R4, R4,LSL#1 .text:0004C514 RSB R4, R4, R4,LSL#4 .text:0004C518 RSB R4, R4, R4,LSL#4 .text:0004C51C MOV R8, R4,LSL#7 .text:0004C520 B loc_4C528 .text:0004C524 ; --------------------------------------------------------------------------- .text:0004C524 .text:0004C524 loc_4C524 ; CODE XREF: compute_change+3Cj .text:0004C524 MOV R8, #0 .text:0004C528 .text:0004C528 loc_4C528 ; CODE XREF: compute_change+A0j .text:0004C528 LDR R3, [R7,#4] .text:0004C52C CMP R3, #1 .text:0004C530 BEQ loc_4C554 .text:0004C534 BCC loc_4C5F0 .text:0004C538 CMP R3, #2 .text:0004C53C BEQ loc_4C620 .text:0004C540 LDR R1, [R7,#0x14] .text:0004C544 STR R1, [R11,#var_40] .text:0004C548 LDR R2, [R7,#0x10] .text:0004C54C STR R2, [R11,#var_3C] .text:0004C550 B loc_4C818 .text:0004C554 ; --------------------------------------------------------------------------- .text:0004C554 .text:0004C554 loc_4C554 ; CODE XREF: compute_change+B0j .text:0004C554 LDR R3, [R7,#0x14] .text:0004C558 STR R3, [R11,#var_40] .text:0004C55C LDRB R3, [R7,#0xC] .text:0004C560 LDRB R2, [R7,#0xD] .text:0004C564 LDR R9, [R7,#0x10] .text:0004C568 ORR R3, R3, R2,LSL#8 .text:0004C56C STR R9, [R11,#var_3C] .text:0004C570 SUB R3, R3, #1 .text:0004C574 ADD R3, R3, R3,LSL#1 .text:0004C578 RSB R3, R3, R3,LSL#4 .text:0004C57C RSB R3, R3, R3,LSL#4 .text:0004C580 LDR R2, [R7,#0xC] .text:0004C584 ADD R8, R8, R3,LSL#7 .text:0004C588 MOV R2, R2,LSL#16 .text:0004C58C CMP R2, #0x3B0000 .text:0004C590 BLS loc_4C818 .text:0004C594 TST R10, #3 .text:0004C598 BNE loc_4C818 .text:0004C59C MOV R0, R10 .text:0004C5A0 MOV R1, #0x64 .text:0004C5A4 BL __modsi3 .text:0004C5A8 CMP R0, #0 .text:0004C5AC BNE loc_4C5D4 .text:0004C5B0 MOV R0, R10 .text:0004C5B4 MOV R1, #0x190 .text:0004C5B8 BL __modsi3 .text:0004C5BC LDR R12, [R7,#0x14] .text:0004C5C0 STR R12, [R11,#var_40] .text:0004C5C4 LDR R1, [R7,#0x10] .text:0004C5C8 CMP R0, #0 .text:0004C5CC STR R1, [R11,#var_3C] .text:0004C5D0 BNE loc_4C818 .text:0004C5D4 .text:0004C5D4 loc_4C5D4 ; CODE XREF: compute_change+12Cj .text:0004C5D4 LDR R2, [R7,#0x14] .text:0004C5D8 STR R2, [R11,#var_40] .text:0004C5DC ADD R8, R8, #0x15000 .text:0004C5E0 LDR R3, [R7,#0x10] .text:0004C5E4 ADD R8, R8, #0x180 .text:0004C5E8 STR R3, [R11,#var_3C] .text:0004C5EC B loc_4C818 .text:0004C5F0 ; --------------------------------------------------------------------------- .text:0004C5F0 .text:0004C5F0 loc_4C5F0 ; CODE XREF: compute_change+B4j .text:0004C5F0 LDR R9, [R7,#0x14] .text:0004C5F4 STR R9, [R11,#var_40] .text:0004C5F8 LDRB R3, [R7,#0xC] .text:0004C5FC LDRB R2, [R7,#0xD] .text:0004C600 LDR R12, [R7,#0x10] .text:0004C604 ORR R3, R3, R2,LSL#8 .text:0004C608 ADD R3, R3, R3,LSL#1 .text:0004C60C RSB R3, R3, R3,LSL#4 .text:0004C610 RSB R3, R3, R3,LSL#4 .text:0004C614 ADD R8, R8, R3,LSL#7 .text:0004C618 STR R12, [R11,#var_3C] .text:0004C61C B loc_4C818 .text:0004C620 ; --------------------------------------------------------------------------- .text:0004C620 .text:0004C620 loc_4C620 ; CODE XREF: compute_change+BCj .text:0004C620 MOV R4, #0 .text:0004C624 TST R10, #3 .text:0004C628 BNE loc_4C658 .text:0004C62C MOV R0, R10 .text:0004C630 MOV R1, #0x64 .text:0004C634 BL __modsi3 .text:0004C638 CMP R0, R4 .text:0004C63C BNE loc_4C654 .text:0004C640 MOV R0, R10 .text:0004C644 MOV R1, #0x190 .text:0004C648 BL __modsi3 .text:0004C64C CMP R0, R4 .text:0004C650 BNE loc_4C658 .text:0004C654 .text:0004C654 loc_4C654 ; CODE XREF: compute_change+1BCj .text:0004C654 MOV R4, #1 .text:0004C658 .text:0004C658 loc_4C658 ; CODE XREF: compute_change+1A8j .text:0004C658 ; compute_change+1D0j .text:0004C658 LDRB R0, [R7,#8] .text:0004C65C CMP R4, #0 .text:0004C660 LDRB R2, [R7,#9] .text:0004C664 MOVNE R4, #0x1A .text:0004C668 MOVEQ R4, #0 .text:0004C66C STR R4, [R11,#var_30] .text:0004C670 LDR R3, =__mon_yday .text:0004C674 ORR R0, R0, R2,LSL#8 .text:0004C678 ADD R9, R3, R0,LSL#1 .text:0004C67C ADD R2, R4, R9 .text:0004C680 STR R2, [R11,#var_2C] .text:0004C684 LDRB R3, [R2,#-2] .text:0004C688 SUB R12, R2, #2 .text:0004C68C STR R12, [R11,#var_34] .text:0004C690 MOV R1, #0xC .text:0004C694 LDRB R2, [R12,#1] .text:0004C698 ADD R0, R0, #9 .text:0004C69C ORR R3, R3, R2,LSL#8 .text:0004C6A0 ADD R3, R3, R3,LSL#1 .text:0004C6A4 RSB R3, R3, R3,LSL#4 .text:0004C6A8 RSB R3, R3, R3,LSL#4 .text:0004C6AC ADD R8, R8, R3,LSL#7 .text:0004C6B0 BL __modsi3 .text:0004C6B4 MOV R1, #0x64 .text:0004C6B8 LDR R4, [R7,#8] .text:0004C6BC ADD R5, R0, #1 .text:0004C6C0 MOV R4, R4,LSL#16 .text:0004C6C4 CMP R4, #0x20000 .text:0004C6C8 MOVHI R4, R10 .text:0004C6CC SUBLS R4, R10, #1 .text:0004C6D0 MOV R0, R4 .text:0004C6D4 BL __divsi3 .text:0004C6D8 MOV R6, R0 .text:0004C6DC MOV R0, R4 .text:0004C6E0 MOV R1, #0x64 .text:0004C6E4 BL __modsi3 .text:0004C6E8 MOV R4, R0 .text:0004C6EC ADD R3, R5, R5,LSL#1 .text:0004C6F0 ADD R5, R5, R3,LSL#2 .text:0004C6F4 MOV R5, R5,LSL#1 .text:0004C6F8 SUB R0, R5, #2 .text:0004C6FC MOV R1, #0xA .text:0004C700 BL __divsi3 .text:0004C704 ADD R3, R4, #1 .text:0004C708 ADD R0, R0, R3 .text:0004C70C CMP R4, #0 .text:0004C710 ADDLT R4, R4, #3 .text:0004C714 ADD R0, R0, R4,ASR#2 .text:0004C718 CMP R6, #0 .text:0004C71C ADDLT R3, R6, #3 .text:0004C720 MOVGE R3, R6 .text:0004C724 ADD R0, R0, R3,ASR#2 .text:0004C728 SUB R0, R0, R6,LSL#1 .text:0004C72C MOV R1, #7 .text:0004C730 BL __modsi3 .text:0004C734 LDR R1, [R7,#0x14] .text:0004C738 STR R1, [R11,#var_40] .text:0004C73C LDR R2, [R7,#0x10] .text:0004C740 STR R2, [R11,#var_3C] .text:0004C744 MOV LR, #1 .text:0004C748 LDRB R2, [R7,#0xD] .text:0004C74C CMP R0, #0 .text:0004C750 LDRB R3, [R7,#0xC] .text:0004C754 ADD R1, R0, #7 .text:0004C758 ORR R3, R3, R2,LSL#8 .text:0004C75C SUBGE R12, R3, R0 .text:0004C760 SUBLT R12, R3, R1 .text:0004C764 ADD R3, R12, #7 .text:0004C768 LDRB R0, [R7,#0xA] .text:0004C76C CMP R12, #0 .text:0004C770 LDRB R2, [R7,#0xB] .text:0004C774 MOVLT R12, R3 .text:0004C778 ORR R4, R0, R2,LSL#8 .text:0004C77C CMP LR, R4 .text:0004C780 BCS loc_4C808 .text:0004C784 SUB R1, R11, #-var_30 .text:0004C788 LDMIA R1, {R1,R2} .text:0004C78C LDRB R3, [R1,R9] .text:0004C790 LDRB R5, [R2,#1] .text:0004C794 LDRB R6, [R2,#-2] .text:0004C798 ADD R1, R12, #7 .text:0004C79C LDR R9, [R11,#var_34] .text:0004C7A0 MOV R0, R1 .text:0004C7A4 LDRB R2, [R9,#1] .text:0004C7A8 ORR R3, R3, R5,LSL#8 .text:0004C7AC ORR R2, R6, R2,LSL#8 .text:0004C7B0 RSB R3, R2, R3 .text:0004C7B4 CMP R1, R3 .text:0004C7B8 BGE loc_4C808 .text:0004C7BC STR R4, [R11,#var_38] .text:0004C7C0 MOV R9, R5 .text:0004C7C4 MOV R5, R6 .text:0004C7C8 LDR R4, [R11,#var_34] .text:0004C7CC .text:0004C7CC loc_4C7CC ; CODE XREF: compute_change+384j .text:0004C7CC MOV R12, R0 .text:0004C7D0 LDR R1, [R11,#var_38] .text:0004C7D4 ADD LR, LR, #1 .text:0004C7D8 CMP LR, R1 .text:0004C7DC BCS loc_4C808 .text:0004C7E0 LDR R3, [R11,#var_2C] .text:0004C7E4 ADD R1, R12, #7 .text:0004C7E8 LDRB R2, [R3] .text:0004C7EC MOV R0, R1 .text:0004C7F0 LDRB R3, [R4,#1] .text:0004C7F4 ORR R2, R2, R9,LSL#8 .text:0004C7F8 ORR R3, R5, R3,LSL#8 .text:0004C7FC RSB R2, R3, R2 .text:0004C800 CMP R1, R2 .text:0004C804 BLT loc_4C7CC .text:0004C808 .text:0004C808 loc_4C808 ; CODE XREF: compute_change+300j .text:0004C808 ; compute_change+338j ... .text:0004C808 ADD R3, R12, R12,LSL#1 .text:0004C80C RSB R3, R3, R3,LSL#4 .text:0004C810 RSB R3, R3, R3,LSL#4 .text:0004C814 ADD R8, R8, R3,LSL#7 .text:0004C818 .text:0004C818 loc_4C818 ; CODE XREF: compute_change+D0j .text:0004C818 ; compute_change+110j ... .text:0004C818 SUB R9, R11, #-var_40 .text:0004C81C LDMIA R9, {R9,R12} .text:0004C820 MOV R0, #1 .text:0004C824 STR R10, [R7,#0x1C] .text:0004C828 RSB R3, R9, R8 .text:0004C82C ADD R3, R3, R12 .text:0004C830 STR R3, [R7,#0x18] .text:0004C834 .text:0004C834 loc_4C834 ; CODE XREF: compute_change+2Cj .text:0004C834 B locret_4C83C .text:0004C834 ; --------------------------------------------------------------------------- .text:0004C838 off_4C838 DCD __mon_yday ; DATA XREF: compute_change+1F0r .text:0004C83C ; --------------------------------------------------------------------------- .text:0004C83C .text:0004C83C locret_4C83C ; CODE XREF: compute_change:loc_4C834j .text:0004C83C LDMDB R11, {R4-R11,SP,PC} .text:0004C83C ; End of function compute_change .text:0004C83C .text:0004C840 .text:0004C840 ; =============== S U B R O U T I N E ======================================= .text:0004C840 .text:0004C840 ; Attributes: bp-based frame .text:0004C840 .text:0004C840 tz_compute ; CODE XREF: __tz_convert+B4p .text:0004C840 MOV R12, SP .text:0004C844 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0004C848 SUB R11, R12, #4 .text:0004C84C MOV R5, 0x76C .text:0004C854 LDR R4, =tz_rules .text:0004C858 MOV R6, R0 .text:0004C85C LDR R1, [R6,#0x14] .text:0004C860 MOV R0, R4 .text:0004C864 ADD R1, R1, R5 .text:0004C868 BL compute_change .text:0004C86C CMP R0, #0 .text:0004C870 MOV R7, R4 .text:0004C874 BEQ loc_4C894 .text:0004C878 ADD R4, R7, #0x20 .text:0004C87C LDR R1, [R6,#0x14] .text:0004C880 MOV R0, R4 .text:0004C884 ADD R1, R1, R5 .text:0004C888 BL compute_change .text:0004C88C CMP R0, #0 .text:0004C890 BNE loc_4C89C .text:0004C894 .text:0004C894 loc_4C894 ; CODE XREF: tz_compute+34j .text:0004C894 MOV R0, #0 .text:0004C898 LDMDB R11, {R4-R7,R11,SP,PC} .text:0004C89C ; --------------------------------------------------------------------------- .text:0004C89C .text:0004C89C loc_4C89C ; CODE XREF: tz_compute+50j .text:0004C89C LDR R2, [R7,#0x18] .text:0004C8A0 LDR R3, [R7,#0x38] .text:0004C8A4 CMP R2, R3 .text:0004C8A8 BLE loc_4C8C8 .text:0004C8AC LDR R1, [R6,#0x14] .text:0004C8B0 MOV R0, R4 .text:0004C8B4 ADD R1, R1, #0x760 .text:0004C8B8 ADD R1, R1, #0xD .text:0004C8BC BL compute_change .text:0004C8C0 CMP R0, #0 .text:0004C8C4 LDMEQDB R11, {R4-R7,R11,SP,PC} .text:0004C8C8 .text:0004C8C8 loc_4C8C8 ; CODE XREF: tz_compute+68j .text:0004C8C8 LDR R2, [R7,#0x14] .text:0004C8CC LDR R3, [R7,#0x34] .text:0004C8D0 LDR R1, =daylight .text:0004C8D4 SUBS R3, R2, R3 .text:0004C8D8 MOVNE R3, #1 .text:0004C8DC STR R3, [R1] .text:0004C8E0 LDR R0, =timezone .text:0004C8E4 RSB R2, R2, #0 .text:0004C8E8 STR R2, [R0] .text:0004C8EC LDR R4, =tzname .text:0004C8F0 LDR R0, [R7] .text:0004C8F4 STR R0, [R4] .text:0004C8F8 LDR R3, [R7,#0x20] .text:0004C8FC STR R3, [R4,#(tzname+4 - 0x6BD80)] .text:0004C900 BL strlen .text:0004C904 MOV R5, R0 .text:0004C908 LDR R0, [R4,#(tzname+4 - 0x6BD80)] .text:0004C90C BL strlen .text:0004C910 LDR R2, =__tzname_cur_max .text:0004C914 LDR R3, [R2] .text:0004C918 CMP R5, R3 .text:0004C91C STRHI R5, [R2] .text:0004C920 LDR R3, [R2] .text:0004C924 CMP R0, R3 .text:0004C928 STRHI R0, [R2] .text:0004C92C MOV R0, #1 .text:0004C930 LDMDB R11, {R4-R7,R11,SP,PC} .text:0004C930 ; End of function tz_compute .text:0004C930 .text:0004C930 ; --------------------------------------------------------------------------- .text:0004C934 off_4C934 DCD tz_rules ; DATA XREF: tz_compute+14r .text:0004C938 off_4C938 DCD daylight ; DATA XREF: tz_compute+90r .text:0004C93C off_4C93C DCD timezone ; DATA XREF: tz_compute+A0r .text:0004C940 off_4C940 DCD tzname ; DATA XREF: tz_compute+ACr .text:0004C944 off_4C944 DCD __tzname_cur_max ; DATA XREF: tz_compute+D0r .text:0004C948 .text:0004C948 ; =============== S U B R O U T I N E ======================================= .text:0004C948 .text:0004C948 ; Attributes: bp-based frame .text:0004C948 .text:0004C948 WEAK tzset .text:0004C948 tzset ; CODE XREF: timelocal+10p .text:0004C948 MOV R12, SP .text:0004C94C STMFD SP!, {R11,R12,LR,PC} .text:0004C950 LDR R3, =0 .text:0004C954 SUB R11, R12, #4 .text:0004C958 CMP R3, #0 .text:0004C95C BEQ loc_4C96C .text:0004C960 LDR R0, =tzset_lock .text:0004C964 MOV LR, PC .text:0004C968 MOV PC, R3 .text:0004C96C .text:0004C96C loc_4C96C ; CODE XREF: tzset+14j .text:0004C96C MOV R0, #1 .text:0004C970 BL tzset_internal .text:0004C974 LDR R3, =__use_tzfile .text:0004C978 LDR R2, [R3] .text:0004C97C CMP R2, #0 .text:0004C980 BNE loc_4C99C .text:0004C984 LDR R1, =tz_rules .text:0004C988 LDR R0, =tzname .text:0004C98C LDR R3, [R1] .text:0004C990 STR R3, [R0] .text:0004C994 LDR R2, [R1,#(dword_7A184 - 0x7A164)] .text:0004C998 STR R2, [R0,#(tzname+4 - 0x6BD80)] .text:0004C99C .text:0004C99C loc_4C99C ; CODE XREF: tzset+38j .text:0004C99C LDR R3, =0 .text:0004C9A0 CMP R3, #0 .text:0004C9A4 LDMEQDB R11, {R11,SP,PC} .text:0004C9A8 LDR R0, =tzset_lock .text:0004C9AC MOV LR, PC .text:0004C9B0 MOV PC, R3 .text:0004C9B4 LDMDB R11, {R11,SP,PC} .text:0004C9B4 ; End of function tzset .text:0004C9B4 .text:0004C9B4 ; --------------------------------------------------------------------------- .text:0004C9B8 off_4C9B8 DCD 0 ; DATA XREF: tzset+8r .text:0004C9BC off_4C9BC DCD tzset_lock ; DATA XREF: tzset+18r .text:0004C9BC ; tzset+60r .text:0004C9C0 off_4C9C0 DCD __use_tzfile ; DATA XREF: tzset+2Cr .text:0004C9C4 off_4C9C4 DCD tz_rules ; DATA XREF: tzset+3Cr .text:0004C9C8 off_4C9C8 DCD tzname ; DATA XREF: tzset+40r .text:0004C9CC off_4C9CC DCD 0 ; DATA XREF: tzset:loc_4C99Cr .text:0004C9D0 .text:0004C9D0 ; =============== S U B R O U T I N E ======================================= .text:0004C9D0 .text:0004C9D0 ; Attributes: bp-based frame .text:0004C9D0 .text:0004C9D0 EXPORT __tz_convert .text:0004C9D0 __tz_convert ; CODE XREF: localtime_r+14p .text:0004C9D0 ; localtime+14p .text:0004C9D0 .text:0004C9D0 var_2C = -0x2C .text:0004C9D0 var_28 = -0x28 .text:0004C9D0 var_24 = -0x24 .text:0004C9D0 .text:0004C9D0 MOV R12, SP .text:0004C9D4 STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:0004C9D8 SUB R11, R12, #4 .text:0004C9DC MOV R4, R2 .text:0004C9E0 MOV R6, R1 .text:0004C9E4 SUBS R7, R0, #0 .text:0004C9E8 SUB SP, SP, #0xC .text:0004C9EC BNE loc_4CA04 .text:0004C9F0 BL __errno_location .text:0004C9F4 MOV R3, #0x16 .text:0004C9F8 STR R3, [R0] .text:0004C9FC MOV R0, R7 .text:0004CA00 B loc_4CB84 .text:0004CA04 ; --------------------------------------------------------------------------- .text:0004CA04 .text:0004CA04 loc_4CA04 ; CODE XREF: __tz_convert+1Cj .text:0004CA04 LDR R3, =0 .text:0004CA08 CMP R3, #0 .text:0004CA0C BEQ loc_4CA1C .text:0004CA10 LDR R0, =tzset_lock .text:0004CA14 MOV LR, PC .text:0004CA18 MOV PC, R3 .text:0004CA1C .text:0004CA1C loc_4CA1C ; CODE XREF: __tz_convert+3Cj .text:0004CA1C LDR R0, =_tmbuf .text:0004CA20 CMP R4, R0 .text:0004CA24 MOVNE R0, #0 .text:0004CA28 MOVEQ R0, #1 .text:0004CA2C BL tzset_internal .text:0004CA30 LDR R3, =__use_tzfile .text:0004CA34 LDR R5, [R3] .text:0004CA38 MOV R8, R3 .text:0004CA3C CMP R5, #0 .text:0004CA40 BEQ loc_4CA68 .text:0004CA44 LDR R0, [R7] .text:0004CA48 STR R4, [SP,#0x2C+var_2C] .text:0004CA4C MOV R1, R6 .text:0004CA50 SUB R2, R11, #-var_24 .text:0004CA54 SUB R3, R11, #-var_28 .text:0004CA58 BL __tzfile_compute .text:0004CA5C CMP R0, #0 .text:0004CA60 MOVEQ R4, #0 .text:0004CA64 B loc_4CAA0 .text:0004CA68 ; --------------------------------------------------------------------------- .text:0004CA68 .text:0004CA68 loc_4CA68 ; CODE XREF: __tz_convert+70j .text:0004CA68 MOV R0, R7 .text:0004CA6C MOV R1, R5 .text:0004CA70 MOV R2, R4 .text:0004CA74 BL __offtime .text:0004CA78 CMP R0, #0 .text:0004CA7C BEQ loc_4CA90 .text:0004CA80 MOV R0, R4 .text:0004CA84 BL tz_compute .text:0004CA88 CMP R0, #0 .text:0004CA8C BNE loc_4CA94 .text:0004CA90 .text:0004CA90 loc_4CA90 ; CODE XREF: __tz_convert+ACj .text:0004CA90 MOV R4, R5 .text:0004CA94 .text:0004CA94 loc_4CA94 ; CODE XREF: __tz_convert+BCj .text:0004CA94 MOV R3, #0 .text:0004CA98 STR R3, [R11,#var_24] .text:0004CA9C STR R3, [R11,#var_28] .text:0004CAA0 .text:0004CAA0 loc_4CAA0 ; CODE XREF: __tz_convert+94j .text:0004CAA0 CMP R4, #0 .text:0004CAA4 BEQ loc_4CB68 .text:0004CAA8 CMP R6, #0 .text:0004CAAC BEQ loc_4CB04 .text:0004CAB0 LDR R2, [R8] .text:0004CAB4 CMP R2, #0 .text:0004CAB8 BNE loc_4CB14 .text:0004CABC LDR R12, =tz_rules .text:0004CAC0 LDR R0, [R7] .text:0004CAC4 LDR R3, [R12,#(dword_7A17C - 0x7A164)] .text:0004CAC8 MOV R1, R2 .text:0004CACC CMP R0, R3 .text:0004CAD0 BLT loc_4CAE4 .text:0004CAD4 LDR R3, [R12,#(dword_7A19C - 0x7A164)] .text:0004CAD8 CMP R0, R3 .text:0004CADC MOVGE R1, #0 .text:0004CAE0 MOVLT R1, #1 .text:0004CAE4 .text:0004CAE4 loc_4CAE4 ; CODE XREF: __tz_convert+100j .text:0004CAE4 STR R1, [R4,#0x20] .text:0004CAE8 LDR R3, =tzname .text:0004CAEC LDR R2, [R3,R1,LSL#2] .text:0004CAF0 STR R2, [R4,#0x28] .text:0004CAF4 ADD R3, R12, #0x14 .text:0004CAF8 LDR R2, [R3,R1,LSL#5] .text:0004CAFC STR R2, [R4,#0x24] .text:0004CB00 B loc_4CB14 .text:0004CB04 ; --------------------------------------------------------------------------- .text:0004CB04 .text:0004CB04 loc_4CB04 ; CODE XREF: __tz_convert+DCj .text:0004CB04 STR R6, [R4,#0x20] .text:0004CB08 STR R6, [R4,#0x24] .text:0004CB0C LDR R3, =dword_61E28 .text:0004CB10 STR R3, [R4,#0x28] .text:0004CB14 .text:0004CB14 loc_4CB14 ; CODE XREF: __tz_convert+E8j .text:0004CB14 ; __tz_convert+130j .text:0004CB14 LDR R3, [R4,#0x24] .text:0004CB18 MOV R0, R7 .text:0004CB1C LDR R1, [R11,#var_24] .text:0004CB20 MOV R2, R4 .text:0004CB24 RSB R1, R1, R3 .text:0004CB28 BL __offtime .text:0004CB2C CMP R0, #0 .text:0004CB30 BEQ loc_4CB64 .text:0004CB34 LDR R3, [R4] .text:0004CB38 LDR R2, [R11,#var_28] .text:0004CB3C ADD R3, R3, R2 .text:0004CB40 STR R3, [R4] .text:0004CB44 B loc_4CB68 .text:0004CB44 ; --------------------------------------------------------------------------- .text:0004CB48 off_4CB48 DCD 0 ; DATA XREF: __tz_convert:loc_4CA04r .text:0004CB4C off_4CB4C DCD tzset_lock ; DATA XREF: __tz_convert+40r .text:0004CB50 off_4CB50 DCD _tmbuf ; DATA XREF: __tz_convert:loc_4CA1Cr .text:0004CB54 off_4CB54 DCD __use_tzfile ; DATA XREF: __tz_convert+60r .text:0004CB58 off_4CB58 DCD tz_rules ; DATA XREF: __tz_convert+ECr .text:0004CB5C off_4CB5C DCD tzname ; DATA XREF: __tz_convert+118r .text:0004CB60 off_4CB60 DCD dword_61E28 ; DATA XREF: __tz_convert+13Cr .text:0004CB64 ; --------------------------------------------------------------------------- .text:0004CB64 .text:0004CB64 loc_4CB64 ; CODE XREF: __tz_convert+160j .text:0004CB64 MOV R4, R0 .text:0004CB68 .text:0004CB68 loc_4CB68 ; CODE XREF: __tz_convert+D4j .text:0004CB68 ; __tz_convert+174j .text:0004CB68 LDR R3, =0 .text:0004CB6C CMP R3, #0 .text:0004CB70 BEQ loc_4CB80 .text:0004CB74 LDR R0, =tzset_lock .text:0004CB78 MOV LR, PC .text:0004CB7C MOV PC, R3 .text:0004CB80 .text:0004CB80 loc_4CB80 ; CODE XREF: __tz_convert+1A0j .text:0004CB80 MOV R0, R4 .text:0004CB84 .text:0004CB84 loc_4CB84 ; CODE XREF: __tz_convert+30j .text:0004CB84 B locret_4CB90 .text:0004CB84 ; --------------------------------------------------------------------------- .text:0004CB88 off_4CB88 DCD 0 ; DATA XREF: __tz_convert:loc_4CB68r .text:0004CB8C off_4CB8C DCD tzset_lock ; DATA XREF: __tz_convert+1A4r .text:0004CB90 ; --------------------------------------------------------------------------- .text:0004CB90 .text:0004CB90 locret_4CB90 ; CODE XREF: __tz_convert:loc_4CB84j .text:0004CB90 LDMDB R11, {R4-R8,R11,SP,PC} .text:0004CB90 ; End of function __tz_convert .text:0004CB90 .text:0004CB94 .text:0004CB94 ; =============== S U B R O U T I N E ======================================= .text:0004CB94 .text:0004CB94 ; Attributes: bp-based frame .text:0004CB94 .text:0004CB94 free_mem_10 .text:0004CB94 MOV R12, SP .text:0004CB98 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0004CB9C LDR R0, =tzstring_list .text:0004CBA0 LDR R3, [R0] .text:0004CBA4 SUB R11, R12, #4 .text:0004CBA8 LDR R5, =old_tz .text:0004CBAC CMP R3, #0 .text:0004CBB0 BEQ loc_4CBD4 .text:0004CBB4 MOV R4, R0 .text:0004CBB8 .text:0004CBB8 loc_4CBB8 ; CODE XREF: free_mem_10+3Cj .text:0004CBB8 LDR R0, [R4] .text:0004CBBC LDR R3, [R0] .text:0004CBC0 STR R3, [R4] .text:0004CBC4 BL free .text:0004CBC8 LDR R3, [R4] .text:0004CBCC CMP R3, #0 .text:0004CBD0 BNE loc_4CBB8 .text:0004CBD4 .text:0004CBD4 loc_4CBD4 ; CODE XREF: free_mem_10+1Cj .text:0004CBD4 LDR R0, [R5] .text:0004CBD8 BL free .text:0004CBDC MOV R3, #0 .text:0004CBE0 STR R3, [R5] .text:0004CBE4 LDMDB R11, {R4,R5,R11,SP,PC} .text:0004CBE4 ; End of function free_mem_10 .text:0004CBE4 .text:0004CBE4 ; --------------------------------------------------------------------------- .text:0004CBE8 off_4CBE8 DCD tzstring_list ; DATA XREF: free_mem_10+8r .text:0004CBEC off_4CBEC DCD old_tz ; DATA XREF: free_mem_10+14r .text:0004CBF0 .text:0004CBF0 ; =============== S U B R O U T I N E ======================================= .text:0004CBF0 .text:0004CBF0 ; Attributes: bp-based frame .text:0004CBF0 .text:0004CBF0 EXPORT __tzfile_read .text:0004CBF0 __tzfile_read ; CODE XREF: tzset_internal+ECp .text:0004CBF0 ; __tzfile_default+44p .text:0004CBF0 .text:0004CBF0 var_74 = -0x74 .text:0004CBF0 var_70 = -0x70 .text:0004CBF0 var_6C = -0x6C .text:0004CBF0 var_68 = -0x68 .text:0004CBF0 var_64 = -0x64 .text:0004CBF0 var_60 = -0x60 .text:0004CBF0 var_5C = -0x5C .text:0004CBF0 var_58 = -0x58 .text:0004CBF0 var_54 = -0x54 .text:0004CBF0 var_40 = -0x40 .text:0004CBF0 var_3C = -0x3C .text:0004CBF0 var_38 = -0x38 .text:0004CBF0 var_34 = -0x34 .text:0004CBF0 var_30 = -0x30 .text:0004CBF0 var_2C = -0x2C .text:0004CBF0 .text:0004CBF0 MOV R12, SP .text:0004CBF4 STMFD SP!, {R4-R12,LR,PC} .text:0004CBF8 SUB R11, R12, #4 .text:0004CBFC LDR R3, =__use_tzfile .text:0004CC00 MOV R6, R0 .text:0004CC04 LDR R12, =transitions .text:0004CC08 SUB SP, SP, #0x4C .text:0004CC0C LDR R0, [R12] .text:0004CC10 MOV R4, #0 .text:0004CC14 STR R4, [R3] .text:0004CC18 STR R1, [R11,#var_60] .text:0004CC1C STR R2, [R11,#var_64] .text:0004CC20 CMP R0, R4 .text:0004CC24 BEQ loc_4CC2C .text:0004CC28 BL free .text:0004CC2C .text:0004CC2C loc_4CC2C ; CODE XREF: __tzfile_read+34j .text:0004CC2C LDR R1, =transitions .text:0004CC30 CMP R6, #0 .text:0004CC34 STR R4, [R1] .text:0004CC38 LDREQ R6, =byte_61ECC .text:0004CC3C BEQ loc_4CCA8 .text:0004CC40 LDRB R1, [R6] .text:0004CC44 CMP R1, #0 .text:0004CC48 BEQ locret_4D5BC .text:0004CC4C LDR R3, =__libc_enable_secure .text:0004CC50 LDR R2, [R3] .text:0004CC54 CMP R2, #0 .text:0004CC58 BEQ loc_4CCA8 .text:0004CC5C CMP R1, #0x2F .text:0004CC60 BNE loc_4CC94 .text:0004CC64 MOV R0, R6 .text:0004CC68 LDR R1, =byte_61ECC .text:0004CC6C MOV R2, #0x2E .text:0004CC70 BL memcmp .text:0004CC74 CMP R0, #0 .text:0004CC78 BEQ loc_4CC94 .text:0004CC7C MOV R0, R6 .text:0004CC80 LDR R1, =default_tzdir.120 ; "/usr/local/arm/2.95.3/arm-linux/share/z"... .text:0004CC84 MOV R2, #0x2E .text:0004CC88 BL memcmp .text:0004CC8C CMP R0, #0 .text:0004CC90 BNE locret_4D5BC .text:0004CC94 .text:0004CC94 loc_4CC94 ; CODE XREF: __tzfile_read+70j .text:0004CC94 ; __tzfile_read+88j .text:0004CC94 LDR R1, =a__ ; "../" .text:0004CC98 MOV R0, R6 .text:0004CC9C BL strstr .text:0004CCA0 CMP R0, #0 .text:0004CCA4 BNE locret_4D5BC .text:0004CCA8 .text:0004CCA8 loc_4CCA8 ; CODE XREF: __tzfile_read+4Cj .text:0004CCA8 ; __tzfile_read+68j .text:0004CCA8 LDRB R3, [R6] .text:0004CCAC CMP R3, #0x2F .text:0004CCB0 BEQ loc_4CD2C .text:0004CCB4 LDR R0, =aTzdir ; "TZDIR" .text:0004CCB8 BL getenv .text:0004CCBC SUBS R5, R0, #0 .text:0004CCC0 BEQ loc_4CCD0 .text:0004CCC4 LDRB R3, [R5] .text:0004CCC8 CMP R3, #0 .text:0004CCCC BNE loc_4CCDC .text:0004CCD0 .text:0004CCD0 loc_4CCD0 ; CODE XREF: __tzfile_read+D0j .text:0004CCD0 MOV R7, #0x2E .text:0004CCD4 LDR R5, =default_tzdir.120 ; "/usr/local/arm/2.95.3/arm-linux/share/z"... .text:0004CCD8 B loc_4CCE8 .text:0004CCDC ; --------------------------------------------------------------------------- .text:0004CCDC .text:0004CCDC loc_4CCDC ; CODE XREF: __tzfile_read+DCj .text:0004CCDC MOV R0, R5 .text:0004CCE0 BL strlen .text:0004CCE4 MOV R7, R0 .text:0004CCE8 .text:0004CCE8 loc_4CCE8 ; CODE XREF: __tzfile_read+E8j .text:0004CCE8 MOV R0, R6 .text:0004CCEC BL strlen .text:0004CCF0 ADD R4, R0, #1 .text:0004CCF4 ADD R3, R4, R7 .text:0004CCF8 ADD R3, R3, #4 .text:0004CCFC BIC R3, R3, #3 .text:0004CD00 RSB SP, R3, SP .text:0004CD04 MOV R0, SP .text:0004CD08 MOV R1, R5 .text:0004CD0C MOV R2, R7 .text:0004CD10 BL mempcpy .text:0004CD14 MOV R3, #0x2F .text:0004CD18 STRB R3, [R0],#1 .text:0004CD1C MOV R1, R6 .text:0004CD20 MOV R2, R4 .text:0004CD24 BL memcpy .text:0004CD28 MOV R6, SP .text:0004CD2C .text:0004CD2C loc_4CD2C ; CODE XREF: __tzfile_read+C0j .text:0004CD2C LDR R1, =aR_1 ; "r" .text:0004CD30 MOV R0, R6 .text:0004CD34 BL fopen .text:0004CD38 SUBS R7, R0, #0 .text:0004CD3C BEQ locret_4D5BC .text:0004CD40 SUB R0, R11, #-var_54 .text:0004CD44 MOV R1, #0x2C .text:0004CD48 MOV R2, #1 .text:0004CD4C MOV R3, R7 .text:0004CD50 BL fread_unlocked .text:0004CD54 STR R0, [R11,#var_74] .text:0004CD58 CMP R0, #1 .text:0004CD5C BNE loc_4D5B4 .text:0004CD60 LDR R1, [R11,#var_34] .text:0004CD64 LDR R6, =num_transitions .text:0004CD68 LDR R12, [R11,#var_30] .text:0004CD6C AND R3, R1, #0xFF0000 .text:0004CD70 MOV R3, R3,LSR#8 .text:0004CD74 ORR R3, R3, R1,LSR#24 .text:0004CD78 AND R2, R1, #0xFF00 .text:0004CD7C ORR R3, R3, R2,LSL#8 .text:0004CD80 ORR R3, R3, R1,LSL#24 .text:0004CD84 ADD R2, R3, R3,LSL#2 .text:0004CD88 ADD R2, R2, #3 .text:0004CD8C BIC LR, R2, #3 .text:0004CD90 STR R3, [R6] .text:0004CD94 AND R1, R12, #0xFF0000 .text:0004CD98 MOV R1, R1,LSR#8 .text:0004CD9C ORR R1, R1, R12,LSR#24 .text:0004CDA0 AND R3, R12, #0xFF00 .text:0004CDA4 LDR R0, [R11,#var_2C] .text:0004CDA8 ORR R1, R1, R3,LSL#8 .text:0004CDAC AND R3, R0, #0xFF0000 .text:0004CDB0 MOV R3, R3,LSR#8 .text:0004CDB4 ORR R3, R3, R0,LSR#24 .text:0004CDB8 AND R2, R0, #0xFF00 .text:0004CDBC ORR R3, R3, R2,LSL#8 .text:0004CDC0 ORR R0, R3, R0,LSL#24 .text:0004CDC4 STR R0, [R11,#var_70] .text:0004CDC8 LDR R5, =num_types .text:0004CDCC LDR R4, =num_leaps .text:0004CDD0 ORR R1, R1, R12,LSL#24 .text:0004CDD4 ADD R3, R0, R1,LSL#3 .text:0004CDD8 LDR R0, [R11,#var_38] .text:0004CDDC STR R1, [R5] .text:0004CDE0 MOV R9, LR .text:0004CDE4 ADD LR, LR, R3 .text:0004CDE8 ADD R3, LR, #3 .text:0004CDEC BIC LR, R3, #3 .text:0004CDF0 LDR R12, [R11,#var_3C] .text:0004CDF4 AND R3, R0, #0xFF0000 .text:0004CDF8 MOV R3, R3,LSR#8 .text:0004CDFC ORR R3, R3, R0,LSR#24 .text:0004CE00 AND R2, R0, #0xFF00 .text:0004CE04 ORR R3, R3, R2,LSL#8 .text:0004CE08 LDR R2, [R11,#var_60] .text:0004CE0C ORR R3, R3, R0,LSL#24 .text:0004CE10 STR R3, [R4] .text:0004CE14 MOV R8, LR .text:0004CE18 ADD LR, LR, R3,LSL#3 .text:0004CE1C AND R3, R12, #0xFF00 .text:0004CE20 LDR R1, [R11,#var_40] .text:0004CE24 ADD R0, LR, R2 .text:0004CE28 AND R2, R12, #0xFF0000 .text:0004CE2C MOV R2, R2,LSR#8 .text:0004CE30 ORR R2, R2, R12,LSR#24 .text:0004CE34 ORR R2, R2, R3,LSL#8 .text:0004CE38 ORR R12, R2, R12,LSL#24 .text:0004CE3C AND R3, R1, #0xFF0000 .text:0004CE40 MOV R3, R3,LSR#8 .text:0004CE44 ORR R3, R3, R1,LSR#24 .text:0004CE48 AND R2, R1, #0xFF00 .text:0004CE4C STR R12, [R11,#var_68] .text:0004CE50 ORR R3, R3, R2,LSL#8 .text:0004CE54 ORR R1, R3, R1,LSL#24 .text:0004CE58 STR R1, [R11,#var_6C] .text:0004CE5C BL malloc .text:0004CE60 MOV LR, R0 .text:0004CE64 CMP LR, #0 .text:0004CE68 LDR R3, =transitions .text:0004CE6C MOV R10, R5 .text:0004CE70 STR LR, [R3] .text:0004CE74 BEQ loc_4D5B4 .text:0004CE78 LDR R3, [R6] .text:0004CE7C LDR R12, =type_idxs .text:0004CE80 ADD R3, LR, R3,LSL#2 .text:0004CE84 STR R3, [R12] .text:0004CE88 LDR R0, =types .text:0004CE8C ADD R3, LR, R9 .text:0004CE90 STR R3, [R0] .text:0004CE94 LDR R2, [R10] .text:0004CE98 LDR R1, =zone_names .text:0004CE9C ADD R3, R3, R2,LSL#3 .text:0004CEA0 STR R3, [R1] .text:0004CEA4 LDR R2, [R11,#var_60] .text:0004CEA8 LDR R3, =leaps .text:0004CEAC CMP R2, #0 .text:0004CEB0 ADD R2, LR, R8 .text:0004CEB4 STR R2, [R3] .text:0004CEB8 LDRNE R3, [R4] .text:0004CEBC LDRNE R1, [R11,#var_64] .text:0004CEC0 ADDNE R3, R2, R3,LSL#3 .text:0004CEC4 STRNE R3, [R1] .text:0004CEC8 LDR R2, =num_transitions .text:0004CECC LDR R4, [R2] .text:0004CED0 ADD R4, R4, R4,LSL#2 .text:0004CED4 LDR R3, =transitions .text:0004CED8 LDR R0, [R3] .text:0004CEDC MOV R2, R4 .text:0004CEE0 LDR R1, [R11,#var_74] .text:0004CEE4 MOV R3, R7 .text:0004CEE8 BL fread_unlocked .text:0004CEEC CMP R0, R4 .text:0004CEF0 BNE loc_4D5B4 .text:0004CEF4 LDR R1, =num_transitions .text:0004CEF8 LDR R3, [R1] .text:0004CEFC MOV R6, #0 .text:0004CF00 CMP R6, R3 .text:0004CF04 BCS loc_4CF30 .text:0004CF08 LDR R2, =type_idxs .text:0004CF0C LDR R0, [R2] .text:0004CF10 MOV R1, R3 .text:0004CF14 LDR R2, [R10] .text:0004CF18 .text:0004CF18 loc_4CF18 ; CODE XREF: __tzfile_read+33Cj .text:0004CF18 LDRB R3, [R0,R6] .text:0004CF1C CMP R3, R2 .text:0004CF20 BCS loc_4D5B4 .text:0004CF24 ADD R6, R6, #1 .text:0004CF28 CMP R6, R1 .text:0004CF2C BCC loc_4CF18 .text:0004CF30 .text:0004CF30 loc_4CF30 ; CODE XREF: __tzfile_read+314j .text:0004CF30 LDR R3, =num_transitions .text:0004CF34 LDR R6, [R3] .text:0004CF38 MOV R3, R6 .text:0004CF3C SUB R6, R6, #1 .text:0004CF40 CMP R3, #0 .text:0004CF44 BEQ loc_4CF80 .text:0004CF48 LDR R12, =transitions .text:0004CF4C .text:0004CF4C loc_4CF4C ; CODE XREF: __tzfile_read+38Cj .text:0004CF4C LDR R0, [R12] .text:0004CF50 MOV R2, R6 .text:0004CF54 LDR R1, [R0,R6,LSL#2] .text:0004CF58 CMP R2, #0 .text:0004CF5C AND R3, R1, #0xFF0000 .text:0004CF60 MOV R3, R3,LSR#8 .text:0004CF64 ORR R3, R3, R1,LSR#24 .text:0004CF68 AND R2, R1, #0xFF00 .text:0004CF6C ORR R3, R3, R2,LSL#8 .text:0004CF70 ORR R3, R3, R1,LSL#24 .text:0004CF74 STR R3, [R0,R6,LSL#2] .text:0004CF78 SUB R6, R6, #1 .text:0004CF7C BNE loc_4CF4C .text:0004CF80 .text:0004CF80 loc_4CF80 ; CODE XREF: __tzfile_read+354j .text:0004CF80 LDR R3, [R10] .text:0004CF84 MOV R6, #0 .text:0004CF88 CMP R6, R3 .text:0004CF8C BCS loc_4D0D0 .text:0004CF90 MOV R8, R6 .text:0004CF94 LDR R9, =types .text:0004CF98 .text:0004CF98 loc_4CF98 ; CODE XREF: __tzfile_read+4DCj .text:0004CF98 SUB R5, R11, #-var_58 .text:0004CF9C MOV R4, #4 .text:0004CFA0 B loc_4CFAC .text:0004CFA4 ; --------------------------------------------------------------------------- .text:0004CFA4 .text:0004CFA4 loc_4CFA4 ; CODE XREF: __tzfile_read+424j .text:0004CFA4 SUB R4, R4, #1 .text:0004CFA8 STRB R0, [R5],#1 .text:0004CFAC .text:0004CFAC loc_4CFAC ; CODE XREF: __tzfile_read+3B0j .text:0004CFAC CMP R4, #0 .text:0004CFB0 BEQ loc_4D018 .text:0004CFB4 LDMIB R7, {R2,R3} .text:0004CFB8 CMP R2, R3 .text:0004CFBC BCC loc_4D008 .text:0004CFC0 MOV R0, R7 .text:0004CFC4 BL __uflow .text:0004CFC8 B loc_4D010 .text:0004CFC8 ; --------------------------------------------------------------------------- .text:0004CFCC off_4CFCC DCD __use_tzfile ; DATA XREF: __tzfile_read+Cr .text:0004CFD0 off_4CFD0 DCD transitions ; DATA XREF: __tzfile_read+14r .text:0004CFD0 ; __tzfile_read:loc_4CC2Cr ... .text:0004CFD4 off_4CFD4 DCD byte_61ECC ; DATA XREF: __tzfile_read+48r .text:0004CFD4 ; __tzfile_read+78r .text:0004CFD8 off_4CFD8 DCD __libc_enable_secure ; DATA XREF: __tzfile_read+5Cr .text:0004CFDC off_4CFDC DCD default_tzdir.120 ; DATA XREF: __tzfile_read+90r .text:0004CFDC ; __tzfile_read+E4r .text:0004CFDC ; "/usr/local/arm/2.95.3/arm-linux/share/z"... .text:0004CFE0 off_4CFE0 DCD a__ ; DATA XREF: __tzfile_read:loc_4CC94r .text:0004CFE0 ; "../" .text:0004CFE4 off_4CFE4 DCD aTzdir ; DATA XREF: __tzfile_read+C4r .text:0004CFE4 ; "TZDIR" .text:0004CFE8 off_4CFE8 DCD aR_1 ; DATA XREF: __tzfile_read:loc_4CD2Cr .text:0004CFE8 ; "r" .text:0004CFEC off_4CFEC DCD num_transitions ; DATA XREF: __tzfile_read+174r .text:0004CFEC ; __tzfile_read+2D8r ... .text:0004CFF0 off_4CFF0 DCD num_types ; DATA XREF: __tzfile_read+1D8r .text:0004CFF4 off_4CFF4 DCD num_leaps ; DATA XREF: __tzfile_read+1DCr .text:0004CFF8 off_4CFF8 DCD type_idxs ; DATA XREF: __tzfile_read+28Cr .text:0004CFF8 ; __tzfile_read+318r .text:0004CFFC off_4CFFC DCD types ; DATA XREF: __tzfile_read+298r .text:0004CFFC ; __tzfile_read+3A4r .text:0004D000 off_4D000 DCD zone_names ; DATA XREF: __tzfile_read+2A8r .text:0004D004 off_4D004 DCD leaps ; DATA XREF: __tzfile_read+2B8r .text:0004D008 ; --------------------------------------------------------------------------- .text:0004D008 .text:0004D008 loc_4D008 ; CODE XREF: __tzfile_read+3CCj .text:0004D008 LDRB R0, [R2],#1 .text:0004D00C STR R2, [R7,#4] .text:0004D010 .text:0004D010 loc_4D010 ; CODE XREF: __tzfile_read+3D8j .text:0004D010 CMN R0, #1 .text:0004D014 BNE loc_4CFA4 .text:0004D018 .text:0004D018 loc_4D018 ; CODE XREF: __tzfile_read+3C0j .text:0004D018 CMP R4, #0 .text:0004D01C BNE loc_4D5B4 .text:0004D020 LDMIB R7, {R2,R3} .text:0004D024 CMP R2, R3 .text:0004D028 BCC loc_4D038 .text:0004D02C MOV R0, R7 .text:0004D030 BL __uflow .text:0004D034 B loc_4D044 .text:0004D038 ; --------------------------------------------------------------------------- .text:0004D038 .text:0004D038 loc_4D038 ; CODE XREF: __tzfile_read+438j .text:0004D038 LDRB R3, [R2],#1 .text:0004D03C MOV R0, R3 .text:0004D040 STR R2, [R7,#4] .text:0004D044 .text:0004D044 loc_4D044 ; CODE XREF: __tzfile_read+444j .text:0004D044 CMP R0, #1 .text:0004D048 BHI loc_4D5B4 .text:0004D04C LDR R1, =types .text:0004D050 LDR R3, [R1] .text:0004D054 ADD R3, R8, R3 .text:0004D058 STRB R0, [R3,#4] .text:0004D05C LDMIB R7, {R2,R3} .text:0004D060 CMP R2, R3 .text:0004D064 BCC loc_4D074 .text:0004D068 MOV R0, R7 .text:0004D06C BL __uflow .text:0004D070 B loc_4D080 .text:0004D074 ; --------------------------------------------------------------------------- .text:0004D074 .text:0004D074 loc_4D074 ; CODE XREF: __tzfile_read+474j .text:0004D074 LDRB R3, [R2],#1 .text:0004D078 MOV R0, R3 .text:0004D07C STR R2, [R7,#4] .text:0004D080 .text:0004D080 loc_4D080 ; CODE XREF: __tzfile_read+480j .text:0004D080 LDR R2, [R11,#var_70] .text:0004D084 CMP R0, R2 .text:0004D088 BHI loc_4D5B4 .text:0004D08C LDR R3, [R9] .text:0004D090 ADD R3, R8, R3 .text:0004D094 STRB R0, [R3,#5] .text:0004D098 LDR R1, [R11,#var_58] .text:0004D09C AND R3, R1, #0xFF0000 .text:0004D0A0 MOV R3, R3,LSR#8 .text:0004D0A4 ORR R3, R3, R1,LSR#24 .text:0004D0A8 AND R2, R1, #0xFF00 .text:0004D0AC ORR R3, R3, R2,LSL#8 .text:0004D0B0 LDR R0, [R9] .text:0004D0B4 ORR R3, R3, R1,LSL#24 .text:0004D0B8 STR R3, [R8,R0] .text:0004D0BC ADD R6, R6, #1 .text:0004D0C0 LDR R3, [R10] .text:0004D0C4 ADD R8, R8, #8 .text:0004D0C8 CMP R6, R3 .text:0004D0CC BCC loc_4CF98 .text:0004D0D0 .text:0004D0D0 loc_4D0D0 ; CODE XREF: __tzfile_read+39Cj .text:0004D0D0 LDR R3, =zone_names .text:0004D0D4 LDR R0, [R3] .text:0004D0D8 MOV R1, #1 .text:0004D0DC LDR R2, [R11,#var_70] .text:0004D0E0 MOV R3, R7 .text:0004D0E4 BL fread_unlocked .text:0004D0E8 LDR R1, [R11,#var_70] .text:0004D0EC CMP R0, R1 .text:0004D0F0 BNE loc_4D5B4 .text:0004D0F4 LDR R2, =num_leaps .text:0004D0F8 LDR R3, [R2] .text:0004D0FC MOV R6, #0 .text:0004D100 CMP R6, R3 .text:0004D104 BCS loc_4D218 .text:0004D108 SUB R9, R11, #-var_5C .text:0004D10C MOV R8, R6 .text:0004D110 .text:0004D110 loc_4D110 ; CODE XREF: __tzfile_read+624j .text:0004D110 SUB R5, R11, #-var_5C .text:0004D114 MOV R4, #4 .text:0004D118 B loc_4D124 .text:0004D11C ; --------------------------------------------------------------------------- .text:0004D11C .text:0004D11C loc_4D11C ; CODE XREF: __tzfile_read+560j .text:0004D11C SUB R4, R4, #1 .text:0004D120 STRB R0, [R5],#1 .text:0004D124 .text:0004D124 loc_4D124 ; CODE XREF: __tzfile_read+528j .text:0004D124 CMP R4, #0 .text:0004D128 BEQ loc_4D154 .text:0004D12C LDMIB R7, {R2,R3} .text:0004D130 CMP R2, R3 .text:0004D134 BCC loc_4D144 .text:0004D138 MOV R0, R7 .text:0004D13C BL __uflow .text:0004D140 B loc_4D14C .text:0004D144 ; --------------------------------------------------------------------------- .text:0004D144 .text:0004D144 loc_4D144 ; CODE XREF: __tzfile_read+544j .text:0004D144 LDRB R0, [R2],#1 .text:0004D148 STR R2, [R7,#4] .text:0004D14C .text:0004D14C loc_4D14C ; CODE XREF: __tzfile_read+550j .text:0004D14C CMN R0, #1 .text:0004D150 BNE loc_4D11C .text:0004D154 .text:0004D154 loc_4D154 ; CODE XREF: __tzfile_read+538j .text:0004D154 RSB R3, R4, #4 .text:0004D158 CMP R3, #4 .text:0004D15C BNE loc_4D5B4 .text:0004D160 LDR R0, [R11,#var_5C] .text:0004D164 MOV R4, R3 .text:0004D168 AND R3, R0, #0xFF0000 .text:0004D16C MOV R3, R3,LSR#8 .text:0004D170 ORR R3, R3, R0,LSR#24 .text:0004D174 AND R2, R0, #0xFF00 .text:0004D178 ORR R3, R3, R2,LSL#8 .text:0004D17C LDR R2, =leaps .text:0004D180 MOV R5, R9 .text:0004D184 LDR R1, [R2] .text:0004D188 ORR R3, R3, R0,LSL#24 .text:0004D18C STR R3, [R1,R6,LSL#3] .text:0004D190 B loc_4D19C .text:0004D194 ; --------------------------------------------------------------------------- .text:0004D194 .text:0004D194 loc_4D194 ; CODE XREF: __tzfile_read+5D8j .text:0004D194 SUB R4, R4, #1 .text:0004D198 STRB R0, [R5],#1 .text:0004D19C .text:0004D19C loc_4D19C ; CODE XREF: __tzfile_read+5A0j .text:0004D19C CMP R4, #0 .text:0004D1A0 BEQ loc_4D1CC .text:0004D1A4 LDMIB R7, {R2,R3} .text:0004D1A8 CMP R2, R3 .text:0004D1AC BCC loc_4D1BC .text:0004D1B0 MOV R0, R7 .text:0004D1B4 BL __uflow .text:0004D1B8 B loc_4D1C4 .text:0004D1BC ; --------------------------------------------------------------------------- .text:0004D1BC .text:0004D1BC loc_4D1BC ; CODE XREF: __tzfile_read+5BCj .text:0004D1BC LDRB R0, [R2],#1 .text:0004D1C0 STR R2, [R7,#4] .text:0004D1C4 .text:0004D1C4 loc_4D1C4 ; CODE XREF: __tzfile_read+5C8j .text:0004D1C4 CMN R0, #1 .text:0004D1C8 BNE loc_4D194 .text:0004D1CC .text:0004D1CC loc_4D1CC ; CODE XREF: __tzfile_read+5B0j .text:0004D1CC CMP R4, #0 .text:0004D1D0 BNE loc_4D5B4 .text:0004D1D4 LDR R0, [R11,#var_5C] .text:0004D1D8 AND R3, R0, #0xFF0000 .text:0004D1DC MOV R3, R3,LSR#8 .text:0004D1E0 ORR R3, R3, R0,LSR#24 .text:0004D1E4 AND R2, R0, #0xFF00 .text:0004D1E8 ORR R3, R3, R2,LSL#8 .text:0004D1EC LDR R2, =leaps .text:0004D1F0 LDR R1, [R2] .text:0004D1F4 ORR R3, R3, R0,LSL#24 .text:0004D1F8 ADD R1, R8, R1 .text:0004D1FC STR R3, [R1,#4] .text:0004D200 LDR R1, =num_leaps .text:0004D204 ADD R6, R6, #1 .text:0004D208 LDR R3, [R1] .text:0004D20C ADD R8, R8, #8 .text:0004D210 CMP R6, R3 .text:0004D214 BCC loc_4D110 .text:0004D218 .text:0004D218 loc_4D218 ; CODE XREF: __tzfile_read+514j .text:0004D218 LDR R2, [R11,#var_68] .text:0004D21C MOV R6, #0 .text:0004D220 CMP R6, R2 .text:0004D224 BCS loc_4D27C .text:0004D228 .text:0004D228 loc_4D228 ; CODE XREF: __tzfile_read+688j .text:0004D228 LDMIB R7, {R1,R3} .text:0004D22C CMP R1, R3 .text:0004D230 BCC loc_4D240 .text:0004D234 MOV R0, R7 .text:0004D238 BL __uflow .text:0004D23C B loc_4D24C .text:0004D240 ; --------------------------------------------------------------------------- .text:0004D240 .text:0004D240 loc_4D240 ; CODE XREF: __tzfile_read+640j .text:0004D240 LDRB R3, [R1],#1 .text:0004D244 MOV R0, R3 .text:0004D248 STR R1, [R7,#4] .text:0004D24C .text:0004D24C loc_4D24C ; CODE XREF: __tzfile_read+64Cj .text:0004D24C CMN R0, #1 .text:0004D250 BEQ loc_4D5B4 .text:0004D254 LDR R1, =types .text:0004D258 LDR R3, [R1] .text:0004D25C SUBS R2, R0, #0 .text:0004D260 MOVNE R2, #1 .text:0004D264 LDR R1, [R11,#var_68] .text:0004D268 ADD R3, R3, R6,LSL#3 .text:0004D26C ADD R6, R6, #1 .text:0004D270 CMP R6, R1 .text:0004D274 STRB R2, [R3,#6] .text:0004D278 BCC loc_4D228 .text:0004D27C .text:0004D27C loc_4D27C ; CODE XREF: __tzfile_read+634j .text:0004D27C LDR R3, [R10] .text:0004D280 CMP R6, R3 .text:0004D284 BCS loc_4D2AC .text:0004D288 MOV R0, #0 .text:0004D28C LDR R1, =types .text:0004D290 .text:0004D290 loc_4D290 ; CODE XREF: __tzfile_read+6B8j .text:0004D290 LDR R3, [R1] .text:0004D294 ADD R3, R3, R6,LSL#3 .text:0004D298 STRB R0, [R3,#6] .text:0004D29C LDR R2, [R10] .text:0004D2A0 ADD R6, R6, #1 .text:0004D2A4 CMP R6, R2 .text:0004D2A8 BCC loc_4D290 .text:0004D2AC .text:0004D2AC loc_4D2AC ; CODE XREF: __tzfile_read+694j .text:0004D2AC LDR R2, [R11,#var_6C] .text:0004D2B0 MOV R6, #0 .text:0004D2B4 CMP R6, R2 .text:0004D2B8 BCS loc_4D320 .text:0004D2BC .text:0004D2BC loc_4D2BC ; CODE XREF: __tzfile_read+72Cj .text:0004D2BC LDMIB R7, {R1,R3} .text:0004D2C0 CMP R1, R3 .text:0004D2C4 BCC loc_4D2E4 .text:0004D2C8 MOV R0, R7 .text:0004D2CC BL __uflow .text:0004D2D0 B loc_4D2F0 .text:0004D2D0 ; --------------------------------------------------------------------------- .text:0004D2D4 off_4D2D4 DCD types ; DATA XREF: __tzfile_read+45Cr .text:0004D2D4 ; __tzfile_read+664r ... .text:0004D2D8 off_4D2D8 DCD zone_names ; DATA XREF: __tzfile_read:loc_4D0D0r .text:0004D2DC off_4D2DC DCD num_leaps ; DATA XREF: __tzfile_read+504r .text:0004D2DC ; __tzfile_read+610r .text:0004D2E0 off_4D2E0 DCD leaps ; DATA XREF: __tzfile_read+58Cr .text:0004D2E0 ; __tzfile_read+5FCr .text:0004D2E4 ; --------------------------------------------------------------------------- .text:0004D2E4 .text:0004D2E4 loc_4D2E4 ; CODE XREF: __tzfile_read+6D4j .text:0004D2E4 LDRB R3, [R1],#1 .text:0004D2E8 MOV R0, R3 .text:0004D2EC STR R1, [R7,#4] .text:0004D2F0 .text:0004D2F0 loc_4D2F0 ; CODE XREF: __tzfile_read+6E0j .text:0004D2F0 CMN R0, #1 .text:0004D2F4 BEQ loc_4D5B4 .text:0004D2F8 LDR R1, =types .text:0004D2FC LDR R3, [R1] .text:0004D300 SUBS R2, R0, #0 .text:0004D304 MOVNE R2, #1 .text:0004D308 LDR R1, [R11,#var_6C] .text:0004D30C ADD R3, R3, R6,LSL#3 .text:0004D310 ADD R6, R6, #1 .text:0004D314 CMP R6, R1 .text:0004D318 STRB R2, [R3,#7] .text:0004D31C BCC loc_4D2BC .text:0004D320 .text:0004D320 loc_4D320 ; CODE XREF: __tzfile_read+6C8j .text:0004D320 LDR R3, [R10] .text:0004D324 LDR R5, =tzname .text:0004D328 LDR R9, =rule_stdoff .text:0004D32C LDR R8, =rule_dstoff .text:0004D330 CMP R6, R3 .text:0004D334 BCS loc_4D35C .text:0004D338 MOV R0, #0 .text:0004D33C LDR R1, =types .text:0004D340 .text:0004D340 loc_4D340 ; CODE XREF: __tzfile_read+768j .text:0004D340 LDR R3, [R1] .text:0004D344 ADD R3, R3, R6,LSL#3 .text:0004D348 STRB R0, [R3,#7] .text:0004D34C LDR R2, [R10] .text:0004D350 ADD R6, R6, #1 .text:0004D354 CMP R6, R2 .text:0004D358 BCC loc_4D340 .text:0004D35C .text:0004D35C loc_4D35C ; CODE XREF: __tzfile_read+744j .text:0004D35C MOV R0, R7 .text:0004D360 BL fclose .text:0004D364 LDR R3, [R10] .text:0004D368 MOV R6, #0 .text:0004D36C CMP R6, R3 .text:0004D370 BCS loc_4D3A4 .text:0004D374 .text:0004D374 loc_4D374 ; CODE XREF: __tzfile_read+7B0j .text:0004D374 LDR R2, =types .text:0004D378 LDR R3, [R2] .text:0004D37C ADD R3, R3, R6,LSL#3 .text:0004D380 LDRB R2, [R3,#5] .text:0004D384 LDR R3, =zone_names .text:0004D388 LDR R0, [R3] .text:0004D38C ADD R0, R0, R2 .text:0004D390 BL __tzstring .text:0004D394 LDR R3, [R10] .text:0004D398 ADD R6, R6, #1 .text:0004D39C CMP R6, R3 .text:0004D3A0 BCC loc_4D374 .text:0004D3A4 .text:0004D3A4 loc_4D3A4 ; CODE XREF: __tzfile_read+780j .text:0004D3A4 MOV R3, #0 .text:0004D3A8 STR R3, [R5] .text:0004D3AC LDR R1, =num_transitions .text:0004D3B0 LDR R6, [R1] .text:0004D3B4 STR R3, [R5,#4] .text:0004D3B8 CMP R6, R3 .text:0004D3BC BEQ loc_4D420 .text:0004D3C0 .text:0004D3C0 loc_4D3C0 ; CODE XREF: __tzfile_read+82Cj .text:0004D3C0 LDR R3, =type_idxs .text:0004D3C4 LDR R2, [R3] .text:0004D3C8 SUB R6, R6, #1 .text:0004D3CC LDRB R1, [R2,R6] .text:0004D3D0 LDR R2, =types .text:0004D3D4 LDR R3, [R2] .text:0004D3D8 ADD R2, R3, R1,LSL#3 .text:0004D3DC LDRB R7, [R2,#4] .text:0004D3E0 MOV R4, R7,LSL#2 .text:0004D3E4 LDR R3, [R4,R5] .text:0004D3E8 CMP R3, #0 .text:0004D3EC BNE loc_4D418 .text:0004D3F0 LDR R1, =zone_names .text:0004D3F4 LDRB R3, [R2,#5] .text:0004D3F8 LDR R0, [R1] .text:0004D3FC ADD R0, R0, R3 .text:0004D400 BL __tzstring .text:0004D404 STR R0, [R4,R5] .text:0004D408 RSB R3, R7, #1 .text:0004D40C LDR R2, [R5,R3,LSL#2] .text:0004D410 CMP R2, #0 .text:0004D414 BNE loc_4D420 .text:0004D418 .text:0004D418 loc_4D418 ; CODE XREF: __tzfile_read+7FCj .text:0004D418 CMP R6, #0 .text:0004D41C BNE loc_4D3C0 .text:0004D420 .text:0004D420 loc_4D420 ; CODE XREF: __tzfile_read+7CCj .text:0004D420 ; __tzfile_read+824j .text:0004D420 LDR R3, [R5] .text:0004D424 CMP R3, #0 .text:0004D428 BNE loc_4D460 .text:0004D42C LDR R3, [R10] .text:0004D430 CMP R3, #1 .text:0004D434 BEQ loc_4D450 .text:0004D438 LDR R0, =aNum_types1 ; "num_types == 1" .text:0004D43C LDR R1, =aTzfile_c ; "tzfile.c" .text:0004D440 MOV R2, #0x12C .text:0004D444 LDR R3, =a__tzfile_read ; "__tzfile_read" .text:0004D448 ADD R2, R2, #3 .text:0004D44C BL __assert_fail .text:0004D450 ; --------------------------------------------------------------------------- .text:0004D450 .text:0004D450 loc_4D450 ; CODE XREF: __tzfile_read+844j .text:0004D450 LDR R2, =zone_names .text:0004D454 LDR R0, [R2] .text:0004D458 BL __tzstring .text:0004D45C STR R0, [R5] .text:0004D460 .text:0004D460 loc_4D460 ; CODE XREF: __tzfile_read+838j .text:0004D460 LDR R3, [R5,#4] .text:0004D464 CMP R3, #0 .text:0004D468 LDREQ R3, [R5] .text:0004D46C STREQ R3, [R5,#4] .text:0004D470 LDR R0, [R11,#var_70] .text:0004D474 BL compute_tzname_max .text:0004D478 LDR R3, =num_transitions .text:0004D47C LDR R2, [R3] .text:0004D480 CMP R2, #0 .text:0004D484 BNE loc_4D4A0 .text:0004D488 LDR R1, =types .text:0004D48C LDR R3, [R1] .text:0004D490 LDR R2, [R3] .text:0004D494 STR R2, [R8] .text:0004D498 STR R2, [R9] .text:0004D49C B loc_4D54C .text:0004D4A0 ; --------------------------------------------------------------------------- .text:0004D4A0 .text:0004D4A0 loc_4D4A0 ; CODE XREF: __tzfile_read+894j .text:0004D4A0 MOV R12, #0 .text:0004D4A4 STR R12, [R8] .text:0004D4A8 STR R12, [R9] .text:0004D4AC MOV LR, R12 .text:0004D4B0 SUB R6, R2, #1 .text:0004D4B4 MOV R10, R9 .text:0004D4B8 LDR R5, =type_idxs .text:0004D4BC MOV R7, R8 .text:0004D4C0 LDR R4, =types .text:0004D4C4 .text:0004D4C4 loc_4D4C4 ; CODE XREF: __tzfile_read+94Cj .text:0004D4C4 CMP LR, #0 .text:0004D4C8 BNE loc_4D4F8 .text:0004D4CC LDR R3, [R5] .text:0004D4D0 LDRB R2, [R3,R6] .text:0004D4D4 LDR R0, [R4] .text:0004D4D8 MOV R1, R2,LSL#3 .text:0004D4DC ADD R3, R1, R0 .text:0004D4E0 LDRB R2, [R3,#4] .text:0004D4E4 CMP R2, #0 .text:0004D4E8 LDREQ R3, [R1,R0] .text:0004D4EC MOVEQ LR, #1 .text:0004D4F0 STREQ R3, [R10] .text:0004D4F4 BEQ loc_4D528 .text:0004D4F8 .text:0004D4F8 loc_4D4F8 ; CODE XREF: __tzfile_read+8D8j .text:0004D4F8 CMP R12, #0 .text:0004D4FC BNE loc_4D528 .text:0004D500 LDR R3, [R5] .text:0004D504 LDRB R2, [R3,R6] .text:0004D508 LDR R0, [R4] .text:0004D50C MOV R1, R2,LSL#3 .text:0004D510 ADD R3, R1, R0 .text:0004D514 LDRB R2, [R3,#4] .text:0004D518 CMP R2, #0 .text:0004D51C LDRNE R3, [R1,R0] .text:0004D520 MOVNE R12, #1 .text:0004D524 STRNE R3, [R7] .text:0004D528 .text:0004D528 loc_4D528 ; CODE XREF: __tzfile_read+904j .text:0004D528 ; __tzfile_read+90Cj .text:0004D528 TST LR, R12 .text:0004D52C BNE loc_4D540 .text:0004D530 MOV R3, R6 .text:0004D534 SUB R6, R6, #1 .text:0004D538 CMP R3, #0 .text:0004D53C BNE loc_4D4C4 .text:0004D540 .text:0004D540 loc_4D540 ; CODE XREF: __tzfile_read+93Cj .text:0004D540 CMP R12, #0 .text:0004D544 LDREQ R3, [R9] .text:0004D548 STREQ R3, [R8] .text:0004D54C .text:0004D54C loc_4D54C ; CODE XREF: __tzfile_read+8ACj .text:0004D54C LDR R2, =__use_tzfile .text:0004D550 MOV R3, #1 .text:0004D554 STR R3, [R2] .text:0004D558 LDR R3, [R8] .text:0004D55C LDR R1, [R9] .text:0004D560 LDR R2, =daylight .text:0004D564 SUBS R3, R1, R3 .text:0004D568 MOVNE R3, #1 .text:0004D56C STR R3, [R2] .text:0004D570 LDR R3, =timezone .text:0004D574 RSB R1, R1, #0 .text:0004D578 STR R1, [R3] .text:0004D57C B locret_4D5BC .text:0004D57C ; --------------------------------------------------------------------------- .text:0004D580 off_4D580 DCD types ; DATA XREF: __tzfile_read+708r .text:0004D580 ; __tzfile_read+74Cr ... .text:0004D584 off_4D584 DCD tzname ; DATA XREF: __tzfile_read+734r .text:0004D588 off_4D588 DCD rule_stdoff ; DATA XREF: __tzfile_read+738r .text:0004D58C off_4D58C DCD rule_dstoff ; DATA XREF: __tzfile_read+73Cr .text:0004D590 off_4D590 DCD zone_names ; DATA XREF: __tzfile_read+794r .text:0004D590 ; __tzfile_read+800r ... .text:0004D594 off_4D594 DCD num_transitions ; DATA XREF: __tzfile_read+7BCr .text:0004D594 ; __tzfile_read+888r .text:0004D598 off_4D598 DCD type_idxs ; DATA XREF: __tzfile_read:loc_4D3C0r .text:0004D598 ; __tzfile_read+8C8r .text:0004D59C off_4D59C DCD aNum_types1 ; DATA XREF: __tzfile_read+848r .text:0004D59C ; "num_types == 1" .text:0004D5A0 off_4D5A0 DCD aTzfile_c ; DATA XREF: __tzfile_read+84Cr .text:0004D5A0 ; "tzfile.c" .text:0004D5A4 off_4D5A4 DCD a__tzfile_read ; DATA XREF: __tzfile_read+854r .text:0004D5A4 ; "__tzfile_read" .text:0004D5A8 off_4D5A8 DCD __use_tzfile ; DATA XREF: __tzfile_read:loc_4D54Cr .text:0004D5AC off_4D5AC DCD daylight ; DATA XREF: __tzfile_read+970r .text:0004D5B0 off_4D5B0 DCD timezone ; DATA XREF: __tzfile_read+980r .text:0004D5B4 ; --------------------------------------------------------------------------- .text:0004D5B4 .text:0004D5B4 loc_4D5B4 ; CODE XREF: __tzfile_read+16Cj .text:0004D5B4 ; __tzfile_read+284j ... .text:0004D5B4 MOV R0, R7 .text:0004D5B8 BL fclose .text:0004D5BC .text:0004D5BC locret_4D5BC ; CODE XREF: __tzfile_read+58j .text:0004D5BC ; __tzfile_read+A0j ... .text:0004D5BC LDMDB R11, {R4-R11,SP,PC} .text:0004D5BC ; End of function __tzfile_read .text:0004D5BC .text:0004D5C0 .text:0004D5C0 ; =============== S U B R O U T I N E ======================================= .text:0004D5C0 .text:0004D5C0 ; Attributes: bp-based frame .text:0004D5C0 .text:0004D5C0 EXPORT __tzfile_default .text:0004D5C0 __tzfile_default ; CODE XREF: tzset_internal+624p .text:0004D5C0 .text:0004D5C0 var_38 = -0x38 .text:0004D5C0 var_34 = -0x34 .text:0004D5C0 var_30 = -0x30 .text:0004D5C0 var_2C = -0x2C .text:0004D5C0 .text:0004D5C0 MOV R12, SP .text:0004D5C4 STMFD SP!, {R4-R12,LR,PC} .text:0004D5C8 SUB R11, R12, #4 .text:0004D5CC SUB SP, SP, #0x10 .text:0004D5D0 STR R0, [R11,#var_30] .text:0004D5D4 STR R1, [R11,#var_34] .text:0004D5D8 MOV R7, R2 .text:0004D5DC MOV R9, R3 .text:0004D5E0 BL strlen .text:0004D5E4 ADD R8, R0, #1 .text:0004D5E8 LDR R0, [R11,#var_34] .text:0004D5EC BL strlen .text:0004D5F0 ADD R4, R0, #1 .text:0004D5F4 ADD R10, R8, R4 .text:0004D5F8 MOV R1, R10 .text:0004D5FC LDR R0, =aPosixrules ; "posixrules" .text:0004D600 SUB R2, R11, #-var_2C .text:0004D604 BL __tzfile_read .text:0004D608 LDR R2, =__use_tzfile .text:0004D60C LDR R3, [R2] .text:0004D610 CMP R3, #0 .text:0004D614 BEQ locret_4D7B8 .text:0004D618 LDR R5, =num_types .text:0004D61C LDR R3, [R5] .text:0004D620 CMP R3, #1 .text:0004D624 MOVLS R3, #0 .text:0004D628 STRLS R3, [R2] .text:0004D62C BLS locret_4D7B8 .text:0004D630 LDR R1, [R11,#var_30] .text:0004D634 LDR R0, [R11,#var_2C] .text:0004D638 MOV R2, R8 .text:0004D63C BL mempcpy .text:0004D640 LDR R1, [R11,#var_34] .text:0004D644 MOV R2, R4 .text:0004D648 BL mempcpy .text:0004D64C MOV R3, #2 .text:0004D650 STR R3, [R5] .text:0004D654 LDR R2, =zone_names .text:0004D658 LDR R3, [R11,#var_2C] .text:0004D65C STR R3, [R2] .text:0004D660 LDR R1, =num_transitions .text:0004D664 LDR R6, =types .text:0004D668 MOV LR, #0 .text:0004D66C LDR R3, [R1] .text:0004D670 MOV R4, LR .text:0004D674 STR R10, [R11,#var_38] .text:0004D678 CMP LR, R3 .text:0004D67C BCS loc_4D73C .text:0004D680 LDR R5, =transitions .text:0004D684 LDR R10, =rule_dstoff .text:0004D688 .text:0004D688 loc_4D688 ; CODE XREF: __tzfile_default+178j .text:0004D688 LDR R2, =type_idxs .text:0004D68C LDR R0, [R2] .text:0004D690 LDR R2, =types .text:0004D694 LDRB R1, [R0,LR] .text:0004D698 LDR R3, [R2] .text:0004D69C ADD R12, R3, R1,LSL#3 .text:0004D6A0 LDRB R2, [R12,#4] .text:0004D6A4 STRB R2, [R0,LR] .text:0004D6A8 LDRB R3, [R12,#7] .text:0004D6AC CMP R3, #0 .text:0004D6B0 BNE loc_4D724 .text:0004D6B4 CMP R4, #0 .text:0004D6B8 BEQ loc_4D708 .text:0004D6BC LDRB R3, [R12,#6] .text:0004D6C0 CMP R3, #0 .text:0004D6C4 BNE loc_4D708 .text:0004D6C8 LDR R3, [R5] .text:0004D6CC LDR R2, [R10] .text:0004D6D0 LDR R1, [R3,LR,LSL#2] .text:0004D6D4 RSB R2, R2, R9 .text:0004D6D8 ADD R1, R1, R2 .text:0004D6DC STR R1, [R3,LR,LSL#2] .text:0004D6E0 B loc_4D724 .text:0004D6E0 ; --------------------------------------------------------------------------- .text:0004D6E4 off_4D6E4 DCD aPosixrules ; DATA XREF: __tzfile_default+3Cr .text:0004D6E4 ; "posixrules" .text:0004D6E8 off_4D6E8 DCD __use_tzfile ; DATA XREF: __tzfile_default+48r .text:0004D6EC off_4D6EC DCD num_types ; DATA XREF: __tzfile_default+58r .text:0004D6F0 off_4D6F0 DCD zone_names ; DATA XREF: __tzfile_default+94r .text:0004D6F4 off_4D6F4 DCD num_transitions ; DATA XREF: __tzfile_default+A0r .text:0004D6F8 off_4D6F8 DCD types ; DATA XREF: __tzfile_default+A4r .text:0004D6F8 ; __tzfile_default+D0r .text:0004D6FC off_4D6FC DCD transitions ; DATA XREF: __tzfile_default+C0r .text:0004D700 off_4D700 DCD rule_dstoff ; DATA XREF: __tzfile_default+C4r .text:0004D704 off_4D704 DCD type_idxs ; DATA XREF: __tzfile_default:loc_4D688r .text:0004D708 ; --------------------------------------------------------------------------- .text:0004D708 .text:0004D708 loc_4D708 ; CODE XREF: __tzfile_default+F8j .text:0004D708 ; __tzfile_default+104j .text:0004D708 LDR R1, =rule_stdoff .text:0004D70C LDR R0, [R5] .text:0004D710 LDR R3, [R1] .text:0004D714 LDR R2, [R0,LR,LSL#2] .text:0004D718 RSB R3, R3, R7 .text:0004D71C ADD R2, R2, R3 .text:0004D720 STR R2, [R0,LR,LSL#2] .text:0004D724 .text:0004D724 loc_4D724 ; CODE XREF: __tzfile_default+F0j .text:0004D724 ; __tzfile_default+120j .text:0004D724 LDR R2, =num_transitions .text:0004D728 LDR R3, [R2] .text:0004D72C ADD LR, LR, #1 .text:0004D730 LDRB R4, [R12,#4] .text:0004D734 CMP LR, R3 .text:0004D738 BCC loc_4D688 .text:0004D73C .text:0004D73C loc_4D73C ; CODE XREF: __tzfile_default+BCj .text:0004D73C LDR R3, [R6] .text:0004D740 MOV R1, #0 .text:0004D744 STRB R1, [R3,#5] .text:0004D748 LDR R2, [R6] .text:0004D74C STR R7, [R2] .text:0004D750 STRB R1, [R2,#4] .text:0004D754 LDR R3, [R6] .text:0004D758 STRB R8, [R3,#0xD] .text:0004D75C LDR R2, [R6] .text:0004D760 ADD R1, R1, #8 .text:0004D764 STR R9, [R2,R1] .text:0004D768 MOV R3, #1 .text:0004D76C ADD R2, R2, R1 .text:0004D770 STRB R3, [R2,#4] .text:0004D774 LDR R2, [R11,#var_30] .text:0004D778 LDR R3, =tzname .text:0004D77C STR R2, [R3] .text:0004D780 LDR R2, [R11,#var_34] .text:0004D784 STR R2, [R3,#(tzname+4 - 0x6BD80)] .text:0004D788 LDR R2, [R6] .text:0004D78C LDR R3, [R2] .text:0004D790 LDR R2, =timezone .text:0004D794 RSB R3, R3, #0 .text:0004D798 STR R3, [R2] .text:0004D79C LDR R0, [R11,#var_38] .text:0004D7A0 BL compute_tzname_max .text:0004D7A4 B locret_4D7B8 .text:0004D7A4 ; --------------------------------------------------------------------------- .text:0004D7A8 off_4D7A8 DCD rule_stdoff ; DATA XREF: __tzfile_default:loc_4D708r .text:0004D7AC off_4D7AC DCD num_transitions ; DATA XREF: __tzfile_default:loc_4D724r .text:0004D7B0 off_4D7B0 DCD tzname ; DATA XREF: __tzfile_default+1B8r .text:0004D7B4 off_4D7B4 DCD timezone ; DATA XREF: __tzfile_default+1D0r .text:0004D7B8 ; --------------------------------------------------------------------------- .text:0004D7B8 .text:0004D7B8 locret_4D7B8 ; CODE XREF: __tzfile_default+54j .text:0004D7B8 ; __tzfile_default+6Cj ... .text:0004D7B8 LDMDB R11, {R4-R11,SP,PC} .text:0004D7B8 ; End of function __tzfile_default .text:0004D7B8 .text:0004D7BC .text:0004D7BC ; =============== S U B R O U T I N E ======================================= .text:0004D7BC .text:0004D7BC ; Attributes: bp-based frame .text:0004D7BC .text:0004D7BC find_transition ; CODE XREF: __tzfile_compute+24p .text:0004D7BC MOV R12, SP .text:0004D7C0 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0004D7C4 LDR R3, =num_transitions .text:0004D7C8 LDR R2, [R3] .text:0004D7CC SUB R11, R12, #4 .text:0004D7D0 CMP R2, #0 .text:0004D7D4 BEQ loc_4D7EC .text:0004D7D8 LDR LR, =transitions .text:0004D7DC LDR R12, [LR] .text:0004D7E0 LDR R3, [R12] .text:0004D7E4 CMP R0, R3 .text:0004D7E8 BGE loc_4D84C .text:0004D7EC .text:0004D7EC loc_4D7EC ; CODE XREF: find_transition+18j .text:0004D7EC LDR R3, =num_types .text:0004D7F0 LDR R5, =types .text:0004D7F4 MOV R1, #0 .text:0004D7F8 LDR R12, [R3] .text:0004D7FC MOV R4, R3 .text:0004D800 CMP R1, R12 .text:0004D804 BCS loc_4D83C .text:0004D808 LDR R3, [R5] .text:0004D80C LDRB R2, [R3,#4] .text:0004D810 MOV LR, R5 .text:0004D814 CMP R2, R1 .text:0004D818 BEQ loc_4D83C .text:0004D81C .text:0004D81C loc_4D81C ; CODE XREF: find_transition+7Cj .text:0004D81C ADD R1, R1, #1 .text:0004D820 CMP R1, R12 .text:0004D824 BCS loc_4D83C .text:0004D828 LDR R3, [LR] .text:0004D82C ADD R3, R3, R1,LSL#3 .text:0004D830 LDRB R2, [R3,#4] .text:0004D834 CMP R2, #0 .text:0004D838 BNE loc_4D81C .text:0004D83C .text:0004D83C loc_4D83C ; CODE XREF: find_transition+48j .text:0004D83C ; find_transition+5Cj ... .text:0004D83C LDR R3, [R4] .text:0004D840 CMP R1, R3 .text:0004D844 MOVEQ R1, #0 .text:0004D848 B loc_4D898 .text:0004D84C ; --------------------------------------------------------------------------- .text:0004D84C .text:0004D84C loc_4D84C ; CODE XREF: find_transition+2Cj .text:0004D84C MOV R1, #1 .text:0004D850 LDR R5, =types .text:0004D854 CMP R1, R2 .text:0004D858 LDR R4, =type_idxs .text:0004D85C BCS loc_4D88C .text:0004D860 LDR R3, [R12,#4] .text:0004D864 CMP R0, R3 .text:0004D868 BLT loc_4D88C .text:0004D86C MOV R12, R2 .text:0004D870 .text:0004D870 loc_4D870 ; CODE XREF: find_transition+CCj .text:0004D870 ADD R1, R1, #1 .text:0004D874 CMP R1, R12 .text:0004D878 BCS loc_4D88C .text:0004D87C LDR R3, [LR] .text:0004D880 LDR R2, [R3,R1,LSL#2] .text:0004D884 CMP R0, R2 .text:0004D888 BGE loc_4D870 .text:0004D88C .text:0004D88C loc_4D88C ; CODE XREF: find_transition+A0j .text:0004D88C ; find_transition+ACj ... .text:0004D88C LDR R3, [R4] .text:0004D890 ADD R3, R1, R3 .text:0004D894 LDRB R1, [R3,#-1] .text:0004D898 .text:0004D898 loc_4D898 ; CODE XREF: find_transition+8Cj .text:0004D898 LDR R0, [R5] .text:0004D89C ADD R0, R0, R1,LSL#3 .text:0004D8A0 LDMDB R11, {R4,R5,R11,SP,PC} .text:0004D8A0 ; End of function find_transition .text:0004D8A0 .text:0004D8A0 ; --------------------------------------------------------------------------- .text:0004D8A4 off_4D8A4 DCD num_transitions ; DATA XREF: find_transition+8r .text:0004D8A8 off_4D8A8 DCD transitions ; DATA XREF: find_transition+1Cr .text:0004D8AC off_4D8AC DCD num_types ; DATA XREF: find_transition:loc_4D7ECr .text:0004D8B0 off_4D8B0 DCD types ; DATA XREF: find_transition+34r .text:0004D8B0 ; find_transition+94r .text:0004D8B4 off_4D8B4 DCD type_idxs ; DATA XREF: find_transition+9Cr .text:0004D8B8 .text:0004D8B8 ; =============== S U B R O U T I N E ======================================= .text:0004D8B8 .text:0004D8B8 ; Attributes: bp-based frame .text:0004D8B8 .text:0004D8B8 EXPORT __tzfile_compute .text:0004D8B8 __tzfile_compute ; CODE XREF: __tz_convert+88p .text:0004D8B8 .text:0004D8B8 var_30 = -0x30 .text:0004D8B8 var_2C = -0x2C .text:0004D8B8 arg_0 = 4 .text:0004D8B8 .text:0004D8B8 MOV R12, SP .text:0004D8BC STMFD SP!, {R4-R12,LR,PC} .text:0004D8C0 SUB R11, R12, #4 .text:0004D8C4 SUB SP, SP, #8 .text:0004D8C8 STR R2, [R11,#var_2C] .text:0004D8CC CMP R1, #0 .text:0004D8D0 MOV R9, R0 .text:0004D8D4 STR R3, [R11,#var_30] .text:0004D8D8 BEQ loc_4DA40 .text:0004D8DC BL find_transition .text:0004D8E0 LDR R4, =tzname .text:0004D8E4 MOV R3, #0 .text:0004D8E8 STR R3, [R4] .text:0004D8EC STR R3, [R4,#(tzname+4 - 0x6BD80)] .text:0004D8F0 LDR R12, =rule_dstoff .text:0004D8F4 LDR R2, =rule_stdoff .text:0004D8F8 LDR R3, [R12] .text:0004D8FC LDR R1, [R2] .text:0004D900 LDR LR, =daylight .text:0004D904 SUBS R3, R1, R3 .text:0004D908 MOVNE R3, #1 .text:0004D90C STR R3, [LR] .text:0004D910 LDR R10, =zone_names .text:0004D914 LDR R2, =num_transitions .text:0004D918 MOV R8, R0 .text:0004D91C LDR R3, =timezone .text:0004D920 MOV R7, R4 .text:0004D924 LDR R6, [R2] .text:0004D928 RSB R1, R1, #0 .text:0004D92C STR R1, [R3] .text:0004D930 .text:0004D930 loc_4D930 ; CODE XREF: __tzfile_compute+B0j .text:0004D930 ; __tzfile_compute+D0j .text:0004D930 CMP R6, #0 .text:0004D934 BEQ loc_4D98C .text:0004D938 LDR R3, =type_idxs .text:0004D93C LDR R0, =types .text:0004D940 LDR R1, [R3] .text:0004D944 LDR R2, [R0] .text:0004D948 SUB R6, R6, #1 .text:0004D94C LDRB R3, [R1,R6] .text:0004D950 ADD R2, R2, R3,LSL#3 .text:0004D954 LDRB R5, [R2,#4] .text:0004D958 MOV R4, R5,LSL#2 .text:0004D95C LDR R3, [R4,R7] .text:0004D960 CMP R3, #0 .text:0004D964 LDRB R3, [R2,#5] .text:0004D968 BNE loc_4D930 .text:0004D96C LDR R0, [R10] .text:0004D970 ADD R0, R0, R3 .text:0004D974 BL __tzstring .text:0004D978 STR R0, [R4,R7] .text:0004D97C RSB R3, R5, #1 .text:0004D980 LDR R2, [R7,R3,LSL#2] .text:0004D984 CMP R2, #0 .text:0004D988 BEQ loc_4D930 .text:0004D98C .text:0004D98C loc_4D98C ; CODE XREF: __tzfile_compute+7Cj .text:0004D98C LDR R3, [R7] .text:0004D990 CMP R3, #0 .text:0004D994 BNE loc_4DA00 .text:0004D998 LDR R3, =num_types .text:0004D99C LDR R2, [R3] .text:0004D9A0 CMP R2, #1 .text:0004D9A4 BEQ loc_4D9F4 .text:0004D9A8 LDR R0, =aNum_types1 ; "num_types == 1" .text:0004D9AC LDR R1, =aTzfile_c ; "tzfile.c" .text:0004D9B0 MOV R2, #0x1EC .text:0004D9B4 LDR R3, =a__tzfile_compu ; "__tzfile_compute" .text:0004D9B8 ADD R2, R2, #2 .text:0004D9BC BL __assert_fail .text:0004D9BC ; --------------------------------------------------------------------------- .text:0004D9C0 off_4D9C0 DCD tzname ; DATA XREF: __tzfile_compute+28r .text:0004D9C4 off_4D9C4 DCD rule_dstoff ; DATA XREF: __tzfile_compute+38r .text:0004D9C8 off_4D9C8 DCD rule_stdoff ; DATA XREF: __tzfile_compute+3Cr .text:0004D9CC off_4D9CC DCD daylight ; DATA XREF: __tzfile_compute+48r .text:0004D9D0 off_4D9D0 DCD zone_names ; DATA XREF: __tzfile_compute+58r .text:0004D9D4 off_4D9D4 DCD num_transitions ; DATA XREF: __tzfile_compute+5Cr .text:0004D9D8 off_4D9D8 DCD timezone ; DATA XREF: __tzfile_compute+64r .text:0004D9DC off_4D9DC DCD type_idxs ; DATA XREF: __tzfile_compute+80r .text:0004D9E0 off_4D9E0 DCD types ; DATA XREF: __tzfile_compute+84r .text:0004D9E4 off_4D9E4 DCD num_types ; DATA XREF: __tzfile_compute+E0r .text:0004D9E8 off_4D9E8 DCD aNum_types1 ; DATA XREF: __tzfile_compute+F0r .text:0004D9E8 ; "num_types == 1" .text:0004D9EC off_4D9EC DCD aTzfile_c ; DATA XREF: __tzfile_compute+F4r .text:0004D9EC ; "tzfile.c" .text:0004D9F0 off_4D9F0 DCD a__tzfile_compu ; DATA XREF: __tzfile_compute+FCr .text:0004D9F0 ; "__tzfile_compute" .text:0004D9F4 ; --------------------------------------------------------------------------- .text:0004D9F4 .text:0004D9F4 loc_4D9F4 ; CODE XREF: __tzfile_compute+ECj .text:0004D9F4 LDR R0, [R10] .text:0004D9F8 BL __tzstring .text:0004D9FC STR R0, [R7] .text:0004DA00 .text:0004DA00 loc_4DA00 ; CODE XREF: __tzfile_compute+DCj .text:0004DA00 LDR R3, [R7,#4] .text:0004DA04 CMP R3, #0 .text:0004DA08 LDREQ R3, [R7] .text:0004DA0C STREQ R3, [R7,#4] .text:0004DA10 LDRB R3, [R8,#4] .text:0004DA14 LDR R2, [R11,#arg_0] .text:0004DA18 STR R3, [R2,#0x20] .text:0004DA1C LDRB R2, [R8,#5] .text:0004DA20 LDR R0, [R10] .text:0004DA24 ADD R0, R0, R2 .text:0004DA28 BL __tzstring .text:0004DA2C LDR R3, [R11,#arg_0] .text:0004DA30 STR R0, [R3,#0x28] .text:0004DA34 LDR R2, [R11,#arg_0] .text:0004DA38 LDR R3, [R8] .text:0004DA3C STR R3, [R2,#0x24] .text:0004DA40 .text:0004DA40 loc_4DA40 ; CODE XREF: __tzfile_compute+20j .text:0004DA40 LDR R2, [R11,#var_2C] .text:0004DA44 MOV R3, #0 .text:0004DA48 STR R3, [R2] .text:0004DA4C LDR R2, [R11,#var_30] .text:0004DA50 STR R3, [R2] .text:0004DA54 LDR R3, =num_leaps .text:0004DA58 LDR R6, [R3] .text:0004DA5C LDR LR, =leaps .text:0004DA60 MOV R1, R6,LSL#3 .text:0004DA64 .text:0004DA64 loc_4DA64 ; CODE XREF: __tzfile_compute+1D0j .text:0004DA64 SUB R1, R1, #8 .text:0004DA68 SUB R6, R6, #1 .text:0004DA6C CMN R6, #1 .text:0004DA70 BEQ loc_4DB78 .text:0004DA74 LDR R3, [LR] .text:0004DA78 LDR R2, [R1,R3] .text:0004DA7C MOV R12, R1 .text:0004DA80 LDR R0, =leaps .text:0004DA84 CMP R9, R2 .text:0004DA88 BLT loc_4DA64 .text:0004DA8C LDR R3, [R0] .text:0004DA90 ADD R3, R12, R3 .text:0004DA94 LDR R2, [R3,#4] .text:0004DA98 LDR R3, [R11,#var_2C] .text:0004DA9C STR R2, [R3] .text:0004DAA0 LDR R2, [R0] .text:0004DAA4 LDR R3, [R12,R2] .text:0004DAA8 ADD R1, R12, R2 .text:0004DAAC CMP R9, R3 .text:0004DAB0 BNE loc_4DB78 .text:0004DAB4 CMP R6, #0 .text:0004DAB8 BNE loc_4DAC8 .text:0004DABC LDR R3, [R2,#4] .text:0004DAC0 CMP R3, #0 .text:0004DAC4 BGT loc_4DAD8 .text:0004DAC8 .text:0004DAC8 loc_4DAC8 ; CODE XREF: __tzfile_compute+200j .text:0004DAC8 LDR R2, [R1,#4] .text:0004DACC LDR R3, [R1,#-4] .text:0004DAD0 CMP R2, R3 .text:0004DAD4 BLE loc_4DB78 .text:0004DAD8 .text:0004DAD8 loc_4DAD8 ; CODE XREF: __tzfile_compute+20Cj .text:0004DAD8 CMP R6, #0 .text:0004DADC LDR R2, [R11,#var_30] .text:0004DAE0 MOV R3, #1 .text:0004DAE4 STR R3, [R2] .text:0004DAE8 BEQ loc_4DB78 .text:0004DAEC MOV R5, R0 .text:0004DAF0 LDR R0, [R5] .text:0004DAF4 MOV LR, 0xFFFFFFF8 .text:0004DAF8 ADD R2, R12, R0 .text:0004DAFC LDR R3, [R2,LR] .text:0004DB00 LDR R1, [R12,R0] .text:0004DB04 ADD R3, R3, #1 .text:0004DB08 CMP R1, R3 .text:0004DB0C BNE loc_4DB78 .text:0004DB10 MOV R7, R5 .text:0004DB14 MOV R4, LR .text:0004DB18 MOV LR, R12 .text:0004DB1C .text:0004DB1C loc_4DB1C ; CODE XREF: __tzfile_compute+2BCj .text:0004DB1C LDR R1, [R7] .text:0004DB20 ADD R1, LR, R1 .text:0004DB24 ADD R3, R1, R4 .text:0004DB28 LDR R2, [R3,#4] .text:0004DB2C LDR R0, [R1,#4] .text:0004DB30 ADD R2, R2, #1 .text:0004DB34 CMP R0, R2 .text:0004DB38 BNE loc_4DB78 .text:0004DB3C LDR R2, [R11,#var_30] .text:0004DB40 SUB LR, LR, #8 .text:0004DB44 LDR R3, [R2] .text:0004DB48 SUBS R6, R6, #1 .text:0004DB4C ADD R3, R3, #1 .text:0004DB50 STR R3, [R2] .text:0004DB54 BEQ loc_4DB78 .text:0004DB58 LDR R0, [R5] .text:0004DB5C MOV R12, LR .text:0004DB60 ADD R3, R12, R0 .text:0004DB64 LDR R2, [R3,R4] .text:0004DB68 LDR R1, [R12,R0] .text:0004DB6C ADD R2, R2, #1 .text:0004DB70 CMP R1, R2 .text:0004DB74 BEQ loc_4DB1C .text:0004DB78 .text:0004DB78 loc_4DB78 ; CODE XREF: __tzfile_compute+1B8j .text:0004DB78 ; __tzfile_compute+1F8j ... .text:0004DB78 MOV R0, #1 .text:0004DB7C B locret_4DB88 .text:0004DB7C ; --------------------------------------------------------------------------- .text:0004DB80 off_4DB80 DCD num_leaps ; DATA XREF: __tzfile_compute+19Cr .text:0004DB84 off_4DB84 DCD leaps ; DATA XREF: __tzfile_compute+1A4r .text:0004DB84 ; __tzfile_compute+1C8r .text:0004DB88 ; --------------------------------------------------------------------------- .text:0004DB88 .text:0004DB88 locret_4DB88 ; CODE XREF: __tzfile_compute+2C4j .text:0004DB88 LDMDB R11, {R4-R11,SP,PC} .text:0004DB88 ; End of function __tzfile_compute .text:0004DB88 .text:0004DB8C .text:0004DB8C ; =============== S U B R O U T I N E ======================================= .text:0004DB8C .text:0004DB8C ; Attributes: bp-based frame .text:0004DB8C .text:0004DB8C compute_tzname_max ; CODE XREF: __tzfile_read+884p .text:0004DB8C ; __tzfile_default+1E0p .text:0004DB8C MOV R12, SP .text:0004DB90 STMFD SP!, {R4,R11,R12,LR,PC} .text:0004DB94 SUB R11, R12, #4 .text:0004DB98 LDR R12, =__tzname_cur_max .text:0004DB9C LDR R3, =zone_names .text:0004DBA0 MOV R4, R12 .text:0004DBA4 MOV LR, R3 .text:0004DBA8 LDR R2, [R3] .text:0004DBAC .text:0004DBAC loc_4DBAC ; CODE XREF: compute_tzname_max+5Cj .text:0004DBAC LDRB R3, [R2] .text:0004DBB0 MOV R1, R2 .text:0004DBB4 CMP R3, #0 .text:0004DBB8 BEQ loc_4DBC8 .text:0004DBBC .text:0004DBBC loc_4DBBC ; CODE XREF: compute_tzname_max+38j .text:0004DBBC LDRB R3, [R2,#1]! .text:0004DBC0 CMP R3, #0 .text:0004DBC4 BNE loc_4DBBC .text:0004DBC8 .text:0004DBC8 loc_4DBC8 ; CODE XREF: compute_tzname_max+2Cj .text:0004DBC8 LDR R3, [R4] .text:0004DBCC RSB R1, R1, R2 .text:0004DBD0 CMP R1, R3 .text:0004DBD4 STRHI R1, [R12] .text:0004DBD8 LDR R3, [LR] .text:0004DBDC ADD R2, R2, #1 .text:0004DBE0 ADD R3, R3, R0 .text:0004DBE4 CMP R2, R3 .text:0004DBE8 BCC loc_4DBAC .text:0004DBEC LDMDB R11, {R4,R11,SP,PC} .text:0004DBEC ; End of function compute_tzname_max .text:0004DBEC .text:0004DBEC ; --------------------------------------------------------------------------- .text:0004DBF0 off_4DBF0 DCD __tzname_cur_max ; DATA XREF: compute_tzname_max+Cr .text:0004DBF4 off_4DBF4 DCD zone_names ; DATA XREF: compute_tzname_max+10r .text:0004DBF8 .text:0004DBF8 ; =============== S U B R O U T I N E ======================================= .text:0004DBF8 .text:0004DBF8 ; Attributes: bp-based frame .text:0004DBF8 .text:0004DBF8 freeres .text:0004DBF8 MOV R12, SP .text:0004DBFC STMFD SP!, {R11,R12,LR,PC} .text:0004DC00 LDR R3, =transitions .text:0004DC04 LDR R0, [R3] .text:0004DC08 SUB R11, R12, #4 .text:0004DC0C CMP R0, #0 .text:0004DC10 LDMEQDB R11, {R11,SP,PC} .text:0004DC14 BL free .text:0004DC18 LDMDB R11, {R11,SP,PC} .text:0004DC18 ; End of function freeres .text:0004DC18 .text:0004DC18 ; --------------------------------------------------------------------------- .text:0004DC1C off_4DC1C DCD transitions ; DATA XREF: freeres+8r .text:0004DC20 .text:0004DC20 ; =============== S U B R O U T I N E ======================================= .text:0004DC20 .text:0004DC20 ; Attributes: bp-based frame .text:0004DC20 .text:0004DC20 tryopen_o_directory ; CODE XREF: opendir+44p .text:0004DC20 MOV R12, SP .text:0004DC24 STMFD SP!, {R4,R11,R12,LR,PC} .text:0004DC28 SUB R11, R12, #4 .text:0004DC2C BL __errno_location .text:0004DC30 LDR R4, [R0] .text:0004DC34 LDR R0, =aDevNull_0 ; "/dev/null" .text:0004DC38 MOV R1, #0x4800 .text:0004DC3C BL open .text:0004DC40 CMP R0, #0 .text:0004DC44 BLT loc_4DC58 .text:0004DC48 BL close .text:0004DC4C LDR R2, =o_directory_works .text:0004DC50 MOV R3, 0xFFFFFFFF .text:0004DC54 B loc_4DC74 .text:0004DC58 ; --------------------------------------------------------------------------- .text:0004DC58 .text:0004DC58 loc_4DC58 ; CODE XREF: tryopen_o_directory+24j .text:0004DC58 BL __errno_location .text:0004DC5C LDR R3, [R0] .text:0004DC60 CMP R3, #0x14 .text:0004DC64 LDRNE R2, =o_directory_works .text:0004DC68 MOVNE R3, 0xFFFFFFFF .text:0004DC6C LDREQ R2, =o_directory_works .text:0004DC70 MOVEQ R3, #1 .text:0004DC74 .text:0004DC74 loc_4DC74 ; CODE XREF: tryopen_o_directory+34j .text:0004DC74 STR R3, [R2] .text:0004DC78 BL __errno_location .text:0004DC7C STR R4, [R0] .text:0004DC80 LDMDB R11, {R4,R11,SP,PC} .text:0004DC80 ; End of function tryopen_o_directory .text:0004DC80 .text:0004DC80 ; --------------------------------------------------------------------------- .text:0004DC84 off_4DC84 DCD aDevNull_0 ; DATA XREF: tryopen_o_directory+14r .text:0004DC84 ; "/dev/null" .text:0004DC88 off_4DC88 DCD o_directory_works ; DATA XREF: tryopen_o_directory+2Cr .text:0004DC88 ; tryopen_o_directory+44r ... .text:0004DC8C .text:0004DC8C ; =============== S U B R O U T I N E ======================================= .text:0004DC8C .text:0004DC8C ; Attributes: bp-based frame .text:0004DC8C .text:0004DC8C WEAK opendir .text:0004DC8C opendir ; CODE XREF: generic_getcwd+204p .text:0004DC8C .text:0004DC8C var_78 = -0x78 .text:0004DC8C var_68 = -0x68 .text:0004DC8C var_44 = -0x44 .text:0004DC8C .text:0004DC8C MOV R12, SP .text:0004DC90 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:0004DC94 MOV R5, R0 .text:0004DC98 SUB SP, SP, #0x60 .text:0004DC9C LDRB R4, [R5] .text:0004DCA0 SUB R11, R12, #4 .text:0004DCA4 CMP R4, #0 .text:0004DCA8 BNE loc_4DCBC .text:0004DCAC BL __errno_location .text:0004DCB0 MOV R3, #2 .text:0004DCB4 STR R3, [R0] .text:0004DCB8 B loc_4DDE8 .text:0004DCBC ; --------------------------------------------------------------------------- .text:0004DCBC .text:0004DCBC loc_4DCBC ; CODE XREF: opendir+1Cj .text:0004DCBC LDR R2, =o_directory_works .text:0004DCC0 LDR R3, [R2] .text:0004DCC4 MOV R4, R2 .text:0004DCC8 CMP R3, #0 .text:0004DCCC BNE loc_4DCD4 .text:0004DCD0 BL tryopen_o_directory .text:0004DCD4 .text:0004DCD4 loc_4DCD4 ; CODE XREF: opendir+40j .text:0004DCD4 LDR R3, [R4] .text:0004DCD8 CMP R3, #0 .text:0004DCDC BGE loc_4DD1C .text:0004DCE0 MOV R0, #3 .text:0004DCE4 MOV R1, R5 .text:0004DCE8 SUB R2, R11, #-var_78 .text:0004DCEC BL __xstat64 .text:0004DCF0 CMP R0, #0 .text:0004DCF4 BLT loc_4DD14 .text:0004DCF8 LDR R3, [R11,#var_68] .text:0004DCFC AND R3, R3, #0xF000 .text:0004DD00 CMP R3, #0x4000 .text:0004DD04 BEQ loc_4DD1C .text:0004DD08 BL __errno_location .text:0004DD0C MOV R3, #0x14 .text:0004DD10 STR R3, [R0] .text:0004DD14 .text:0004DD14 loc_4DD14 ; CODE XREF: opendir+68j .text:0004DD14 ; opendir+A0j ... .text:0004DD14 MOV R0, #0 .text:0004DD18 B loc_4DDEC .text:0004DD1C ; --------------------------------------------------------------------------- .text:0004DD1C .text:0004DD1C loc_4DD1C ; CODE XREF: opendir+50j .text:0004DD1C ; opendir+78j .text:0004DD1C MOV R0, R5 .text:0004DD20 MOV R1, #0x4800 .text:0004DD24 BL open64 .text:0004DD28 SUBS R6, R0, #0 .text:0004DD2C BLT loc_4DD14 .text:0004DD30 MOV R0, #3 .text:0004DD34 MOV R1, R6 .text:0004DD38 SUB R2, R11, #-var_78 .text:0004DD3C BL __fxstat64 .text:0004DD40 CMP R0, #0 .text:0004DD44 BLT loc_4DDA0 .text:0004DD48 LDR R3, [R4] .text:0004DD4C CMP R3, #0 .text:0004DD50 BGT loc_4DD64 .text:0004DD54 LDR R3, [R11,#var_68] .text:0004DD58 AND R3, R3, #0xF000 .text:0004DD5C CMP R3, #0x4000 .text:0004DD60 BNE loc_4DDA0 .text:0004DD64 .text:0004DD64 loc_4DD64 ; CODE XREF: opendir+C4j .text:0004DD64 MOV R0, R6 .text:0004DD68 MOV R1, #2 .text:0004DD6C MOV R2, #1 .text:0004DD70 BL fcntl .text:0004DD74 CMP R0, #0 .text:0004DD78 BLT loc_4DDA0 .text:0004DD7C LDR R3, [R11,#var_44] .text:0004DD80 MOV R0, #1 .text:0004DD84 CMP R3, #0x10C .text:0004DD88 MOVCS R5, R3 .text:0004DD8C MOVCC R5, #0x10C .text:0004DD90 ADD R1, R5, #0x30 .text:0004DD94 BL calloc .text:0004DD98 SUBS R4, R0, #0 .text:0004DD9C BNE loc_4DDC0 .text:0004DDA0 .text:0004DDA0 loc_4DDA0 ; CODE XREF: opendir+B8j .text:0004DDA0 ; opendir+D4j ... .text:0004DDA0 BL __errno_location .text:0004DDA4 LDR R4, [R0] .text:0004DDA8 MOV R0, R6 .text:0004DDAC BL close .text:0004DDB0 BL __errno_location .text:0004DDB4 STR R4, [R0] .text:0004DDB8 B loc_4DD14 .text:0004DDB8 ; --------------------------------------------------------------------------- .text:0004DDBC off_4DDBC DCD o_directory_works ; DATA XREF: opendir:loc_4DCBCr .text:0004DDC0 ; --------------------------------------------------------------------------- .text:0004DDC0 .text:0004DDC0 loc_4DDC0 ; CODE XREF: opendir+110j .text:0004DDC0 ADD R3, R4, #0x30 .text:0004DDC4 STMIB R4, {R3,R5} .text:0004DDC8 LDR R3, =0 .text:0004DDCC STR R6, [R4] .text:0004DDD0 CMP R3, #0 .text:0004DDD4 BEQ loc_4DDE8 .text:0004DDD8 ADD R0, R4, #0x18 .text:0004DDDC MOV R1, #0 .text:0004DDE0 MOV LR, PC .text:0004DDE4 MOV PC, R3 .text:0004DDE8 .text:0004DDE8 loc_4DDE8 ; CODE XREF: opendir+2Cj .text:0004DDE8 ; opendir+148j .text:0004DDE8 MOV R0, R4 .text:0004DDEC .text:0004DDEC loc_4DDEC ; CODE XREF: opendir+8Cj .text:0004DDEC B locret_4DDF4 .text:0004DDEC ; --------------------------------------------------------------------------- .text:0004DDF0 off_4DDF0 DCD 0 ; DATA XREF: opendir+13Cr .text:0004DDF4 ; --------------------------------------------------------------------------- .text:0004DDF4 .text:0004DDF4 locret_4DDF4 ; CODE XREF: opendir:loc_4DDECj .text:0004DDF4 LDMDB R11, {R4-R6,R11,SP,PC} .text:0004DDF4 ; End of function opendir .text:0004DDF4 .text:0004DDF8 .text:0004DDF8 ; =============== S U B R O U T I N E ======================================= .text:0004DDF8 .text:0004DDF8 ; Attributes: bp-based frame .text:0004DDF8 .text:0004DDF8 WEAK closedir .text:0004DDF8 closedir ; CODE XREF: generic_getcwd+40Cp .text:0004DDF8 ; generic_getcwd+4B0p ... .text:0004DDF8 MOV R12, SP .text:0004DDFC STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0004DE00 SUB R11, R12, #4 .text:0004DE04 SUBS R4, R0, #0 .text:0004DE08 BNE loc_4DE20 .text:0004DE0C BL __errno_location .text:0004DE10 MOV R3, #0x16 .text:0004DE14 STR R3, [R0] .text:0004DE18 MOV R0, 0xFFFFFFFF .text:0004DE1C LDMDB R11, {R4,R5,R11,SP,PC} .text:0004DE20 ; --------------------------------------------------------------------------- .text:0004DE20 .text:0004DE20 loc_4DE20 ; CODE XREF: closedir+10j .text:0004DE20 LDR R3, =0 .text:0004DE24 CMP R3, #0 .text:0004DE28 BEQ loc_4DE38 .text:0004DE2C ADD R0, R4, #0x18 .text:0004DE30 MOV LR, PC .text:0004DE34 MOV PC, R3 .text:0004DE38 .text:0004DE38 loc_4DE38 ; CODE XREF: closedir+30j .text:0004DE38 LDR R3, =0 .text:0004DE3C LDR R5, [R4] .text:0004DE40 CMP R3, #0 .text:0004DE44 BEQ loc_4DE54 .text:0004DE48 ADD R0, R4, #0x18 .text:0004DE4C MOV LR, PC .text:0004DE50 MOV PC, R3 .text:0004DE54 .text:0004DE54 loc_4DE54 ; CODE XREF: closedir+4Cj .text:0004DE54 MOV R0, R4 .text:0004DE58 BL free .text:0004DE5C MOV R0, R5 .text:0004DE60 BL close .text:0004DE64 LDMDB R11, {R4,R5,R11,SP,PC} .text:0004DE64 ; End of function closedir .text:0004DE64 .text:0004DE64 ; --------------------------------------------------------------------------- .text:0004DE68 off_4DE68 DCD 0 ; DATA XREF: closedir:loc_4DE20r .text:0004DE6C off_4DE6C DCD 0 ; DATA XREF: closedir:loc_4DE38r .text:0004DE70 .text:0004DE70 ; =============== S U B R O U T I N E ======================================= .text:0004DE70 .text:0004DE70 ; Attributes: bp-based frame .text:0004DE70 .text:0004DE70 WEAK readdir .text:0004DE70 readdir ; CODE XREF: generic_getcwd+330p .text:0004DE70 MOV R12, SP ; Alternative name is '__readdir' .text:0004DE74 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:0004DE78 SUB R11, R12, #4 .text:0004DE7C LDR R3, =0 .text:0004DE80 MOV R4, R0 .text:0004DE84 CMP R3, #0 .text:0004DE88 BEQ loc_4DE98 .text:0004DE8C ADD R0, R4, #0x18 .text:0004DE90 MOV LR, PC .text:0004DE94 MOV PC, R3 .text:0004DE98 .text:0004DE98 loc_4DE98 ; CODE XREF: readdir+18j .text:0004DE98 LDR R6, =0 .text:0004DE9C .text:0004DE9C loc_4DE9C ; CODE XREF: readdir+8Cj .text:0004DE9C LDR R2, [R4,#0x10] .text:0004DEA0 LDR R3, [R4,#0xC] .text:0004DEA4 CMP R2, R3 .text:0004DEA8 BCC loc_4DECC .text:0004DEAC LDMIA R4, {R0-R2} .text:0004DEB0 BL __getdents .text:0004DEB4 CMP R0, #0 .text:0004DEB8 MOVLE R5, #0 .text:0004DEBC BLE loc_4DF00 .text:0004DEC0 STR R0, [R4,#0xC] .text:0004DEC4 MOV R3, #0 .text:0004DEC8 STR R3, [R4,#0x10] .text:0004DECC .text:0004DECC loc_4DECC ; CODE XREF: readdir+38j .text:0004DECC LDR R0, [R4,#4] .text:0004DED0 LDR R1, [R4,#0x10] .text:0004DED4 ADD R5, R0, R1 .text:0004DED8 LDRB R3, [R5,#8] .text:0004DEDC LDRB R2, [R5,#9] .text:0004DEE0 ORR R3, R3, R2,LSL#8 .text:0004DEE4 ADD R3, R1, R3 .text:0004DEE8 STR R3, [R4,#0x10] .text:0004DEEC LDR R2, [R5,#4] .text:0004DEF0 STR R2, [R4,#0x14] .text:0004DEF4 LDR R3, [R0,R1] .text:0004DEF8 CMP R3, #0 .text:0004DEFC BEQ loc_4DE9C .text:0004DF00 .text:0004DF00 loc_4DF00 ; CODE XREF: readdir+4Cj .text:0004DF00 CMP R6, #0 .text:0004DF04 BEQ loc_4DF14 .text:0004DF08 ADD R0, R4, #0x18 .text:0004DF0C MOV LR, PC .text:0004DF10 MOV PC, R6 .text:0004DF14 .text:0004DF14 loc_4DF14 ; CODE XREF: readdir+94j .text:0004DF14 MOV R0, R5 .text:0004DF18 LDMDB R11, {R4-R6,R11,SP,PC} .text:0004DF18 ; End of function readdir .text:0004DF18 .text:0004DF18 ; --------------------------------------------------------------------------- .text:0004DF1C off_4DF1C DCD 0 ; DATA XREF: readdir+Cr .text:0004DF20 dword_4DF20 DCD 0 ; DATA XREF: readdir:loc_4DE98r .text:0004DF24 .text:0004DF24 ; =============== S U B R O U T I N E ======================================= .text:0004DF24 .text:0004DF24 ; Attributes: bp-based frame .text:0004DF24 .text:0004DF24 EXPORT __getdents .text:0004DF24 __getdents ; CODE XREF: readdir+40p .text:0004DF24 .text:0004DF24 var_54 = -0x54 .text:0004DF24 var_4C = -0x4C .text:0004DF24 var_48 = -0x48 .text:0004DF24 var_44 = -0x44 .text:0004DF24 var_40 = -0x40 .text:0004DF24 var_3C = -0x3C .text:0004DF24 var_38 = -0x38 .text:0004DF24 var_34 = -0x34 .text:0004DF24 var_30 = -0x30 .text:0004DF24 var_2C = -0x2C .text:0004DF24 .text:0004DF24 MOV R12, SP .text:0004DF28 STMFD SP!, {R4-R12,LR,PC} .text:0004DF2C SUB R11, R12, #4 .text:0004DF30 MOV R5, 0xFFFFFFFF .text:0004DF34 MOV R4, 0xFFFFFFFF .text:0004DF38 LDR LR, =__have_no_getdents64 .text:0004DF3C SUB SP, SP, #0x2C .text:0004DF40 LDR R3, [LR] .text:0004DF44 SUB R9, R11, #-var_30 .text:0004DF48 STMDB R9, {R4,R5} .text:0004DF4C STR R0, [R11,#var_2C] .text:0004DF50 MOV R8, R2 .text:0004DF54 MOV R6, LR .text:0004DF58 STR R1, [R11,#var_30] .text:0004DF5C CMP R3, #0 .text:0004DF60 BNE loc_4E11C .text:0004DF64 STR R1, [R11,#var_3C] .text:0004DF68 BL __errno_location .text:0004DF6C MOV R2, R8 .text:0004DF70 CMP R8, #0x10C .text:0004DF74 LDR R5, [R0] .text:0004DF78 BHI loc_4DF90 .text:0004DF7C ADD R2, R8, #8 .text:0004DF80 ADD R3, R8, #0xB .text:0004DF84 BIC R3, R3, #3 .text:0004DF88 RSB SP, R3, SP .text:0004DF8C STR SP, [R11,#var_3C] .text:0004DF90 .text:0004DF90 loc_4DF90 ; CODE XREF: __getdents+54j .text:0004DF90 LDR R1, [R11,#var_3C] .text:0004DF94 LDR R0, [R11,#var_2C] .text:0004DF98 SVC 0x9000D9 .text:0004DF9C STR R0, [R11,#var_40] .text:0004DFA0 CMN R0, #0x1000 .text:0004DFA4 BLS loc_4DFC0 .text:0004DFA8 BL __errno_location .text:0004DFAC LDR R10, [R11,#var_40] .text:0004DFB0 RSB R3, R10, #0 .text:0004DFB4 MOV R12, 0xFFFFFFFF .text:0004DFB8 STR R12, [R11,#var_40] .text:0004DFBC STR R3, [R0] .text:0004DFC0 .text:0004DFC0 loc_4DFC0 ; CODE XREF: __getdents+80j .text:0004DFC0 LDR R4, [R11,#var_40] .text:0004DFC4 CMN R4, #1 .text:0004DFC8 BEQ loc_4E10C .text:0004DFCC BL __errno_location .text:0004DFD0 LDR R3, [R0] .text:0004DFD4 CMN R3, #0x16 .text:0004DFD8 BEQ loc_4E10C .text:0004DFDC LDR R10, [R11,#var_3C] .text:0004DFE0 LDR R12, [R11,#var_30] .text:0004DFE4 ADD R3, R10, R4 .text:0004DFE8 CMP R10, R3 .text:0004DFEC BCS loc_4E100 .text:0004DFF0 .text:0004DFF0 loc_4DFF0 ; CODE XREF: __getdents+1D8j .text:0004DFF0 LDRB R1, [R10,#0x10] .text:0004DFF4 MOV R3, R10 .text:0004DFF8 LDMIA R3!, {R4,R5} .text:0004DFFC LDRB R2, [R10,#0x11] .text:0004E000 LDMIA R3, {R6,R7} .text:0004E004 LDRB R3, [R10,#0x12] .text:0004E008 STR R3, [R11,#var_48] .text:0004E00C MOV R8, R4 .text:0004E010 MOV R9, #0 .text:0004E014 CMP R8, R4 .text:0004E018 STR R4, [R12] .text:0004E01C ORR R2, R1, R2,LSL#8 .text:0004E020 SUB R3, R2, #5 .text:0004E024 STR R6, [R12,#4] .text:0004E028 BIC LR, R3, #3 .text:0004E02C MOV R3, R6 .text:0004E030 STR R2, [R11,#var_44] .text:0004E034 BNE loc_4E058 .text:0004E038 CMP R9, R5 .text:0004E03C BNE loc_4E058 .text:0004E040 MOV R2, R3 .text:0004E044 MOV R3, R2,ASR#31 .text:0004E048 CMP R2, R6 .text:0004E04C BNE loc_4E058 .text:0004E050 CMP R3, R7 .text:0004E054 BEQ loc_4E0AC .text:0004E058 .text:0004E058 loc_4E058 ; CODE XREF: __getdents+110j .text:0004E058 ; __getdents+118j ... .text:0004E058 LDR R4, [R11,#var_38] .text:0004E05C CMN R4, #1 .text:0004E060 BNE loc_4E070 .text:0004E064 LDR R5, [R11,#var_34] .text:0004E068 CMN R5, #1 .text:0004E06C BEQ loc_4E098 .text:0004E070 .text:0004E070 loc_4E070 ; CODE XREF: __getdents+13Cj .text:0004E070 SUB R9, R11, #-var_30 .text:0004E074 LDMDB R9, {R1,R2} .text:0004E078 STR R12, [R11,#var_4C] .text:0004E07C LDR R0, [R11,#var_2C] .text:0004E080 MOV R3, #0 .text:0004E084 BL lseek64 .text:0004E088 LDR R12, [R11,#var_4C] .text:0004E08C LDR R10, [R11,#var_30] .text:0004E090 RSB R0, R10, R12 .text:0004E094 B locret_4E2B8 .text:0004E098 ; --------------------------------------------------------------------------- .text:0004E098 .text:0004E098 loc_4E098 ; CODE XREF: __getdents+148j .text:0004E098 BL __errno_location .text:0004E09C MOV R3, #0x4B .text:0004E0A0 STR R3, [R0] .text:0004E0A4 MOV R0, 0xFFFFFFFF .text:0004E0A8 B locret_4E2B8 .text:0004E0AC ; --------------------------------------------------------------------------- .text:0004E0AC .text:0004E0AC loc_4E0AC ; CODE XREF: __getdents+130j .text:0004E0AC STRB LR, [R12,#8] .text:0004E0B0 MOV R3, LR,ASR#8 .text:0004E0B4 STRB R3, [R12,#9] .text:0004E0B8 SUB R1, R11, #-var_30 .text:0004E0BC STMDB R1, {R6,R7} .text:0004E0C0 LDR R2, [R11,#var_48] .text:0004E0C4 STRB R2, [R12,#0xA] .text:0004E0C8 ADD R0, R12, #0xB .text:0004E0CC ADD R12, R12, LR .text:0004E0D0 STR R12, [R11,#var_4C] .text:0004E0D4 LDR R3, [R11,#var_44] .text:0004E0D8 ADD R1, R10, #0x13 .text:0004E0DC SUB R2, R3, #0x13 .text:0004E0E0 ADD R10, R10, R3 .text:0004E0E4 BL memmove .text:0004E0E8 LDR R4, [R11,#var_3C] .text:0004E0EC LDR R5, [R11,#var_40] .text:0004E0F0 LDR R12, [R11,#var_4C] .text:0004E0F4 ADD R3, R4, R5 .text:0004E0F8 CMP R10, R3 .text:0004E0FC BCC loc_4DFF0 .text:0004E100 .text:0004E100 loc_4E100 ; CODE XREF: __getdents+C8j .text:0004E100 LDR R9, [R11,#var_30] .text:0004E104 RSB R0, R9, R12 .text:0004E108 B locret_4E2B8 .text:0004E10C ; --------------------------------------------------------------------------- .text:0004E10C .text:0004E10C loc_4E10C ; CODE XREF: __getdents+A4j .text:0004E10C ; __getdents+B4j .text:0004E10C BL __errno_location .text:0004E110 STR R5, [R0] .text:0004E114 MOV R3, #1 .text:0004E118 STR R3, [R6] .text:0004E11C .text:0004E11C loc_4E11C ; CODE XREF: __getdents+3Cj .text:0004E11C MOV R0, R8 .text:0004E120 MOV R1, #0x19 .text:0004E124 BL __udivsi3 .text:0004E128 SUB R2, R8, #1 .text:0004E12C RSB R0, R0, R8 .text:0004E130 CMP R2, R0 .text:0004E134 MOVCS R2, R0 .text:0004E138 ADD R3, R2, #3 .text:0004E13C BIC R3, R3, #3 .text:0004E140 RSB SP, R3, SP .text:0004E144 STR SP, [R11,#var_54] .text:0004E148 MOV R4, SP .text:0004E14C LDR R12, [R11,#var_30] .text:0004E150 MOV R1, SP .text:0004E154 LDR R0, [R11,#var_2C] .text:0004E158 SVC 0x90008D .text:0004E15C MOV R6, R0 .text:0004E160 CMN R6, #0x1000 .text:0004E164 BLS loc_4E180 .text:0004E168 STR R12, [R11,#var_4C] .text:0004E16C BL __errno_location .text:0004E170 RSB R3, R6, #0 .text:0004E174 STR R3, [R0] .text:0004E178 MOV R6, 0xFFFFFFFF .text:0004E17C LDR R12, [R11,#var_4C] .text:0004E180 .text:0004E180 loc_4E180 ; CODE XREF: __getdents+240j .text:0004E180 CMN R6, #1 .text:0004E184 MOVEQ R0, 0xFFFFFFFF .text:0004E188 BEQ locret_4E2B8 .text:0004E18C ADD R3, SP, R6 .text:0004E190 CMP SP, R3 .text:0004E194 BCS loc_4E2B0 .text:0004E198 .text:0004E198 loc_4E198 ; CODE XREF: __getdents+388j .text:0004E198 LDRB R3, [R4,#8] .text:0004E19C ADD R5, R4, #8 .text:0004E1A0 LDRB R2, [R5,#1] .text:0004E1A4 LDR R10, [R11,#var_30] .text:0004E1A8 ORR R3, R3, R2,LSL#8 .text:0004E1AC ADD R3, R3, #4 .text:0004E1B0 BIC R2, R3, #3 .text:0004E1B4 ADD R7, R12, R2 .text:0004E1B8 ADD R3, R10, R8 .text:0004E1BC CMP R7, R3 .text:0004E1C0 BLS loc_4E23C .text:0004E1C4 LDR R1, [R11,#var_38] .text:0004E1C8 CMN R1, #1 .text:0004E1CC BNE loc_4E1F0 .text:0004E1D0 LDR R2, [R11,#var_34] .text:0004E1D4 CMN R2, #1 .text:0004E1D8 BNE loc_4E1F0 .text:0004E1DC LDR R0, =aLast_offset1 ; "last_offset != -1" .text:0004E1E0 LDR R1, =a__SysdepsUnixS ; "../sysdeps/unix/sysv/linux/getdents.c" .text:0004E1E4 LDR R3, =a__getdents ; "__getdents" .text:0004E1E8 MOV R2, #0xE0 .text:0004E1EC BL __assert_fail .text:0004E1F0 ; --------------------------------------------------------------------------- .text:0004E1F0 .text:0004E1F0 loc_4E1F0 ; CODE XREF: __getdents+2A8j .text:0004E1F0 ; __getdents+2B4j .text:0004E1F0 SUB R3, R11, #-var_30 .text:0004E1F4 LDMDB R3, {R1,R2} .text:0004E1F8 STR R12, [R11,#var_4C] .text:0004E1FC LDR R0, [R11,#var_2C] .text:0004E200 MOV R3, #0 .text:0004E204 BL lseek64 .text:0004E208 LDR R12, [R11,#var_4C] .text:0004E20C LDR R4, [R11,#var_30] .text:0004E210 CMP R12, R4 .text:0004E214 BNE loc_4E2B0 .text:0004E218 BL __errno_location .text:0004E21C MOV R3, #0x16 .text:0004E220 STR R3, [R0] .text:0004E224 MOV R0, 0xFFFFFFFF .text:0004E228 B locret_4E2B8 .text:0004E228 ; --------------------------------------------------------------------------- .text:0004E22C off_4E22C DCD __have_no_getdents64 ; DATA XREF: __getdents+14r .text:0004E230 off_4E230 DCD aLast_offset1 ; DATA XREF: __getdents+2B8r .text:0004E230 ; "last_offset != -1" .text:0004E234 off_4E234 DCD a__SysdepsUnixS ; DATA XREF: __getdents+2BCr .text:0004E234 ; "../sysdeps/unix/sysv/linux/getdents.c" .text:0004E238 off_4E238 DCD a__getdents ; DATA XREF: __getdents+2C0r .text:0004E238 ; "__getdents" .text:0004E23C ; --------------------------------------------------------------------------- .text:0004E23C .text:0004E23C loc_4E23C ; CODE XREF: __getdents+29Cj .text:0004E23C LDMIA R4, {R3,LR} .text:0004E240 STR R3, [R12] .text:0004E244 LDR R1, [R4,#4] .text:0004E248 STRB R2, [R12,#8] .text:0004E24C MOV R3, R2,ASR#8 .text:0004E250 STRB R3, [R12,#9] .text:0004E254 MOV R2, #0 .text:0004E258 STRB R2, [R12,#0xA] .text:0004E25C STR R1, [R12,#4] .text:0004E260 ADD R0, R12, #0xB .text:0004E264 LDRB R2, [R4,#8] .text:0004E268 MOV R9, LR .text:0004E26C MOV R10, R9,ASR#31 .text:0004E270 LDRB R3, [R5,#1] .text:0004E274 SUB R12, R11, #-var_30 .text:0004E278 STMDB R12, {R9,R10} .text:0004E27C ADD R1, R4, #0xA .text:0004E280 ORR R2, R2, R3,LSL#8 .text:0004E284 SUB R2, R2, #0xA .text:0004E288 BL memcpy .text:0004E28C LDRB R2, [R4,#8] .text:0004E290 LDRB R3, [R5,#1] .text:0004E294 MOV R12, R7 .text:0004E298 LDR R1, [R11,#var_54] .text:0004E29C ORR R2, R2, R3,LSL#8 .text:0004E2A0 ADD R4, R4, R2 .text:0004E2A4 ADD R3, R1, R6 .text:0004E2A8 CMP R4, R3 .text:0004E2AC BCC loc_4E198 .text:0004E2B0 .text:0004E2B0 loc_4E2B0 ; CODE XREF: __getdents+270j .text:0004E2B0 ; __getdents+2F0j .text:0004E2B0 LDR R2, [R11,#var_30] .text:0004E2B4 RSB R0, R2, R12 .text:0004E2B8 .text:0004E2B8 locret_4E2B8 ; CODE XREF: __getdents+170j .text:0004E2B8 ; __getdents+184j ... .text:0004E2B8 LDMDB R11, {R4-R11,SP,PC} .text:0004E2B8 ; End of function __getdents .text:0004E2B8 .text:0004E2BC .text:0004E2BC ; =============== S U B R O U T I N E ======================================= .text:0004E2BC .text:0004E2BC ; Attributes: bp-based frame .text:0004E2BC .text:0004E2BC WEAK _lxstat .text:0004E2BC _lxstat ; CODE XREF: generic_getcwd+CCp .text:0004E2BC ; generic_getcwd+F4p ... .text:0004E2BC .text:0004E2BC var_C8 = -0xC8 .text:0004E2BC var_BC = -0xBC .text:0004E2BC var_B8 = -0xB8 .text:0004E2BC var_B4 = -0xB4 .text:0004E2BC var_B0 = -0xB0 .text:0004E2BC var_AC = -0xAC .text:0004E2BC var_A8 = -0xA8 .text:0004E2BC var_9C = -0x9C .text:0004E2BC var_98 = -0x98 .text:0004E2BC var_94 = -0x94 .text:0004E2BC var_8C = -0x8C .text:0004E2BC var_88 = -0x88 .text:0004E2BC var_80 = -0x80 .text:0004E2BC var_78 = -0x78 .text:0004E2BC var_70 = -0x70 .text:0004E2BC var_6C = -0x6C .text:0004E2BC var_68 = -0x68 .text:0004E2BC var_67 = -0x67 .text:0004E2BC var_64 = -0x64 .text:0004E2BC var_60 = -0x60 .text:0004E2BC var_5F = -0x5F .text:0004E2BC var_5E = -0x5E .text:0004E2BC var_5D = -0x5D .text:0004E2BC var_5C = -0x5C .text:0004E2BC var_5B = -0x5B .text:0004E2BC var_5A = -0x5A .text:0004E2BC var_59 = -0x59 .text:0004E2BC var_58 = -0x58 .text:0004E2BC var_57 = -0x57 .text:0004E2BC var_54 = -0x54 .text:0004E2BC var_50 = -0x50 .text:0004E2BC var_4C = -0x4C .text:0004E2BC var_48 = -0x48 .text:0004E2BC var_40 = -0x40 .text:0004E2BC var_38 = -0x38 .text:0004E2BC .text:0004E2BC MOV R12, SP ; Alternative name is '__lxstat' .text:0004E2C0 STMFD SP!, {R4-R12,LR,PC} .text:0004E2C4 SUB R11, R12, #4 .text:0004E2C8 MOV R8, R0 .text:0004E2CC CMP R8, #1 .text:0004E2D0 MOV R10, R1 .text:0004E2D4 MOV R5, R2 .text:0004E2D8 SUB SP, SP, #0xA0 .text:0004E2DC BNE loc_4E310 .text:0004E2E0 MOV R1, R5 .text:0004E2E4 MOV R0, R10 .text:0004E2E8 SVC 0x90006B .text:0004E2EC MOV R4, R0 .text:0004E2F0 CMN R4, #0x1000 .text:0004E2F4 BLS loc_4E308 .text:0004E2F8 BL __errno_location .text:0004E2FC RSB R3, R4, #0 .text:0004E300 MOV R4, 0xFFFFFFFF .text:0004E304 STR R3, [R0] .text:0004E308 .text:0004E308 loc_4E308 ; CODE XREF: _lxstat+38j .text:0004E308 MOV R0, R4 .text:0004E30C B locret_4E620 .text:0004E310 ; --------------------------------------------------------------------------- .text:0004E310 .text:0004E310 loc_4E310 ; CODE XREF: _lxstat+20j .text:0004E310 LDR R2, =__have_no_stat64 .text:0004E314 LDR R3, [R2] .text:0004E318 MOV R9, R2 .text:0004E31C CMP R3, #0 .text:0004E320 BNE loc_4E4BC .text:0004E324 SUB R7, R11, #-var_C8 .text:0004E328 MOV R1, R7 .text:0004E32C MOV R0, R10 .text:0004E330 SVC 0x9000C4 .text:0004E334 MOV R4, R0 .text:0004E338 CMN R4, #0x1000 .text:0004E33C BLS loc_4E350 .text:0004E340 BL __errno_location .text:0004E344 RSB R3, R4, #0 .text:0004E348 MOV R4, 0xFFFFFFFF .text:0004E34C STR R3, [R0] .text:0004E350 .text:0004E350 loc_4E350 ; CODE XREF: _lxstat+80j .text:0004E350 SUBS R6, R4, #0 .text:0004E354 BNE loc_4E49C .text:0004E358 CMP R8, #3 .text:0004E35C BNE loc_4E484 .text:0004E360 STRB R6, [R5,#8] .text:0004E364 STRB R6, [R5,#9] .text:0004E368 SUB R1, R11, #-var_70 .text:0004E36C LDMIA R1, {R1,R3} .text:0004E370 ORR R3, R1, R3 .text:0004E374 LDMIA R7, {R1,R2} .text:0004E378 STMIA R5, {R1,R2} .text:0004E37C CMP R3, #0 .text:0004E380 LDR R0, [R11,#var_6C] .text:0004E384 LDREQ R3, [R11,#var_BC] .text:0004E388 STREQ R3, [R5,#0xC] .text:0004E38C BEQ loc_4E3B0 .text:0004E390 LDR R3, [R11,#var_70] .text:0004E394 MOV R1, R3 .text:0004E398 MOV R2, #0 .text:0004E39C CMP R1, R3 .text:0004E3A0 STR R3, [R5,#0xC] .text:0004E3A4 BNE loc_4E440 .text:0004E3A8 CMP R2, R0 .text:0004E3AC BNE loc_4E440 .text:0004E3B0 .text:0004E3B0 loc_4E3B0 ; CODE XREF: _lxstat+D0j .text:0004E3B0 LDR R3, [R11,#var_B8] .text:0004E3B4 STR R3, [R5,#0x10] .text:0004E3B8 LDR R2, [R11,#var_B4] .text:0004E3BC STR R2, [R5,#0x14] .text:0004E3C0 LDR R3, [R11,#var_B0] .text:0004E3C4 STR R3, [R5,#0x18] .text:0004E3C8 LDR R2, [R11,#var_AC] .text:0004E3CC STR R2, [R5,#0x1C] .text:0004E3D0 SUB R0, R11, #-var_A8 .text:0004E3D4 LDMIA R0, {R2,R3} .text:0004E3D8 ADD R1, R5, #0x20 .text:0004E3DC STMIA R1, {R2,R3} .text:0004E3E0 MOV R12, #0 .text:0004E3E4 MOV R3, R12 .text:0004E3E8 STRB R3, [R5,#0x28] .text:0004E3EC LDR R2, [R11,#var_9C] .text:0004E3F0 STRB R12, [R5,#0x29] .text:0004E3F4 MOV R0, R2 .text:0004E3F8 MOV R1, R0,ASR#31 .text:0004E3FC CMP R0, R2 .text:0004E400 STR R2, [R5,#0x2C] .text:0004E404 BNE loc_4E440 .text:0004E408 LDR R3, [R11,#var_98] .text:0004E40C CMP R1, R3 .text:0004E410 BNE loc_4E440 .text:0004E414 SUB R2, R11, #-var_94 .text:0004E418 LDMIA R2, {R2,R3} .text:0004E41C STR R2, [R5,#0x30] .text:0004E420 MOV R1, R3 .text:0004E424 MOV R2, R1,ASR#31 .text:0004E428 CMP R1, R3 .text:0004E42C STR R3, [R5,#0x34] .text:0004E430 BNE loc_4E440 .text:0004E434 LDR R3, [R11,#var_8C] .text:0004E438 CMP R2, R3 .text:0004E43C BEQ loc_4E454 .text:0004E440 .text:0004E440 loc_4E440 ; CODE XREF: _lxstat+E8j .text:0004E440 ; _lxstat+F0j ... .text:0004E440 MOV R6, 0xFFFFFFFF .text:0004E444 BL __errno_location .text:0004E448 MOV R3, #0x4B .text:0004E44C STR R3, [R0] .text:0004E450 B loc_4E49C .text:0004E454 ; --------------------------------------------------------------------------- .text:0004E454 .text:0004E454 loc_4E454 ; CODE XREF: _lxstat+180j .text:0004E454 STR R12, [R5,#0x3C] .text:0004E458 STR R12, [R5,#0x44] .text:0004E45C STR R12, [R5,#0x4C] .text:0004E460 STR R12, [R5,#0x50] .text:0004E464 STR R12, [R5,#0x54] .text:0004E468 LDR R3, [R11,#var_88] .text:0004E46C STR R3, [R5,#0x38] .text:0004E470 LDR R2, [R11,#var_80] .text:0004E474 STR R2, [R5,#0x40] .text:0004E478 LDR R3, [R11,#var_78] .text:0004E47C STR R3, [R5,#0x48] .text:0004E480 B loc_4E498 .text:0004E484 ; --------------------------------------------------------------------------- .text:0004E484 .text:0004E484 loc_4E484 ; CODE XREF: _lxstat+A0j .text:0004E484 MOV R6, 0xFFFFFFFF .text:0004E488 BL __errno_location .text:0004E48C MOV R3, #0x16 .text:0004E490 STR R3, [R0] .text:0004E494 B loc_4E49C .text:0004E498 ; --------------------------------------------------------------------------- .text:0004E498 .text:0004E498 loc_4E498 ; CODE XREF: _lxstat+1C4j .text:0004E498 MOV R6, #0 .text:0004E49C .text:0004E49C loc_4E49C ; CODE XREF: _lxstat+98j .text:0004E49C ; _lxstat+194j ... .text:0004E49C CMN R6, #1 .text:0004E4A0 BNE loc_4E61C .text:0004E4A4 BL __errno_location .text:0004E4A8 LDR R3, [R0] .text:0004E4AC CMP R3, #0x26 .text:0004E4B0 BNE loc_4E61C .text:0004E4B4 MOV R3, #1 .text:0004E4B8 STR R3, [R9] .text:0004E4BC .text:0004E4BC loc_4E4BC ; CODE XREF: _lxstat+64j .text:0004E4BC SUB R7, R11, #-var_68 .text:0004E4C0 MOV R1, R7 .text:0004E4C4 MOV R0, R10 .text:0004E4C8 SVC 0x90006B .text:0004E4CC MOV R4, R0 .text:0004E4D0 CMN R4, #0x1000 .text:0004E4D4 BLS loc_4E4E8 .text:0004E4D8 BL __errno_location .text:0004E4DC RSB R3, R4, #0 .text:0004E4E0 MOV R4, 0xFFFFFFFF .text:0004E4E4 STR R3, [R0] .text:0004E4E8 .text:0004E4E8 loc_4E4E8 ; CODE XREF: _lxstat+218j .text:0004E4E8 SUBS R6, R4, #0 .text:0004E4EC BNE loc_4E61C .text:0004E4F0 CMP R8, #1 .text:0004E4F4 BEQ loc_4E504 .text:0004E4F8 CMP R8, #3 .text:0004E4FC BEQ loc_4E530 .text:0004E500 B loc_4E600 .text:0004E504 ; --------------------------------------------------------------------------- .text:0004E504 .text:0004E504 loc_4E504 ; CODE XREF: _lxstat+238j .text:0004E504 MOV LR, R7 .text:0004E508 LDMIA LR!, {R0-R3} .text:0004E50C MOV R12, R5 .text:0004E510 STMIA R12!, {R0-R3} .text:0004E514 LDMIA LR!, {R0-R3} .text:0004E518 STMIA R12!, {R0-R3} .text:0004E51C LDMIA LR!, {R0-R3} .text:0004E520 STMIA R12!, {R0-R3} .text:0004E524 LDMIA LR, {R0-R3} .text:0004E528 STMIA R12, {R0-R3} .text:0004E52C B loc_4E618 .text:0004E530 ; --------------------------------------------------------------------------- .text:0004E530 .text:0004E530 loc_4E530 ; CODE XREF: _lxstat+240j .text:0004E530 LDRB R1, [R11,#var_68] .text:0004E534 LDRB R2, [R11,#var_67] .text:0004E538 ORR R3, R1, R2,LSL#8 .text:0004E53C MOV R4, #0 .text:0004E540 STMIA R5, {R3,R4} .text:0004E544 MOV LR, R6 .text:0004E548 STRB LR, [R5,#8] .text:0004E54C STRB R6, [R5,#9] .text:0004E550 LDR R2, [R11,#var_64] .text:0004E554 STR R2, [R5,#0xC] .text:0004E558 LDRB R3, [R11,#var_60] .text:0004E55C LDRB R2, [R11,#var_5F] .text:0004E560 ORR R3, R3, R2,LSL#8 .text:0004E564 STR R3, [R5,#0x10] .text:0004E568 LDRB R3, [R11,#var_5D] .text:0004E56C LDRB R2, [R11,#var_5E] .text:0004E570 ORR R2, R2, R3,LSL#8 .text:0004E574 STR R2, [R5,#0x14] .text:0004E578 LDRB R2, [R11,#var_5B] .text:0004E57C LDRB R3, [R11,#var_5C] .text:0004E580 ORR R3, R3, R2,LSL#8 .text:0004E584 STR R3, [R5,#0x18] .text:0004E588 LDRB R2, [R11,#var_5A] .text:0004E58C LDRB R12, [R11,#var_58] .text:0004E590 LDRB R0, [R11,#var_57] .text:0004E594 LDRB R1, [R11,#var_59] .text:0004E598 ORR R3, R12, R0,LSL#8 .text:0004E59C ORR R2, R2, R1,LSL#8 .text:0004E5A0 STR R2, [R5,#0x1C] .text:0004E5A4 MOV R4, #0 .text:0004E5A8 ADD R2, R5, #0x20 .text:0004E5AC STMIA R2, {R3,R4} .text:0004E5B0 STRB LR, [R5,#0x28] .text:0004E5B4 STRB LR, [R5,#0x29] .text:0004E5B8 LDR R3, [R11,#var_54] .text:0004E5BC STR R3, [R5,#0x2C] .text:0004E5C0 LDR R2, [R11,#var_50] .text:0004E5C4 STR R2, [R5,#0x30] .text:0004E5C8 LDR R3, [R11,#var_4C] .text:0004E5CC STR R3, [R5,#0x34] .text:0004E5D0 LDR R2, [R11,#var_48] .text:0004E5D4 STR R6, [R5,#0x3C] .text:0004E5D8 STR R2, [R5,#0x38] .text:0004E5DC LDR R3, [R11,#var_40] .text:0004E5E0 STR R3, [R5,#0x40] .text:0004E5E4 STR R6, [R5,#0x44] .text:0004E5E8 STR R6, [R5,#0x4C] .text:0004E5EC STR R6, [R5,#0x50] .text:0004E5F0 STR R6, [R5,#0x54] .text:0004E5F4 LDR R3, [R11,#var_38] .text:0004E5F8 STR R3, [R5,#0x48] .text:0004E5FC B loc_4E618 .text:0004E600 ; --------------------------------------------------------------------------- .text:0004E600 .text:0004E600 loc_4E600 ; CODE XREF: _lxstat+244j .text:0004E600 MOV R6, 0xFFFFFFFF .text:0004E604 BL __errno_location .text:0004E608 MOV R3, #0x16 .text:0004E60C STR R3, [R0] .text:0004E610 B loc_4E61C .text:0004E610 ; --------------------------------------------------------------------------- .text:0004E614 off_4E614 DCD __have_no_stat64 ; DATA XREF: _lxstat:loc_4E310r .text:0004E618 ; --------------------------------------------------------------------------- .text:0004E618 .text:0004E618 loc_4E618 ; CODE XREF: _lxstat+270j .text:0004E618 ; _lxstat+340j .text:0004E618 MOV R6, #0 .text:0004E61C .text:0004E61C loc_4E61C ; CODE XREF: _lxstat+1E4j .text:0004E61C ; _lxstat+1F4j ... .text:0004E61C MOV R0, R6 .text:0004E620 .text:0004E620 locret_4E620 ; CODE XREF: _lxstat+50j .text:0004E620 LDMDB R11, {R4-R11,SP,PC} .text:0004E620 ; End of function _lxstat .text:0004E620 .text:0004E624 .text:0004E624 ; =============== S U B R O U T I N E ======================================= .text:0004E624 .text:0004E624 ; Attributes: bp-based frame .text:0004E624 .text:0004E624 WEAK isatty .text:0004E624 isatty ; CODE XREF: _IO_file_doallocate+CCp .text:0004E624 ; _IO_wfile_doallocate+E4p .text:0004E624 .text:0004E624 var_48 = -0x48 .text:0004E624 .text:0004E624 MOV R12, SP ; Alternative name is '__isatty' .text:0004E628 STMFD SP!, {R11,R12,LR,PC} .text:0004E62C SUB R11, R12, #4 .text:0004E630 SUB R1, R11, #-var_48 .text:0004E634 SUB SP, SP, #0x3C .text:0004E638 BL tcgetattr .text:0004E63C CMP R0, #0 .text:0004E640 MOVNE R0, #0 .text:0004E644 MOVEQ R0, #1 .text:0004E648 LDMDB R11, {R11,SP,PC} .text:0004E648 ; End of function isatty .text:0004E648 .text:0004E64C .text:0004E64C ; =============== S U B R O U T I N E ======================================= .text:0004E64C .text:0004E64C ; Attributes: bp-based frame .text:0004E64C .text:0004E64C WEAK tcgetattr .text:0004E64C tcgetattr ; CODE XREF: isatty+14p .text:0004E64C .text:0004E64C var_38 = -0x38 .text:0004E64C var_34 = -0x34 .text:0004E64C var_30 = -0x30 .text:0004E64C var_2C = -0x2C .text:0004E64C var_28 = -0x28 .text:0004E64C var_27 = -0x27 .text:0004E64C .text:0004E64C MOV R12, SP .text:0004E650 STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:0004E654 SUB R11, R12, #4 .text:0004E658 MOV R4, R1 .text:0004E65C MOV R1, 0x5401 .text:0004E664 SUB R2, R11, #-var_38 .text:0004E668 SUB SP, SP, #0x24 .text:0004E66C BL ioctl .text:0004E670 LDR R3, [R11,#var_38] .text:0004E674 STR R3, [R4] .text:0004E678 LDR R2, [R11,#var_34] .text:0004E67C STR R2, [R4,#4] .text:0004E680 LDR R3, [R11,#var_30] .text:0004E684 STR R3, [R4,#8] .text:0004E688 LDR R2, [R11,#var_2C] .text:0004E68C STR R2, [R4,#0xC] .text:0004E690 LDRB R3, [R11,#var_28] .text:0004E694 STRB R3, [R4,#0x10] .text:0004E698 MOV R5, R0 .text:0004E69C ADD R0, R4, #0x11 .text:0004E6A0 SUB R1, R11, #-var_27 .text:0004E6A4 MOV R2, #0x13 .text:0004E6A8 BL mempcpy .text:0004E6AC MOV R1, #0 .text:0004E6B0 MOV R2, #0xD .text:0004E6B4 BL memset .text:0004E6B8 MOV R0, R5 .text:0004E6BC LDMDB R11, {R4,R5,R11,SP,PC} .text:0004E6BC ; End of function tcgetattr .text:0004E6BC .text:0004E6C0 .text:0004E6C0 ; =============== S U B R O U T I N E ======================================= .text:0004E6C0 .text:0004E6C0 ; Attributes: bp-based frame .text:0004E6C0 .text:0004E6C0 WEAK getrlimit .text:0004E6C0 getrlimit ; CODE XREF: getdtablesize+18p .text:0004E6C0 MOV R12, SP ; Alternative name is '__new_getrlimit' .text:0004E6C4 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0004E6C8 SUB R11, R12, #4 .text:0004E6CC LDR R6, =__have_no_new_getrlimit .text:0004E6D0 MOV R7, R0 .text:0004E6D4 LDR R3, [R6] .text:0004E6D8 MOV R5, R1 .text:0004E6DC CMP R3, #0 .text:0004E6E0 BGT loc_4E734 .text:0004E6E4 SVC 0x9000BF .text:0004E6E8 MOV R4, R0 .text:0004E6EC CMN R4, #0x1000 .text:0004E6F0 BLS loc_4E704 .text:0004E6F4 BL __errno_location .text:0004E6F8 RSB R3, R4, #0 .text:0004E6FC MOV R4, 0xFFFFFFFF .text:0004E700 STR R3, [R0] .text:0004E704 .text:0004E704 loc_4E704 ; CODE XREF: getrlimit+30j .text:0004E704 CMN R4, #1 .text:0004E708 BNE loc_4E71C .text:0004E70C BL __errno_location .text:0004E710 LDR R3, [R0] .text:0004E714 CMP R3, #0x26 .text:0004E718 BEQ loc_4E72C .text:0004E71C .text:0004E71C loc_4E71C ; CODE XREF: getrlimit+48j .text:0004E71C MOV R0, R4 .text:0004E720 MOV R3, 0xFFFFFFFF .text:0004E724 STR R3, [R6] .text:0004E728 LDMDB R11, {R4-R7,R11,SP,PC} .text:0004E72C ; --------------------------------------------------------------------------- .text:0004E72C .text:0004E72C loc_4E72C ; CODE XREF: getrlimit+58j .text:0004E72C MOV R3, #1 .text:0004E730 STR R3, [R6] .text:0004E734 .text:0004E734 loc_4E734 ; CODE XREF: getrlimit+20j .text:0004E734 MOV R1, R5 .text:0004E738 MOV R0, R7 .text:0004E73C SVC 0x90004C .text:0004E740 MOV R4, R0 .text:0004E744 CMN R4, #0x1000 .text:0004E748 BLS loc_4E75C .text:0004E74C BL __errno_location .text:0004E750 RSB R3, R4, #0 .text:0004E754 MOV R4, 0xFFFFFFFF .text:0004E758 STR R3, [R0] .text:0004E75C .text:0004E75C loc_4E75C ; CODE XREF: getrlimit+88j .text:0004E75C CMN R4, #1 .text:0004E760 MOVEQ R0, R4 .text:0004E764 LDMEQDB R11, {R4-R7,R11,SP,PC} .text:0004E768 LDR R3, [R5] .text:0004E76C CMN R3, #0x80000001 .text:0004E770 MOVEQ R3, 0xFFFFFFFF .text:0004E774 STREQ R3, [R5] .text:0004E778 LDR R3, [R5,#4] .text:0004E77C CMN R3, #0x80000001 .text:0004E780 MOVEQ R3, 0xFFFFFFFF .text:0004E784 STREQ R3, [R5,#4] .text:0004E788 MOV R0, R4 .text:0004E78C LDMDB R11, {R4-R7,R11,SP,PC} .text:0004E78C ; End of function getrlimit .text:0004E78C .text:0004E78C ; --------------------------------------------------------------------------- .text:0004E790 off_4E790 DCD __have_no_new_getrlimit ; DATA XREF: getrlimit+Cr .text:0004E794 ALIGN 0x10 .text:0004E7A0 .text:0004E7A0 ; =============== S U B R O U T I N E ======================================= .text:0004E7A0 .text:0004E7A0 .text:0004E7A0 WEAK ioctl .text:0004E7A0 ioctl ; CODE XREF: tcgetattr+20p .text:0004E7A0 SVC 0x900036 ; Alternative name is '__ioctl' .text:0004E7A4 CMN R0, #0x1000 .text:0004E7A8 MOVCC PC, LR .text:0004E7AC B __syscall_error .text:0004E7AC ; End of function ioctl .text:0004E7AC .text:0004E7B0 .text:0004E7B0 ; =============== S U B R O U T I N E ======================================= .text:0004E7B0 .text:0004E7B0 ; Attributes: bp-based frame .text:0004E7B0 .text:0004E7B0 WEAK setmntent .text:0004E7B0 setmntent ; CODE XREF: get_proc_path+28p .text:0004E7B0 ; get_proc_path+3Cp .text:0004E7B0 MOV R12, SP ; Alternative name is '__setmntent' .text:0004E7B4 STMFD SP!, {R11,R12,LR,PC} .text:0004E7B8 SUB R11, R12, #4 .text:0004E7BC BL fopen .text:0004E7C0 LDMDB R11, {R11,SP,PC} .text:0004E7C0 ; End of function setmntent .text:0004E7C0 .text:0004E7C4 .text:0004E7C4 ; =============== S U B R O U T I N E ======================================= .text:0004E7C4 .text:0004E7C4 ; Attributes: bp-based frame .text:0004E7C4 .text:0004E7C4 WEAK endmntent .text:0004E7C4 endmntent ; CODE XREF: get_proc_path+88p .text:0004E7C4 MOV R12, SP .text:0004E7C8 STMFD SP!, {R11,R12,LR,PC} .text:0004E7CC SUB R11, R12, #4 .text:0004E7D0 CMP R0, #0 .text:0004E7D4 BEQ loc_4E7DC .text:0004E7D8 BL fclose .text:0004E7DC .text:0004E7DC loc_4E7DC ; CODE XREF: endmntent+10j .text:0004E7DC MOV R0, #1 .text:0004E7E0 LDMDB R11, {R11,SP,PC} .text:0004E7E0 ; End of function endmntent .text:0004E7E0 .text:0004E7E4 .text:0004E7E4 ; =============== S U B R O U T I N E ======================================= .text:0004E7E4 .text:0004E7E4 ; Attributes: bp-based frame .text:0004E7E4 .text:0004E7E4 decode_name ; CODE XREF: getmntent_r+16Cp .text:0004E7E4 ; getmntent_r+244p ... .text:0004E7E4 MOV R12, SP .text:0004E7E8 STMFD SP!, {R11,R12,LR,PC} .text:0004E7EC SUB R11, R12, #4 .text:0004E7F0 MOV R2, R0 .text:0004E7F4 MOV R1, R0 .text:0004E7F8 .text:0004E7F8 loc_4E7F8 ; CODE XREF: decode_name+B4j .text:0004E7F8 LDRB R3, [R2] .text:0004E7FC CMP R3, #0x5C .text:0004E800 MOV R12, R3 .text:0004E804 BNE loc_4E834 .text:0004E808 LDRB R3, [R2,#1] .text:0004E80C CMP R3, #0x30 .text:0004E810 BNE loc_4E834 .text:0004E814 LDRB R3, [R2,#2] .text:0004E818 CMP R3, #0x34 .text:0004E81C BNE loc_4E834 .text:0004E820 LDRB R3, [R2,#3] .text:0004E824 CMP R3, #0x30 .text:0004E828 ADDEQ R2, R2, #3 .text:0004E82C MOVEQ R3, #0x20 .text:0004E830 BEQ loc_4E88C .text:0004E834 .text:0004E834 loc_4E834 ; CODE XREF: decode_name+20j .text:0004E834 ; decode_name+2Cj ... .text:0004E834 AND R3, R12, #0xFF .text:0004E838 CMP R3, #0x5C .text:0004E83C BNE loc_4E86C .text:0004E840 LDRB R3, [R2,#1] .text:0004E844 CMP R3, #0x30 .text:0004E848 BNE loc_4E86C .text:0004E84C LDRB R3, [R2,#2] .text:0004E850 CMP R3, #0x31 .text:0004E854 BNE loc_4E86C .text:0004E858 LDRB R3, [R2,#3] .text:0004E85C CMP R3, #0x32 .text:0004E860 ADDEQ R2, R2, #3 .text:0004E864 MOVEQ R3, #9 .text:0004E868 BEQ loc_4E88C .text:0004E86C .text:0004E86C loc_4E86C ; CODE XREF: decode_name+58j .text:0004E86C ; decode_name+64j ... .text:0004E86C AND R3, R12, #0xFF .text:0004E870 CMP R3, #0x5C .text:0004E874 BNE loc_4E888 .text:0004E878 LDRB R3, [R2,#1] .text:0004E87C CMP R3, #0x5C .text:0004E880 ADDEQ R2, R2, #1 .text:0004E884 BEQ loc_4E88C .text:0004E888 .text:0004E888 loc_4E888 ; CODE XREF: decode_name+90j .text:0004E888 LDRB R3, [R2] .text:0004E88C .text:0004E88C loc_4E88C ; CODE XREF: decode_name+4Cj .text:0004E88C ; decode_name+84j ... .text:0004E88C STRB R3, [R1],#1 .text:0004E890 LDRB R3, [R2],#1 .text:0004E894 CMP R3, #0 .text:0004E898 BNE loc_4E7F8 .text:0004E89C LDMDB R11, {R11,SP,PC} .text:0004E89C ; End of function decode_name .text:0004E89C .text:0004E8A0 .text:0004E8A0 ; =============== S U B R O U T I N E ======================================= .text:0004E8A0 .text:0004E8A0 ; Attributes: bp-based frame .text:0004E8A0 .text:0004E8A0 WEAK getmntent_r .text:0004E8A0 getmntent_r ; CODE XREF: get_proc_path+78p .text:0004E8A0 .text:0004E8A0 var_428 = -0x428 .text:0004E8A0 var_420 = -0x420 .text:0004E8A0 .text:0004E8A0 MOV R12, SP .text:0004E8A4 STMFD SP!, {R4-R8,R10-R12,LR,PC} .text:0004E8A8 SUB R11, R12, #4 .text:0004E8AC MOV R6, R0 .text:0004E8B0 MOV R8, R1 .text:0004E8B4 MOV R5, R2 .text:0004E8B8 MOV R10, R3 .text:0004E8BC MOV R7, #0 .text:0004E8C0 SUB SP, SP, #0x400 .text:0004E8C4 SUB SP, SP, #4 .text:0004E8C8 .text:0004E8C8 loc_4E8C8 ; CODE XREF: getmntent_r+E0j .text:0004E8C8 MOV R0, R5 .text:0004E8CC MOV R1, R10 .text:0004E8D0 MOV R2, R6 .text:0004E8D4 BL fgets_unlocked .text:0004E8D8 CMP R0, #0 .text:0004E8DC MOV R0, #0 .text:0004E8E0 BEQ loc_4ECE8 .text:0004E8E4 MOV R0, R5 .text:0004E8E8 MOV R1, #0xA .text:0004E8EC BL strchr .text:0004E8F0 CMP R0, #0 .text:0004E8F4 STRNEB R7, [R0] .text:0004E8F8 BNE loc_4E930 .text:0004E8FC SUB R4, R11, #-var_420 .text:0004E900 SUB R4, R4, #4 .text:0004E904 .text:0004E904 loc_4E904 ; CODE XREF: getmntent_r+8Cj .text:0004E904 MOV R0, R4 .text:0004E908 MOV R1, #0x400 .text:0004E90C MOV R2, R6 .text:0004E910 BL fgets_unlocked .text:0004E914 CMP R0, #0 .text:0004E918 BEQ loc_4E930 .text:0004E91C MOV R0, R4 .text:0004E920 MOV R1, #0xA .text:0004E924 BL strchr .text:0004E928 CMP R0, #0 .text:0004E92C BEQ loc_4E904 .text:0004E930 .text:0004E930 loc_4E930 ; CODE XREF: getmntent_r+58j .text:0004E930 ; getmntent_r+78j .text:0004E930 MOV R1, R7 .text:0004E934 LDRB R3, [R5,R1] .text:0004E938 AND R3, R3, #0xFF .text:0004E93C B loc_4E948 .text:0004E940 ; --------------------------------------------------------------------------- .text:0004E940 .text:0004E940 loc_4E940 ; CODE XREF: getmntent_r+ACj .text:0004E940 ; getmntent_r+B4j .text:0004E940 ADD R1, R1, #1 .text:0004E944 LDRB R3, [R5,R1] .text:0004E948 .text:0004E948 loc_4E948 ; CODE XREF: getmntent_r+9Cj .text:0004E948 CMP R3, #0x20 .text:0004E94C BEQ loc_4E940 .text:0004E950 CMP R3, #9 .text:0004E954 BEQ loc_4E940 .text:0004E958 LDRB R0, [R5,R1] .text:0004E95C ADD R2, R5, R1 .text:0004E960 STR R2, [R11,#var_428] .text:0004E964 CMP R0, #0x23 .text:0004E968 MOVNE R3, #0 .text:0004E96C MOVEQ R3, #1 .text:0004E970 CMP R0, #0 .text:0004E974 MOVNE R12, R3 .text:0004E978 MOVEQ R12, #1 .text:0004E97C CMP R12, #0 .text:0004E980 BNE loc_4E8C8 .text:0004E984 SUB LR, R11, #-var_420 .text:0004E988 SUB LR, LR, #4 .text:0004E98C SUB LR, LR, #4 .text:0004E990 SUBS R4, R2, #0 .text:0004E994 MOV R6, LR .text:0004E998 BEQ loc_4EA00 .text:0004E99C AND R3, R0, #0xFF .text:0004E9A0 CMP R3, #0x20 .text:0004E9A4 BEQ loc_4E9B0 .text:0004E9A8 CMP R3, #9 .text:0004E9AC BNE loc_4E9C0 .text:0004E9B0 .text:0004E9B0 loc_4E9B0 ; CODE XREF: getmntent_r+104j .text:0004E9B0 STRB R12, [R5,R1] .text:0004E9B4 ADD R3, R4, #1 .text:0004E9B8 STR R3, [R11,#var_428] .text:0004E9BC B loc_4EA00 .text:0004E9C0 ; --------------------------------------------------------------------------- .text:0004E9C0 .text:0004E9C0 loc_4E9C0 ; CODE XREF: getmntent_r+10Cj .text:0004E9C0 MOV R2, R4 .text:0004E9C4 B loc_4E9D0 .text:0004E9C8 ; --------------------------------------------------------------------------- .text:0004E9C8 .text:0004E9C8 loc_4E9C8 ; CODE XREF: getmntent_r+144j .text:0004E9C8 LDRB R3, [R2,#1]! .text:0004E9CC AND R3, R3, #0xFF .text:0004E9D0 .text:0004E9D0 loc_4E9D0 ; CODE XREF: getmntent_r+124j .text:0004E9D0 CMP R3, #0 .text:0004E9D4 BEQ loc_4E9E8 .text:0004E9D8 CMP R3, #0x20 .text:0004E9DC BEQ loc_4E9E8 .text:0004E9E0 CMP R3, #9 .text:0004E9E4 BNE loc_4E9C8 .text:0004E9E8 .text:0004E9E8 loc_4E9E8 ; CODE XREF: getmntent_r+134j .text:0004E9E8 ; getmntent_r+13Cj .text:0004E9E8 LDRB R3, [R2] .text:0004E9EC CMP R3, #0 .text:0004E9F0 MOVNE R3, #0 .text:0004E9F4 STRNEB R3, [R2],#1 .text:0004E9F8 STRNE R2, [LR] .text:0004E9FC STREQ R3, [LR] .text:0004EA00 .text:0004EA00 loc_4EA00 ; CODE XREF: getmntent_r+F8j .text:0004EA00 ; getmntent_r+11Cj .text:0004EA00 MOV R3, R4 .text:0004EA04 SUBS R0, R3, #0 .text:0004EA08 BEQ loc_4EA14 .text:0004EA0C BL decode_name .text:0004EA10 B loc_4EA18 .text:0004EA14 ; --------------------------------------------------------------------------- .text:0004EA14 .text:0004EA14 loc_4EA14 ; CODE XREF: getmntent_r+168j .text:0004EA14 LDR R0, =dword_61FB0 .text:0004EA18 .text:0004EA18 loc_4EA18 ; CODE XREF: getmntent_r+170j .text:0004EA18 LDR R1, [R11,#var_428] .text:0004EA1C STR R0, [R8] .text:0004EA20 CMP R1, #0 .text:0004EA24 BEQ loc_4EA58 .text:0004EA28 LDRB R3, [R1] .text:0004EA2C MOV R2, #0 .text:0004EA30 B loc_4EA3C .text:0004EA34 ; --------------------------------------------------------------------------- .text:0004EA34 .text:0004EA34 loc_4EA34 ; CODE XREF: getmntent_r+1A0j .text:0004EA34 ; getmntent_r+1A8j .text:0004EA34 ADD R2, R2, #1 .text:0004EA38 LDRB R3, [R1,R2] .text:0004EA3C .text:0004EA3C loc_4EA3C ; CODE XREF: getmntent_r+190j .text:0004EA3C CMP R3, #0x20 .text:0004EA40 BEQ loc_4EA34 .text:0004EA44 CMP R3, #9 .text:0004EA48 BEQ loc_4EA34 .text:0004EA4C LDR R3, [R11,#var_428] .text:0004EA50 ADD R3, R3, R2 .text:0004EA54 STR R3, [R11,#var_428] .text:0004EA58 .text:0004EA58 loc_4EA58 ; CODE XREF: getmntent_r+184j .text:0004EA58 LDR R1, [R11,#var_428] .text:0004EA5C CMP R1, #0 .text:0004EA60 BEQ loc_4EAD8 .text:0004EA64 LDRB R3, [R1] .text:0004EA68 CMP R3, #0x20 .text:0004EA6C BEQ loc_4EA78 .text:0004EA70 CMP R3, #9 .text:0004EA74 BNE loc_4EA8C .text:0004EA78 .text:0004EA78 loc_4EA78 ; CODE XREF: getmntent_r+1CCj .text:0004EA78 MOV R2, R1 .text:0004EA7C MOV R3, #0 .text:0004EA80 STRB R3, [R2],#1 .text:0004EA84 STR R2, [R11,#var_428] .text:0004EA88 B loc_4EAD8 .text:0004EA8C ; --------------------------------------------------------------------------- .text:0004EA8C .text:0004EA8C loc_4EA8C ; CODE XREF: getmntent_r+1D4j .text:0004EA8C MOV R2, R1 .text:0004EA90 B loc_4EA9C .text:0004EA94 ; --------------------------------------------------------------------------- .text:0004EA94 .text:0004EA94 loc_4EA94 ; CODE XREF: getmntent_r+210j .text:0004EA94 LDRB R3, [R2,#1]! .text:0004EA98 AND R3, R3, #0xFF .text:0004EA9C .text:0004EA9C loc_4EA9C ; CODE XREF: getmntent_r+1F0j .text:0004EA9C CMP R3, #0 .text:0004EAA0 BEQ loc_4EAB4 .text:0004EAA4 CMP R3, #0x20 .text:0004EAA8 BEQ loc_4EAB4 .text:0004EAAC CMP R3, #9 .text:0004EAB0 BNE loc_4EA94 .text:0004EAB4 .text:0004EAB4 loc_4EAB4 ; CODE XREF: getmntent_r+200j .text:0004EAB4 ; getmntent_r+208j .text:0004EAB4 LDRB R3, [R2] .text:0004EAB8 CMP R3, #0 .text:0004EABC BEQ loc_4EAD4 .text:0004EAC0 STR R2, [R6] .text:0004EAC4 MOV R3, #0 .text:0004EAC8 STRB R3, [R2],#1 .text:0004EACC STR R2, [R6] .text:0004EAD0 B loc_4EAD8 .text:0004EAD4 ; --------------------------------------------------------------------------- .text:0004EAD4 .text:0004EAD4 loc_4EAD4 ; CODE XREF: getmntent_r+21Cj .text:0004EAD4 STR R3, [R6] .text:0004EAD8 .text:0004EAD8 loc_4EAD8 ; CODE XREF: getmntent_r+1C0j .text:0004EAD8 ; getmntent_r+1E8j ... .text:0004EAD8 MOV R3, R1 .text:0004EADC SUBS R0, R3, #0 .text:0004EAE0 BEQ loc_4EAEC .text:0004EAE4 BL decode_name .text:0004EAE8 B loc_4EAF0 .text:0004EAEC ; --------------------------------------------------------------------------- .text:0004EAEC .text:0004EAEC loc_4EAEC ; CODE XREF: getmntent_r+240j .text:0004EAEC LDR R0, =dword_61FB0 .text:0004EAF0 .text:0004EAF0 loc_4EAF0 ; CODE XREF: getmntent_r+248j .text:0004EAF0 LDR R1, [R11,#var_428] .text:0004EAF4 STR R0, [R8,#4] .text:0004EAF8 CMP R1, #0 .text:0004EAFC BEQ loc_4EB30 .text:0004EB00 LDRB R3, [R1] .text:0004EB04 MOV R2, #0 .text:0004EB08 B loc_4EB14 .text:0004EB0C ; --------------------------------------------------------------------------- .text:0004EB0C .text:0004EB0C loc_4EB0C ; CODE XREF: getmntent_r+278j .text:0004EB0C ; getmntent_r+280j .text:0004EB0C ADD R2, R2, #1 .text:0004EB10 LDRB R3, [R1,R2] .text:0004EB14 .text:0004EB14 loc_4EB14 ; CODE XREF: getmntent_r+268j .text:0004EB14 CMP R3, #0x20 .text:0004EB18 BEQ loc_4EB0C .text:0004EB1C CMP R3, #9 .text:0004EB20 BEQ loc_4EB0C .text:0004EB24 LDR R3, [R11,#var_428] .text:0004EB28 ADD R3, R3, R2 .text:0004EB2C STR R3, [R11,#var_428] .text:0004EB30 .text:0004EB30 loc_4EB30 ; CODE XREF: getmntent_r+25Cj .text:0004EB30 LDR R1, [R11,#var_428] .text:0004EB34 CMP R1, #0 .text:0004EB38 BEQ loc_4EBB0 .text:0004EB3C LDRB R3, [R1] .text:0004EB40 CMP R3, #0x20 .text:0004EB44 BEQ loc_4EB50 .text:0004EB48 CMP R3, #9 .text:0004EB4C BNE loc_4EB64 .text:0004EB50 .text:0004EB50 loc_4EB50 ; CODE XREF: getmntent_r+2A4j .text:0004EB50 MOV R2, R1 .text:0004EB54 MOV R3, #0 .text:0004EB58 STRB R3, [R2],#1 .text:0004EB5C STR R2, [R11,#var_428] .text:0004EB60 B loc_4EBB0 .text:0004EB64 ; --------------------------------------------------------------------------- .text:0004EB64 .text:0004EB64 loc_4EB64 ; CODE XREF: getmntent_r+2ACj .text:0004EB64 MOV R2, R1 .text:0004EB68 B loc_4EB74 .text:0004EB6C ; --------------------------------------------------------------------------- .text:0004EB6C .text:0004EB6C loc_4EB6C ; CODE XREF: getmntent_r+2E8j .text:0004EB6C LDRB R3, [R2,#1]! .text:0004EB70 AND R3, R3, #0xFF .text:0004EB74 .text:0004EB74 loc_4EB74 ; CODE XREF: getmntent_r+2C8j .text:0004EB74 CMP R3, #0 .text:0004EB78 BEQ loc_4EB8C .text:0004EB7C CMP R3, #0x20 .text:0004EB80 BEQ loc_4EB8C .text:0004EB84 CMP R3, #9 .text:0004EB88 BNE loc_4EB6C .text:0004EB8C .text:0004EB8C loc_4EB8C ; CODE XREF: getmntent_r+2D8j .text:0004EB8C ; getmntent_r+2E0j .text:0004EB8C LDRB R3, [R2] .text:0004EB90 CMP R3, #0 .text:0004EB94 BEQ loc_4EBAC .text:0004EB98 STR R2, [R6] .text:0004EB9C MOV R3, #0 .text:0004EBA0 STRB R3, [R2],#1 .text:0004EBA4 STR R2, [R6] .text:0004EBA8 B loc_4EBB0 .text:0004EBAC ; --------------------------------------------------------------------------- .text:0004EBAC .text:0004EBAC loc_4EBAC ; CODE XREF: getmntent_r+2F4j .text:0004EBAC STR R3, [R6] .text:0004EBB0 .text:0004EBB0 loc_4EBB0 ; CODE XREF: getmntent_r+298j .text:0004EBB0 ; getmntent_r+2C0j ... .text:0004EBB0 MOV R3, R1 .text:0004EBB4 SUBS R0, R3, #0 .text:0004EBB8 BEQ loc_4EBC4 .text:0004EBBC BL decode_name .text:0004EBC0 B loc_4EBC8 .text:0004EBC4 ; --------------------------------------------------------------------------- .text:0004EBC4 .text:0004EBC4 loc_4EBC4 ; CODE XREF: getmntent_r+318j .text:0004EBC4 LDR R0, =dword_61FB0 .text:0004EBC8 .text:0004EBC8 loc_4EBC8 ; CODE XREF: getmntent_r+320j .text:0004EBC8 LDR R1, [R11,#var_428] .text:0004EBCC STR R0, [R8,#8] .text:0004EBD0 CMP R1, #0 .text:0004EBD4 BEQ loc_4EC08 .text:0004EBD8 LDRB R3, [R1] .text:0004EBDC MOV R2, #0 .text:0004EBE0 B loc_4EBEC .text:0004EBE4 ; --------------------------------------------------------------------------- .text:0004EBE4 .text:0004EBE4 loc_4EBE4 ; CODE XREF: getmntent_r+350j .text:0004EBE4 ; getmntent_r+358j .text:0004EBE4 ADD R2, R2, #1 .text:0004EBE8 LDRB R3, [R1,R2] .text:0004EBEC .text:0004EBEC loc_4EBEC ; CODE XREF: getmntent_r+340j .text:0004EBEC CMP R3, #0x20 .text:0004EBF0 BEQ loc_4EBE4 .text:0004EBF4 CMP R3, #9 .text:0004EBF8 BEQ loc_4EBE4 .text:0004EBFC LDR R3, [R11,#var_428] .text:0004EC00 ADD R3, R3, R2 .text:0004EC04 STR R3, [R11,#var_428] .text:0004EC08 .text:0004EC08 loc_4EC08 ; CODE XREF: getmntent_r+334j .text:0004EC08 LDR R1, [R11,#var_428] .text:0004EC0C CMP R1, #0 .text:0004EC10 BEQ loc_4EC88 .text:0004EC14 LDRB R3, [R1] .text:0004EC18 CMP R3, #0x20 .text:0004EC1C BEQ loc_4EC28 .text:0004EC20 CMP R3, #9 .text:0004EC24 BNE loc_4EC3C .text:0004EC28 .text:0004EC28 loc_4EC28 ; CODE XREF: getmntent_r+37Cj .text:0004EC28 MOV R2, R1 .text:0004EC2C MOV R3, #0 .text:0004EC30 STRB R3, [R2],#1 .text:0004EC34 STR R2, [R11,#var_428] .text:0004EC38 B loc_4EC88 .text:0004EC3C ; --------------------------------------------------------------------------- .text:0004EC3C .text:0004EC3C loc_4EC3C ; CODE XREF: getmntent_r+384j .text:0004EC3C MOV R2, R1 .text:0004EC40 B loc_4EC4C .text:0004EC44 ; --------------------------------------------------------------------------- .text:0004EC44 .text:0004EC44 loc_4EC44 ; CODE XREF: getmntent_r+3C0j .text:0004EC44 LDRB R3, [R2,#1]! .text:0004EC48 AND R3, R3, #0xFF .text:0004EC4C .text:0004EC4C loc_4EC4C ; CODE XREF: getmntent_r+3A0j .text:0004EC4C CMP R3, #0 .text:0004EC50 BEQ loc_4EC64 .text:0004EC54 CMP R3, #0x20 .text:0004EC58 BEQ loc_4EC64 .text:0004EC5C CMP R3, #9 .text:0004EC60 BNE loc_4EC44 .text:0004EC64 .text:0004EC64 loc_4EC64 ; CODE XREF: getmntent_r+3B0j .text:0004EC64 ; getmntent_r+3B8j .text:0004EC64 LDRB R3, [R2] .text:0004EC68 CMP R3, #0 .text:0004EC6C BEQ loc_4EC84 .text:0004EC70 STR R2, [R6] .text:0004EC74 MOV R3, #0 .text:0004EC78 STRB R3, [R2],#1 .text:0004EC7C STR R2, [R6] .text:0004EC80 B loc_4EC88 .text:0004EC84 ; --------------------------------------------------------------------------- .text:0004EC84 .text:0004EC84 loc_4EC84 ; CODE XREF: getmntent_r+3CCj .text:0004EC84 STR R3, [R6] .text:0004EC88 .text:0004EC88 loc_4EC88 ; CODE XREF: getmntent_r+370j .text:0004EC88 ; getmntent_r+398j ... .text:0004EC88 MOV R0, R1 .text:0004EC8C CMP R0, #0 .text:0004EC90 BEQ loc_4ECA4 .text:0004EC94 BL decode_name .text:0004EC98 MOV R3, R0 .text:0004EC9C B loc_4ECA8 .text:0004EC9C ; --------------------------------------------------------------------------- .text:0004ECA0 off_4ECA0 DCD dword_61FB0 ; DATA XREF: getmntent_r:loc_4EA14r .text:0004ECA0 ; getmntent_r:loc_4EAECr ... .text:0004ECA4 ; --------------------------------------------------------------------------- .text:0004ECA4 .text:0004ECA4 loc_4ECA4 ; CODE XREF: getmntent_r+3F0j .text:0004ECA4 LDR R3, =dword_61FB0 .text:0004ECA8 .text:0004ECA8 loc_4ECA8 ; CODE XREF: getmntent_r+3FCj .text:0004ECA8 LDR R0, [R11,#var_428] .text:0004ECAC STR R3, [R8,#0xC] .text:0004ECB0 CMP R0, #0 .text:0004ECB4 ADDNE R2, R8, #0x10 .text:0004ECB8 LDRNE R1, =aDD ; " %d %d " .text:0004ECBC ADDNE R3, R8, #0x14 .text:0004ECC0 BLNE sscanf .text:0004ECC4 CMP R0, #1 .text:0004ECC8 BEQ loc_4ECDC .text:0004ECCC BGT loc_4ECE4 .text:0004ECD0 CMP R0, #0 .text:0004ECD4 BNE loc_4ECE4 .text:0004ECD8 STR R0, [R8,#0x10] .text:0004ECDC .text:0004ECDC loc_4ECDC ; CODE XREF: getmntent_r+428j .text:0004ECDC MOV R3, #0 .text:0004ECE0 STR R3, [R8,#0x14] .text:0004ECE4 .text:0004ECE4 loc_4ECE4 ; CODE XREF: getmntent_r+42Cj .text:0004ECE4 ; getmntent_r+434j .text:0004ECE4 MOV R0, R8 .text:0004ECE8 .text:0004ECE8 loc_4ECE8 ; CODE XREF: getmntent_r+40j .text:0004ECE8 B locret_4ECF4 .text:0004ECE8 ; --------------------------------------------------------------------------- .text:0004ECEC off_4ECEC DCD dword_61FB0 ; DATA XREF: getmntent_r:loc_4ECA4r .text:0004ECF0 off_4ECF0 DCD aDD ; DATA XREF: getmntent_r+418r .text:0004ECF0 ; " %d %d " .text:0004ECF4 ; --------------------------------------------------------------------------- .text:0004ECF4 .text:0004ECF4 locret_4ECF4 ; CODE XREF: getmntent_r:loc_4ECE8j .text:0004ECF4 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:0004ECF4 ; End of function getmntent_r .text:0004ECF4 .text:0004ECF8 .text:0004ECF8 ; =============== S U B R O U T I N E ======================================= .text:0004ECF8 .text:0004ECF8 ; Attributes: bp-based frame .text:0004ECF8 .text:0004ECF8 WEAK addmntent .text:0004ECF8 addmntent .text:0004ECF8 .text:0004ECF8 var_44 = -0x44 .text:0004ECF8 var_40 = -0x40 .text:0004ECF8 var_3C = -0x3C .text:0004ECF8 var_38 = -0x38 .text:0004ECF8 var_34 = -0x34 .text:0004ECF8 var_30 = -0x30 .text:0004ECF8 var_2C = -0x2C .text:0004ECF8 var_28 = -0x28 .text:0004ECF8 var_24 = -0x24 .text:0004ECF8 var_20 = -0x20 .text:0004ECF8 .text:0004ECF8 MOV R12, SP ; Alternative name is '__addmntent' .text:0004ECFC STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0004ED00 SUB R11, R12, #4 .text:0004ED04 MOV LR, R1 .text:0004ED08 MOV R7, R0 .text:0004ED0C SUB SP, SP, #0x28 .text:0004ED10 LDMIA LR!, {R0-R3} .text:0004ED14 SUB R12, R11, #-var_34 .text:0004ED18 STMIA R12!, {R0-R3} .text:0004ED1C LDMIA LR, {R0,R1} .text:0004ED20 STMIA R12, {R0,R1} .text:0004ED24 MOV R2, #2 .text:0004ED28 MOV R0, R7 .text:0004ED2C MOV R1, #0 .text:0004ED30 BL fseek .text:0004ED34 CMP R0, #0 .text:0004ED38 MOVNE R0, #1 .text:0004ED3C BNE locret_4F0C8 .text:0004ED40 LDR R4, [R11,#var_34] .text:0004ED44 LDR R6, =aSSSSDD ; "%s %s %s %s %d %d\n" .text:0004ED48 LDRB R3, [R4] .text:0004ED4C MOV R2, R4 .text:0004ED50 B loc_4ED5C .text:0004ED54 ; --------------------------------------------------------------------------- .text:0004ED54 .text:0004ED54 loc_4ED54 ; CODE XREF: addmntent+7Cj .text:0004ED54 LDRB R3, [R4,#1]! .text:0004ED58 AND R3, R3, #0xFF .text:0004ED5C .text:0004ED5C loc_4ED5C ; CODE XREF: addmntent+58j .text:0004ED5C CMP R3, #0 .text:0004ED60 BEQ loc_4ED78 .text:0004ED64 CMP R3, #9 .text:0004ED68 CMPNE R3, #0x20 .text:0004ED6C BEQ loc_4ED78 .text:0004ED70 CMP R3, #0x5C .text:0004ED74 BNE loc_4ED54 .text:0004ED78 .text:0004ED78 loc_4ED78 ; CODE XREF: addmntent+68j .text:0004ED78 ; addmntent+74j .text:0004ED78 LDRB R3, [R4] .text:0004ED7C CMP R3, #0 .text:0004ED80 BEQ loc_4EE14 .text:0004ED84 MOV R4, R2 .text:0004ED88 MOV R0, R4 .text:0004ED8C BL strlen .text:0004ED90 MOV R0, R0,LSL#2 .text:0004ED94 ADD R0, R0, #4 .text:0004ED98 RSB SP, R0, SP .text:0004ED9C ADD R2, SP, #0x44+var_34 .text:0004EDA0 MOV R12, #0x5C .text:0004EDA4 MOV R0, #0x30 .text:0004EDA8 MOV R5, #0x34 .text:0004EDAC MOV LR, #0x31 .text:0004EDB0 STR R2, [R11,#var_34] .text:0004EDB4 .text:0004EDB4 loc_4EDB4 ; CODE XREF: addmntent+118j .text:0004EDB4 LDRB R1, [R4] .text:0004EDB8 AND R3, R1, #0xFF .text:0004EDBC CMP R3, #0x20 .text:0004EDC0 BNE loc_4EDD8 .text:0004EDC4 STRB R12, [R2],#1 .text:0004EDC8 STRB R0, [R2],#1 .text:0004EDCC STRB R5, [R2],#1 .text:0004EDD0 STRB R0, [R2],#1 .text:0004EDD4 B loc_4EE08 .text:0004EDD8 ; --------------------------------------------------------------------------- .text:0004EDD8 .text:0004EDD8 loc_4EDD8 ; CODE XREF: addmntent+C8j .text:0004EDD8 CMP R3, #9 .text:0004EDDC BNE loc_4EDF8 .text:0004EDE0 STRB R12, [R2],#1 .text:0004EDE4 STRB R0, [R2],#1 .text:0004EDE8 STRB LR, [R2],#1 .text:0004EDEC MOV R3, #0x32 .text:0004EDF0 STRB R3, [R2],#1 .text:0004EDF4 B loc_4EE08 .text:0004EDF8 ; --------------------------------------------------------------------------- .text:0004EDF8 .text:0004EDF8 loc_4EDF8 ; CODE XREF: addmntent+E4j .text:0004EDF8 CMP R3, #0x5C .text:0004EDFC STREQB R3, [R2],#1 .text:0004EE00 STREQB R3, [R2],#1 .text:0004EE04 STRNEB R1, [R2],#1 .text:0004EE08 .text:0004EE08 loc_4EE08 ; CODE XREF: addmntent+DCj .text:0004EE08 ; addmntent+FCj .text:0004EE08 LDRB R3, [R4],#1 .text:0004EE0C CMP R3, #0 .text:0004EE10 BNE loc_4EDB4 .text:0004EE14 .text:0004EE14 loc_4EE14 ; CODE XREF: addmntent+88j .text:0004EE14 LDR R4, [R11,#var_30] .text:0004EE18 LDRB R3, [R4] .text:0004EE1C MOV R2, R4 .text:0004EE20 B loc_4EE2C .text:0004EE24 ; --------------------------------------------------------------------------- .text:0004EE24 .text:0004EE24 loc_4EE24 ; CODE XREF: addmntent+14Cj .text:0004EE24 LDRB R3, [R4,#1]! .text:0004EE28 AND R3, R3, #0xFF .text:0004EE2C .text:0004EE2C loc_4EE2C ; CODE XREF: addmntent+128j .text:0004EE2C CMP R3, #0 .text:0004EE30 BEQ loc_4EE48 .text:0004EE34 CMP R3, #9 .text:0004EE38 CMPNE R3, #0x20 .text:0004EE3C BEQ loc_4EE48 .text:0004EE40 CMP R3, #0x5C .text:0004EE44 BNE loc_4EE24 .text:0004EE48 .text:0004EE48 loc_4EE48 ; CODE XREF: addmntent+138j .text:0004EE48 ; addmntent+144j .text:0004EE48 LDRB R3, [R4] .text:0004EE4C CMP R3, #0 .text:0004EE50 BEQ loc_4EEE4 .text:0004EE54 MOV R4, R2 .text:0004EE58 MOV R0, R4 .text:0004EE5C BL strlen .text:0004EE60 MOV R0, R0,LSL#2 .text:0004EE64 ADD R0, R0, #4 .text:0004EE68 RSB SP, R0, SP .text:0004EE6C ADD R2, SP, #0x44+var_34 .text:0004EE70 MOV R12, #0x5C .text:0004EE74 MOV R0, #0x30 .text:0004EE78 MOV R5, #0x34 .text:0004EE7C MOV LR, #0x31 .text:0004EE80 STR R2, [R11,#var_30] .text:0004EE84 .text:0004EE84 loc_4EE84 ; CODE XREF: addmntent+1E8j .text:0004EE84 LDRB R1, [R4] .text:0004EE88 AND R3, R1, #0xFF .text:0004EE8C CMP R3, #0x20 .text:0004EE90 BNE loc_4EEA8 .text:0004EE94 STRB R12, [R2],#1 .text:0004EE98 STRB R0, [R2],#1 .text:0004EE9C STRB R5, [R2],#1 .text:0004EEA0 STRB R0, [R2],#1 .text:0004EEA4 B loc_4EED8 .text:0004EEA8 ; --------------------------------------------------------------------------- .text:0004EEA8 .text:0004EEA8 loc_4EEA8 ; CODE XREF: addmntent+198j .text:0004EEA8 CMP R3, #9 .text:0004EEAC BNE loc_4EEC8 .text:0004EEB0 STRB R12, [R2],#1 .text:0004EEB4 STRB R0, [R2],#1 .text:0004EEB8 STRB LR, [R2],#1 .text:0004EEBC MOV R3, #0x32 .text:0004EEC0 STRB R3, [R2],#1 .text:0004EEC4 B loc_4EED8 .text:0004EEC8 ; --------------------------------------------------------------------------- .text:0004EEC8 .text:0004EEC8 loc_4EEC8 ; CODE XREF: addmntent+1B4j .text:0004EEC8 CMP R3, #0x5C .text:0004EECC STREQB R3, [R2],#1 .text:0004EED0 STREQB R3, [R2],#1 .text:0004EED4 STRNEB R1, [R2],#1 .text:0004EED8 .text:0004EED8 loc_4EED8 ; CODE XREF: addmntent+1ACj .text:0004EED8 ; addmntent+1CCj .text:0004EED8 LDRB R3, [R4],#1 .text:0004EEDC CMP R3, #0 .text:0004EEE0 BNE loc_4EE84 .text:0004EEE4 .text:0004EEE4 loc_4EEE4 ; CODE XREF: addmntent+158j .text:0004EEE4 LDR R4, [R11,#var_2C] .text:0004EEE8 LDRB R3, [R4] .text:0004EEEC MOV R2, R4 .text:0004EEF0 B loc_4EEFC .text:0004EEF4 ; --------------------------------------------------------------------------- .text:0004EEF4 .text:0004EEF4 loc_4EEF4 ; CODE XREF: addmntent+21Cj .text:0004EEF4 LDRB R3, [R4,#1]! .text:0004EEF8 AND R3, R3, #0xFF .text:0004EEFC .text:0004EEFC loc_4EEFC ; CODE XREF: addmntent+1F8j .text:0004EEFC CMP R3, #0 .text:0004EF00 BEQ loc_4EF18 .text:0004EF04 CMP R3, #9 .text:0004EF08 CMPNE R3, #0x20 .text:0004EF0C BEQ loc_4EF18 .text:0004EF10 CMP R3, #0x5C .text:0004EF14 BNE loc_4EEF4 .text:0004EF18 .text:0004EF18 loc_4EF18 ; CODE XREF: addmntent+208j .text:0004EF18 ; addmntent+214j .text:0004EF18 LDRB R3, [R4] .text:0004EF1C CMP R3, #0 .text:0004EF20 BEQ loc_4EFB4 .text:0004EF24 MOV R4, R2 .text:0004EF28 MOV R0, R4 .text:0004EF2C BL strlen .text:0004EF30 MOV R0, R0,LSL#2 .text:0004EF34 ADD R0, R0, #4 .text:0004EF38 RSB SP, R0, SP .text:0004EF3C ADD R2, SP, #0x44+var_34 .text:0004EF40 MOV R12, #0x5C .text:0004EF44 MOV R0, #0x30 .text:0004EF48 MOV R5, #0x34 .text:0004EF4C MOV LR, #0x31 .text:0004EF50 STR R2, [R11,#var_2C] .text:0004EF54 .text:0004EF54 loc_4EF54 ; CODE XREF: addmntent+2B8j .text:0004EF54 LDRB R1, [R4] .text:0004EF58 AND R3, R1, #0xFF .text:0004EF5C CMP R3, #0x20 .text:0004EF60 BNE loc_4EF78 .text:0004EF64 STRB R12, [R2],#1 .text:0004EF68 STRB R0, [R2],#1 .text:0004EF6C STRB R5, [R2],#1 .text:0004EF70 STRB R0, [R2],#1 .text:0004EF74 B loc_4EFA8 .text:0004EF78 ; --------------------------------------------------------------------------- .text:0004EF78 .text:0004EF78 loc_4EF78 ; CODE XREF: addmntent+268j .text:0004EF78 CMP R3, #9 .text:0004EF7C BNE loc_4EF98 .text:0004EF80 STRB R12, [R2],#1 .text:0004EF84 STRB R0, [R2],#1 .text:0004EF88 STRB LR, [R2],#1 .text:0004EF8C MOV R3, #0x32 .text:0004EF90 STRB R3, [R2],#1 .text:0004EF94 B loc_4EFA8 .text:0004EF98 ; --------------------------------------------------------------------------- .text:0004EF98 .text:0004EF98 loc_4EF98 ; CODE XREF: addmntent+284j .text:0004EF98 CMP R3, #0x5C .text:0004EF9C STREQB R3, [R2],#1 .text:0004EFA0 STREQB R3, [R2],#1 .text:0004EFA4 STRNEB R1, [R2],#1 .text:0004EFA8 .text:0004EFA8 loc_4EFA8 ; CODE XREF: addmntent+27Cj .text:0004EFA8 ; addmntent+29Cj .text:0004EFA8 LDRB R3, [R4],#1 .text:0004EFAC CMP R3, #0 .text:0004EFB0 BNE loc_4EF54 .text:0004EFB4 .text:0004EFB4 loc_4EFB4 ; CODE XREF: addmntent+228j .text:0004EFB4 LDR R4, [R11,#var_28] .text:0004EFB8 LDRB R3, [R4] .text:0004EFBC MOV R2, R4 .text:0004EFC0 B loc_4EFCC .text:0004EFC4 ; --------------------------------------------------------------------------- .text:0004EFC4 .text:0004EFC4 loc_4EFC4 ; CODE XREF: addmntent+2ECj .text:0004EFC4 LDRB R3, [R4,#1]! .text:0004EFC8 AND R3, R3, #0xFF .text:0004EFCC .text:0004EFCC loc_4EFCC ; CODE XREF: addmntent+2C8j .text:0004EFCC CMP R3, #0 .text:0004EFD0 BEQ loc_4EFE8 .text:0004EFD4 CMP R3, #9 .text:0004EFD8 CMPNE R3, #0x20 .text:0004EFDC BEQ loc_4EFE8 .text:0004EFE0 CMP R3, #0x5C .text:0004EFE4 BNE loc_4EFC4 .text:0004EFE8 .text:0004EFE8 loc_4EFE8 ; CODE XREF: addmntent+2D8j .text:0004EFE8 ; addmntent+2E4j .text:0004EFE8 LDRB R3, [R4] .text:0004EFEC CMP R3, #0 .text:0004EFF0 BEQ loc_4F090 .text:0004EFF4 MOV R4, R2 .text:0004EFF8 MOV R0, R4 .text:0004EFFC BL strlen .text:0004F000 MOV R0, R0,LSL#2 .text:0004F004 ADD R0, R0, #4 .text:0004F008 RSB SP, R0, SP .text:0004F00C ADD R2, SP, #0x44+var_34 .text:0004F010 MOV R12, #0x5C .text:0004F014 MOV R0, #0x30 .text:0004F018 MOV R5, #0x34 .text:0004F01C MOV LR, #0x31 .text:0004F020 STR R2, [R11,#var_28] .text:0004F024 .text:0004F024 loc_4F024 ; CODE XREF: addmntent+394j .text:0004F024 LDRB R1, [R4] .text:0004F028 AND R3, R1, #0xFF .text:0004F02C CMP R3, #0x20 .text:0004F030 BNE loc_4F048 .text:0004F034 STRB R12, [R2],#1 .text:0004F038 STRB R0, [R2],#1 .text:0004F03C STRB R5, [R2],#1 .text:0004F040 STRB R0, [R2],#1 .text:0004F044 B loc_4F084 .text:0004F048 ; --------------------------------------------------------------------------- .text:0004F048 .text:0004F048 loc_4F048 ; CODE XREF: addmntent+338j .text:0004F048 CMP R3, #9 .text:0004F04C BNE loc_4F068 .text:0004F050 STRB R12, [R2],#1 .text:0004F054 STRB R0, [R2],#1 .text:0004F058 STRB LR, [R2],#1 .text:0004F05C MOV R3, #0x32 .text:0004F060 STRB R3, [R2],#1 .text:0004F064 B loc_4F084 .text:0004F068 ; --------------------------------------------------------------------------- .text:0004F068 .text:0004F068 loc_4F068 ; CODE XREF: addmntent+354j .text:0004F068 CMP R3, #0x5C .text:0004F06C BNE loc_4F080 .text:0004F070 STRB R3, [R2],#1 .text:0004F074 STRB R3, [R2],#1 .text:0004F078 B loc_4F084 .text:0004F078 ; --------------------------------------------------------------------------- .text:0004F07C off_4F07C DCD aSSSSDD ; DATA XREF: addmntent+4Cr .text:0004F07C ; "%s %s %s %s %d %d\n" .text:0004F080 ; --------------------------------------------------------------------------- .text:0004F080 .text:0004F080 loc_4F080 ; CODE XREF: addmntent+374j .text:0004F080 STRB R1, [R2],#1 .text:0004F084 .text:0004F084 loc_4F084 ; CODE XREF: addmntent+34Cj .text:0004F084 ; addmntent+36Cj ... .text:0004F084 LDRB R3, [R4],#1 .text:0004F088 CMP R3, #0 .text:0004F08C BNE loc_4F024 .text:0004F090 .text:0004F090 loc_4F090 ; CODE XREF: addmntent+2F8j .text:0004F090 LDR R3, [R11,#var_2C] .text:0004F094 STR R3, [SP,#0x44+var_44] .text:0004F098 LDR R2, [R11,#var_28] .text:0004F09C STR R2, [SP,#0x44+var_40] .text:0004F0A0 LDR R3, [R11,#var_24] .text:0004F0A4 STR R3, [SP,#0x44+var_3C] .text:0004F0A8 LDR R2, [R11,#var_20] .text:0004F0AC STR R2, [SP,#0x44+var_38] .text:0004F0B0 LDR R2, [R11,#var_34] .text:0004F0B4 MOV R0, R7 .text:0004F0B8 LDR R3, [R11,#var_30] .text:0004F0BC MOV R1, R6 .text:0004F0C0 BL fprintf .text:0004F0C4 MOV R0, R0,LSR#31 .text:0004F0C8 .text:0004F0C8 locret_4F0C8 ; CODE XREF: addmntent+44j .text:0004F0C8 LDMDB R11, {R4-R7,R11,SP,PC} .text:0004F0C8 ; End of function addmntent .text:0004F0C8 .text:0004F0CC .text:0004F0CC ; =============== S U B R O U T I N E ======================================= .text:0004F0CC .text:0004F0CC ; Attributes: bp-based frame .text:0004F0CC .text:0004F0CC WEAK hasmntopt .text:0004F0CC hasmntopt .text:0004F0CC MOV R12, SP .text:0004F0D0 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:0004F0D4 SUB R11, R12, #4 .text:0004F0D8 MOV R4, R0 .text:0004F0DC MOV R5, R1 .text:0004F0E0 MOV R0, R5 .text:0004F0E4 BL strlen .text:0004F0E8 LDR R4, [R4,#0xC] .text:0004F0EC MOV R6, R0 .text:0004F0F0 B loc_4F138 .text:0004F0F4 ; --------------------------------------------------------------------------- .text:0004F0F4 .text:0004F0F4 loc_4F0F4 ; CODE XREF: hasmntopt+7Cj .text:0004F0F4 CMP R0, R4 .text:0004F0F8 LDMEQDB R11, {R4-R6,R11,SP,PC} .text:0004F0FC LDRB R3, [R0,#-1] .text:0004F100 CMP R3, #0x2C .text:0004F104 BNE loc_4F120 .text:0004F108 LDRB R3, [R0,R6] .text:0004F10C CMP R3, #0x3D .text:0004F110 CMPNE R3, #0 .text:0004F114 LDMEQDB R11, {R4-R6,R11,SP,PC} .text:0004F118 CMP R3, #0x2C .text:0004F11C LDMEQDB R11, {R4-R6,R11,SP,PC} .text:0004F120 .text:0004F120 loc_4F120 ; CODE XREF: hasmntopt+38j .text:0004F120 MOV R0, R4 .text:0004F124 MOV R1, #0x2C .text:0004F128 BL strchr .text:0004F12C SUBS R4, R0, #0 .text:0004F130 BEQ loc_4F14C .text:0004F134 ADD R4, R4, #1 .text:0004F138 .text:0004F138 loc_4F138 ; CODE XREF: hasmntopt+24j .text:0004F138 MOV R0, R4 .text:0004F13C MOV R1, R5 .text:0004F140 BL strstr .text:0004F144 CMP R0, #0 .text:0004F148 BNE loc_4F0F4 .text:0004F14C .text:0004F14C loc_4F14C ; CODE XREF: hasmntopt+64j .text:0004F14C MOV R0, #0 .text:0004F150 LDMDB R11, {R4-R6,R11,SP,PC} .text:0004F150 ; End of function hasmntopt .text:0004F150 .text:0004F154 .text:0004F154 ; =============== S U B R O U T I N E ======================================= .text:0004F154 .text:0004F154 ; Attributes: bp-based frame .text:0004F154 .text:0004F154 EXPORT _dl_start_profile .text:0004F154 _dl_start_profile .text:0004F154 .text:0004F154 var_588 = -0x588 .text:0004F154 var_584 = -0x584 .text:0004F154 var_580 = -0x580 .text:0004F154 var_57C = -0x57C .text:0004F154 var_578 = -0x578 .text:0004F154 var_574 = -0x574 .text:0004F154 var_570 = -0x570 .text:0004F154 var_560 = -0x560 .text:0004F154 var_3DC = -0x3DC .text:0004F154 var_24C = -0x24C .text:0004F154 var_BC = -0xBC .text:0004F154 var_B8 = -0xB8 .text:0004F154 var_B4 = -0xB4 .text:0004F154 var_B0 = -0xB0 .text:0004F154 var_AC = -0xAC .text:0004F154 var_9D = -0x9D .text:0004F154 var_9C = -0x9C .text:0004F154 var_98 = -0x98 .text:0004F154 var_88 = -0x88 .text:0004F154 var_78 = -0x78 .text:0004F154 var_5C = -0x5C .text:0004F154 var_28 = -0x28 .text:0004F154 .text:0004F154 MOV R12, SP .text:0004F158 STMFD SP!, {R4-R12,LR,PC} .text:0004F15C SUB R11, R12, #4 .text:0004F160 MOV R4, R0 .text:0004F164 MOV R8, 0xFFFFFFFF .text:0004F168 MOV R7, #0 .text:0004F16C SUB SP, SP, #0x560 .text:0004F170 LDR LR, [R4,#0xEC] .text:0004F174 MOV R6, R7 .text:0004F178 LDRB R3, [R4,#0xF4] .text:0004F17C MOV R9, R1 .text:0004F180 LDRB R2, [R4,#0xF5] .text:0004F184 SUB R1, R11, #-var_9C .text:0004F188 STR R1, [R11,#var_580] .text:0004F18C ORR R3, R3, R2,LSL#8 .text:0004F190 ADD R3, LR, R3,LSL#5 .text:0004F194 CMP LR, R3 .text:0004F198 SUB R2, R11, #-var_AC .text:0004F19C STR R2, [R11,#var_57C] .text:0004F1A0 BCS loc_4F204 .text:0004F1A4 MOV R5, R3 .text:0004F1A8 LDR R10, =_dl_pagesize .text:0004F1AC .text:0004F1AC loc_4F1AC ; CODE XREF: _dl_start_profile+ACj .text:0004F1AC LDR R3, [LR] .text:0004F1B0 CMP R3, #1 .text:0004F1B4 BNE loc_4F1F8 .text:0004F1B8 LDR R3, [LR,#0x18] .text:0004F1BC TST R3, #1 .text:0004F1C0 BEQ loc_4F1F8 .text:0004F1C4 LDR R12, [R10] .text:0004F1C8 LDR R3, [LR,#8] .text:0004F1CC LDR R1, [LR,#0x14] .text:0004F1D0 RSB R0, R12, #0 .text:0004F1D4 AND R2, R3, R0 .text:0004F1D8 CMP R2, R8 .text:0004F1DC MOVCC R8, R2 .text:0004F1E0 ADD R3, R3, R1 .text:0004F1E4 ADD R3, R3, R12 .text:0004F1E8 SUB R3, R3, #1 .text:0004F1EC AND R3, R3, R0 .text:0004F1F0 CMP R3, R6 .text:0004F1F4 MOVCS R6, R3 .text:0004F1F8 .text:0004F1F8 loc_4F1F8 ; CODE XREF: _dl_start_profile+60j .text:0004F1F8 ; _dl_start_profile+6Cj .text:0004F1F8 ADD LR, LR, #0x20 .text:0004F1FC CMP LR, R5 .text:0004F200 BCC loc_4F1AC .text:0004F204 .text:0004F204 loc_4F204 ; CODE XREF: _dl_start_profile+4Cj .text:0004F204 LDR R3, =state .text:0004F208 MOV R12, #3 .text:0004F20C STR R12, [R3] .text:0004F210 LDR R1, =hashfraction .text:0004F214 LDR R2, =lowpc .text:0004F218 LDR R3, [R4] .text:0004F21C MOV R5, #2 .text:0004F220 STR R5, [R1] .text:0004F224 ADD R4, R8, R3 .text:0004F228 BIC R4, R4, #3 .text:0004F22C ADD R3, R6, R3 .text:0004F230 STR R4, [R2] .text:0004F234 ADD R3, R3, R12 .text:0004F238 BIC R3, R3, #3 .text:0004F23C STR R3, [R11,#var_574] .text:0004F240 RSB R4, R4, R3 .text:0004F244 LDR R3, =textsize .text:0004F248 STR R4, [R3] .text:0004F24C MOV R3, R4,LSR#1 .text:0004F250 STR R3, [R11,#var_578] .text:0004F254 LDR R12, =kcountsize .text:0004F258 STR R3, [R12] .text:0004F25C MOV R0, R5,LSL#3 .text:0004F260 BL ffsl .text:0004F264 LDR R3, =log_hashfraction .text:0004F268 SUB R0, R0, #1 .text:0004F26C STR R0, [R3] .text:0004F270 MOV R1, #0x32 .text:0004F274 MOV R0, R4 .text:0004F278 BL __udivsi3 .text:0004F27C LDR R1, =fromlimit .text:0004F280 CMP R0, #0x31 .text:0004F284 STR R0, [R1] .text:0004F288 MOVLS R3, #0x32 .text:0004F28C STRLS R3, [R1] .text:0004F290 LDR R12, =fromlimit .text:0004F294 MOV R2, #0xFF00 .text:0004F298 LDR R3, [R12] .text:0004F29C ADD R2, R2, #0xFE .text:0004F2A0 CMP R3, R2 .text:0004F2A4 STRHI R2, [R12] .text:0004F2A8 LDR R2, =fromlimit .text:0004F2AC LDR R3, [R2] .text:0004F2B0 MOV R12, R3,LSL#3 .text:0004F2B4 STR R12, [R11,#var_570] .text:0004F2B8 MOV R1, #0 .text:0004F2BC LDR R0, [R11,#var_580] .text:0004F2C0 MOV R2, #0x14 .text:0004F2C4 ADD R3, R12, R3,LSL#4 .text:0004F2C8 MOV R3, R3,LSL#2 .text:0004F2CC LDR R12, [R11,#var_578] .text:0004F2D0 ADD R3, R3, #0x40 .text:0004F2D4 ADD R10, R12, R3 .text:0004F2D8 BL memset .text:0004F2DC MOV R3, 0x1FFFF .text:0004F2E4 STR R3, [R11,#var_98] .text:0004F2E8 STR R8, [R11,#var_BC] .text:0004F2EC STR R6, [R11,#var_B8] .text:0004F2F0 LDR R3, =dword_61FD0 .text:0004F2F4 LDR R2, [R3] .text:0004F2F8 STR R2, [R11,#var_9C] .text:0004F2FC LDR R1, =kcountsize .text:0004F300 LDR R3, [R1] .text:0004F304 MOV R3, R3,LSR#1 .text:0004F308 STR R3, [R11,#var_B4] .text:0004F30C BL __profile_frequency .text:0004F310 STR R0, [R11,#var_B0] .text:0004F314 LDR R0, [R11,#var_57C] .text:0004F318 LDR R1, =aSeconds ; "seconds" .text:0004F31C MOV R2, #0xF .text:0004F320 BL strncpy .text:0004F324 MOV R3, #0x73 .text:0004F328 STRB R3, [R11,#var_9D] .text:0004F32C MOV R0, R9 .text:0004F330 BL strlen .text:0004F334 LDR R2, =_dl_profile .text:0004F338 MOV R4, R0 .text:0004F33C LDR R0, [R2] .text:0004F340 BL strlen .text:0004F344 ADD R0, R0, R4 .text:0004F348 ADD R0, R0, #0xD .text:0004F34C BIC R0, R0, #3 .text:0004F350 RSB SP, R0, SP .text:0004F354 ADD R8, SP, #0x588+var_580 .text:0004F358 MOV R0, R8 .text:0004F35C MOV R1, R9 .text:0004F360 BL stpcpy .text:0004F364 MOV R3, #0x2F .text:0004F368 STRB R3, [R0],#1 .text:0004F36C LDR R3, =_dl_profile .text:0004F370 LDR R1, [R3] .text:0004F374 BL stpcpy .text:0004F378 LDR R1, =a_profile ; ".profile" .text:0004F37C BL stpcpy .text:0004F380 MOV R0, R8 .text:0004F384 MOV R1, 0x8042 .text:0004F38C MOV R2, 0x1B6 .text:0004F394 BL open .text:0004F398 MOV R6, R0 .text:0004F39C CMN R6, #1 .text:0004F3A0 BNE loc_4F3C8 .text:0004F3A4 BL __errno_location .text:0004F3A8 SUB R1, R11, #-var_24C .text:0004F3AC LDR R0, [R0] .text:0004F3B0 MOV R2, #0x190 .text:0004F3B4 BL strerror_r .text:0004F3B8 MOV R3, R0 .text:0004F3BC MOV R0, R5 .text:0004F3C0 LDR R1, =aSCannotOpenFil ; "%s: cannot open file: %s\n" .text:0004F3C4 B loc_4F5F0 .text:0004F3C8 ; --------------------------------------------------------------------------- .text:0004F3C8 .text:0004F3C8 loc_4F3C8 ; CODE XREF: _dl_start_profile+24Cj .text:0004F3C8 MOV R0, #3 .text:0004F3CC MOV R1, R6 .text:0004F3D0 SUB R2, R11, #-var_88 .text:0004F3D4 BL __fxstat64 .text:0004F3D8 CMP R0, #0 .text:0004F3DC BLT loc_4F3F0 .text:0004F3E0 LDR R3, [R11,#var_78] .text:0004F3E4 AND R3, R3, #0xF000 .text:0004F3E8 CMP R3, #0x8000 .text:0004F3EC BEQ loc_4F420 .text:0004F3F0 .text:0004F3F0 loc_4F3F0 ; CODE XREF: _dl_start_profile+288j .text:0004F3F0 BL __errno_location .text:0004F3F4 LDR R4, [R0] .text:0004F3F8 MOV R0, R6 .text:0004F3FC BL close .text:0004F400 SUB R1, R11, #-var_3DC .text:0004F404 MOV R2, #0x190 .text:0004F408 MOV R0, R4 .text:0004F40C BL strerror_r .text:0004F410 MOV R3, R0 .text:0004F414 MOV R0, R5 .text:0004F418 LDR R1, =aSCannotStatFil ; "%s: cannot stat file: %s\n" .text:0004F41C B loc_4F5F0 .text:0004F420 ; --------------------------------------------------------------------------- .text:0004F420 .text:0004F420 loc_4F420 ; CODE XREF: _dl_start_profile+298j .text:0004F420 MOV R2, 0xFFFFFFCC .text:0004F424 SUB R12, R11, #-var_28 .text:0004F428 LDR R5, [R12,R2] .text:0004F42C ADD R2, R2, R11 .text:0004F430 SUB R3, R2, #0x28 .text:0004F434 LDR R0, [R3,#4] .text:0004F438 ORRS R5, R5, R0 .text:0004F43C BNE loc_4F508 .text:0004F440 LDR R4, =_dl_pagesize .text:0004F444 MOV R1, R5 .text:0004F448 LDR R2, [R4] .text:0004F44C MOV R9, SP .text:0004F450 BIC R3, R2, #0xE0000000 .text:0004F454 ADD R3, R3, #3 .text:0004F458 BIC R3, R3, #0xC0000003 .text:0004F45C RSB SP, R3, SP .text:0004F460 ADD R7, SP, #0x588+var_580 .text:0004F464 MOV R0, R7 .text:0004F468 BL memset .text:0004F46C MOV R0, R6 .text:0004F470 LDR R1, [R4] .text:0004F474 MOV R2, R5 .text:0004F478 RSB R1, R1, #0 .text:0004F47C AND R1, R10, R1 .text:0004F480 BL lseek .text:0004F484 CMN R0, #1 .text:0004F488 BNE loc_4F4C4 .text:0004F48C .text:0004F48C loc_4F48C ; CODE XREF: _dl_start_profile+3A8j .text:0004F48C BL __errno_location .text:0004F490 LDR R4, [R0] .text:0004F494 MOV R0, R6 .text:0004F498 BL close .text:0004F49C SUB R1, R11, #-var_560 .text:0004F4A0 SUB R1, R1, #8 .text:0004F4A4 SUB R1, R1, #4 .text:0004F4A8 MOV R2, #0x190 .text:0004F4AC MOV R0, R4 .text:0004F4B0 BL strerror_r .text:0004F4B4 MOV R3, R0 .text:0004F4B8 MOV R0, #2 .text:0004F4BC LDR R1, =aSCannotCreateF ; "%s: cannot create file: %s\n" .text:0004F4C0 B loc_4F5F0 .text:0004F4C4 ; --------------------------------------------------------------------------- .text:0004F4C4 .text:0004F4C4 loc_4F4C4 ; CODE XREF: _dl_start_profile+334j .text:0004F4C4 ; _dl_start_profile+3A0j .text:0004F4C4 MOV R0, R6 .text:0004F4C8 LDR R2, [R4] .text:0004F4CC MOV R1, R7 .text:0004F4D0 SUB R2, R2, #1 .text:0004F4D4 AND R2, R10, R2 .text:0004F4D8 BL write .text:0004F4DC MOV R5, R0 .text:0004F4E0 CMN R5, #1 .text:0004F4E4 BNE loc_4F4F8 .text:0004F4E8 BL __errno_location .text:0004F4EC LDR R3, [R0] .text:0004F4F0 CMP R3, #4 .text:0004F4F4 BEQ loc_4F4C4 .text:0004F4F8 .text:0004F4F8 loc_4F4F8 ; CODE XREF: _dl_start_profile+390j .text:0004F4F8 CMP R5, #0 .text:0004F4FC BLT loc_4F48C .text:0004F500 MOV SP, R9 .text:0004F504 B loc_4F594 .text:0004F508 ; --------------------------------------------------------------------------- .text:0004F508 .text:0004F508 loc_4F508 ; CODE XREF: _dl_start_profile+2E8j .text:0004F508 LDR R3, [R11,#var_5C] .text:0004F50C MOV R1, R10 .text:0004F510 MOV R2, R1,ASR#31 .text:0004F514 CMP R3, R1 .text:0004F518 BNE loc_4F524 .text:0004F51C CMP R0, R2 .text:0004F520 BEQ loc_4F594 .text:0004F524 .text:0004F524 loc_4F524 ; CODE XREF: _dl_start_profile+3C4j .text:0004F524 MOV R0, R6 .text:0004F528 BL close .text:0004F52C .text:0004F52C loc_4F52C ; CODE XREF: _dl_start_profile+554j .text:0004F52C ; _dl_start_profile+560j ... .text:0004F52C CMP R7, #0 .text:0004F530 BEQ loc_4F540 .text:0004F534 MOV R0, R7 .text:0004F538 MOV R1, R10 .text:0004F53C BL munmap .text:0004F540 .text:0004F540 loc_4F540 ; CODE XREF: _dl_start_profile+3DCj .text:0004F540 LDR R1, =aSFileIsNoCorre ; "%s: file is no correct profile data fil"... .text:0004F544 LDR R2, =_dl_profile .text:0004F548 MOV R0, #2 .text:0004F54C LDR R3, [R2] .text:0004F550 B loc_4F5F0 .text:0004F550 ; --------------------------------------------------------------------------- .text:0004F554 off_4F554 DCD _dl_pagesize ; DATA XREF: _dl_start_profile+54r .text:0004F554 ; _dl_start_profile+2ECr .text:0004F558 off_4F558 DCD state ; DATA XREF: _dl_start_profile:loc_4F204r .text:0004F55C off_4F55C DCD hashfraction ; DATA XREF: _dl_start_profile+BCr .text:0004F560 off_4F560 DCD lowpc ; DATA XREF: _dl_start_profile+C0r .text:0004F564 off_4F564 DCD textsize ; DATA XREF: _dl_start_profile+F0r .text:0004F568 off_4F568 DCD kcountsize ; DATA XREF: _dl_start_profile+100r .text:0004F568 ; _dl_start_profile+1A8r .text:0004F56C off_4F56C DCD log_hashfraction ; DATA XREF: _dl_start_profile+110r .text:0004F570 off_4F570 DCD fromlimit ; DATA XREF: _dl_start_profile+128r .text:0004F570 ; _dl_start_profile+13Cr ... .text:0004F574 off_4F574 DCD dword_61FD0 ; DATA XREF: _dl_start_profile+19Cr .text:0004F578 off_4F578 DCD aSeconds ; DATA XREF: _dl_start_profile+1C4r .text:0004F578 ; "seconds" .text:0004F57C off_4F57C DCD _dl_profile ; DATA XREF: _dl_start_profile+1E0r .text:0004F57C ; _dl_start_profile+218r ... .text:0004F580 off_4F580 DCD a_profile ; DATA XREF: _dl_start_profile+224r .text:0004F580 ; ".profile" .text:0004F584 off_4F584 DCD aSCannotOpenFil ; DATA XREF: _dl_start_profile+26Cr .text:0004F584 ; "%s: cannot open file: %s\n" .text:0004F588 off_4F588 DCD aSCannotStatFil ; DATA XREF: _dl_start_profile+2C4r .text:0004F588 ; "%s: cannot stat file: %s\n" .text:0004F58C off_4F58C DCD aSCannotCreateF ; DATA XREF: _dl_start_profile+368r .text:0004F58C ; "%s: cannot create file: %s\n" .text:0004F590 off_4F590 DCD aSFileIsNoCorre ; DATA XREF: _dl_start_profile:loc_4F540r .text:0004F590 ; "%s: file is no correct profile data fil"... .text:0004F594 ; --------------------------------------------------------------------------- .text:0004F594 .text:0004F594 loc_4F594 ; CODE XREF: _dl_start_profile+3B0j .text:0004F594 ; _dl_start_profile+3CCj .text:0004F594 STR R6, [SP,#0x588+var_588] .text:0004F598 MOV R0, #0 .text:0004F59C STR R0, [SP,#0x588+var_584] .text:0004F5A0 MOV R1, R10 .text:0004F5A4 MOV R2, #3 .text:0004F5A8 MOV R3, #1 .text:0004F5AC BL mmap .text:0004F5B0 MOV R7, R0 .text:0004F5B4 CMN R7, #1 .text:0004F5B8 BNE loc_4F5FC .text:0004F5BC BL __errno_location .text:0004F5C0 LDR R4, [R0] .text:0004F5C4 MOV R0, R6 .text:0004F5C8 BL close .text:0004F5CC SUB R1, R11, #-var_560 .text:0004F5D0 SUB R1, R1, #8 .text:0004F5D4 SUB R1, R1, #4 .text:0004F5D8 MOV R2, #0x190 .text:0004F5DC MOV R0, R4 .text:0004F5E0 BL strerror_r .text:0004F5E4 MOV R3, R0 .text:0004F5E8 MOV R0, #2 .text:0004F5EC LDR R1, =aSCannotMapFile ; "%s: cannot map file: %s\n" .text:0004F5F0 .text:0004F5F0 loc_4F5F0 ; CODE XREF: _dl_start_profile+270j .text:0004F5F0 ; _dl_start_profile+2C8j ... .text:0004F5F0 MOV R2, R8 .text:0004F5F4 BL _dl_dprintf .text:0004F5F8 B locret_4F91C .text:0004F5FC ; --------------------------------------------------------------------------- .text:0004F5FC .text:0004F5FC loc_4F5FC ; CODE XREF: _dl_start_profile+464j .text:0004F5FC MOV R0, R6 .text:0004F600 BL close .text:0004F604 LDR R4, =kcount .text:0004F608 ADD R2, R7, #0x38 .text:0004F60C STR R2, [R4] .text:0004F610 LDR R12, =kcountsize .text:0004F614 LDR R3, [R12] .text:0004F618 LDR R12, =narcsp .text:0004F61C ADD R2, R2, R3 .text:0004F620 ADD R2, R2, #4 .text:0004F624 STR R2, [R12] .text:0004F628 MOV R0, 0xFFFFFFCC .text:0004F62C SUB R1, R11, #-var_28 .text:0004F630 ADD R2, R2, #4 .text:0004F634 LDR R5, [R1,R0] .text:0004F638 ADD R0, R0, R11 .text:0004F63C SUB R1, R0, #0x28 .text:0004F640 LDR R3, [R1,#4] .text:0004F644 MOV R6, R12 .text:0004F648 LDR R1, =data .text:0004F64C ORRS R5, R5, R3 .text:0004F650 STR R2, [R1] .text:0004F654 BNE loc_4F694 .text:0004F658 LDR LR, [R11,#var_580] .text:0004F65C LDMIA LR!, {R0-R3} .text:0004F660 MOV R12, R7 .text:0004F664 STMIA R12!, {R0-R3} .text:0004F668 LDR R3, [LR] .text:0004F66C STR R3, [R12] .text:0004F670 STR R5, [R7,#0x14] .text:0004F674 ADD R0, R7, #0x18 .text:0004F678 SUB R1, R11, #-var_BC .text:0004F67C MOV R2, #0x20 .text:0004F680 BL memcpy .text:0004F684 LDR R2, [R6] .text:0004F688 MOV R3, #1 .text:0004F68C STR R3, [R2,#-4] .text:0004F690 B loc_4F6E0 .text:0004F694 ; --------------------------------------------------------------------------- .text:0004F694 .text:0004F694 loc_4F694 ; CODE XREF: _dl_start_profile+500j .text:0004F694 MOV R0, R7 .text:0004F698 LDR R1, [R11,#var_580] .text:0004F69C MOV R2, #0x14 .text:0004F6A0 BL memcmp .text:0004F6A4 CMP R0, #0 .text:0004F6A8 BNE loc_4F52C .text:0004F6AC LDR R3, [R7,#0x14] .text:0004F6B0 CMP R3, #0 .text:0004F6B4 BNE loc_4F52C .text:0004F6B8 ADD R0, R7, #0x18 .text:0004F6BC SUB R1, R11, #-var_BC .text:0004F6C0 MOV R2, #0x20 .text:0004F6C4 BL memcmp .text:0004F6C8 CMP R0, #0 .text:0004F6CC BNE loc_4F52C .text:0004F6D0 LDR R3, [R6] .text:0004F6D4 LDR R2, [R3,#-4] .text:0004F6D8 CMP R2, #1 .text:0004F6DC BNE loc_4F52C .text:0004F6E0 .text:0004F6E0 loc_4F6E0 ; CODE XREF: _dl_start_profile+53Cj .text:0004F6E0 LDR R2, [R11,#var_578] .text:0004F6E4 LDR R3, [R11,#var_570] .text:0004F6E8 MOV R1, #1 .text:0004F6EC ADD R0, R2, R3 .text:0004F6F0 BL calloc .text:0004F6F4 LDR R4, =tos .text:0004F6F8 CMP R0, #0 .text:0004F6FC STR R0, [R4] .text:0004F700 BNE loc_4F724 .text:0004F704 MOV R0, R7 .text:0004F708 MOV R1, R10 .text:0004F70C BL munmap .text:0004F710 MOV R0, #2 .text:0004F714 LDR R1, =aOutOfMemoryWhi ; "Out of memory while initializing profil"... .text:0004F718 BL _dl_dprintf .text:0004F71C MOV R0, #0x7F ; status .text:0004F720 BL _exit .text:0004F724 ; --------------------------------------------------------------------------- .text:0004F724 .text:0004F724 loc_4F724 ; CODE XREF: _dl_start_profile+5ACj .text:0004F724 LDR R3, [R4] .text:0004F728 LDR R12, [R11,#var_578] .text:0004F72C LDR R1, =froms .text:0004F730 ADD R3, R3, R12 .text:0004F734 STR R3, [R1] .text:0004F738 LDR LR, =fromidx .text:0004F73C MOV R3, #0 .text:0004F740 STR R3, [LR] .text:0004F744 LDR R2, =fromlimit .text:0004F748 LDR R12, [R6] .text:0004F74C LDR R3, [R2] .text:0004F750 LDR R2, [R12] .text:0004F754 MOV R0, R3 .text:0004F758 CMP R2, R3 .text:0004F75C LDRCC R0, [R12] .text:0004F760 LDR R3, =narcs .text:0004F764 SUBS R7, R0, #0 .text:0004F768 STR R0, [R3] .text:0004F76C BEQ loc_4F824 .text:0004F770 MOV R9, LR .text:0004F774 MOV R10, R4 .text:0004F778 ADD R3, R7, R7,LSL#1 .text:0004F77C MOV R8, R3,LSL#2 .text:0004F780 .text:0004F780 loc_4F780 ; CODE XREF: _dl_start_profile+6CCj .text:0004F780 LDR R3, =data .text:0004F784 LDR R12, =hashfraction .text:0004F788 LDR R4, [R3] .text:0004F78C SUB R8, R8, #0xC .text:0004F790 LDR R1, [R12] .text:0004F794 ADD R4, R8, R4 .text:0004F798 LDRB R0, [R4,#4] .text:0004F79C LDRB R2, [R4,#5] .text:0004F7A0 LDRB R12, [R4,#6] .text:0004F7A4 MOV R1, R1,LSL#1 .text:0004F7A8 LDRB R3, [R4,#7] .text:0004F7AC ORR R0, R0, R2,LSL#8 .text:0004F7B0 ORR R0, R0, R12,LSL#16 .text:0004F7B4 ORR R0, R0, R3,LSL#24 .text:0004F7B8 BL __udivsi3 .text:0004F7BC LDR R3, [R9] .text:0004F7C0 MOV R5, R3 .text:0004F7C4 ADD R3, R3, #1 .text:0004F7C8 STR R3, [R9] .text:0004F7CC LDR R1, =froms .text:0004F7D0 LDR R6, [R1] .text:0004F7D4 MOV LR, R5,LSL#3 .text:0004F7D8 STR R4, [LR,R6] .text:0004F7DC LDR R1, [R10] .text:0004F7E0 MOV R3, R0,LSL#1 .text:0004F7E4 LDRB R2, [R3,R1] .text:0004F7E8 ADD R3, R3, R1 .text:0004F7EC LDRB R12, [R3,#1] .text:0004F7F0 ADD LR, LR, R6 .text:0004F7F4 ORR R2, R2, R12,LSL#8 .text:0004F7F8 STRB R2, [LR,#4] .text:0004F7FC MOV R2, R2,ASR#8 .text:0004F800 STRB R2, [LR,#5] .text:0004F804 SUB R7, R7, #1 .text:0004F808 LDR R3, [R10] .text:0004F80C CMP R7, #0 .text:0004F810 STRB R5, [R3,R0,LSL#1] .text:0004F814 ADD R3, R3, R0,LSL#1 .text:0004F818 MOV R5, R5,ASR#8 .text:0004F81C STRB R5, [R3,#1] .text:0004F820 BNE loc_4F780 .text:0004F824 .text:0004F824 loc_4F824 ; CODE XREF: _dl_start_profile+618j .text:0004F824 LDR R2, =lowpc .text:0004F828 LDR R12, =kcountsize .text:0004F82C LDR R3, [R2] .text:0004F830 LDR R2, [R11,#var_574] .text:0004F834 LDR R1, [R12] .text:0004F838 RSB R4, R3, R2 .text:0004F83C CMP R1, R4 .text:0004F840 BCS loc_4F8DC .text:0004F844 MOV R0, R4 .text:0004F848 BL __udivsi3 .text:0004F84C MOV R1, R0 .text:0004F850 CMP R1, #0x10000 .text:0004F854 MOVCS R3, #1 .text:0004F858 BCS loc_4F8E0 .text:0004F85C CMP R1, #0xFF .text:0004F860 MOVHI R0, #0x10000 .text:0004F864 BHI loc_4F89C .text:0004F868 CMP R4, #0x1000000 .text:0004F86C BCC loc_4F884 .text:0004F870 LDR R3, =kcountsize .text:0004F874 LDR R1, [R3] .text:0004F878 MOV R0, R4 .text:0004F87C MOV R1, R1,LSR#8 .text:0004F880 B loc_4F890 .text:0004F884 ; --------------------------------------------------------------------------- .text:0004F884 .text:0004F884 loc_4F884 ; CODE XREF: _dl_start_profile+718j .text:0004F884 LDR R12, =kcountsize .text:0004F888 LDR R1, [R12] .text:0004F88C MOV R0, R4,LSL#8 .text:0004F890 .text:0004F890 loc_4F890 ; CODE XREF: _dl_start_profile+72Cj .text:0004F890 BL __udivsi3 .text:0004F894 MOV R1, R0 .text:0004F898 MOV R0, #0x1000000 .text:0004F89C .text:0004F89C loc_4F89C ; CODE XREF: _dl_start_profile+710j .text:0004F89C BL __udivsi3 .text:0004F8A0 MOV R3, R0 .text:0004F8A4 B loc_4F8E0 .text:0004F8A4 ; --------------------------------------------------------------------------- .text:0004F8A8 off_4F8A8 DCD aSCannotMapFile ; DATA XREF: _dl_start_profile+498r .text:0004F8A8 ; "%s: cannot map file: %s\n" .text:0004F8AC off_4F8AC DCD kcount ; DATA XREF: _dl_start_profile+4B0r .text:0004F8B0 off_4F8B0 DCD kcountsize ; DATA XREF: _dl_start_profile+4BCr .text:0004F8B0 ; _dl_start_profile+6D4r ... .text:0004F8B4 off_4F8B4 DCD narcsp ; DATA XREF: _dl_start_profile+4C4r .text:0004F8B8 off_4F8B8 DCD data ; DATA XREF: _dl_start_profile+4F4r .text:0004F8B8 ; _dl_start_profile:loc_4F780r .text:0004F8BC off_4F8BC DCD tos ; DATA XREF: _dl_start_profile+5A0r .text:0004F8C0 off_4F8C0 DCD aOutOfMemoryWhi ; DATA XREF: _dl_start_profile+5C0r .text:0004F8C0 ; "Out of memory while initializing profil"... .text:0004F8C4 off_4F8C4 DCD froms ; DATA XREF: _dl_start_profile+5D8r .text:0004F8C4 ; _dl_start_profile+678r .text:0004F8C8 off_4F8C8 DCD fromidx ; DATA XREF: _dl_start_profile+5E4r .text:0004F8CC off_4F8CC DCD fromlimit ; DATA XREF: _dl_start_profile+5F0r .text:0004F8D0 off_4F8D0 DCD narcs ; DATA XREF: _dl_start_profile+60Cr .text:0004F8D4 off_4F8D4 DCD hashfraction ; DATA XREF: _dl_start_profile+630r .text:0004F8D8 off_4F8D8 DCD lowpc ; DATA XREF: _dl_start_profile:loc_4F824r .text:0004F8DC ; --------------------------------------------------------------------------- .text:0004F8DC .text:0004F8DC loc_4F8DC ; CODE XREF: _dl_start_profile+6ECj .text:0004F8DC MOV R3, #0x10000 .text:0004F8E0 .text:0004F8E0 loc_4F8E0 ; CODE XREF: _dl_start_profile+704j .text:0004F8E0 ; _dl_start_profile+750j .text:0004F8E0 LDR R1, =kcount .text:0004F8E4 LDR R2, =kcountsize .text:0004F8E8 LDR R12, =lowpc .text:0004F8EC LDR R0, [R1] .text:0004F8F0 LDR R1, [R2] .text:0004F8F4 LDR R2, [R12] .text:0004F8F8 BL profil .text:0004F8FC LDR R1, =state .text:0004F900 MOV R3, #0 .text:0004F904 STR R3, [R1] .text:0004F908 B locret_4F91C .text:0004F908 ; --------------------------------------------------------------------------- .text:0004F90C off_4F90C DCD kcount ; DATA XREF: _dl_start_profile:loc_4F8E0r .text:0004F910 off_4F910 DCD kcountsize ; DATA XREF: _dl_start_profile+790r .text:0004F914 off_4F914 DCD lowpc ; DATA XREF: _dl_start_profile+794r .text:0004F918 off_4F918 DCD state ; DATA XREF: _dl_start_profile+7A8r .text:0004F91C ; --------------------------------------------------------------------------- .text:0004F91C .text:0004F91C locret_4F91C ; CODE XREF: _dl_start_profile+4A4j .text:0004F91C ; _dl_start_profile+7B4j .text:0004F91C LDMDB R11, {R4-R11,SP,PC} .text:0004F91C ; End of function _dl_start_profile .text:0004F91C .text:0004F920 .text:0004F920 ; =============== S U B R O U T I N E ======================================= .text:0004F920 .text:0004F920 ; Attributes: bp-based frame .text:0004F920 .text:0004F920 EXPORT _dl_mcount .text:0004F920 _dl_mcount ; CODE XREF: _dl_mcount_wrapper+14p .text:0004F920 ; _dl_mcount_wrapper_check+24p ... .text:0004F920 .text:0004F920 var_2C = -0x2C .text:0004F920 .text:0004F920 MOV R12, SP .text:0004F924 STMFD SP!, {R4-R12,LR,PC} .text:0004F928 LDR R3, =lowpc .text:0004F92C SUB R11, R12, #4 .text:0004F930 LDR R2, =textsize .text:0004F934 SUB SP, SP, #4 .text:0004F938 LDR R12, [R3] .text:0004F93C LDR LR, [R2] .text:0004F940 RSB R8, R12, R0 .text:0004F944 CMP R8, LR .text:0004F948 MOVCS R8, #0 .text:0004F94C RSB R1, R12, R1 .text:0004F950 CMP R1, LR .text:0004F954 STR R1, [R11,#var_2C] .text:0004F958 BCS locret_4FCD8 .text:0004F95C LDR R3, =log_hashfraction .text:0004F960 LDR R1, =tos .text:0004F964 LDR R2, [R3] .text:0004F968 LDR R3, [R11,#var_2C] .text:0004F96C LDR R0, [R1] .text:0004F970 MOV R2, R3,LSR R2 .text:0004F974 MOV R2, R2,LSL#1 .text:0004F978 LDRB R1, [R0,R2] .text:0004F97C ADD R6, R0, R2 .text:0004F980 LDRB R3, [R6,#1] .text:0004F984 ORRS R1, R1, R3,LSL#8 .text:0004F988 BEQ loc_4FA24 .text:0004F98C LDR R3, =froms .text:0004F990 LDR LR, [R3] .text:0004F994 B loc_4FCA0 .text:0004F998 ; --------------------------------------------------------------------------- .text:0004F998 .text:0004F998 loc_4F998 ; CODE XREF: _dl_mcount:loc_4FCD4j .text:0004F998 LDR R3, [R5,#4] .text:0004F99C MOVS R3, R3,LSL#16 .text:0004F9A0 BEQ loc_4F9F8 .text:0004F9A4 LDR R3, =froms .text:0004F9A8 LDR LR, [R3] .text:0004F9AC B loc_4F9D8 .text:0004F9B0 ; --------------------------------------------------------------------------- .text:0004F9B0 .text:0004F9B0 loc_4F9B0 ; CODE XREF: _dl_mcount+D4j .text:0004F9B0 LDR R2, [LR,R1] .text:0004F9B4 LDRB R3, [R2] .text:0004F9B8 LDRB R1, [R2,#1] .text:0004F9BC LDRB R12, [R2,#2] .text:0004F9C0 LDRB R0, [R2,#3] .text:0004F9C4 ORR R3, R3, R1,LSL#8 .text:0004F9C8 ORR R3, R3, R12,LSL#16 .text:0004F9CC ORR R3, R3, R0,LSL#24 .text:0004F9D0 CMP R3, R8 .text:0004F9D4 BEQ loc_4F9F8 .text:0004F9D8 .text:0004F9D8 loc_4F9D8 ; CODE XREF: _dl_mcount+8Cj .text:0004F9D8 LDRB R3, [R5,#4] .text:0004F9DC LDRB R2, [R5,#5] .text:0004F9E0 ORR R3, R3, R2,LSL#8 .text:0004F9E4 MOV R1, R3,LSL#3 .text:0004F9E8 ADD R5, LR, R1 .text:0004F9EC LDR R3, [R5,#4] .text:0004F9F0 MOVS R3, R3,LSL#16 .text:0004F9F4 BNE loc_4F9B0 .text:0004F9F8 .text:0004F9F8 loc_4F9F8 ; CODE XREF: _dl_mcount+80j .text:0004F9F8 ; _dl_mcount+B4j .text:0004F9F8 LDR R2, [R5] .text:0004F9FC LDRB R3, [R2] .text:0004FA00 LDRB R1, [R2,#1] .text:0004FA04 LDRB R12, [R2,#2] .text:0004FA08 LDRB R0, [R2,#3] .text:0004FA0C ORR R3, R3, R1,LSL#8 .text:0004FA10 ORR R3, R3, R12,LSL#16 .text:0004FA14 ORR R3, R3, R0,LSL#24 .text:0004FA18 CMP R3, R8 .text:0004FA1C BEQ locret_4FCD8 .text:0004FA20 ADD R6, R5, #4 .text:0004FA24 .text:0004FA24 loc_4FA24 ; CODE XREF: _dl_mcount+68j .text:0004FA24 LDR R1, =narcsp .text:0004FA28 LDR R12, =narcs .text:0004FA2C LDR R2, [R1] .text:0004FA30 LDR R0, [R12] .text:0004FA34 LDR R3, [R2] .text:0004FA38 CMP R0, R3 .text:0004FA3C BEQ loc_4FB44 .text:0004FA40 LDR R2, =fromlimit .text:0004FA44 LDR R3, [R2] .text:0004FA48 CMP R0, R3 .text:0004FA4C BCS loc_4FB44 .text:0004FA50 LDR R9, =tos .text:0004FA54 MOV R10, R12 .text:0004FA58 LDR R7, =fromidx .text:0004FA5C .text:0004FA5C loc_4FA5C ; CODE XREF: _dl_mcount+220j .text:0004FA5C LDR R1, =data .text:0004FA60 LDR R3, [R10] .text:0004FA64 LDR R2, [R1] .text:0004FA68 ADD R3, R3, R3,LSL#1 .text:0004FA6C ADD R2, R2, R3,LSL#2 .text:0004FA70 LDRB R0, [R2,#4] .text:0004FA74 LDRB R1, [R2,#5] .text:0004FA78 LDRB R12, [R2,#6] .text:0004FA7C LDRB LR, [R2,#7] .text:0004FA80 LDR R3, =hashfraction .text:0004FA84 ORR R0, R0, R1,LSL#8 .text:0004FA88 ORR R0, R0, R12,LSL#16 .text:0004FA8C LDR R1, [R3] .text:0004FA90 ORR R0, R0, LR,LSL#24 .text:0004FA94 MOV R1, R1,LSL#1 .text:0004FA98 BL __udivsi3 .text:0004FA9C MOV R3, #1 .text:0004FAA0 .text:0004FAA0 loc_4FAA0 ; CODE XREF: _dl_mcount+194j .text:0004FAA0 LDR R4, [R7] .text:0004FAA4 ADD R1, R4, R3 .text:0004FAA8 SWP R2, R1, [R7] .text:0004FAAC CMP R4, R2 .text:0004FAB0 SWPNE R1, R2, [R7] .text:0004FAB4 BNE loc_4FAA0 .text:0004FAB8 LDR R12, =froms .text:0004FABC ADD R4, R4, R3 .text:0004FAC0 LDR R3, [R10] .text:0004FAC4 LDR R1, =data .text:0004FAC8 MOV LR, R4,LSL#3 .text:0004FACC LDR R2, [R1] .text:0004FAD0 ADD R3, R3, R3,LSL#1 .text:0004FAD4 LDR R5, [R12] .text:0004FAD8 ADD R2, R2, R3,LSL#2 .text:0004FADC STR R2, [LR,R5] .text:0004FAE0 LDR R1, [R9] .text:0004FAE4 MOV R3, R0,LSL#1 .text:0004FAE8 LDRB R2, [R3,R1] .text:0004FAEC ADD R3, R3, R1 .text:0004FAF0 LDRB R12, [R3,#1] .text:0004FAF4 ADD LR, LR, R5 .text:0004FAF8 ORR R2, R2, R12,LSL#8 .text:0004FAFC STRB R2, [LR,#4] .text:0004FB00 MOV R2, R2,ASR#8 .text:0004FB04 STRB R2, [LR,#5] .text:0004FB08 LDR R3, [R9] .text:0004FB0C STRB R4, [R3,R0,LSL#1] .text:0004FB10 ADD R3, R3, R0,LSL#1 .text:0004FB14 MOV R4, R4,ASR#8 .text:0004FB18 STRB R4, [R3,#1] .text:0004FB1C LDR R3, =narcsp .text:0004FB20 LDR R2, [R3] .text:0004FB24 LDR R1, [R10] .text:0004FB28 LDR R3, [R2] .text:0004FB2C CMP R1, R3 .text:0004FB30 BEQ loc_4FB44 .text:0004FB34 LDR R2, =fromlimit .text:0004FB38 LDR R3, [R2] .text:0004FB3C CMP R1, R3 .text:0004FB40 BCC loc_4FA5C .text:0004FB44 .text:0004FB44 loc_4FB44 ; CODE XREF: _dl_mcount+11Cj .text:0004FB44 ; _dl_mcount+12Cj ... .text:0004FB44 LDRB R2, [R6] .text:0004FB48 LDRB R3, [R6,#1] .text:0004FB4C ORRS R7, R2, R3,LSL#8 .text:0004FB50 BNE loc_4FC8C .text:0004FB54 LDR R1, =narcsp .text:0004FB58 LDR R2, =fromlimit .text:0004FB5C MOV R4, #1 .text:0004FB60 LDR R3, [R1] .text:0004FB64 .text:0004FB64 loc_4FB64 ; CODE XREF: _dl_mcount+258j .text:0004FB64 LDR R12, [R3] .text:0004FB68 ADD R0, R12, R4 .text:0004FB6C SWP R1, R0, [R3] .text:0004FB70 CMP R12, R1 .text:0004FB74 SWPNE R0, R1, [R3] .text:0004FB78 BNE loc_4FB64 .text:0004FB7C LDR LR, [R2] .text:0004FB80 ADD R12, R12, R4 .text:0004FB84 CMP R12, LR .text:0004FB88 BCS locret_4FCD8 .text:0004FB8C LDR R3, =fromidx .text:0004FB90 .text:0004FB90 loc_4FB90 ; CODE XREF: _dl_mcount+284j .text:0004FB90 LDR R2, [R3] .text:0004FB94 ADD R0, R2, R4 .text:0004FB98 SWP R1, R0, [R3] .text:0004FB9C CMP R2, R1 .text:0004FBA0 SWPNE R0, R1, [R3] .text:0004FBA4 BNE loc_4FB90 .text:0004FBA8 ADD R2, R2, R4 .text:0004FBAC STRB R2, [R6] .text:0004FBB0 MOV R2, R2,ASR#8 .text:0004FBB4 STRB R2, [R6,#1] .text:0004FBB8 LDR R1, =froms .text:0004FBBC LDR R4, =data .text:0004FBC0 LDRB LR, [R6] .text:0004FBC4 LDRB R3, [R6,#1] .text:0004FBC8 ADD R12, R12, R12,LSL#1 .text:0004FBCC LDR R2, [R4] .text:0004FBD0 MOV R12, R12,LSL#2 .text:0004FBD4 LDR R5, [R1] .text:0004FBD8 ORR LR, LR, R3,LSL#8 .text:0004FBDC MOV LR, LR,LSL#3 .text:0004FBE0 ADD R0, R2, R12 .text:0004FBE4 STR R0, [R5,LR] .text:0004FBE8 STRB R8, [R2,R12] .text:0004FBEC MOV R3, R8,LSR#8 .text:0004FBF0 STRB R3, [R0,#1] .text:0004FBF4 MOV R2, R8,LSR#16 .text:0004FBF8 STRB R2, [R0,#2] .text:0004FBFC MOV R3, R8,LSR#24 .text:0004FC00 STRB R3, [R0,#3] .text:0004FC04 LDR R1, [R4] .text:0004FC08 LDR R2, [R11,#var_2C] .text:0004FC0C ADD R1, R12, R1 .text:0004FC10 STRB R2, [R1,#4] .text:0004FC14 MOV R3, R2,LSR#8 .text:0004FC18 STRB R3, [R1,#5] .text:0004FC1C LDR R3, [R11,#var_2C] .text:0004FC20 MOV R2, R3,LSR#16 .text:0004FC24 STRB R2, [R1,#6] .text:0004FC28 LDR R2, [R11,#var_2C] .text:0004FC2C MOV R3, R2,LSR#24 .text:0004FC30 STRB R3, [R1,#7] .text:0004FC34 LDR R2, [R4] .text:0004FC38 ADD R12, R12, R2 .text:0004FC3C STRB R7, [R12,#8] .text:0004FC40 STRB R7, [R12,#9] .text:0004FC44 STRB R7, [R12,#0xA] .text:0004FC48 STRB R7, [R12,#0xB] .text:0004FC4C ADD R5, R5, LR .text:0004FC50 MOV R3, R7 .text:0004FC54 STRB R3, [R5,#4] .text:0004FC58 STRB R3, [R5,#5] .text:0004FC5C B locret_4FCD8 .text:0004FC5C ; --------------------------------------------------------------------------- .text:0004FC60 off_4FC60 DCD lowpc ; DATA XREF: _dl_mcount+8r .text:0004FC64 off_4FC64 DCD textsize ; DATA XREF: _dl_mcount+10r .text:0004FC68 off_4FC68 DCD log_hashfraction ; DATA XREF: _dl_mcount+3Cr .text:0004FC6C off_4FC6C DCD tos ; DATA XREF: _dl_mcount+40r .text:0004FC6C ; _dl_mcount+130r .text:0004FC70 off_4FC70 DCD froms ; DATA XREF: _dl_mcount+6Cr .text:0004FC70 ; _dl_mcount+84r ... .text:0004FC74 off_4FC74 DCD narcsp ; DATA XREF: _dl_mcount:loc_4FA24r .text:0004FC74 ; _dl_mcount+1FCr ... .text:0004FC78 off_4FC78 DCD narcs ; DATA XREF: _dl_mcount+108r .text:0004FC7C off_4FC7C DCD fromlimit ; DATA XREF: _dl_mcount+120r .text:0004FC7C ; _dl_mcount+214r ... .text:0004FC80 off_4FC80 DCD fromidx ; DATA XREF: _dl_mcount+138r .text:0004FC80 ; _dl_mcount+26Cr .text:0004FC84 off_4FC84 DCD data ; DATA XREF: _dl_mcount:loc_4FA5Cr .text:0004FC84 ; _dl_mcount+1A4r ... .text:0004FC88 off_4FC88 DCD hashfraction ; DATA XREF: _dl_mcount+160r .text:0004FC8C ; --------------------------------------------------------------------------- .text:0004FC8C .text:0004FC8C loc_4FC8C ; CODE XREF: _dl_mcount+230j .text:0004FC8C LDRB R1, [R6] .text:0004FC90 LDRB R3, [R6,#1] .text:0004FC94 LDR R2, =froms .text:0004FC98 ORR R1, R1, R3,LSL#8 .text:0004FC9C LDR LR, [R2] .text:0004FCA0 .text:0004FCA0 loc_4FCA0 ; CODE XREF: _dl_mcount+74j .text:0004FCA0 MOV R1, R1,LSL#3 .text:0004FCA4 LDR R2, [LR,R1] .text:0004FCA8 LDRB R3, [R2] .text:0004FCAC LDRB R0, [R2,#1] .text:0004FCB0 LDRB R12, [R2,#2] .text:0004FCB4 ADD R5, LR, R1 .text:0004FCB8 LDRB R1, [R2,#3] .text:0004FCBC ORR R3, R3, R0,LSL#8 .text:0004FCC0 ORR R3, R3, R12,LSL#16 .text:0004FCC4 ORR R3, R3, R1,LSL#24 .text:0004FCC8 CMP R3, R8 .text:0004FCCC B loc_4FCD4 .text:0004FCCC ; --------------------------------------------------------------------------- .text:0004FCD0 off_4FCD0 DCD froms ; DATA XREF: _dl_mcount+374r .text:0004FCD4 ; --------------------------------------------------------------------------- .text:0004FCD4 .text:0004FCD4 loc_4FCD4 ; CODE XREF: _dl_mcount+3ACj .text:0004FCD4 BNE loc_4F998 .text:0004FCD8 .text:0004FCD8 locret_4FCD8 ; CODE XREF: _dl_mcount+38j .text:0004FCD8 ; _dl_mcount+FCj ... .text:0004FCD8 LDMDB R11, {R4-R11,SP,PC} .text:0004FCD8 ; End of function _dl_mcount .text:0004FCD8 .text:0004FCDC .text:0004FCDC ; =============== S U B R O U T I N E ======================================= .text:0004FCDC .text:0004FCDC ; Attributes: bp-based frame .text:0004FCDC .text:0004FCDC dlerror_run ; CODE XREF: __libc_dlopen+1Cp .text:0004FCDC ; __libc_dlsym+20p ... .text:0004FCDC .text:0004FCDC var_18 = -0x18 .text:0004FCDC var_14 = -0x14 .text:0004FCDC .text:0004FCDC MOV R12, SP .text:0004FCE0 STMFD SP!, {R4,R11,R12,LR,PC} .text:0004FCE4 SUB R11, R12, #4 .text:0004FCE8 MOV R3, #0 .text:0004FCEC SUB SP, SP, #8 .text:0004FCF0 STR R3, [R11,#var_18] .text:0004FCF4 MOV R2, R0 .text:0004FCF8 SUB R0, R11, #-var_14 .text:0004FCFC MOV R3, R1 .text:0004FD00 SUB R1, R11, #-var_18 .text:0004FD04 BL _dl_catch_error .text:0004FD08 LDR R0, [R11,#var_18] .text:0004FD0C SUBS R4, R0, #0 .text:0004FD10 MOVNE R4, #1 .text:0004FD14 CMP R4, #0 .text:0004FD18 BEQ loc_4FD2C .text:0004FD1C LDR R3, =_dl_out_of_memory ; "out of memory" .text:0004FD20 CMP R0, R3 .text:0004FD24 BEQ loc_4FD2C .text:0004FD28 BL free .text:0004FD2C .text:0004FD2C loc_4FD2C ; CODE XREF: dlerror_run+3Cj .text:0004FD2C ; dlerror_run+48j .text:0004FD2C MOV R0, R4 .text:0004FD30 B locret_4FD38 .text:0004FD30 ; --------------------------------------------------------------------------- .text:0004FD34 off_4FD34 DCD _dl_out_of_memory ; DATA XREF: dlerror_run+40r .text:0004FD34 ; "out of memory" .text:0004FD38 ; --------------------------------------------------------------------------- .text:0004FD38 .text:0004FD38 locret_4FD38 ; CODE XREF: dlerror_run+54j .text:0004FD38 LDMDB R11, {R4,R11,SP,PC} .text:0004FD38 ; End of function dlerror_run .text:0004FD38 .text:0004FD3C .text:0004FD3C ; =============== S U B R O U T I N E ======================================= .text:0004FD3C .text:0004FD3C ; Attributes: bp-based frame .text:0004FD3C .text:0004FD3C do_dlopen ; DATA XREF: __libc_dlopen+14o .text:0004FD3C ; __libc_dlopen:off_4FDECo .text:0004FD3C MOV R12, SP .text:0004FD40 STMFD SP!, {R4,R11,R12,LR,PC} .text:0004FD44 SUB R11, R12, #4 .text:0004FD48 MOV R4, R0 .text:0004FD4C MOV R1, #1 .text:0004FD50 LDR R0, [R4] .text:0004FD54 MOV R2, #0 .text:0004FD58 BL _dl_open .text:0004FD5C STR R0, [R4,#4] .text:0004FD60 LDMDB R11, {R4,R11,SP,PC} .text:0004FD60 ; End of function do_dlopen .text:0004FD60 .text:0004FD64 .text:0004FD64 ; =============== S U B R O U T I N E ======================================= .text:0004FD64 .text:0004FD64 ; Attributes: bp-based frame .text:0004FD64 .text:0004FD64 do_dlsym ; DATA XREF: __libc_dlsym+18o .text:0004FD64 ; __libc_dlsym:off_4FE34o .text:0004FD64 .text:0004FD64 var_18 = -0x18 .text:0004FD64 var_14 = -0x14 .text:0004FD64 .text:0004FD64 MOV R12, SP .text:0004FD68 STMFD SP!, {R4,R11,R12,LR,PC} .text:0004FD6C MOV R4, R0 .text:0004FD70 MOV R2, #0 .text:0004FD74 SUB SP, SP, #8 .text:0004FD78 STR R2, [R4,#0xC] .text:0004FD7C STR R2, [SP,#0x18+var_18] .text:0004FD80 MOV R3, #1 .text:0004FD84 STR R3, [SP,#0x18+var_14] .text:0004FD88 SUB R11, R12, #4 .text:0004FD8C LDR R1, [R4] .text:0004FD90 ADD R2, R4, #0xC .text:0004FD94 LDR R0, [R4,#4] .text:0004FD98 ADD R3, R1, #0x164 .text:0004FD9C BL _dl_lookup_symbol .text:0004FDA0 STR R0, [R4,#8] .text:0004FDA4 LDMDB R11, {R4,R11,SP,PC} .text:0004FDA4 ; End of function do_dlsym .text:0004FDA4 .text:0004FDA8 .text:0004FDA8 ; =============== S U B R O U T I N E ======================================= .text:0004FDA8 .text:0004FDA8 ; Attributes: bp-based frame .text:0004FDA8 .text:0004FDA8 do_dlclose ; DATA XREF: __libc_dlclose+Co .text:0004FDA8 ; .text:off_4FE5Co .text:0004FDA8 MOV R12, SP .text:0004FDAC STMFD SP!, {R11,R12,LR,PC} .text:0004FDB0 SUB R11, R12, #4 .text:0004FDB4 BL _dl_close .text:0004FDB8 LDMDB R11, {R11,SP,PC} .text:0004FDB8 ; End of function do_dlclose .text:0004FDB8 .text:0004FDBC .text:0004FDBC ; =============== S U B R O U T I N E ======================================= .text:0004FDBC .text:0004FDBC ; Attributes: bp-based frame .text:0004FDBC .text:0004FDBC EXPORT __libc_dlopen .text:0004FDBC __libc_dlopen ; CODE XREF: open_translit+14p .text:0004FDBC ; __gconv_find_shlib+B4p .text:0004FDBC .text:0004FDBC var_14 = -0x14 .text:0004FDBC var_10 = -0x10 .text:0004FDBC .text:0004FDBC MOV R12, SP .text:0004FDC0 STMFD SP!, {R11,R12,LR,PC} .text:0004FDC4 SUB R11, R12, #4 .text:0004FDC8 SUB SP, SP, #8 .text:0004FDCC STR R0, [R11,#var_14] .text:0004FDD0 LDR R0, =do_dlopen .text:0004FDD4 SUB R1, R11, #-var_14 .text:0004FDD8 BL dlerror_run .text:0004FDDC CMP R0, #0 .text:0004FDE0 MOV R0, #0 .text:0004FDE4 LDREQ R0, [R11,#var_10] .text:0004FDE8 B locret_4FDF0 .text:0004FDE8 ; --------------------------------------------------------------------------- .text:0004FDEC off_4FDEC DCD do_dlopen ; DATA XREF: __libc_dlopen+14r .text:0004FDF0 ; --------------------------------------------------------------------------- .text:0004FDF0 .text:0004FDF0 locret_4FDF0 ; CODE XREF: __libc_dlopen+2Cj .text:0004FDF0 LDMDB R11, {R11,SP,PC} .text:0004FDF0 ; End of function __libc_dlopen .text:0004FDF0 .text:0004FDF4 .text:0004FDF4 ; =============== S U B R O U T I N E ======================================= .text:0004FDF4 .text:0004FDF4 ; Attributes: bp-based frame .text:0004FDF4 .text:0004FDF4 EXPORT __libc_dlsym .text:0004FDF4 __libc_dlsym ; CODE XREF: open_translit+30p .text:0004FDF4 ; open_translit+78p ... .text:0004FDF4 .text:0004FDF4 var_1C = -0x1C .text:0004FDF4 var_18 = -0x18 .text:0004FDF4 var_14 = -0x14 .text:0004FDF4 .text:0004FDF4 MOV R12, SP .text:0004FDF8 STMFD SP!, {R11,R12,LR,PC} .text:0004FDFC SUB R11, R12, #4 .text:0004FE00 SUB SP, SP, #0x10 .text:0004FE04 STR R0, [R11,#var_1C] .text:0004FE08 STR R1, [R11,#var_18] .text:0004FE0C LDR R0, =do_dlsym .text:0004FE10 SUB R1, R11, #-var_1C .text:0004FE14 BL dlerror_run .text:0004FE18 CMP R0, #0 .text:0004FE1C BNE loc_4FE38 .text:0004FE20 SUB R1, R11, #-var_14 .text:0004FE24 LDMIA R1, {R1,R3} .text:0004FE28 LDR R2, [R3,#4] .text:0004FE2C ADD R0, R1, R2 .text:0004FE30 B locret_4FE3C .text:0004FE30 ; --------------------------------------------------------------------------- .text:0004FE34 off_4FE34 DCD do_dlsym ; DATA XREF: __libc_dlsym+18r .text:0004FE38 ; --------------------------------------------------------------------------- .text:0004FE38 .text:0004FE38 loc_4FE38 ; CODE XREF: __libc_dlsym+28j .text:0004FE38 MOV R0, #0 .text:0004FE3C .text:0004FE3C locret_4FE3C ; CODE XREF: __libc_dlsym+3Cj .text:0004FE3C LDMDB R11, {R11,SP,PC} .text:0004FE3C ; End of function __libc_dlsym .text:0004FE3C .text:0004FE40 .text:0004FE40 ; =============== S U B R O U T I N E ======================================= .text:0004FE40 .text:0004FE40 ; Attributes: bp-based frame .text:0004FE40 .text:0004FE40 EXPORT __libc_dlclose .text:0004FE40 __libc_dlclose ; CODE XREF: open_translit+40p .text:0004FE40 ; do_release_shlib+94p ... .text:0004FE40 MOV R12, SP .text:0004FE44 STMFD SP!, {R11,R12,LR,PC} .text:0004FE48 MOV R1, R0 .text:0004FE4C LDR R0, =do_dlclose .text:0004FE50 SUB R11, R12, #4 .text:0004FE54 BL dlerror_run .text:0004FE58 LDMDB R11, {R11,SP,PC} .text:0004FE58 ; End of function __libc_dlclose .text:0004FE58 .text:0004FE58 ; --------------------------------------------------------------------------- .text:0004FE5C off_4FE5C DCD do_dlclose ; DATA XREF: __libc_dlclose+Cr .text:0004FE60 .text:0004FE60 ; =============== S U B R O U T I N E ======================================= .text:0004FE60 .text:0004FE60 ; Attributes: bp-based frame .text:0004FE60 .text:0004FE60 free_mem_11 .text:0004FE60 MOV R12, SP .text:0004FE64 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:0004FE68 LDR R3, =_dl_all_dirs .text:0004FE6C LDR R2, =_dl_init_all_dirs .text:0004FE70 LDR R4, [R3] .text:0004FE74 SUB R11, R12, #4 .text:0004FE78 LDR R3, [R2] .text:0004FE7C MOV R5, R2 .text:0004FE80 CMP R4, R3 .text:0004FE84 BEQ loc_4FEA0 .text:0004FE88 .text:0004FE88 loc_4FE88 ; CODE XREF: free_mem_11+3Cj .text:0004FE88 MOV R0, R4 .text:0004FE8C LDR R4, [R4] .text:0004FE90 BL free .text:0004FE94 LDR R3, [R5] .text:0004FE98 CMP R4, R3 .text:0004FE9C BNE loc_4FE88 .text:0004FEA0 .text:0004FEA0 loc_4FEA0 ; CODE XREF: free_mem_11+24j .text:0004FEA0 LDR R3, =_dl_loaded .text:0004FEA4 LDR R5, [R3] .text:0004FEA8 CMP R5, #0 .text:0004FEAC LDMEQDB R11, {R4-R6,R11,SP,PC} .text:0004FEB0 MOV R6, #0 .text:0004FEB4 .text:0004FEB4 loc_4FEB4 ; CODE XREF: free_mem_11+8Cj .text:0004FEB4 LDR R3, [R5,#0x14] .text:0004FEB8 LDR R4, [R3,#4] .text:0004FEBC STR R6, [R3,#4] .text:0004FEC0 .text:0004FEC0 loc_4FEC0 ; CODE XREF: free_mem_11+78j .text:0004FEC0 ; free_mem_11+80j .text:0004FEC0 CMP R4, #0 .text:0004FEC4 BEQ loc_4FEE4 .text:0004FEC8 MOV R0, R4 .text:0004FECC LDR R3, [R0,#8] .text:0004FED0 LDR R4, [R4,#4] .text:0004FED4 CMP R3, #0 .text:0004FED8 BNE loc_4FEC0 .text:0004FEDC BL free .text:0004FEE0 B loc_4FEC0 .text:0004FEE4 ; --------------------------------------------------------------------------- .text:0004FEE4 .text:0004FEE4 loc_4FEE4 ; CODE XREF: free_mem_11+64j .text:0004FEE4 LDR R5, [R5,#0xC] .text:0004FEE8 CMP R5, #0 .text:0004FEEC BNE loc_4FEB4 .text:0004FEF0 LDMDB R11, {R4-R6,R11,SP,PC} .text:0004FEF0 ; End of function free_mem_11 .text:0004FEF0 .text:0004FEF0 ; --------------------------------------------------------------------------- .text:0004FEF4 off_4FEF4 DCD _dl_all_dirs ; DATA XREF: free_mem_11+8r .text:0004FEF8 off_4FEF8 DCD _dl_init_all_dirs ; DATA XREF: free_mem_11+Cr .text:0004FEFC off_4FEFC DCD _dl_loaded ; DATA XREF: free_mem_11:loc_4FEA0r .text:0004FF00 .text:0004FF00 ; =============== S U B R O U T I N E ======================================= .text:0004FF00 .text:0004FF00 ; Attributes: bp-based frame .text:0004FF00 .text:0004FF00 EXPORT __mpn_addmul_1 .text:0004FF00 __mpn_addmul_1 ; CODE XREF: __mpn_mul+118p .text:0004FF00 ; __mpn_impn_mul_n_basecase+E8p ... .text:0004FF00 MOV R12, SP .text:0004FF04 STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:0004FF08 SUB R11, R12, #4 .text:0004FF0C MOV R5, R3 .text:0004FF10 RSB R4, R2, #0 .text:0004FF14 MOV R3, R4,LSL#2 .text:0004FF18 RSB R7, R3, R0 .text:0004FF1C RSB R8, R3, R1 .text:0004FF20 MOV R6, #0 .text:0004FF24 .text:0004FF24 loc_4FF24 ; CODE XREF: __mpn_addmul_1+78j .text:0004FF24 LDR R3, [R8,R4,LSL#2] .text:0004FF28 MOV R12, R3,LSR#16 .text:0004FF2C MOV LR, R5,LSR#16 .text:0004FF30 BIC R0, R3, R12,LSL#16 .text:0004FF34 BIC R1, R5, LR,LSL#16 .text:0004FF38 MUL R2, R0, R1 .text:0004FF3C MUL R1, R12, R1 .text:0004FF40 MUL R0, LR, R0 .text:0004FF44 MUL LR, R12, LR .text:0004FF48 ADDS R0, R1, R0 .text:0004FF4C ADDCS LR, LR, #0x10000 .text:0004FF50 ADDS R2, R2, R0,LSL#16 .text:0004FF54 ADC LR, LR, R0,LSR#16 .text:0004FF58 ADDS R2, R2, R6 .text:0004FF5C LDR R3, [R7,R4,LSL#2] .text:0004FF60 MOVCC R6, LR .text:0004FF64 ADDCS R6, LR, #1 .text:0004FF68 ADDS R2, R2, R3 .text:0004FF6C ADDCS R6, R6, #1 .text:0004FF70 STR R2, [R7,R4,LSL#2] .text:0004FF74 ADDS R4, R4, #1 .text:0004FF78 BNE loc_4FF24 .text:0004FF7C MOV R0, R6 .text:0004FF80 LDMDB R11, {R4-R8,R11,SP,PC} .text:0004FF80 ; End of function __mpn_addmul_1 .text:0004FF80 .text:0004FF84 .text:0004FF84 ; =============== S U B R O U T I N E ======================================= .text:0004FF84 .text:0004FF84 ; Attributes: bp-based frame .text:0004FF84 .text:0004FF84 EXPORT fseek .text:0004FF84 fseek ; CODE XREF: addmntent+38p .text:0004FF84 .text:0004FF84 var_30 = -0x30 .text:0004FF84 var_2C = -0x2C .text:0004FF84 .text:0004FF84 MOV R12, SP .text:0004FF88 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:0004FF8C SUB R11, R12, #4 .text:0004FF90 MOV R4, R0 .text:0004FF94 MOV R5, #0 .text:0004FF98 MOV R6, R1 .text:0004FF9C SUB SP, SP, #0x14 .text:0004FFA0 LDR R3, [R4] .text:0004FFA4 MOV R7, R2 .text:0004FFA8 TST R3, #0x8000 .text:0004FFAC BNE loc_4FFBC .text:0004FFB0 LDR R3, =0 .text:0004FFB4 SUBS R5, R3, R5 .text:0004FFB8 MOVNE R5, #1 .text:0004FFBC .text:0004FFBC loc_4FFBC ; CODE XREF: fseek+28j .text:0004FFBC CMP R5, #0 .text:0004FFC0 BEQ loc_4FFD4 .text:0004FFC4 SUB R0, R11, #-var_2C .text:0004FFC8 LDR R1, =funlockfile .text:0004FFCC MOV R2, R4 .text:0004FFD0 BL 0 .text:0004FFD4 .text:0004FFD4 loc_4FFD4 ; CODE XREF: fseek+3Cj .text:0004FFD4 LDR R3, [R4] .text:0004FFD8 TST R3, #0x8000 .text:0004FFDC BNE loc_4FFE8 .text:0004FFE0 MOV R0, R4 .text:0004FFE4 BL flockfile .text:0004FFE8 .text:0004FFE8 loc_4FFE8 ; CODE XREF: fseek+58j .text:0004FFE8 MOV R3, #3 .text:0004FFEC STR R3, [SP,#0x30+var_30] .text:0004FFF0 MOV R0, R4 .text:0004FFF4 MOV R1, R6 .text:0004FFF8 MOV R2, R1,ASR#31 .text:0004FFFC MOV R3, R7 .text:00050000 BL _IO_seekoff .text:00050004 CMN R0, #1 .text:00050008 MOV R6, #0 .text:0005000C BNE loc_5001C .text:00050010 CMN R1, #1 .text:00050014 MOVNE R6, #0 .text:00050018 MOVEQ R6, 0xFFFFFFFF .text:0005001C .text:0005001C loc_5001C ; CODE XREF: fseek+88j .text:0005001C LDR R3, [R4] .text:00050020 TST R3, #0x8000 .text:00050024 BNE loc_50030 .text:00050028 MOV R0, R4 .text:0005002C BL funlockfile .text:00050030 .text:00050030 loc_50030 ; CODE XREF: fseek+A0j .text:00050030 CMP R5, #0 .text:00050034 BEQ loc_50044 .text:00050038 SUB R0, R11, #-var_2C .text:0005003C MOV R1, #0 .text:00050040 BL 0 .text:00050044 .text:00050044 loc_50044 ; CODE XREF: fseek+B0j .text:00050044 MOV R0, R6 .text:00050048 B locret_50054 .text:00050048 ; --------------------------------------------------------------------------- .text:0005004C dword_5004C DCD 0 ; DATA XREF: fseek+2Cr .text:00050050 off_50050 DCD funlockfile ; DATA XREF: fseek+44r .text:00050054 ; --------------------------------------------------------------------------- .text:00050054 .text:00050054 locret_50054 ; CODE XREF: fseek+C4j .text:00050054 LDMDB R11, {R4-R7,R11,SP,PC} .text:00050054 ; End of function fseek .text:00050054 .text:00050058 .text:00050058 ; =============== S U B R O U T I N E ======================================= .text:00050058 .text:00050058 ; Attributes: bp-based frame .text:00050058 .text:00050058 EXPORT fread_unlocked .text:00050058 fread_unlocked ; CODE XREF: __tzfile_read+160p .text:00050058 ; __tzfile_read+2F8p ... .text:00050058 MOV R12, SP .text:0005005C STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:00050060 MOV R5, R1 .text:00050064 MOV R4, R2 .text:00050068 MULS R6, R4, R5 .text:0005006C SUB R11, R12, #4 .text:00050070 MOV R1, R0 .text:00050074 MOV R0, #0 .text:00050078 LDMEQDB R11, {R4-R6,R11,SP,PC} .text:0005007C MOV R0, R3 .text:00050080 MOV R2, R6 .text:00050084 BL _IO_sgetn .text:00050088 CMP R6, R0 .text:0005008C BEQ loc_5009C .text:00050090 MOV R1, R5 .text:00050094 BL __udivsi3 .text:00050098 LDMDB R11, {R4-R6,R11,SP,PC} .text:0005009C ; --------------------------------------------------------------------------- .text:0005009C .text:0005009C loc_5009C ; CODE XREF: fread_unlocked+34j .text:0005009C MOV R0, R4 .text:000500A0 LDMDB R11, {R4-R6,R11,SP,PC} .text:000500A0 ; End of function fread_unlocked .text:000500A0 .text:000500A4 .text:000500A4 ; =============== S U B R O U T I N E ======================================= .text:000500A4 .text:000500A4 ; Attributes: bp-based frame .text:000500A4 .text:000500A4 EXPORT strncpy .text:000500A4 strncpy ; CODE XREF: _dl_start_profile+1CCp .text:000500A4 MOV R12, SP .text:000500A8 STMFD SP!, {R11,R12,LR,PC} .text:000500AC SUB R11, R12, #4 .text:000500B0 SUB R12, R0, #1 .text:000500B4 CMP R2, #3 .text:000500B8 BLS loc_50144 .text:000500BC MOV LR, R2,LSR#2 .text:000500C0 LDRB R3, [R1],#1 .text:000500C4 MOV R12, R0 .text:000500C8 CMP R3, #0 .text:000500CC STRB R3, [R0] .text:000500D0 BEQ loc_50130 .text:000500D4 LDRB R3, [R1],#1 .text:000500D8 ADD R12, R0, #1 .text:000500DC CMP R3, #0 .text:000500E0 STRB R3, [R0,#1] .text:000500E4 B loc_5011C .text:000500E8 ; --------------------------------------------------------------------------- .text:000500E8 .text:000500E8 loc_500E8 ; CODE XREF: strncpy+88j .text:000500E8 LDRB R3, [R1],#1 .text:000500EC CMP R3, #0 .text:000500F0 STRB R3, [R12,#1]! .text:000500F4 BEQ loc_50130 .text:000500F8 SUBS LR, LR, #1 .text:000500FC BEQ loc_50144 .text:00050100 LDRB R3, [R1],#1 .text:00050104 CMP R3, #0 .text:00050108 STRB R3, [R12,#1]! .text:0005010C BEQ loc_50130 .text:00050110 LDRB R3, [R1],#1 .text:00050114 CMP R3, #0 .text:00050118 STRB R3, [R12,#1]! .text:0005011C .text:0005011C loc_5011C ; CODE XREF: strncpy+40j .text:0005011C BEQ loc_50130 .text:00050120 LDRB R3, [R1],#1 .text:00050124 CMP R3, #0 .text:00050128 STRB R3, [R12,#1]! .text:0005012C BNE loc_500E8 .text:00050130 .text:00050130 loc_50130 ; CODE XREF: strncpy+2Cj .text:00050130 ; strncpy+50j ... .text:00050130 RSB R3, R0, R12 .text:00050134 RSB R3, R3, R2 .text:00050138 SUBS R2, R3, #1 .text:0005013C BNE loc_50168 .text:00050140 LDMDB R11, {R11,SP,PC} .text:00050144 ; --------------------------------------------------------------------------- .text:00050144 .text:00050144 loc_50144 ; CODE XREF: strncpy+14j .text:00050144 ; strncpy+58j .text:00050144 ANDS R2, R2, #3 .text:00050148 BNE loc_50150 .text:0005014C LDMDB R11, {R11,SP,PC} .text:00050150 ; --------------------------------------------------------------------------- .text:00050150 .text:00050150 loc_50150 ; CODE XREF: strncpy+A4j .text:00050150 ; strncpy+C0j .text:00050150 LDRB R3, [R1],#1 .text:00050154 SUBS R2, R2, #1 .text:00050158 STRB R3, [R12,#1]! .text:0005015C LDMEQDB R11, {R11,SP,PC} .text:00050160 CMP R3, #0 .text:00050164 BNE loc_50150 .text:00050168 .text:00050168 loc_50168 ; CODE XREF: strncpy+98j .text:00050168 MOV R3, #0 .text:0005016C .text:0005016C loc_5016C ; CODE XREF: strncpy+D0j .text:0005016C SUBS R2, R2, #1 .text:00050170 STRB R3, [R12,#1]! .text:00050174 BNE loc_5016C .text:00050178 LDMDB R11, {R11,SP,PC} .text:00050178 ; End of function strncpy .text:00050178 .text:0005017C .text:0005017C ; =============== S U B R O U T I N E ======================================= .text:0005017C .text:0005017C ; Attributes: bp-based frame .text:0005017C .text:0005017C WEAK ffsl .text:0005017C ffsl ; CODE XREF: _dl_start_profile+10Cp .text:0005017C MOV R12, SP ; Alternative name is 'ffs' .text:00050180 STMFD SP!, {R11,R12,LR,PC} .text:00050184 SUB R11, R12, #4 .text:00050188 RSB R3, R0, #0 .text:0005018C AND R2, R3, R0 .text:00050190 CMP R2, #0x10000 .text:00050194 BCS loc_501A8 .text:00050198 CMP R2, #0xFF .text:0005019C MOVHI R1, #8 .text:000501A0 MOVLS R1, #0 .text:000501A4 B loc_501B4 .text:000501A8 ; --------------------------------------------------------------------------- .text:000501A8 .text:000501A8 loc_501A8 ; CODE XREF: ffsl+18j .text:000501A8 CMP R2, #0x1000000 .text:000501AC MOVCS R1, #0x18 .text:000501B0 MOVCC R1, #0x10 .text:000501B4 .text:000501B4 loc_501B4 ; CODE XREF: ffsl+28j .text:000501B4 LDR R3, =table.45 .text:000501B8 MOV R2, R2,LSR R1 .text:000501BC LDRB R0, [R3,R2] .text:000501C0 ADD R0, R0, R1 .text:000501C4 LDMDB R11, {R11,SP,PC} .text:000501C4 ; End of function ffsl .text:000501C4 .text:000501C4 ; --------------------------------------------------------------------------- .text:000501C8 off_501C8 DCD table.45 ; DATA XREF: ffsl:loc_501B4r .text:000501CC .text:000501CC ; =============== S U B R O U T I N E ======================================= .text:000501CC .text:000501CC ; Attributes: bp-based frame .text:000501CC .text:000501CC EXPORT __offtime .text:000501CC __offtime ; CODE XREF: __tz_convert+A4p .text:000501CC ; __tz_convert+158p .text:000501CC .text:000501CC var_3C = -0x3C .text:000501CC var_38 = -0x38 .text:000501CC var_34 = -0x34 .text:000501CC var_30 = -0x30 .text:000501CC var_2C = -0x2C .text:000501CC .text:000501CC MOV R12, SP .text:000501D0 STMFD SP!, {R4-R12,LR,PC} .text:000501D4 MOV R4, R0 .text:000501D8 SUB SP, SP, #0x14 .text:000501DC LDR R0, [R4] .text:000501E0 SUB R11, R12, #4 .text:000501E4 STR R2, [R11,#var_2C] .text:000501E8 MOV R6, 0x15180 .text:000501F0 MOV R5, R1 .text:000501F4 MOV R1, R6 .text:000501F8 BL __divsi3 .text:000501FC MOV R8, R0 .text:00050200 LDR R0, [R4] .text:00050204 MOV R1, R6 .text:00050208 BL __modsi3 .text:0005020C ADDS R4, R0, R5 .text:00050210 BPL loc_50224 .text:00050214 MOV R1, R6 .text:00050218 .text:00050218 loc_50218 ; CODE XREF: __offtime+54j .text:00050218 SUB R8, R8, #1 .text:0005021C ADDS R4, R4, R1 .text:00050220 BMI loc_50218 .text:00050224 .text:00050224 loc_50224 ; CODE XREF: __offtime+44j .text:00050224 MOV R2, 0x1517F .text:00050230 CMP R4, R2 .text:00050234 BLE loc_50254 .text:00050238 MOV R3, 0xFFFEAE80 .text:00050244 .text:00050244 loc_50244 ; CODE XREF: __offtime+84j .text:00050244 ADD R4, R4, R3 .text:00050248 ADD R8, R8, #1 .text:0005024C CMP R4, R2 .text:00050250 BGT loc_50244 .text:00050254 .text:00050254 loc_50254 ; CODE XREF: __offtime+68j .text:00050254 MOV R0, R4 .text:00050258 MOV R1, #0xE10 .text:0005025C BL __divsi3 .text:00050260 LDR R2, [R11,#var_2C] .text:00050264 STR R0, [R2,#8] .text:00050268 MOV R1, #0xE10 .text:0005026C MOV R0, R4 .text:00050270 BL __modsi3 .text:00050274 MOV R4, R0 .text:00050278 MOV R1, #0x3C .text:0005027C BL __divsi3 .text:00050280 LDR R3, [R11,#var_2C] .text:00050284 STR R0, [R3,#4] .text:00050288 MOV R1, #0x3C .text:0005028C MOV R0, R4 .text:00050290 BL __modsi3 .text:00050294 LDR R2, [R11,#var_2C] .text:00050298 STR R0, [R2] .text:0005029C MOV R1, #7 .text:000502A0 ADD R0, R8, #4 .text:000502A4 BL __modsi3 .text:000502A8 LDR R3, [R11,#var_2C] .text:000502AC CMP R0, #0 .text:000502B0 STR R0, [R3,#0x18] .text:000502B4 LDRLT R2, [R11,#var_2C] .text:000502B8 ADDLT R3, R0, #7 .text:000502BC STRLT R3, [R2,#0x18] .text:000502C0 MOV R6, 0x7B2 .text:000502C8 MOV R3, 0x16D .text:000502D0 STR R3, [R11,#var_30] .text:000502D4 B loc_50420 .text:000502D8 ; --------------------------------------------------------------------------- .text:000502D8 .text:000502D8 loc_502D8 ; CODE XREF: __offtime+258j .text:000502D8 ; __offtime:loc_5046Cj .text:000502D8 LDR R1, [R11,#var_30] .text:000502DC MOV R0, R8 .text:000502E0 BL __divsi3 .text:000502E4 ADD R5, R6, R0 .text:000502E8 LDR R1, [R11,#var_30] .text:000502EC MOV R0, R8 .text:000502F0 BL __modsi3 .text:000502F4 SUB R5, R5, R0,LSR#31 .text:000502F8 STR R5, [R11,#var_34] .text:000502FC SUB R4, R6, #1 .text:00050300 MOV R0, R4 .text:00050304 MOV R1, #0x190 .text:00050308 BL __divsi3 .text:0005030C STR R0, [R11,#var_38] .text:00050310 MOV R0, R4 .text:00050314 MOV R1, #0x64 .text:00050318 BL __divsi3 .text:0005031C CMP R4, #0 .text:00050320 ADDLT R3, R4, #3 .text:00050324 MOVGE R3, R4 .text:00050328 MOV R5, R3,ASR#2 .text:0005032C MOV R2, R5 .text:00050330 SUB R5, R4, R5,LSL#2 .text:00050334 SUB R5, R2, R5,LSR#31 .text:00050338 MOV R7, R0 .text:0005033C MOV R0, R4 .text:00050340 MOV R1, #0x64 .text:00050344 BL __modsi3 .text:00050348 CMP R0, #0 .text:0005034C STR R4, [R11,#var_3C] .text:00050350 ADDLT R3, R5, #1 .text:00050354 RSBLT R10, R7, R3 .text:00050358 RSBGE R10, R7, R5 .text:0005035C LDR R2, [R11,#var_34] .text:00050360 MOV R1, #0x190 .text:00050364 SUB R4, R2, #1 .text:00050368 MOV R0, R4 .text:0005036C BL __divsi3 .text:00050370 MOV R9, R0 .text:00050374 MOV R0, R4 .text:00050378 MOV R1, #0x64 .text:0005037C BL __divsi3 .text:00050380 CMP R4, #0 .text:00050384 ADDLT R3, R4, #3 .text:00050388 MOVGE R3, R4 .text:0005038C MOV R5, R3,ASR#2 .text:00050390 MOV R2, R5 .text:00050394 SUB R5, R4, R5,LSL#2 .text:00050398 SUB R5, R2, R5,LSR#31 .text:0005039C MOV R7, R0 .text:000503A0 MOV R0, R4 .text:000503A4 MOV R1, #0x64 .text:000503A8 BL __modsi3 .text:000503AC CMP R0, #0 .text:000503B0 MOV R0, R4 .text:000503B4 ADDLT R3, R5, #1 .text:000503B8 RSBLT R4, R7, R3 .text:000503BC RSBGE R4, R7, R5 .text:000503C0 LDR R2, [R11,#var_34] .text:000503C4 MOV R1, #0x190 .text:000503C8 RSB R3, R6, R2 .text:000503CC ADD R2, R3, R3,LSL#3 .text:000503D0 ADD R3, R3, R2,LSL#3 .text:000503D4 ADD R5, R3, R3,LSL#2 .text:000503D8 BL __modsi3 .text:000503DC CMP R0, #0 .text:000503E0 SUBLT R3, R4, #1 .text:000503E4 ADDLT R3, R3, R9 .text:000503E8 ADDGE R3, R4, R9 .text:000503EC ADD R4, R5, R3 .text:000503F0 LDR R0, [R11,#var_3C] .text:000503F4 MOV R1, #0x190 .text:000503F8 BL __modsi3 .text:000503FC CMP R0, #0 .text:00050400 LDRLT R2, [R11,#var_38] .text:00050404 SUBLT R3, R10, #1 .text:00050408 ADDLT R3, R3, R2 .text:0005040C LDRGE R2, [R11,#var_38] .text:00050410 ADDGE R3, R10, R2 .text:00050414 RSB R3, R3, R4 .text:00050418 RSB R8, R3, R8 .text:0005041C LDR R6, [R11,#var_34] .text:00050420 .text:00050420 loc_50420 ; CODE XREF: __offtime+108j .text:00050420 CMP R8, #0 .text:00050424 BLT loc_502D8 .text:00050428 ANDS R3, R6, #3 .text:0005042C MOV R4, R3 .text:00050430 BNE loc_50468 .text:00050434 MOV R0, R6 .text:00050438 MOV R1, #0x64 .text:0005043C BL __modsi3 .text:00050440 CMP R0, #0 .text:00050444 BNE loc_5045C .text:00050448 MOV R0, R6 .text:0005044C MOV R1, #0x190 .text:00050450 BL __modsi3 .text:00050454 CMP R0, #0 .text:00050458 BNE loc_50468 .text:0005045C .text:0005045C loc_5045C ; CODE XREF: __offtime+278j .text:0005045C LDR R3, [R11,#var_30] .text:00050460 CMP R8, R3 .text:00050464 B loc_5046C .text:00050468 ; --------------------------------------------------------------------------- .text:00050468 .text:00050468 loc_50468 ; CODE XREF: __offtime+264j .text:00050468 ; __offtime+28Cj .text:00050468 CMP R8, #0x16C .text:0005046C .text:0005046C loc_5046C ; CODE XREF: __offtime+298j .text:0005046C BGT loc_502D8 .text:00050470 SUB R3, R6, #0x760 .text:00050474 LDR R2, [R11,#var_2C] .text:00050478 SUB R3, R3, #0xC .text:0005047C STR R3, [R2,#0x14] .text:00050480 MOV R5, #0 .text:00050484 CMP R4, R5 .text:00050488 STR R8, [R2,#0x1C] .text:0005048C BNE loc_504BC .text:00050490 MOV R0, R6 .text:00050494 MOV R1, #0x64 .text:00050498 BL __modsi3 .text:0005049C CMP R0, R5 .text:000504A0 BNE loc_504B8 .text:000504A4 MOV R0, R6 .text:000504A8 MOV R1, #0x190 .text:000504AC BL __modsi3 .text:000504B0 CMP R0, R5 .text:000504B4 BNE loc_504BC .text:000504B8 .text:000504B8 loc_504B8 ; CODE XREF: __offtime+2D4j .text:000504B8 MOV R5, #1 .text:000504BC .text:000504BC loc_504BC ; CODE XREF: __offtime+2C0j .text:000504BC ; __offtime+2E8j .text:000504BC MOV R6, #0xB .text:000504C0 CMP R5, #0 .text:000504C4 MOVNE R1, #0x1A .text:000504C8 MOVEQ R1, #0 .text:000504CC LDR R2, =__mon_yday .text:000504D0 MOV R3, R6,LSL#1 .text:000504D4 ADD R0, R1, R2 .text:000504D8 LDRB R2, [R0,R3] .text:000504DC ADD R3, R0, R3 .text:000504E0 LDRB R1, [R3,#1] .text:000504E4 ORR R2, R2, R1,LSL#8 .text:000504E8 CMP R8, R2 .text:000504EC BGE loc_50510 .text:000504F0 ADD R1, R0, #0x16 .text:000504F4 .text:000504F4 loc_504F4 ; CODE XREF: __offtime+340j .text:000504F4 SUB R6, R6, #1 .text:000504F8 LDRB R2, [R0,R6,LSL#1] .text:000504FC SUB R1, R1, #2 .text:00050500 LDRB R3, [R1,#1] .text:00050504 ORR R2, R2, R3,LSL#8 .text:00050508 CMP R8, R2 .text:0005050C BLT loc_504F4 .text:00050510 .text:00050510 loc_50510 ; CODE XREF: __offtime+320j .text:00050510 MOV R3, R6,LSL#1 .text:00050514 LDRB R2, [R3,R0] .text:00050518 ADD R3, R3, R0 .text:0005051C LDRB R1, [R3,#1] .text:00050520 LDR R3, [R11,#var_2C] .text:00050524 STR R6, [R3,#0x10] .text:00050528 MOV R0, #1 .text:0005052C ORR R2, R2, R1,LSL#8 .text:00050530 RSB R8, R2, R8 .text:00050534 LDR R2, [R11,#var_2C] .text:00050538 ADD R3, R8, R0 .text:0005053C STR R3, [R2,#0xC] .text:00050540 B locret_50548 .text:00050540 ; --------------------------------------------------------------------------- .text:00050544 off_50544 DCD __mon_yday ; DATA XREF: __offtime+300r .text:00050548 ; --------------------------------------------------------------------------- .text:00050548 .text:00050548 locret_50548 ; CODE XREF: __offtime+374j .text:00050548 LDMDB R11, {R4-R11,SP,PC} .text:00050548 ; End of function __offtime .text:00050548 .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 WEAK localtime_r .text:0005054C localtime_r ; DATA XREF: timelocal+14o .text:0005054C ; .text:off_50C0Co .text:0005054C MOV R12, SP .text:00050550 STMFD SP!, {R11,R12,LR,PC} .text:00050554 SUB R11, R12, #4 .text:00050558 MOV R2, R1 .text:0005055C MOV R1, #1 .text:00050560 BL __tz_convert .text:00050564 LDMDB R11, {R11,SP,PC} .text:00050564 ; End of function localtime_r .text:00050564 .text:00050568 .text:00050568 ; =============== S U B R O U T I N E ======================================= .text:00050568 .text:00050568 ; Attributes: bp-based frame .text:00050568 .text:00050568 EXPORT localtime .text:00050568 localtime .text:00050568 MOV R12, SP .text:0005056C STMFD SP!, {R11,R12,LR,PC} .text:00050570 SUB R11, R12, #4 .text:00050574 LDR R2, =_tmbuf .text:00050578 MOV R1, #1 .text:0005057C BL __tz_convert .text:00050580 LDMDB R11, {R11,SP,PC} .text:00050580 ; End of function localtime .text:00050580 .text:00050580 ; --------------------------------------------------------------------------- .text:00050584 off_50584 DCD _tmbuf ; DATA XREF: localtime+Cr .text:00050588 .text:00050588 ; =============== S U B R O U T I N E ======================================= .text:00050588 .text:00050588 ; Attributes: bp-based frame .text:00050588 .text:00050588 ydhms_tm_diff ; CODE XREF: __mktime_internal+160p .text:00050588 ; __mktime_internal+208p ... .text:00050588 .text:00050588 var_30 = -0x30 .text:00050588 var_2C = -0x2C .text:00050588 arg_0 = 4 .text:00050588 arg_4 = 8 .text:00050588 .text:00050588 MOV R12, SP .text:0005058C STMFD SP!, {R4-R12,LR,PC} .text:00050590 SUB R11, R12, #4 .text:00050594 SUB SP, SP, #8 .text:00050598 STR R2, [R11,#var_2C] .text:0005059C MOV R10, R0 .text:000505A0 LDR R8, [R11,#arg_4] .text:000505A4 MOV R9, R1 .text:000505A8 STR R3, [R11,#var_30] .text:000505AC CMP R8, #0 .text:000505B0 BEQ loc_50694 .text:000505B4 MOV R5, 0x1DB .text:000505BC TST R10, #3 .text:000505C0 ADD R6, R5, R10,ASR#2 .text:000505C4 SUBEQ R6, R6, #1 .text:000505C8 MOV R0, R6 .text:000505CC LDR R3, [R8,#0x14] .text:000505D0 MOV R1, #0x19 .text:000505D4 TST R3, #3 .text:000505D8 ADD R5, R5, R3,ASR#2 .text:000505DC SUBEQ R5, R5, #1 .text:000505E0 BL __divsi3 .text:000505E4 MOV R7, R0 .text:000505E8 MOV R0, R6 .text:000505EC MOV R1, #0x19 .text:000505F0 BL __modsi3 .text:000505F4 SUB R7, R7, R0,LSR#31 .text:000505F8 MOV R0, R5 .text:000505FC MOV R1, #0x19 .text:00050600 BL __divsi3 .text:00050604 MOV R4, R0 .text:00050608 MOV R0, R5 .text:0005060C MOV R1, #0x19 .text:00050610 BL __modsi3 .text:00050614 SUB R4, R4, R0,LSR#31 .text:00050618 MOV R2, R4,ASR#2 .text:0005061C RSB R6, R5, R6 .text:00050620 RSB R4, R4, R7 .text:00050624 RSB R6, R4, R6 .text:00050628 LDR R3, [R8,#0x14] .text:0005062C RSB R2, R2, R7,ASR#2 .text:00050630 LDR R1, [R8,#0x1C] .text:00050634 ADD R6, R6, R2 .text:00050638 LDR R0, [R11,#arg_0] .text:0005063C RSB R3, R3, R10 .text:00050640 ADD R2, R3, R3,LSL#3 .text:00050644 ADD R3, R3, R2,LSL#3 .text:00050648 ADD R3, R3, R3,LSL#2 .text:0005064C ADD R3, R3, R6 .text:00050650 RSB R1, R1, R9 .text:00050654 LDR R2, [R8,#8] .text:00050658 ADD R3, R3, R1 .text:0005065C LDR R1, [R11,#var_2C] .text:00050660 ADD R3, R3, R3,LSL#1 .text:00050664 RSB R2, R2, R1 .text:00050668 LDR R1, [R8,#4] .text:0005066C ADD R2, R2, R3,LSL#3 .text:00050670 LDR R3, [R11,#var_30] .text:00050674 RSB R2, R2, R2,LSL#4 .text:00050678 RSB R1, R1, R3 .text:0005067C ADD R1, R1, R2,LSL#2 .text:00050680 LDR R3, [R8] .text:00050684 RSB R1, R1, R1,LSL#4 .text:00050688 RSB R0, R3, R0 .text:0005068C ADD R0, R0, R1,LSL#2 .text:00050690 B locret_50698 .text:00050694 ; --------------------------------------------------------------------------- .text:00050694 .text:00050694 loc_50694 ; CODE XREF: ydhms_tm_diff+28j .text:00050694 MOV R0, #1 .text:00050698 .text:00050698 locret_50698 ; CODE XREF: ydhms_tm_diff+108j .text:00050698 LDMDB R11, {R4-R11,SP,PC} .text:00050698 ; End of function ydhms_tm_diff .text:00050698 .text:0005069C .text:0005069C ; =============== S U B R O U T I N E ======================================= .text:0005069C .text:0005069C ; Attributes: bp-based frame .text:0005069C .text:0005069C ranged_convert ; CODE XREF: __mktime_internal+1ECp .text:0005069C ; __mktime_internal+28Cp ... .text:0005069C .text:0005069C var_54 = -0x54 .text:0005069C .text:0005069C MOV R12, SP .text:000506A0 STMFD SP!, {R4-R12,LR,PC} .text:000506A4 SUB R11, R12, #4 .text:000506A8 MOV R9, R0 .text:000506AC MOV R8, R1 .text:000506B0 MOV R0, R8 .text:000506B4 MOV R10, R2 .text:000506B8 MOV R1, R10 .text:000506BC SUB SP, SP, #0x2C .text:000506C0 MOV LR, PC .text:000506C4 MOV PC, R9 .text:000506C8 SUBS R6, R0, #0 .text:000506CC BNE loc_50798 .text:000506D0 LDR R3, [R8] .text:000506D4 CMP R3, #0 .text:000506D8 BEQ loc_50798 .text:000506DC MOV R4, R3 .text:000506E0 MOV R7, R6 .text:000506E4 B loc_50744 .text:000506E8 ; --------------------------------------------------------------------------- .text:000506E8 .text:000506E8 loc_506E8 ; CODE XREF: ranged_convert+B8j .text:000506E8 CMP R4, #0 .text:000506EC RSBLT R3, R4, R7 .text:000506F0 ADDLT R5, R4, R3,ASR#1 .text:000506F4 RSBGE R3, R7, R4 .text:000506F8 ADDGE R5, R7, R3,ASR#1 .text:000506FC STR R5, [R8] .text:00050700 MOV R0, R8 .text:00050704 MOV R1, R10 .text:00050708 MOV LR, PC .text:0005070C MOV PC, R9 .text:00050710 SUBS R6, R0, #0 .text:00050714 BEQ loc_50740 .text:00050718 MOV R12, R6 .text:0005071C LDMIA R12!, {R0-R3} .text:00050720 SUB LR, R11, #-var_54 .text:00050724 STMIA LR!, {R0-R3} .text:00050728 LDMIA R12!, {R0-R3} .text:0005072C STMIA LR!, {R0-R3} .text:00050730 LDMIA R12, {R0-R2} .text:00050734 MOV R7, R5 .text:00050738 STMIA LR, {R0-R2} .text:0005073C B loc_50744 .text:00050740 ; --------------------------------------------------------------------------- .text:00050740 .text:00050740 loc_50740 ; CODE XREF: ranged_convert+78j .text:00050740 MOV R4, R5 .text:00050744 .text:00050744 loc_50744 ; CODE XREF: ranged_convert+48j .text:00050744 ; ranged_convert+A0j .text:00050744 CMP R4, #0 .text:00050748 ADD R3, R7, #1 .text:0005074C SUBLT R3, R7, #1 .text:00050750 CMP R4, R3 .text:00050754 BNE loc_506E8 .text:00050758 SUBS R3, R7, #0 .text:0005075C MOVNE R3, #1 .text:00050760 CMP R6, #0 .text:00050764 MOVNE R3, #0 .text:00050768 CMP R3, #0 .text:0005076C BEQ loc_50798 .text:00050770 STR R7, [R8] .text:00050774 SUB R12, R11, #-var_54 .text:00050778 LDMIA R12!, {R0-R3} .text:0005077C MOV LR, R10 .text:00050780 STMIA LR!, {R0-R3} .text:00050784 LDMIA R12!, {R0-R3} .text:00050788 STMIA LR!, {R0-R3} .text:0005078C LDMIA R12, {R0-R2} .text:00050790 MOV R6, R10 .text:00050794 STMIA LR, {R0-R2} .text:00050798 .text:00050798 loc_50798 ; CODE XREF: ranged_convert+30j .text:00050798 ; ranged_convert+3Cj ... .text:00050798 MOV R0, R6 .text:0005079C LDMDB R11, {R4-R11,SP,PC} .text:0005079C ; End of function ranged_convert .text:0005079C .text:000507A0 .text:000507A0 ; =============== S U B R O U T I N E ======================================= .text:000507A0 .text:000507A0 ; Attributes: bp-based frame .text:000507A0 .text:000507A0 EXPORT __mktime_internal .text:000507A0 __mktime_internal ; CODE XREF: timelocal+20p .text:000507A0 .text:000507A0 var_C4 = -0xC4 .text:000507A0 var_C0 = -0xC0 .text:000507A0 var_BC = -0xBC .text:000507A0 var_B8 = -0xB8 .text:000507A0 var_B4 = -0xB4 .text:000507A0 var_B0 = -0xB0 .text:000507A0 var_AC = -0xAC .text:000507A0 var_A8 = -0xA8 .text:000507A0 var_A4 = -0xA4 .text:000507A0 var_A0 = -0xA0 .text:000507A0 var_9C = -0x9C .text:000507A0 var_98 = -0x98 .text:000507A0 var_94 = -0x94 .text:000507A0 var_90 = -0x90 .text:000507A0 var_8C = -0x8C .text:000507A0 var_88 = -0x88 .text:000507A0 var_84 = -0x84 .text:000507A0 var_80 = -0x80 .text:000507A0 var_60 = -0x60 .text:000507A0 var_54 = -0x54 .text:000507A0 var_50 = -0x50 .text:000507A0 var_4C = -0x4C .text:000507A0 var_40 = -0x40 .text:000507A0 var_38 = -0x38 .text:000507A0 var_34 = -0x34 .text:000507A0 .text:000507A0 MOV R12, SP .text:000507A4 STMFD SP!, {R4-R12,LR,PC} .text:000507A8 SUB R11, R12, #4 .text:000507AC SUB SP, SP, #0x9C .text:000507B0 STR R1, [R11,#var_90] .text:000507B4 STR R0, [R11,#var_8C] .text:000507B8 LDR R5, [R0,#0x10] .text:000507BC LDR R10, [R0] .text:000507C0 STR R2, [R11,#var_94] .text:000507C4 MOV R9, #0 .text:000507C8 MOV R1, #0xC .text:000507CC MOV R0, R5 .text:000507D0 BL __modsi3 .text:000507D4 MOV R4, R0 .text:000507D8 MOV R0, R5 .text:000507DC MOV R1, #0xC .text:000507E0 BL __divsi3 .text:000507E4 LDR R1, [R11,#var_8C] .text:000507E8 MOV R3, R4,LSR#31 .text:000507EC LDR R1, [R1,#0x14] .text:000507F0 RSB R0, R3, R0 .text:000507F4 STR R0, [R11,#var_AC] .text:000507F8 STR R1, [R11,#var_A8] .text:000507FC ADD R2, R1, R0 .text:00050800 STR R2, [R11,#var_B0] .text:00050804 LDR R12, [R11,#var_8C] .text:00050808 LDR R12, [R12,#4] .text:0005080C STR R12, [R11,#var_9C] .text:00050810 LDR R1, [R11,#var_8C] .text:00050814 LDR R1, [R1,#8] .text:00050818 STR R1, [R11,#var_A0] .text:0005081C ADD R5, R2, #0x760 .text:00050820 LDR R2, [R11,#var_8C] .text:00050824 LDR R2, [R2,#0xC] .text:00050828 STR R2, [R11,#var_A4] .text:0005082C MOV R7, #6 .text:00050830 CMP R3, R9 .text:00050834 MOVNE R3, #0xC .text:00050838 MOVEQ R3, R9 .text:0005083C ADD R4, R4, R3 .text:00050840 LDR R3, [R11,#var_8C] .text:00050844 MOV R4, R4,LSL#1 .text:00050848 LDR R6, =__mon_yday .text:0005084C ADD R5, R5, #0xC .text:00050850 TST R5, #3 .text:00050854 LDR R8, [R3,#0x20] .text:00050858 BNE loc_50888 .text:0005085C MOV R0, R5 .text:00050860 MOV R1, #0x64 .text:00050864 BL __modsi3 .text:00050868 CMP R0, R9 .text:0005086C BNE loc_50884 .text:00050870 MOV R0, R5 .text:00050874 MOV R1, #0x190 .text:00050878 BL __modsi3 .text:0005087C CMP R0, R9 .text:00050880 BNE loc_50888 .text:00050884 .text:00050884 loc_50884 ; CODE XREF: __mktime_internal+CCj .text:00050884 MOV R9, #1 .text:00050888 .text:00050888 loc_50888 ; CODE XREF: __mktime_internal+B8j .text:00050888 ; __mktime_internal+E0j .text:00050888 MOV R2, #0x46 .text:0005088C STR R2, [R11,#var_40] .text:00050890 MOV R3, #0 .text:00050894 STR R3, [R11,#var_54] .text:00050898 STR R3, [R11,#var_50] .text:0005089C STR R3, [R11,#var_4C] .text:000508A0 CMP R9, R3 .text:000508A4 STR R3, [R11,#var_38] .text:000508A8 MOVNE R12, #0x1A .text:000508AC MOVEQ R12, R3 .text:000508B0 CMP R10, #0 .text:000508B4 STR R10, [R11,#var_B8] .text:000508B8 MOVLT R10, R3 .text:000508BC CMP R10, #0x3B .text:000508C0 MOVGE R10, #0x3B .text:000508C4 STR R10, [SP,#0xC4+var_C4] .text:000508C8 LDR R0, [R11,#var_B0] .text:000508CC LDR R2, [R11,#var_A0] .text:000508D0 ADD R12, R4, R12 .text:000508D4 LDR R3, [R11,#var_9C] .text:000508D8 SUB R4, R11, #-var_54 .text:000508DC STR R4, [SP,#0xC4+var_C0] .text:000508E0 LDRB R1, [R6,R12] .text:000508E4 ADD R12, R6, R12 .text:000508E8 LDRB LR, [R12,#1] .text:000508EC LDR R12, [R11,#var_A4] .text:000508F0 ORR R1, R1, LR,LSL#8 .text:000508F4 ADD R1, R1, R12 .text:000508F8 SUB R1, R1, #1 .text:000508FC STR R1, [R11,#var_B4] .text:00050900 BL ydhms_tm_diff .text:00050904 LDR R1, [R11,#var_94] .text:00050908 LDR R3, [R1] .text:0005090C STR R0, [R11,#var_98] .text:00050910 ADD R5, R0, R3 .text:00050914 STR R5, [R11,#var_84] .text:00050918 MOV R6, R5 .text:0005091C SUB R2, R11, #-var_84 .text:00050920 STR R2, [R11,#var_BC] .text:00050924 B loc_50980 .text:00050928 ; --------------------------------------------------------------------------- .text:00050928 .text:00050928 loc_50928 ; CODE XREF: __mktime_internal+210j .text:00050928 LDR R3, [R11,#var_84] .text:0005092C CMP R3, R6 .text:00050930 BNE loc_50968 .text:00050934 CMP R6, R5 .text:00050938 BEQ loc_50968 .text:0005093C CMP R8, #0 .text:00050940 BLT loc_509B4 .text:00050944 LDR R3, [R11,#var_34] .text:00050948 CMP R3, #0 .text:0005094C BLT loc_509B4 .text:00050950 SUBS R2, R8, #0 .text:00050954 MOVNE R2, #1 .text:00050958 SUBS R3, R3, #0 .text:0005095C MOVNE R3, #1 .text:00050960 CMP R2, R3 .text:00050964 BNE loc_509B4 .text:00050968 .text:00050968 loc_50968 ; CODE XREF: __mktime_internal+190j .text:00050968 ; __mktime_internal+198j .text:00050968 SUBS R7, R7, #1 .text:0005096C BEQ loc_50AB8 .text:00050970 MOV R6, R5 .text:00050974 LDR R5, [R11,#var_84] .text:00050978 ADD R3, R5, R0 .text:0005097C STR R3, [R11,#var_84] .text:00050980 .text:00050980 loc_50980 ; CODE XREF: __mktime_internal+184j .text:00050980 LDR R0, [R11,#var_90] .text:00050984 LDR R1, [R11,#var_BC] .text:00050988 SUB R2, R11, #-var_54 .text:0005098C BL ranged_convert .text:00050990 STR R10, [SP,#0xC4+var_C4] .text:00050994 STR R0, [SP,#0xC4+var_C0] .text:00050998 LDR R0, [R11,#var_B0] .text:0005099C LDR R1, [R11,#var_B4] .text:000509A0 SUB R2, R11, #-var_A0 .text:000509A4 LDMIA R2, {R2,R3} .text:000509A8 BL ydhms_tm_diff .text:000509AC CMP R0, #0 .text:000509B0 BNE loc_50928 .text:000509B4 .text:000509B4 loc_509B4 ; CODE XREF: __mktime_internal+1A0j .text:000509B4 ; __mktime_internal+1ACj ... .text:000509B4 CMP R0, #0 .text:000509B8 BNE loc_50A4C .text:000509BC LDR R2, [R11,#var_34] .text:000509C0 MVN R3, R8 .text:000509C4 MOV R3, R3,LSR#31 .text:000509C8 CMP R8, R2 .text:000509CC MOVEQ R3, #0 .text:000509D0 CMP R3, #0 .text:000509D4 BEQ loc_50A4C .text:000509D8 CMP R2, #0 .text:000509DC BLT loc_50A4C .text:000509E0 MOV R5, 0x786156 .text:000509EC MOV R3, 0x81692402 .text:000509F8 MOV R7, #1 .text:000509FC SUB R9, R11, #-var_88 .text:00050A00 LDR R2, [R11,#var_84] .text:00050A04 SUB R6, R11, #-var_80 .text:00050A08 CMP R2, R3 .text:00050A0C RSBLT R5, R5, #0 .text:00050A10 MOV R4, R5 .text:00050A14 .text:00050A14 loc_50A14 ; CODE XREF: __mktime_internal+2A8j .text:00050A14 LDR R3, [R11,#var_84] .text:00050A18 RSB R3, R4, R3 .text:00050A1C STR R3, [R11,#var_88] .text:00050A20 MOV R1, R9 .text:00050A24 LDR R0, [R11,#var_90] .text:00050A28 MOV R2, R6 .text:00050A2C BL ranged_convert .text:00050A30 LDR R3, [R11,#var_60] .text:00050A34 CMP R3, R8 .text:00050A38 BEQ loc_50AC0 .text:00050A3C ADD R4, R4, R5 .text:00050A40 ADD R7, R7, #1 .text:00050A44 CMP R7, #3 .text:00050A48 BLE loc_50A14 .text:00050A4C .text:00050A4C loc_50A4C ; CODE XREF: __mktime_internal+218j .text:00050A4C ; __mktime_internal+234j ... .text:00050A4C LDR R2, [R11,#var_54] .text:00050A50 LDR R0, [R11,#var_84] .text:00050A54 LDR R3, [R11,#var_B8] .text:00050A58 LDR R12, [R11,#var_98] .text:00050A5C LDR R1, [R11,#var_94] .text:00050A60 CMP R3, R2 .text:00050A64 RSB R3, R12, R0 .text:00050A68 STR R3, [R1] .text:00050A6C BEQ loc_50AFC .text:00050A70 MOV R1, #0 .text:00050A74 LDR R12, [R11,#var_B8] .text:00050A78 CMP R10, R1 .text:00050A7C RSB R3, R10, R12 .text:00050A80 BNE loc_50A90 .text:00050A84 CMP R2, #0x3C .text:00050A88 MOVNE R1, #0 .text:00050A8C MOVEQ R1, #1 .text:00050A90 .text:00050A90 loc_50A90 ; CODE XREF: __mktime_internal+2E0j .text:00050A90 ADD R3, R3, R1 .text:00050A94 ADD R3, R0, R3 .text:00050A98 STR R3, [R11,#var_84] .text:00050A9C LDR R0, [R11,#var_BC] .text:00050AA0 LDR R2, [R11,#var_90] .text:00050AA4 SUB R1, R11, #-var_54 .text:00050AA8 MOV LR, PC .text:00050AAC MOV PC, R2 .text:00050AB0 CMP R0, #0 .text:00050AB4 BNE loc_50AFC .text:00050AB8 .text:00050AB8 loc_50AB8 ; CODE XREF: __mktime_internal+1CCj .text:00050AB8 ; __mktime_internal:loc_50BACj .text:00050AB8 MOV R0, 0xFFFFFFFF .text:00050ABC B loc_50BD4 .text:00050AC0 ; --------------------------------------------------------------------------- .text:00050AC0 .text:00050AC0 loc_50AC0 ; CODE XREF: __mktime_internal+298j .text:00050AC0 STR R10, [SP,#0xC4+var_C4] .text:00050AC4 STR R6, [SP,#0xC4+var_C0] .text:00050AC8 LDR R0, [R11,#var_B0] .text:00050ACC LDR R1, [R11,#var_B4] .text:00050AD0 SUB R2, R11, #-var_A0 .text:00050AD4 LDMIA R2, {R2,R3} .text:00050AD8 BL ydhms_tm_diff .text:00050ADC LDR R3, [R11,#var_88] .text:00050AE0 ADD R3, R3, R0 .text:00050AE4 STR R3, [R11,#var_84] .text:00050AE8 LDR R1, [R11,#var_BC] .text:00050AEC LDR R0, [R11,#var_90] .text:00050AF0 SUB R2, R11, #-var_54 .text:00050AF4 BL ranged_convert .text:00050AF8 B loc_50A4C .text:00050AFC ; --------------------------------------------------------------------------- .text:00050AFC .text:00050AFC loc_50AFC ; CODE XREF: __mktime_internal+2CCj .text:00050AFC ; __mktime_internal+314j .text:00050AFC LDR R3, [R11,#var_A8] .text:00050B00 MCR p1, 0, R3,c0,c0, 4 .text:00050B04 LDR R12, [R11,#var_AC] .text:00050B08 MCR p1, 0, R12,c1,c0, 4 .text:00050B0C LDR R3, [R11,#var_40] .text:00050B10 MCR p1, 0, R3,c2,c0, 4 .text:00050B14 CDP p1, 0, c0,c0,c1, 4 .text:00050B18 CDP p1, 2, c0,c0,c2, 4 .text:00050B1C LDC p1, c9, dword_50B84 .text:00050B20 CDP p1, 1, c0,c0,c1, 4 .text:00050B24 LDR R1, [R11,#var_A4] .text:00050B28 MCR p1, 0, R1,c2,c0, 4 .text:00050B2C CDP p1, 0, c0,c0,c2, 4 .text:00050B30 LDC p1, c9, dword_50B8C .text:00050B34 CDP p1, 1, c0,c0,c1, 4 .text:00050B38 LDR R2, [R11,#var_A0] .text:00050B3C MCR p1, 0, R2,c2,c0, 4 .text:00050B40 CDP p1, 0, c0,c0,c2, 4 .text:00050B44 LDC p1, c11, dword_50B94 .text:00050B48 CDP p1, 1, c0,c0,c3, 4 .text:00050B4C LDR R3, [R11,#var_9C] .text:00050B50 MCR p1, 0, R3,c1,c0, 4 .text:00050B54 CDP p1, 0, c0,c0,c1, 4 .text:00050B58 CDP p1, 1, c0,c0,c3, 4 .text:00050B5C LDR R12, [R11,#var_B8] .text:00050B60 MCR p1, 0, R12,c1,c0, 4 .text:00050B64 CDP p1, 0, c2,c0,c1, 4 .text:00050B68 MRC p1, 6, PC,c2,c8, 0 .text:00050B6C BPL loc_50BA4 .text:00050B70 LDC p1, c9, dword_50B9C .text:00050B74 CDP p1, 1, c8,c0,c2, 4 .text:00050B78 MRC p1, 6, PC,c0,c1, 0 .text:00050B7C B loc_50BAC .text:00050B7C ; --------------------------------------------------------------------------- .text:00050B80 off_50B80 DCD __mon_yday ; DATA XREF: __mktime_internal+A8r .text:00050B84 dword_50B84 DCD 0x4076E000 ; DATA XREF: __mktime_internal+37Cr .text:00050B88 DCD 0 .text:00050B8C dword_50B8C DCD 0x40380000 ; DATA XREF: __mktime_internal+390r .text:00050B90 DCD 0 .text:00050B94 dword_50B94 DCD 0x404E0000 ; DATA XREF: __mktime_internal+3A4r .text:00050B98 DCD 0 .text:00050B9C dword_50B9C DCD 0x41D55555 ; DATA XREF: __mktime_internal+3D0r .text:00050BA0 DCD 0x55000000 .text:00050BA4 ; --------------------------------------------------------------------------- .text:00050BA4 .text:00050BA4 loc_50BA4 ; CODE XREF: __mktime_internal+3CCj .text:00050BA4 LDC p1, c8, dword_50BD8 .text:00050BA8 MRC p1, 6, PC,c2,c0, 0 .text:00050BAC .text:00050BAC loc_50BAC ; CODE XREF: __mktime_internal+3DCj .text:00050BAC BGT loc_50AB8 .text:00050BB0 SUB LR, R11, #-var_54 .text:00050BB4 LDMIA LR!, {R0-R3} .text:00050BB8 LDR R12, [R11,#var_8C] .text:00050BBC STMIA R12!, {R0-R3} .text:00050BC0 LDMIA LR!, {R0-R3} .text:00050BC4 STMIA R12!, {R0-R3} .text:00050BC8 LDMIA LR, {R0-R2} .text:00050BCC STMIA R12, {R0-R2} .text:00050BD0 LDR R0, [R11,#var_84] .text:00050BD4 .text:00050BD4 loc_50BD4 ; CODE XREF: __mktime_internal+31Cj .text:00050BD4 B locret_50BE0 .text:00050BD4 ; --------------------------------------------------------------------------- .text:00050BD8 dword_50BD8 DCD 0x41D55555 ; DATA XREF: __mktime_internal:loc_50BA4r .text:00050BDC DCD 0x55000000 .text:00050BE0 ; --------------------------------------------------------------------------- .text:00050BE0 .text:00050BE0 locret_50BE0 ; CODE XREF: __mktime_internal:loc_50BD4j .text:00050BE0 LDMDB R11, {R4-R11,SP,PC} .text:00050BE0 ; End of function __mktime_internal .text:00050BE0 .text:00050BE4 .text:00050BE4 ; =============== S U B R O U T I N E ======================================= .text:00050BE4 .text:00050BE4 ; Attributes: bp-based frame .text:00050BE4 .text:00050BE4 WEAK timelocal .text:00050BE4 timelocal .text:00050BE4 MOV R12, SP .text:00050BE8 STMFD SP!, {R4,R11,R12,LR,PC} .text:00050BEC SUB R11, R12, #4 .text:00050BF0 MOV R4, R0 .text:00050BF4 BL tzset .text:00050BF8 LDR R1, =localtime_r .text:00050BFC LDR R2, =localtime_offset .text:00050C00 MOV R0, R4 .text:00050C04 BL __mktime_internal .text:00050C08 LDMDB R11, {R4,R11,SP,PC} .text:00050C08 ; End of function timelocal .text:00050C08 .text:00050C08 ; --------------------------------------------------------------------------- .text:00050C0C off_50C0C DCD localtime_r ; DATA XREF: timelocal+14r .text:00050C10 off_50C10 DCD localtime_offset ; DATA XREF: timelocal+18r .text:00050C14 .text:00050C14 ; =============== S U B R O U T I N E ======================================= .text:00050C14 .text:00050C14 ; Attributes: bp-based frame .text:00050C14 .text:00050C14 EXPORT profil_counter .text:00050C14 profil_counter ; DATA XREF: profil+D4o .text:00050C14 ; profil:off_50E0Co .text:00050C14 .text:00050C14 arg_0 = 4 .text:00050C14 arg_40 = 0x44 .text:00050C14 arg_48 = 0x4C .text:00050C14 .text:00050C14 MOV R12, SP .text:00050C18 STMFD SP!, {R4,R11,R12,LR,PC} .text:00050C1C SUB R11, R12, #4 .text:00050C20 LDR R2, [R11,#arg_0] .text:00050C24 LDR R3, =0x4B534154 .text:00050C28 CMP R2, R3 .text:00050C2C LDREQ R1, [R11,#arg_40] .text:00050C30 LDRNE R1, [R11,#arg_48] .text:00050C34 LDR R2, =pc_offset .text:00050C38 LDR R3, [R2] .text:00050C3C RSB R3, R3, R1 .text:00050C40 ADD R3, R3, R3,LSR#31 .text:00050C44 LDR R1, =pc_scale .text:00050C48 MOV R12, R3,ASR#1 .text:00050C4C LDR R2, [R1] .text:00050C50 MOV R0, R12 .text:00050C54 MOV R1, #0 .text:00050C58 MOV R3, #0 .text:00050C5C BL __muldi3 .text:00050C60 MOV R2, R0,LSR#16 .text:00050C64 ORR R3, R2, R1,LSL#16 .text:00050C68 LDR R2, =nsamples .text:00050C6C LDR R1, [R2] .text:00050C70 MOV R12, R3 .text:00050C74 CMP R12, R1 .text:00050C78 LDMCSDB R11, {R4,R11,SP,PC} .text:00050C7C LDR R3, =samples .text:00050C80 LDR R0, [R3] .text:00050C84 MOV R2, R12,LSL#1 .text:00050C88 LDRB R3, [R2,R0] .text:00050C8C ADD R2, R2, R0 .text:00050C90 LDRB R1, [R2,#1] .text:00050C94 ORR R3, R3, R1,LSL#8 .text:00050C98 ADD R3, R3, #1 .text:00050C9C STRB R3, [R0,R12,LSL#1] .text:00050CA0 ADD R0, R0, R12,LSL#1 .text:00050CA4 MOV R3, R3,ASR#8 .text:00050CA8 STRB R3, [R0,#1] .text:00050CAC LDMDB R11, {R4,R11,SP,PC} .text:00050CAC ; End of function profil_counter .text:00050CAC .text:00050CAC ; --------------------------------------------------------------------------- .text:00050CB0 dword_50CB0 DCD 0x4B534154 ; DATA XREF: profil_counter+10r .text:00050CB4 off_50CB4 DCD pc_offset ; DATA XREF: profil_counter+20r .text:00050CB8 off_50CB8 DCD pc_scale ; DATA XREF: profil_counter+30r .text:00050CBC off_50CBC DCD nsamples ; DATA XREF: profil_counter+54r .text:00050CC0 off_50CC0 DCD samples ; DATA XREF: profil_counter+68r .text:00050CC4 .text:00050CC4 ; =============== S U B R O U T I N E ======================================= .text:00050CC4 .text:00050CC4 ; Attributes: bp-based frame .text:00050CC4 .text:00050CC4 WEAK profil .text:00050CC4 profil ; CODE XREF: _dl_start_profile+7A4p .text:00050CC4 .text:00050CC4 var_BC = -0xBC .text:00050CC4 var_B4 = -0xB4 .text:00050CC4 var_B0 = -0xB0 .text:00050CC4 var_AC = -0xAC .text:00050CC4 var_A8 = -0xA8 .text:00050CC4 var_28 = -0x28 .text:00050CC4 .text:00050CC4 MOV R12, SP .text:00050CC8 STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:00050CCC SUB R11, R12, #4 .text:00050CD0 MOV R5, R1 .text:00050CD4 MOV R6, R2 .text:00050CD8 MOV R7, R3 .text:00050CDC SUBS R4, R0, #0 .text:00050CE0 SUB SP, SP, #0x9C .text:00050CE4 BNE loc_50D2C .text:00050CE8 LDR R5, =samples .text:00050CEC LDR R3, [R5] .text:00050CF0 CMP R3, #0 .text:00050CF4 MOVEQ R0, R4 .text:00050CF8 BEQ locret_50E14 .text:00050CFC MOV R0, #2 .text:00050D00 LDR R1, =otimer.19 .text:00050D04 MOV R2, R4 .text:00050D08 BL setitimer .text:00050D0C CMP R0, #0 .text:00050D10 BLT loc_50E10 .text:00050D14 STR R4, [R5] .text:00050D18 MOV R0, #0x1B .text:00050D1C LDR R1, =oact.18 .text:00050D20 MOV R2, R4 .text:00050D24 BL sigaction .text:00050D28 B locret_50E14 .text:00050D2C ; --------------------------------------------------------------------------- .text:00050D2C .text:00050D2C loc_50D2C ; CODE XREF: profil+20j .text:00050D2C LDR R2, =samples .text:00050D30 LDR R3, [R2] .text:00050D34 MOV R8, R2 .text:00050D38 CMP R3, #0 .text:00050D3C BEQ loc_50D70 .text:00050D40 MOV R0, #2 .text:00050D44 LDR R1, =otimer.19 .text:00050D48 MOV R2, #0 .text:00050D4C BL setitimer .text:00050D50 CMP R0, #0 .text:00050D54 BLT loc_50E10 .text:00050D58 MOV R0, #0x1B .text:00050D5C LDR R1, =oact.18 .text:00050D60 MOV R2, #0 .text:00050D64 BL sigaction .text:00050D68 CMP R0, #0 .text:00050D6C BLT loc_50E10 .text:00050D70 .text:00050D70 loc_50D70 ; CODE XREF: profil+78j .text:00050D70 STR R4, [R8] .text:00050D74 MOV R3, #0x10000000 .text:00050D78 STR R3, [R11,#var_28] .text:00050D7C LDR R1, =nsamples .text:00050D80 MOV R3, R5,LSR#1 .text:00050D84 STR R3, [R1] .text:00050D88 LDR R2, =pc_offset .text:00050D8C STR R6, [R2] .text:00050D90 LDR R3, =pc_scale .text:00050D94 STR R7, [R3] .text:00050D98 LDR R2, =profil_counter .text:00050D9C STR R2, [R11,#var_AC] .text:00050DA0 SUB R0, R11, #-var_A8 .text:00050DA4 SUB R4, R11, #-var_AC .text:00050DA8 BL sigfillset .text:00050DAC MOV R0, #0x1B .text:00050DB0 LDR R2, =oact.18 .text:00050DB4 MOV R1, R4 .text:00050DB8 BL sigaction .text:00050DBC CMP R0, #0 .text:00050DC0 BLT loc_50E10 .text:00050DC4 MOV R3, #0 .text:00050DC8 STR R3, [R11,#var_B4] .text:00050DCC MOV R2, #1 .text:00050DD0 STR R2, [R11,#var_B0] .text:00050DD4 SUB R0, R11, #-var_B4 .text:00050DD8 LDMIA R0, {R2,R3} .text:00050DDC SUB R1, R11, #-var_BC .text:00050DE0 STMIA R1, {R2,R3} .text:00050DE4 LDR R2, =otimer.19 .text:00050DE8 MOV R0, #2 .text:00050DEC BL setitimer .text:00050DF0 B locret_50E14 .text:00050DF0 ; --------------------------------------------------------------------------- .text:00050DF4 off_50DF4 DCD samples ; DATA XREF: profil+24r .text:00050DF4 ; profil:loc_50D2Cr .text:00050DF8 off_50DF8 DCD otimer.19 ; DATA XREF: profil+3Cr .text:00050DF8 ; profil+80r ... .text:00050DFC off_50DFC DCD oact.18 ; DATA XREF: profil+58r .text:00050DFC ; profil+98r ... .text:00050E00 off_50E00 DCD nsamples ; DATA XREF: profil+B8r .text:00050E04 off_50E04 DCD pc_offset ; DATA XREF: profil+C4r .text:00050E08 off_50E08 DCD pc_scale ; DATA XREF: profil+CCr .text:00050E0C off_50E0C DCD profil_counter ; DATA XREF: profil+D4r .text:00050E10 ; --------------------------------------------------------------------------- .text:00050E10 .text:00050E10 loc_50E10 ; CODE XREF: profil+4Cj .text:00050E10 ; profil+90j ... .text:00050E10 MOV R0, 0xFFFFFFFF .text:00050E14 .text:00050E14 locret_50E14 ; CODE XREF: profil+34j .text:00050E14 ; profil+64j ... .text:00050E14 LDMDB R11, {R4-R8,R11,SP,PC} .text:00050E14 ; End of function profil .text:00050E14 .text:00050E18 .text:00050E18 ; =============== S U B R O U T I N E ======================================= .text:00050E18 .text:00050E18 ; Attributes: bp-based frame .text:00050E18 .text:00050E18 EXPORT __profile_frequency .text:00050E18 __profile_frequency ; CODE XREF: _dl_start_profile+1B8p .text:00050E18 .text:00050E18 var_24 = -0x24 .text:00050E18 var_20 = -0x20 .text:00050E18 var_1C = -0x1C .text:00050E18 var_18 = -0x18 .text:00050E18 .text:00050E18 MOV R12, SP .text:00050E1C STMFD SP!, {R4,R5,R11,R12,LR,PC} .text:00050E20 SUB R11, R12, #4 .text:00050E24 MOV R5, #0 .text:00050E28 SUB SP, SP, #0x10 .text:00050E2C STR R5, [R11,#var_24] .text:00050E30 MOV R3, #1 .text:00050E34 STR R3, [R11,#var_20] .text:00050E38 STR R5, [R11,#var_1C] .text:00050E3C STR R5, [R11,#var_18] .text:00050E40 MOV R0, R5 .text:00050E44 SUB R4, R11, #-var_24 .text:00050E48 MOV R1, R4 .text:00050E4C MOV R2, R5 .text:00050E50 BL setitimer .text:00050E54 MOV R0, R5 .text:00050E58 MOV R1, R5 .text:00050E5C MOV R2, R4 .text:00050E60 BL setitimer .text:00050E64 LDR R1, [R11,#var_20] .text:00050E68 CMP R1, #1 .text:00050E6C BLE loc_50E80 .text:00050E70 MOV R0, 0xF4240 .text:00050E78 BL __divsi3 .text:00050E7C B locret_50E84 .text:00050E80 ; --------------------------------------------------------------------------- .text:00050E80 .text:00050E80 loc_50E80 ; CODE XREF: __profile_frequency+54j .text:00050E80 MOV R0, R5 .text:00050E84 .text:00050E84 locret_50E84 ; CODE XREF: __profile_frequency+64j .text:00050E84 LDMDB R11, {R4,R5,R11,SP,PC} .text:00050E84 ; End of function __profile_frequency .text:00050E84 .text:00050E88 .text:00050E88 ; =============== S U B R O U T I N E ======================================= .text:00050E88 .text:00050E88 ; Attributes: bp-based frame .text:00050E88 .text:00050E88 add_to_global ; CODE XREF: dl_open_worker+204p .text:00050E88 ; dl_open_worker+36Cp .text:00050E88 MOV R12, SP .text:00050E8C STMFD SP!, {R4-R8,R11,R12,LR,PC} .text:00050E90 SUB R11, R12, #4 .text:00050E94 MOV R12, #0 .text:00050E98 LDR R7, =_dl_global_scope_alloc .text:00050E9C MOV R6, R0 .text:00050EA0 LDR R1, [R6,#0xFC] .text:00050EA4 MOV R5, R12 .text:00050EA8 LDR R8, =_dl_main_searchlist .text:00050EAC CMP R12, R1 .text:00050EB0 BCS loc_50ED4 .text:00050EB4 LDR R0, [R6,#0xF8] .text:00050EB8 .text:00050EB8 loc_50EB8 ; CODE XREF: add_to_global+48j .text:00050EB8 LDR R3, [R0,R12,LSL#2] .text:00050EBC LDRB R2, [R3,#0x12C] .text:00050EC0 ADD R12, R12, #1 .text:00050EC4 TST R2, #0x10 .text:00050EC8 ADDEQ R5, R5, #1 .text:00050ECC CMP R12, R1 .text:00050ED0 BCC loc_50EB8 .text:00050ED4 .text:00050ED4 loc_50ED4 ; CODE XREF: add_to_global+28j .text:00050ED4 LDR R1, [R7] .text:00050ED8 CMP R1, #0 .text:00050EDC BNE loc_50F40 .text:00050EE0 LDR R3, [R8] .text:00050EE4 LDR R0, [R3,#4] .text:00050EE8 ADD R0, R0, R5 .text:00050EEC ADD R0, R0, #8 .text:00050EF0 STR R0, [R7] .text:00050EF4 MOV R0, R0,LSL#2 .text:00050EF8 BL malloc .text:00050EFC SUBS R4, R0, #0 .text:00050F00 BNE loc_50F1C .text:00050F04 STR R4, [R7] .text:00050F08 .text:00050F08 loc_50F08 ; CODE XREF: add_to_global+E4j .text:00050F08 LDR R3, [R6,#0x14] .text:00050F0C LDR R2, =aCannotExtendGl ; "cannot extend global scope" .text:00050F10 LDR R1, [R3] .text:00050F14 MOV R0, #0xC .text:00050F18 BL _dl_signal_error .text:00050F1C ; --------------------------------------------------------------------------- .text:00050F1C .text:00050F1C loc_50F1C ; CODE XREF: add_to_global+78j .text:00050F1C LDR R3, [R8] .text:00050F20 LDR R2, [R3,#4] .text:00050F24 MOV R0, R4 .text:00050F28 LDR R1, [R3] .text:00050F2C MOV R2, R2,LSL#2 .text:00050F30 BL memcpy .text:00050F34 LDR R3, [R8] .text:00050F38 STR R4, [R3] .text:00050F3C B loc_50F88 .text:00050F40 ; --------------------------------------------------------------------------- .text:00050F40 .text:00050F40 loc_50F40 ; CODE XREF: add_to_global+54j .text:00050F40 LDR R0, [R8] .text:00050F44 LDR R3, [R0,#4] .text:00050F48 ADD R3, R3, R5 .text:00050F4C CMP R3, R1 .text:00050F50 BLS loc_50F88 .text:00050F54 ADD R1, R1, R5 .text:00050F58 ADD R1, R1, #8 .text:00050F5C LDR R0, [R0] .text:00050F60 MOV R1, R1,LSL#2 .text:00050F64 BL realloc .text:00050F68 SUBS R4, R0, #0 .text:00050F6C BEQ loc_50F08 .text:00050F70 LDR R3, [R7] .text:00050F74 ADD R3, R3, #8 .text:00050F78 ADD R3, R3, R5 .text:00050F7C STR R3, [R7] .text:00050F80 LDR R2, [R8] .text:00050F84 STR R4, [R2] .text:00050F88 .text:00050F88 loc_50F88 ; CODE XREF: add_to_global+B4j .text:00050F88 ; add_to_global+C8j .text:00050F88 LDR R3, [R6,#0xFC] .text:00050F8C MOV R12, #0 .text:00050F90 CMP R12, R3 .text:00050F94 BCS loc_50FE8 .text:00050F98 LDR LR, =_dl_main_searchlist .text:00050F9C .text:00050F9C loc_50F9C ; CODE XREF: add_to_global+15Cj .text:00050F9C LDR R3, [R6,#0xF8] .text:00050FA0 LDR R0, [R3,R12,LSL#2] .text:00050FA4 LDRB R3, [R0,#0x12C] .text:00050FA8 TST R3, #0x10 .text:00050FAC BNE loc_50FD8 .text:00050FB0 ORR R3, R3, #0x10 .text:00050FB4 STRB R3, [R0,#0x12C] .text:00050FB8 LDR R2, [LR] .text:00050FBC LDR R1, [R2,#4] .text:00050FC0 LDR R3, [R2] .text:00050FC4 STR R0, [R3,R1,LSL#2] .text:00050FC8 LDR R2, [LR] .text:00050FCC LDR R3, [R2,#4] .text:00050FD0 ADD R3, R3, #1 .text:00050FD4 STR R3, [R2,#4] .text:00050FD8 .text:00050FD8 loc_50FD8 ; CODE XREF: add_to_global+124j .text:00050FD8 LDR R3, [R6,#0xFC] .text:00050FDC ADD R12, R12, #1 .text:00050FE0 CMP R12, R3 .text:00050FE4 BCC loc_50F9C .text:00050FE8 .text:00050FE8 loc_50FE8 ; CODE XREF: add_to_global+10Cj .text:00050FE8 MOV R0, #0 .text:00050FEC LDMDB R11, {R4-R8,R11,SP,PC} .text:00050FEC ; End of function add_to_global .text:00050FEC .text:00050FEC ; --------------------------------------------------------------------------- .text:00050FF0 off_50FF0 DCD _dl_global_scope_alloc ; DATA XREF: add_to_global+10r .text:00050FF4 off_50FF4 DCD _dl_main_searchlist ; DATA XREF: add_to_global+20r .text:00050FF4 ; add_to_global+110r .text:00050FF8 off_50FF8 DCD aCannotExtendGl ; DATA XREF: add_to_global+84r .text:00050FF8 ; "cannot extend global scope" .text:00050FFC .text:00050FFC ; =============== S U B R O U T I N E ======================================= .text:00050FFC .text:00050FFC ; Attributes: bp-based frame .text:00050FFC .text:00050FFC dl_open_worker ; DATA XREF: .text:00051444o .text:00050FFC ; .text:off_5156Co .text:00050FFC .text:00050FFC var_2C = -0x2C .text:00050FFC .text:00050FFC MOV R12, SP .text:00051000 STMFD SP!, {R4-R12,LR,PC} .text:00051004 SUB R11, R12, #4 .text:00051008 MOV R8, R0 .text:0005100C SUB SP, SP, #0xC .text:00051010 LDR R7, [R8] .text:00051014 MOV R1, #0x24 .text:00051018 LDR R10, [R8,#4] .text:0005101C MOV R0, R7 .text:00051020 BL strchr .text:00051024 CMP R0, #0 .text:00051028 STR R0, [R11,#var_2C] .text:0005102C BEQ loc_51178 .text:00051030 MOV R0, R7 .text:00051034 LDR R5, [R8,#8] .text:00051038 BL strlen .text:0005103C LDR R3, =__libc_enable_secure .text:00051040 LDR R2, [R3] .text:00051044 MOV R9, R0 .text:00051048 CMP R2, #0 .text:0005104C BEQ loc_51060 .text:00051050 LDR R1, =aDlopen ; "dlopen" .text:00051054 LDR R2, =aDstNotAllowedI ; "DST not allowed in SUID/SGID programs" .text:00051058 MOV R0, #0 .text:0005105C BL _dl_signal_error .text:00051060 ; --------------------------------------------------------------------------- .text:00051060 .text:00051060 loc_51060 ; CODE XREF: dl_open_worker+50j .text:00051060 LDR R3, =_dl_loaded .text:00051064 MOV R6, R2 .text:00051068 LDR R4, [R3] .text:0005106C MOV R2, R3 .text:00051070 B loc_51078 .text:00051074 ; --------------------------------------------------------------------------- .text:00051074 .text:00051074 loc_51074 ; CODE XREF: dl_open_worker+8Cj .text:00051074 ; dl_open_worker+98j ... .text:00051074 LDR R4, [R4,#0xC] .text:00051078 .text:00051078 loc_51078 ; CODE XREF: dl_open_worker+74j .text:00051078 CMP R4, #0 .text:0005107C BEQ loc_510A8 .text:00051080 LDR R3, [R4] .text:00051084 CMP R3, #0 .text:00051088 BEQ loc_51074 .text:0005108C LDR R3, [R4,#0x14C] .text:00051090 CMP R5, R3 .text:00051094 BCC loc_51074 .text:00051098 LDR R3, [R4,#0x150] .text:0005109C CMP R5, R3 .text:000510A0 BCS loc_51074 .text:000510A4 MOV R6, R4 .text:000510A8 .text:000510A8 loc_510A8 ; CODE XREF: dl_open_worker+80j .text:000510A8 CMP R6, #0 .text:000510AC LDREQ R6, [R2] .text:000510B0 LDR R4, [R6,#0x148] .text:000510B4 CMP R4, #0 .text:000510B8 BNE loc_510F8 .text:000510BC LDR R3, [R6,#4] .text:000510C0 LDRB R2, [R3] .text:000510C4 CMP R2, #0 .text:000510C8 BEQ loc_510E0 .text:000510CC LDR R0, =aCall_mapL_name ; "(call_map)->l_name[0] == '\\0'" .text:000510D0 LDR R1, =aDlOpen_c ; "dl-open.c" .text:000510D4 LDR R3, =aDl_open_worker ; "dl_open_worker" .text:000510D8 MOV R2, #0xD4 .text:000510DC BL __assert_fail .text:000510E0 ; --------------------------------------------------------------------------- .text:000510E0 .text:000510E0 loc_510E0 ; CODE XREF: dl_open_worker+CCj .text:000510E0 BL _dl_get_origin .text:000510E4 CMP R0, #0 .text:000510E8 CMNNE R0, #1 .text:000510EC STR R0, [R6,#0x148] .text:000510F0 BEQ loc_51114 .text:000510F4 B loc_51104 .text:000510F8 ; --------------------------------------------------------------------------- .text:000510F8 .text:000510F8 loc_510F8 ; CODE XREF: dl_open_worker+BCj .text:000510F8 CMN R4, #1 .text:000510FC BEQ loc_51110 .text:00051100 MOV R0, R4 .text:00051104 .text:00051104 loc_51104 ; CODE XREF: dl_open_worker+F8j .text:00051104 BL strlen .text:00051108 MOV R4, R0 .text:0005110C B loc_51114 .text:00051110 ; --------------------------------------------------------------------------- .text:00051110 .text:00051110 loc_51110 ; CODE XREF: dl_open_worker+100j .text:00051110 MOV R4, #0 .text:00051114 .text:00051114 loc_51114 ; CODE XREF: dl_open_worker+F4j .text:00051114 ; dl_open_worker+110j .text:00051114 LDR R0, [R11,#var_2C] .text:00051118 MOV R1, #0 .text:0005111C BL _dl_dst_count .text:00051120 LDR R2, =_dl_platformlen .text:00051124 LDR R3, [R2] .text:00051128 CMP R3, R4 .text:0005112C MOVCC R3, R4 .text:00051130 SUB R3, R3, #7 .text:00051134 MLA R2, R3, R0, R9 .text:00051138 MOV R1, R7 .text:0005113C MOV R3, #0 .text:00051140 MOV R0, R6 .text:00051144 ADD R2, R2, #4 .text:00051148 BIC R2, R2, #3 .text:0005114C RSB SP, R2, SP .text:00051150 ADD R4, SP, #0x34+var_2C .text:00051154 MOV R2, R4 .text:00051158 BL _dl_dst_substitute .text:0005115C LDRB R0, [SP,#0x34+var_2C] .text:00051160 CMP R0, #0 .text:00051164 BNE loc_51174 .text:00051168 LDR R1, =aDlopen ; "dlopen" .text:0005116C LDR R2, =aEmptyDynamicSt ; "empty dynamic string token substitution"... .text:00051170 BL _dl_signal_error .text:00051174 ; --------------------------------------------------------------------------- .text:00051174 .text:00051174 loc_51174 ; CODE XREF: dl_open_worker+168j .text:00051174 MOV R7, R4 .text:00051178 .text:00051178 loc_51178 ; CODE XREF: dl_open_worker+30j .text:00051178 MOV R0, #0 .text:0005117C STMEA SP, {R0,R10} .text:00051180 MOV R1, R7 .text:00051184 MOV R2, R0 .text:00051188 MOV R3, #2 .text:0005118C BL _dl_map_object .text:00051190 MOV R5, R0 .text:00051194 CMP R5, #0 .text:00051198 STR R5, [R8,#0xC] .text:0005119C BNE loc_511BC .text:000511A0 TST R10, #4 .text:000511A4 BNE locret_513D8 .text:000511A8 LDR R0, =aMode0x00004 ; "mode & 0x00004" .text:000511AC LDR R1, =aDlOpen_c ; "dl-open.c" .text:000511B0 LDR R3, =aDl_open_worker ; "dl_open_worker" .text:000511B4 MOV R2, #0xED .text:000511B8 BL __assert_fail .text:000511BC ; --------------------------------------------------------------------------- .text:000511BC .text:000511BC loc_511BC ; CODE XREF: dl_open_worker+1A0j .text:000511BC LDR R4, [R5,#0xF8] .text:000511C0 CMP R4, #0 .text:000511C4 BEQ loc_51214 .text:000511C8 LDR R3, =_dl_debug_mask .text:000511CC LDR R2, [R3] .text:000511D0 TST R2, #0x40 .text:000511D4 BEQ loc_511E8 .text:000511D8 LDR R0, =aOpeningFileSOp ; "opening file=%s; opencount == %u\n\n" .text:000511DC LDR R1, [R5,#4] .text:000511E0 LDR R2, [R5,#0x128] .text:000511E4 BL _dl_debug_printf .text:000511E8 .text:000511E8 loc_511E8 ; CODE XREF: dl_open_worker+1D8j .text:000511E8 TST R10, #0x100 .text:000511EC BEQ loc_51204 .text:000511F0 LDRB R3, [R5,#0x12C] .text:000511F4 TST R3, #0x10 .text:000511F8 BNE loc_51204 .text:000511FC MOV R0, R5 .text:00051200 BL add_to_global .text:00051204 .text:00051204 loc_51204 ; CODE XREF: dl_open_worker+1F0j .text:00051204 ; dl_open_worker+1FCj .text:00051204 LDR R3, [R5,#0x128] .text:00051208 ADD R3, R3, #1 .text:0005120C STR R3, [R5,#0x128] .text:00051210 B locret_513D8 .text:00051214 ; --------------------------------------------------------------------------- .text:00051214 .text:00051214 loc_51214 ; CODE XREF: dl_open_worker+1C8j .text:00051214 MOV R0, R5 .text:00051218 MOV R1, R4 .text:0005121C MOV R2, R4 .text:00051220 MOV R3, R4 .text:00051224 BL _dl_map_object_deps .text:00051228 AND R8, R10, #0x100 .text:0005122C LDR R3, [R5,#0xFC] .text:00051230 AND R7, R10, #3 .text:00051234 CMP R4, R3 .text:00051238 BCS loc_51268 .text:0005123C .text:0005123C loc_5123C ; CODE XREF: dl_open_worker+268j .text:0005123C LDR R3, [R5,#0xF8] .text:00051240 LDR R0, [R3,R4,LSL#2] .text:00051244 LDR R1, [R0,#0x134] .text:00051248 CMP R1, #0 .text:0005124C BNE loc_51258 .text:00051250 MOV R2, R1 .text:00051254 BL _dl_check_map_versions .text:00051258 .text:00051258 loc_51258 ; CODE XREF: dl_open_worker+250j .text:00051258 LDR R3, [R5,#0xFC] .text:0005125C ADD R4, R4, #1 .text:00051260 CMP R4, R3 .text:00051264 BCC loc_5123C .text:00051268 .text:00051268 loc_51268 ; CODE XREF: dl_open_worker+23Cj .text:00051268 MOV R6, #0 .text:0005126C CMP R7, #1 .text:00051270 BNE loc_51284 .text:00051274 LDR R3, =_dl_lazy .text:00051278 LDR R2, [R3] .text:0005127C SUBS R6, R2, R6 .text:00051280 MOVNE R6, #1 .text:00051284 .text:00051284 loc_51284 ; CODE XREF: dl_open_worker+274j .text:00051284 LDR R3, [R5,#0xC] .text:00051288 MOV R4, R5 .text:0005128C CMP R3, #0 .text:00051290 BEQ loc_512E0 .text:00051294 .text:00051294 loc_51294 ; CODE XREF: dl_open_worker+2A4j .text:00051294 LDR R4, [R4,#0xC] .text:00051298 LDR R3, [R4,#0xC] .text:0005129C CMP R3, #0 .text:000512A0 BNE loc_51294 .text:000512A4 B loc_512E0 .text:000512A4 ; --------------------------------------------------------------------------- .text:000512A8 off_512A8 DCD __libc_enable_secure ; DATA XREF: dl_open_worker+40r .text:000512AC off_512AC DCD aDlopen ; DATA XREF: dl_open_worker+54r .text:000512AC ; dl_open_worker+16Cr .text:000512AC ; "dlopen" .text:000512B0 off_512B0 DCD aDstNotAllowedI ; DATA XREF: dl_open_worker+58r .text:000512B0 ; "DST not allowed in SUID/SGID programs" .text:000512B4 off_512B4 DCD _dl_loaded ; DATA XREF: dl_open_worker:loc_51060r .text:000512B8 off_512B8 DCD aCall_mapL_name ; DATA XREF: dl_open_worker+D0r .text:000512B8 ; "(call_map)->l_name[0] == '\\0'" .text:000512BC off_512BC DCD aDlOpen_c ; DATA XREF: dl_open_worker+D4r .text:000512BC ; dl_open_worker+1B0r .text:000512BC ; "dl-open.c" .text:000512C0 off_512C0 DCD aDl_open_worker ; DATA XREF: dl_open_worker+D8r .text:000512C0 ; dl_open_worker+1B4r .text:000512C0 ; "dl_open_worker" .text:000512C4 off_512C4 DCD _dl_platformlen ; DATA XREF: dl_open_worker+124r .text:000512C8 off_512C8 DCD aEmptyDynamicSt ; DATA XREF: dl_open_worker+170r .text:000512C8 ; "empty dynamic string token substitution"... .text:000512CC off_512CC DCD aMode0x00004 ; DATA XREF: dl_open_worker+1ACr .text:000512CC ; "mode & 0x00004" .text:000512D0 off_512D0 DCD _dl_debug_mask ; DATA XREF: dl_open_worker+1CCr .text:000512D4 off_512D4 DCD aOpeningFileSOp ; DATA XREF: dl_open_worker+1DCr .text:000512D4 ; "opening file=%s; opencount == %u\n\n" .text:000512D8 off_512D8 DCD _dl_lazy ; DATA XREF: dl_open_worker+278r .text:000512DC ; --------------------------------------------------------------------------- .text:000512DC .text:000512DC loc_512DC ; CODE XREF: dl_open_worker+308j .text:000512DC LDR R4, [R4,#0x10] .text:000512E0 .text:000512E0 loc_512E0 ; CODE XREF: dl_open_worker+294j .text:000512E0 ; dl_open_worker+2A8j .text:000512E0 LDRB R3, [R4,#0x12C] .text:000512E4 MOV R3, R3,LSR#2 .text:000512E8 ANDS R3, R3, #1 .text:000512EC BNE loc_51300 .text:000512F0 MOV R0, R4 .text:000512F4 ADD R1, R4, #0x154 .text:000512F8 MOV R2, R6 .text:000512FC BL _dl_relocate_object .text:00051300 .text:00051300 loc_51300 ; CODE XREF: dl_open_worker+2F0j .text:00051300 CMP R4, R5 .text:00051304 BNE loc_512DC .text:00051308 LDR R3, [R5,#0xFC] .text:0005130C MOV R4, #0 .text:00051310 CMP R4, R3 .text:00051314 BCS loc_5133C .text:00051318 .text:00051318 loc_51318 ; CODE XREF: dl_open_worker+33Cj .text:00051318 LDR R2, [R5,#0xF8] .text:0005131C LDR R1, [R2,R4,LSL#2] .text:00051320 LDR R3, [R1,#0x128] .text:00051324 ADD R3, R3, #1 .text:00051328 STR R3, [R1,#0x128] .text:0005132C LDR R2, [R5,#0xFC] .text:00051330 ADD R4, R4, #1 .text:00051334 CMP R4, R2 .text:00051338 BCC loc_51318 .text:0005133C .text:0005133C loc_5133C ; CODE XREF: dl_open_worker+318j .text:0005133C LDR R3, =__libc_argc .text:00051340 LDR R0, =__libc_argv .text:00051344 LDR R12, =environ .text:00051348 LDR R1, [R3] .text:0005134C LDR R2, [R0] .text:00051350 LDR R3, [R12] .text:00051354 MOV R0, R5 .text:00051358 BL _dl_init .text:0005135C CMP R8, #0 .text:00051360 BEQ loc_51374 .text:00051364 MOV R0, R5 .text:00051368 BL add_to_global .text:0005136C CMP R0, #0 .text:00051370 BNE locret_513D8 .text:00051374 .text:00051374 loc_51374 ; CODE XREF: dl_open_worker+364j .text:00051374 TST R10, #0x1000 .text:00051378 LDRNE R3, [R5,#0x198] .text:0005137C ORRNE R3, R3, #8 .text:00051380 STRNE R3, [R5,#0x198] .text:00051384 LDR R3, =0 .text:00051388 CMP R3, #0 .text:0005138C LDREQ R2, =__libc_multiple_libcs .text:00051390 MOVEQ R3, #1 .text:00051394 STREQ R3, [R2] .text:00051398 LDR R3, =_dl_debug_mask .text:0005139C LDR R2, [R3] .text:000513A0 TST R2, #0x40 .text:000513A4 BEQ locret_513D8 .text:000513A8 LDR R0, =aOpeningFileSOp ; "opening file=%s; opencount == %u\n\n" .text:000513AC LDR R1, [R5,#4] .text:000513B0 LDR R2, [R5,#0x128] .text:000513B4 BL _dl_debug_printf .text:000513B8 B locret_513D8 .text:000513B8 ; --------------------------------------------------------------------------- .text:000513BC off_513BC DCD __libc_argc ; DATA XREF: dl_open_worker:loc_5133Cr .text:000513C0 off_513C0 DCD __libc_argv ; DATA XREF: dl_open_worker+344r .text:000513C4 off_513C4 DCD environ ; DATA XREF: dl_open_worker+348r .text:000513C8 dword_513C8 DCD 0 ; DATA XREF: dl_open_worker+388r .text:000513CC off_513CC DCD __libc_multiple_libcs ; DATA XREF: dl_open_worker+390r .text:000513D0 off_513D0 DCD _dl_debug_mask ; DATA XREF: dl_open_worker+39Cr .text:000513D4 off_513D4 DCD aOpeningFileSOp ; DATA XREF: dl_open_worker+3ACr .text:000513D4 ; "opening file=%s; opencount == %u\n\n" .text:000513D8 ; --------------------------------------------------------------------------- .text:000513D8 .text:000513D8 locret_513D8 ; CODE XREF: dl_open_worker+1A8j .text:000513D8 ; dl_open_worker+214j ... .text:000513D8 LDMDB R11, {R4-R11,SP,PC} .text:000513D8 ; End of function dl_open_worker .text:000513D8 .text:000513DC ; --------------------------------------------------------------------------- .text:000513DC .text:000513DC EXPORT _dl_open .text:000513DC _dl_open ; CODE XREF: do_dlopen+1Cp .text:000513DC MOV R12, SP .text:000513E0 STMFD SP!, {R4-R6,R11,R12,LR,PC} .text:000513E4 SUB R11, R12, #4 .text:000513E8 MOV R5, R1 .text:000513EC TST R5, #3 .text:000513F0 MOV R4, R0 .text:000513F4 MOV R6, R2 .text:000513F8 SUB SP, SP, #0x18 .text:000513FC BNE loc_51410 .text:00051400 MOV R0, #0x16 .text:00051404 LDR R2, =aInvalidModeFor ; "invalid mode for dlopen()" .text:00051408 MOV R1, R4 .text:0005140C BL _dl_signal_error .text:00051410 ; --------------------------------------------------------------------------- .text:00051410 .text:00051410 loc_51410 ; CODE XREF: .text:000513FCj .text:00051410 LDR R3, =0 .text:00051414 CMP R3, #0 .text:00051418 BEQ loc_51428 .text:0005141C LDR R0, =_dl_load_lock .text:00051420 MOV LR, PC .text:00051424 MOV PC, R3 .text:00051428 .text:00051428 loc_51428 ; CODE XREF: .text:00051418j .text:00051428 STR R4, [R11,#-0x28] .text:0005142C STR R5, [R11,#-0x24] .text:00051430 STR R6, [R11,#-0x20] .text:00051434 MOV R4, #0 .text:00051438 STR R4, [R11,#-0x1C] .text:0005143C SUB R0, R11, #0x2C .text:00051440 SUB R1, R11, #0x30 .text:00051444 LDR R2, =dl_open_worker .text:00051448 SUB R3, R11, #0x28 .text:0005144C BL _dl_catch_error .text:00051450 MOV R6, R0 .text:00051454 BL _dl_unload_cache .text:00051458 LDR R3, =0 .text:0005145C CMP R3, R4 .text:00051460 BEQ loc_51470 .text:00051464 LDR R0, =_dl_load_lock .text:00051468 MOV LR, PC .text:0005146C MOV PC, R3 .text:00051470 .text:00051470 loc_51470 ; CODE XREF: .text:00051460j .text:00051470 LDR R3, [R11,#-0x30] .text:00051474 CMP R3, #0 .text:00051478 BEQ loc_51578 .text:0005147C LDR R2, [R11,#-0x1C] .text:00051480 CMP R2, #0 .text:00051484 BEQ loc_514C8 .text:00051488 LDR R3, [R2,#0xFC] .text:0005148C MOV R0, R4 .text:00051490 CMP R0, R3 .text:00051494 BCS loc_514C0 .text:00051498 .text:00051498 loc_51498 ; CODE XREF: .text:000514BCj .text:00051498 LDR R2, [R2,#0xF8] .text:0005149C LDR R1, [R2,R0,LSL#2] .text:000514A0 LDR R3, [R1,#0x128] .text:000514A4 ADD R3, R3, #1 .text:000514A8 STR R3, [R1,#0x128] .text:000514AC LDR R2, [R11,#-0x1C] .text:000514B0 LDR R3, [R2,#0xFC] .text:000514B4 ADD R0, R0, #1 .text:000514B8 CMP R0, R3 .text:000514BC BCC loc_51498 .text:000514C0 .text:000514C0 loc_514C0 ; CODE XREF: .text:00051494j .text:000514C0 LDR R0, [R11,#-0x1C] .text:000514C4 BL _dl_close .text:000514C8 .text:000514C8 loc_514C8 ; CODE XREF: .text:00051484j .text:000514C8 LDR R0, [R11,#-0x30] .text:000514CC BL strlen .text:000514D0 MOV R2, R0 .text:000514D4 LDR R1, [R11,#-0x30] .text:000514D8 ADD R4, R2, #1 .text:000514DC LDR R0, [R11,#-0x2C] .text:000514E0 ADD R3, R1, R4 .text:000514E4 CMP R0, R3 .text:000514E8 BNE loc_51520 .text:000514EC BL strlen .text:000514F0 ADD R2, R4, R0 .text:000514F4 ADD R3, R2, #4 .text:000514F8 BIC R3, R3, #3 .text:000514FC RSB SP, R3, SP .text:00051500 MOV R5, SP .text:00051504 MOV R0, SP .text:00051508 LDR R1, [R11,#-0x30] .text:0005150C ADD R2, R2, #1 .text:00051510 BL memcpy .text:00051514 ADD R3, SP, R4 .text:00051518 STR R3, [R11,#-0x2C] .text:0005151C B loc_5153C .text:00051520 ; --------------------------------------------------------------------------- .text:00051520 .text:00051520 loc_51520 ; CODE XREF: .text:000514E8j .text:00051520 ADD R3, R2, #4 .text:00051524 BIC R3, R3, #3 .text:00051528 RSB SP, R3, SP .text:0005152C MOV R5, SP .text:00051530 MOV R0, SP .text:00051534 MOV R2, R4 .text:00051538 BL memcpy .text:0005153C .text:0005153C loc_5153C ; CODE XREF: .text:0005151Cj .text:0005153C LDR R0, [R11,#-0x30] .text:00051540 LDR R3, =_dl_out_of_memory ; "out of memory" .text:00051544 CMP R0, R3 .text:00051548 BEQ loc_51550 .text:0005154C BL free .text:00051550 .text:00051550 loc_51550 ; CODE XREF: .text:00051548j .text:00051550 MOV R0, R6 .text:00051554 LDR R1, [R11,#-0x2C] .text:00051558 MOV R2, R5 .text:0005155C BL _dl_signal_error .text:0005155C ; --------------------------------------------------------------------------- .text:00051560 off_51560 DCD aInvalidModeFor ; DATA XREF: .text:00051404r .text:00051560 ; "invalid mode for dlopen()" .text:00051564 off_51564 DCD 0 ; DATA XREF: .text:loc_51410r .text:00051568 off_51568 DCD _dl_load_lock ; DATA XREF: .text:0005141Cr .text:00051568 ; .text:00051464r .text:0005156C off_5156C DCD dl_open_worker ; DATA XREF: .text:00051444r .text:00051570 off_51570 DCD 0 ; DATA XREF: .text:00051458r .text:00051574 off_51574 DCD _dl_out_of_memory ; DATA XREF: .text:00051540r .text:00051574 ; "out of memory" .text:00051578 ; --------------------------------------------------------------------------- .text:00051578 .text:00051578 loc_51578 ; CODE XREF: .text:00051478j .text:00051578 LDR R0, [R11,#-0x1C] .text:0005157C LDMDB R11, {R4-R6,R11,SP,PC} .text:00051580 .text:00051580 ; =============== S U B R O U T I N E ======================================= .text:00051580 .text:00051580 ; Attributes: bp-based frame .text:00051580 .text:00051580 EXPORT _dl_close .text:00051580 _dl_close ; CODE XREF: do_dlclose+Cp .text:00051580 ; .text:000514C4p ... .text:00051580 .text:00051580 var_54 = -0x54 .text:00051580 var_50 = -0x50 .text:00051580 var_4C = -0x4C .text:00051580 var_48 = -0x48 .text:00051580 var_44 = -0x44 .text:00051580 var_40 = -0x40 .text:00051580 var_29 = -0x29 .text:00051580 .text:00051580 MOV R12, SP .text:00051584 STMFD SP!, {R4-R12,LR,PC} .text:00051588 SUB R11, R12, #4 .text:0005158C SUB SP, SP, #0x20 .text:00051590 STR R0, [R11,#var_40] .text:00051594 LDR R3, [R0,#0x198] .text:00051598 MOV R1, #0 .text:0005159C STR R1, [R11,#var_44] .text:000515A0 TST R3, #8 .text:000515A4 BEQ loc_515B4 .text:000515A8 LDRB R3, [R0,#0x12C] .text:000515AC TST R3, #8 .text:000515B0 BNE locret_51BD4 .text:000515B4 .text:000515B4 loc_515B4 ; CODE XREF: _dl_close+24j .text:000515B4 LDR R2, [R11,#var_40] .text:000515B8 LDR R3, [R2,#0x128] .text:000515BC CMP R3, #0 .text:000515C0 BNE loc_515D4 .text:000515C4 LDR R1, [R2,#4] .text:000515C8 LDR R2, =aSharedObjectNo ; "shared object not open" .text:000515CC LDR R0, [R11,#var_44] .text:000515D0 BL _dl_signal_error .text:000515D4 ; --------------------------------------------------------------------------- .text:000515D4 .text:000515D4 loc_515D4 ; CODE XREF: _dl_close+40j .text:000515D4 LDR R3, =0 .text:000515D8 CMP R3, #0 .text:000515DC BEQ loc_515EC .text:000515E0 LDR R0, =_dl_load_lock .text:000515E4 MOV LR, PC .text:000515E8 MOV PC, R3 .text:000515EC .text:000515EC loc_515EC ; CODE XREF: _dl_close+5Cj .text:000515EC LDR R3, [R11,#var_40] .text:000515F0 LDR R12, [R3,#0x128] .text:000515F4 CMP R12, #1 .text:000515F8 BHI loc_5160C .text:000515FC LDRB R3, [R3,#0x12C] .text:00051600 AND R3, R3, #3 .text:00051604 CMP R3, #2 .text:00051608 BEQ loc_51664 .text:0005160C .text:0005160C loc_5160C ; CODE XREF: _dl_close+78j .text:0005160C LDR R3, =_dl_debug_mask .text:00051610 LDR R2, [R3] .text:00051614 TST R2, #0x40 .text:00051618 BEQ loc_51638 .text:0005161C LDR R1, [R11,#var_44] .text:00051620 STRB R1, [R11,#var_29] .text:00051624 LDR R2, [R11,#var_40] .text:00051628 LDR R0, =aClosingFileSOp ; "\nclosing file=%s; opencount == %u\n" .text:0005162C LDR R1, [R2,#4] .text:00051630 MOV R2, R12 .text:00051634 BL _dl_debug_printf .text:00051638 .text:00051638 loc_51638 ; CODE XREF: _dl_close+98j .text:00051638 LDR R12, [R11,#var_40] .text:0005163C LDR R2, =0 .text:00051640 LDR R3, [R12,#0x128] .text:00051644 CMP R2, #0 .text:00051648 SUB R3, R3, #1 .text:0005164C STR R3, [R12,#0x128] .text:00051650 BEQ locret_51BD4 .text:00051654 LDR R0, =_dl_load_lock .text:00051658 MOV LR, PC .text:0005165C MOV PC, R2 .text:00051660 B locret_51BD4 .text:00051664 ; --------------------------------------------------------------------------- .text:00051664 .text:00051664 loc_51664 ; CODE XREF: _dl_close+88j .text:00051664 LDR R1, [R11,#var_40] .text:00051668 LDR R8, [R11,#var_44] .text:0005166C LDR R2, [R1,#0xFC] .text:00051670 LDR R9, [R1,#0x184] .text:00051674 SUB SP, SP, R2,LSL#2 .text:00051678 LDR R3, [R9,R8,LSL#2] .text:0005167C MOV R10, SP .text:00051680 CMP R3, #0 .text:00051684 BEQ loc_516AC .text:00051688 .text:00051688 loc_51688 ; CODE XREF: _dl_close+128j .text:00051688 LDR R3, [R9,R8,LSL#2] .text:0005168C STR R8, [R3,#0x19C] .text:00051690 LDR R2, [R9,R8,LSL#2] .text:00051694 LDR R3, [R2,#0x128] .text:00051698 STR R3, [R10,R8,LSL#2] .text:0005169C ADD R8, R8, #1 .text:000516A0 LDR R3, [R9,R8,LSL#2] .text:000516A4 CMP R3, #0 .text:000516A8 BNE loc_51688 .text:000516AC .text:000516AC loc_516AC ; CODE XREF: _dl_close+104j .text:000516AC LDR R3, [R10] .text:000516B0 SUB R3, R3, #1 .text:000516B4 STR R3, [R10] .text:000516B8 LDR R2, [R9,#4] .text:000516BC MOV R8, #1 .text:000516C0 CMP R2, #0 .text:000516C4 BEQ loc_5179C .text:000516C8 .text:000516C8 loc_516C8 ; CODE XREF: _dl_close+218j .text:000516C8 LDR R2, [R9,R8,LSL#2] .text:000516CC LDR R3, [R2,#0x198] .text:000516D0 TST R3, #8 .text:000516D4 BEQ loc_516EC .text:000516D8 LDRB R3, [R2,#0x12C] .text:000516DC ADD R2, R8, #1 .text:000516E0 STR R2, [R11,#var_48] .text:000516E4 TST R3, #8 .text:000516E8 BNE loc_5178C .text:000516EC .text:000516EC loc_516EC ; CODE XREF: _dl_close+154j .text:000516EC LDR R3, [R10,R8,LSL#2] .text:000516F0 ADD R12, R8, #1 .text:000516F4 STR R12, [R11,#var_48] .text:000516F8 SUB R3, R3, #1 .text:000516FC CMP R3, #0 .text:00051700 STR R3, [R10,R8,LSL#2] .text:00051704 BNE loc_5178C .text:00051708 LDR R3, [R9,R8,LSL#2] .text:0005170C LDR R0, [R3,#0xF8] .text:00051710 CMP R0, #0 .text:00051714 BEQ loc_5178C .text:00051718 LDR R3, [R3,#0xFC] .text:0005171C MOV R1, #1 .text:00051720 CMP R1, R3 .text:00051724 BCS loc_5178C .text:00051728 .text:00051728 loc_51728 ; CODE XREF: _dl_close+208j .text:00051728 LDR R2, [R0,R1,LSL#2] .text:0005172C LDR R3, [R2,#0x198] .text:00051730 TST R3, #8 .text:00051734 BEQ loc_51744 .text:00051738 LDRB R3, [R2,#0x12C] .text:0005173C TST R3, #8 .text:00051740 BNE loc_51778 .text:00051744 .text:00051744 loc_51744 ; CODE XREF: _dl_close+1B4j .text:00051744 LDR R12, [R11,#var_40] .text:00051748 LDR R2, [R2,#0x19C] .text:0005174C LDR R3, [R12,#0xFC] .text:00051750 CMP R2, R3 .text:00051754 BCC loc_5176C .text:00051758 LDR R0, =aDep_listJL_idx ; "dep_list[j]->l_idx < map->l_searchlist."... .text:0005175C LDR R1, =aDlClose_c ; "dl-close.c" .text:00051760 LDR R3, =a_dl_close ; "_dl_close" .text:00051764 MOV R2, #0x73 .text:00051768 BL __assert_fail .text:0005176C ; --------------------------------------------------------------------------- .text:0005176C .text:0005176C loc_5176C ; CODE XREF: _dl_close+1D4j .text:0005176C LDR R3, [R10,R2,LSL#2] .text:00051770 SUB R3, R3, #1 .text:00051774 STR R3, [R10,R2,LSL#2] .text:00051778 .text:00051778 loc_51778 ; CODE XREF: _dl_close+1C0j .text:00051778 LDR R3, [R9,R8,LSL#2] .text:0005177C LDR R2, [R3,#0xFC] .text:00051780 ADD R1, R1, #1 .text:00051784 CMP R1, R2 .text:00051788 BCC loc_51728 .text:0005178C .text:0005178C loc_5178C ; CODE XREF: _dl_close+168j .text:0005178C ; _dl_close+184j ... .text:0005178C LDR R8, [R11,#var_48] .text:00051790 LDR R3, [R9,R8,LSL#2] .text:00051794 CMP R3, #0 .text:00051798 BNE loc_516C8 .text:0005179C .text:0005179C loc_5179C ; CODE XREF: _dl_close+144j .text:0005179C LDR R3, [R10] .text:000517A0 CMP R3, #0 .text:000517A4 BEQ loc_517BC .text:000517A8 LDR R0, =aNew_opencount0 ; "new_opencount[0] == 0" .text:000517AC LDR R1, =aDlClose_c ; "dl-close.c" .text:000517B0 LDR R3, =a_dl_close ; "_dl_close" .text:000517B4 MOV R2, #0x77 .text:000517B8 BL __assert_fail .text:000517BC ; --------------------------------------------------------------------------- .text:000517BC .text:000517BC loc_517BC ; CODE XREF: _dl_close+224j .text:000517BC MOV R8, R3 .text:000517C0 B loc_51924 .text:000517C4 ; --------------------------------------------------------------------------- .text:000517C4 .text:000517C4 loc_517C4 ; CODE XREF: _dl_close+3ACj .text:000517C4 LDR R4, [R10,R8,LSL#2] .text:000517C8 ADD R1, R8, #1 .text:000517CC STR R1, [R11,#var_48] .text:000517D0 CMP R4, #0 .text:000517D4 LDR R5, [R9,R8,LSL#2] .text:000517D8 BNE loc_518BC .text:000517DC LDRB R2, [R5,#0x12C] .text:000517E0 AND R3, R2, #3 .text:000517E4 CMP R3, #2 .text:000517E8 BNE loc_518BC .text:000517EC LDR R3, [R5,#0x4C] .text:000517F0 CMP R3, #0 .text:000517F4 BNE loc_51804 .text:000517F8 LDR R3, [R5,#0x80] .text:000517FC CMP R3, #0 .text:00051800 BEQ loc_518BC .text:00051804 .text:00051804 loc_51804 ; CODE XREF: _dl_close+274j .text:00051804 LDR R3, [R5,#0x198] .text:00051808 TST R3, #8 .text:0005180C AND R3, R2, #0xFF .text:00051810 BEQ loc_51824 .text:00051814 TST R3, #8 .text:00051818 ADD R2, R8, #1 .text:0005181C STR R2, [R11,#var_48] .text:00051820 BNE loc_518BC .text:00051824 .text:00051824 loc_51824 ; CODE XREF: _dl_close+290j .text:00051824 TST R3, #8 .text:00051828 ADD R3, R8, #1 .text:0005182C STR R3, [R11,#var_48] .text:00051830 BEQ loc_518BC .text:00051834 LDR R3, =_dl_debug_mask .text:00051838 LDR R2, [R3] .text:0005183C TST R2, #2 .text:00051840 BEQ loc_51850 .text:00051844 LDR R0, =aCallingFiniS ; "\ncalling fini: %s\n\n" .text:00051848 LDR R1, [R5,#4] .text:0005184C BL _dl_debug_printf .text:00051850 .text:00051850 loc_51850 ; CODE XREF: _dl_close+2C0j .text:00051850 LDR R0, [R5,#0x80] .text:00051854 CMP R0, #0 .text:00051858 BEQ loc_5189C .text:0005185C LDR R3, [R5,#0x88] .text:00051860 LDR R1, [R5] .text:00051864 LDR R2, [R3,#4] .text:00051868 LDR R3, [R0,#4] .text:0005186C MOV R6, R2,LSR#2 .text:00051870 CMP R4, R6 .text:00051874 ADD R7, R1, R3 .text:00051878 BCS loc_5189C .text:0005187C .text:0005187C loc_5187C ; CODE XREF: _dl_close+318j .text:0005187C LDR R3, [R5] .text:00051880 LDR R2, [R7,R4,LSL#2] .text:00051884 ADD R4, R4, #1 .text:00051888 ADD R3, R3, R2 .text:0005188C MOV LR, PC .text:00051890 MOV PC, R3 .text:00051894 CMP R4, R6 .text:00051898 BCC loc_5187C .text:0005189C .text:0005189C loc_5189C ; CODE XREF: _dl_close+2D8j .text:0005189C ; _dl_close+2F8j .text:0005189C LDR R2, [R5,#0x4C] .text:000518A0 CMP R2, #0 .text:000518A4 BEQ loc_518BC .text:000518A8 LDR R3, [R5] .text:000518AC LDR R2, [R2,#4] .text:000518B0 ADD R3, R3, R2 .text:000518B4 MOV LR, PC .text:000518B8 MOV PC, R3 .text:000518BC .text:000518BC loc_518BC ; CODE XREF: _dl_close+258j .text:000518BC ; _dl_close+268j ... .text:000518BC LDRB R3, [R5,#0x12C] .text:000518C0 LDR R2, [R10,R8,LSL#2] .text:000518C4 AND R3, R3, #3 .text:000518C8 CMP R3, #2 .text:000518CC STR R2, [R5,#0x128] .text:000518D0 BEQ loc_51920 .text:000518D4 CMP R2, #0 .text:000518D8 BNE loc_51920 .text:000518DC LDR R0, =aImapL_typeLt_l ; "imap->l_type == lt_loaded || imap->l_op"... .text:000518E0 LDR R1, =aDlClose_c ; "dl-close.c" .text:000518E4 LDR R3, =a_dl_close ; "_dl_close" .text:000518E8 MOV R2, #0x9F .text:000518EC BL __assert_fail .text:000518EC ; --------------------------------------------------------------------------- .text:000518F0 off_518F0 DCD aSharedObjectNo ; DATA XREF: _dl_close+48r .text:000518F0 ; "shared object not open" .text:000518F4 off_518F4 DCD 0 ; DATA XREF: _dl_close:loc_515D4r .text:000518F8 off_518F8 DCD _dl_load_lock ; DATA XREF: _dl_close+60r .text:000518F8 ; _dl_close+D4r .text:000518FC off_518FC DCD _dl_debug_mask ; DATA XREF: _dl_close:loc_5160Cr .text:000518FC ; _dl_close+2B4r .text:00051900 off_51900 DCD aClosingFileSOp ; DATA XREF: _dl_close+A8r .text:00051900 ; "\nclosing file=%s; opencount == %u\n" .text:00051904 off_51904 DCD 0 ; DATA XREF: _dl_close+BCr .text:00051908 off_51908 DCD aDep_listJL_idx ; DATA XREF: _dl_close+1D8r .text:00051908 ; "dep_list[j]->l_idx < map->l_searchlist."... .text:0005190C off_5190C DCD aDlClose_c ; DATA XREF: _dl_close+1DCr .text:0005190C ; _dl_close+22Cr ... .text:0005190C ; "dl-close.c" .text:00051910 off_51910 DCD a_dl_close ; DATA XREF: _dl_close+1E0r .text:00051910 ; _dl_close+230r ... .text:00051910 ; "_dl_close" .text:00051914 off_51914 DCD aNew_opencount0 ; DATA XREF: _dl_close+228r .text:00051914 ; "new_opencount[0] == 0" .text:00051918 off_51918 DCD aCallingFiniS ; DATA XREF: _dl_close+2C4r .text:00051918 ; "\ncalling fini: %s\n\n" .text:0005191C off_5191C DCD aImapL_typeLt_l ; DATA XREF: _dl_close+35Cr .text:0005191C ; "imap->l_type == lt_loaded || imap->l_op"... .text:00051920 ; --------------------------------------------------------------------------- .text:00051920 .text:00051920 loc_51920 ; CODE XREF: _dl_close+350j .text:00051920 ; _dl_close+358j .text:00051920 LDR R8, [R11,#var_48] .text:00051924 .text:00051924 loc_51924 ; CODE XREF: _dl_close+240j .text:00051924 LDR R3, [R9,R8,LSL#2] .text:00051928 CMP R3, #0 .text:0005192C BNE loc_517C4 .text:00051930 LDR R12, =_r_debug .text:00051934 MOV R3, #2 .text:00051938 STR R3, [R12,#(_r_debug+0xC - 0x7A7E0)] .text:0005193C MOV R8, #0 .text:00051940 BL _dl_debug_state .text:00051944 LDR R3, [R9,R8,LSL#2] .text:00051948 CMP R3, R8 .text:0005194C BEQ loc_51B1C .text:00051950 .text:00051950 loc_51950 ; CODE XREF: _dl_close+598j .text:00051950 LDR R5, [R9,R8,LSL#2] .text:00051954 LDR R3, [R5,#0x128] .text:00051958 ADD R8, R8, #1 .text:0005195C STR R8, [R11,#var_48] .text:00051960 CMP R3, #0 .text:00051964 BNE loc_51B0C .text:00051968 LDRB R2, [R5,#0x12C] .text:0005196C AND R3, R2, #3 .text:00051970 CMP R3, #2 .text:00051974 BNE loc_51B0C .text:00051978 TST R2, #0x10 .text:0005197C LDR R6, =_dl_nloaded .text:00051980 BEQ loc_519FC .text:00051984 LDR R3, =_dl_main_searchlist .text:00051988 LDR R2, [R3] .text:0005198C LDR R0, [R2,#4] .text:00051990 MOV R4, R3 .text:00051994 LDR R2, [R2] .text:00051998 .text:00051998 loc_51998 ; CODE XREF: _dl_close+424j .text:00051998 SUB R0, R0, #1 .text:0005199C LDR R3, [R2,R0,LSL#2] .text:000519A0 CMP R3, R5 .text:000519A4 BNE loc_51998 .text:000519A8 LDR R3, [R4] .text:000519AC LDR R2, [R3,#4] .text:000519B0 ADD R0, R0, #1 .text:000519B4 CMP R0, R2 .text:000519B8 BCS loc_519EC .text:000519BC MOV LR, 0xFFFFFFFC .text:000519C0 LDR R12, =_dl_main_searchlist .text:000519C4 .text:000519C4 loc_519C4 ; CODE XREF: _dl_close+468j .text:000519C4 LDR R2, [R12] .text:000519C8 LDR R3, [R2] .text:000519CC LDR R1, [R3,R0,LSL#2] .text:000519D0 ADD R3, R3, R0,LSL#2 .text:000519D4 STR R1, [R3,LR] .text:000519D8 LDR R2, [R12] .text:000519DC LDR R3, [R2,#4] .text:000519E0 ADD R0, R0, #1 .text:000519E4 CMP R0, R3 .text:000519E8 BCC loc_519C4 .text:000519EC .text:000519EC loc_519EC ; CODE XREF: _dl_close+438j .text:000519EC LDR R2, [R4] .text:000519F0 LDR R3, [R2,#4] .text:000519F4 SUB R3, R3, #1 .text:000519F8 STR R3, [R2,#4] .text:000519FC .text:000519FC loc_519FC ; CODE XREF: _dl_close+400j .text:000519FC LDR R0, [R5,#0x14C] .text:00051A00 ADD R2, R5, #0x150 .text:00051A04 LDMDA R2, {R1,R2} .text:00051A08 SUB R1, R2, R1 .text:00051A0C BL munmap .text:00051A10 LDR R2, [R5,#0x10] .text:00051A14 CMP R2, #0 .text:00051A18 LDRNE R3, [R5,#0xC] .text:00051A1C STRNE R3, [R2,#0xC] .text:00051A20 LDREQ R2, =_dl_loaded .text:00051A24 LDREQ R3, [R5,#0xC] .text:00051A28 STREQ R3, [R2] .text:00051A2C LDR R3, [R6] .text:00051A30 SUB R3, R3, #1 .text:00051A34 STR R3, [R6] .text:00051A38 LDR R2, [R5,#0xC] .text:00051A3C CMP R2, #0 .text:00051A40 LDRNE R3, [R5,#0x10] .text:00051A44 STRNE R3, [R2,#0x10] .text:00051A48 LDR R0, [R5,#0x134] .text:00051A4C CMP R0, #0 .text:00051A50 BEQ loc_51A58 .text:00051A54 BL free .text:00051A58 .text:00051A58 loc_51A58 ; CODE XREF: _dl_close+4D0j .text:00051A58 LDR R0, [R5,#0x148] .text:00051A5C CMP R0, #0 .text:00051A60 CMNNE R0, #1 .text:00051A64 BEQ loc_51A6C .text:00051A68 BL free .text:00051A6C .text:00051A6C loc_51A6C ; CODE XREF: _dl_close+4E4j .text:00051A6C LDR R3, [R5,#0x190] .text:00051A70 CMP R3, #0 .text:00051A74 BEQ loc_51A9C .text:00051A78 LDR R3, [R11,#var_44] .text:00051A7C SUB SP, SP, #0xC .text:00051A80 STR R3, [SP,#0x54+var_4C] .text:00051A84 LDR R12, [R11,#var_40] .text:00051A88 LDR R3, [R12,#0x190] .text:00051A8C STR R3, [SP,#0x54+var_54] .text:00051A90 LDR R2, [R12,#0x18C] .text:00051A94 STR SP, [R11,#var_44] .text:00051A98 STR R2, [SP,#0x54+var_50] .text:00051A9C .text:00051A9C loc_51A9C ; CODE XREF: _dl_close+4F4j .text:00051A9C LDR R0, [R5,#4] .text:00051AA0 BL free .text:00051AA4 LDR R4, [R5,#0x14] .text:00051AA8 .text:00051AA8 loc_51AA8 ; CODE XREF: _dl_close+538j .text:00051AA8 MOV R0, R4 .text:00051AAC LDR R4, [R4,#4] .text:00051AB0 BL free .text:00051AB4 CMP R4, #0 .text:00051AB8 BNE loc_51AA8 .text:00051ABC LDR R1, [R11,#var_40] .text:00051AC0 CMP R5, R1 .text:00051AC4 BEQ loc_51AD0 .text:00051AC8 LDR R0, [R5,#0x184] .text:00051ACC BL free .text:00051AD0 .text:00051AD0 loc_51AD0 ; CODE XREF: _dl_close+544j .text:00051AD0 LDRB R3, [R5,#0x12C] .text:00051AD4 MOVS R3, R3,LSR#7 .text:00051AD8 BEQ loc_51AE4 .text:00051ADC LDR R0, [R5,#0xEC] .text:00051AE0 BL free .text:00051AE4 .text:00051AE4 loc_51AE4 ; CODE XREF: _dl_close+558j .text:00051AE4 LDR R0, [R5,#0x138] .text:00051AE8 CMN R0, #1 .text:00051AEC BEQ loc_51AF4 .text:00051AF0 BL free .text:00051AF4 .text:00051AF4 loc_51AF4 ; CODE XREF: _dl_close+56Cj .text:00051AF4 LDR R0, [R5,#0x17C] .text:00051AF8 CMN R0, #1 .text:00051AFC BEQ loc_51B04 .text:00051B00 BL free .text:00051B04 .text:00051B04 loc_51B04 ; CODE XREF: _dl_close+57Cj .text:00051B04 MOV R0, R5 .text:00051B08 BL free .text:00051B0C .text:00051B0C loc_51B0C ; CODE XREF: _dl_close+3E4j .text:00051B0C ; _dl_close+3F4j .text:00051B0C LDR R8, [R11,#var_48] .text:00051B10 LDR R3, [R9,R8,LSL#2] .text:00051B14 CMP R3, #0 .text:00051B18 BNE loc_51950 .text:00051B1C .text:00051B1C loc_51B1C ; CODE XREF: _dl_close+3CCj .text:00051B1C LDR R2, =_r_debug .text:00051B20 MOV R3, #0 .text:00051B24 STR R3, [R2,#(_r_debug+0xC - 0x7A7E0)] .text:00051B28 BL _dl_debug_state .text:00051B2C LDR R3, [R11,#var_44] .text:00051B30 CMP R3, #0 .text:00051B34 BEQ loc_51BA8 .text:00051B38 .text:00051B38 loc_51B38 ; CODE XREF: _dl_close+624j .text:00051B38 LDR R12, [R11,#var_44] .text:00051B3C LDR R3, [R12,#4] .text:00051B40 B loc_51B74 .text:00051B40 ; --------------------------------------------------------------------------- .text:00051B44 off_51B44 DCD _r_debug ; DATA XREF: _dl_close+3B0r .text:00051B44 ; _dl_close:loc_51B1Cr .text:00051B48 off_51B48 DCD _dl_nloaded ; DATA XREF: _dl_close+3FCr .text:00051B4C off_51B4C DCD _dl_main_searchlist ; DATA XREF: _dl_close+404r .text:00051B4C ; _dl_close+440r .text:00051B50 off_51B50 DCD _dl_loaded ; DATA XREF: _dl_close+4A0r .text:00051B54 ; --------------------------------------------------------------------------- .text:00051B54 .text:00051B54 loc_51B54 ; CODE XREF: _dl_close+604j .text:00051B54 LDR R1, [R11,#var_44] .text:00051B58 LDR R2, [R1,#4] .text:00051B5C LDR R3, [R1] .text:00051B60 LDR R0, [R3,R2,LSL#2] .text:00051B64 BL _dl_close .text:00051B68 LDR R2, [R11,#var_44] .text:00051B6C LDR R3, [R2,#4] .text:00051B70 LDR R12, [R11,#var_44] .text:00051B74 .text:00051B74 loc_51B74 ; CODE XREF: _dl_close+5C0j .text:00051B74 MOV R2, R3 .text:00051B78 SUB R3, R3, #1 .text:00051B7C CMP R2, #0 .text:00051B80 STR R3, [R12,#4] .text:00051B84 BNE loc_51B54 .text:00051B88 LDR R1, [R11,#var_44] .text:00051B8C LDR R0, [R1] .text:00051B90 BL free .text:00051B94 LDR R2, [R11,#var_44] .text:00051B98 LDR R2, [R2,#8] .text:00051B9C CMP R2, #0 .text:00051BA0 STR R2, [R11,#var_44] .text:00051BA4 BNE loc_51B38 .text:00051BA8 .text:00051BA8 loc_51BA8 ; CODE XREF: _dl_close+5B4j .text:00051BA8 MOV R0, R9 .text:00051BAC BL free .text:00051BB0 LDR R3, =0 .text:00051BB4 CMP R3, #0 .text:00051BB8 BEQ locret_51BD4 .text:00051BBC LDR R0, =_dl_load_lock .text:00051BC0 MOV LR, PC .text:00051BC4 MOV PC, R3 .text:00051BC8 B locret_51BD4 .text:00051BC8 ; --------------------------------------------------------------------------- .text:00051BCC off_51BCC DCD 0 ; DATA XREF: _dl_close+630r .text:00051BD0 off_51BD0 DCD _dl_load_lock ; DATA XREF: _dl_close+63Cr .text:00051BD4 ; --------------------------------------------------------------------------- .text:00051BD4 .text:00051BD4 locret_51BD4 ; CODE XREF: _dl_close+30j .text:00051BD4 ; _dl_close+D0j ... .text:00051BD4 LDMDB R11, {R4-R11,SP,PC} .text:00051BD4 ; End of function _dl_close .text:00051BD4 .text:00051BD8 .text:00051BD8 ; =============== S U B R O U T I N E ======================================= .text:00051BD8 .text:00051BD8 ; Attributes: bp-based frame .text:00051BD8 .text:00051BD8 free_mem_12 .text:00051BD8 MOV R12, SP .text:00051BDC STMFD SP!, {R11,R12,LR,PC} .text:00051BE0 SUB R11, R12, #4 .text:00051BE4 LDR R12, =_dl_global_scope_alloc .text:00051BE8 LDR R3, [R12] .text:00051BEC CMP R3, #0 .text:00051BF0 LDMEQDB R11, {R11,SP,PC} .text:00051BF4 LDR R3, =_dl_main_searchlist .text:00051BF8 LDR R0, =_dl_initial_searchlist .text:00051BFC LDR R1, [R3] .text:00051C00 LDR R3, [R0,#(_dl_initial_searchlist+4 - 0x7A300)] .text:00051C04 LDR R2, [R1,#4] .text:00051C08 CMP R2, R3 .text:00051C0C LDMNEDB R11, {R11,SP,PC} .text:00051C10 LDR R3, [R0] .text:00051C14 LDR R0, [R1] .text:00051C18 STR R3, [R1] .text:00051C1C MOV R2, #0 .text:00051C20 STR R2, [R12] .text:00051C24 BL free .text:00051C28 LDMDB R11, {R11,SP,PC} .text:00051C28 ; End of function free_mem_12 .text:00051C28 .text:00051C28 ; --------------------------------------------------------------------------- .text:00051C2C off_51C2C DCD _dl_global_scope_alloc ; DATA XREF: free_mem_12+Cr .text:00051C30 off_51C30 DCD _dl_main_searchlist ; DATA XREF: free_mem_12+1Cr .text:00051C34 off_51C34 DCD _dl_initial_searchlist ; DATA XREF: free_mem_12+20r .text:00051C38 .text:00051C38 ; =============== S U B R O U T I N E ======================================= .text:00051C38 .text:00051C38 ; Attributes: bp-based frame .text:00051C38 .text:00051C38 EXPORT sigfillset .text:00051C38 sigfillset ; CODE XREF: profil+E4p .text:00051C38 MOV R12, SP .text:00051C3C STMFD SP!, {R11,R12,LR,PC} .text:00051C40 SUB R11, R12, #4 .text:00051C44 CMP R0, #0 .text:00051C48 BEQ loc_51C60 .text:00051C4C MOV R1, #0xFF .text:00051C50 MOV R2, #0x80 .text:00051C54 BL memset .text:00051C58 MOV R0, #0 .text:00051C5C LDMDB R11, {R11,SP,PC} .text:00051C60 ; --------------------------------------------------------------------------- .text:00051C60 .text:00051C60 loc_51C60 ; CODE XREF: sigfillset+10j .text:00051C60 BL __errno_location .text:00051C64 MOV R3, #0x16 .text:00051C68 STR R3, [R0] .text:00051C6C MOV R0, 0xFFFFFFFF .text:00051C70 LDMDB R11, {R11,SP,PC} .text:00051C70 ; End of function sigfillset .text:00051C70 .text:00051C74 .text:00051C74 ; =============== S U B R O U T I N E ======================================= .text:00051C74 .text:00051C74 ; Attributes: bp-based frame .text:00051C74 .text:00051C74 EXPORT _IO_seekoff .text:00051C74 _IO_seekoff ; CODE XREF: fseek+7Cp .text:00051C74 .text:00051C74 var_38 = -0x38 .text:00051C74 var_34 = -0x34 .text:00051C74 arg_0 = 4 .text:00051C74 .text:00051C74 MOV R12, SP .text:00051C78 STMFD SP!, {R4-R8,R10-R12,LR,PC} .text:00051C7C SUB R11, R12, #4 .text:00051C80 MOV R6, R2 .text:00051C84 MOV R5, R1 .text:00051C88 MOV R7, R3 .text:00051C8C CMP R7, #2 .text:00051C90 MOV R4, R0 .text:00051C94 SUB SP, SP, #0x14 .text:00051C98 LDR R10, [R11,#arg_0] .text:00051C9C BLS loc_51CB8 .text:00051CA0 BL __errno_location .text:00051CA4 MOV R3, #0x16 .text:00051CA8 STR R3, [R0] .text:00051CAC MOV R1, 0xFFFFFFFF .text:00051CB0 MOV R0, 0xFFFFFFFF .text:00051CB4 B loc_51DA8 .text:00051CB8 ; --------------------------------------------------------------------------- .text:00051CB8 .text:00051CB8 loc_51CB8 ; CODE XREF: _IO_seekoff+28j .text:00051CB8 LDR R3, [R4] .text:00051CBC MOV R8, #0 .text:00051CC0 TST R3, #0x8000 .text:00051CC4 BNE loc_51CD4 .text:00051CC8 LDR R3, =0 .text:00051CCC SUBS R8, R3, R8 .text:00051CD0 MOVNE R8, #1 .text:00051CD4 .text:00051CD4 loc_51CD4 ; CODE XREF: _IO_seekoff+50j .text:00051CD4 CMP R8, #0 .text:00051CD8 BEQ loc_51CEC .text:00051CDC SUB R0, R11, #-var_34 .text:00051CE0 LDR R1, =funlockfile .text:00051CE4 MOV R2, R4 .text:00051CE8 BL 0 .text:00051CEC .text:00051CEC loc_51CEC ; CODE XREF: _IO_seekoff+64j .text:00051CEC LDR R3, [R4] .text:00051CF0 TST R3, #0x8000 .text:00051CF4 BNE loc_51D00 .text:00051CF8 MOV R0, R4 .text:00051CFC BL flockfile .text:00051D00 .text:00051D00 loc_51D00 ; CODE XREF: _IO_seekoff+80j .text:00051D00 CMP R10, #0 .text:00051D04 BEQ loc_51D44 .text:00051D08 LDR R3, [R4,#0x24] .text:00051D0C CMP R3, #0 .text:00051D10 BEQ loc_51D44 .text:00051D14 CMP R7, #1 .text:00051D18 BNE loc_51D3C .text:00051D1C LDR R3, [R4] .text:00051D20 TST R3, #0x100 .text:00051D24 BEQ loc_51D3C .text:00051D28 ADD R2, R4, #8 .text:00051D2C LDMDA R2, {R2,R3} .text:00051D30 SUB R3, R3, R2 .text:00051D34 SUBS R5, R5, R3 .text:00051D38 SBC R6, R6, R3,ASR#31 .text:00051D3C .text:00051D3C loc_51D3C ; CODE XREF: _IO_seekoff+A4j .text:00051D3C ; _IO_seekoff+B0j .text:00051D3C MOV R0, R4 .text:00051D40 BL _IO_free_backup_area .text:00051D44 .text:00051D44 loc_51D44 ; CODE XREF: _IO_seekoff+90j .text:00051D44 ; _IO_seekoff+9Cj .text:00051D44 LDRB R3, [R4,#0x46] .text:00051D48 MOV R3, R3,LSL#24 .text:00051D4C ADD R3, R4, R3,ASR#24 .text:00051D50 LDR R12, [R3,#0x94] .text:00051D54 STR R10, [SP,#0x38+var_38] .text:00051D58 MOV R0, R4 .text:00051D5C MOV R2, R6 .text:00051D60 MOV R1, R5 .text:00051D64 MOV R3, R7 .text:00051D68 MOV LR, PC .text:00051D6C LDR PC, [R12,#0x24] .text:00051D70 LDR R3, [R4] .text:00051D74 MOV R6, R1 .text:00051D78 MOV R5, R0 .text:00051D7C TST R3, #0x8000 .text:00051D80 BNE loc_51D8C .text:00051D84 MOV R0, R4 .text:00051D88 BL funlockfile .text:00051D8C .text:00051D8C loc_51D8C ; CODE XREF: _IO_seekoff+10Cj .text:00051D8C CMP R8, #0 .text:00051D90 BEQ loc_51DA0 .text:00051D94 SUB R0, R11, #-var_34 .text:00051D98 MOV R1, #0 .text:00051D9C BL 0 .text:00051DA0 .text:00051DA0 loc_51DA0 ; CODE XREF: _IO_seekoff+11Cj .text:00051DA0 MOV R1, R6 .text:00051DA4 MOV R0, R5 .text:00051DA8 .text:00051DA8 loc_51DA8 ; CODE XREF: _IO_seekoff+40j .text:00051DA8 B locret_51DB4 .text:00051DA8 ; --------------------------------------------------------------------------- .text:00051DAC dword_51DAC DCD 0 ; DATA XREF: _IO_seekoff+54r .text:00051DB0 off_51DB0 DCD funlockfile ; DATA XREF: _IO_seekoff+6Cr .text:00051DB4 ; --------------------------------------------------------------------------- .text:00051DB4 .text:00051DB4 locret_51DB4 ; CODE XREF: _IO_seekoff:loc_51DA8j .text:00051DB4 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:00051DB4 ; End of function _IO_seekoff .text:00051DB4 .text:00051DB4 ; --------------------------------------------------------------------------- .text:00051DB8 ALIGN 0x10 .text:00051DC0 .text:00051DC0 ; =============== S U B R O U T I N E ======================================= .text:00051DC0 .text:00051DC0 .text:00051DC0 WEAK setitimer .text:00051DC0 setitimer ; CODE XREF: profil+44p .text:00051DC0 ; profil+88p ... .text:00051DC0 SVC 0x900068 ; Alternative name is '__setitimer' .text:00051DC4 CMN R0, #0x1000 .text:00051DC8 MOVCC PC, LR .text:00051DCC B __syscall_error .text:00051DCC ; End of function setitimer .text:00051DCC .text:00051DD0 .text:00051DD0 ; =============== S U B R O U T I N E ======================================= .text:00051DD0 .text:00051DD0 .text:00051DD0 fix_bad_pc24.111 ; CODE XREF: .text:0005248Cp .text:00051DD0 ; .text:0005270Cp .text:00051DD0 .text:00051DD0 var_4 = -4 .text:00051DD0 arg_0 = 0 .text:00051DD0 .text:00051DD0 STR R12, [SP,#var_4]! .text:00051DD4 ADD R12, SP, #4+arg_0 .text:00051DD8 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:00051DDC SUB R11, R12, #8 .text:00051DE0 LDR R12, [R11,#4] .text:00051DE4 SUB SP, SP, #0xC .text:00051DE8 STR R12, [R11,#-0x20] .text:00051DEC LDR R3, =fix_page.115 .text:00051DF0 LDR R6, =pagesize.117 .text:00051DF4 MOV R7, R1 .text:00051DF8 LDR R4, [R3] .text:00051DFC MOV R5, R3 .text:00051E00 LDR R12, =fix_offset.116 .text:00051E04 CMP R4, #0 .text:00051E08 BNE loc_51E98 .text:00051E0C LDR R3, [R6] .text:00051E10 CMP R3, #0 .text:00051E14 BNE loc_51E20 .text:00051E18 BL getpagesize .text:00051E1C STR R0, [R6] .text:00051E20 .text:00051E20 loc_51E20 ; CODE XREF: fix_bad_pc24.111+44j .text:00051E20 LDR R1, [R6] .text:00051E24 MOV R3, 0xFFFFFFFF .text:00051E28 STMEA SP, {R3,R4} .text:00051E2C MOV R0, R4 .text:00051E30 MOV R2, #7 .text:00051E34 ADD R3, R3, #0x23 .text:00051E38 BL mmap .text:00051E3C CMP R0, #0 .text:00051E40 STR R0, [R5] .text:00051E44 BNE loc_51E88 .text:00051E48 LDR R3, =aCouldNotMapPag ; "could not map page for fixup" .text:00051E4C CMP R3, #0 .text:00051E50 BEQ loc_51E88 .text:00051E54 LDR R0, =aCouldNotMapP_0 ; "! \"could not map page for fixup\"" .text:00051E58 LDR R1, =a__SysdepsArmDl ; "../sysdeps/arm/dl-machine.h" .text:00051E5C MOV R2, #0x184 .text:00051E60 LDR R3, =aFix_bad_pc24 ; "fix_bad_pc24" .text:00051E64 ADD R2, R2, #1 .text:00051E68 BL __assert_fail .text:00051E68 ; --------------------------------------------------------------------------- .text:00051E6C off_51E6C DCD fix_page.115 ; DATA XREF: fix_bad_pc24.111+1Cr .text:00051E70 off_51E70 DCD pagesize.117 ; DATA XREF: fix_bad_pc24.111+20r .text:00051E74 off_51E74 DCD fix_offset.116 ; DATA XREF: fix_bad_pc24.111+30r .text:00051E78 off_51E78 DCD aCouldNotMapPag ; DATA XREF: fix_bad_pc24.111+78r .text:00051E78 ; "could not map page for fixup" .text:00051E7C off_51E7C DCD aCouldNotMapP_0 ; DATA XREF: fix_bad_pc24.111+84r .text:00051E7C ; "! \"could not map page for fixup\"" .text:00051E80 off_51E80 DCD a__SysdepsArmDl ; DATA XREF: fix_bad_pc24.111+88r .text:00051E80 ; "../sysdeps/arm/dl-machine.h" .text:00051E84 off_51E84 DCD aFix_bad_pc24 ; DATA XREF: fix_bad_pc24.111+90r .text:00051E84 ; "fix_bad_pc24" .text:00051E88 ; --------------------------------------------------------------------------- .text:00051E88 .text:00051E88 loc_51E88 ; CODE XREF: fix_bad_pc24.111+74j .text:00051E88 ; fix_bad_pc24.111+80j .text:00051E88 LDR R2, =fix_offset.116 .text:00051E8C MOV R3, #0 .text:00051E90 MOV R12, R2 .text:00051E94 STR R3, [R2] .text:00051E98 .text:00051E98 loc_51E98 ; CODE XREF: fix_bad_pc24.111+38j .text:00051E98 MOV R3, #0xE0000004 .text:00051E9C LDR R1, [R5] .text:00051EA0 ADD R3, R3, #0x5100000 .text:00051EA4 LDR R2, [R12] .text:00051EA8 ADD R3, R3, #0xFF000 .text:00051EAC STR R3, [R1,R2] .text:00051EB0 ADD R0, R1, R2 .text:00051EB4 STR R7, [R0,#4] .text:00051EB8 LDR R3, [R12] .text:00051EBC ADD R3, R3, #8 .text:00051EC0 STR R3, [R12] .text:00051EC4 LDR R2, [R6] .text:00051EC8 CMP R3, R2 .text:00051ECC MOVCS R3, #0 .text:00051ED0 STRCS R3, [R5] .text:00051ED4 B locret_51EDC .text:00051ED4 ; --------------------------------------------------------------------------- .text:00051ED8 off_51ED8 DCD fix_offset.116 ; DATA XREF: fix_bad_pc24.111:loc_51E88r .text:00051EDC ; --------------------------------------------------------------------------- .text:00051EDC .text:00051EDC locret_51EDC ; CODE XREF: fix_bad_pc24.111+104j .text:00051EDC LDMDB R11, {R4-R7,R11,SP,PC} .text:00051EDC ; End of function fix_bad_pc24.111 .text:00051EDC .text:00051EE0 ; --------------------------------------------------------------------------- .text:00051EE0 .text:00051EE0 EXPORT _dl_relocate_object .text:00051EE0 _dl_relocate_object ; CODE XREF: dl_open_worker+300p .text:00051EE0 MOV R12, SP .text:00051EE4 STMFD SP!, {R4-R12,LR,PC} .text:00051EE8 SUB R11, R12, #4 .text:00051EEC SUB SP, SP, #0x58 .text:00051EF0 STR R0, [R11,#-0x30] .text:00051EF4 STR R1, [R11,#-0x34] .text:00051EF8 MOV R6, R2 .text:00051EFC LDRB R1, [R0,#0x12C] .text:00051F00 MOV R7, R3 .text:00051F04 TST R1, #4 .text:00051F08 BNE locret_5293C .text:00051F0C CMP R7, #0 .text:00051F10 BNE loc_51F24 .text:00051F14 LDR R3, [R0,#0x78] .text:00051F18 CMP R3, #0 .text:00051F1C MOVEQ R6, R2 .text:00051F20 MOVNE R6, #0 .text:00051F24 .text:00051F24 loc_51F24 ; CODE XREF: .text:00051F10j .text:00051F24 LDR R3, =_dl_debug_mask .text:00051F28 LDR R2, [R3] .text:00051F2C TST R2, #0x20 .text:00051F30 BEQ loc_51F68 .text:00051F34 LDR R2, [R0,#4] .text:00051F38 LDRB R3, [R2] .text:00051F3C CMP R3, #0 .text:00051F40 LDREQ R3, =_dl_argv .text:00051F44 LDREQ R2, [R3] .text:00051F48 LDREQ R2, [R2] .text:00051F4C LDR R12, =dword_62490 .text:00051F50 MOV R0, #1 .text:00051F54 LDR R3, =aLazy ; " (lazy)" .text:00051F58 CMP R6, #0 .text:00051F5C LDR R1, =aRelocationProc ; "\nrelocation processing: %s%s\n" .text:00051F60 MOVEQ R3, R12 .text:00051F64 BL _dl_dprintf .text:00051F68 .text:00051F68 loc_51F68 ; CODE XREF: .text:00051F30j .text:00051F68 SUB R0, R11, #0x4C .text:00051F6C STR R0, [R11,#-0x68] .text:00051F70 SUB R1, R11, #0x48 .text:00051F74 STR R1, [R11,#-0x6C] .text:00051F78 LDR R0, [R11,#-0x30] .text:00051F7C LDR R3, [R0,#0x70] .text:00051F80 SUB R2, R11, #0x44 .text:00051F84 STR R2, [R11,#-0x70] .text:00051F88 CMP R3, #0 .text:00051F8C BEQ loc_52044 .text:00051F90 LDRB R3, [R0,#0xF4] .text:00051F94 LDRB R2, [R0,#0xF5] .text:00051F98 LDR R5, [R0,#0xEC] .text:00051F9C ORR R3, R3, R2,LSL#8 .text:00051FA0 ADD R3, R5, R3,LSL#5 .text:00051FA4 CMP R5, R3 .text:00051FA8 BCS loc_52044 .text:00051FAC .text:00051FAC loc_51FAC ; CODE XREF: .text:00052040j .text:00051FAC LDR R3, [R5] .text:00051FB0 CMP R3, #1 .text:00051FB4 BNE loc_52020 .text:00051FB8 LDR R3, [R5,#0x18] .text:00051FBC TST R3, #2 .text:00051FC0 BNE loc_52020 .text:00051FC4 LDR R3, =_dl_pagesize .text:00051FC8 LDR R1, [R5,#8] .text:00051FCC LDR R0, [R0] .text:00051FD0 LDR R4, [R3] .text:00051FD4 MOV R2, #3 .text:00051FD8 LDR R3, [R5,#0x14] .text:00051FDC RSB LR, R4, #0 .text:00051FE0 AND R12, R1, LR .text:00051FE4 ADD R0, R0, R12 .text:00051FE8 ADD R1, R1, R3 .text:00051FEC ADD R1, R1, R4 .text:00051FF0 SUB R1, R1, #1 .text:00051FF4 AND R1, R1, LR .text:00051FF8 RSB R1, R12, R1 .text:00051FFC BL mprotect .text:00052000 CMP R0, #0 .text:00052004 BGE loc_52020 .text:00052008 BL __errno_location .text:0005200C LDR R0, [R0] .text:00052010 LDR R3, [R11,#-0x30] .text:00052014 LDR R2, =aCannotMakeSegm ; "cannot make segment writable for reloca"... .text:00052018 LDR R1, [R3,#4] .text:0005201C BL _dl_signal_error .text:00052020 ; --------------------------------------------------------------------------- .text:00052020 .text:00052020 loc_52020 ; CODE XREF: .text:00051FB4j .text:00052020 ; .text:00051FC0j ... .text:00052020 LDR R0, [R11,#-0x30] .text:00052024 LDRB R3, [R0,#0xF4] .text:00052028 LDRB R1, [R0,#0xF5] .text:0005202C ADD R5, R5, #0x20 .text:00052030 LDR R2, [R0,#0xEC] .text:00052034 ORR R3, R3, R1,LSL#8 .text:00052038 ADD R2, R2, R3,LSL#5 .text:0005203C CMP R5, R2 .text:00052040 BCC loc_51FAC .text:00052044 .text:00052044 loc_52044 ; CODE XREF: .text:00051F8Cj .text:00052044 ; .text:00051FA8j .text:00052044 LDR R1, [R11,#-0x30] .text:00052048 LDR R3, [R1,#0x2C] .text:0005204C LDR R2, [R3,#4] .text:00052050 STR R2, [R11,#-0x2C] .text:00052054 LDR R3, [R1,#0x74] .text:00052058 CMP R3, #0 .text:0005205C CMPNE R6, #0 .text:00052060 BEQ loc_52094 .text:00052064 LDR R3, [R1,#0x24] .text:00052068 LDR R2, [R3,#4] .text:0005206C CMP R7, #0 .text:00052070 STR R1, [R2,#4] .text:00052074 BEQ loc_5208C .text:00052078 LDR R3, =_dl_runtime_profile .text:0005207C STR R3, [R2,#8] .text:00052080 LDR R2, =_dl_profile_map .text:00052084 STR R1, [R2] .text:00052088 B loc_52094 .text:0005208C ; --------------------------------------------------------------------------- .text:0005208C .text:0005208C loc_5208C ; CODE XREF: .text:00052074j .text:0005208C LDR R3, =_dl_runtime_resolve .text:00052090 STR R3, [R2,#8] .text:00052094 .text:00052094 loc_52094 ; CODE XREF: .text:00052060j .text:00052094 ; .text:00052088j .text:00052094 MOV R3, #0 .text:00052098 STR R3, [R11,#-0x44] .text:0005209C STR R3, [R11,#-0x3C] .text:000520A0 STR R3, [R11,#-0x48] .text:000520A4 STR R3, [R11,#-0x4C] .text:000520A8 LDR R2, [R11,#-0x30] .text:000520AC LDR R3, [R2,#0x5C] .text:000520B0 CMP R3, #0 .text:000520B4 BEQ loc_520CC .text:000520B8 LDR R3, [R3,#4] .text:000520BC STR R3, [R11,#-0x4C] .text:000520C0 LDR R2, [R2,#0x60] .text:000520C4 LDR R3, [R2,#4] .text:000520C8 STR R3, [R11,#-0x48] .text:000520CC .text:000520CC loc_520CC ; CODE XREF: .text:000520B4j .text:000520CC LDR R1, [R11,#-0x30] .text:000520D0 LDR R3, [R1,#0x68] .text:000520D4 CMP R3, #0 .text:000520D8 BEQ loc_5212C .text:000520DC LDR R3, [R1,#0x74] .text:000520E0 CMP R6, #0 .text:000520E4 LDR R2, [R3,#4] .text:000520E8 BNE loc_52104 .text:000520EC SUB R5, R11, #0x4C .text:000520F0 LDMIA R5, {R3,R5} .text:000520F4 ADD R3, R3, R5 .text:000520F8 LDR R0, [R11,#-0x48] .text:000520FC CMP R3, R2 .text:00052100 BEQ loc_5211C .text:00052104 .text:00052104 loc_52104 ; CODE XREF: .text:000520E8j .text:00052104 STR R2, [R11,#-0x40] .text:00052108 LDR R3, [R1,#0x20] .text:0005210C LDR R2, [R3,#4] .text:00052110 STR R6, [R11,#-0x38] .text:00052114 STR R2, [R11,#-0x3C] .text:00052118 B loc_5212C .text:0005211C ; --------------------------------------------------------------------------- .text:0005211C .text:0005211C loc_5211C ; CODE XREF: .text:00052100j .text:0005211C LDR R2, [R1,#0x20] .text:00052120 LDR R3, [R2,#4] .text:00052124 ADD R3, R0, R3 .text:00052128 STR R3, [R11,#-0x48] .text:0005212C .text:0005212C loc_5212C ; CODE XREF: .text:000520D8j .text:0005212C ; .text:00052118j .text:0005212C MOV R0, #0 .text:00052130 SUB R9, R11, #0x28 .text:00052134 .text:00052134 loc_52134 ; CODE XREF: .text:00052794j .text:00052134 SUB R1, R11, #0x70 .text:00052138 LDMIA R1, {R1,R5,R12} .text:0005213C ADD R3, R0, R0,LSL#1 .text:00052140 LDR R10, [R11,#-0x30] .text:00052144 MOV R3, R3,LSL#2 .text:00052148 LDR R6, [R12,R3] .text:0005214C LDR R2, [R1,R3] .text:00052150 LDR R1, [R5,R3] .text:00052154 CMP R2, #0 .text:00052158 ADD R1, R6, R1 .text:0005215C STR R1, [R11,#-0x5C] .text:00052160 BEQ loc_521B8 .text:00052164 ADD R0, R0, #1 .text:00052168 STR R0, [R11,#-0x74] .text:0005216C CMP R6, R1 .text:00052170 LDR R1, [R10] .text:00052174 BCS loc_5278C .text:00052178 .text:00052178 loc_52178 ; CODE XREF: .text:000521B0j .text:00052178 LDRB R3, [R6,#4] .text:0005217C LDR R2, [R6] .text:00052180 CMP R3, #0x16 .text:00052184 LDREQ R3, [R1,R2] .text:00052188 ADDEQ R3, R3, R1 .text:0005218C STREQ R3, [R1,R2] .text:00052190 BEQ loc_521A4 .text:00052194 MOV R0, R10 .text:00052198 LDRB R1, [R6,#4] .text:0005219C MOV R2, #1 .text:000521A0 BL _dl_reloc_bad_type .text:000521A4 .text:000521A4 loc_521A4 ; CODE XREF: .text:00052190j .text:000521A4 LDR R12, [R11,#-0x5C] .text:000521A8 ADD R6, R6, #8 .text:000521AC CMP R6, R12 .text:000521B0 BCC loc_52178 .text:000521B4 B loc_5278C .text:000521B8 ; --------------------------------------------------------------------------- .text:000521B8 .text:000521B8 loc_521B8 ; CODE XREF: .text:00052160j .text:000521B8 LDR R3, [R10,#0x30] .text:000521BC LDR R2, [R10,#0xDC] .text:000521C0 LDR R3, [R3,#4] .text:000521C4 CMP R2, #0 .text:000521C8 STR R3, [R11,#-0x60] .text:000521CC BEQ loc_524F8 .text:000521D0 ADD R0, R0, #1 .text:000521D4 STR R0, [R11,#-0x74] .text:000521D8 LDR R1, [R11,#-0x5C] .text:000521DC LDR R2, [R2,#4] .text:000521E0 CMP R6, R1 .text:000521E4 STR R2, [R11,#-0x64] .text:000521E8 BCS loc_5278C .text:000521EC .text:000521EC loc_521EC ; CODE XREF: .text:000524F0j .text:000521EC LDR R2, [R6,#4] .text:000521F0 LDR R5, [R11,#-0x64] .text:000521F4 LDR LR, [R10] .text:000521F8 LDR R4, [R6] .text:000521FC MOV R0, R2,LSR#8 .text:00052200 MOV R3, R0,LSL#1 .text:00052204 LDRB R1, [R3,R5] .text:00052208 ADD R3, R3, R5 .text:0005220C AND R2, R2, #0xFF .text:00052210 CMP R2, #0x17 .text:00052214 LDRB R12, [R3,#1] .text:00052218 MOV R0, R0,LSL#4 .text:0005221C LDR R5, [R11,#-0x60] .text:00052220 ADD R7, LR, R4 .text:00052224 LDR R3, [R10,#0x134] .text:00052228 ADD R8, R5, R0 .text:0005222C ORR R1, R1, R12,LSL#8 .text:00052230 ADD R1, R3, R1,LSL#4 .text:00052234 STR R8, [R11,#-0x58] .text:00052238 BNE loc_52254 .text:0005223C LDR R3, =0 .text:00052240 CMP R10, R3 .text:00052244 LDRNE R3, [LR,R4] .text:00052248 ADDNE R3, R3, LR .text:0005224C STRNE R3, [LR,R4] .text:00052250 B loc_524E4 .text:00052254 ; --------------------------------------------------------------------------- .text:00052254 .text:00052254 loc_52254 ; CODE XREF: .text:00052238j .text:00052254 CMP R2, #0 .text:00052258 BEQ loc_524E4 .text:0005225C LDRB R3, [R8,#0xC] .text:00052260 MOVS R3, R3,LSR#4 .text:00052264 BEQ loc_52318 .text:00052268 CMP R1, #0 .text:0005226C BEQ loc_522B4 .text:00052270 LDR R3, [R1,#4] .text:00052274 CMP R3, #0 .text:00052278 BEQ loc_522B4 .text:0005227C LDR R2, [R11,#-0x60] .text:00052280 LDR R12, [R2,R0] .text:00052284 STR R1, [SP] .text:00052288 LDRB R2, [R6,#4] .text:0005228C MOV R3, #0 .text:00052290 STMFA SP, {R2,R3} .text:00052294 LDR R0, [R9,#-4] .text:00052298 LDR R1, [R9,#-8] .text:0005229C SUB R2, R11, #0x58 .text:000522A0 LDR R3, [R9,#-0xC] .text:000522A4 ADD R0, R0, R12 .text:000522A8 BL _dl_lookup_versioned_symbol .text:000522AC MOV R5, R0 .text:000522B0 B loc_52320 .text:000522B4 ; --------------------------------------------------------------------------- .text:000522B4 .text:000522B4 loc_522B4 ; CODE XREF: .text:0005226Cj .text:000522B4 ; .text:00052278j .text:000522B4 LDR R3, [R11,#-0x58] .text:000522B8 LDRB R2, [R6,#4] .text:000522BC LDR R12, [R3] .text:000522C0 STR R2, [SP] .text:000522C4 MOV R3, #0 .text:000522C8 STR R3, [SP,#4] .text:000522CC LDR R1, [R9,#-8] .text:000522D0 LDR R0, [R9,#-4] .text:000522D4 SUB R2, R11, #0x58 .text:000522D8 LDR R3, [R9,#-0xC] .text:000522DC ADD R0, R0, R12 .text:000522E0 BL _dl_lookup_symbol .text:000522E4 MOV R5, R0 .text:000522E8 B loc_52320 .text:000522E8 ; --------------------------------------------------------------------------- .text:000522EC off_522EC DCD _dl_debug_mask ; DATA XREF: .text:loc_51F24r .text:000522F0 off_522F0 DCD _dl_argv ; DATA XREF: .text:00051F40r .text:000522F4 off_522F4 DCD dword_62490 ; DATA XREF: .text:00051F4Cr .text:000522F8 off_522F8 DCD aLazy ; DATA XREF: .text:00051F54r .text:000522F8 ; " (lazy)" .text:000522FC off_522FC DCD aRelocationProc ; DATA XREF: .text:00051F5Cr .text:000522FC ; "\nrelocation processing: %s%s\n" .text:00052300 off_52300 DCD _dl_pagesize ; DATA XREF: .text:00051FC4r .text:00052304 off_52304 DCD aCannotMakeSegm ; DATA XREF: .text:00052014r .text:00052304 ; "cannot make segment writable for reloca"... .text:00052308 off_52308 DCD _dl_runtime_profile ; DATA XREF: .text:00052078r .text:0005230C off_5230C DCD _dl_profile_map ; DATA XREF: .text:00052080r .text:00052310 off_52310 DCD _dl_runtime_resolve ; DATA XREF: .text:loc_5208Cr .text:00052314 dword_52314 DCD 0 ; DATA XREF: .text:0005223Cr .text:00052318 ; --------------------------------------------------------------------------- .text:00052318 .text:00052318 loc_52318 ; CODE XREF: .text:00052264j .text:00052318 LDR R3, [R9,#-8] .text:0005231C LDR R5, [R3] .text:00052320 .text:00052320 loc_52320 ; CODE XREF: .text:000522B0j .text:00052320 ; .text:000522E8j .text:00052320 LDR R3, [R11,#-0x58] .text:00052324 CMP R3, #0 .text:00052328 MOV R2, R3 .text:0005232C LDRNE R3, [R2,#4] .text:00052330 ADDNE R5, R5, R3 .text:00052334 LDRB R3, [R6,#4] .text:00052338 SUB R3, R3, #1 .text:0005233C CMP R3, #0x15 ; switch 22 cases .text:00052340 LDRLS PC, [PC,R3,LSL#2] ; switch jump .text:00052344 B loc_524D4 ; jumptable 00052340 default case .text:00052344 ; --------------------------------------------------------------------------- .text:00052348 DCD loc_52450 ; jump table for switch statement .text:00052348 DCD loc_52428 .text:00052348 DCD loc_524D4 .text:00052348 DCD loc_524D4 .text:00052348 DCD loc_524D4 .text:00052348 DCD loc_524D4 .text:00052348 DCD loc_524D4 .text:00052348 DCD loc_524D4 .text:00052348 DCD loc_524D4 .text:00052348 DCD loc_524D4 .text:00052348 DCD loc_524D4 .text:00052348 DCD loc_524D4 .text:00052348 DCD loc_524D4 .text:00052348 DCD loc_524D4 .text:00052348 DCD loc_524D4 .text:00052348 DCD loc_524D4 .text:00052348 DCD loc_524D4 .text:00052348 DCD loc_524D4 .text:00052348 DCD loc_524D4 .text:00052348 DCD loc_523A0 .text:00052348 DCD loc_524CC .text:00052348 DCD loc_524CC .text:000523A0 ; --------------------------------------------------------------------------- .text:000523A0 .text:000523A0 loc_523A0 ; CODE XREF: .text:00052340j .text:000523A0 ; DATA XREF: .text:00052348o .text:000523A0 CMP R2, #0 ; jumptable 00052340 case 19 .text:000523A4 BEQ loc_524E4 .text:000523A8 LDR R0, [R2,#8] .text:000523AC LDR R1, [R8,#8] .text:000523B0 CMP R0, R1 .text:000523B4 BHI loc_523D0 .text:000523B8 LDR R3, =_dl_verbose .text:000523BC LDR R2, [R3] .text:000523C0 CMP R2, #0 .text:000523C4 BEQ loc_52404 .text:000523C8 CMP R0, R1 .text:000523CC BCS loc_52404 .text:000523D0 .text:000523D0 loc_523D0 ; CODE XREF: .text:000523B4j .text:000523D0 LDR R4, =aProgramNameU_0 ; "<program name unknown>" .text:000523D4 LDR R1, =aSSymbolSHasDif ; "%s: Symbol `%s' has different size in s"... .text:000523D8 LDR R3, [R10,#0x2C] .text:000523DC LDR R2, =_dl_argv .text:000523E0 LDR LR, [R3,#4] .text:000523E4 LDR R12, [R2] .text:000523E8 LDR R3, [R8] .text:000523EC MOV R0, #2 .text:000523F0 LDR R2, [R12] .text:000523F4 ADD R3, LR, R3 .text:000523F8 CMP R2, #0 .text:000523FC MOVEQ R2, R4 .text:00052400 BL _dl_dprintf .text:00052404 .text:00052404 loc_52404 ; CODE XREF: .text:000523C4j .text:00052404 ; .text:000523CCj .text:00052404 LDR R3, [R11,#-0x58] .text:00052408 LDR R12, [R8,#8] .text:0005240C MOV R0, R7 .text:00052410 LDR R2, [R3,#8] .text:00052414 MOV R1, R5 .text:00052418 CMP R12, R2 .text:0005241C MOVCC R2, R12 .text:00052420 BL memcpy .text:00052424 B loc_524E4 .text:00052428 ; --------------------------------------------------------------------------- .text:00052428 .text:00052428 loc_52428 ; CODE XREF: .text:00052340j .text:00052428 ; DATA XREF: .text:00052348o .text:00052428 LDR R3, =0 ; jumptable 00052340 case 1 .text:0005242C CMP R10, R3 .text:00052430 LDREQ R2, [R10] .text:00052434 LDREQ R3, [R8,#4] .text:00052438 ADDEQ R2, R2, R3 .text:0005243C RSBEQ R5, R2, R5 .text:00052440 LDR R3, [R7] .text:00052444 ADD R3, R3, R5 .text:00052448 STR R3, [R7] .text:0005244C B loc_524E4 .text:00052450 ; --------------------------------------------------------------------------- .text:00052450 .text:00052450 loc_52450 ; CODE XREF: .text:00052340j .text:00052450 ; DATA XREF: .text:00052348o .text:00052450 LDR R3, [R7] ; jumptable 00052340 case 0 .text:00052454 BIC R1, R3, #0xFF000000 .text:00052458 TST R3, #0x800000 .text:0005245C ORR R2, R1, #0xFF000000 .text:00052460 RSB R3, R7, R5 .text:00052464 MOVNE R4, R2,LSL#2 .text:00052468 MOVEQ R4, R1,LSL#2 .text:0005246C ADD R0, R3, R4 .text:00052470 AND R2, R0, #0xFE000000 .text:00052474 CMP R2, #0xFE000000 .text:00052478 CMPNE R2, #0 .text:0005247C BEQ loc_524B8 .text:00052480 MOV R12, R9 .text:00052484 MOV R0, R7 .text:00052488 MOV R1, R5 .text:0005248C BL fix_bad_pc24.111 .text:00052490 RSB R0, R7, R0 .text:00052494 ADD R0, R0, R4 .text:00052498 AND R2, R0, #0xFE000000 .text:0005249C CMP R2, #0xFE000000 .text:000524A0 CMPNE R2, #0 .text:000524A4 BEQ loc_524B8 .text:000524A8 LDR R1, [R10,#4] .text:000524AC LDR R2, =aR_arm_pc24Relo ; "R_ARM_PC24 relocation out of range" .text:000524B0 MOV R0, #0 .text:000524B4 BL _dl_signal_error .text:000524B8 ; --------------------------------------------------------------------------- .text:000524B8 .text:000524B8 loc_524B8 ; CODE XREF: .text:0005247Cj .text:000524B8 ; .text:000524A4j .text:000524B8 MOV R0, R0,LSR#2 .text:000524BC LDR R2, [R7] .text:000524C0 BIC R3, R0, #0xFF000000 .text:000524C4 AND R2, R2, #0xFF000000 .text:000524C8 ORR R5, R2, R3 .text:000524CC .text:000524CC loc_524CC ; CODE XREF: .text:00052340j .text:000524CC ; DATA XREF: .text:00052348o .text:000524CC STR R5, [R7] ; jumptable 00052340 cases 20,21 .text:000524D0 B loc_524E4 .text:000524D4 ; --------------------------------------------------------------------------- .text:000524D4 .text:000524D4 loc_524D4 ; CODE XREF: .text:00052340j .text:000524D4 ; .text:00052344j .text:000524D4 ; DATA XREF: ... .text:000524D4 MOV R0, R10 ; jumptable 00052340 default case .text:000524D8 LDRB R1, [R6,#4] .text:000524DC MOV R2, #0 .text:000524E0 BL _dl_reloc_bad_type .text:000524E4 .text:000524E4 loc_524E4 ; CODE XREF: .text:00052250j .text:000524E4 ; .text:00052258j ... .text:000524E4 LDR R3, [R11,#-0x5C] .text:000524E8 ADD R6, R6, #8 .text:000524EC CMP R6, R3 .text:000524F0 BCC loc_521EC .text:000524F4 B loc_5278C .text:000524F8 ; --------------------------------------------------------------------------- .text:000524F8 .text:000524F8 loc_524F8 ; CODE XREF: .text:000521CCj .text:000524F8 LDR R5, [R11,#-0x5C] .text:000524FC ADD R0, R0, #1 .text:00052500 STR R0, [R11,#-0x74] .text:00052504 CMP R6, R5 .text:00052508 BCS loc_5278C .text:0005250C .text:0005250C loc_5250C ; CODE XREF: .text:00052788j .text:0005250C LDR R3, [R6,#4] .text:00052510 LDR R2, [R10] .text:00052514 LDR R1, [R6] .text:00052518 AND R0, R3, #0xFF .text:0005251C CMP R0, #0x17 .text:00052520 MOV R3, R3,LSR#8 .text:00052524 MOV R12, R3,LSL#4 .text:00052528 LDR R3, [R11,#-0x60] .text:0005252C ADD R7, R2, R1 .text:00052530 ADD R8, R3, R12 .text:00052534 STR R8, [R11,#-0x58] .text:00052538 BNE loc_52554 .text:0005253C LDR R3, =0 .text:00052540 CMP R10, R3 .text:00052544 LDRNE R3, [R2,R1] .text:00052548 ADDNE R3, R3, R2 .text:0005254C STRNE R3, [R2,R1] .text:00052550 B loc_5277C .text:00052554 ; --------------------------------------------------------------------------- .text:00052554 .text:00052554 loc_52554 ; CODE XREF: .text:00052538j .text:00052554 CMP R0, #0 .text:00052558 BEQ loc_5277C .text:0005255C LDRB R3, [R8,#0xC] .text:00052560 MOVS R3, R3,LSR#4 .text:00052564 BEQ loc_52598 .text:00052568 LDR R5, [R11,#-0x60] .text:0005256C LDR R3, [R5,R12] .text:00052570 MOV R12, #0 .text:00052574 STMEA SP, {R0,R12} .text:00052578 LDR R0, [R9,#-4] .text:0005257C LDR R1, [R9,#-8] .text:00052580 ADD R0, R0, R3 .text:00052584 LDR R3, [R9,#-0xC] .text:00052588 SUB R2, R11, #0x58 .text:0005258C BL _dl_lookup_symbol .text:00052590 MOV R5, R0 .text:00052594 B loc_525A0 .text:00052598 ; --------------------------------------------------------------------------- .text:00052598 .text:00052598 loc_52598 ; CODE XREF: .text:00052564j .text:00052598 LDR R3, [R9,#-8] .text:0005259C LDR R5, [R3] .text:000525A0 .text:000525A0 loc_525A0 ; CODE XREF: .text:00052594j .text:000525A0 LDR R3, [R11,#-0x58] .text:000525A4 CMP R3, #0 .text:000525A8 MOV R2, R3 .text:000525AC LDRNE R3, [R2,#4] .text:000525B0 ADDNE R5, R5, R3 .text:000525B4 LDRB R3, [R6,#4] .text:000525B8 SUB R3, R3, #1 .text:000525BC CMP R3, #0x15 ; switch 22 cases .text:000525C0 LDRLS PC, [PC,R3,LSL#2] ; switch jump .text:000525C4 B loc_52754 ; jumptable 000525C0 default case .text:000525C4 ; --------------------------------------------------------------------------- .text:000525C8 DCD loc_526D0 ; jump table for switch statement .text:000525C8 DCD loc_526A8 .text:000525C8 DCD loc_52754 .text:000525C8 DCD loc_52754 .text:000525C8 DCD loc_52754 .text:000525C8 DCD loc_52754 .text:000525C8 DCD loc_52754 .text:000525C8 DCD loc_52754 .text:000525C8 DCD loc_52754 .text:000525C8 DCD loc_52754 .text:000525C8 DCD loc_52754 .text:000525C8 DCD loc_52754 .text:000525C8 DCD loc_52754 .text:000525C8 DCD loc_52754 .text:000525C8 DCD loc_52754 .text:000525C8 DCD loc_52754 .text:000525C8 DCD loc_52754 .text:000525C8 DCD loc_52754 .text:000525C8 DCD loc_52754 .text:000525C8 DCD loc_52620 .text:000525C8 DCD loc_5274C .text:000525C8 DCD loc_5274C .text:00052620 ; --------------------------------------------------------------------------- .text:00052620 .text:00052620 loc_52620 ; CODE XREF: .text:000525C0j .text:00052620 ; DATA XREF: .text:000525C8o .text:00052620 CMP R2, #0 ; jumptable 000525C0 case 19 .text:00052624 BEQ loc_5277C .text:00052628 LDR R0, [R2,#8] .text:0005262C LDR R1, [R8,#8] .text:00052630 CMP R0, R1 .text:00052634 BHI loc_52650 .text:00052638 LDR R3, =_dl_verbose .text:0005263C LDR R2, [R3] .text:00052640 CMP R2, #0 .text:00052644 BEQ loc_52684 .text:00052648 CMP R0, R1 .text:0005264C BCS loc_52684 .text:00052650 .text:00052650 loc_52650 ; CODE XREF: .text:00052634j .text:00052650 LDR R4, =aProgramNameU_0 ; "<program name unknown>" .text:00052654 LDR R1, =aSSymbolSHasDif ; "%s: Symbol `%s' has different size in s"... .text:00052658 LDR R3, [R10,#0x2C] .text:0005265C LDR R2, =_dl_argv .text:00052660 LDR LR, [R3,#4] .text:00052664 LDR R12, [R2] .text:00052668 LDR R3, [R8] .text:0005266C MOV R0, #2 .text:00052670 LDR R2, [R12] .text:00052674 ADD R3, LR, R3 .text:00052678 CMP R2, #0 .text:0005267C MOVEQ R2, R4 .text:00052680 BL _dl_dprintf .text:00052684 .text:00052684 loc_52684 ; CODE XREF: .text:00052644j .text:00052684 ; .text:0005264Cj .text:00052684 LDR R3, [R11,#-0x58] .text:00052688 LDR R12, [R8,#8] .text:0005268C MOV R0, R7 .text:00052690 LDR R2, [R3,#8] .text:00052694 MOV R1, R5 .text:00052698 CMP R12, R2 .text:0005269C MOVCC R2, R12 .text:000526A0 BL memcpy .text:000526A4 B loc_5277C .text:000526A8 ; --------------------------------------------------------------------------- .text:000526A8 .text:000526A8 loc_526A8 ; CODE XREF: .text:000525C0j .text:000526A8 ; DATA XREF: .text:000525C8o .text:000526A8 LDR R3, =0 ; jumptable 000525C0 case 1 .text:000526AC CMP R10, R3 .text:000526B0 LDREQ R2, [R10] .text:000526B4 LDREQ R3, [R8,#4] .text:000526B8 ADDEQ R2, R2, R3 .text:000526BC RSBEQ R5, R2, R5 .text:000526C0 LDR R3, [R7] .text:000526C4 ADD R3, R3, R5 .text:000526C8 STR R3, [R7] .text:000526CC B loc_5277C .text:000526D0 ; --------------------------------------------------------------------------- .text:000526D0 .text:000526D0 loc_526D0 ; CODE XREF: .text:000525C0j .text:000526D0 ; DATA XREF: .text:000525C8o .text:000526D0 LDR R3, [R7] ; jumptable 000525C0 case 0 .text:000526D4 BIC R1, R3, #0xFF000000 .text:000526D8 TST R3, #0x800000 .text:000526DC ORR R2, R1, #0xFF000000 .text:000526E0 RSB R3, R7, R5 .text:000526E4 MOVNE R4, R2,LSL#2 .text:000526E8 MOVEQ R4, R1,LSL#2 .text:000526EC ADD R0, R3, R4 .text:000526F0 AND R2, R0, #0xFE000000 .text:000526F4 CMP R2, #0xFE000000 .text:000526F8 CMPNE R2, #0 .text:000526FC BEQ loc_52738 .text:00052700 MOV R12, R9 .text:00052704 MOV R0, R7 .text:00052708 MOV R1, R5 .text:0005270C BL fix_bad_pc24.111 .text:00052710 RSB R0, R7, R0 .text:00052714 ADD R0, R0, R4 .text:00052718 AND R2, R0, #0xFE000000 .text:0005271C CMP R2, #0xFE000000 .text:00052720 CMPNE R2, #0 .text:00052724 BEQ loc_52738 .text:00052728 LDR R1, [R10,#4] .text:0005272C LDR R2, =aR_arm_pc24Relo ; "R_ARM_PC24 relocation out of range" .text:00052730 MOV R0, #0 .text:00052734 BL _dl_signal_error .text:00052738 ; --------------------------------------------------------------------------- .text:00052738 .text:00052738 loc_52738 ; CODE XREF: .text:000526FCj .text:00052738 ; .text:00052724j .text:00052738 MOV R0, R0,LSR#2 .text:0005273C LDR R2, [R7] .text:00052740 BIC R3, R0, #0xFF000000 .text:00052744 AND R2, R2, #0xFF000000 .text:00052748 ORR R5, R2, R3 .text:0005274C .text:0005274C loc_5274C ; CODE XREF: .text:000525C0j .text:0005274C ; DATA XREF: .text:000525C8o .text:0005274C STR R5, [R7] ; jumptable 000525C0 cases 20,21 .text:00052750 B loc_5277C .text:00052754 ; --------------------------------------------------------------------------- .text:00052754 .text:00052754 loc_52754 ; CODE XREF: .text:000525C0j .text:00052754 ; .text:000525C4j .text:00052754 ; DATA XREF: ... .text:00052754 MOV R0, R10 ; jumptable 000525C0 default case .text:00052758 LDRB R1, [R6,#4] .text:0005275C MOV R2, #0 .text:00052760 BL _dl_reloc_bad_type .text:00052760 ; --------------------------------------------------------------------------- .text:00052764 off_52764 DCD _dl_verbose ; DATA XREF: .text:000523B8r .text:00052764 ; .text:00052638r .text:00052768 off_52768 DCD aProgramNameU_0 ; DATA XREF: .text:loc_523D0r .text:00052768 ; .text:loc_52650r .text:00052768 ; "<program name unknown>" .text:0005276C off_5276C DCD aSSymbolSHasDif ; DATA XREF: .text:000523D4r .text:0005276C ; .text:00052654r .text:0005276C ; "%s: Symbol `%s' has different size in s"... .text:00052770 off_52770 DCD _dl_argv ; DATA XREF: .text:000523DCr .text:00052770 ; .text:0005265Cr .text:00052774 dword_52774 DCD 0 ; DATA XREF: .text:loc_52428r .text:00052774 ; .text:0005253Cr ... .text:00052778 off_52778 DCD aR_arm_pc24Relo ; DATA XREF: .text:000524ACr .text:00052778 ; .text:0005272Cr .text:00052778 ; "R_ARM_PC24 relocation out of range" .text:0005277C ; --------------------------------------------------------------------------- .text:0005277C .text:0005277C loc_5277C ; CODE XREF: .text:00052550j .text:0005277C ; .text:00052558j ... .text:0005277C LDR R0, [R11,#-0x5C] .text:00052780 ADD R6, R6, #8 .text:00052784 CMP R6, R0 .text:00052788 BCC loc_5250C .text:0005278C .text:0005278C loc_5278C ; CODE XREF: .text:00052174j .text:0005278C ; .text:000521B4j ... .text:0005278C LDR R0, [R11,#-0x74] .text:00052790 CMP R0, #1 .text:00052794 BLE loc_52134 .text:00052798 LDR R1, =_dl_profile .text:0005279C LDR R3, [R1] .text:000527A0 CMP R3, #0 .text:000527A4 BEQ loc_5283C .text:000527A8 LDR LR, [R11,#-0x30] .text:000527AC LDR R3, [LR,#0x20] .text:000527B0 CMP R3, #0 .text:000527B4 BNE loc_527E8 .text:000527B8 LDR R2, =_dl_argv .text:000527BC LDR R12, =aProgramNameU_0 ; "<program name unknown>" .text:000527C0 LDR R1, =aSProfilerFound ; "%s: profiler found no PLTREL in object "... .text:000527C4 LDR R3, [R2] .text:000527C8 LDR R2, [R3] .text:000527CC MOV R0, #2 .text:000527D0 LDR R3, [LR,#4] .text:000527D4 CMP R2, #0 .text:000527D8 MOVEQ R2, R12 .text:000527DC BL _dl_dprintf .text:000527E0 MOV R0, #0x7F .text:000527E4 BL _exit .text:000527E8 ; --------------------------------------------------------------------------- .text:000527E8 .text:000527E8 loc_527E8 ; CODE XREF: .text:000527B4j .text:000527E8 LDR R3, [R11,#-0x30] .text:000527EC LDR R2, [R3,#0x20] .text:000527F0 LDR R1, [R2,#4] .text:000527F4 MOV R0, #4 .text:000527F8 BL calloc .text:000527FC LDR LR, [R11,#-0x30] .text:00052800 CMP R0, #0 .text:00052804 STR R0, [LR,#0x140] .text:00052808 BNE loc_5283C .text:0005280C LDR R2, =_dl_argv .text:00052810 LDR R12, =aProgramNameU_0 ; "<program name unknown>" .text:00052814 LDR R1, =aSProfilerOutOf ; "%s: profiler out of memory shadowing PL"... .text:00052818 LDR R3, [R2] .text:0005281C LDR R2, [R3] .text:00052820 MOV R0, #2 .text:00052824 LDR R3, [LR,#4] .text:00052828 CMP R2, #0 .text:0005282C MOVEQ R2, R12 .text:00052830 BL _dl_dprintf .text:00052834 MOV R0, #0x7F .text:00052838 BL _exit .text:0005283C ; --------------------------------------------------------------------------- .text:0005283C .text:0005283C loc_5283C ; CODE XREF: .text:000527A4j .text:0005283C ; .text:00052808j .text:0005283C LDR R3, [R11,#-0x30] .text:00052840 LDRB R2, [R3,#0x12C] .text:00052844 ORR R2, R2, #4 .text:00052848 STRB R2, [R3,#0x12C] .text:0005284C LDR R12, [R11,#-0x30] .text:00052850 LDR R3, [R12,#0x70] .text:00052854 CMP R3, #0 .text:00052858 BEQ locret_5293C .text:0005285C LDRB R3, [R12,#0xF4] .text:00052860 LDRB R2, [R12,#0xF5] .text:00052864 LDR R5, [R12,#0xEC] .text:00052868 ORR R3, R3, R2,LSL#8 .text:0005286C ADD R3, R5, R3,LSL#5 .text:00052870 CMP R5, R3 .text:00052874 BCS locret_5293C .text:00052878 .text:00052878 loc_52878 ; CODE XREF: .text:00052938j .text:00052878 LDR R3, [R5] .text:0005287C CMP R3, #1 .text:00052880 BNE loc_52918 .text:00052884 LDR R3, [R5,#0x18] .text:00052888 TST R3, #2 .text:0005288C BNE loc_52918 .text:00052890 LDR R0, =_dl_pf_to_prot .text:00052894 LDR R1, =_dl_pagesize .text:00052898 AND R3, R3, #5 .text:0005289C LDRB R2, [R0,R3] .text:000528A0 LDR LR, [R1] .text:000528A4 LDR R1, [R5,#8] .text:000528A8 LDR R0, [R12] .text:000528AC LDR R3, [R5,#0x14] .text:000528B0 RSB R4, LR, #0 .text:000528B4 AND R12, R1, R4 .text:000528B8 ADD R0, R0, R12 .text:000528BC ADD R1, R1, R3 .text:000528C0 ADD R1, R1, LR .text:000528C4 SUB R1, R1, #1 .text:000528C8 AND R1, R1, R4 .text:000528CC RSB R1, R12, R1 .text:000528D0 BL mprotect .text:000528D4 CMP R0, #0 .text:000528D8 BGE loc_52914 .text:000528DC BL __errno_location .text:000528E0 LDR R0, [R0] .text:000528E4 LDR R3, [R11,#-0x30] .text:000528E8 LDR R2, =aCanTRestoreSeg ; "can't restore segment prot after reloc" .text:000528EC LDR R1, [R3,#4] .text:000528F0 BL _dl_signal_error .text:000528F0 ; --------------------------------------------------------------------------- .text:000528F4 off_528F4 DCD _dl_profile ; DATA XREF: .text:00052798r .text:000528F8 off_528F8 DCD _dl_argv ; DATA XREF: .text:000527B8r .text:000528F8 ; .text:0005280Cr .text:000528FC off_528FC DCD aProgramNameU_0 ; DATA XREF: .text:000527BCr .text:000528FC ; .text:00052810r .text:000528FC ; "<program name unknown>" .text:00052900 off_52900 DCD aSProfilerFound ; DATA XREF: .text:000527C0r .text:00052900 ; "%s: profiler found no PLTREL in object "... .text:00052904 off_52904 DCD aSProfilerOutOf ; DATA XREF: .text:00052814r .text:00052904 ; "%s: profiler out of memory shadowing PL"... .text:00052908 off_52908 DCD _dl_pf_to_prot ; DATA XREF: .text:00052890r .text:0005290C off_5290C DCD _dl_pagesize ; DATA XREF: .text:00052894r .text:00052910 off_52910 DCD aCanTRestoreSeg ; DATA XREF: .text:000528E8r .text:00052910 ; "can't restore segment prot after reloc" .text:00052914 ; --------------------------------------------------------------------------- .text:00052914 .text:00052914 loc_52914 ; CODE XREF: .text:000528D8j .text:00052914 SVC 0x9F0002 .text:00052918 .text:00052918 loc_52918 ; CODE XREF: .text:00052880j .text:00052918 ; .text:0005288Cj .text:00052918 LDR R12, [R11,#-0x30] .text:0005291C LDRB R3, [R12,#0xF4] .text:00052920 LDRB R1, [R12,#0xF5] .text:00052924 ADD R5, R5, #0x20 .text:00052928 LDR R2, [R12,#0xEC] .text:0005292C ORR R3, R3, R1,LSL#8 .text:00052930 ADD R2, R2, R3,LSL#5 .text:00052934 CMP R5, R2 .text:00052938 BCC loc_52878 .text:0005293C .text:0005293C locret_5293C ; CODE XREF: .text:00051F08j .text:0005293C ; .text:00052858j ... .text:0005293C LDMDB R11, {R4-R11,SP,PC} .text:00052940 ; --------------------------------------------------------------------------- .text:00052940 .text:00052940 EXPORT _dl_reloc_bad_type .text:00052940 _dl_reloc_bad_type ; CODE XREF: .text:000521A0p .text:00052940 ; .text:000524E0p ... .text:00052940 MOV R12, SP .text:00052944 STMFD SP!, {R11,R12,LR,PC} .text:00052948 SUB R11, R12, #4 .text:0005294C MOV LR, R0 .text:00052950 AND R3, R1, #0xFF .text:00052954 SUBS R12, R2, #0 .text:00052958 BEQ loc_52984 .text:0005295C LDR R0, =_itoa_lower_digits .text:00052960 LDR R2, =msg.146 ; "unexpected PLT reloc type 0x??" .text:00052964 LDRB R3, [R0,R3,LSR#4] .text:00052968 STRB R3, [R2,#(msg.146+0x1C - 0x6BD94)] .text:0005296C AND R1, R1, #0xF .text:00052970 LDRB R3, [R0,R1] .text:00052974 STRB R3, [R2,#(msg.146+0x1D - 0x6BD94)] .text:00052978 LDR R1, [LR,#4] .text:0005297C MOV R0, #0 .text:00052980 BL _dl_signal_error .text:00052984 ; --------------------------------------------------------------------------- .text:00052984 .text:00052984 loc_52984 ; CODE XREF: .text:00052958j .text:00052984 LDR R0, =_itoa_lower_digits .text:00052988 LDR R2, =msg.147 ; "unexpected reloc type 0x??" .text:0005298C LDRB R3, [R0,R3,LSR#4] .text:00052990 STRB R3, [R2,#(msg.147+0x18 - 0x6BDB4)] .text:00052994 AND R1, R1, #0xF .text:00052998 LDRB R3, [R0,R1] .text:0005299C STRB R3, [R2,#(msg.147+0x19 - 0x6BDB4)] .text:000529A0 LDR R1, [LR,#4] .text:000529A4 MOV R0, R12 .text:000529A8 BL _dl_signal_error .text:000529A8 ; --------------------------------------------------------------------------- .text:000529AC off_529AC DCD _itoa_lower_digits ; DATA XREF: .text:0005295Cr .text:000529AC ; .text:loc_52984r .text:000529B0 off_529B0 DCD msg.146 ; DATA XREF: .text:00052960r .text:000529B0 ; "unexpected PLT reloc type 0x??" .text:000529B4 off_529B4 DCD msg.147 ; DATA XREF: .text:00052988r .text:000529B4 ; "unexpected reloc type 0x??" .text:000529B8 ; --------------------------------------------------------------------------- .text:000529B8 LDMDB R11, {R11,SP,PC} .text:000529BC .text:000529BC ; =============== S U B R O U T I N E ======================================= .text:000529BC .text:000529BC ; Attributes: bp-based frame .text:000529BC .text:000529BC openaux ; DATA XREF: .text:00052D74o .text:000529BC ; .text:00052FC0o ... .text:000529BC .text:000529BC var_18 = -0x18 .text:000529BC var_14 = -0x14 .text:000529BC .text:000529BC MOV R12, SP .text:000529C0 STMFD SP!, {R4,R11,R12,LR,PC} .text:000529C4 MOV R4, R0 .text:000529C8 SUB SP, SP, #8 .text:000529CC LDMIA R4, {R0,R2} .text:000529D0 LDRB R3, [R0,#0x12C] .text:000529D4 STR R2, [SP,#0x18+var_18] .text:000529D8 MOV R2, #0 .text:000529DC STR R2, [SP,#0x18+var_14] .text:000529E0 SUB R11, R12, #4 .text:000529E4 ANDS R3, R3, #3 .text:000529E8 LDR R1, [R4,#0xC] .text:000529EC MOVEQ R3, #1 .text:000529F0 BL _dl_map_object .text:000529F4 STR R0, [R4,#0x10] .text:000529F8 LDMDB R11, {R4,R11,SP,PC} .text:000529F8 ; End of function openaux .text:000529F8 .text:000529FC ; --------------------------------------------------------------------------- .text:000529FC .text:000529FC EXPORT _dl_map_object_deps .text:000529FC _dl_map_object_deps ; CODE XREF: dl_open_worker+228p .text:000529FC MOV R12, SP .text:00052A00 STMFD SP!, {R4-R12,LR,PC} .text:00052A04 SUB R11, R12, #4 .text:00052A08 MOV R5, R2 .text:00052A0C ADD R2, R5, #2 .text:00052A10 MOV R2, R2,LSL#7 .text:00052A14 SUB SP, SP, #0x5C .text:00052A18 SUB SP, SP, R2,LSR#3 .text:00052A1C STR SP, [R11,#-0x2C] .text:00052A20 MOV R12, #0 .text:00052A24 STR R12, [R11,#-0x30] .text:00052A28 STR R12, [SP,R12] .text:00052A2C STR R0, [R11,#-0x54] .text:00052A30 MOV R2, SP .text:00052A34 STR R0, [R2,#4] .text:00052A38 LDR R4, [R11,#-0x2C] .text:00052A3C ADD R2, R12, #0x10 .text:00052A40 ADD R0, R4, R2 .text:00052A44 STR R0, [R4,#8] .text:00052A48 LDR LR, [R11,#-0x2C] .text:00052A4C ADD R2, LR, R2 .text:00052A50 STR R2, [LR,#0xC] .text:00052A54 LDR R0, [R11,#-0x54] .text:00052A58 MOV R6, R12 .text:00052A5C LDRB R2, [R0,#0x12C] .text:00052A60 ADD R12, R12, #1 .text:00052A64 STR R12, [R11,#-0x30] .text:00052A68 BIC R2, R2, #0x40 .text:00052A6C ORR R2, R2, #0x20 .text:00052A70 STRB R2, [R0,#0x12C] .text:00052A74 CMP R6, R5 .text:00052A78 MOV R7, R1 .text:00052A7C STR R3, [R11,#-0x58] .text:00052A80 BCS loc_52AF0 .text:00052A84 MOV R8, R6 .text:00052A88 .text:00052A88 loc_52A88 ; CODE XREF: .text:00052AECj .text:00052A88 LDR R4, [R7,R6,LSL#2] .text:00052A8C LDR LR, [R11,#-0x30] .text:00052A90 LDR R2, [R11,#-0x2C] .text:00052A94 MOV R1, LR,LSL#4 .text:00052A98 STR R8, [R2,R1] .text:00052A9C LDR R3, [R11,#-0x2C] .text:00052AA0 ADD R3, R3, #4 .text:00052AA4 STR R4, [R3,R1] .text:00052AA8 LDR R2, [R11,#-0x2C] .text:00052AAC ADD R12, R1, #0x10 .text:00052AB0 ADD R0, R2, #8 .text:00052AB4 ADD R2, R2, R12 .text:00052AB8 STR R2, [R0,R1] .text:00052ABC LDR R3, [R11,#-0x2C] .text:00052AC0 ADD R2, R3, #0xC .text:00052AC4 ADD R3, R3, R12 .text:00052AC8 STR R3, [R2,R1] .text:00052ACC ADD LR, LR, #1 .text:00052AD0 STR LR, [R11,#-0x30] .text:00052AD4 ADD R6, R6, #1 .text:00052AD8 LDRB R3, [R4,#0x12C] .text:00052ADC CMP R6, R5 .text:00052AE0 BIC R3, R3, #0x40 .text:00052AE4 ORR R3, R3, #0x20 .text:00052AE8 STRB R3, [R4,#0x12C] .text:00052AEC BCC loc_52A88 .text:00052AF0 .text:00052AF0 loc_52AF0 ; CODE XREF: .text:00052A80j .text:00052AF0 LDR R1, [R11,#-0x30] .text:00052AF4 MOV R4, #0 .text:00052AF8 LDR R2, [R11,#-0x2C] .text:00052AFC SUB R0, R1, #1 .text:00052B00 MOV R0, R0,LSL#4 .text:00052B04 ADD R2, R2, #8 .text:00052B08 STR R4, [R2,R0] .text:00052B0C LDR R3, [R11,#-0x2C] .text:00052B10 ADD R3, R3, #0xC .text:00052B14 STR R4, [R3,R0] .text:00052B18 STR R1, [R11,#-0x64] .text:00052B1C MOV R1, R1,LSL#4 .text:00052B20 LDR R3, [R11,#-0x2C] .text:00052B24 SUB R1, R1, #0x10 .text:00052B28 ADD R3, R3, R1 .text:00052B2C STR R3, [R11,#-0x60] .text:00052B30 BL __errno_location .text:00052B34 LDR R0, [R0] .text:00052B38 STR R4, [R11,#-0x6C] .text:00052B3C STR R0, [R11,#-0x68] .text:00052B40 STR R4, [R11,#-0x4C] .text:00052B44 BL __errno_location .text:00052B48 LDR R1, [R11,#-0x6C] .text:00052B4C STR R1, [R0] .text:00052B50 LDR R8, [R11,#-0x2C] .text:00052B54 LDR R2, [R11,#-0x60] .text:00052B58 CMP R8, R4 .text:00052B5C STR R2, [R11,#-0x5C] .text:00052B60 BEQ loc_53338 .text:00052B64 .text:00052B64 loc_52B64 ; CODE XREF: .text:00053334j .text:00052B64 MOV R3, #1 .text:00052B68 STR R3, [R8] .text:00052B6C LDR R6, [R8,#4] .text:00052B70 SUB R3, R3, #1 .text:00052B74 STR R3, [R11,#-0x70] .text:00052B78 LDR R4, [R11,#-0x70] .text:00052B7C LDR R3, [R6,#0xF8] .text:00052B80 STR R4, [R11,#-0x74] .text:00052B84 CMP R3, #0 .text:00052B88 BNE loc_52BCC .text:00052B8C LDR R5, [R11,#-0x54] .text:00052B90 LDR R2, [R6,#0x184] .text:00052B94 SUBS R3, R6, R5 .text:00052B98 MOVNE R3, #1 .text:00052B9C CMP R2, #0 .text:00052BA0 MOVNE R3, #0 .text:00052BA4 CMP R3, #0 .text:00052BA8 BEQ loc_52BCC .text:00052BAC LDR R3, [R6,#0xF4] .text:00052BB0 MOVS R3, R3,LSR#16 .text:00052BB4 BEQ loc_52BCC .text:00052BB8 LDRB R3, [R6,#0xF6] .text:00052BBC LDRB R2, [R6,#0xF7] .text:00052BC0 ORR R3, R3, R2,LSL#8 .text:00052BC4 SUB SP, SP, R3,LSL#2 .text:00052BC8 STR SP, [R11,#-0x70] .text:00052BCC .text:00052BCC loc_52BCC ; CODE XREF: .text:00052B88j .text:00052BCC ; .text:00052BA8j ... .text:00052BCC LDR R3, [R6,#0x1C] .text:00052BD0 CMP R3, #0 .text:00052BD4 BNE loc_52BF0 .text:00052BD8 LDR R3, [R6,#0xE8] .text:00052BDC CMP R3, #0 .text:00052BE0 BNE loc_52BF0 .text:00052BE4 LDR R3, [R6,#0xE0] .text:00052BE8 CMP R3, #0 .text:00052BEC BEQ loc_532C0 .text:00052BF0 .text:00052BF0 loc_52BF0 ; CODE XREF: .text:00052BD4j .text:00052BF0 ; .text:00052BE0j .text:00052BF0 LDR R3, [R6,#0x2C] .text:00052BF4 LDR R3, [R3,#4] .text:00052BF8 STR R6, [R11,#-0x44] .text:00052BFC LDR R0, [R11,#-0x58] .text:00052C00 STR R0, [R11,#-0x40] .text:00052C04 STR R3, [R11,#-0x78] .text:00052C08 STR R3, [R11,#-0x3C] .text:00052C0C LDR R1, [R6,#8] .text:00052C10 STR R1, [R11,#-0x7C] .text:00052C14 LDR R3, [R1] .text:00052C18 MOV R7, R8 .text:00052C1C CMP R3, #0 .text:00052C20 BEQ loc_532C0 .text:00052C24 .text:00052C24 loc_52C24 ; CODE XREF: .text:000532BCj .text:00052C24 LDR R2, [R11,#-0x7C] .text:00052C28 LDR R3, [R2] .text:00052C2C CMP R3, #1 .text:00052C30 BNE loc_52E0C .text:00052C34 LDR R3, [R2,#4] .text:00052C38 MOV R10, #0 .text:00052C3C LDR R5, [R11,#-0x78] .text:00052C40 MOV R1, #0x24 .text:00052C44 ADD R4, R5, R3 .text:00052C48 MOV R0, R4 .text:00052C4C BL strchr .text:00052C50 CMP R0, #0 .text:00052C54 STR R4, [R11,#-0x80] .text:00052C58 BEQ loc_52C68 .text:00052C5C MOV R1, R10 .text:00052C60 BL _dl_dst_count .text:00052C64 MOV R10, R0 .text:00052C68 .text:00052C68 loc_52C68 ; CODE XREF: .text:00052C58j .text:00052C68 CMP R10, #0 .text:00052C6C BEQ loc_52D68 .text:00052C70 LDR R3, =__libc_enable_secure .text:00052C74 LDR R5, [R3] .text:00052C78 CMP R5, #0 .text:00052C7C BEQ loc_52C90 .text:00052C80 MOV R0, #0 .text:00052C84 LDR R2, =aDstNotAllowe_0 ; "DST not allowed in SUID/SGID programs" .text:00052C88 MOV R1, R4 .text:00052C8C BL _dl_signal_error .text:00052C90 ; --------------------------------------------------------------------------- .text:00052C90 .text:00052C90 loc_52C90 ; CODE XREF: .text:00052C7Cj .text:00052C90 MOV R0, R4 .text:00052C94 BL strlen .text:00052C98 LDR R3, [R6,#0x148] .text:00052C9C MOV R9, R0 .text:00052CA0 CMP R3, #0 .text:00052CA4 BNE loc_52CE8 .text:00052CA8 LDR R3, [R6,#4] .text:00052CAC LDRB R2, [R3] .text:00052CB0 CMP R2, #0 .text:00052CB4 BEQ loc_52CCC .text:00052CB8 LDR R0, =aLL_name00_0 ; "(l)->l_name[0] == '\\0'" .text:00052CBC LDR R1, =aDlDeps_c ; "dl-deps.c" .text:00052CC0 LDR R3, =a_dl_map_obje_0 ; "_dl_map_object_deps" .text:00052CC4 MOV R2, #0xF3 .text:00052CC8 BL __assert_fail .text:00052CCC ; --------------------------------------------------------------------------- .text:00052CCC .text:00052CCC loc_52CCC ; CODE XREF: .text:00052CB4j .text:00052CCC BL _dl_get_origin .text:00052CD0 CMP R0, #0 .text:00052CD4 CMNNE R0, #1 .text:00052CD8 STR R0, [R6,#0x148] .text:00052CDC BEQ loc_52CFC .text:00052CE0 BL strlen .text:00052CE4 B loc_52D00 .text:00052CE8 ; --------------------------------------------------------------------------- .text:00052CE8 .text:00052CE8 loc_52CE8 ; CODE XREF: .text:00052CA4j .text:00052CE8 CMN R3, #1 .text:00052CEC BEQ loc_52CFC .text:00052CF0 MOV R0, R3 .text:00052CF4 BL strlen .text:00052CF8 B loc_52D00 .text:00052CFC ; --------------------------------------------------------------------------- .text:00052CFC .text:00052CFC loc_52CFC ; CODE XREF: .text:00052CDCj .text:00052CFC ; .text:00052CECj .text:00052CFC MOV R0, R5 .text:00052D00 .text:00052D00 loc_52D00 ; CODE XREF: .text:00052CE4j .text:00052D00 ; .text:00052CF8j .text:00052D00 LDR R2, =_dl_platformlen .text:00052D04 LDR R3, [R2] .text:00052D08 CMP R3, R0 .text:00052D0C MOVCC R3, R0 .text:00052D10 SUB R3, R3, #7 .text:00052D14 MLA R2, R3, R10, R9 .text:00052D18 MOV R1, R4 .text:00052D1C MOV R0, R6 .text:00052D20 MOV R3, #0 .text:00052D24 ADD R2, R2, #3 .text:00052D28 BIC R2, R2, #3 .text:00052D2C RSB SP, R2, SP .text:00052D30 MOV R2, SP .text:00052D34 BL _dl_dst_substitute .text:00052D38 MOV R4, R0 .text:00052D3C LDRB R3, [R4] .text:00052D40 CMP R3, #0 .text:00052D44 BNE loc_52D68 .text:00052D48 LDR R3, =_dl_debug_mask .text:00052D4C LDR R2, [R3] .text:00052D50 TST R2, #1 .text:00052D54 BEQ loc_532AC .text:00052D58 LDR R0, =aCannotLoadAuxi ; "cannot load auxiliary `%s' because ofem"... .text:00052D5C LDR R1, [R11,#-0x80] .text:00052D60 BL _dl_debug_printf .text:00052D64 B loc_532AC .text:00052D68 ; --------------------------------------------------------------------------- .text:00052D68 .text:00052D68 loc_52D68 ; CODE XREF: .text:00052C6Cj .text:00052D68 ; .text:00052D44j .text:00052D68 STR R4, [R11,#-0x38] .text:00052D6C SUB R0, R11, #0x48 .text:00052D70 SUB R1, R11, #0x4C .text:00052D74 LDR R2, =openaux .text:00052D78 SUB R3, R11, #0x44 .text:00052D7C BL _dl_catch_error .text:00052D80 CMP R0, #0 .text:00052D84 BNE loc_5309C .text:00052D88 SUB SP, SP, #0x10 .text:00052D8C STR R0, [SP,#0xC] .text:00052D90 LDR R1, [R11,#-0x34] .text:00052D94 STR R1, [SP,#4] .text:00052D98 LDR R2, [R11,#-0x60] .text:00052D9C STR SP, [R2,#0xC] .text:00052DA0 LDR R3, [R11,#-0x64] .text:00052DA4 ADD R3, R3, #1 .text:00052DA8 STR R3, [R11,#-0x64] .text:00052DAC LDRB R3, [R1,#0x12C] .text:00052DB0 STR SP, [R11,#-0x60] .text:00052DB4 MOV R3, R3,LSR#5 .text:00052DB8 ANDS R3, R3, #3 .text:00052DBC BNE loc_52DF0 .text:00052DC0 STR R3, [SP] .text:00052DC4 STR R3, [SP,#8] .text:00052DC8 LDR R4, [R11,#-0x5C] .text:00052DCC STR SP, [R4,#8] .text:00052DD0 LDR R3, [R11,#-0x30] .text:00052DD4 ADD R3, R3, #1 .text:00052DD8 STR R3, [R11,#-0x30] .text:00052DDC LDRB R2, [R1,#0x12C] .text:00052DE0 STR SP, [R11,#-0x5C] .text:00052DE4 BIC R2, R2, #0x40 .text:00052DE8 ORR R2, R2, #0x20 .text:00052DEC STRB R2, [R1,#0x12C] .text:00052DF0 .text:00052DF0 loc_52DF0 ; CODE XREF: .text:00052DBCj .text:00052DF0 LDR R5, [R11,#-0x70] .text:00052DF4 CMP R5, #0 .text:00052DF8 LDRNE R0, [R11,#-0x74] .text:00052DFC STRNE R1, [R5,R0,LSL#2] .text:00052E00 ADDNE R0, R0, #1 .text:00052E04 STRNE R0, [R11,#-0x74] .text:00052E08 B loc_532AC .text:00052E0C ; --------------------------------------------------------------------------- .text:00052E0C .text:00052E0C loc_52E0C ; CODE XREF: .text:00052C30j .text:00052E0C CMN R3, #0x80000001 .text:00052E10 CMNNE R3, #0x80000003 .text:00052E14 BNE loc_532AC .text:00052E18 SUB R1, R11, #0x7C .text:00052E1C LDMIA R1, {R1,R2} .text:00052E20 MOV R10, #0 .text:00052E24 LDR R3, [R1,#4] .text:00052E28 MOV R1, #0x24 .text:00052E2C ADD R4, R2, R3 .text:00052E30 MOV R0, R4 .text:00052E34 BL strchr .text:00052E38 CMP R0, #0 .text:00052E3C STR R4, [R11,#-0x84] .text:00052E40 BEQ loc_52E50 .text:00052E44 MOV R1, R10 .text:00052E48 BL _dl_dst_count .text:00052E4C MOV R10, R0 .text:00052E50 .text:00052E50 loc_52E50 ; CODE XREF: .text:00052E40j .text:00052E50 CMP R10, #0 .text:00052E54 BEQ loc_52F70 .text:00052E58 LDR R3, =__libc_enable_secure .text:00052E5C LDR R5, [R3] .text:00052E60 CMP R5, #0 .text:00052E64 BEQ loc_52E78 .text:00052E68 MOV R0, #0 .text:00052E6C LDR R2, =aDstNotAllowe_0 ; "DST not allowed in SUID/SGID programs" .text:00052E70 MOV R1, R4 .text:00052E74 BL _dl_signal_error .text:00052E78 ; --------------------------------------------------------------------------- .text:00052E78 .text:00052E78 loc_52E78 ; CODE XREF: .text:00052E64j .text:00052E78 MOV R0, R4 .text:00052E7C BL strlen .text:00052E80 LDR R3, [R6,#0x148] .text:00052E84 MOV R9, R0 .text:00052E88 CMP R3, #0 .text:00052E8C BNE loc_52ED4 .text:00052E90 LDR R3, [R6,#4] .text:00052E94 LDRB R2, [R3] .text:00052E98 CMP R2, #0 .text:00052E9C BEQ loc_52EB8 .text:00052EA0 LDR R0, =aLL_name00_0 ; "(l)->l_name[0] == '\\0'" .text:00052EA4 LDR R1, =aDlDeps_c ; "dl-deps.c" .text:00052EA8 MOV R2, #0x120 .text:00052EAC LDR R3, =a_dl_map_obje_0 ; "_dl_map_object_deps" .text:00052EB0 ADD R2, R2, #1 .text:00052EB4 BL __assert_fail .text:00052EB8 ; --------------------------------------------------------------------------- .text:00052EB8 .text:00052EB8 loc_52EB8 ; CODE XREF: .text:00052E9Cj .text:00052EB8 BL _dl_get_origin .text:00052EBC CMP R0, #0 .text:00052EC0 CMNNE R0, #1 .text:00052EC4 STR R0, [R6,#0x148] .text:00052EC8 BEQ loc_52EE8 .text:00052ECC BL strlen .text:00052ED0 B loc_52EEC .text:00052ED4 ; --------------------------------------------------------------------------- .text:00052ED4 .text:00052ED4 loc_52ED4 ; CODE XREF: .text:00052E8Cj .text:00052ED4 CMN R3, #1 .text:00052ED8 BEQ loc_52EE8 .text:00052EDC MOV R0, R3 .text:00052EE0 BL strlen .text:00052EE4 B loc_52EEC .text:00052EE8 ; --------------------------------------------------------------------------- .text:00052EE8 .text:00052EE8 loc_52EE8 ; CODE XREF: .text:00052EC8j .text:00052EE8 ; .text:00052ED8j .text:00052EE8 MOV R0, R5 .text:00052EEC .text:00052EEC loc_52EEC ; CODE XREF: .text:00052ED0j .text:00052EEC ; .text:00052EE4j .text:00052EEC LDR R3, =_dl_platformlen .text:00052EF0 LDR R2, [R3] .text:00052EF4 CMP R2, R0 .text:00052EF8 MOVCC R2, R0 .text:00052EFC SUB R2, R2, #7 .text:00052F00 MLA R12, R2, R10, R9 .text:00052F04 MOV R1, R4 .text:00052F08 MOV R3, #0 .text:00052F0C MOV R0, R6 .text:00052F10 ADD R12, R12, #3 .text:00052F14 BIC R12, R12, #3 .text:00052F18 RSB SP, R12, SP .text:00052F1C MOV R2, SP .text:00052F20 BL _dl_dst_substitute .text:00052F24 MOV R4, R0 .text:00052F28 LDRB R0, [R4] .text:00052F2C CMP R0, #0 .text:00052F30 BNE loc_52F70 .text:00052F34 LDR R4, [R11,#-0x7C] .text:00052F38 LDR R3, [R4] .text:00052F3C CMN R3, #0x80000003 .text:00052F40 BNE loc_52F50 .text:00052F44 LDR R2, =aEmptyDynamicsS ; "empty dynamics string token substitutio"... .text:00052F48 LDR R1, [R11,#-0x84] .text:00052F4C BL _dl_signal_error .text:00052F50 ; --------------------------------------------------------------------------- .text:00052F50 .text:00052F50 loc_52F50 ; CODE XREF: .text:00052F40j .text:00052F50 LDR R3, =_dl_debug_mask .text:00052F54 LDR R2, [R3] .text:00052F58 TST R2, #1 .text:00052F5C BEQ loc_532AC .text:00052F60 LDR R0, =aCannotLoadAuxi ; "cannot load auxiliary `%s' because ofem"... .text:00052F64 LDR R1, [R11,#-0x84] .text:00052F68 BL _dl_debug_printf .text:00052F6C B loc_532AC .text:00052F70 ; --------------------------------------------------------------------------- .text:00052F70 .text:00052F70 loc_52F70 ; CODE XREF: .text:00052E54j .text:00052F70 ; .text:00052F30j .text:00052F70 STR R4, [R11,#-0x38] .text:00052F74 LDR R5, [R11,#-0x7C] .text:00052F78 LDR R3, [R5] .text:00052F7C CMN R3, #0x80000003 .text:00052F80 BNE loc_5304C .text:00052F84 LDR R3, =_dl_debug_mask .text:00052F88 LDR R2, [R3] .text:00052F8C TST R2, #1 .text:00052F90 BEQ loc_52FB8 .text:00052F94 LDR R2, [R6,#4] .text:00052F98 LDRB R3, [R2] .text:00052F9C LDR R0, =aLoadAuxiliaryO ; "load auxiliary object=%s requested by f"... .text:00052FA0 CMP R3, #0 .text:00052FA4 LDREQ R3, =_dl_argv .text:00052FA8 LDREQ R2, [R3] .text:00052FAC LDREQ R2, [R2] .text:00052FB0 MOV R1, R4 .text:00052FB4 BL _dl_debug_printf .text:00052FB8 .text:00052FB8 loc_52FB8 ; CODE XREF: .text:00052F90j .text:00052FB8 SUB R0, R11, #0x50 .text:00052FBC SUB R1, R11, #0x4C .text:00052FC0 LDR R2, =openaux .text:00052FC4 SUB R3, R11, #0x44 .text:00052FC8 BL _dl_catch_error .text:00052FCC CMP R0, #0 .text:00052FD0 BEQ loc_530B8 .text:00052FD4 LDR R0, [R11,#-0x4C] .text:00052FD8 CMP R0, #0 .text:00052FDC BNE loc_52FF8 .text:00052FE0 LDR R0, =aErrstringVoid0 ; "errstring != ((void *)0)" .text:00052FE4 LDR R1, =aDlDeps_c ; "dl-deps.c" .text:00052FE8 MOV R2, #0x130 .text:00052FEC LDR R3, =a_dl_map_obje_0 ; "_dl_map_object_deps" .text:00052FF0 ADD R2, R2, #3 .text:00052FF4 BL __assert_fail .text:00052FF8 ; --------------------------------------------------------------------------- .text:00052FF8 .text:00052FF8 loc_52FF8 ; CODE XREF: .text:00052FDCj .text:00052FF8 LDR R3, =_dl_out_of_memory ; "out of memory" .text:00052FFC CMP R0, R3 .text:00053000 BEQ loc_53008 .text:00053004 BL free .text:00053008 .text:00053008 loc_53008 ; CODE XREF: .text:00053000j .text:00053008 MOV R3, #0 .text:0005300C STR R3, [R11,#-0x4C] .text:00053010 B loc_532AC .text:00053010 ; --------------------------------------------------------------------------- .text:00053014 off_53014 DCD __libc_enable_secure ; DATA XREF: .text:00052C70r .text:00053014 ; .text:00052E58r .text:00053018 off_53018 DCD aDstNotAllowe_0 ; DATA XREF: .text:00052C84r .text:00053018 ; .text:00052E6Cr .text:00053018 ; "DST not allowed in SUID/SGID programs" .text:0005301C off_5301C DCD aLL_name00_0 ; DATA XREF: .text:00052CB8r .text:0005301C ; .text:00052EA0r .text:0005301C ; "(l)->l_name[0] == '\\0'" .text:00053020 off_53020 DCD aDlDeps_c ; DATA XREF: .text:00052CBCr .text:00053020 ; .text:00052EA4r ... .text:00053020 ; "dl-deps.c" .text:00053024 off_53024 DCD a_dl_map_obje_0 ; DATA XREF: .text:00052CC0r .text:00053024 ; .text:00052EACr ... .text:00053024 ; "_dl_map_object_deps" .text:00053028 off_53028 DCD _dl_platformlen ; DATA XREF: .text:loc_52D00r .text:00053028 ; .text:loc_52EECr .text:0005302C off_5302C DCD _dl_debug_mask ; DATA XREF: .text:00052D48r .text:0005302C ; .text:loc_52F50r ... .text:00053030 off_53030 DCD aCannotLoadAuxi ; DATA XREF: .text:00052D58r .text:00053030 ; .text:00052F60r .text:00053030 ; "cannot load auxiliary `%s' because ofem"... .text:00053034 off_53034 DCD openaux ; DATA XREF: .text:00052D74r .text:00053034 ; .text:00052FC0r .text:00053038 off_53038 DCD aEmptyDynamicsS ; DATA XREF: .text:00052F44r .text:00053038 ; "empty dynamics string token substitutio"... .text:0005303C off_5303C DCD aLoadAuxiliaryO ; DATA XREF: .text:00052F9Cr .text:0005303C ; "load auxiliary object=%s requested by f"... .text:00053040 off_53040 DCD _dl_argv ; DATA XREF: .text:00052FA4r .text:00053044 off_53044 DCD aErrstringVoid0 ; DATA XREF: .text:00052FE0r .text:00053044 ; "errstring != ((void *)0)" .text:00053048 off_53048 DCD _dl_out_of_memory ; DATA XREF: .text:loc_52FF8r .text:00053048 ; "out of memory" .text:0005304C ; --------------------------------------------------------------------------- .text:0005304C .text:0005304C loc_5304C ; CODE XREF: .text:00052F80j .text:0005304C LDR R3, =_dl_debug_mask .text:00053050 LDR R2, [R3] .text:00053054 TST R2, #1 .text:00053058 BEQ loc_53080 .text:0005305C LDR R2, [R6,#4] .text:00053060 LDRB R3, [R2] .text:00053064 LDR R0, =aLoadFilteredOb ; "load filtered object=%s requested by fi"... .text:00053068 CMP R3, #0 .text:0005306C LDREQ R3, =_dl_argv .text:00053070 LDREQ R2, [R3] .text:00053074 LDREQ R2, [R2] .text:00053078 MOV R1, R4 .text:0005307C BL _dl_debug_printf .text:00053080 .text:00053080 loc_53080 ; CODE XREF: .text:00053058j .text:00053080 SUB R0, R11, #0x50 .text:00053084 SUB R1, R11, #0x4C .text:00053088 LDR R2, =openaux .text:0005308C SUB R3, R11, #0x44 .text:00053090 BL _dl_catch_error .text:00053094 CMP R0, #0 .text:00053098 BEQ loc_530B8 .text:0005309C .text:0005309C loc_5309C ; CODE XREF: .text:00052D84j .text:0005309C BL __errno_location .text:000530A0 LDR R3, [R0] .text:000530A4 CMP R3, #0 .text:000530A8 BNE loc_533A0 .text:000530AC MOV R0, 0xFFFFFFFF .text:000530B0 STR R0, [R11,#-0x6C] .text:000530B4 B loc_53338 .text:000530B8 ; --------------------------------------------------------------------------- .text:000530B8 .text:000530B8 loc_530B8 ; CODE XREF: .text:00052FD0j .text:000530B8 ; .text:00053098j .text:000530B8 LDMIA R7, {R0-R3} .text:000530BC SUB SP, SP, #0x10 .text:000530C0 STMEA SP, {R0-R3} .text:000530C4 STR SP, [R7,#0xC] .text:000530C8 MOV R3, #0 .text:000530CC STR R3, [R7] .text:000530D0 LDR R1, [R11,#-0x70] .text:000530D4 MOV R12, SP .text:000530D8 LDR R2, [R11,#-0x34] .text:000530DC CMP R1, R3 .text:000530E0 STR R2, [R7,#4] .text:000530E4 BEQ loc_530FC .text:000530E8 LDR R3, [R11,#-0x34] .text:000530EC LDR R2, [R11,#-0x74] .text:000530F0 STR R3, [R1,R2,LSL#2] .text:000530F4 ADD R2, R2, #1 .text:000530F8 STR R2, [R11,#-0x74] .text:000530FC .text:000530FC loc_530FC ; CODE XREF: .text:000530E4j .text:000530FC LDR R2, [R11,#-0x34] .text:00053100 LDRB R3, [R2,#0x12C] .text:00053104 TST R3, #0x60 .text:00053108 BEQ loc_531F0 .text:0005310C LDR R4, [R11,#-0x64] .text:00053110 MOV R1, SP .text:00053114 LDR R3, [SP,#8] .text:00053118 ADD LR, R4, #1 .text:0005311C B loc_53128 .text:00053120 ; --------------------------------------------------------------------------- .text:00053120 .text:00053120 loc_53120 ; CODE XREF: .text:00053138j .text:00053120 LDR R1, [R1,#8] .text:00053124 LDR R3, [R1,#8] .text:00053128 .text:00053128 loc_53128 ; CODE XREF: .text:0005311Cj .text:00053128 CMP R3, #0 .text:0005312C BEQ loc_5313C .text:00053130 LDR R3, [R3,#4] .text:00053134 CMP R3, R2 .text:00053138 BNE loc_53120 .text:0005313C .text:0005313C loc_5313C ; CODE XREF: .text:0005312Cj .text:0005313C LDR R3, [R1,#8] .text:00053140 CMP R3, #0 .text:00053144 BEQ loc_531CC .text:00053148 STR R12, [R7,#8] .text:0005314C LDR R2, [R1,#8] .text:00053150 LDR R3, [R2,#8] .text:00053154 STR R3, [R1,#8] .text:00053158 LDR R5, [R11,#-0x5C] .text:0005315C LDR R3, [R11,#-0x34] .text:00053160 MOV R4, R5 .text:00053164 CMP R4, R2 .text:00053168 LDR R0, [R3,#0x10] .text:0005316C MOVEQ R5, R1 .text:00053170 STR R5, [R11,#-0x5C] .text:00053174 CMP R0, #0 .text:00053178 LDRNE R3, [R3,#0xC] .text:0005317C STRNE R3, [R0,#0xC] .text:00053180 LDR R3, [R11,#-0x34] .text:00053184 LDR R2, [R3,#0xC] .text:00053188 CMP R2, #0 .text:0005318C LDRNE R3, [R3,#0x10] .text:00053190 STRNE R3, [R2,#0x10] .text:00053194 LDR R2, [R12,#4] .text:00053198 LDR R1, [R11,#-0x34] .text:0005319C LDR R3, [R2,#0x10] .text:000531A0 STR R3, [R1,#0x10] .text:000531A4 LDR R3, [R11,#-0x34] .text:000531A8 LDR R2, [R12,#4] .text:000531AC STR R3, [R2,#0x10] .text:000531B0 LDR R2, [R11,#-0x34] .text:000531B4 LDR R3, [R2,#0x10] .text:000531B8 CMP R3, #0 .text:000531BC STRNE R2, [R3,#0xC] .text:000531C0 LDR R2, [R11,#-0x34] .text:000531C4 LDR R3, [R12,#4] .text:000531C8 B loc_53278 .text:000531CC ; --------------------------------------------------------------------------- .text:000531CC .text:000531CC loc_531CC ; CODE XREF: .text:00053144j .text:000531CC STR R3, [R7,#8] .text:000531D0 LDR R1, [R11,#-0x2C] .text:000531D4 B loc_531DC .text:000531D8 ; --------------------------------------------------------------------------- .text:000531D8 .text:000531D8 loc_531D8 ; CODE XREF: .text:000531E4j .text:000531D8 LDR R1, [R1,#8] .text:000531DC .text:000531DC loc_531DC ; CODE XREF: .text:000531D4j .text:000531DC LDR R3, [R1,#8] .text:000531E0 CMP R3, R7 .text:000531E4 BNE loc_531D8 .text:000531E8 STR R12, [R1,#8] .text:000531EC B loc_5327C .text:000531F0 ; --------------------------------------------------------------------------- .text:000531F0 .text:000531F0 loc_531F0 ; CODE XREF: .text:00053108j .text:000531F0 STR SP, [R7,#8] .text:000531F4 LDR R3, [R11,#-0x30] .text:000531F8 ADD R3, R3, #1 .text:000531FC STR R3, [R11,#-0x30] .text:00053200 LDR R2, [R11,#-0x34] .text:00053204 LDRB R3, [R2,#0x12C] .text:00053208 BIC R3, R3, #0x40 .text:0005320C ORR R3, R3, #0x20 .text:00053210 STRB R3, [R2,#0x12C] .text:00053214 LDR R3, [R11,#-0x34] .text:00053218 LDR R2, [R3,#0x10] .text:0005321C CMP R2, #0 .text:00053220 LDRNE R3, [R3,#0xC] .text:00053224 STRNE R3, [R2,#0xC] .text:00053228 LDR R3, [R11,#-0x34] .text:0005322C LDR R2, [R3,#0xC] .text:00053230 CMP R2, #0 .text:00053234 LDRNE R3, [R3,#0x10] .text:00053238 STRNE R3, [R2,#0x10] .text:0005323C LDR R2, [SP,#4] .text:00053240 LDR R1, [R11,#-0x34] .text:00053244 LDR R3, [R2,#0x10] .text:00053248 STR R3, [R1,#0x10] .text:0005324C LDR R2, [SP,#4] .text:00053250 LDR R3, [R11,#-0x34] .text:00053254 STR R3, [R2,#0x10] .text:00053258 LDR R2, [R11,#-0x34] .text:0005325C LDR R3, [R2,#0x10] .text:00053260 CMP R3, #0 .text:00053264 STRNE R2, [R3,#0xC] .text:00053268 LDR R2, [R11,#-0x34] .text:0005326C LDR R5, [R11,#-0x64] .text:00053270 LDR R3, [SP,#4] .text:00053274 ADD LR, R5, #1 .text:00053278 .text:00053278 loc_53278 ; CODE XREF: .text:000531C8j .text:00053278 STR R3, [R2,#0xC] .text:0005327C .text:0005327C loc_5327C ; CODE XREF: .text:000531ECj .text:0005327C LDR R0, [R11,#-0x5C] .text:00053280 LDR R2, [R11,#-0x60] .text:00053284 STR LR, [R11,#-0x64] .text:00053288 MOV R1, R0 .text:0005328C CMP R7, R1 .text:00053290 MOVEQ R0, R12 .text:00053294 MOV R3, R2 .text:00053298 CMP R7, R3 .text:0005329C STR R0, [R11,#-0x5C] .text:000532A0 MOVEQ R2, R12 .text:000532A4 MOV R7, R12 .text:000532A8 STR R2, [R11,#-0x60] .text:000532AC .text:000532AC loc_532AC ; CODE XREF: .text:00052D54j .text:000532AC ; .text:00052D64j ... .text:000532AC LDR R4, [R11,#-0x7C] .text:000532B0 LDR R3, [R4,#8]! .text:000532B4 CMP R3, #0 .text:000532B8 STR R4, [R11,#-0x7C] .text:000532BC BNE loc_52C24 .text:000532C0 .text:000532C0 loc_532C0 ; CODE XREF: .text:00052BECj .text:000532C0 ; .text:00052C20j .text:000532C0 LDR R5, [R11,#-0x70] .text:000532C4 CMP R5, #0 .text:000532C8 BEQ loc_53324 .text:000532CC LDR R0, [R11,#-0x74] .text:000532D0 MOV R3, #0 .text:000532D4 STR R3, [R5,R0,LSL#2] .text:000532D8 ADD R0, R0, #1 .text:000532DC MOV R4, R0,LSL#2 .text:000532E0 MOV R0, R4 .text:000532E4 BL malloc .text:000532E8 CMP R0, #0 .text:000532EC STR R0, [R6,#0x184] .text:000532F0 BNE loc_53308 .text:000532F4 LDR R2, [R11,#-0x54] .text:000532F8 LDR R1, [R2,#4] .text:000532FC LDR R2, =aCannotAlloca_1 ; "cannot allocate dependency list" .text:00053300 MOV R0, #0xC .text:00053304 BL _dl_signal_error .text:00053308 ; --------------------------------------------------------------------------- .text:00053308 .text:00053308 loc_53308 ; CODE XREF: .text:000532F0j .text:00053308 LDR R1, [R11,#-0x70] .text:0005330C MOV R2, R4 .text:00053310 BL memcpy .text:00053314 B loc_53324 .text:00053318 ; --------------------------------------------------------------------------- .text:00053318 .text:00053318 loc_53318 ; CODE XREF: .text:0005332Cj .text:00053318 LDR R8, [R8,#8] .text:0005331C CMP R8, #0 .text:00053320 BEQ loc_53330 .text:00053324 .text:00053324 loc_53324 ; CODE XREF: .text:000532C8j .text:00053324 ; .text:00053314j .text:00053324 LDR R3, [R8] .text:00053328 CMP R3, #0 .text:0005332C BNE loc_53318 .text:00053330 .text:00053330 loc_53330 ; CODE XREF: .text:00053320j .text:00053330 CMP R8, #0 .text:00053334 BNE loc_52B64 .text:00053338 .text:00053338 loc_53338 ; CODE XREF: .text:00052B60j .text:00053338 ; .text:000530B4j ... .text:00053338 BL __errno_location .text:0005333C LDR R3, [R0] .text:00053340 CMP R3, #0 .text:00053344 BNE loc_53360 .text:00053348 LDR R3, [R11,#-0x68] .text:0005334C CMP R3, #0 .text:00053350 BEQ loc_53360 .text:00053354 BL __errno_location .text:00053358 LDR R4, [R11,#-0x68] .text:0005335C STR R4, [R0] .text:00053360 .text:00053360 loc_53360 ; CODE XREF: .text:00053344j .text:00053360 ; .text:00053350j .text:00053360 LDR R5, [R11,#-0x54] .text:00053364 LDR R0, [R5,#0x184] .text:00053368 CMP R0, #0 .text:0005336C BEQ loc_533B4 .text:00053370 LDRB R3, [R5,#0x12C] .text:00053374 AND R3, R3, #3 .text:00053378 CMP R3, #2 .text:0005337C BNE loc_533B4 .text:00053380 LDR R3, [R5,#0xF8] .text:00053384 CMP R3, #0 .text:00053388 BEQ loc_533B0 .text:0005338C LDR R0, =aMapL_searchlis ; "map->l_searchlist.r_list == ((void *)0)"... .text:00053390 LDR R1, =aDlDeps_c ; "dl-deps.c" .text:00053394 LDR R3, =a_dl_map_obje_0 ; "_dl_map_object_deps" .text:00053398 MOV R2, #0x1E8 .text:0005339C BL __assert_fail .text:000533A0 ; --------------------------------------------------------------------------- .text:000533A0 .text:000533A0 loc_533A0 ; CODE XREF: .text:000530A8j .text:000533A0 BL __errno_location .text:000533A4 LDR R0, [R0] .text:000533A8 STR R0, [R11,#-0x6C] .text:000533AC B loc_53338 .text:000533B0 ; --------------------------------------------------------------------------- .text:000533B0 .text:000533B0 loc_533B0 ; CODE XREF: .text:00053388j .text:000533B0 BL free .text:000533B4 .text:000533B4 loc_533B4 ; CODE XREF: .text:0005336Cj .text:000533B4 ; .text:0005337Cj .text:000533B4 LDR R3, [R11,#-0x30] .text:000533B8 LDR R0, [R11,#-0x64] .text:000533BC CMP R3, R0 .text:000533C0 MOV R3, R3,LSL#1 .text:000533C4 ADD R0, R3, #1 .text:000533C8 LDRNE R1, [R11,#-0x64] .text:000533CC ADDNE R3, R0, R1 .text:000533D0 MOVNE R0, R3,LSL#2 .text:000533D4 MOVEQ R0, R0,LSL#2 .text:000533D8 BL malloc .text:000533DC LDR R2, [R11,#-0x54] .text:000533E0 CMP R0, #0 .text:000533E4 STR R0, [R2,#0x184] .text:000533E8 BNE loc_53420 .text:000533EC LDR R1, [R2,#4] .text:000533F0 LDR R2, =aCannotAlloca_2 ; "cannot allocate symbol search list" .text:000533F4 MOV R0, #0xC .text:000533F8 BL _dl_signal_error .text:000533F8 ; --------------------------------------------------------------------------- .text:000533FC off_533FC DCD _dl_debug_mask ; DATA XREF: .text:loc_5304Cr .text:00053400 off_53400 DCD aLoadFilteredOb ; DATA XREF: .text:00053064r .text:00053400 ; "load filtered object=%s requested by fi"... .text:00053404 off_53404 DCD _dl_argv ; DATA XREF: .text:0005306Cr .text:00053408 off_53408 DCD openaux ; DATA XREF: .text:00053088r .text:0005340C off_5340C DCD aCannotAlloca_1 ; DATA XREF: .text:000532FCr .text:0005340C ; "cannot allocate dependency list" .text:00053410 off_53410 DCD aMapL_searchlis ; DATA XREF: .text:0005338Cr .text:00053410 ; "map->l_searchlist.r_list == ((void *)0)"... .text:00053414 off_53414 DCD aDlDeps_c ; DATA XREF: .text:00053390r .text:00053414 ; "dl-deps.c" .text:00053418 off_53418 DCD a_dl_map_obje_0 ; DATA XREF: .text:00053394r .text:00053418 ; "_dl_map_object_deps" .text:0005341C off_5341C DCD aCannotAlloca_2 ; DATA XREF: .text:000533F0r .text:0005341C ; "cannot allocate symbol search list" .text:00053420 ; --------------------------------------------------------------------------- .text:00053420 .text:00053420 loc_53420 ; CODE XREF: .text:000533E8j .text:00053420 SUB R1, R11, #0x30 .text:00053424 LDMIA R1, {R1,R8} .text:00053428 LDR R4, [R11,#-0x54] .text:0005342C MOV R2, #0 .text:00053430 STR R2, [R11,#-0x30] .text:00053434 MOV R3, R1,LSL#2 .text:00053438 ADD R3, R3, #4 .text:0005343C ADD R3, R0, R3 .text:00053440 STR R3, [R4,#0xF8] .text:00053444 CMP R8, R2 .text:00053448 STR R1, [R4,#0xFC] .text:0005344C BEQ loc_534B8 .text:00053450 .text:00053450 loc_53450 ; CODE XREF: .text:000534B4j .text:00053450 LDR R5, [R11,#-0x58] .text:00053454 CMP R5, #0 .text:00053458 BEQ loc_53480 .text:0005345C LDR R3, [R8,#4] .text:00053460 LDRB R2, [R3,#0x12D] .text:00053464 TST R2, #2 .text:00053468 BEQ loc_53480 .text:0005346C LDR R0, [R11,#-0x54] .text:00053470 LDR R3, [R0,#0xFC] .text:00053474 SUB R3, R3, #1 .text:00053478 STR R3, [R0,#0xFC] .text:0005347C B loc_5349C .text:00053480 ; --------------------------------------------------------------------------- .text:00053480 .text:00053480 loc_53480 ; CODE XREF: .text:00053458j .text:00053480 ; .text:00053468j .text:00053480 LDR R2, [R11,#-0x54] .text:00053484 LDR R3, [R11,#-0x30] .text:00053488 LDR R1, [R2,#0xF8] .text:0005348C LDR R2, [R8,#4] .text:00053490 STR R2, [R1,R3,LSL#2] .text:00053494 ADD R3, R3, #1 .text:00053498 STR R3, [R11,#-0x30] .text:0005349C .text:0005349C loc_5349C ; CODE XREF: .text:0005347Cj .text:0005349C LDR R2, [R8,#4] .text:000534A0 LDRB R3, [R2,#0x12C] .text:000534A4 BIC R3, R3, #0x60 .text:000534A8 STRB R3, [R2,#0x12C] .text:000534AC LDR R8, [R8,#8] .text:000534B0 CMP R8, #0 .text:000534B4 BNE loc_53450 .text:000534B8 .text:000534B8 loc_534B8 ; CODE XREF: .text:0005344Cj .text:000534B8 LDR R2, [R11,#-0x30] .text:000534BC LDR R4, [R11,#-0x64] .text:000534C0 LDR R3, [R11,#-0x54] .text:000534C4 CMP R2, R4 .text:000534C8 STR R4, [R3,#0x104] .text:000534CC LDREQ R5, [R11,#-0x54] .text:000534D0 LDREQ R3, [R5,#0xF8] .text:000534D4 STREQ R3, [R5,#0x100] .text:000534D8 BEQ loc_53548 .text:000534DC LDR R8, [R11,#-0x2C] .text:000534E0 LDR R0, [R11,#-0x54] .text:000534E4 MOV R1, #0 .text:000534E8 LDR R3, [R0,#0xF8] .text:000534EC CMP R8, R1 .text:000534F0 ADD R3, R3, R2,LSL#2 .text:000534F4 STR R3, [R0,#0x100] .text:000534F8 BEQ loc_53548 .text:000534FC .text:000534FC loc_534FC ; CODE XREF: .text:00053544j .text:000534FC LDR R2, [R11,#-0x58] .text:00053500 CMP R2, #0 .text:00053504 LDR R2, [R8,#4] .text:00053508 BEQ loc_5352C .text:0005350C LDRB R3, [R2,#0x12D] .text:00053510 TST R3, #2 .text:00053514 BEQ loc_5352C .text:00053518 LDR R4, [R11,#-0x54] .text:0005351C LDR R3, [R4,#0x104] .text:00053520 SUB R3, R3, #1 .text:00053524 STR R3, [R4,#0x104] .text:00053528 B loc_5353C .text:0005352C ; --------------------------------------------------------------------------- .text:0005352C .text:0005352C loc_5352C ; CODE XREF: .text:00053508j .text:0005352C ; .text:00053514j .text:0005352C LDR R5, [R11,#-0x54] .text:00053530 LDR R3, [R5,#0x100] .text:00053534 STR R2, [R3,R1,LSL#2] .text:00053538 ADD R1, R1, #1 .text:0005353C .text:0005353C loc_5353C ; CODE XREF: .text:00053528j .text:0005353C LDR R8, [R8,#0xC] .text:00053540 CMP R8, #0 .text:00053544 BNE loc_534FC .text:00053548 .text:00053548 loc_53548 ; CODE XREF: .text:000534D8j .text:00053548 ; .text:000534F8j .text:00053548 LDR R1, [R11,#-0x54] .text:0005354C LDR R2, [R11,#-0x30] .text:00053550 LDR R0, [R1,#0x184] .text:00053554 LDR R1, [R1,#0xF8] .text:00053558 MOV R2, R2,LSL#2 .text:0005355C BL memcpy .text:00053560 LDR R3, [R11,#-0x30] .text:00053564 MOV R6, #1 .text:00053568 CMP R6, R3 .text:0005356C BCS loc_5363C .text:00053570 .text:00053570 loc_53570 ; CODE XREF: .text:00053638j .text:00053570 LDR R2, [R11,#-0x54] .text:00053574 LDR R3, [R2,#0xF8] .text:00053578 LDR R2, [R2,#0x184] .text:0005357C LDR R7, [R3,R6,LSL#2] .text:00053580 MOV R5, #1 .text:00053584 LDR R3, [R2,#4] .text:00053588 ADD R8, R6, R5 .text:0005358C LDR R0, [R11,#-0x30] .text:00053590 CMP R3, R7 .text:00053594 BEQ loc_535AC .text:00053598 MOV R1, R2 .text:0005359C .text:0005359C loc_5359C ; CODE XREF: .text:000535A8j .text:0005359C ADD R5, R5, #1 .text:000535A0 LDR R3, [R1,R5,LSL#2] .text:000535A4 CMP R3, R7 .text:000535A8 BNE loc_5359C .text:000535AC .text:000535AC loc_535AC ; CODE XREF: .text:00053594j .text:000535AC ADD R12, R5, #1 .text:000535B0 CMP R12, R0 .text:000535B4 BCS loc_5362C .text:000535B8 .text:000535B8 loc_535B8 ; CODE XREF: .text:00053628j .text:000535B8 LDR R3, [R2,R12,LSL#2] .text:000535BC LDR R2, [R3,#0x184] .text:000535C0 ADD R6, R12, #1 .text:000535C4 CMP R2, #0 .text:000535C8 BEQ loc_53614 .text:000535CC B loc_535D4 .text:000535D0 ; --------------------------------------------------------------------------- .text:000535D0 .text:000535D0 loc_535D0 ; CODE XREF: .text:000535E4j .text:000535D0 ADD R2, R2, #4 .text:000535D4 .text:000535D4 loc_535D4 ; CODE XREF: .text:000535CCj .text:000535D4 LDR R3, [R2] .text:000535D8 CMP R3, #0 .text:000535DC BEQ loc_53614 .text:000535E0 CMP R3, R7 .text:000535E4 BNE loc_535D0 .text:000535E8 LDR R4, [R11,#-0x54] .text:000535EC RSB R2, R5, R12 .text:000535F0 LDR R3, [R4,#0x184] .text:000535F4 MOV R2, R2,LSL#2 .text:000535F8 ADD R1, R3, R5,LSL#2 .text:000535FC ADD R0, R1, #4 .text:00053600 LDR R4, [R3,R12,LSL#2] .text:00053604 BL memmove .text:00053608 LDR R0, [R11,#-0x54] .text:0005360C LDR R3, [R0,#0x184] .text:00053610 STR R4, [R3,R5,LSL#2] .text:00053614 .text:00053614 loc_53614 ; CODE XREF: .text:000535C8j .text:00053614 ; .text:000535DCj .text:00053614 LDR R3, [R11,#-0x30] .text:00053618 MOV R12, R6 .text:0005361C LDR R1, [R11,#-0x54] .text:00053620 CMP R12, R3 .text:00053624 LDR R2, [R1,#0x184] .text:00053628 BCC loc_535B8 .text:0005362C .text:0005362C loc_5362C ; CODE XREF: .text:000535B4j .text:0005362C LDR R3, [R11,#-0x30] .text:00053630 MOV R6, R8 .text:00053634 CMP R6, R3 .text:00053638 BCC loc_53570 .text:0005363C .text:0005363C loc_5363C ; CODE XREF: .text:0005356Cj .text:0005363C LDR R1, [R11,#-0x30] .text:00053640 LDR R2, [R11,#-0x6C] .text:00053644 LDR R3, [R11,#-0x54] .text:00053648 CMP R2, #0 .text:0005364C LDR R2, [R3,#0x184] .text:00053650 MOV R3, #0 .text:00053654 STR R3, [R2,R1,LSL#2] .text:00053658 BEQ locret_5368C .text:0005365C LDR R3, [R11,#-0x4C] .text:00053660 LDR R1, =dword_62804 .text:00053664 LDR R0, [R11,#-0x6C] .text:00053668 LDR R2, =aCannotLoadShar ; "cannot load shared object file" .text:0005366C MOV R4, R0 .text:00053670 CMN R4, #1 .text:00053674 MOVEQ R0, #0 .text:00053678 CMP R3, #0 .text:0005367C MOVNE R1, R3 .text:00053680 BL _dl_signal_error .text:00053680 ; --------------------------------------------------------------------------- .text:00053684 off_53684 DCD dword_62804 ; DATA XREF: .text:00053660r .text:00053688 off_53688 DCD aCannotLoadShar ; DATA XREF: .text:00053668r .text:00053688 ; "cannot load shared object file" .text:0005368C ; --------------------------------------------------------------------------- .text:0005368C .text:0005368C locret_5368C ; CODE XREF: .text:00053658j .text:0005368C LDMDB R11, {R4-R11,SP,PC} .text:00053690 .text:00053690 ; =============== S U B R O U T I N E ======================================= .text:00053690 .text:00053690 ; Attributes: bp-based frame .text:00053690 .text:00053690 fixup ; CODE XREF: _dl_runtime_resolve+14p .text:00053690 .text:00053690 var_38 = -0x38 .text:00053690 var_34 = -0x34 .text:00053690 var_28 = -0x28 .text:00053690 .text:00053690 MOV R12, SP .text:00053694 STMFD SP!, {R4-R8,R10-R12,LR,PC} .text:00053698 MOV LR, R0 .text:0005369C SUB SP, SP, #0x10 .text:000536A0 LDR R3, [LR,#0x74] .text:000536A4 SUB R11, R12, #4 .text:000536A8 LDR R12, [R3,#4] .text:000536AC ADD R3, R12, R1 .text:000536B0 LDR R0, [R3,#4] .text:000536B4 SUB SP, SP, #4 .text:000536B8 LDR R3, [LR,#0x30] .text:000536BC MOV R2, R0 .text:000536C0 LDR R6, [R3,#4] .text:000536C4 AND R7, R2, #0xFF .text:000536C8 LDR R3, [LR,#0x2C] .text:000536CC MOV R4, R0,LSR#8 .text:000536D0 LDR R0, [LR] .text:000536D4 CMP R7, #0x16 .text:000536D8 LDR R8, [R3,#4] .text:000536DC MOV R5, R4,LSL#4 .text:000536E0 LDR R3, [R12,R1] .text:000536E4 ADD R2, R6, R5 .text:000536E8 STR R2, [R11,#var_28] .text:000536EC ADD R10, R0, R3 .text:000536F0 BEQ loc_53708 .text:000536F4 LDR R0, =aRelocR_info0xf ; "((reloc->r_info) & 0xff) == 22" .text:000536F8 LDR R1, =aDlRuntime_c ; "dl-runtime.c" .text:000536FC LDR R3, =aFixup ; "fixup" .text:00053700 MOV R2, #0x48 .text:00053704 BL __assert_fail .text:00053708 ; --------------------------------------------------------------------------- .text:00053708 .text:00053708 loc_53708 ; CODE XREF: fixup+60j .text:00053708 LDRB R3, [R2,#0xD] .text:0005370C ANDS R12, R3, #3 .text:00053710 BNE loc_537B8 .text:00053714 LDR R3, [LR,#0xDC] .text:00053718 CMP R3, #0 .text:0005371C BEQ loc_5376C .text:00053720 LDR R1, [R3,#4] .text:00053724 MOV R3, R4,LSL#1 .text:00053728 LDRB R2, [R3,R1] .text:0005372C ADD R3, R3, R1 .text:00053730 LDRB R0, [R3,#1] .text:00053734 LDR R1, [LR,#0x134] .text:00053738 ORR R2, R2, R0,LSL#8 .text:0005373C ADD R2, R1, R2,LSL#4 .text:00053740 LDR R3, [R2,#4] .text:00053744 CMP R3, #0 .text:00053748 BEQ loc_5376C .text:0005374C LDR R0, [R6,R5] .text:00053750 STMEA SP, {R2,R7,R12} .text:00053754 MOV R1, LR .text:00053758 SUB R2, R11, #-var_28 .text:0005375C ADD R3, R1, #0x154 .text:00053760 ADD R0, R8, R0 .text:00053764 BL _dl_lookup_versioned_symbol .text:00053768 B loc_53798 .text:0005376C ; --------------------------------------------------------------------------- .text:0005376C .text:0005376C loc_5376C ; CODE XREF: fixup+8Cj .text:0005376C ; fixup+B8j .text:0005376C LDR R3, [R11,#var_28] .text:00053770 LDR R0, [R3] .text:00053774 MOV R2, #0x16 .text:00053778 STR R2, [SP,#0x38+var_38] .text:0005377C MOV R3, #0 .text:00053780 STR R3, [SP,#0x38+var_34] .text:00053784 MOV R1, LR .text:00053788 SUB R2, R11, #-var_28 .text:0005378C ADD R3, R1, #0x154 .text:00053790 ADD R0, R8, R0 .text:00053794 BL _dl_lookup_symbol .text:00053798 .text:00053798 loc_53798 ; CODE XREF: fixup+D8j .text:00053798 MOV R2, R0 .text:0005379C LDR R0, [R11,#var_28] .text:000537A0 CMP R0, #0 .text:000537A4 LDRNE R3, [R0,#4] .text:000537A8 ADDNE R1, R2, R3 .text:000537AC BNE loc_537C0 .text:000537B0 MOV R1, R0 .text:000537B4 B loc_537C0 .text:000537B8 ; --------------------------------------------------------------------------- .text:000537B8 .text:000537B8 loc_537B8 ; CODE XREF: fixup+80j .text:000537B8 LDR R3, [R2,#4] .text:000537BC ADD R1, R0, R3 .text:000537C0 .text:000537C0 loc_537C0 ; CODE XREF: fixup+11Cj .text:000537C0 ; fixup+124j .text:000537C0 LDR R3, =_dl_bind_not .text:000537C4 LDR R2, [R3] .text:000537C8 CMP R2, #0 .text:000537CC BNE loc_537EC .text:000537D0 MOV R0, R1 .text:000537D4 STR R1, [R10] .text:000537D8 B locret_537F0 .text:000537D8 ; --------------------------------------------------------------------------- .text:000537DC off_537DC DCD aRelocR_info0xf ; DATA XREF: fixup+64r .text:000537DC ; "((reloc->r_info) & 0xff) == 22" .text:000537E0 off_537E0 DCD aDlRuntime_c ; DATA XREF: fixup+68r .text:000537E0 ; "dl-runtime.c" .text:000537E4 off_537E4 DCD aFixup ; DATA XREF: fixup+6Cr .text:000537E4 ; "fixup" .text:000537E8 off_537E8 DCD _dl_bind_not ; DATA XREF: fixup:loc_537C0r .text:000537EC ; --------------------------------------------------------------------------- .text:000537EC .text:000537EC loc_537EC ; CODE XREF: fixup+13Cj .text:000537EC MOV R0, R1 .text:000537F0 .text:000537F0 locret_537F0 ; CODE XREF: fixup+148j .text:000537F0 LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:000537F0 ; End of function fixup .text:000537F0 .text:000537F4 .text:000537F4 ; =============== S U B R O U T I N E ======================================= .text:000537F4 .text:000537F4 ; Attributes: bp-based frame .text:000537F4 .text:000537F4 profile_fixup ; CODE XREF: _dl_runtime_profile+14p .text:000537F4 .text:000537F4 var_3C = -0x3C .text:000537F4 var_38 = -0x38 .text:000537F4 var_34 = -0x34 .text:000537F4 var_2C = -0x2C .text:000537F4 .text:000537F4 MOV R12, SP .text:000537F8 STMFD SP!, {R4-R12,LR,PC} .text:000537FC SUB R11, R12, #4 .text:00053800 MOV LR, R0 .text:00053804 MOV R0, R1 .text:00053808 MOV R3, R0,LSR#3 .text:0005380C MOV R3, R3,LSL#2 .text:00053810 MOV R9, R2 .text:00053814 SUB SP, SP, #0x10 .text:00053818 LDR R1, [LR,#0x140] .text:0005381C SUB SP, SP, #4 .text:00053820 LDR R4, [R1,R3] .text:00053824 ADD R10, R1, R3 .text:00053828 CMP R4, #0 .text:0005382C BNE loc_53960 .text:00053830 LDR R2, [LR,#0x74] .text:00053834 LDR R3, [R2,#4] .text:00053838 ADD R3, R3, R0 .text:0005383C LDR R1, [R3,#4] .text:00053840 LDR R3, [LR,#0x30] .text:00053844 MOV R2, R1 .text:00053848 AND R7, R2, #0xFF .text:0005384C CMP R7, #0x16 .text:00053850 LDR R6, [R3,#4] .text:00053854 MOV R2, R1,LSR#8 .text:00053858 LDR R3, [LR,#0x2C] .text:0005385C MOV R5, R2,LSL#4 .text:00053860 LDR R8, [R3,#4] .text:00053864 ADD R12, R6, R5 .text:00053868 STR R12, [R11,#var_2C] .text:0005386C BEQ loc_53884 .text:00053870 LDR R0, =aRelocR_info0xf ; "((reloc->r_info) & 0xff) == 22" .text:00053874 LDR R1, =aDlRuntime_c ; "dl-runtime.c" .text:00053878 LDR R3, =aProfile_fixup ; "profile_fixup" .text:0005387C MOV R2, #0xA4 .text:00053880 BL __assert_fail .text:00053884 ; --------------------------------------------------------------------------- .text:00053884 .text:00053884 loc_53884 ; CODE XREF: profile_fixup+78j .text:00053884 LDRB R3, [R12,#0xD] .text:00053888 TST R3, #3 .text:0005388C BNE loc_53944 .text:00053890 LDR R3, [LR,#0xDC] .text:00053894 CMP R3, #0 .text:00053898 BEQ loc_538EC .text:0005389C LDR R1, [R3,#4] .text:000538A0 MOV R3, R2,LSL#1 .text:000538A4 LDRB R2, [R3,R1] .text:000538A8 ADD R3, R3, R1 .text:000538AC LDRB R0, [R3,#1] .text:000538B0 LDR R1, [LR,#0x134] .text:000538B4 ORR R2, R2, R0,LSL#8 .text:000538B8 ADD R1, R1, R2,LSL#4 .text:000538BC LDR R3, [R1,#4] .text:000538C0 CMP R3, #0 .text:000538C4 BEQ loc_538EC .text:000538C8 LDR R0, [R6,R5] .text:000538CC STMEA SP, {R1,R7} .text:000538D0 STR R4, [SP,#0x3C+var_34] .text:000538D4 MOV R1, LR .text:000538D8 SUB R2, R11, #-var_2C .text:000538DC ADD R3, R1, #0x154 .text:000538E0 ADD R0, R8, R0 .text:000538E4 BL _dl_lookup_versioned_symbol .text:000538E8 B loc_53918 .text:000538EC ; --------------------------------------------------------------------------- .text:000538EC .text:000538EC loc_538EC ; CODE XREF: profile_fixup+A4j .text:000538EC ; profile_fixup+D0j .text:000538EC LDR R3, [R11,#var_2C] .text:000538F0 LDR R0, [R3] .text:000538F4 MOV R2, #0x16 .text:000538F8 STR R2, [SP,#0x3C+var_3C] .text:000538FC MOV R3, #0 .text:00053900 STR R3, [SP,#0x3C+var_38] .text:00053904 MOV R1, LR .text:00053908 SUB R2, R11, #-var_2C .text:0005390C ADD R3, R1, #0x154 .text:00053910 ADD R0, R8, R0 .text:00053914 BL _dl_lookup_symbol .text:00053918 .text:00053918 loc_53918 ; CODE XREF: profile_fixup+F4j .text:00053918 MOV R1, R0 .text:0005391C LDR R0, [R11,#var_2C] .text:00053920 CMP R0, #0 .text:00053924 LDRNE R3, [R0,#4] .text:00053928 ADDNE R4, R1, R3 .text:0005392C BNE loc_53950 .text:00053930 MOV R4, R0 .text:00053934 B loc_53950 .text:00053934 ; --------------------------------------------------------------------------- .text:00053938 off_53938 DCD aRelocR_info0xf ; DATA XREF: profile_fixup+7Cr .text:00053938 ; "((reloc->r_info) & 0xff) == 22" .text:0005393C off_5393C DCD aDlRuntime_c ; DATA XREF: profile_fixup+80r .text:0005393C ; "dl-runtime.c" .text:00053940 off_53940 DCD aProfile_fixup ; DATA XREF: profile_fixup+84r .text:00053940 ; "profile_fixup" .text:00053944 ; --------------------------------------------------------------------------- .text:00053944 .text:00053944 loc_53944 ; CODE XREF: profile_fixup+98j .text:00053944 LDR R2, [LR] .text:00053948 LDR R3, [R12,#4] .text:0005394C ADD R4, R2, R3 .text:00053950 .text:00053950 loc_53950 ; CODE XREF: profile_fixup+138j .text:00053950 ; profile_fixup+140j .text:00053950 LDR R3, =_dl_bind_not .text:00053954 LDR R2, [R3] .text:00053958 CMP R2, #0 .text:0005395C STREQ R4, [R10] .text:00053960 .text:00053960 loc_53960 ; CODE XREF: profile_fixup+38j .text:00053960 MOV R0, R9 .text:00053964 MOV R1, R4 .text:00053968 BL _dl_mcount .text:0005396C MOV R0, R4 .text:00053970 B locret_53978 .text:00053970 ; --------------------------------------------------------------------------- .text:00053974 off_53974 DCD _dl_bind_not ; DATA XREF: profile_fixup:loc_53950r .text:00053978 ; --------------------------------------------------------------------------- .text:00053978 .text:00053978 locret_53978 ; CODE XREF: profile_fixup+17Cj .text:00053978 LDMDB R11, {R4-R11,SP,PC} .text:00053978 ; End of function profile_fixup .text:00053978 .text:0005397C .text:0005397C ; =============== S U B R O U T I N E ======================================= .text:0005397C .text:0005397C ; Attributes: noreturn .text:0005397C .text:0005397C EXPORT _dl_runtime_resolve .text:0005397C _dl_runtime_resolve ; DATA XREF: .text:loc_5208Co .text:0005397C ; .text:off_52310o .text:0005397C STMFD SP!, {R0-R3,R10,R11} .text:00053980 SUB R1, R12, LR .text:00053984 SUB R1, R1, #4 .text:00053988 ADD R1, R1, R1 .text:0005398C LDR R0, [LR,#-4] .text:00053990 BL fixup .text:00053994 MOV R12, R0 .text:00053998 LDMFD SP!, {R0-R3,R10,R11,LR} .text:0005399C MOV PC, R12 .text:0005399C ; End of function _dl_runtime_resolve .text:0005399C .text:000539A0 .text:000539A0 ; =============== S U B R O U T I N E ======================================= .text:000539A0 .text:000539A0 ; Attributes: noreturn .text:000539A0 .text:000539A0 EXPORT _dl_runtime_profile .text:000539A0 _dl_runtime_profile ; DATA XREF: .text:00052078o .text:000539A0 ; .text:off_52308o .text:000539A0 STMFD SP!, {R0-R3,R10,R11} .text:000539A4 SUB R1, R12, LR .text:000539A8 SUB R1, R1, #4 .text:000539AC ADD R1, R1, R1 .text:000539B0 LDR R0, [LR,#-4] .text:000539B4 BL profile_fixup .text:000539B8 MOV R12, R0 .text:000539BC LDMFD SP!, {R0-R3,R10,R11,LR} .text:000539C0 MOV PC, R12 .text:000539C0 ; End of function _dl_runtime_profile .text:000539C0 .text:000539C4 .text:000539C4 ; =============== S U B R O U T I N E ======================================= .text:000539C4 .text:000539C4 ; Attributes: bp-based frame .text:000539C4 .text:000539C4 call_init ; CODE XREF: _dl_init+34p .text:000539C4 ; _dl_init+F4p .text:000539C4 MOV R12, SP .text:000539C8 STMFD SP!, {R4-R8,R10-R12,LR,PC} .text:000539CC SUB R11, R12, #4 .text:000539D0 MOV R6, R0 .text:000539D4 MOV R10, R1 .text:000539D8 MOV R8, R2 .text:000539DC LDRB R0, [R6,#0x12C] .text:000539E0 MOV R7, R3 .text:000539E4 TST R0, #8 .text:000539E8 LDMNEDB R11, {R4-R8,R10,R11,SP,PC} .text:000539EC ORR R3, R0, #8 .text:000539F0 STRB R3, [R6,#0x12C] .text:000539F4 LDR R1, [R6,#4] .text:000539F8 LDRB R0, [R1] .text:000539FC CMP R0, #0 .text:00053A00 BNE loc_53A10 .text:00053A04 LDRB R3, [R6,#0x12C] .text:00053A08 TST R3, #3 .text:00053A0C LDMEQDB R11, {R4-R8,R10,R11,SP,PC} .text:00053A10 .text:00053A10 loc_53A10 ; CODE XREF: call_init+3Cj .text:00053A10 LDR R3, [R6,#0x48] .text:00053A14 CMP R3, #0 .text:00053A18 BNE loc_53A28 .text:00053A1C LDR R3, [R6,#0x7C] .text:00053A20 CMP R3, #0 .text:00053A24 LDMEQDB R11, {R4-R8,R10,R11,SP,PC} .text:00053A28 .text:00053A28 loc_53A28 ; CODE XREF: call_init+54j .text:00053A28 LDR R3, =_dl_debug_mask .text:00053A2C LDR R2, [R3] .text:00053A30 TST R2, #2 .text:00053A34 BEQ loc_53A50 .text:00053A38 CMP R0, #0 .text:00053A3C LDREQ R3, =_dl_argv .text:00053A40 LDREQ R2, [R3] .text:00053A44 LDREQ R1, [R2] .text:00053A48 LDR R0, =aCallingInitS ; "\ncalling init: %s\n\n" .text:00053A4C BL _dl_debug_printf .text:00053A50 .text:00053A50 loc_53A50 ; CODE XREF: call_init+70j .text:00053A50 LDR R2, [R6,#0x48] .text:00053A54 CMP R2, #0 .text:00053A58 BEQ loc_53A7C .text:00053A5C MOV R0, R10 .text:00053A60 LDR R3, [R6] .text:00053A64 MOV R1, R8 .text:00053A68 LDR R12, [R2,#4] .text:00053A6C MOV R2, R7 .text:00053A70 ADD R3, R3, R12 .text:00053A74 MOV LR, PC .text:00053A78 MOV PC, R3 .text:00053A7C .text:00053A7C loc_53A7C ; CODE XREF: call_init+94j .text:00053A7C LDR R1, [R6,#0x7C] .text:00053A80 CMP R1, #0 .text:00053A84 LDMEQDB R11, {R4-R8,R10,R11,SP,PC} .text:00053A88 LDR R3, [R6,#0x84] .text:00053A8C LDR R1, [R1,#4] .text:00053A90 LDR R2, [R3,#4] .text:00053A94 MOV R4, #0 .text:00053A98 LDR R3, [R6] .text:00053A9C MOV R5, R2,LSR#2 .text:00053AA0 CMP R4, R5 .text:00053AA4 ADD R6, R1, R3 .text:00053AA8 LDMCSDB R11, {R4-R8,R10,R11,SP,PC} .text:00053AAC .text:00053AAC loc_53AAC ; CODE XREF: call_init+104j .text:00053AAC MOV R0, R10 .text:00053AB0 MOV R1, R8 .text:00053AB4 MOV R2, R7 .text:00053AB8 MOV LR, PC .text:00053ABC LDR PC, [R6,R4,LSL#2] .text:00053AC0 ADD R4, R4, #1 .text:00053AC4 CMP R4, R5 .text:00053AC8 BCC loc_53AAC .text:00053ACC LDMDB R11, {R4-R8,R10,R11,SP,PC} .text:00053ACC ; End of function call_init .text:00053ACC .text:00053ACC ; --------------------------------------------------------------------------- .text:00053AD0 off_53AD0 DCD _dl_debug_mask ; DATA XREF: call_init:loc_53A28r .text:00053AD4 off_53AD4 DCD _dl_argv ; DATA XREF: call_init+78r .text:00053AD8 off_53AD8 DCD aCallingInitS ; DATA XREF: call_init+84r .text:00053AD8 ; "\ncalling init: %s\n\n" .text:00053ADC .text:00053ADC ; =============== S U B R O U T I N E ======================================= .text:00053ADC .text:00053ADC ; Attributes: bp-based frame .text:00053ADC .text:00053ADC EXPORT _dl_init .text:00053ADC _dl_init ; CODE XREF: dl_open_worker+35Cp .text:00053ADC MOV R12, SP .text:00053AE0 STMFD SP!, {R4-R12,LR,PC} .text:00053AE4 SUB R11, R12, #4 .text:00053AE8 MOV R7, R0 .text:00053AEC MOV R9, R1 .text:00053AF0 LDR R5, =_dl_initfirst .text:00053AF4 MOV R10, R2 .text:00053AF8 LDR R12, [R5] .text:00053AFC MOV R8, R3 .text:00053B00 LDR R4, [R7,#0x98] .text:00053B04 CMP R12, #0 .text:00053B08 BEQ loc_53B1C .text:00053B0C MOV R0, R12 .text:00053B10 BL call_init .text:00053B14 MOV R3, #0 .text:00053B18 STR R3, [R5] .text:00053B1C .text:00053B1C loc_53B1C ; CODE XREF: _dl_init+2Cj .text:00053B1C CMP R4, #0 .text:00053B20 BEQ loc_53B9C .text:00053B24 LDR R3, [R4,#4] .text:00053B28 MOVS R4, R3,LSR#2 .text:00053B2C BEQ loc_53B9C .text:00053B30 LDR R3, =_dl_debug_mask .text:00053B34 LDR R2, [R3] .text:00053B38 TST R2, #2 .text:00053B3C BEQ loc_53B60 .text:00053B40 LDR R1, [R7,#4] .text:00053B44 LDRB R3, [R1] .text:00053B48 CMP R3, #0 .text:00053B4C LDREQ R3, =_dl_argv .text:00053B50 LDREQ R2, [R3] .text:00053B54 LDREQ R1, [R2] .text:00053B58 LDR R0, =aCallingPreinit ; "\ncalling preinit: %s\n\n" .text:00053B5C BL _dl_debug_printf .text:00053B60 .text:00053B60 loc_53B60 ; CODE XREF: _dl_init+60j .text:00053B60 LDR R3, [R7,#0x98] .text:00053B64 LDR R2, [R3,#4] .text:00053B68 MOV R5, #0 .text:00053B6C LDR R3, [R7] .text:00053B70 CMP R5, R4 .text:00053B74 ADD R6, R2, R3 .text:00053B78 BCS loc_53B9C .text:00053B7C .text:00053B7C loc_53B7C ; CODE XREF: _dl_init+BCj .text:00053B7C MOV R0, R9 .text:00053B80 MOV R1, R10 .text:00053B84 MOV R2, R8 .text:00053B88 MOV LR, PC .text:00053B8C LDR PC, [R6,R5,LSL#2] .text:00053B90 ADD R5, R5, #1 .text:00053B94 CMP R5, R4 .text:00053B98 BCC loc_53B7C .text:00053B9C .text:00053B9C loc_53B9C ; CODE XREF: _dl_init+44j .text:00053B9C ; _dl_init+50j ... .text:00053B9C MOV R0, #0 .text:00053BA0 BL _dl_debug_initialize .text:00053BA4 MOV R5, R0 .text:00053BA8 MOV R3, #1 .text:00053BAC STR R3, [R5,#0xC] .text:00053BB0 BL _dl_debug_state .text:00053BB4 LDR R4, [R7,#0xFC] .text:00053BB8 B loc_53BD4 .text:00053BBC ; --------------------------------------------------------------------------- .text:00053BBC .text:00053BBC loc_53BBC ; CODE XREF: _dl_init+104j .text:00053BBC MOV R1, R9 .text:00053BC0 LDR R3, [R7,#0x184] .text:00053BC4 MOV R2, R10 .text:00053BC8 LDR R0, [R3,R4,LSL#2] .text:00053BCC MOV R3, R8 .text:00053BD0 BL call_init .text:00053BD4 .text:00053BD4 loc_53BD4 ; CODE XREF: _dl_init+DCj .text:00053BD4 MOV R3, R4 .text:00053BD8 SUB R4, R4, #1 .text:00053BDC CMP R3, #0 .text:00053BE0 BNE loc_53BBC .text:00053BE4 MOV R4, #0 .text:00053BE8 STR R4, [R5,#0xC] .text:00053BEC BL _dl_debug_state .text:00053BF0 LDR R3, =_dl_starting_up .text:00053BF4 STR R4, [R3] .text:00053BF8 LDMDB R11, {R4-R11,SP,PC} .text:00053BF8 ; End of function _dl_init .text:00053BF8 .text:00053BF8 ; --------------------------------------------------------------------------- .text:00053BFC off_53BFC DCD _dl_initfirst ; DATA XREF: _dl_init+14r .text:00053C00 off_53C00 DCD _dl_debug_mask ; DATA XREF: _dl_init+54r .text:00053C04 off_53C04 DCD _dl_argv ; DATA XREF: _dl_init+70r .text:00053C08 off_53C08 DCD aCallingPreinit ; DATA XREF: _dl_init+7Cr .text:00053C08 ; "\ncalling preinit: %s\n\n" .text:00053C0C off_53C0C DCD _dl_starting_up ; DATA XREF: _dl_init+114r .text:00053C10 .text:00053C10 ; =============== S U B R O U T I N E ======================================= .text:00053C10 .text:00053C10 ; Attributes: bp-based frame .text:00053C10 .text:00053C10 EXPORT _dl_debug_initialize .text:00053C10 _dl_debug_initialize ; CODE XREF: _dl_init+C4p .text:00053C10 MOV R12, SP .text:00053C14 STMFD SP!, {R11,R12,LR,PC} .text:00053C18 LDR R1, =_r_debug .text:00053C1C LDR R3, [R1,#(_r_debug+8 - 0x7A7E0)] .text:00053C20 SUB R11, R12, #4 .text:00053C24 CMP R3, #0 .text:00053C28 BNE loc_53C4C .text:00053C2C MOV R3, #1 .text:00053C30 STR R3, [R1] .text:00053C34 STR R0, [R1,#(_r_debug+0x10 - 0x7A7E0)] .text:00053C38 LDR R3, =_dl_debug_state .text:00053C3C STR R3, [R1,#(_r_debug+8 - 0x7A7E0)] .text:00053C40 LDR R2, =_dl_loaded .text:00053C44 LDR R3, [R2] .text:00053C48 STR R3, [R1,#(_r_debug+4 - 0x7A7E0)] .text:00053C4C .text:00053C4C loc_53C4C ; CODE XREF: _dl_debug_initialize+18j .text:00053C4C MOV R0, R1 .text:00053C50 LDMDB R11, {R11,SP,PC} .text:00053C50 ; End of function _dl_debug_initialize .text:00053C50 .text:00053C50 ; --------------------------------------------------------------------------- .text:00053C54 off_53C54 DCD _r_debug ; DATA XREF: _dl_debug_initialize+8r .text:00053C58 off_53C58 DCD _dl_debug_state ; DATA XREF: _dl_debug_initialize+28r .text:00053C5C off_53C5C DCD _dl_loaded ; DATA XREF: _dl_debug_initialize+30r .text:00053C60 .text:00053C60 ; =============== S U B R O U T I N E ======================================= .text:00053C60 .text:00053C60 ; Attributes: bp-based frame .text:00053C60 .text:00053C60 EXPORT _dl_debug_state .text:00053C60 _dl_debug_state ; CODE XREF: _dl_close+3C0p .text:00053C60 ; _dl_close+5A8p ... .text:00053C60 MOV R12, SP .text:00053C64 STMFD SP!, {R11,R12,LR,PC} .text:00053C68 SUB R11, R12, #4 .text:00053C6C LDMDB R11, {R11,SP,PC} .text:00053C6C ; End of function _dl_debug_state .text:00053C6C .text:00053C70 .text:00053C70 ; =============== S U B R O U T I N E ======================================= .text:00053C70 .text:00053C70 ; Attributes: bp-based frame .text:00053C70 .text:00053C70 match_symbol ; CODE XREF: _dl_check_map_versions+2DCp .text:00053C70 .text:00053C70 var_68 = -0x68 .text:00053C70 var_64 = -0x64 .text:00053C70 var_60 = -0x60 .text:00053C70 var_5C = -0x5C .text:00053C70 var_58 = -0x58 .text:00053C70 var_54 = -0x54 .text:00053C70 var_50 = -0x50 .text:00053C70 var_4C = -0x4C .text:00053C70 var_35 = -0x35 .text:00053C70 var_34 = -0x34 .text:00053C70 var_30 = -0x30 .text:00053C70 var_2C = -0x2C .text:00053C70 arg_0 = 4 .text:00053C70 arg_4 = 8 .text:00053C70 .text:00053C70 MOV R12, SP .text:00053C74 STMFD SP!, {R4-R12,LR,PC} .text:00053C78 SUB R11, R12, #4 .text:00053C7C MOV R7, R0 .text:00053C80 MOV R9, R1 .text:00053C84 MOV R5, R3 .text:00053C88 LDR R12, =_dl_debug_mask .text:00053C8C SUB SP, SP, #0x40 .text:00053C90 LDR LR, [R12] .text:00053C94 MOV R6, R2 .text:00053C98 LDR R3, [R5,#0x2C] .text:00053C9C TST LR, #0x10 .text:00053CA0 LDR R10, [R3,#4] .text:00053CA4 BEQ loc_53CD0 .text:00053CA8 LDR R2, [R5,#4] .text:00053CAC LDRB R3, [R2] .text:00053CB0 CMP R3, #0 .text:00053CB4 LDREQ R3, =_dl_argv .text:00053CB8 LDREQ R2, [R3] .text:00053CBC LDREQ R2, [R2] .text:00053CC0 MOV R1, R6 .text:00053CC4 LDR R0, =aCheckingForVer ; "checking for version `%s' in file %s re"... .text:00053CC8 MOV R3, R7 .text:00053CCC BL _dl_debug_printf .text:00053CD0 .text:00053CD0 loc_53CD0 ; CODE XREF: match_symbol+34j .text:00053CD0 LDR R3, [R5,#0xAC] .text:00053CD4 CMP R3, #0 .text:00053CD8 BNE loc_53D78 .text:00053CDC LDR R0, [R11,#arg_0] .text:00053CE0 CMP R0, #0 .text:00053CE4 BEQ loc_53F78 .text:00053CE8 LDR R1, [R5,#4] .text:00053CEC LDRB R3, [R1] .text:00053CF0 CMP R3, #0 .text:00053CF4 MOVNE R6, R1 .text:00053CF8 LDREQ R3, =_dl_argv .text:00053CFC LDREQ R2, [R3] .text:00053D00 LDREQ R6, [R2] .text:00053D04 STR R7, [R11,#var_30] .text:00053D08 LDR R3, =aNoVersionInfor ; "no version information available (requi"... .text:00053D0C STR R3, [R11,#var_34] .text:00053D10 MOV R5, #1 .text:00053D14 MOV R4, #0 .text:00053D18 LDR R3, =asc_6299C ; ")" .text:00053D1C SUB R7, R11, #-var_34 .text:00053D20 STR R3, [R11,#var_2C] .text:00053D24 .text:00053D24 loc_53D24 ; CODE XREF: match_symbol+C8j .text:00053D24 LDR R0, [R7,R4,LSL#2] .text:00053D28 ADD R4, R4, #1 .text:00053D2C BL strlen .text:00053D30 ADD R5, R5, R0 .text:00053D34 CMP R4, #2 .text:00053D38 BLS loc_53D24 .text:00053D3C ADD R3, R5, #3 .text:00053D40 BIC R3, R3, #3 .text:00053D44 RSB SP, R3, SP .text:00053D48 MOV R5, SP .text:00053D4C MOV R0, SP .text:00053D50 MOV R4, #0 .text:00053D54 .text:00053D54 loc_53D54 ; CODE XREF: match_symbol+F4j .text:00053D54 LDR R1, [R7,R4,LSL#2] .text:00053D58 ADD R4, R4, #1 .text:00053D5C BL stpcpy .text:00053D60 CMP R4, #2 .text:00053D64 BLS loc_53D54 .text:00053D68 MOV R0, #0 .text:00053D6C MOV R1, R6 .text:00053D70 MOV R2, R5 .text:00053D74 B loc_53F74 .text:00053D78 ; --------------------------------------------------------------------------- .text:00053D78 .text:00053D78 loc_53D78 ; CODE XREF: match_symbol+68j .text:00053D78 LDR R2, [R3,#4] .text:00053D7C CMP R2, #0 .text:00053D80 BNE loc_53D98 .text:00053D84 LDR R0, =aDef_offset0 ; "def_offset != 0" .text:00053D88 LDR R1, =aDlVersion_c ; "dl-version.c" .text:00053D8C LDR R3, =aMatch_symbol ; "match_symbol" .text:00053D90 MOV R2, #0x6B .text:00053D94 BL __assert_fail .text:00053D98 ; --------------------------------------------------------------------------- .text:00053D98 .text:00053D98 loc_53D98 ; CODE XREF: match_symbol+110j .text:00053D98 LDR R3, [R5] .text:00053D9C MOV R8, #0 .text:00053DA0 ADD R4, R3, R2 .text:00053DA4 .text:00053DA4 loc_53DA4 ; CODE XREF: match_symbol+250j .text:00053DA4 LDR R3, [R4] .text:00053DA8 MOV R3, R3,LSL#16 .text:00053DAC CMP R3, #0x10000 .text:00053DB0 BEQ loc_53E8C .text:00053DB4 STRB R8, [R11,#var_35] .text:00053DB8 LDR R1, [R5,#4] .text:00053DBC LDRB R3, [R1] .text:00053DC0 CMP R3, #0 .text:00053DC4 MOVNE R9, R1 .text:00053DC8 LDREQ R3, =_dl_argv .text:00053DCC LDREQ R2, [R3] .text:00053DD0 LDREQ R9, [R2] .text:00053DD4 LDR R3, =aUnsupportedVer ; "unsupported version " .text:00053DD8 STR R3, [R11,#var_54] .text:00053DDC LDR R10, =_itoa_lower_digits .text:00053DE0 SUB R6, R11, #-var_35 .text:00053DE4 LDRB R2, [R4] .text:00053DE8 SUB R7, R11, #-var_34 .text:00053DEC LDRB R3, [R4,#1] .text:00053DF0 SUB R5, R11, #-var_54 .text:00053DF4 LDR R8, =aOfVerdefRecord ; " of Verdef record" .text:00053DF8 ORR R4, R2, R3,LSL#8 .text:00053DFC .text:00053DFC loc_53DFC ; CODE XREF: match_symbol+1B0j .text:00053DFC MOV R0, R4 .text:00053E00 MOV R1, #0xA .text:00053E04 BL __umodsi3 .text:00053E08 LDRB R3, [R10,R0] .text:00053E0C STRB R3, [R6,#-1]! .text:00053E10 MOV R0, R4 .text:00053E14 MOV R1, #0xA .text:00053E18 BL __udivsi3 .text:00053E1C SUBS R4, R0, #0 .text:00053E20 BNE loc_53DFC .text:00053E24 STR R6, [R11,#var_50] .text:00053E28 STR R8, [R11,#var_4C] .text:00053E2C LDMIA R5, {R0-R2} .text:00053E30 MOV R6, #1 .text:00053E34 STMIA R7, {R0-R2} .text:00053E38 .text:00053E38 loc_53E38 ; CODE XREF: match_symbol+1DCj .text:00053E38 LDR R0, [R7,R4,LSL#2] .text:00053E3C ADD R4, R4, #1 .text:00053E40 BL strlen .text:00053E44 ADD R6, R6, R0 .text:00053E48 CMP R4, #2 .text:00053E4C BLS loc_53E38 .text:00053E50 ADD R3, R6, #3 .text:00053E54 BIC R3, R3, #3 .text:00053E58 RSB SP, R3, SP .text:00053E5C MOV R5, SP .text:00053E60 MOV R0, SP .text:00053E64 MOV R4, #0 .text:00053E68 .text:00053E68 loc_53E68 ; CODE XREF: match_symbol+208j .text:00053E68 LDR R1, [R7,R4,LSL#2] .text:00053E6C ADD R4, R4, #1 .text:00053E70 BL stpcpy .text:00053E74 CMP R4, #2 .text:00053E78 BLS loc_53E68 .text:00053E7C MOV R0, #0 .text:00053E80 MOV R1, R9 .text:00053E84 MOV R2, R5 .text:00053E88 BL _dl_signal_error .text:00053E8C ; --------------------------------------------------------------------------- .text:00053E8C .text:00053E8C loc_53E8C ; CODE XREF: match_symbol+140j .text:00053E8C LDR R3, [R4,#8] .text:00053E90 CMP R9, R3 .text:00053E94 BNE loc_53EB4 .text:00053E98 LDR R3, [R4,#0xC] .text:00053E9C LDR R1, [R4,R3] .text:00053EA0 MOV R0, R6 .text:00053EA4 ADD R1, R10, R1 .text:00053EA8 BL strcmp .text:00053EAC CMP R0, #0 .text:00053EB0 BEQ loc_5405C .text:00053EB4 .text:00053EB4 loc_53EB4 ; CODE XREF: match_symbol+224j .text:00053EB4 LDR R3, [R4,#0x10] .text:00053EB8 CMP R3, #0 .text:00053EBC ADDNE R4, R4, R3 .text:00053EC0 BNE loc_53DA4 .text:00053EC4 LDR R3, [R11,#arg_4] .text:00053EC8 CMP R3, #0 .text:00053ECC BEQ loc_53F80 .text:00053ED0 LDR R3, [R11,#arg_0] .text:00053ED4 CMP R3, #0 .text:00053ED8 BEQ loc_53F78 .text:00053EDC LDR R1, [R5,#4] .text:00053EE0 LDRB R3, [R1] .text:00053EE4 CMP R3, #0 .text:00053EE8 MOVNE R8, R1 .text:00053EEC LDREQ R3, =_dl_argv .text:00053EF0 LDREQ R2, [R3] .text:00053EF4 LDREQ R8, [R2] .text:00053EF8 STR R6, [R11,#var_64] .text:00053EFC STR R7, [R11,#var_5C] .text:00053F00 LDR R3, =aWeakVersion ; "weak version `" .text:00053F04 STR R3, [R11,#var_68] .text:00053F08 LDR R2, =aNotFoundRequir ; "' not found (required by " .text:00053F0C STR R2, [R11,#var_60] .text:00053F10 MOV R6, #1 .text:00053F14 MOV R4, #0 .text:00053F18 LDR R3, =asc_6299C ; ")" .text:00053F1C SUB R5, R11, #-var_68 .text:00053F20 STR R3, [R11,#var_58] .text:00053F24 .text:00053F24 loc_53F24 ; CODE XREF: match_symbol+2C8j .text:00053F24 LDR R0, [R5,R4,LSL#2] .text:00053F28 ADD R4, R4, #1 .text:00053F2C BL strlen .text:00053F30 ADD R6, R6, R0 .text:00053F34 CMP R4, #4 .text:00053F38 BLS loc_53F24 .text:00053F3C ADD R3, R6, #3 .text:00053F40 BIC R3, R3, #3 .text:00053F44 RSB SP, R3, SP .text:00053F48 MOV R6, SP .text:00053F4C MOV R0, SP .text:00053F50 MOV R4, #0 .text:00053F54 .text:00053F54 loc_53F54 ; CODE XREF: match_symbol+2F4j .text:00053F54 LDR R1, [R5,R4,LSL#2] .text:00053F58 ADD R4, R4, #1 .text:00053F5C BL stpcpy .text:00053F60 CMP R4, #4 .text:00053F64 BLS loc_53F54 .text:00053F68 MOV R0, #0 .text:00053F6C MOV R1, R8 .text:00053F70 MOV R2, R6 .text:00053F74 .text:00053F74 loc_53F74 ; CODE XREF: match_symbol+104j .text:00053F74 BL _dl_signal_cerror .text:00053F78 .text:00053F78 loc_53F78 ; CODE XREF: match_symbol+74j .text:00053F78 ; match_symbol+268j .text:00053F78 MOV R0, #0 .text:00053F7C B loc_5405C .text:00053F80 ; --------------------------------------------------------------------------- .text:00053F80 .text:00053F80 loc_53F80 ; CODE XREF: match_symbol+25Cj .text:00053F80 LDR R1, [R5,#4] .text:00053F84 LDRB R3, [R1] .text:00053F88 CMP R3, #0 .text:00053F8C BEQ loc_53FCC .text:00053F90 MOV R8, R1 .text:00053F94 B loc_53FD8 .text:00053F94 ; --------------------------------------------------------------------------- .text:00053F98 off_53F98 DCD _dl_debug_mask ; DATA XREF: match_symbol+18r .text:00053F9C off_53F9C DCD _dl_argv ; DATA XREF: match_symbol+44r .text:00053F9C ; match_symbol+88r ... .text:00053FA0 off_53FA0 DCD aCheckingForVer ; DATA XREF: match_symbol+54r .text:00053FA0 ; "checking for version `%s' in file %s re"... .text:00053FA4 off_53FA4 DCD aNoVersionInfor ; DATA XREF: match_symbol+98r .text:00053FA4 ; "no version information available (requi"... .text:00053FA8 off_53FA8 DCD asc_6299C ; DATA XREF: match_symbol+A8r .text:00053FA8 ; match_symbol+2A8r .text:00053FA8 ; ")" .text:00053FAC off_53FAC DCD aDef_offset0 ; DATA XREF: match_symbol+114r .text:00053FAC ; "def_offset != 0" .text:00053FB0 off_53FB0 DCD aDlVersion_c ; DATA XREF: match_symbol+118r .text:00053FB0 ; "dl-version.c" .text:00053FB4 off_53FB4 DCD aMatch_symbol ; DATA XREF: match_symbol+11Cr .text:00053FB4 ; "match_symbol" .text:00053FB8 off_53FB8 DCD aUnsupportedVer ; DATA XREF: match_symbol+164r .text:00053FB8 ; "unsupported version " .text:00053FBC off_53FBC DCD _itoa_lower_digits ; DATA XREF: match_symbol+16Cr .text:00053FC0 off_53FC0 DCD aOfVerdefRecord ; DATA XREF: match_symbol+184r .text:00053FC0 ; " of Verdef record" .text:00053FC4 off_53FC4 DCD aWeakVersion ; DATA XREF: match_symbol+290r .text:00053FC4 ; "weak version `" .text:00053FC8 off_53FC8 DCD aNotFoundRequir ; DATA XREF: match_symbol+298r .text:00053FC8 ; "' not found (required by " .text:00053FCC ; --------------------------------------------------------------------------- .text:00053FCC .text:00053FCC loc_53FCC ; CODE XREF: match_symbol+31Cj .text:00053FCC LDR R3, =_dl_argv .text:00053FD0 LDR R2, [R3] .text:00053FD4 LDR R8, [R2] .text:00053FD8 .text:00053FD8 loc_53FD8 ; CODE XREF: match_symbol+324j .text:00053FD8 STR R6, [R11,#var_64] .text:00053FDC STR R7, [R11,#var_5C] .text:00053FE0 LDR R3, =aVersion_0 ; "version `" .text:00053FE4 STR R3, [R11,#var_68] .text:00053FE8 LDR R2, =aNotFoundRequir ; "' not found (required by " .text:00053FEC STR R2, [R11,#var_60] .text:00053FF0 MOV R6, #1 .text:00053FF4 MOV R4, #0 .text:00053FF8 LDR R3, =asc_6299C ; ")" .text:00053FFC SUB R5, R11, #-var_68 .text:00054000 STR R3, [R11,#var_58] .text:00054004 .text:00054004 loc_54004 ; CODE XREF: match_symbol+3A8j .text:00054004 LDR R0, [R5,R4,LSL#2] .text:00054008 ADD R4, R4, #1 .text:0005400C BL strlen .text:00054010 ADD R6, R6, R0 .text:00054014 CMP R4, #4 .text:00054018 BLS loc_54004 .text:0005401C ADD R3, R6, #3 .text:00054020 BIC R3, R3, #3 .text:00054024 RSB SP, R3, SP .text:00054028 MOV R6, SP .text:0005402C MOV R0, SP .text:00054030 MOV R4, #0 .text:00054034 .text:00054034 loc_54034 ; CODE XREF: match_symbol+3D4j .text:00054034 LDR R1, [R5,R4,LSL#2] .text:00054038 ADD R4, R4, #1 .text:0005403C BL stpcpy .text:00054040 CMP R4, #4 .text:00054044 BLS loc_54034 .text:00054048 MOV R0, #0 .text:0005404C MOV R1, R8 .text:00054050 MOV R2, R6 .text:00054054 BL _dl_signal_cerror .text:00054058 MOV R0, #1 .text:0005405C .text:0005405C loc_5405C ; CODE XREF: match_symbol+240j .text:0005405C ; match_symbol+30Cj .text:0005405C B locret_54070 .text:0005405C ; --------------------------------------------------------------------------- .text:00054060 off_54060 DCD _dl_argv ; DATA XREF: match_symbol:loc_53FCCr .text:00054064 off_54064 DCD aVersion_0 ; DATA XREF: match_symbol+370r .text:00054064 ; "version `" .text:00054068 off_54068 DCD aNotFoundRequir ; DATA XREF: match_symbol+378r .text:00054068 ; "' not found (required by " .text:0005406C off_5406C DCD asc_6299C ; DATA XREF: match_symbol+388r .text:0005406C ; ")" .text:00054070 ; --------------------------------------------------------------------------- .text:00054070 .text:00054070 locret_54070 ; CODE XREF: match_symbol:loc_5405Cj .text:00054070 LDMDB R11, {R4-R11,SP,PC} .text:00054070 ; End of function match_symbol .text:00054070 .text:00054074 .text:00054074 ; =============== S U B R O U T I N E ======================================= .text:00054074 .text:00054074 ; Attributes: bp-based frame .text:00054074 .text:00054074 EXPORT _dl_check_map_versions .text:00054074 _dl_check_map_versions ; CODE XREF: dl_open_worker+258p .text:00054074 ; _dl_check_all_versions+3Cp .text:00054074 .text:00054074 var_74 = -0x74 .text:00054074 var_70 = -0x70 .text:00054074 var_6C = -0x6C .text:00054074 var_68 = -0x68 .text:00054074 var_64 = -0x64 .text:00054074 var_60 = -0x60 .text:00054074 var_5C = -0x5C .text:00054074 var_58 = -0x58 .text:00054074 var_54 = -0x54 .text:00054074 var_50 = -0x50 .text:00054074 var_4C = -0x4C .text:00054074 var_48 = -0x48 .text:00054074 var_29 = -0x29 .text:00054074 .text:00054074 MOV R12, SP .text:00054078 STMFD SP!, {R4-R12,LR,PC} .text:0005407C SUB R11, R12, #4 .text:00054080 MOV R3, #0 .text:00054084 SUB SP, SP, #0x4C .text:00054088 STR R3, [R11,#var_60] .text:0005408C MOV R8, R0 .text:00054090 LDR R3, [R8,#0x2C] .text:00054094 STR R1, [R11,#var_58] .text:00054098 STR R2, [R11,#var_5C] .text:0005409C LDR R0, [R11,#var_60] .text:000540A0 CMP R3, #0 .text:000540A4 STR R0, [R11,#var_6C] .text:000540A8 BEQ locret_545BC .text:000540AC LDR R1, [R8,#0xA4] .text:000540B0 STR R1, [R11,#var_64] .text:000540B4 LDR R9, [R3,#4] .text:000540B8 LDR R2, [R8,#0xAC] .text:000540BC CMP R1, #0 .text:000540C0 STR R2, [R11,#var_68] .text:000540C4 BEQ loc_543A4 .text:000540C8 LDR R3, [R11,#var_64] .text:000540CC LDR R1, [R8] .text:000540D0 LDR R2, [R3,#4] .text:000540D4 LDR R3, [R1,R2] .text:000540D8 ADD R10, R1, R2 .text:000540DC MOV R3, R3,LSL#16 .text:000540E0 CMP R3, #0x10000 .text:000540E4 BEQ loc_541C4 .text:000540E8 LDR R0, [R11,#var_60] .text:000540EC STRB R0, [R11,#var_29] .text:000540F0 LDR R1, [R8,#4] .text:000540F4 LDRB R3, [R1] .text:000540F8 CMP R3, #0 .text:000540FC MOVNE R9, R1 .text:00054100 LDREQ R3, =_dl_argv .text:00054104 LDREQ R2, [R3] .text:00054108 LDREQ R9, [R2] .text:0005410C LDR R3, =aUnsupportedVer ; "unsupported version " .text:00054110 STR R3, [R11,#var_54] .text:00054114 SUB R6, R11, #-var_29 .text:00054118 LDRB R2, [R10] .text:0005411C SUB R5, R11, #-var_48 .text:00054120 LDRB R3, [R10,#1] .text:00054124 SUB R7, R11, #-var_54 .text:00054128 LDR R8, =_itoa_lower_digits .text:0005412C ORR R4, R2, R3,LSL#8 .text:00054130 .text:00054130 loc_54130 ; CODE XREF: _dl_check_map_versions+E0j .text:00054130 MOV R0, R4 .text:00054134 MOV R1, #0xA .text:00054138 BL __umodsi3 .text:0005413C LDRB R3, [R8,R0] .text:00054140 STRB R3, [R6,#-1]! .text:00054144 MOV R0, R4 .text:00054148 MOV R1, #0xA .text:0005414C BL __udivsi3 .text:00054150 SUBS R4, R0, #0 .text:00054154 BNE loc_54130 .text:00054158 STR R6, [R11,#var_50] .text:0005415C LDR R3, =aOfVerneedRecor ; " of Verneed record\n" .text:00054160 STR R3, [R11,#var_4C] .text:00054164 LDMIA R7, {R0-R2} .text:00054168 MOV R6, #1 .text:0005416C STMIA R5, {R0-R2} .text:00054170 .text:00054170 loc_54170 ; CODE XREF: _dl_check_map_versions+110j .text:00054170 LDR R0, [R5,R4,LSL#2] .text:00054174 ADD R4, R4, #1 .text:00054178 BL strlen .text:0005417C ADD R6, R6, R0 .text:00054180 CMP R4, #2 .text:00054184 BLS loc_54170 .text:00054188 ADD R3, R6, #3 .text:0005418C BIC R3, R3, #3 .text:00054190 RSB SP, R3, SP .text:00054194 ADD R6, SP, #0x74+var_6C .text:00054198 MOV R0, R6 .text:0005419C MOV R4, #0 .text:000541A0 .text:000541A0 loc_541A0 ; CODE XREF: _dl_check_map_versions+13Cj .text:000541A0 LDR R1, [R5,R4,LSL#2] .text:000541A4 ADD R4, R4, #1 .text:000541A8 BL stpcpy .text:000541AC CMP R4, #2 .text:000541B0 BLS loc_541A0 .text:000541B4 MOV R0, #0 .text:000541B8 MOV R1, R9 .text:000541BC MOV R2, R6 .text:000541C0 BL _dl_signal_error .text:000541C4 ; --------------------------------------------------------------------------- .text:000541C4 .text:000541C4 loc_541C4 ; CODE XREF: _dl_check_map_versions+70j .text:000541C4 ; _dl_check_map_versions+32Cj .text:000541C4 LDR R1, =_dl_loaded .text:000541C8 LDR R3, [R10,#4] .text:000541CC LDR R5, [R1] .text:000541D0 ADD R7, R9, R3 .text:000541D4 CMP R5, #0 .text:000541D8 BEQ loc_54244 .text:000541DC .text:000541DC loc_541DC ; CODE XREF: _dl_check_map_versions+1CCj .text:000541DC LDR R1, [R5,#4] .text:000541E0 MOV R0, R7 .text:000541E4 BL strcmp .text:000541E8 LDR R4, [R5,#0x14] .text:000541EC CMP R0, #0 .text:000541F0 MOVNE R6, #0 .text:000541F4 MOVEQ R6, #1 .text:000541F8 CMP R4, #0 .text:000541FC CMPNE R0, #0 .text:00054200 BEQ loc_54230 .text:00054204 .text:00054204 loc_54204 ; CODE XREF: _dl_check_map_versions+1B8j .text:00054204 LDR R1, [R4] .text:00054208 MOV R0, R7 .text:0005420C BL strcmp .text:00054210 CMP R0, #0 .text:00054214 MOVEQ R6, #1 .text:00054218 LDRNE R4, [R4,#4] .text:0005421C CMP R4, #0 .text:00054220 EORNE R3, R6, #1 .text:00054224 MOVEQ R3, #0 .text:00054228 CMP R3, #0 .text:0005422C BNE loc_54204 .text:00054230 .text:00054230 loc_54230 ; CODE XREF: _dl_check_map_versions+18Cj .text:00054230 CMP R6, #0 .text:00054234 BNE loc_542CC .text:00054238 LDR R5, [R5,#0xC] .text:0005423C CMP R5, #0 .text:00054240 BNE loc_541DC .text:00054244 .text:00054244 loc_54244 ; CODE XREF: _dl_check_map_versions+164j .text:00054244 LDR R3, [R8,#0xFC] .text:00054248 MOV R6, #0 .text:0005424C CMP R6, R3 .text:00054250 BCS loc_542C8 .text:00054254 .text:00054254 loc_54254 ; CODE XREF: _dl_check_map_versions+250j .text:00054254 LDR R3, [R8,#0xF8] .text:00054258 LDR R4, [R3,R6,LSL#2] .text:0005425C LDR R1, [R4,#4] .text:00054260 MOV R0, R7 .text:00054264 BL strcmp .text:00054268 LDR R4, [R4,#0x14] .text:0005426C CMP R0, #0 .text:00054270 MOVNE R5, #0 .text:00054274 MOVEQ R5, #1 .text:00054278 CMP R4, #0 .text:0005427C CMPNE R0, #0 .text:00054280 BEQ loc_542B0 .text:00054284 .text:00054284 loc_54284 ; CODE XREF: _dl_check_map_versions+238j .text:00054284 LDR R1, [R4] .text:00054288 MOV R0, R7 .text:0005428C BL strcmp .text:00054290 CMP R0, #0 .text:00054294 MOVEQ R5, #1 .text:00054298 LDRNE R4, [R4,#4] .text:0005429C CMP R4, #0 .text:000542A0 EORNE R3, R5, #1 .text:000542A4 MOVEQ R3, #0 .text:000542A8 CMP R3, #0 .text:000542AC BNE loc_54284 .text:000542B0 .text:000542B0 loc_542B0 ; CODE XREF: _dl_check_map_versions+20Cj .text:000542B0 CMP R5, #0 .text:000542B4 BNE loc_542E8 .text:000542B8 LDR R3, [R8,#0xFC] .text:000542BC ADD R6, R6, #1 .text:000542C0 CMP R6, R3 .text:000542C4 BCC loc_54254 .text:000542C8 .text:000542C8 loc_542C8 ; CODE XREF: _dl_check_map_versions+1DCj .text:000542C8 MOV R5, #0 .text:000542CC .text:000542CC loc_542CC ; CODE XREF: _dl_check_map_versions+1C0j .text:000542CC ; _dl_check_map_versions+27Cj .text:000542CC CMP R5, #0 .text:000542D0 BNE loc_542F4 .text:000542D4 LDR R0, =aNeededVoid0 ; "needed != ((void *)0)" .text:000542D8 LDR R1, =aDlVersion_c ; "dl-version.c" .text:000542DC LDR R3, =a_dl_check_map_ ; "_dl_check_map_versions" .text:000542E0 MOV R2, #0xDA .text:000542E4 BL __assert_fail .text:000542E8 ; --------------------------------------------------------------------------- .text:000542E8 .text:000542E8 loc_542E8 ; CODE XREF: _dl_check_map_versions+240j .text:000542E8 LDR R3, [R8,#0xF8] .text:000542EC LDR R5, [R3,R6,LSL#2] .text:000542F0 B loc_542CC .text:000542F4 ; --------------------------------------------------------------------------- .text:000542F4 .text:000542F4 loc_542F4 ; CODE XREF: _dl_check_map_versions+25Cj .text:000542F4 LDR R2, [R11,#var_5C] .text:000542F8 CMP R2, #0 .text:000542FC BEQ loc_5430C .text:00054300 LDRB R3, [R5,#0x12D] .text:00054304 TST R3, #2 .text:00054308 BNE loc_54394 .text:0005430C .text:0005430C loc_5430C ; CODE XREF: _dl_check_map_versions+288j .text:0005430C LDR R3, [R10,#8] .text:00054310 ADD R4, R10, R3 .text:00054314 .text:00054314 loc_54314 ; CODE XREF: _dl_check_map_versions+31Cj .text:00054314 LDR R0, [R8,#4] .text:00054318 LDRB R3, [R0] .text:0005431C CMP R3, #0 .text:00054320 LDREQ R3, =_dl_argv .text:00054324 LDREQ R2, [R3] .text:00054328 LDREQ R0, [R2] .text:0005432C LDR R1, [R4] .text:00054330 LDR R3, [R11,#var_58] .text:00054334 LDR R2, [R4,#8] .text:00054338 STR R3, [SP,#0x74+var_74] .text:0005433C LDR R3, [R4,#4] .text:00054340 AND R3, R3, #2 .text:00054344 STR R3, [SP,#0x74+var_70] .text:00054348 ADD R2, R9, R2 .text:0005434C MOV R3, R5 .text:00054350 BL match_symbol .text:00054354 LDR R1, [R11,#var_60] .text:00054358 LDR R3, [R4,#4] .text:0005435C ORR R1, R1, R0 .text:00054360 STR R1, [R11,#var_60] .text:00054364 BIC R3, R3, #0x80000000 .text:00054368 MOV R3, R3,LSR#16 .text:0005436C MOV R3, R3,LSL#16 .text:00054370 LDR R0, [R11,#var_6C] .text:00054374 MOV R3, R3,LSR#16 .text:00054378 LDR R2, [R4,#0xC] .text:0005437C CMP R3, R0 .text:00054380 MOVCS R0, R3 .text:00054384 STR R0, [R11,#var_6C] .text:00054388 CMP R2, #0 .text:0005438C ADDNE R4, R4, R2 .text:00054390 BNE loc_54314 .text:00054394 .text:00054394 loc_54394 ; CODE XREF: _dl_check_map_versions+294j .text:00054394 LDR R3, [R10,#0xC] .text:00054398 CMP R3, #0 .text:0005439C ADDNE R10, R10, R3 .text:000543A0 BNE loc_541C4 .text:000543A4 .text:000543A4 loc_543A4 ; CODE XREF: _dl_check_map_versions+50j .text:000543A4 LDR R1, [R11,#var_68] .text:000543A8 CMP R1, #0 .text:000543AC BEQ loc_54404 .text:000543B0 LDR R3, [R8] .text:000543B4 LDR R2, [R1,#4] .text:000543B8 ADD R2, R3, R2 .text:000543BC LDR R1, [R2,#4] .text:000543C0 LDR R0, [R2,#0x10] .text:000543C4 MOV R12, 0xFFFF7FFF .text:000543C8 LDR R3, [R11,#var_6C] .text:000543CC MOV R1, R1,LSL#17 .text:000543D0 B loc_543EC .text:000543D4 ; --------------------------------------------------------------------------- .text:000543D4 .text:000543D4 loc_543D4 ; CODE XREF: _dl_check_map_versions+38Cj .text:000543D4 ADD R2, R2, R0 .text:000543D8 LDR R3, [R2,#4] .text:000543DC LDR R0, [R2,#0x10] .text:000543E0 AND R3, R3, R12 .text:000543E4 MOV R1, R3,LSL#17 .text:000543E8 LDR R3, [R11,#var_6C] .text:000543EC .text:000543EC loc_543EC ; CODE XREF: _dl_check_map_versions+35Cj .text:000543EC MOV R1, R1,LSR#17 .text:000543F0 CMP R1, R3 .text:000543F4 MOVCS R3, R1 .text:000543F8 CMP R0, #0 .text:000543FC STR R3, [R11,#var_6C] .text:00054400 BNE loc_543D4 .text:00054404 .text:00054404 loc_54404 ; CODE XREF: _dl_check_map_versions+338j .text:00054404 LDR R0, [R11,#var_6C] .text:00054408 CMP R0, #0 .text:0005440C BEQ loc_545B8 .text:00054410 ADD R4, R0, #1 .text:00054414 MOV R0, R4 .text:00054418 MOV R1, #0x10 .text:0005441C BL calloc .text:00054420 CMP R0, #0 .text:00054424 STR R0, [R8,#0x134] .text:00054428 BNE loc_54474 .text:0005442C LDR R1, [R8,#4] .text:00054430 LDRB R3, [R1] .text:00054434 CMP R3, #0 .text:00054438 LDREQ R3, =_dl_argv .text:0005443C LDREQ R2, [R3] .text:00054440 LDREQ R1, [R2] .text:00054444 LDR R2, =aCannotAlloca_3 ; "cannot allocate version reference table"... .text:00054448 MOV R0, #0xC .text:0005444C BL _dl_signal_error .text:0005444C ; --------------------------------------------------------------------------- .text:00054450 off_54450 DCD _dl_argv ; DATA XREF: _dl_check_map_versions+8Cr .text:00054450 ; _dl_check_map_versions+2ACr ... .text:00054454 off_54454 DCD aUnsupportedVer ; DATA XREF: _dl_check_map_versions+98r .text:00054454 ; "unsupported version " .text:00054458 off_54458 DCD _itoa_lower_digits ; DATA XREF: _dl_check_map_versions+B4r .text:0005445C off_5445C DCD aOfVerneedRecor ; DATA XREF: _dl_check_map_versions+E8r .text:0005445C ; " of Verneed record\n" .text:00054460 off_54460 DCD _dl_loaded ; DATA XREF: _dl_check_map_versions:loc_541C4r .text:00054464 off_54464 DCD aNeededVoid0 ; DATA XREF: _dl_check_map_versions+260r .text:00054464 ; "needed != ((void *)0)" .text:00054468 off_54468 DCD aDlVersion_c ; DATA XREF: _dl_check_map_versions+264r .text:00054468 ; "dl-version.c" .text:0005446C off_5446C DCD a_dl_check_map_ ; DATA XREF: _dl_check_map_versions+268r .text:0005446C ; "_dl_check_map_versions" .text:00054470 off_54470 DCD aCannotAlloca_3 ; DATA XREF: _dl_check_map_versions+3D0r .text:00054470 ; "cannot allocate version reference table"... .text:00054474 ; --------------------------------------------------------------------------- .text:00054474 .text:00054474 loc_54474 ; CODE XREF: _dl_check_map_versions+3B4j .text:00054474 STR R4, [R8,#0x130] .text:00054478 LDR R3, [R8,#0xDC] .text:0005447C LDR R1, [R11,#var_64] .text:00054480 LDR R2, [R3,#4] .text:00054484 CMP R1, #0 .text:00054488 STR R2, [R8,#0x144] .text:0005448C BEQ loc_5452C .text:00054490 MOV R10, 0xFFFF7FFF .text:00054494 MOV R7, #4 .text:00054498 LDR R2, [R8] .text:0005449C MOV R6, #8 .text:000544A0 LDR R3, [R1,#4] .text:000544A4 MOV R5, #0xC .text:000544A8 ADD R4, R2, R3 .text:000544AC .text:000544AC loc_544AC ; CODE XREF: _dl_check_map_versions+4B4j .text:000544AC LDR R3, [R4,#8] .text:000544B0 ADD LR, R4, R3 .text:000544B4 .text:000544B4 loc_544B4 ; CODE XREF: _dl_check_map_versions+4A4j .text:000544B4 LDR R12, [LR,#4] .text:000544B8 LDR R3, [R8,#0x134] .text:000544BC LDR R2, [LR] .text:000544C0 AND R12, R10, R12,LSR#16 .text:000544C4 MOV R0, R12,LSL#4 .text:000544C8 ADD R3, R0, R3 .text:000544CC STR R2, [R3,R7] .text:000544D0 LDR R1, [R8,#0x134] .text:000544D4 LDR R3, [LR,#4] .text:000544D8 ADD R1, R0, R1 .text:000544DC AND R3, R3, #0x80000000 .text:000544E0 MOV R3, R3,LSR#16 .text:000544E4 STR R3, [R1,R6] .text:000544E8 LDR R2, [LR,#8] .text:000544EC LDR R3, [R8,#0x134] .text:000544F0 ADD R2, R9, R2 .text:000544F4 STR R2, [R3,R12,LSL#4] .text:000544F8 LDR R1, [R8,#0x134] .text:000544FC LDR R3, [R4,#4] .text:00054500 ADD R0, R0, R1 .text:00054504 ADD R3, R9, R3 .text:00054508 STR R3, [R0,R5] .text:0005450C LDR R3, [LR,#0xC] .text:00054510 CMP R3, #0 .text:00054514 ADDNE LR, LR, R3 .text:00054518 BNE loc_544B4 .text:0005451C LDR R3, [R4,#0xC] .text:00054520 CMP R3, #0 .text:00054524 ADDNE R4, R4, R3 .text:00054528 BNE loc_544AC .text:0005452C .text:0005452C loc_5452C ; CODE XREF: _dl_check_map_versions+418j .text:0005452C LDR R2, [R11,#var_68] .text:00054530 CMP R2, #0 .text:00054534 BEQ loc_545B8 .text:00054538 LDR R2, [R8] .text:0005453C MOV R7, 0xFFFF7FFF .text:00054540 LDR R0, [R11,#var_68] .text:00054544 MOV R6, #4 .text:00054548 LDR R3, [R0,#4] .text:0005454C MOV R5, #0xC .text:00054550 ADD LR, R2, R3 .text:00054554 .text:00054554 loc_54554 ; CODE XREF: _dl_check_map_versions+540j .text:00054554 LDR R3, [LR] .text:00054558 AND R3, R3, #0x10000 .text:0005455C MOVS R4, R3,LSR#16 .text:00054560 LDR R3, [LR,#0xC] .text:00054564 BNE loc_545A8 .text:00054568 LDR R1, [LR,#4] .text:0005456C LDR R2, [R8,#0x134] .text:00054570 LDR R0, [LR,#8] .text:00054574 AND R1, R1, R7 .text:00054578 MOV R1, R1,LSL#17 .text:0005457C MOV R1, R1,LSR#17 .text:00054580 MOV R12, R1,LSL#4 .text:00054584 ADD R2, R12, R2 .text:00054588 STR R0, [R2,R6] .text:0005458C LDR R3, [LR,R3] .text:00054590 LDR R0, [R8,#0x134] .text:00054594 ADD R3, R9, R3 .text:00054598 STR R3, [R0,R1,LSL#4] .text:0005459C LDR R2, [R8,#0x134] .text:000545A0 ADD R12, R12, R2 .text:000545A4 STR R4, [R12,R5] .text:000545A8 .text:000545A8 loc_545A8 ; CODE XREF: _dl_check_map_versions+4F0j .text:000545A8 LDR R3, [LR,#0x10] .text:000545AC CMP R3, #0 .text:000545B0 ADDNE LR, LR, R3 .text:000545B4 BNE loc_54554 .text:000545B8 .text:000545B8 loc_545B8 ; CODE XREF: _dl_check_map_versions+398j .text:000545B8 ; _dl_check_map_versions+4C0j .text:000545B8 LDR R0, [R11,#var_60] .text:000545BC .text:000545BC locret_545BC ; CODE XREF: _dl_check_map_versions+34j .text:000545BC LDMDB R11, {R4-R11,SP,PC} .text:000545BC ; End of function _dl_check_map_versions .text:000545BC .text:000545C0 .text:000545C0 ; =============== S U B R O U T I N E ======================================= .text:000545C0 .text:000545C0 ; Attributes: bp-based frame .text:000545C0 .text:000545C0 EXPORT _dl_check_all_versions .text:000545C0 _dl_check_all_versions .text:000545C0 MOV R12, SP .text:000545C4 STMFD SP!, {R4-R7,R11,R12,LR,PC} .text:000545C8 SUB R11, R12, #4 .text:000545CC MOV R5, #0 .text:000545D0 SUBS R4, R0, #0 .text:000545D4 MOV R7, R1 .text:000545D8 MOV R6, R2 .text:000545DC BEQ loc_54618 .text:000545E0 .text:000545E0 loc_545E0 ; CODE XREF: _dl_check_all_versions+54j .text:000545E0 LDRB R3, [R4,#0x12D] .text:000545E4 MOV R0, #0 .text:000545E8 TST R3, #2 .text:000545EC BNE loc_54608 .text:000545F0 MOV R0, R4 .text:000545F4 MOV R1, R7 .text:000545F8 MOV R2, R6 .text:000545FC BL _dl_check_map_versions .text:00054600 SUBS R0, R0, #0 .text:00054604 MOVNE R0, #1 .text:00054608 .text:00054608 loc_54608 ; CODE XREF: _dl_check_all_versions+2Cj .text:00054608 LDR R4, [R4,#0xC] .text:0005460C ORR R5, R5, R0 .text:00054610 CMP R4, #0 .text:00054614 BNE loc_545E0 .text:00054618 .text:00054618 loc_54618 ; CODE XREF: _dl_check_all_versions+1Cj .text:00054618 MOV R0, R5 .text:0005461C LDMDB R11, {R4-R7,R11,SP,PC} .text:0005461C ; End of function _dl_check_all_versions .text:0005461C .text:00054620 .text:00054620 ; =============== S U B R O U T I N E ======================================= .text:00054620 .text:00054620 .text:00054620 EXPORT __ashldi3 .text:00054620 __ashldi3 ; CODE XREF: _itoa+448p .text:00054620 ; _itowa+448p .text:00054620 CMP R2, #0 ; Alternative name is 'gcc2_compiled.' .text:00054624 STMFD SP!, {R4,R5,LR} .text:00054628 LDMEQFD SP!, {R4,R5,PC} .text:0005462C RSB R12, R2, #0x20 .text:00054630 CMP R12, #0 .text:00054634 MOVLE R4, #0 .text:00054638 RSBLE R3, R12, #0 .text:0005463C MOVLE R5, R0,LSL R3 .text:00054640 MOVGT R4, R0,LSL R2 .text:00054644 MOVGT R3, R1,LSL R2 .text:00054648 ORRGT R5, R3, R0,LSR R12 .text:0005464C MOV R1, R5 .text:00054650 MOV R0, R4 .text:00054654 LDMFD SP!, {R4,R5,PC} .text:00054654 ; End of function __ashldi3 .text:00054654 .text:00054658 .text:00054658 ; =============== S U B R O U T I N E ======================================= .text:00054658 .text:00054658 .text:00054658 EXPORT __divsi3 .text:00054658 __divsi3 ; CODE XREF: __printf_fp+1804p .text:00054658 ; __printf_fp+1814p ... .text:00054658 .text:00054658 var_4 = -4 .text:00054658 .text:00054658 EOR R12, R0, R1 .text:0005465C MOV R3, #1 .text:00054660 MOV R2, #0 .text:00054664 CMP R1, #0 .text:00054668 RSBMI R1, R1, #0 .text:0005466C BEQ Ldiv0 .text:00054670 CMP R0, #0 .text:00054674 RSBMI R0, R0, #0 .text:00054678 CMP R0, R1 .text:0005467C BCC Lgot_result .text:00054680 .text:00054680 Loop1 ; CODE XREF: __divsi3+38j .text:00054680 CMP R1, #0x10000000 .text:00054684 CMPCC R1, R0 .text:00054688 MOVCC R1, R1,LSL#4 .text:0005468C MOVCC R3, R3,LSL#4 .text:00054690 BCC Loop1 .text:00054694 .text:00054694 Lbignum ; CODE XREF: __divsi3+4Cj .text:00054694 CMP R1, #0x80000000 .text:00054698 CMPCC R1, R0 .text:0005469C MOVCC R1, R1,LSL#1 .text:000546A0 MOVCC R3, R3,LSL#1 .text:000546A4 BCC Lbignum .text:000546A8 .text:000546A8 Loop3 ; CODE XREF: __divsi3+8Cj .text:000546A8 CMP R0, R1 .text:000546AC SUBCS R0, R0, R1 .text:000546B0 ORRCS R2, R2, R3 .text:000546B4 CMP R0, R1,LSR#1 .text:000546B8 SUBCS R0, R0, R1,LSR#1 .text:000546BC ORRCS R2, R2, R3,LSR#1 .text:000546C0 CMP R0, R1,LSR#2 .text:000546C4 SUBCS R0, R0, R1,LSR#2 .text:000546C8 ORRCS R2, R2, R3,LSR#2 .text:000546CC CMP R0, R1,LSR#3 .text:000546D0 SUBCS R0, R0, R1,LSR#3 .text:000546D4 ORRCS R2, R2, R3,LSR#3 .text:000546D8 CMP R0, #0 .text:000546DC MOVNES R3, R3,LSR#4 .text:000546E0 MOVNE R1, R1,LSR#4 .text:000546E4 BNE Loop3 .text:000546E8 .text:000546E8 Lgot_result ; CODE XREF: __divsi3+24j .text:000546E8 MOV R0, R2 .text:000546EC CMP R12, #0 .text:000546F0 RSBMI R0, R0, #0 .text:000546F4 RET .text:000546F8 ; --------------------------------------------------------------------------- .text:000546F8 .text:000546F8 Ldiv0 ; CODE XREF: __divsi3+14j .text:000546F8 STR LR, [SP,#var_4]! .text:000546FC BL __div0 .text:00054700 MOV R0, #0 .text:00054704 LDMFD SP!, {PC} .text:00054704 ; End of function __divsi3 .text:00054704 .text:00054708 .text:00054708 ; =============== S U B R O U T I N E ======================================= .text:00054708 .text:00054708 .text:00054708 EXPORT __div0 .text:00054708 __div0 ; CODE XREF: __divsi3+A4p .text:00054708 ; __modsi3+C4p ... .text:00054708 STMFD SP!, {R1,LR} .text:0005470C SVC 0x900014 .text:00054710 CMN R0, #0x3E8 .text:00054714 LDMCSFD SP!, {R1,PC} .text:00054718 MOV R1, #8 .text:0005471C SVC 0x900025 .text:00054720 LDMFD SP!, {R1,PC} .text:00054720 ; End of function __div0 .text:00054720 .text:00054724 .text:00054724 ; =============== S U B R O U T I N E ======================================= .text:00054724 .text:00054724 .text:00054724 EXPORT __lshrdi3 .text:00054724 __lshrdi3 ; CODE XREF: _itoa+1A4p .text:00054724 ; _itoa+1C0p ... .text:00054724 CMP R2, #0 ; Alternative name is 'gcc2_compiled.' .text:00054728 STMFD SP!, {R4,R5,LR} .text:0005472C LDMEQFD SP!, {R4,R5,PC} .text:00054730 RSB R12, R2, #0x20 .text:00054734 CMP R12, #0 .text:00054738 MOVLE R5, #0 .text:0005473C RSBLE R3, R12, #0 .text:00054740 MOVLE R4, R1,LSR R3 .text:00054744 MOVGT R5, R1,LSR R2 .text:00054748 MOVGT R3, R0,LSR R2 .text:0005474C ORRGT R4, R3, R1,LSL R12 .text:00054750 MOV R1, R5 .text:00054754 MOV R0, R4 .text:00054758 LDMFD SP!, {R4,R5,PC} .text:00054758 ; End of function __lshrdi3 .text:00054758 .text:0005475C .text:0005475C ; =============== S U B R O U T I N E ======================================= .text:0005475C .text:0005475C .text:0005475C EXPORT __modsi3 .text:0005475C __modsi3 ; CODE XREF: __printf_fp+1828p .text:0005475C ; compute_change+124p ... .text:0005475C .text:0005475C var_4 = -4 .text:0005475C .text:0005475C MOV R3, #1 .text:00054760 CMP R1, #0 .text:00054764 RSBMI R1, R1, #0 .text:00054768 BEQ Ldiv0_0 .text:0005476C STR R0, [SP,#var_4]! .text:00054770 CMP R0, #0 .text:00054774 RSBMI R0, R0, #0 .text:00054778 CMP R0, R1 .text:0005477C BCC Lgot_result_0 .text:00054780 .text:00054780 Loop1_0 ; CODE XREF: __modsi3+34j .text:00054780 CMP R1, #0x10000000 .text:00054784 CMPCC R1, R0 .text:00054788 MOVCC R1, R1,LSL#4 .text:0005478C MOVCC R3, R3,LSL#4 .text:00054790 BCC Loop1_0 .text:00054794 .text:00054794 Lbignum_0 ; CODE XREF: __modsi3+48j .text:00054794 CMP R1, #0x80000000 .text:00054798 CMPCC R1, R0 .text:0005479C MOVCC R1, R1,LSL#1 .text:000547A0 MOVCC R3, R3,LSL#1 .text:000547A4 BCC Lbignum_0 .text:000547A8 .text:000547A8 Loop3_0 ; CODE XREF: __modsi3+8Cj .text:000547A8 MOV R2, #0 .text:000547AC CMP R0, R1 .text:000547B0 SUBCS R0, R0, R1 .text:000547B4 CMP R0, R1,LSR#1 .text:000547B8 SUBCS R0, R0, R1,LSR#1 .text:000547BC ORRCS R2, R2, R3,ROR#1 .text:000547C0 CMP R0, R1,LSR#2 .text:000547C4 SUBCS R0, R0, R1,LSR#2 .text:000547C8 ORRCS R2, R2, R3,ROR#2 .text:000547CC CMP R0, R1,LSR#3 .text:000547D0 SUBCS R0, R0, R1,LSR#3 .text:000547D4 ORRCS R2, R2, R3,ROR#3 .text:000547D8 MOV R12, R3 .text:000547DC CMP R0, #0 .text:000547E0 MOVNES R3, R3,LSR#4 .text:000547E4 MOVNE R1, R1,LSR#4 .text:000547E8 BNE Loop3_0 .text:000547EC ANDS R2, R2, #0xE0000000 .text:000547F0 BEQ Lgot_result_0 .text:000547F4 TST R2, R12,ROR#3 .text:000547F8 ADDNE R0, R0, R1,LSR#3 .text:000547FC TST R2, R12,ROR#2 .text:00054800 ADDNE R0, R0, R1,LSR#2 .text:00054804 TST R2, R12,ROR#1 .text:00054808 ADDNE R0, R0, R1,LSR#1 .text:0005480C .text:0005480C Lgot_result_0 ; CODE XREF: __modsi3+20j .text:0005480C ; __modsi3+94j .text:0005480C LDR R12, [SP+4+var_4],#4 .text:00054810 CMP R12, #0 .text:00054814 RSBMI R0, R0, #0 .text:00054818 RET .text:0005481C ; --------------------------------------------------------------------------- .text:0005481C .text:0005481C Ldiv0_0 ; CODE XREF: __modsi3+Cj .text:0005481C STR LR, [SP,#var_4]! .text:00054820 BL __div0 .text:00054824 MOV R0, #0 .text:00054828 LDMFD SP!, {PC} .text:00054828 ; End of function __modsi3 .text:00054828 .text:0005482C .text:0005482C ; =============== S U B R O U T I N E ======================================= .text:0005482C .text:0005482C .text:0005482C EXPORT __muldi3 .text:0005482C __muldi3 ; CODE XREF: __strtoll_internal+744p .text:0005482C ; __strtoull_internal+744p ... .text:0005482C MUL R12, R2, R1 ; Alternative name is 'gcc2_compiled.' .text:00054830 STMFD SP!, {R4-R9,LR} .text:00054834 MLA R4, R0, R3, R12 .text:00054838 MOV R7, R0,LSR#16 .text:0005483C MOV R9, R2,LSR#16 .text:00054840 BIC R6, R0, R7,LSL#16 .text:00054844 BIC R5, R2, R9,LSL#16 .text:00054848 MUL LR, R6, R5 .text:0005484C MUL R5, R7, R5 .text:00054850 MUL R6, R9, R6 .text:00054854 MUL R9, R7, R9 .text:00054858 ADDS R6, R5, R6 .text:0005485C ADDCS R9, R9, #0x10000 .text:00054860 ADDS LR, LR, R6,LSL#16 .text:00054864 ADC R9, R9, R6,LSR#16 .text:00054868 MOV R8, LR .text:0005486C MOV R1, R9 .text:00054870 MOV R0, R8 .text:00054874 ADD R1, R9, R4 .text:00054878 LDMFD SP!, {R4-R9,PC} .text:00054878 ; End of function __muldi3 .text:00054878 .text:0005487C .text:0005487C ; =============== S U B R O U T I N E ======================================= .text:0005487C .text:0005487C .text:0005487C EXPORT __udivdi3 .text:0005487C __udivdi3 ; CODE XREF: __strtoll_internal+504p .text:0005487C ; __strtoull_internal+504p .text:0005487C .text:0005487C var_44 = -0x44 .text:0005487C var_40 = -0x40 .text:0005487C var_3C = -0x3C .text:0005487C var_38 = -0x38 .text:0005487C var_34 = -0x34 .text:0005487C var_30 = -0x30 .text:0005487C var_2C = -0x2C .text:0005487C var_28 = -0x28 .text:0005487C var_24 = -0x24 .text:0005487C .text:0005487C STMFD SP!, {R4-R10,LR} ; Alternative name is 'gcc2_compiled.' .text:00054880 MOV R7, R2 .text:00054884 MOV R9, R1 .text:00054888 LDR R10, =(_GLOBAL_OFFSET_TABLE_ - 0x54898) .text:0005488C SUBS R6, R3, #0 .text:00054890 ADD R10, PC, R10 .text:00054894 SUB SP, SP, #0x24 .text:00054898 STR R0, [SP,#0x44+var_24] .text:0005489C BNE loc_54BC8 .text:000548A0 CMP R7, R9 .text:000548A4 BLS loc_549C4 .text:000548A8 CMP R7, #0x10000 .text:000548AC BCS loc_548C0 .text:000548B0 CMP R7, #0xFF .text:000548B4 MOVHI R0, #8 .text:000548B8 MOVLS R0, #0 .text:000548BC B loc_548CC .text:000548C0 ; --------------------------------------------------------------------------- .text:000548C0 .text:000548C0 loc_548C0 ; CODE XREF: __udivdi3+30j .text:000548C0 CMP R7, #0x1000000 .text:000548C4 MOVCS R0, #0x18 .text:000548C8 MOVCC R0, #0x10 .text:000548CC .text:000548CC loc_548CC ; CODE XREF: __udivdi3+40j .text:000548CC LDR R3, =(__clz_tab_ptr - 0x6BDE0) .text:000548D0 LDR R1, [R10,R3] .text:000548D4 MOV R2, R2,LSR R0 .text:000548D8 LDRB R3, [R1,R2] .text:000548DC ADD R3, R3, R0 .text:000548E0 RSBS R0, R3, #0x20 .text:000548E4 BEQ loc_54904 .text:000548E8 MOV R7, R7,LSL R0 .text:000548EC LDR R1, [SP,#0x44+var_24] .text:000548F0 RSB R3, R0, #0x20 .text:000548F4 MOV R3, R1,LSR R3 .text:000548F8 ORR R9, R3, R9,LSL R0 .text:000548FC MOV R1, R1,LSL R0 .text:00054900 STR R1, [SP,#0x44+var_24] .text:00054904 .text:00054904 loc_54904 ; CODE XREF: __udivdi3+68j .text:00054904 MOV R2, R7,LSL#16 .text:00054908 MOV R2, R2,LSR#16 .text:0005490C STR R2, [SP,#0x44+var_28] .text:00054910 MOV R0, R9 .text:00054914 MOV R8, R7,LSR#16 .text:00054918 MOV R1, R8 .text:0005491C BL __umodsi3 .text:00054920 MOV R4, R0 .text:00054924 MOV R0, R9 .text:00054928 MOV R1, R8 .text:0005492C BL __udivsi3 .text:00054930 LDR R2, [SP,#0x44+var_28] .text:00054934 MOV R6, R0 .text:00054938 MUL R2, R6, R2 .text:0005493C LDR R1, [SP,#0x44+var_24] .text:00054940 MOV R3, R1,LSR#16 .text:00054944 ORR R4, R3, R4,LSL#16 .text:00054948 CMP R4, R2 .text:0005494C BCS loc_54968 .text:00054950 SUB R6, R6, #1 .text:00054954 ADDS R4, R4, R7 .text:00054958 BCS loc_54968 .text:0005495C CMP R4, R2 .text:00054960 SUBCC R6, R6, #1 .text:00054964 ADDCC R4, R4, R7 .text:00054968 .text:00054968 loc_54968 ; CODE XREF: __udivdi3+D0j .text:00054968 ; __udivdi3+DCj .text:00054968 RSB R4, R2, R4 .text:0005496C MOV R0, R4 .text:00054970 MOV R1, R8 .text:00054974 BL __umodsi3 .text:00054978 MOV R5, R0 .text:0005497C MOV R0, R4 .text:00054980 MOV R1, R8 .text:00054984 BL __udivsi3 .text:00054988 LDR R2, [SP,#0x44+var_28] .text:0005498C MUL R2, R0, R2 .text:00054990 LDR R1, [SP,#0x44+var_24] .text:00054994 MOV R3, R1,LSL#16 .text:00054998 MOV R3, R3,LSR#16 .text:0005499C ORR R5, R3, R5,LSL#16 .text:000549A0 CMP R5, R2 .text:000549A4 BCS loc_549BC .text:000549A8 SUB R0, R0, #1 .text:000549AC ADDS R5, R5, R7 .text:000549B0 BCS loc_549BC .text:000549B4 CMP R5, R2 .text:000549B8 SUBCC R0, R0, #1 .text:000549BC .text:000549BC loc_549BC ; CODE XREF: __udivdi3+128j .text:000549BC ; __udivdi3+134j .text:000549BC ORR R12, R0, R6,LSL#16 .text:000549C0 B loc_54D7C .text:000549C4 ; --------------------------------------------------------------------------- .text:000549C4 .text:000549C4 loc_549C4 ; CODE XREF: __udivdi3+28j .text:000549C4 CMP R7, #0 .text:000549C8 BNE loc_549DC .text:000549CC MOV R0, #1 .text:000549D0 MOV R1, R2 .text:000549D4 BL __udivsi3 .text:000549D8 MOV R7, R0 .text:000549DC .text:000549DC loc_549DC ; CODE XREF: __udivdi3+14Cj .text:000549DC CMP R7, #0x10000 .text:000549E0 BCS loc_549F4 .text:000549E4 CMP R7, #0xFF .text:000549E8 MOVHI R0, #8 .text:000549EC MOVLS R0, #0 .text:000549F0 B loc_54A00 .text:000549F4 ; --------------------------------------------------------------------------- .text:000549F4 .text:000549F4 loc_549F4 ; CODE XREF: __udivdi3+164j .text:000549F4 CMP R7, #0x1000000 .text:000549F8 MOVCS R0, #0x18 .text:000549FC MOVCC R0, #0x10 .text:00054A00 .text:00054A00 loc_54A00 ; CODE XREF: __udivdi3+174j .text:00054A00 LDR R3, =(__clz_tab_ptr - 0x6BDE0) .text:00054A04 LDR R1, [R10,R3] .text:00054A08 MOV R2, R7,LSR R0 .text:00054A0C LDRB R3, [R1,R2] .text:00054A10 ADD R3, R3, R0 .text:00054A14 RSBS R0, R3, #0x20 .text:00054A18 RSBEQ R9, R7, R9 .text:00054A1C MOVEQ R3, #1 .text:00054A20 STREQ R3, [SP,#0x44+var_2C] .text:00054A24 BEQ loc_54B08 .text:00054A28 RSB R2, R0, #0x20 .text:00054A2C MOV R7, R7,LSL R0 .text:00054A30 LDR R1, [SP,#0x44+var_24] .text:00054A34 MOV R5, R9,LSR R2 .text:00054A38 MOV R3, R1,LSR R2 .text:00054A3C ORR R9, R3, R9,LSL R0 .text:00054A40 MOV R1, R1,LSL R0 .text:00054A44 STR R1, [SP,#0x44+var_24] .text:00054A48 MOV R8, R7,LSR#16 .text:00054A4C MOV R2, R7,LSL#16 .text:00054A50 MOV R2, R2,LSR#16 .text:00054A54 STR R2, [SP,#0x44+var_30] .text:00054A58 MOV R0, R5 .text:00054A5C MOV R1, R8 .text:00054A60 BL __umodsi3 .text:00054A64 MOV R4, R0 .text:00054A68 MOV R0, R5 .text:00054A6C MOV R1, R8 .text:00054A70 BL __udivsi3 .text:00054A74 LDR R2, [SP,#0x44+var_30] .text:00054A78 MOV R6, R0 .text:00054A7C MUL R2, R6, R2 .text:00054A80 MOV R3, R9,LSR#16 .text:00054A84 ORR R4, R3, R4,LSL#16 .text:00054A88 CMP R4, R2 .text:00054A8C BCS loc_54AA8 .text:00054A90 SUB R6, R6, #1 .text:00054A94 ADDS R4, R4, R7 .text:00054A98 BCS loc_54AA8 .text:00054A9C CMP R4, R2 .text:00054AA0 SUBCC R6, R6, #1 .text:00054AA4 ADDCC R4, R4, R7 .text:00054AA8 .text:00054AA8 loc_54AA8 ; CODE XREF: __udivdi3+210j .text:00054AA8 ; __udivdi3+21Cj .text:00054AA8 RSB R4, R2, R4 .text:00054AAC MOV R0, R4 .text:00054AB0 MOV R1, R8 .text:00054AB4 BL __umodsi3 .text:00054AB8 MOV R5, R0 .text:00054ABC MOV R0, R4 .text:00054AC0 MOV R1, R8 .text:00054AC4 BL __udivsi3 .text:00054AC8 LDR R2, [SP,#0x44+var_30] .text:00054ACC MUL R2, R0, R2 .text:00054AD0 MOV R3, R9,LSL#16 .text:00054AD4 MOV R3, R3,LSR#16 .text:00054AD8 ORR R5, R3, R5,LSL#16 .text:00054ADC CMP R5, R2 .text:00054AE0 BCS loc_54AFC .text:00054AE4 SUB R0, R0, #1 .text:00054AE8 ADDS R5, R5, R7 .text:00054AEC BCS loc_54AFC .text:00054AF0 CMP R5, R2 .text:00054AF4 SUBCC R0, R0, #1 .text:00054AF8 ADDCC R5, R5, R7 .text:00054AFC .text:00054AFC loc_54AFC ; CODE XREF: __udivdi3+264j .text:00054AFC ; __udivdi3+270j .text:00054AFC ORR R6, R0, R6,LSL#16 .text:00054B00 RSB R9, R2, R5 .text:00054B04 STR R6, [SP,#0x44+var_2C] .text:00054B08 .text:00054B08 loc_54B08 ; CODE XREF: __udivdi3+1A8j .text:00054B08 MOV R3, R7,LSL#16 .text:00054B0C MOV R3, R3,LSR#16 .text:00054B10 STR R3, [SP,#0x44+var_34] .text:00054B14 MOV R0, R9 .text:00054B18 MOV R8, R7,LSR#16 .text:00054B1C MOV R1, R8 .text:00054B20 BL __umodsi3 .text:00054B24 MOV R4, R0 .text:00054B28 MOV R0, R9 .text:00054B2C MOV R1, R8 .text:00054B30 BL __udivsi3 .text:00054B34 LDR R2, [SP,#0x44+var_34] .text:00054B38 MOV R6, R0 .text:00054B3C MUL R2, R6, R2 .text:00054B40 LDR R1, [SP,#0x44+var_24] .text:00054B44 MOV R3, R1,LSR#16 .text:00054B48 ORR R4, R3, R4,LSL#16 .text:00054B4C CMP R4, R2 .text:00054B50 BCS loc_54B6C .text:00054B54 SUB R6, R6, #1 .text:00054B58 ADDS R4, R4, R7 .text:00054B5C BCS loc_54B6C .text:00054B60 CMP R4, R2 .text:00054B64 SUBCC R6, R6, #1 .text:00054B68 ADDCC R4, R4, R7 .text:00054B6C .text:00054B6C loc_54B6C ; CODE XREF: __udivdi3+2D4j .text:00054B6C ; __udivdi3+2E0j .text:00054B6C RSB R4, R2, R4 .text:00054B70 MOV R0, R4 .text:00054B74 MOV R1, R8 .text:00054B78 BL __umodsi3 .text:00054B7C MOV R5, R0 .text:00054B80 MOV R0, R4 .text:00054B84 MOV R1, R8 .text:00054B88 BL __udivsi3 .text:00054B8C LDR R2, [SP,#0x44+var_34] .text:00054B90 MUL R2, R0, R2 .text:00054B94 LDR R1, [SP,#0x44+var_24] .text:00054B98 MOV R3, R1,LSL#16 .text:00054B9C MOV R3, R3,LSR#16 .text:00054BA0 ORR R5, R3, R5,LSL#16 .text:00054BA4 CMP R5, R2 .text:00054BA8 BCS loc_54BC0 .text:00054BAC SUB R0, R0, #1 .text:00054BB0 ADDS R5, R5, R7 .text:00054BB4 BCS loc_54BC0 .text:00054BB8 CMP R5, R2 .text:00054BBC SUBCC R0, R0, #1 .text:00054BC0 .text:00054BC0 loc_54BC0 ; CODE XREF: __udivdi3+32Cj .text:00054BC0 ; __udivdi3+338j .text:00054BC0 ORR R12, R0, R6,LSL#16 .text:00054BC4 B loc_54D84 .text:00054BC8 ; --------------------------------------------------------------------------- .text:00054BC8 .text:00054BC8 loc_54BC8 ; CODE XREF: __udivdi3+20j .text:00054BC8 CMP R6, R9 .text:00054BCC MOVHI R2, #0 .text:00054BD0 MOVHI R12, R2 .text:00054BD4 BHI loc_54D80 .text:00054BD8 CMP R6, #0x10000 .text:00054BDC BCS loc_54BF0 .text:00054BE0 CMP R6, #0xFF .text:00054BE4 MOVHI R0, #8 .text:00054BE8 MOVLS R0, #0 .text:00054BEC B loc_54BFC .text:00054BF0 ; --------------------------------------------------------------------------- .text:00054BF0 .text:00054BF0 loc_54BF0 ; CODE XREF: __udivdi3+360j .text:00054BF0 CMP R6, #0x1000000 .text:00054BF4 MOVCS R0, #0x18 .text:00054BF8 MOVCC R0, #0x10 .text:00054BFC .text:00054BFC loc_54BFC ; CODE XREF: __udivdi3+370j .text:00054BFC LDR R3, =(__clz_tab_ptr - 0x6BDE0) .text:00054C00 LDR R1, [R10,R3] .text:00054C04 MOV R2, R6,LSR R0 .text:00054C08 LDRB R3, [R1,R2] .text:00054C0C ADD R3, R3, R0 .text:00054C10 RSBS R0, R3, #0x20 .text:00054C14 BNE loc_54C40 .text:00054C18 LDR R3, [SP,#0x44+var_24] .text:00054C1C CMP R9, R6 .text:00054C20 CMPLS R3, R7 .text:00054C24 MOV R12, #1 .text:00054C28 MOVCC R12, R0 .text:00054C2C MOV R1, #0 .text:00054C30 STR R1, [SP,#0x44+var_2C] .text:00054C34 B loc_54D84 .text:00054C34 ; --------------------------------------------------------------------------- .text:00054C38 off_54C38 DCD _GLOBAL_OFFSET_TABLE_ - 0x54898 ; DATA XREF: __udivdi3+Cr .text:00054C3C off_54C3C DCD __clz_tab_ptr - 0x6BDE0 ; DATA XREF: __udivdi3:loc_548CCr .text:00054C3C ; __udivdi3:loc_54A00r ... .text:00054C40 ; --------------------------------------------------------------------------- .text:00054C40 .text:00054C40 loc_54C40 ; CODE XREF: __udivdi3+398j .text:00054C40 RSB R2, R0, #0x20 .text:00054C44 MOV R3, R7,LSR R2 .text:00054C48 ORR R6, R3, R6,LSL R0 .text:00054C4C MOV R7, R7,LSL R0 .text:00054C50 LDR R1, [SP,#0x44+var_24] .text:00054C54 MOV R5, R9,LSR R2 .text:00054C58 MOV R3, R1,LSR R2 .text:00054C5C MOV R1, R1,LSL R0 .text:00054C60 STR R1, [SP,#0x44+var_24] .text:00054C64 ORR R9, R3, R9,LSL R0 .text:00054C68 MOV R2, R6,LSR#16 .text:00054C6C STR R2, [SP,#0x44+var_38] .text:00054C70 MOV R3, R6,LSL#16 .text:00054C74 MOV R3, R3,LSR#16 .text:00054C78 STR R3, [SP,#0x44+var_3C] .text:00054C7C MOV R0, R5 .text:00054C80 MOV R1, R2 .text:00054C84 BL __umodsi3 .text:00054C88 MOV R4, R0 .text:00054C8C LDR R1, [SP,#0x44+var_38] .text:00054C90 MOV R0, R5 .text:00054C94 BL __udivsi3 .text:00054C98 LDR R2, [SP,#0x44+var_3C] .text:00054C9C MOV R8, R0 .text:00054CA0 MUL R2, R8, R2 .text:00054CA4 MOV R3, R9,LSR#16 .text:00054CA8 ORR R4, R3, R4,LSL#16 .text:00054CAC CMP R4, R2 .text:00054CB0 BCS loc_54CCC .text:00054CB4 SUB R8, R8, #1 .text:00054CB8 ADDS R4, R4, R6 .text:00054CBC BCS loc_54CCC .text:00054CC0 CMP R4, R2 .text:00054CC4 SUBCC R8, R8, #1 .text:00054CC8 ADDCC R4, R4, R6 .text:00054CCC .text:00054CCC loc_54CCC ; CODE XREF: __udivdi3+434j .text:00054CCC ; __udivdi3+440j .text:00054CCC RSB R4, R2, R4 .text:00054CD0 LDR R1, [SP,#0x44+var_38] .text:00054CD4 MOV R0, R4 .text:00054CD8 BL __umodsi3 .text:00054CDC MOV R5, R0 .text:00054CE0 LDR R1, [SP,#0x44+var_38] .text:00054CE4 MOV R0, R4 .text:00054CE8 BL __udivsi3 .text:00054CEC LDR R2, [SP,#0x44+var_3C] .text:00054CF0 MUL R2, R0, R2 .text:00054CF4 MOV R3, R9,LSL#16 .text:00054CF8 MOV R3, R3,LSR#16 .text:00054CFC ORR R5, R3, R5,LSL#16 .text:00054D00 CMP R5, R2 .text:00054D04 BCS loc_54D20 .text:00054D08 SUB R0, R0, #1 .text:00054D0C ADDS R5, R5, R6 .text:00054D10 BCS loc_54D20 .text:00054D14 CMP R5, R2 .text:00054D18 SUBCC R0, R0, #1 .text:00054D1C ADDCC R5, R5, R6 .text:00054D20 .text:00054D20 loc_54D20 ; CODE XREF: __udivdi3+488j .text:00054D20 ; __udivdi3+494j .text:00054D20 ORR R12, R0, R8,LSL#16 .text:00054D24 RSB R9, R2, R5 .text:00054D28 MOV R0, R12,LSR#16 .text:00054D2C MOV R3, R7,LSR#16 .text:00054D30 BIC R1, R12, R0,LSL#16 .text:00054D34 BIC R2, R7, R3,LSL#16 .text:00054D38 MUL LR, R1, R2 .text:00054D3C MUL R2, R0, R2 .text:00054D40 MUL R1, R3, R1 .text:00054D44 MUL R3, R0, R3 .text:00054D48 ADDS R1, R2, R1 .text:00054D4C ADDCS R3, R3, #0x10000 .text:00054D50 ADDS LR, LR, R1,LSL#16 .text:00054D54 ADC R3, R3, R1,LSR#16 .text:00054D58 CMP R3, R9 .text:00054D5C BHI loc_54D78 .text:00054D60 LDR R1, [SP,#0x44+var_24] .text:00054D64 MOVNE R3, #0 .text:00054D68 MOVEQ R3, #1 .text:00054D6C CMP R3, #0 .text:00054D70 CMPNE LR, R1 .text:00054D74 BLS loc_54D7C .text:00054D78 .text:00054D78 loc_54D78 ; CODE XREF: __udivdi3+4E0j .text:00054D78 SUB R12, R12, #1 .text:00054D7C .text:00054D7C loc_54D7C ; CODE XREF: __udivdi3+144j .text:00054D7C ; __udivdi3+4F8j .text:00054D7C MOV R2, #0 .text:00054D80 .text:00054D80 loc_54D80 ; CODE XREF: __udivdi3+358j .text:00054D80 STR R2, [SP,#0x44+var_2C] .text:00054D84 .text:00054D84 loc_54D84 ; CODE XREF: __udivdi3+348j .text:00054D84 ; __udivdi3+3B8j .text:00054D84 STR R12, [SP,#0x44+var_44] .text:00054D88 LDR R3, [SP,#0x44+var_2C] .text:00054D8C STR R3, [SP,#0x44+var_40] .text:00054D90 LDMFD SP, {R0,R1} .text:00054D94 ADD SP, SP, #0x24 .text:00054D98 LDMFD SP!, {R4-R10,PC} .text:00054D98 ; End of function __udivdi3 .text:00054D98 .text:00054D9C .text:00054D9C ; =============== S U B R O U T I N E ======================================= .text:00054D9C .text:00054D9C .text:00054D9C EXPORT __udivsi3 .text:00054D9C __udivsi3 ; CODE XREF: main_trim+34p .text:00054D9C ; heap_trim+114p ... .text:00054D9C .text:00054D9C var_4 = -4 .text:00054D9C .text:00054D9C CMP R1, #0 .text:00054DA0 BEQ Ldiv0_1 .text:00054DA4 MOV R3, #1 .text:00054DA8 MOV R2, #0 .text:00054DAC CMP R0, R1 .text:00054DB0 BCC Lgot_result_1 .text:00054DB4 .text:00054DB4 Loop1_1 ; CODE XREF: __udivsi3+28j .text:00054DB4 CMP R1, #0x10000000 .text:00054DB8 CMPCC R1, R0 .text:00054DBC MOVCC R1, R1,LSL#4 .text:00054DC0 MOVCC R3, R3,LSL#4 .text:00054DC4 BCC Loop1_1 .text:00054DC8 .text:00054DC8 Lbignum_1 ; CODE XREF: __udivsi3+3Cj .text:00054DC8 CMP R1, #0x80000000 .text:00054DCC CMPCC R1, R0 .text:00054DD0 MOVCC R1, R1,LSL#1 .text:00054DD4 MOVCC R3, R3,LSL#1 .text:00054DD8 BCC Lbignum_1 .text:00054DDC .text:00054DDC Loop3_1 ; CODE XREF: __udivsi3+7Cj .text:00054DDC CMP R0, R1 .text:00054DE0 SUBCS R0, R0, R1 .text:00054DE4 ORRCS R2, R2, R3 .text:00054DE8 CMP R0, R1,LSR#1 .text:00054DEC SUBCS R0, R0, R1,LSR#1 .text:00054DF0 ORRCS R2, R2, R3,LSR#1 .text:00054DF4 CMP R0, R1,LSR#2 .text:00054DF8 SUBCS R0, R0, R1,LSR#2 .text:00054DFC ORRCS R2, R2, R3,LSR#2 .text:00054E00 CMP R0, R1,LSR#3 .text:00054E04 SUBCS R0, R0, R1,LSR#3 .text:00054E08 ORRCS R2, R2, R3,LSR#3 .text:00054E0C CMP R0, #0 .text:00054E10 MOVNES R3, R3,LSR#4 .text:00054E14 MOVNE R1, R1,LSR#4 .text:00054E18 BNE Loop3_1 .text:00054E1C .text:00054E1C Lgot_result_1 ; CODE XREF: __udivsi3+14j .text:00054E1C MOV R0, R2 .text:00054E20 RET .text:00054E24 ; --------------------------------------------------------------------------- .text:00054E24 .text:00054E24 Ldiv0_1 ; CODE XREF: __udivsi3+4j .text:00054E24 STR LR, [SP,#var_4]! .text:00054E28 BL __div0 .text:00054E2C MOV R0, #0 .text:00054E30 LDMFD SP!, {PC} .text:00054E30 ; End of function __udivsi3 .text:00054E30 .text:00054E34 .text:00054E34 ; =============== S U B R O U T I N E ======================================= .text:00054E34 .text:00054E34 .text:00054E34 EXPORT __umoddi3 .text:00054E34 __umoddi3 ; CODE XREF: __strtoll_internal+520p .text:00054E34 ; __strtoull_internal+520p .text:00054E34 .text:00054E34 var_48 = -0x48 .text:00054E34 var_44 = -0x44 .text:00054E34 var_40 = -0x40 .text:00054E34 var_3C = -0x3C .text:00054E34 var_38 = -0x38 .text:00054E34 var_34 = -0x34 .text:00054E34 var_30 = -0x30 .text:00054E34 var_2C = -0x2C .text:00054E34 var_28 = -0x28 .text:00054E34 .text:00054E34 STMFD SP!, {R4-R10,LR} ; Alternative name is 'gcc2_compiled.' .text:00054E38 MOV R6, R2 .text:00054E3C MOV R8, R1 .text:00054E40 SUBS R7, R3, #0 .text:00054E44 LDR R10, =(_GLOBAL_OFFSET_TABLE_ - 0x54E58) .text:00054E48 SUB SP, SP, #0x28 .text:00054E4C STR R0, [SP,#0x48+var_30] .text:00054E50 ADD R10, PC, R10 .text:00054E54 ADD R12, SP, #0x48+var_28 .text:00054E58 STR R12, [SP,#0x48+var_2C] .text:00054E5C BNE loc_550C4 .text:00054E60 CMP R6, R8 .text:00054E64 BLS loc_54ED0 .text:00054E68 CMP R6, #0x10000 .text:00054E6C BCS loc_54E80 .text:00054E70 CMP R6, #0xFF .text:00054E74 MOVHI R0, #8 .text:00054E78 MOVLS R0, #0 .text:00054E7C B loc_54E8C .text:00054E80 ; --------------------------------------------------------------------------- .text:00054E80 .text:00054E80 loc_54E80 ; CODE XREF: __umoddi3+38j .text:00054E80 CMP R6, #0x1000000 .text:00054E84 MOVCS R0, #0x18 .text:00054E88 MOVCC R0, #0x10 .text:00054E8C .text:00054E8C loc_54E8C ; CODE XREF: __umoddi3+48j .text:00054E8C LDR R3, =(__clz_tab_0_ptr - 0x6BDE0) .text:00054E90 LDR R1, [R10,R3] .text:00054E94 MOV R2, R2,LSR R0 .text:00054E98 LDRB R3, [R1,R2] .text:00054E9C ADD R3, R3, R0 .text:00054EA0 RSBS R3, R3, #0x20 .text:00054EA4 STR R3, [SP,#0x48+var_34] .text:00054EA8 BEQ loc_54FF8 .text:00054EAC MOV R6, R6,LSL R3 .text:00054EB0 LDR R1, [SP,#0x48+var_30] .text:00054EB4 RSB R3, R3, #0x20 .text:00054EB8 LDR R2, [SP,#0x48+var_34] .text:00054EBC MOV R3, R1,LSR R3 .text:00054EC0 ORR R8, R3, R8,LSL R2 .text:00054EC4 MOV R1, R1,LSL R2 .text:00054EC8 STR R1, [SP,#0x48+var_30] .text:00054ECC B loc_54FF8 .text:00054ED0 ; --------------------------------------------------------------------------- .text:00054ED0 .text:00054ED0 loc_54ED0 ; CODE XREF: __umoddi3+30j .text:00054ED0 CMP R6, #0 .text:00054ED4 BNE loc_54EE8 .text:00054ED8 MOV R0, #1 .text:00054EDC MOV R1, R2 .text:00054EE0 BL __udivsi3 .text:00054EE4 MOV R6, R0 .text:00054EE8 .text:00054EE8 loc_54EE8 ; CODE XREF: __umoddi3+A0j .text:00054EE8 CMP R6, #0x10000 .text:00054EEC BCS loc_54F00 .text:00054EF0 CMP R6, #0xFF .text:00054EF4 MOVHI R0, #8 .text:00054EF8 MOVLS R0, #0 .text:00054EFC B loc_54F0C .text:00054F00 ; --------------------------------------------------------------------------- .text:00054F00 .text:00054F00 loc_54F00 ; CODE XREF: __umoddi3+B8j .text:00054F00 CMP R6, #0x1000000 .text:00054F04 MOVCS R0, #0x18 .text:00054F08 MOVCC R0, #0x10 .text:00054F0C .text:00054F0C loc_54F0C ; CODE XREF: __umoddi3+C8j .text:00054F0C LDR R3, =(__clz_tab_0_ptr - 0x6BDE0) .text:00054F10 LDR R1, [R10,R3] .text:00054F14 MOV R2, R6,LSR R0 .text:00054F18 LDRB R3, [R1,R2] .text:00054F1C ADD R3, R3, R0 .text:00054F20 RSBS R3, R3, #0x20 .text:00054F24 STR R3, [SP,#0x48+var_34] .text:00054F28 RSBEQ R8, R6, R8 .text:00054F2C BEQ loc_54FF8 .text:00054F30 LDR R2, [SP,#0x48+var_34] .text:00054F34 ADD R3, SP, #0x48+var_34 .text:00054F38 LDMIA R3, {R3,R12} .text:00054F3C LDR R1, [SP,#0x48+var_34] .text:00054F40 RSB R2, R2, #0x20 .text:00054F44 MOV R6, R6,LSL R3 .text:00054F48 MOV R5, R8,LSR R2 .text:00054F4C MOV R3, R12,LSR R2 .text:00054F50 STR R2, [SP,#0x48+var_38] .text:00054F54 ORR R8, R3, R8,LSL R1 .text:00054F58 MOV R12, R12,LSL R1 .text:00054F5C STR R12, [SP,#0x48+var_30] .text:00054F60 MOV R7, R6,LSR#16 .text:00054F64 MOV R9, R6,LSL#16 .text:00054F68 MOV R9, R9,LSR#16 .text:00054F6C MOV R0, R5 .text:00054F70 MOV R1, R7 .text:00054F74 BL __umodsi3 .text:00054F78 MOV R4, R0 .text:00054F7C MOV R0, R5 .text:00054F80 MOV R1, R7 .text:00054F84 BL __udivsi3 .text:00054F88 MUL R2, R9, R0 .text:00054F8C MOV R3, R8,LSR#16 .text:00054F90 ORR R4, R3, R4,LSL#16 .text:00054F94 CMP R4, R2 .text:00054F98 BCS loc_54FAC .text:00054F9C ADDS R4, R4, R6 .text:00054FA0 BCS loc_54FAC .text:00054FA4 CMP R4, R2 .text:00054FA8 ADDCC R4, R4, R6 .text:00054FAC .text:00054FAC loc_54FAC ; CODE XREF: __umoddi3+164j .text:00054FAC ; __umoddi3+16Cj .text:00054FAC RSB R4, R2, R4 .text:00054FB0 MOV R0, R4 .text:00054FB4 MOV R1, R7 .text:00054FB8 BL __umodsi3 .text:00054FBC MOV R5, R0 .text:00054FC0 MOV R0, R4 .text:00054FC4 MOV R1, R7 .text:00054FC8 BL __udivsi3 .text:00054FCC MUL R2, R9, R0 .text:00054FD0 MOV R3, R8,LSL#16 .text:00054FD4 MOV R3, R3,LSR#16 .text:00054FD8 ORR R5, R3, R5,LSL#16 .text:00054FDC CMP R5, R2 .text:00054FE0 BCS loc_54FF4 .text:00054FE4 ADDS R5, R5, R6 .text:00054FE8 BCS loc_54FF4 .text:00054FEC CMP R5, R2 .text:00054FF0 ADDCC R5, R5, R6 .text:00054FF4 .text:00054FF4 loc_54FF4 ; CODE XREF: __umoddi3+1ACj .text:00054FF4 ; __umoddi3+1B4j .text:00054FF4 RSB R8, R2, R5 .text:00054FF8 .text:00054FF8 loc_54FF8 ; CODE XREF: __umoddi3+74j .text:00054FF8 ; __umoddi3+98j ... .text:00054FF8 MOV R9, R6,LSL#16 .text:00054FFC MOV R9, R9,LSR#16 .text:00055000 MOV R0, R8 .text:00055004 MOV R7, R6,LSR#16 .text:00055008 MOV R1, R7 .text:0005500C BL __umodsi3 .text:00055010 MOV R4, R0 .text:00055014 MOV R0, R8 .text:00055018 MOV R1, R7 .text:0005501C BL __udivsi3 .text:00055020 MUL R2, R9, R0 .text:00055024 LDR R12, [SP,#0x48+var_30] .text:00055028 MOV R3, R12,LSR#16 .text:0005502C ORR R4, R3, R4,LSL#16 .text:00055030 CMP R4, R2 .text:00055034 BCS loc_55048 .text:00055038 ADDS R4, R4, R6 .text:0005503C BCS loc_55048 .text:00055040 CMP R4, R2 .text:00055044 ADDCC R4, R4, R6 .text:00055048 .text:00055048 loc_55048 ; CODE XREF: __umoddi3+200j .text:00055048 ; __umoddi3+208j .text:00055048 RSB R4, R2, R4 .text:0005504C MOV R0, R4 .text:00055050 MOV R1, R7 .text:00055054 BL __umodsi3 .text:00055058 MOV R5, R0 .text:0005505C MOV R0, R4 .text:00055060 MOV R1, R7 .text:00055064 BL __udivsi3 .text:00055068 MUL R2, R9, R0 .text:0005506C LDR R1, [SP,#0x48+var_30] .text:00055070 MOV R3, R1,LSL#16 .text:00055074 MOV R3, R3,LSR#16 .text:00055078 ORR R5, R3, R5,LSL#16 .text:0005507C CMP R5, R2 .text:00055080 BCS loc_55094 .text:00055084 ADDS R5, R5, R6 .text:00055088 BCS loc_55094 .text:0005508C CMP R5, R2 .text:00055090 ADDCC R5, R5, R6 .text:00055094 .text:00055094 loc_55094 ; CODE XREF: __umoddi3+24Cj .text:00055094 ; __umoddi3+254j .text:00055094 RSB R5, R2, R5 .text:00055098 STR R5, [SP,#0x48+var_30] .text:0005509C LDR R2, [SP,#0x48+var_2C] .text:000550A0 CMP R2, #0 .text:000550A4 BEQ loc_5530C .text:000550A8 LDR R3, [SP,#0x48+var_30] .text:000550AC LDR R12, [SP,#0x48+var_34] .text:000550B0 MOV R3, R3,LSR R12 .text:000550B4 STR R3, [SP,#0x48+var_40] .text:000550B8 MOV R1, #0 .text:000550BC STR R1, [SP,#0x48+var_3C] .text:000550C0 B loc_552FC .text:000550C4 ; --------------------------------------------------------------------------- .text:000550C4 .text:000550C4 loc_550C4 ; CODE XREF: __umoddi3+28j .text:000550C4 CMP R7, R8 .text:000550C8 BLS loc_550E4 .text:000550CC STR R0, [SP,#0x48+var_40] .text:000550D0 STR R8, [SP,#0x48+var_3C] .text:000550D4 ADD R2, SP, #0x48+var_38 .text:000550D8 LDMDB R2, {R2,R3} .text:000550DC ADD R12, SP, #0x48+var_28 .text:000550E0 B loc_55308 .text:000550E4 ; --------------------------------------------------------------------------- .text:000550E4 .text:000550E4 loc_550E4 ; CODE XREF: __umoddi3+294j .text:000550E4 CMP R7, #0x10000 .text:000550E8 BCS loc_550FC .text:000550EC CMP R7, #0xFF .text:000550F0 MOVHI R0, #8 .text:000550F4 MOVLS R0, #0 .text:000550F8 B loc_55108 .text:000550FC ; --------------------------------------------------------------------------- .text:000550FC .text:000550FC loc_550FC ; CODE XREF: __umoddi3+2B4j .text:000550FC CMP R7, #0x1000000 .text:00055100 MOVCS R0, #0x18 .text:00055104 MOVCC R0, #0x10 .text:00055108 .text:00055108 loc_55108 ; CODE XREF: __umoddi3+2C4j .text:00055108 LDR R3, =(__clz_tab_0_ptr - 0x6BDE0) .text:0005510C LDR R1, [R10,R3] .text:00055110 MOV R2, R7,LSR R0 .text:00055114 LDRB R3, [R1,R2] .text:00055118 ADD R3, R3, R0 .text:0005511C RSBS R3, R3, #0x20 .text:00055120 STR R3, [SP,#0x48+var_34] .text:00055124 BNE loc_55174 .text:00055128 LDR R3, [SP,#0x48+var_30] .text:0005512C CMP R8, R7 .text:00055130 CMPLS R3, R6 .text:00055134 BCC loc_55144 .text:00055138 SUBS R12, R3, R6 .text:0005513C SBC R8, R8, R7 .text:00055140 STR R12, [SP,#0x48+var_30] .text:00055144 .text:00055144 loc_55144 ; CODE XREF: __umoddi3+300j .text:00055144 LDR R1, [SP,#0x48+var_2C] .text:00055148 CMP R1, #0 .text:0005514C BEQ loc_5530C .text:00055150 LDR R2, [SP,#0x48+var_30] .text:00055154 STR R2, [SP,#0x48+var_40] .text:00055158 STR R8, [SP,#0x48+var_3C] .text:0005515C ADD R2, SP, #0x48+var_38 .text:00055160 LDMDB R2, {R2,R3} .text:00055164 MOV R12, R1 .text:00055168 B loc_55308 .text:00055168 ; --------------------------------------------------------------------------- .text:0005516C off_5516C DCD _GLOBAL_OFFSET_TABLE_ - 0x54E58 .text:0005516C ; DATA XREF: __umoddi3+10r .text:00055170 off_55170 DCD __clz_tab_0_ptr - 0x6BDE0 .text:00055170 ; DATA XREF: __umoddi3:loc_54E8Cr .text:00055170 ; __umoddi3:loc_54F0Cr ... .text:00055174 ; --------------------------------------------------------------------------- .text:00055174 .text:00055174 loc_55174 ; CODE XREF: __umoddi3+2F0j .text:00055174 LDR R3, [SP,#0x48+var_34] .text:00055178 RSB R3, R3, #0x20 .text:0005517C STR R3, [SP,#0x48+var_38] .text:00055180 LDR R12, [SP,#0x48+var_34] .text:00055184 LDR R2, [SP,#0x48+var_30] .text:00055188 MOV R3, R6,LSR R3 .text:0005518C ORR R7, R3, R7,LSL R12 .text:00055190 LDR R1, [SP,#0x48+var_38] .text:00055194 MOV R6, R6,LSL R12 .text:00055198 MOV R5, R8,LSR R1 .text:0005519C MOV R3, R2,LSR R1 .text:000551A0 MOV R2, R2,LSL R12 .text:000551A4 STR R2, [SP,#0x48+var_30] .text:000551A8 ORR R8, R3, R8,LSL R12 .text:000551AC MOV R3, R7,LSR#16 .text:000551B0 STR R3, [SP,#0x48+var_44] .text:000551B4 MOV R12, R7,LSL#16 .text:000551B8 MOV R12, R12,LSR#16 .text:000551BC STR R12, [SP,#0x48+var_48] .text:000551C0 MOV R0, R5 .text:000551C4 MOV R1, R3 .text:000551C8 BL __umodsi3 .text:000551CC MOV R4, R0 .text:000551D0 LDR R1, [SP,#0x48+var_44] .text:000551D4 MOV R0, R5 .text:000551D8 BL __udivsi3 .text:000551DC LDR R2, [SP,#0x48+var_48] .text:000551E0 MOV R9, R0 .text:000551E4 MUL R2, R9, R2 .text:000551E8 MOV R3, R8,LSR#16 .text:000551EC ORR R4, R3, R4,LSL#16 .text:000551F0 CMP R4, R2 .text:000551F4 BCS loc_55210 .text:000551F8 SUB R9, R9, #1 .text:000551FC ADDS R4, R4, R7 .text:00055200 BCS loc_55210 .text:00055204 CMP R4, R2 .text:00055208 SUBCC R9, R9, #1 .text:0005520C ADDCC R4, R4, R7 .text:00055210 .text:00055210 loc_55210 ; CODE XREF: __umoddi3+3C0j .text:00055210 ; __umoddi3+3CCj .text:00055210 RSB R4, R2, R4 .text:00055214 LDR R1, [SP,#0x48+var_44] .text:00055218 MOV R0, R4 .text:0005521C BL __umodsi3 .text:00055220 MOV R5, R0 .text:00055224 LDR R1, [SP,#0x48+var_44] .text:00055228 MOV R0, R4 .text:0005522C BL __udivsi3 .text:00055230 LDR R2, [SP,#0x48+var_48] .text:00055234 MUL R2, R0, R2 .text:00055238 MOV R3, R8,LSL#16 .text:0005523C MOV R3, R3,LSR#16 .text:00055240 ORR R5, R3, R5,LSL#16 .text:00055244 CMP R5, R2 .text:00055248 BCS loc_55264 .text:0005524C SUB R0, R0, #1 .text:00055250 ADDS R5, R5, R7 .text:00055254 BCS loc_55264 .text:00055258 CMP R5, R2 .text:0005525C SUBCC R0, R0, #1 .text:00055260 ADDCC R5, R5, R7 .text:00055264 .text:00055264 loc_55264 ; CODE XREF: __umoddi3+414j .text:00055264 ; __umoddi3+420j .text:00055264 RSB R8, R2, R5 .text:00055268 ORR R3, R0, R9,LSL#16 .text:0005526C MOV R0, R3,LSR#16 .text:00055270 MOV R12, R6,LSR#16 .text:00055274 BIC R1, R3, R0,LSL#16 .text:00055278 BIC R2, R6, R12,LSL#16 .text:0005527C MUL LR, R1, R2 .text:00055280 MUL R2, R0, R2 .text:00055284 MUL R1, R12, R1 .text:00055288 MUL R12, R0, R12 .text:0005528C ADDS R1, R2, R1 .text:00055290 ADDCS R12, R12, #0x10000 .text:00055294 ADDS LR, LR, R1,LSL#16 .text:00055298 ADC R12, R12, R1,LSR#16 .text:0005529C CMP R12, R8 .text:000552A0 BHI loc_552BC .text:000552A4 LDR R1, [SP,#0x48+var_30] .text:000552A8 MOVNE R3, #0 .text:000552AC MOVEQ R3, #1 .text:000552B0 CMP R3, #0 .text:000552B4 CMPNE LR, R1 .text:000552B8 BLS loc_552C8 .text:000552BC .text:000552BC loc_552BC ; CODE XREF: __umoddi3+46Cj .text:000552BC SUBS R2, LR, R6 .text:000552C0 SBC R12, R12, R7 .text:000552C4 MOV LR, R2 .text:000552C8 .text:000552C8 loc_552C8 ; CODE XREF: __umoddi3+484j .text:000552C8 LDR R3, [SP,#0x48+var_2C] .text:000552CC CMP R3, #0 .text:000552D0 BEQ loc_5530C .text:000552D4 LDR R2, [SP,#0x48+var_30] .text:000552D8 SUBS R1, R2, LR .text:000552DC SBC R8, R8, R12 .text:000552E0 LDR R12, [SP,#0x48+var_34] .text:000552E4 MOV R3, R1,LSR R12 .text:000552E8 LDR R1, [SP,#0x48+var_38] .text:000552EC ORR R3, R3, R8,LSL R1 .text:000552F0 STR R3, [SP,#0x48+var_40] .text:000552F4 MOV R8, R8,LSR R12 .text:000552F8 STR R8, [SP,#0x48+var_3C] .text:000552FC .text:000552FC loc_552FC ; CODE XREF: __umoddi3+28Cj .text:000552FC LDR R12, [SP,#0x48+var_2C] .text:00055300 ADD R2, SP, #0x48+var_38 .text:00055304 LDMDB R2, {R2,R3} .text:00055308 .text:00055308 loc_55308 ; CODE XREF: __umoddi3+2ACj .text:00055308 ; __umoddi3+334j .text:00055308 STMIA R12, {R2,R3} .text:0005530C .text:0005530C loc_5530C ; CODE XREF: __umoddi3+270j .text:0005530C ; __umoddi3+318j ... .text:0005530C ADD R3, SP, #0x48+var_28 .text:00055310 LDMIA R3, {R0,R1} .text:00055314 ADD SP, SP, #0x28 .text:00055318 LDMFD SP!, {R4-R10,PC} .text:00055318 ; End of function __umoddi3 .text:00055318 .text:0005531C .text:0005531C ; =============== S U B R O U T I N E ======================================= .text:0005531C .text:0005531C .text:0005531C EXPORT __umodsi3 .text:0005531C __umodsi3 ; CODE XREF: chunk_align+38p .text:0005531C ; strerror_r+74p ... .text:0005531C .text:0005531C var_4 = -4 .text:0005531C .text:0005531C CMP R1, #0 .text:00055320 BEQ Ldiv0_2 .text:00055324 MOV R3, #1 .text:00055328 CMP R0, R1 .text:0005532C MOVCC PC, LR .text:00055330 .text:00055330 Loop1_2 ; CODE XREF: __umodsi3+24j .text:00055330 CMP R1, #0x10000000 .text:00055334 CMPCC R1, R0 .text:00055338 MOVCC R1, R1,LSL#4 .text:0005533C MOVCC R3, R3,LSL#4 .text:00055340 BCC Loop1_2 .text:00055344 .text:00055344 Lbignum_2 ; CODE XREF: __umodsi3+38j .text:00055344 CMP R1, #0x80000000 .text:00055348 CMPCC R1, R0 .text:0005534C MOVCC R1, R1,LSL#1 .text:00055350 MOVCC R3, R3,LSL#1 .text:00055354 BCC Lbignum_2 .text:00055358 .text:00055358 Loop3_2 ; CODE XREF: __umodsi3+7Cj .text:00055358 MOV R2, #0 .text:0005535C CMP R0, R1 .text:00055360 SUBCS R0, R0, R1 .text:00055364 CMP R0, R1,LSR#1 .text:00055368 SUBCS R0, R0, R1,LSR#1 .text:0005536C ORRCS R2, R2, R3,ROR#1 .text:00055370 CMP R0, R1,LSR#2 .text:00055374 SUBCS R0, R0, R1,LSR#2 .text:00055378 ORRCS R2, R2, R3,ROR#2 .text:0005537C CMP R0, R1,LSR#3 .text:00055380 SUBCS R0, R0, R1,LSR#3 .text:00055384 ORRCS R2, R2, R3,ROR#3 .text:00055388 MOV R12, R3 .text:0005538C CMP R0, #0 .text:00055390 MOVNES R3, R3,LSR#4 .text:00055394 MOVNE R1, R1,LSR#4 .text:00055398 BNE Loop3_2 .text:0005539C ANDS R2, R2, #0xE0000000 .text:000553A0 MOVEQ PC, LR .text:000553A4 TST R2, R12,ROR#3 .text:000553A8 ADDNE R0, R0, R1,LSR#3 .text:000553AC TST R2, R12,ROR#2 .text:000553B0 ADDNE R0, R0, R1,LSR#2 .text:000553B4 TST R2, R12,ROR#1 .text:000553B8 ADDNE R0, R0, R1,LSR#1 .text:000553BC RET .text:000553C0 ; --------------------------------------------------------------------------- .text:000553C0 .text:000553C0 Ldiv0_2 ; CODE XREF: __umodsi3+4j .text:000553C0 STR LR, [SP,#var_4]! .text:000553C4 BL __div0 .text:000553C8 MOV R0, #0 .text:000553CC LDMFD SP!, {PC} .text:000553CC ; End of function __umodsi3 .text:000553CC .text:000553D0 .text:000553D0 ; =============== S U B R O U T I N E ======================================= .text:000553D0 .text:000553D0 ; Attributes: bp-based frame .text:000553D0 .text:000553D0 __do_global_ctors_aux ; CODE XREF: .init_proc+10p .text:000553D0 MOV R12, SP ; Alternative name is 'gcc2_compiled.' .text:000553D4 STMFD SP!, {R4,R11,R12,LR,PC} .text:000553D8 LDR R4, =force_to_data .text:000553DC LDR R3, [R4] .text:000553E0 SUB R11, R12, #4 .text:000553E4 CMN R3, #1 .text:000553E8 LDMEQDB R11, {R4,R11,SP,PC} .text:000553EC .text:000553EC loc_553EC ; CODE XREF: __do_global_ctors_aux+2Cj .text:000553EC MOV LR, PC .text:000553F0 LDR PC, [R4] .text:000553F4 LDR R3, [R4,#-4]! .text:000553F8 CMN R3, #1 .text:000553FC BNE loc_553EC .text:00055400 LDMDB R11, {R4,R11,SP,PC} .text:00055400 ; End of function __do_global_ctors_aux .text:00055400 .text:00055400 ; --------------------------------------------------------------------------- .text:00055404 off_55404 DCD force_to_data ; DATA XREF: __do_global_ctors_aux+8r .text:00055408 .text:00055408 ; =============== S U B R O U T I N E ======================================= .text:00055408 .text:00055408 ; Attributes: bp-based frame .text:00055408 .text:00055408 init_dummy .text:00055408 MOV R12, SP .text:0005540C STMFD SP!, {R11,R12,LR,PC} .text:00055410 SUB R11, R12, #4 .text:00055414 LDMDB R11, {R11,SP,PC} .text:00055414 ; End of function init_dummy .text:00055414 .text:00055414 ; --------------------------------------------------------------------------- .text:00055418 __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:00055418 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .text:00055418 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .text:00055418 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .text:00055457 DCB 0 .text:00055457 ; .text ends .text:00055457 .fini:00055458 ; =========================================================================== .fini:00055458 .fini:00055458 ; Segment type: Pure code .fini:00055458 AREA .fini, CODE .fini:00055458 ; ORG 0x55458 .fini:00055458 CODE32 .fini:00055458 .fini:00055458 ; =============== S U B R O U T I N E ======================================= .fini:00055458 .fini:00055458 ; Attributes: bp-based frame .fini:00055458 .fini:00055458 EXPORT .term_proc .fini:00055458 .term_proc ; DATA XREF: _start+10o .fini:00055458 ; .text:off_8108o .fini:00055458 MOV R12, SP ; _fini .fini:0005545C STMFD SP!, {R11,R12,LR,PC} .fini:00055460 SUB R11, R12, #4 .fini:00055464 BL __do_global_dtors_aux .fini:00055468 LDMDB R11, {R11,SP,PC} .fini:00055468 ; End of function .term_proc .fini:00055468 .fini:00055468 ; .fini ends .fini:00055468 .rodata:0005546C ; =========================================================================== .rodata:0005546C .rodata:0005546C ; Segment type: Pure data .rodata:0005546C AREA .rodata, DATA, READONLY .rodata:0005546C ; ORG 0x5546C .rodata:0005546C EXPORT _IO_stdin_used .rodata:0005546C _IO_stdin_used DCD 0x20001 .rodata:00055470 aDevMiscUsb_cha DCB "/dev/misc/usb_char",0 .rodata:00055470 ; DATA XREF: open_usbd_interface+Co .rodata:00055470 ; .text:off_8208o .rodata:00055483 ALIGN 4 .rodata:00055484 aOpenDeviceUsb_ DCB "open device usb_char",0 .rodata:00055484 ; DATA XREF: open_usbd_interface+2Co .rodata:00055484 ; .text:off_8210o .rodata:00055499 ALIGN 4 .rodata:0005549C aUsbd_errRecv_b DCB "[##] usbd_err recv_buf NUL.",0xA,0 .rodata:000554B9 ALIGN 4 .rodata:000554BC aRecv_dataLenOv DCB "[##] recv_data len over. usbd_recv_count > usbd_read_count.",0xA,0 .rodata:000554BC ; DATA XREF: read_data_from_usbd+6Co .rodata:000554BC ; .text:off_82F4o .rodata:000554F9 ALIGN 4 .rodata:000554FC aUsbdwSendDataC DCB "[usbdw] send data count = %d. ",0xA,0 .rodata:000554FC ; DATA XREF: write_data_to_usbd+20o .rodata:000554FC ; .text:off_83B4o .rodata:0005551C aUsbdwSendDat_0 DCB "[usbdw] send data to usb err. ret -3.",0xA,0 .rodata:0005551C ; DATA XREF: write_data_to_usbd:loc_8398o .rodata:0005551C ; .text:off_83C0o .rodata:00055543 ALIGN 4 .rodata:00055544 aUsbdwSendDataT DCB "[usbdw] send data to usb timeout. ret -2.",0xA,0 .rodata:00055544 ; DATA XREF: write_data_to_usbd+7Co .rodata:00055544 ; .text:off_83B8o .rodata:0005556F ALIGN 0x10 .rodata:00055570 aUsbdwSendDataL DCB "[usbdw] send data len err, ret -1.",0xA,0 .rodata:00055570 ; DATA XREF: write_data_to_usbd+90o .rodata:00055570 ; .text:off_83BCo .rodata:00055594 aDevDsoFpga DCB "/dev/dso-fpga",0 ; DATA XREF: open_fpga_interface+10o .rodata:00055594 ; open_fpga_interface:off_8438o .rodata:000555A2 ALIGN 4 .rodata:000555A4 aOpenFpga DCB "open fpga",0 ; DATA XREF: open_fpga_interface+2Co .rodata:000555A4 ; open_fpga_interface:off_8440o .rodata:000555AE ALIGN 0x10 .rodata:000555B0 aMampErr DCB "mamp err!",0xA,0 ; DATA XREF: open_fpga_interface:loc_8448o .rodata:000555B0 ; open_fpga_interface:off_8458o .rodata:000555BB ALIGN 4 .rodata:000555BC dword_555BC DCD 0x2000353, 0, 0 ; DATA XREF: check_usbd_data+1Co .rodata:000555BC ; check_usbd_data:off_859Co .rodata:000555C8 dword_555C8 DCD 0x6425 ; DATA XREF: main+28o .rodata:000555C8 ; main:off_894Co .rodata:000555CC aSendDataToPcNo DCB "send data to pc now",0xA,0 ; DATA XREF: main+FCo .rodata:000555CC ; main:off_8960o .rodata:000555E1 ALIGN 4 .rodata:000555E4 aCheckData0xX DCB "check data:0x%x",0xA,0 ; DATA XREF: main+30Co .rodata:000555E4 ; main:off_8970o .rodata:000555F5 ALIGN 4 .rodata:000555F8 aErrorCmd DCB "error cmd!!!!",0xA,0 ; DATA XREF: main:loc_8974o .rodata:000555F8 ; main:off_8984o .rodata:00055607 ALIGN 4 .rodata:00055608 aDevNull DCB "/dev/null",0 ; DATA XREF: check_one_fd+34o .rodata:00055608 ; check_one_fd:off_8B78o .rodata:00055612 ALIGN 4 .rodata:00055614 dword_55614 DCD 0 ; DATA XREF: perror:loc_90A0o .rodata:00055614 ; perror:off_90F8o .rodata:00055618 asc_55618 DCB ": ",0 ; DATA XREF: perror:loc_90ACo .rodata:00055618 ; perror:off_90FCo .rodata:0005561B ALIGN 4 .rodata:0005561C asc_5561C DCB "%",0 ; DATA XREF: perror+7Co .rodata:0005561C ; perror:off_9104o .rodata:0005561E ALIGN 0x10 .rodata:00055620 aS_2 DCB "s",0 .rodata:00055622 ALIGN 4 .rodata:00055624 DCB "%",0 .rodata:00055626 ALIGN 4 .rodata:00055628 aS_3 DCB "s",0 .rodata:0005562A ALIGN 4 .rodata:0005562C DCB "%",0 .rodata:0005562E ALIGN 0x10 .rodata:00055630 aS_4 DCB "s",0 .rodata:00055632 ALIGN 4 .rodata:00055634 DCB 0xA,0 .rodata:00055636 ALIGN 4 .rodata:00055638 DCD 0 .rodata:0005563C aSSS DCB "%s%s%s",0xA,0 ; DATA XREF: perror+A8o .rodata:0005563C ; perror:off_9124o .rodata:00055644 aMalloc_trim_th DCB "MALLOC_TRIM_THRESHOLD_",0 .rodata:00055644 ; DATA XREF: ptmalloc_init+148o .rodata:00055644 ; .text:off_B250o .rodata:0005565B ALIGN 4 .rodata:0005565C aMalloc_top_pad DCB "MALLOC_TOP_PAD_",0 ; DATA XREF: ptmalloc_init:loc_B128o .rodata:0005565C ; .text:off_B254o .rodata:0005566C aMalloc_mmap_th DCB "MALLOC_MMAP_THRESHOLD_",0 .rodata:0005566C ; DATA XREF: ptmalloc_init:loc_B154o .rodata:0005566C ; .text:off_B258o .rodata:00055683 ALIGN 4 .rodata:00055684 aMalloc_mmap_ma DCB "MALLOC_MMAP_MAX_",0 .rodata:00055684 ; DATA XREF: ptmalloc_init:loc_B180o .rodata:00055684 ; .text:off_B25Co .rodata:00055695 ALIGN 4 .rodata:00055698 aMalloc_check_ DCB "MALLOC_CHECK_",0 ; DATA XREF: ptmalloc_init:loc_B1ACo .rodata:00055698 ; .text:off_B260o .rodata:000556A6 ALIGN 4 .rodata:000556A8 aMallocUsingDeb DCB "malloc: using debugging hooks",0xA,0 .rodata:000556A8 ; DATA XREF: __malloc_check_init+74o .rodata:000556A8 ; .text:off_B3C8o .rodata:000556C7 ALIGN 4 .rodata:000556C8 aArenaD DCB "Arena %d:",0xA,0 ; DATA XREF: malloc_stats+54o .rodata:000556C8 ; malloc_stats:off_DC60o .rodata:000556D3 ALIGN 4 .rodata:000556D4 aSystemBytes10u DCB "system bytes = %10u",0xA,0 .rodata:000556D4 ; DATA XREF: malloc_stats+28o .rodata:000556D4 ; malloc_stats:off_DBA4o .rodata:000556ED ALIGN 0x10 .rodata:000556F0 aInUseBytes10u DCB "in use bytes = %10u",0xA,0 .rodata:000556F0 ; DATA XREF: malloc_stats+7Co .rodata:000556F0 ; malloc_stats+C0o ... .rodata:00055709 ALIGN 4 .rodata:0005570C aTotalIncl_Mmap DCB "Total (incl. mmap):",0xA,0 .rodata:0005570C ; DATA XREF: malloc_stats+A8o .rodata:0005570C ; malloc_stats:off_DC6Co .rodata:00055721 ALIGN 4 .rodata:00055724 aMaxMmapRegions DCB "max mmap regions = %10u",0xA,0 .rodata:00055724 ; DATA XREF: malloc_stats+D8o .rodata:00055724 ; malloc_stats:off_DC74o .rodata:0005573D ALIGN 0x10 .rodata:00055740 aMaxMmapBytes10 DCB "max mmap bytes = %10lu",0xA,0 .rodata:00055740 ; DATA XREF: malloc_stats+ECo .rodata:00055740 ; malloc_stats:off_DC7Co .rodata:0005575A ALIGN 4 .rodata:0005575C aMallocTopChunk DCB "malloc: top chunk is corrupt",0xA,0 .rodata:0005575C ; DATA XREF: top_check+64o .rodata:0005575C ; .text:off_E540o .rodata:0005577A ALIGN 4 .rodata:0005577C aFreeInvalidPoi DCB "free(): invalid pointer %p!",0xA,0 .rodata:0005577C ; DATA XREF: free_check+8Co .rodata:0005577C ; .text:off_E770o .rodata:00055799 ALIGN 4 .rodata:0005579C aReallocInvalid DCB "realloc(): invalid pointer %p!",0xA,0 .rodata:0005579C ; DATA XREF: realloc_check+A0o .rodata:0005579C ; .text:off_EA18o .rodata:000557BC aUnknownError DCB "Unknown error ",0 ; DATA XREF: strerror_r+44o .rodata:000557BC ; strerror_r:off_EFE8o .rodata:000557CB ALIGN 4 .rodata:000557CC aBadDynamicTag DCB "bad dynamic tag",0 ; DATA XREF: _dl_map_object_from_fd+95Co .rodata:000557CC ; _dl_map_object_from_fd:off_11A20o .rodata:000557DC aBadDynamicTa_0 DCB "! ",0x22,"bad dynamic tag",0x22,0 .rodata:000557DC ; DATA XREF: _dl_map_object_from_fd+968o .rodata:000557DC ; _dl_map_object_from_fd:off_11A24o .rodata:000557F0 aDynamicLink_h DCB "dynamic-link.h",0 ; DATA XREF: _dl_map_object_from_fd+96Co .rodata:000557F0 ; _dl_map_object_from_fd+9E4o ... .rodata:000557FF ALIGN 0x10 .rodata:00055800 aElf_get_dynami DCB "elf_get_dynamic_info",0 .rodata:00055800 ; DATA XREF: _dl_map_object_from_fd+970o .rodata:00055800 ; _dl_map_object_from_fd+9E8o ... .rodata:00055815 ALIGN 4 .rodata:00055818 aInfo19D_un_d_v DCB "info[19]->d_un.d_val == sizeof (Elf32_Rel)",0 .rodata:00055818 ; DATA XREF: _dl_map_object_from_fd+9E0o .rodata:00055818 ; _dl_map_object_from_fd:off_11A30o .rodata:00055843 ALIGN 4 .rodata:00055844 aInfo20D_un_d_v DCB "info[20]->d_un.d_val == 17",0 .rodata:00055844 ; DATA XREF: _dl_map_object_from_fd+A18o .rodata:00055844 ; _dl_map_object_from_fd:off_11A34o .rodata:0005585F EXPORT _dl_pf_to_prot .rodata:0005585F _dl_pf_to_prot DCQ 0x703050106020400 ; DATA XREF: _dl_map_object_from_fd+3ECo .rodata:0005585F ; _dl_map_object_from_fd:off_115C4o ... .rodata:00055867 ALIGN 4 .rodata:00055868 system_dirs DCB "/usr/local/arm/2.95.3/arm-linux/lib/",0 .rodata:00055868 ; DATA XREF: _dl_init_paths+BCo .rodata:00055868 ; _dl_init_paths:off_10BBCo ... .rodata:0005588D ALIGN 0x10 .rodata:00055890 system_dirs_len DCD 0x24 ; DATA XREF: _dl_init_paths+F8o .rodata:00055890 ; _dl_init_paths:off_10BC8o ... .rodata:00055894 aOrigin DCB "{ORIGIN}",0 ; DATA XREF: _dl_dst_count+18o .rodata:00055894 ; _dl_dst_count:off_FFBCo ... .rodata:0005589D ALIGN 0x10 .rodata:000558A0 aPlatform DCB "{PLATFORM}",0 ; DATA XREF: _dl_dst_count+BCo .rodata:000558A0 ; _dl_dst_count:off_FFC4o ... .rodata:000558AB ALIGN 4 .rodata:000558AC aLL_name00 DCB "(l)->l_name[0] == '\0'",0 .rodata:000558AC ; DATA XREF: expand_dynamic_string_token+98o .rodata:000558AC ; .text:off_10364o .rodata:000558C3 ALIGN 4 .rodata:000558C4 aDlLoad_c DCB "dl-load.c",0 ; DATA XREF: expand_dynamic_string_token+9Co .rodata:000558C4 ; .text:off_10368o ... .rodata:000558CE ALIGN 0x10 .rodata:000558D0 aExpand_dynamic DCB "expand_dynamic_string_token",0 .rodata:000558D0 ; DATA XREF: expand_dynamic_string_token+A4o .rodata:000558D0 ; .text:off_1036Co .rodata:000558EC aCannotAllocate DCB "cannot allocate name record",0 .rodata:000558EC ; DATA XREF: add_name_to_object+68o .rodata:000558EC ; .text:off_10430o .rodata:00055908 aLastpVoid0 DCB "lastp != ((void *)0)",0 .rodata:00055908 ; DATA XREF: add_name_to_object+7Co .rodata:00055908 ; .text:off_10434o .rodata:0005591D ALIGN 0x10 .rodata:00055920 aAdd_name_to_ob DCB "add_name_to_object",0 .rodata:00055920 ; DATA XREF: add_name_to_object+88o .rodata:00055920 ; .text:off_1043Co .rodata:00055933 ALIGN 4 .rodata:00055934 curwd.159 DCB "./",0 ; DATA XREF: decompose_rpath+18Co .rodata:00055934 ; decompose_rpath:off_107C8o ... .rodata:00055937 ALIGN 4 .rodata:00055938 aCannotCreateCa DCB "cannot create cache for search path",0 .rodata:00055938 ; DATA XREF: decompose_rpath+A0o .rodata:00055938 ; decompose_rpath+12Co ... .rodata:0005595C aCannotCreateRu DCB "cannot create RUNPATH/RPATH copy",0 .rodata:0005595C ; DATA XREF: decompose_rpath+CCo .rodata:0005595C ; decompose_rpath:off_107C0o .rodata:0005597D ALIGN 0x10 .rodata:00055980 asc_55980 DCB ":",0 ; DATA XREF: decompose_rpath+150o .rodata:00055980 ; decompose_rpath:off_107C4o .rodata:00055982 ALIGN 4 .rodata:00055984 aCannotCreateSe DCB "cannot create search path array",0 .rodata:00055984 ; DATA XREF: _dl_init_paths+58o .rodata:00055984 ; _dl_init_paths:off_10BB4o .rodata:000559A4 aSystemSearchPa DCB "system search path",0 ; DATA XREF: _dl_init_paths+C4o .rodata:000559A4 ; _dl_init_paths:off_10BC0o .rodata:000559B7 ALIGN 4 .rodata:000559B8 aPelemDirname0 DCB "pelem->dirname[0] == '/'",0 .rodata:000559B8 ; DATA XREF: _dl_init_paths+11Co .rodata:000559B8 ; _dl_init_paths:off_10BCCo .rodata:000559D1 ALIGN 4 .rodata:000559D4 a_dl_init_paths DCB "_dl_init_paths",0 ; DATA XREF: _dl_init_paths+128o .rodata:000559D4 ; _dl_init_paths:off_10BD4o .rodata:000559E3 ALIGN 4 .rodata:000559E4 asc_559E4 DCB ":;",0 ; DATA XREF: _dl_init_paths+264o .rodata:000559E4 ; _dl_init_paths:off_10BE4o .rodata:000559E7 ALIGN 4 .rodata:000559E8 aLd_library_pat DCB "LD_LIBRARY_PATH",0 ; DATA XREF: _dl_init_paths+4ECo .rodata:000559E8 ; _dl_init_paths:off_10D60o .rodata:000559F8 aFailedToMapSeg DCB "failed to map segment from shared object",0 .rodata:000559F8 ; DATA XREF: _dl_map_object_from_fd+49Co .rodata:000559F8 ; _dl_map_object_from_fd+5ACo ... .rodata:00055A21 ALIGN 4 .rodata:00055A24 aCannotStatShar DCB "cannot stat shared object",0 .rodata:00055A24 ; DATA XREF: _dl_map_object_from_fd+58o .rodata:00055A24 ; _dl_map_object_from_fd:off_11178o .rodata:00055A3E ALIGN 0x10 .rodata:00055A40 aFileSGeneratin DCB "file=%s; generating link map",0xA,0 .rodata:00055A40 ; DATA XREF: _dl_map_object_from_fd+120o .rodata:00055A40 ; _dl_map_object_from_fd:off_11184o .rodata:00055A5F ALIGN 0x10 .rodata:00055A60 aCannotCreateSh DCB "cannot create shared object descriptor",0 .rodata:00055A60 ; DATA XREF: _dl_map_object_from_fd+164o .rodata:00055A60 ; _dl_map_object_from_fd:off_11188o ... .rodata:00055A87 ALIGN 4 .rodata:00055A88 aCannotReadFile DCB "cannot read file data",0 .rodata:00055A88 ; DATA XREF: _dl_map_object_from_fd+224o .rodata:00055A88 ; _dl_map_object_from_fd:off_1118Co ... .rodata:00055A9E ALIGN 0x10 .rodata:00055AA0 aElfLoadCommand DCB "ELF load command alignment not page-aligned",0 .rodata:00055AA0 ; DATA XREF: _dl_map_object_from_fd+300o .rodata:00055AA0 ; _dl_map_object_from_fd:off_11194o .rodata:00055ACC aElfLoadComma_0 DCB "ELF load command address/offset not properly aligned",0 .rodata:00055ACC ; DATA XREF: _dl_map_object_from_fd+340o .rodata:00055ACC ; _dl_map_object_from_fd:off_11198o .rodata:00055B01 ALIGN 4 .rodata:00055B04 aCannotDynamica DCB "cannot dynamically load executable",0 .rodata:00055B04 ; DATA XREF: _dl_map_object_from_fd+50Co .rodata:00055B04 ; _dl_map_object_from_fd:off_115CCo .rodata:00055B27 ALIGN 4 .rodata:00055B28 aCannotChangeMe DCB "cannot change memory protections",0 .rodata:00055B28 ; DATA XREF: _dl_map_object_from_fd+694o .rodata:00055B28 ; _dl_map_object_from_fd:off_115D4o .rodata:00055B49 ALIGN 4 .rodata:00055B4C aCannotMapZeroF DCB "cannot map zero-fill pages",0 .rodata:00055B4C ; DATA XREF: _dl_map_object_from_fd+71Co .rodata:00055B4C ; _dl_map_object_from_fd:off_115D8o .rodata:00055B67 ALIGN 4 .rodata:00055B68 aCannotAlloca_0 DCB "cannot allocate memory for program header",0 .rodata:00055B68 ; DATA XREF: _dl_map_object_from_fd+78Co .rodata:00055B68 ; _dl_map_object_from_fd:off_115DCo .rodata:00055B92 ALIGN 4 .rodata:00055B94 aObjectFileHasN DCB "object file has no dynamic section",0 .rodata:00055B94 ; DATA XREF: _dl_map_object_from_fd+850o .rodata:00055B94 ; _dl_map_object_from_fd:off_11A14o .rodata:00055BB7 ALIGN 4 .rodata:00055BB8 aDynamic0x0LxBa DCB " dynamic: 0x%0*lx base: 0x%0*lx size: 0x%0*Zx",0xA .rodata:00055BB8 ; DATA XREF: _dl_map_object_from_fd+8D8o .rodata:00055BB8 ; _dl_map_object_from_fd:off_11A1Co .rodata:00055BB8 DCB " entry: 0x%0*lx phdr: 0x%0*lx phnum: %*u",0xA .rodata:00055BB8 DCB 0xA,0 .rodata:00055C1C aLL_nextVoid0 DCB "l->l_next == ((void *)0)",0 .rodata:00055C1C ; DATA XREF: _dl_map_object_from_fd+ACCo .rodata:00055C1C ; _dl_map_object_from_fd:off_11A38o .rodata:00055C35 ALIGN 4 .rodata:00055C38 a_dl_map_object DCB "_dl_map_object_from_fd",0 .rodata:00055C38 ; DATA XREF: _dl_map_object_from_fd+AD8o .rodata:00055C38 ; _dl_map_object_from_fd:off_11A40o .rodata:00055C4F ALIGN 0x10 .rodata:00055C50 aSharedObjectCa DCB "shared object cannot be dlopen()ed",0 .rodata:00055C50 ; DATA XREF: _dl_map_object_from_fd+B50o .rodata:00055C50 ; _dl_map_object_from_fd:off_11A4Co .rodata:00055C73 ALIGN 4 .rodata:00055C74 aCannotCreate_0 DCB "cannot create searchlist",0 .rodata:00055C74 ; DATA XREF: _dl_map_object_from_fd+BB8o .rodata:00055C74 ; _dl_map_object_from_fd:off_11A50o .rodata:00055C8D ALIGN 0x10 .rodata:00055C90 aSearchPath DCB " search path=",0 ; DATA XREF: print_search_path+18o .rodata:00055C90 ; print_search_path:off_11C54o .rodata:00055C9E ALIGN 0x10 .rodata:00055CA0 aS DCB "%s",0 ; DATA XREF: print_search_path+100o .rodata:00055CA0 ; print_search_path:off_11C60o .rodata:00055CA3 ALIGN 4 .rodata:00055CA4 aS_0 DCB ":%s",0 ; DATA XREF: print_search_path:loc_11BDCo .rodata:00055CA4 ; print_search_path:off_11C64o .rodata:00055CA8 aSFromFileS DCB 9,9,"(%s from file %s)",0xA,0 .rodata:00055CA8 ; DATA XREF: print_search_path+170o .rodata:00055CA8 ; print_search_path:off_11C6Co .rodata:00055CBD ALIGN 0x10 .rodata:00055CC0 aS_1 DCB 9,9,"(%s)",0xA,0 ; DATA XREF: print_search_path:loc_11C70o .rodata:00055CC0 ; print_search_path:off_11C80o .rodata:00055CC8 expected.182 DCB 0x7F, 0x45, 0x4C, 0x46, 1, 1, 1, 0, 0 .rodata:00055CC8 ; DATA XREF: open_verify+98o .rodata:00055CC8 ; open_verify:off_12088o .rodata:00055CD1 ALIGN 4 .rodata:00055CD4 expected_note.183 DCB 4, 0, 0, 0, 0x10, 0, 0, 0, 1, 0, 0, 0, 0x47, 0x4E .rodata:00055CD4 ; DATA XREF: open_verify+38Co .rodata:00055CD4 ; open_verify:off_120B0o .rodata:00055CD4 DCB 0x55, 0 .rodata:00055CE4 aFileTooShort DCB "file too short",0 ; DATA XREF: open_verify+74o .rodata:00055CE4 ; open_verify:off_12084o .rodata:00055CF3 ALIGN 4 .rodata:00055CF4 aInvalidElfHead DCB "invalid ELF header",0 ; DATA XREF: open_verify+DCo .rodata:00055CF4 ; open_verify:off_12090o .rodata:00055D07 ALIGN 4 .rodata:00055D08 aElfFileDataE_0 DCB "ELF file data encoding not big-endian",0 .rodata:00055D2E ALIGN 0x10 .rodata:00055D30 aElfFileDataEnc DCB "ELF file data encoding not little-endian",0 .rodata:00055D30 ; DATA XREF: open_verify+114o .rodata:00055D30 ; open_verify:off_12094o .rodata:00055D59 ALIGN 4 .rodata:00055D5C aElfFileVersion DCB "ELF file version ident does not match current one",0 .rodata:00055D5C ; DATA XREF: open_verify+140o .rodata:00055D5C ; open_verify:off_12098o .rodata:00055D8E ALIGN 0x10 .rodata:00055D90 aElfFileOsAbiIn DCB "ELF file OS ABI invalid",0 .rodata:00055D90 ; DATA XREF: open_verify+17Co .rodata:00055D90 ; open_verify:off_1209Co .rodata:00055DA8 aElfFileAbiVers DCB "ELF file ABI version invalid",0 .rodata:00055DC5 ALIGN 4 .rodata:00055DC8 aInternalError DCB "internal error",0 ; DATA XREF: open_verify+19Co .rodata:00055DC8 ; open_verify:off_120A0o .rodata:00055DD7 ALIGN 4 .rodata:00055DD8 aElfFileVersi_0 DCB "ELF file version does not match current one",0 .rodata:00055DD8 ; DATA XREF: open_verify+1C8o .rodata:00055DD8 ; open_verify:off_120A4o .rodata:00055E04 aElfFileSPhents DCB "ELF file's phentsize not the expected size",0 .rodata:00055E04 ; DATA XREF: open_verify+208o .rodata:00055E04 ; open_verify:off_120A8o .rodata:00055E2F ALIGN 0x10 .rodata:00055E30 aOnlyEt_dynAndE DCB "only ET_DYN and ET_EXEC can be loaded",0 .rodata:00055E30 ; DATA XREF: open_verify+238o .rodata:00055E30 ; open_verify:off_120ACo .rodata:00055E56 ALIGN 4 .rodata:00055E58 aTryingFileS DCB " trying file=%s",0xA,0 ; DATA XREF: open_path+134o .rodata:00055E58 ; open_path:off_1236Co .rodata:00055E6A ALIGN 4 .rodata:00055E6C aFileSNeededByS DCB 0xA ; DATA XREF: _dl_map_object+144o .rodata:00055E6C ; _dl_map_object:off_1277Co .rodata:00055E6C DCB "file=%s; needed by %s",0xA,0 .rodata:00055E85 ALIGN 4 .rodata:00055E88 aFindLibrarySSe DCB "find library=%s; searching",0xA,0 .rodata:00055E88 ; DATA XREF: _dl_map_object+184o .rodata:00055E88 ; _dl_map_object:off_12780o .rodata:00055EA4 aRpath DCB "RPATH",0 ; DATA XREF: _dl_map_object+208o .rodata:00055EA4 ; _dl_map_object:off_12784o .rodata:00055EAA ALIGN 4 .rodata:00055EAC aRunpath DCB "RUNPATH",0 ; DATA XREF: _dl_map_object+3B8o .rodata:00055EAC ; _dl_map_object:off_12AE0o .rodata:00055EB4 asc_55EB4 DCB 0xA,0 ; DATA XREF: _dl_map_object+5B8o .rodata:00055EB4 ; _dl_map_object:off_12AF8o .rodata:00055EB6 ALIGN 4 .rodata:00055EB8 dummy_bucket.190 DCD 0 ; DATA XREF: _dl_map_object+6C0o .rodata:00055EB8 ; _dl_map_object:off_12B00o .rodata:00055EBC aCannotOpenShar DCB "cannot open shared object file",0 .rodata:00055EBC ; DATA XREF: _dl_map_object+6E4o .rodata:00055EBC ; _dl_map_object:off_12B04o .rodata:00055EDB ALIGN 4 .rodata:00055EDC aAt_hwcap DCB "AT_HWCAP: ",0 .rodata:00055EE9 ALIGN 4 .rodata:00055EEC aS_5 DCB " %s",0 .rodata:00055EF0 DCB 0xA,0 .rodata:00055EF2 ALIGN 4 .rodata:00055EF4 aSearchCacheS DCB " search cache=%s",0xA,0 .rodata:00055EF4 ; DATA XREF: _dl_load_cache_lookup+24o .rodata:00055EF4 ; _dl_load_cache_lookup:off_1300Co .rodata:00055F06 ALIGN 4 .rodata:00055F08 aUsrLocalArm2_9 DCB "/usr/local/arm/2.95.3/arm-linux/etc/ld.so.cache",0 .rodata:00055F08 ; DATA XREF: _dl_load_cache_lookup+28o .rodata:00055F08 ; _dl_load_cache_lookup+48o ... .rodata:00055F38 aLd_so1_7_0 DCB "ld.so-1.7.0",0 ; DATA XREF: _dl_load_cache_lookup+6Co .rodata:00055F38 ; _dl_load_cache_lookup:off_1301Co .rodata:00055F44 aGlibcLd_so_cac DCB "glibc-ld.so.cache1.1",0 .rodata:00055F44 ; DATA XREF: _dl_load_cache_lookup+B4o .rodata:00055F44 ; _dl_load_cache_lookup+ECo ... .rodata:00055F59 ALIGN 4 .rodata:00055F5C aCacheVoid0 DCB "cache != ((void *)0)",0 .rodata:00055F5C ; DATA XREF: _dl_load_cache_lookup+144o .rodata:00055F5C ; _dl_load_cache_lookup:off_13028o .rodata:00055F71 ALIGN 4 .rodata:00055F74 a__SysdepsGener DCB "../sysdeps/generic/dl-cache.c",0 .rodata:00055F74 ; DATA XREF: _dl_load_cache_lookup+148o .rodata:00055F74 ; _dl_load_cache_lookup:off_1302Co .rodata:00055F92 ALIGN 4 .rodata:00055F94 a_dl_load_cache DCB "_dl_load_cache_lookup",0 .rodata:00055F94 ; DATA XREF: _dl_load_cache_lookup+14Co .rodata:00055F94 ; _dl_load_cache_lookup:off_13030o .rodata:00055FAA ALIGN 4 .rodata:00055FAC aTryingFileS_0 DCB " trying file=%s",0xA,0 .rodata:00055FAC ; DATA XREF: _dl_load_cache_lookup+558o .rodata:00055FAC ; _dl_load_cache_lookup:off_131C8o .rodata:00055FBE ALIGN 0x10 .rodata:00055FC0 undefined_msg DCB "undefined symbol: ",0 .rodata:00055FC0 ; DATA XREF: _dl_lookup_symbol+43Co .rodata:00055FC0 ; _dl_lookup_symbol:off_13884o ... .rodata:00055FD3 ALIGN 4 .rodata:00055FD4 aSymbolSLookupI DCB "symbol=%s; lookup in file=%s",0xA,0 .rodata:00055FD4 ; DATA XREF: _dl_lookup_symbol+1C4o .rodata:00055FD4 ; _dl_lookup_symbol:off_13874o ... .rodata:00055FF3 ALIGN 4 .rodata:00055FF4 aVersionFilenam DCB "version->filename == ((void *)0) || ! _dl_name_match_p (version-" .rodata:00055FF4 ; DATA XREF: _dl_lookup_versioned_symbol+2F4o .rodata:00055FF4 ; _dl_lookup_versioned_symbol:off_14B30o ... .rodata:00055FF4 DCB ">filename, map)",0 .rodata:00056044 aDoLookup_h DCB "do-lookup.h",0 ; DATA XREF: _dl_lookup_versioned_symbol+2F8o .rodata:00056044 ; _dl_lookup_versioned_symbol:off_14B34o ... .rodata:00056050 aDo_lookup_vers DCB "do_lookup_versioned",0 .rodata:00056050 ; DATA XREF: _dl_lookup_versioned_symbol+2FCo .rodata:00056050 ; _dl_lookup_versioned_symbol:off_14B38o ... .rodata:00056064 aFileSNeededB_0 DCB 0xA ; DATA XREF: add_dependency+164o .rodata:00056064 ; .text:off_133B8o .rodata:00056064 DCB "file=%s; needed by %s (relocation dependency)",0xA .rodata:00056064 DCB 0xA,0 .rodata:00056096 ALIGN 4 .rodata:00056098 aMainProgram DCB "<main program>",0 ; DATA XREF: _dl_lookup_symbol+418o .rodata:00056098 ; _dl_lookup_symbol:off_13880o ... .rodata:000560A7 ALIGN 4 .rodata:000560A8 aBindingFileSTo DCB "binding file %s to %s: %s symbol `%s'",0xA,0 .rodata:000560A8 ; DATA XREF: _dl_lookup_symbol+574o .rodata:000560A8 ; _dl_lookup_symbol:off_13BBCo ... .rodata:000560CF ALIGN 0x10 .rodata:000560D0 aProtected DCB "protected",0 ; DATA XREF: _dl_lookup_symbol+56Co .rodata:000560D0 ; _dl_lookup_symbol:off_13BB8o ... .rodata:000560DA ALIGN 4 .rodata:000560DC aNormal DCB "normal",0 ; DATA XREF: _dl_lookup_symbol+564o .rodata:000560DC ; _dl_lookup_symbol:off_13BB4o ... .rodata:000560E3 ALIGN 4 .rodata:000560E4 aIScopeR_ndupli DCB "i < (*scope)->r_nduplist",0 .rodata:000560E4 ; DATA XREF: _dl_lookup_symbol_skip+144o .rodata:000560E4 ; _dl_lookup_symbol_skip:off_13F3Co ... .rodata:000560FD ALIGN 0x10 .rodata:00056100 aDlLookup_c DCB "dl-lookup.c",0 ; DATA XREF: _dl_lookup_symbol_skip+148o .rodata:00056100 ; _dl_lookup_symbol_skip:off_13F40o ... .rodata:0005610C a_dl_lookup_sym DCB "_dl_lookup_symbol_skip",0 .rodata:0005610C ; DATA XREF: _dl_lookup_symbol_skip+150o .rodata:0005610C ; _dl_lookup_symbol_skip:off_13F44o .rodata:00056123 ALIGN 4 .rodata:00056124 aSymbol DCB "symbol ",0 ; DATA XREF: _dl_lookup_versioned_symbol+558o .rodata:00056124 ; _dl_lookup_versioned_symbol:off_14EB0o .rodata:0005612C aVersion DCB ", version ",0 ; DATA XREF: _dl_lookup_versioned_symbol+550o .rodata:0005612C ; _dl_lookup_versioned_symbol+6A8o ... .rodata:00056137 ALIGN 4 .rodata:00056138 aNotDefinedInFi DCB " not defined in file ",0 .rodata:00056138 ; DATA XREF: _dl_lookup_versioned_symbol+564o .rodata:00056138 ; _dl_lookup_versioned_symbol:off_14EB4o .rodata:0005614E ALIGN 0x10 .rodata:00056150 aWithLinkTimeRe DCB " with link time reference",0 .rodata:00056150 ; DATA XREF: _dl_lookup_versioned_symbol+574o .rodata:00056150 ; _dl_lookup_versioned_symbol:off_14EB8o .rodata:0005616A ALIGN 4 .rodata:0005616C aNoVersionSymbo DCB " (no version symbols)",0 .rodata:0005616C ; DATA XREF: _dl_lookup_versioned_symbol+584o .rodata:0005616C ; _dl_lookup_versioned_symbol:off_14EBCo .rodata:00056182 ALIGN 4 .rodata:00056184 dword_56184 DCD 0 ; DATA XREF: _dl_lookup_versioned_symbol+588o .rodata:00056184 ; _dl_lookup_versioned_symbol:off_14EC0o .rodata:00056188 aBindingFileS_0 DCB "binding file %s to %s: %s symbol `%s' [%s]",0xA,0 .rodata:00056188 ; DATA XREF: _dl_lookup_versioned_symbol+828o .rodata:00056188 ; _dl_lookup_versioned_symbol:off_15290o ... .rodata:000561B4 a_dl_lookup_ver DCB "_dl_lookup_versioned_symbol_skip",0 .rodata:000561B4 ; DATA XREF: _dl_lookup_versioned_symbol_skip+150o .rodata:000561B4 ; _dl_lookup_versioned_symbol_skip:off_156C4o .rodata:000561D5 ALIGN 4 .rodata:000561D8 EXPORT _dl_out_of_memory .rodata:000561D8 _dl_out_of_memory DCB "out of memory",0 ; DATA XREF: _dl_signal_error+B0o .rodata:000561D8 ; .text:off_167C8o ... .rodata:000561E6 ALIGN 4 .rodata:000561E8 aDynamicLinkerB DCB "DYNAMIC LINKER BUG!!!",0 .rodata:000561E8 ; DATA XREF: _dl_signal_error+1Co .rodata:000561E8 ; .text:off_167BCo .rodata:000561FE ALIGN 0x10 .rodata:00056200 dword_56200 DCD 0 ; DATA XREF: _dl_signal_error:loc_166F8o .rodata:00056200 ; _dl_signal_error:loc_1673Co ... .rodata:00056204 aSErrorWhileLoa DCB "%s: error while loading shared libraries: %s%s%s%s%s",0xA,0 .rodata:00056204 ; DATA XREF: _dl_signal_error+FCo .rodata:00056204 ; .text:off_167D4o .rodata:0005623A ALIGN 4 .rodata:0005623C aProgramNameUnk DCB "<program name unknown>",0 .rodata:0005623C ; DATA XREF: _dl_signal_error+F4o .rodata:0005623C ; .text:off_167CCo .rodata:00056253 ALIGN 4 .rodata:00056254 asc_56254 DCB ": ",0 ; DATA XREF: _dl_signal_error+10Co .rodata:00056254 ; .text:off_167D8o .rodata:00056257 ALIGN 4 .rodata:00056258 aPid0Pid100000 DCB "pid >= 0 && pid < 100000",0 .rodata:00056258 ; DATA XREF: _dl_debug_vdprintf+88o .rodata:00056258 ; _dl_debug_vdprintf:off_16F1Co .rodata:00056271 ALIGN 4 .rodata:00056274 aDlMisc_c DCB "dl-misc.c",0 ; DATA XREF: _dl_debug_vdprintf+8Co .rodata:00056274 ; _dl_debug_vdprintf+108o ... .rodata:0005627E ALIGN 0x10 .rodata:00056280 a_dl_debug_vdpr DCB "_dl_debug_vdprintf",0 .rodata:00056280 ; DATA XREF: _dl_debug_vdprintf+90o .rodata:00056280 ; _dl_debug_vdprintf+10Co ... .rodata:00056293 ALIGN 4 .rodata:00056294 aNiovNiovmax DCB "niov < niovmax",0 ; DATA XREF: _dl_debug_vdprintf+104o .rodata:00056294 ; _dl_debug_vdprintf+18Co ... .rodata:000562A3 ALIGN 4 .rodata:000562A4 aInvalidFormatS DCB "invalid format specifier",0 .rodata:000562A4 ; DATA XREF: _dl_debug_vdprintf:loc_16EC8o .rodata:000562A4 ; _dl_debug_vdprintf:off_16F30o .rodata:000562BD ALIGN 0x10 .rodata:000562C0 aInvalidForma_0 DCB "! ",0x22,"invalid format specifier",0x22,0 .rodata:000562C0 ; DATA XREF: _dl_debug_vdprintf+3F0o .rodata:000562C0 ; _dl_debug_vdprintf:off_16F34o .rodata:000562DD ALIGN 0x10 .rodata:000562E0 aLd_warn DCB "LD_WARN",0 ; DATA XREF: non_dynamic_init:loc_17090o .rodata:000562E0 ; .text:off_171C0o .rodata:000562E8 dword_562E8 DCD 0 ; DATA XREF: non_dynamic_init+2Co .rodata:000562E8 ; .text:off_171C4o .rodata:000562EC aLd_library_p_0 DCB "LD_LIBRARY_PATH",0 ; DATA XREF: non_dynamic_init+50o .rodata:000562EC ; .text:off_171CCo .rodata:000562FC aLd_bind_now DCB "LD_BIND_NOW",0 ; DATA XREF: non_dynamic_init+5Co .rodata:000562FC ; .text:off_171D0o .rodata:00056308 aLd_bind_not DCB "LD_BIND_NOT",0 ; DATA XREF: non_dynamic_init+84o .rodata:00056308 ; .text:off_171D8o .rodata:00056314 aLd_dynamic_wea DCB "LD_DYNAMIC_WEAK",0 ; DATA XREF: non_dynamic_init+ACo .rodata:00056314 ; .text:off_171E4o .rodata:00056324 aTzdir_0 DCB "TZDIR",0 ; DATA XREF: .data:0006B6B8o .rodata:0005632A ALIGN 4 .rodata:0005632C aTmpdir DCB "TMPDIR",0 ; DATA XREF: .data:0006B6B4o .rodata:00056333 ALIGN 4 .rodata:00056334 aRes_options DCB "RES_OPTIONS",0 ; DATA XREF: .data:0006B6B0o .rodata:00056340 aResolv_host_co DCB "RESOLV_HOST_CONF",0 ; DATA XREF: .data:0006B6ACo .rodata:00056351 ALIGN 4 .rodata:00056354 aNlspath DCB "NLSPATH",0 ; DATA XREF: .data:0006B6A8o .rodata:0005635C aMalloc_trace DCB "MALLOC_TRACE",0 ; DATA XREF: .data:0006B6A4o .rodata:00056369 ALIGN 4 .rodata:0005636C aLocpath_0 DCB "LOCPATH",0 ; DATA XREF: .data:0006B6A0o .rodata:00056374 aLocaldomain DCB "LOCALDOMAIN",0 ; DATA XREF: .data:0006B69Co .rodata:00056380 aHostaliases DCB "HOSTALIASES",0 ; DATA XREF: .data:0006B698o .rodata:0005638C aGconv_path_0 DCB "GCONV_PATH",0 ; DATA XREF: .data:unsecure_envvars.111o .rodata:00056397 ALIGN 4 .rodata:00056398 aEtcSuidDebug DCB "/etc/suid-debug",0 ; DATA XREF: non_dynamic_init+100o .rodata:00056398 ; .text:off_171F4o .rodata:000563A8 aMalloc_check_0 DCB "MALLOC_CHECK_",0 ; DATA XREF: non_dynamic_init+114o .rodata:000563A8 ; .text:off_171F8o .rodata:000563B6 ALIGN 4 .rodata:000563B8 aCannotCreate_1 DCB "cannot create capability list",0 .rodata:000563B8 ; DATA XREF: _dl_important_hwcaps+20o .rodata:000563B8 ; .text:off_17248o .rodata:000563D6 ALIGN 4 .rodata:000563D8 aProcSelfExe DCB "/proc/self/exe",0 ; DATA XREF: _dl_get_origin+20o .rodata:000563D8 ; _dl_get_origin:off_17384o .rodata:000563E7 ALIGN 4 .rodata:000563E8 asc_563E8 DCB "/",0 ; DATA XREF: _dl_get_origin+7Co .rodata:000563E8 ; _dl_get_origin:off_17388o .rodata:000563EA ALIGN 4 .rodata:000563EC aProcSysKernelO DCB "/proc/sys/kernel/osrelease",0 .rodata:00056407 ALIGN 4 .rodata:00056408 aFatalCannotDet DCB "FATAL: cannot determine library version",0xA,0 .rodata:00056431 ALIGN 4 .rodata:00056434 aFatalKernelToo DCB "FATAL: kernel too old",0xA,0 .rodata:0005644B ALIGN 4 .rodata:0005644C EXPORT _libc_intl_domainname .rodata:0005644C _libc_intl_domainname DCB "libc",0 ; DATA XREF: strerror_r:loc_EF34o .rodata:0005644C ; strerror_r:off_EFE4o ... .rodata:00056451 ALIGN 4 .rodata:00056454 aSSSUSSassertio DCB "%s%s%s:%u: %s%sAssertion `%s' failed.",0xA,0 .rodata:00056454 ; DATA XREF: __assert_fail+24o .rodata:00056454 ; .text:off_17618o .rodata:0005647B ALIGN 4 .rodata:0005647C dword_5647C DCD 0 ; DATA XREF: __assert_fail+38o .rodata:0005647C ; .text:off_1761Co .rodata:00056480 asc_56480 DCB ": ",0 ; DATA XREF: __assert_fail+40o .rodata:00056480 ; .text:off_17620o .rodata:00056483 ALIGN 4 .rodata:00056484 EXPORT _nl_default_default_domain .rodata:00056484 _nl_default_default_domain DCB "messages",0 ; DATA XREF: free_mem+68o .rodata:00056484 ; .text:off_18708o .rodata:0005648D ALIGN 0x10 .rodata:00056490 EXPORT _nl_default_dirname .rodata:00056490 _nl_default_dirname DCB "/usr/local/arm/2.95.3/arm-linux/share/locale",0 .rodata:00056490 ; DATA XREF: __dcigettext+15Co .rodata:00056490 ; __dcigettext:off_17AF8o ... .rodata:000564BD ALIGN 0x10 .rodata:000564C0 asc_564C0 DCB "/",0 ; DATA XREF: __dcigettext+160o .rodata:000564C0 ; __dcigettext+180o ... .rodata:000564C2 ALIGN 4 .rodata:000564C4 a_mo DCB ".mo",0 ; DATA XREF: __dcigettext+2CCo .rodata:000564C4 ; __dcigettext:off_17B00o .rodata:000564C8 aC DCB "C",0 .rodata:000564CA ALIGN 4 .rodata:000564CC aPosix DCB "POSIX",0 ; DATA XREF: __dcigettext+384o .rodata:000564CC ; __dcigettext:off_17B08o .rodata:000564D2 ALIGN 4 .rodata:000564D4 aLc_collate DCB "LC_COLLATE",0 ; DATA XREF: category_to_name:loc_18564o .rodata:000564D4 ; .text:off_185A4o .rodata:000564DF ALIGN 0x10 .rodata:000564E0 aLc_ctype DCB "LC_CTYPE",0 ; DATA XREF: category_to_name:loc_1856Co .rodata:000564E0 ; .text:off_185A8o .rodata:000564E9 ALIGN 4 .rodata:000564EC aLc_monetary DCB "LC_MONETARY",0 ; DATA XREF: category_to_name:loc_18574o .rodata:000564EC ; .text:off_185ACo .rodata:000564F8 aLc_numeric DCB "LC_NUMERIC",0 ; DATA XREF: category_to_name:loc_1857Co .rodata:000564F8 ; .text:off_185B0o .rodata:00056503 ALIGN 4 .rodata:00056504 aLc_time DCB "LC_TIME",0 ; DATA XREF: category_to_name:loc_18584o .rodata:00056504 ; .text:off_185B4o .rodata:0005650C aLc_messages DCB "LC_MESSAGES",0 ; DATA XREF: category_to_name:loc_1858Co .rodata:0005650C ; .text:off_185B8o .rodata:00056518 aLc_all DCB "LC_ALL",0 ; DATA XREF: category_to_name:loc_18594o .rodata:00056518 ; .text:off_185BCo .rodata:0005651F ALIGN 0x10 .rodata:00056520 aLc_xxx DCB "LC_XXX",0 ; DATA XREF: category_to_name:loc_1859Co .rodata:00056520 ; .text:off_185C0o .rodata:00056527 ALIGN 4 .rodata:00056528 aLanguage DCB "LANGUAGE",0 ; DATA XREF: guess_category_value+Co .rodata:00056528 ; .text:off_18630o .rodata:00056531 ALIGN 4 .rodata:00056534 plvar DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00056534 DCB 0, 0, 0 .rodata:00056548 plone DCB 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00056548 DCB 0, 0, 0 .rodata:0005655C dword_5655C DCD 0 ; DATA XREF: _nl_init_domain_conv+38o .rodata:0005655C ; _nl_init_domain_conv:off_18AA4o .rodata:00056560 aCharset DCB "charset=",0 ; DATA XREF: _nl_init_domain_conv+4Co .rodata:00056560 ; _nl_init_domain_conv:off_18AA8o .rodata:00056569 ALIGN 4 .rodata:0005656C DCB " ",9,0xA,0 .rodata:00056570 aOutput_charset DCB "OUTPUT_CHARSET",0 ; DATA XREF: _nl_init_domain_conv:loc_18AB0o .rodata:00056570 ; _nl_init_domain_conv:off_18C5Co .rodata:0005657F ALIGN 0x10 .rodata:00056580 aTranslit DCB "TRANSLIT",0 ; DATA XREF: _nl_init_domain_conv+6Co .rodata:00056580 ; _nl_init_domain_conv:off_18AACo .rodata:00056589 ALIGN 4 .rodata:0005658C aPlural DCB "plural=",0 ; DATA XREF: _nl_load_domain+34Co .rodata:0005658C ; _nl_load_domain:off_190C4o .rodata:00056594 aNplurals DCB "nplurals=",0 ; DATA XREF: _nl_load_domain+35Co .rodata:00056594 ; _nl_load_domain:off_190C8o .rodata:0005659E ALIGN 0x10 .rodata:000565A0 aUsrLocalArm2_1 DCB "/usr/local/arm/2.95.3/arm-linux/share/locale",0 .rodata:000565CD ALIGN 0x10 .rodata:000565D0 aliasfile.127 DCB "/locale.alias",0 ; DATA XREF: read_alias_file+30o .rodata:000565D0 ; read_alias_file:off_19508o .rodata:000565DE ALIGN 0x10 .rodata:000565E0 aR DCB "r",0 ; DATA XREF: read_alias_file+3Co .rodata:000565E0 ; read_alias_file:off_1950Co .rodata:000565E2 ALIGN 4 .rodata:000565E4 aIso DCB "iso",0 ; DATA XREF: _nl_normalize_codeset+88o .rodata:000565E4 ; .text:off_19E30o .rodata:000565E8 yytranslate DCB 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 .rodata:000565E8 ; DATA XREF: __gettextparse+1A4o .rodata:000565E8 ; __gettextparse:off_1A6BCo .rodata:000565E8 DCB 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0xA .rodata:000565E8 DCB 2, 2, 2, 2, 5, 2, 0xE, 0xF, 2, 2, 2, 2, 2, 2, 2, 2 .rodata:000565E8 DCB 2, 2, 2, 2, 2, 2, 2, 2, 0xC, 2, 2, 2, 2, 3, 2, 2, 2 .rodata:000565E8 DCB 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 .rodata:000565E8 DCB 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 .rodata:000565E8 DCB 2, 2, 2, 2, 2, 2, 2, 2, 2, 0xD, 2, 2, 2, 2, 2, 2, 2 .rodata:000565E8 DCB 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 .rodata:000565E8 DCB 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 .rodata:000565E8 DCB 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 .rodata:000565E8 DCB 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 .rodata:000565E8 DCB 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 .rodata:000565E8 DCB 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 .rodata:000565E8 DCB 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 .rodata:000565E8 DCB 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 .rodata:000565E8 DCB 2, 2, 1, 6, 7, 8, 9, 0xB .rodata:000566EE yyr1 DCB 0, 0, 0x10, 0, 0x11, 0, 0x11, 0, 0x11, 0, 0x11, 0 .rodata:000566EE ; DATA XREF: __gettextparse+3B4o .rodata:000566EE ; __gettextparse:off_1A6D0o .rodata:000566EE DCB 0x11, 0, 0x11, 0, 0x11, 0, 0x11, 0, 0x11, 0, 0x11 .rodata:000566EE DCB 0, 0x11, 0 .rodata:00056708 yyr2 DCB 0, 0, 1, 0, 5, 0, 3, 0, 3, 0, 3, 0, 3, 0, 3, 0, 3 .rodata:00056708 ; DATA XREF: __gettextparse:loc_1A4D4o .rodata:00056708 ; __gettextparse:off_1A6CCo .rodata:00056708 DCB 0, 2, 0, 1, 0, 1, 0, 3, 0 .rodata:00056722 yydefact DCB 0, 0, 0, 0, 0xB, 0, 0xA, 0, 0, 0, 1, 0, 9, 0, 0, 0 .rodata:00056722 ; DATA XREF: __gettextparse:loc_1A4B8o .rodata:00056722 ; __gettextparse:off_1A6C8o .rodata:00056722 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xC, 0, 0 .rodata:00056722 DCB 0, 3, 0, 4, 0, 5, 0, 6, 0, 7, 0, 8, 0, 0, 0, 2, 0 .rodata:00056722 DCB 0, 0, 0, 0, 0, 0 .rodata:0005675A yydefgoto DCD 0x50019 ; DATA XREF: __gettextparse+46Co .rodata:0005675A ; __gettextparse:off_1A81Co .rodata:0005675E yypact DCB 0xF7, 0xFF, 0xF7, 0xFF, 0, 0x80, 0, 0x80, 0xF7, 0xFF .rodata:0005675E ; DATA XREF: __gettextparse:loc_1A3A4o .rodata:0005675E ; __gettextparse:off_1A6B8o ... .rodata:0005675E DCB 0x22, 0, 0, 0x80, 0xB, 0, 0xF7, 0xFF, 0xF7, 0xFF, 0xF7 .rodata:0005675E DCB 0xFF, 0xF7, 0xFF, 0xF7, 0xFF, 0xF7, 0xFF, 0xF7, 0xFF .rodata:0005675E DCB 0, 0x80, 0x18, 0, 0x27, 0, 0x2B, 0, 0x10, 0, 0x1A .rodata:0005675E DCB 0, 0xFD, 0xFF, 0, 0x80, 0xF7, 0xFF, 0x22, 0, 0x15 .rodata:0005675E DCB 0, 0x35, 0, 0, 0x80 .rodata:00056796 yypgoto DCD 0xFFFF8000 ; DATA XREF: __gettextparse+3B8o .rodata:00056796 ; __gettextparse:off_1A6D4o .rodata:0005679A yytable DCB 6, 0, 1, 0, 2, 0, 7, 0, 3, 0, 4, 0, 0xE, 0, 0x10, 0 .rodata:0005679A ; DATA XREF: __gettextparse+1E0o .rodata:0005679A ; __gettextparse+430o ... .rodata:0005679A DCB 0x11, 0, 0x12, 0, 0x13, 0, 0x14, 0, 0x15, 0, 0x16 .rodata:0005679A DCB 0, 8, 0, 9, 0, 0xA, 0, 0xB, 0, 0xC, 0, 0xD, 0, 0xE .rodata:0005679A DCB 0, 0x1A, 0, 0x18, 0, 0xC, 0, 0xD, 0, 0xE, 0, 0xF, 0 .rodata:0005679A DCB 8, 0, 9, 0, 0xA, 0, 0xB, 0, 0xC, 0, 0xD, 0, 0xE, 0 .rodata:0005679A DCB 0xD, 0, 0xE, 0, 0x17, 0, 8, 0, 9, 0, 0xA, 0, 0xB, 0 .rodata:0005679A DCB 0xC, 0, 0xD, 0, 0xE, 0, 0xA, 0, 0xB, 0, 0xC, 0, 0xD .rodata:0005679A DCB 0, 0xE, 0, 0xB, 0, 0xC, 0, 0xD, 0, 0xE, 0, 0x1B, 0 .rodata:00056806 yycheck DCB 1, 0, 0xA, 0, 0xB, 0, 4, 0, 0xD, 0, 0xE, 0, 9, 0, 8 .rodata:00056806 ; DATA XREF: __gettextparse+1BCo .rodata:00056806 ; __gettextparse+40Co ... .rodata:00056806 DCB 0, 9, 0, 0xA, 0, 0xB, 0, 0xC, 0, 0xD, 0, 0xE, 0, 3 .rodata:00056806 DCB 0, 4, 0, 5, 0, 6, 0, 7, 0, 8, 0, 9, 0, 0, 0, 0x17 .rodata:00056806 DCB 0, 7, 0, 8, 0, 9, 0, 0xF, 0, 3, 0, 4, 0, 5, 0, 6, 0 .rodata:00056806 DCB 7, 0, 8, 0, 9, 0, 8, 0, 9, 0, 0xC, 0, 3, 0, 4, 0, 5 .rodata:00056806 DCB 0, 6, 0, 7, 0, 8, 0, 9, 0, 5, 0, 6, 0, 7, 0, 8, 0 .rodata:00056806 DCB 9, 0, 6, 0, 7, 0, 8, 0, 9, 0, 0, 0 .rodata:00056872 ALIGN 4 .rodata:00056874 aParserStackOve DCB "parser stack overflow",0 .rodata:00056874 ; DATA XREF: __gettextparse+94o .rodata:00056874 ; __gettextparse:off_1A6B4o .rodata:0005688A ALIGN 4 .rodata:0005688C aParseError DCB "parse error",0 ; DATA XREF: __gettextparse+498o .rodata:0005688C ; __gettextparse:off_1A820o .rodata:00056898 asc_56898 DCB "=",0 ; DATA XREF: __add_to_environ+138o .rodata:00056898 ; __add_to_environ+258o ... .rodata:0005689A ALIGN 4 .rodata:0005689C EXPORT _itoa_lower_digits .rodata:0005689C _itoa_lower_digits DCB 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38 .rodata:0005689C ; DATA XREF: strerror_r+4Co .rodata:0005689C ; strerror_r:off_EFECo ... .rodata:0005689C DCB 0x39, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68 .rodata:0005689C DCB 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71 .rodata:0005689C DCB 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A .rodata:000568C0 a0NN9 DCB "0 <= n && n <= 9",0 .rodata:000568C0 ; DATA XREF: _i18n_number_rewrite+64o .rodata:000568C0 ; .text:off_1C7BCo .rodata:000568D1 ALIGN 4 .rodata:000568D4 a__LocaleOutdig DCB "../locale/outdigits.h",0 .rodata:000568D4 ; DATA XREF: _i18n_number_rewrite+68o .rodata:000568D4 ; .text:off_1C7C0o .rodata:000568EA ALIGN 4 .rodata:000568EC aOutdigit_value DCB "outdigit_value",0 ; DATA XREF: _i18n_number_rewrite+6Co .rodata:000568EC ; .text:off_1C7C4o .rodata:000568FB ALIGN 4 .rodata:000568FC a__LocaleOutd_0 DCB "../locale/outdigitswc.h",0 .rodata:00056914 aOutdigitwc_val DCB "outdigitwc_value",0 .rodata:00056925 ALIGN 4 .rodata:00056928 null DCB "(null)",0 ; DATA XREF: vfprintf+1854o .rodata:00056928 ; vfprintf:off_1E184o ... .rodata:0005692F ALIGN 0x10 .rodata:00056930 jump_table.174 DCD 1, 0, 0 ; DATA XREF: vfprintf+268o .rodata:00056930 ; vfprintf+2B0o ... .rodata:0005693C DCD 4, 0 .rodata:00056944 DCD 0xE, 0 .rodata:0005694C DCD 6, 0, 0 .rodata:00056958 DCD 7, 2, 0 .rodata:00056964 DCD 3, 9, 0 .rodata:00056970 DCD 5, 8, 8, 8, 8, 8, 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0 .rodata:000569B4 DCD 0x1A, 0 .rodata:000569BC DCD 0x19, 0 .rodata:000569C4 DCD 0x13, 0x13, 0x13, 0 .rodata:000569D4 DCD 0x1D, 0, 0 .rodata:000569E0 DCD 0xC, 0, 0, 0, 0, 0, 0 .rodata:000569FC DCD 0x15, 0, 0, 0, 0 .rodata:00056A10 DCD 0x12, 0 .rodata:00056A18 DCD 0xD, 0, 0, 0, 0, 0, 0 .rodata:00056A34 DCD 0x1A, 0 .rodata:00056A3C DCD 0x14, 0xF, 0x13, 0x13, 0x13, 0xA, 0xF, 0x1C, 0 .rodata:00056A60 DCD 0xB, 0x18, 0x17, 0x11, 0x16, 0xC, 0 .rodata:00056A7C DCD 0x15, 0x1B, 0x10, 0, 0 .rodata:00056A90 DCD 0x12, 0 .rodata:00056A98 DCD 0xD .rodata:00056A9C step0_jumps.175 DCB 0x28, 0xE3, 1, 0, 0x50, 0xCA, 1, 0, 0x98, 0xCA, 1 .rodata:00056A9C ; DATA XREF: vfprintf+26Co .rodata:00056A9C ; vfprintf+2B4o ... .rodata:00056A9C DCB 0, 0xE0, 0xCA, 1, 0, 0x30, 0xCB, 1, 0, 0x78, 0xCB .rodata:00056A9C DCB 1, 0, 0xCC, 0xCB, 1, 0, 0xBC, 0xCC, 1, 0, 0xD0, 0xCD .rodata:00056A9C DCB 1, 0, 0x94, 0xCE, 1, 0, 0x80, 0xD0, 1, 0, 0x18, 0xD1 .rodata:00056A9C DCB 1, 0, 0x60, 0xD1, 1, 0, 0xAC, 0xD1, 1, 0, 0x90, 0xD2 .rodata:00056A9C DCB 1, 0, 0xC8, 0xD2, 1, 0, 0x64, 0xD3, 1, 0, 0x70, 0xD3 .rodata:00056A9C DCB 1, 0, 0x7C, 0xD3, 1, 0, 0x10, 0xDB, 1, 0, 0x38, 0xDE .rodata:00056A9C DCB 1, 0, 0xE0, 0xDF, 1, 0, 0x78, 0xDD, 1, 0, 0xD8, 0xDD .rodata:00056A9C DCB 1, 0, 0x18, 0xDE, 1, 0, 0xEC, 0xDE, 1, 0, 0x50, 0xDC .rodata:00056A9C DCB 1, 0, 0xF8, 0xD1, 1, 0, 0x44, 0xD2, 1, 0, 0x74, 0xCC .rodata:00056A9C DCB 1, 0 .rodata:00056B14 step1_jumps.176 DCB 0x28, 0xE3, 1, 0, 0x28, 0xE3, 1, 0, 0x28, 0xE3, 1 .rodata:00056B14 ; DATA XREF: vfprintf+5ECo .rodata:00056B14 ; vfprintf+6B0o ... .rodata:00056B14 DCB 0, 0x28, 0xE3, 1, 0, 0x28, 0xE3, 1, 0, 0x28, 0xE3 .rodata:00056B14 DCB 1, 0, 0x28, 0xE3, 1, 0, 0x28, 0xE3, 1, 0, 0x28, 0xE3 .rodata:00056B14 DCB 1, 0, 0x94, 0xCE, 1, 0, 0x80, 0xD0, 1, 0, 0x18, 0xD1 .rodata:00056B14 DCB 1, 0, 0x60, 0xD1, 1, 0, 0xAC, 0xD1, 1, 0, 0x90, 0xD2 .rodata:00056B14 DCB 1, 0, 0xC8, 0xD2, 1, 0, 0x64, 0xD3, 1, 0, 0x70, 0xD3 .rodata:00056B14 DCB 1, 0, 0x7C, 0xD3, 1, 0, 0x10, 0xDB, 1, 0, 0x38, 0xDE .rodata:00056B14 DCB 1, 0, 0xE0, 0xDF, 1, 0, 0x78, 0xDD, 1, 0, 0xD8, 0xDD .rodata:00056B14 DCB 1, 0, 0x18, 0xDE, 1, 0, 0xEC, 0xDE, 1, 0, 0x50, 0xDC .rodata:00056B14 DCB 1, 0, 0xF8, 0xD1, 1, 0, 0x44, 0xD2, 1, 0, 0x74, 0xCC .rodata:00056B14 DCB 1, 0 .rodata:00056B8C step2_jumps.177 DCB 0x28, 0xE3, 1, 0, 0x28, 0xE3, 1, 0, 0x28, 0xE3, 1 .rodata:00056B8C ; DATA XREF: vfprintf+888o .rodata:00056B8C ; vfprintf:off_1D07Co .rodata:00056B8C DCB 0, 0x28, 0xE3, 1, 0, 0x28, 0xE3, 1, 0, 0x28, 0xE3 .rodata:00056B8C DCB 1, 0, 0x28, 0xE3, 1, 0, 0x28, 0xE3, 1, 0, 0x28, 0xE3 .rodata:00056B8C DCB 1, 0, 0x28, 0xE3, 1, 0, 0x80, 0xD0, 1, 0, 0x18, 0xD1 .rodata:00056B8C DCB 1, 0, 0x60, 0xD1, 1, 0, 0xAC, 0xD1, 1, 0, 0x90, 0xD2 .rodata:00056B8C DCB 1, 0, 0xC8, 0xD2, 1, 0, 0x64, 0xD3, 1, 0, 0x70, 0xD3 .rodata:00056B8C DCB 1, 0, 0x7C, 0xD3, 1, 0, 0x10, 0xDB, 1, 0, 0x38, 0xDE .rodata:00056B8C DCB 1, 0, 0xE0, 0xDF, 1, 0, 0x78, 0xDD, 1, 0, 0xD8, 0xDD .rodata:00056B8C DCB 1, 0, 0x18, 0xDE, 1, 0, 0xEC, 0xDE, 1, 0, 0x50, 0xDC .rodata:00056B8C DCB 1, 0, 0xF8, 0xD1, 1, 0, 0x44, 0xD2, 1, 0, 0x74, 0xCC .rodata:00056B8C DCB 1, 0 .rodata:00056C04 step3a_jumps.178 DCB 0x28, 0xE3, 1, 0, 0x28, 0xE3, 1, 0, 0x28, 0xE3, 1 .rodata:00056C04 ; DATA XREF: vfprintf+8E4o .rodata:00056C04 ; vfprintf:off_1D41Co .rodata:00056C04 DCB 0, 0x28, 0xE3, 1, 0, 0x28, 0xE3, 1, 0, 0x28, 0xE3 .rodata:00056C04 DCB 1, 0, 0x28, 0xE3, 1, 0, 0x28, 0xE3, 1, 0, 0x28, 0xE3 .rodata:00056C04 DCB 1, 0, 0x28, 0xE3, 1, 0, 0xC8, 0xD0, 1, 0, 0x28, 0xE3 .rodata:00056C04 DCB 1, 0, 0x28, 0xE3, 1, 0, 0x28, 0xE3, 1, 0, 0x90, 0xD2 .rodata:00056C04 DCB 1, 0, 0xC8, 0xD2, 1, 0, 0x64, 0xD3, 1, 0, 0x70, 0xD3 .rodata:00056C04 DCB 1, 0, 0x7C, 0xD3, 1, 0, 0x28, 0xE3, 1, 0, 0x28, 0xE3 .rodata:00056C04 DCB 1, 0, 0x28, 0xE3, 1, 0, 0x28, 0xE3, 1, 0, 0xD8, 0xDD .rodata:00056C04 DCB 1, 0, 0x28, 0xE3, 1, 0, 0x28, 0xE3, 1, 0, 0x28, 0xE3 .rodata:00056C04 DCB 1, 0, 0x28, 0xE3, 1, 0, 0x28, 0xE3, 1, 0, 0x28, 0xE3 .rodata:00056C04 DCB 1, 0 .rodata:00056C7C step3b_jumps.179 DCB 0x28, 0xE3, 1, 0, 0x28, 0xE3, 1, 0, 0x28, 0xE3, 1 .rodata:00056C7C ; DATA XREF: vfprintf+97Co .rodata:00056C7C ; vfprintf:off_1D428o .rodata:00056C7C DCB 0, 0x28, 0xE3, 1, 0, 0x28, 0xE3, 1, 0, 0x28, 0xE3 .rodata:00056C7C DCB 1, 0, 0x28, 0xE3, 1, 0, 0x28, 0xE3, 1, 0, 0x28, 0xE3 .rodata:00056C7C DCB 1, 0, 0x28, 0xE3, 1, 0, 0x28, 0xE3, 1, 0, 0x60, 0xD1 .rodata:00056C7C DCB 1, 0, 0x28, 0xE3, 1, 0, 0x28, 0xE3, 1, 0, 0x90, 0xD2 .rodata:00056C7C DCB 1, 0, 0xC8, 0xD2, 1, 0, 0x64, 0xD3, 1, 0, 0x70, 0xD3 .rodata:00056C7C DCB 1, 0, 0x7C, 0xD3, 1, 0, 0x10, 0xDB, 1, 0, 0x38, 0xDE .rodata:00056C7C DCB 1, 0, 0xE0, 0xDF, 1, 0, 0x78, 0xDD, 1, 0, 0xD8, 0xDD .rodata:00056C7C DCB 1, 0, 0x18, 0xDE, 1, 0, 0xEC, 0xDE, 1, 0, 0x50, 0xDC .rodata:00056C7C DCB 1, 0, 0x28, 0xE3, 1, 0, 0x28, 0xE3, 1, 0, 0x28, 0xE3 .rodata:00056C7C DCB 1, 0 .rodata:00056CF4 step4_jumps.180 DCB 0x28, 0xE3, 1, 0, 0x28, 0xE3, 1, 0, 0x28, 0xE3, 1 .rodata:00056CF4 ; DATA XREF: vfprintf+934o .rodata:00056CF4 ; vfprintf+9C8o ... .rodata:00056CF4 DCB 0, 0x28, 0xE3, 1, 0, 0x28, 0xE3, 1, 0, 0x28, 0xE3 .rodata:00056CF4 DCB 1, 0, 0x28, 0xE3, 1, 0, 0x28, 0xE3, 1, 0, 0x28, 0xE3 .rodata:00056CF4 DCB 1, 0, 0x28, 0xE3, 1, 0, 0x28, 0xE3, 1, 0, 0x28, 0xE3 .rodata:00056CF4 DCB 1, 0, 0x28, 0xE3, 1, 0, 0x28, 0xE3, 1, 0, 0x90, 0xD2 .rodata:00056CF4 DCB 1, 0, 0xC8, 0xD2, 1, 0, 0x64, 0xD3, 1, 0, 0x70, 0xD3 .rodata:00056CF4 DCB 1, 0, 0x7C, 0xD3, 1, 0, 0x10, 0xDB, 1, 0, 0x38, 0xDE .rodata:00056CF4 DCB 1, 0, 0xE0, 0xDF, 1, 0, 0x78, 0xDD, 1, 0, 0xD8, 0xDD .rodata:00056CF4 DCB 1, 0, 0x18, 0xDE, 1, 0, 0xEC, 0xDE, 1, 0, 0x50, 0xDC .rodata:00056CF4 DCB 1, 0, 0x28, 0xE3, 1, 0, 0x28, 0xE3, 1, 0, 0x28, 0xE3 .rodata:00056CF4 DCB 1, 0 .rodata:00056D6C aNil DCB "(nil)",0 ; DATA XREF: vfprintf+15F4o .rodata:00056D6C ; vfprintf:off_1E180o ... .rodata:00056D72 ALIGN 4 .rodata:00056D74 dword_56D74 DCD 0 ; DATA XREF: vfprintf+1860o .rodata:00056D74 ; vfprintf:off_1E188o ... .rodata:00056D78 step4_jumps.181 DCB 0xB0, 6, 2, 0, 0xB0, 6, 2, 0, 0xB0, 6, 2, 0, 0xB0 .rodata:00056D78 ; DATA XREF: vfprintf+2AA4o .rodata:00056D78 ; vfprintf:off_1F2DCo .rodata:00056D78 DCB 6, 2, 0, 0xB0, 6, 2, 0, 0xB0, 6, 2, 0, 0xB0, 6, 2 .rodata:00056D78 DCB 0, 0xB0, 6, 2, 0, 0xB0, 6, 2, 0, 0xB0, 6, 2, 0, 0xB0 .rodata:00056D78 DCB 6, 2, 0, 0xB0, 6, 2, 0, 0xB0, 6, 2, 0, 0xB0, 6, 2 .rodata:00056D78 DCB 0, 0x88, 0xF2, 1, 0, 0xE4, 0xF2, 1, 0, 0xD8, 0xF3 .rodata:00056D78 DCB 1, 0, 0xE4, 0xF3, 1, 0, 0xF0, 0xF3, 1, 0, 0x48, 0xFC .rodata:00056D78 DCB 1, 0, 0x20, 1, 2, 0, 0x34, 3, 2, 0, 0x5C, 0xFF, 1 .rodata:00056D78 DCB 0, 0xE4, 0xFF, 1, 0, 0, 1, 2, 0, 0x1C, 2, 2, 0, 0xD0 .rodata:00056D78 DCB 0xFD, 1, 0, 0xB0, 6, 2, 0, 0xB0, 6, 2, 0, 0xB0, 6 .rodata:00056D78 DCB 2, 0 .rodata:00056DF0 _IO_helper_jumps DCB 0, 0, 0, 0, 0, 0, 0, 0, 0x68, 0x9F, 0, 0, 0xF4, 0xC .rodata:00056DF0 ; DATA XREF: buffered_vfprintf:loc_20E3Co .rodata:00056DF0 ; buffered_vfprintf:off_20F18o .rodata:00056DF0 DCB 2, 0, 0xB8, 0x9A, 0, 0, 0xCC, 0x9A, 0, 0, 0xA0, 0xA4 .rodata:00056DF0 DCB 0, 0, 0xC, 0x9B, 0, 0, 0, 0x9C, 0, 0, 0x18, 0xA0, 0 .rodata:00056DF0 DCB 0, 0x74, 0x9D, 0, 0, 0xB0, 0x9C, 0, 0, 0x54, 0x9F .rodata:00056DF0 DCB 0, 0, 0xA8, 0x9D, 0, 0, 4, 0xA6, 0, 0, 0x18, 0xA6 .rodata:00056DF0 DCB 0, 0, 0xD8, 0xA5, 0, 0, 0x54, 0x9F, 0, 0, 0xF0, 0xA5 .rodata:00056DF0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00056E44 dword_56E44 DCD 0x4E414E ; DATA XREF: __printf_fp+200o .rodata:00056E44 ; __printf_fp:off_214C8o .rodata:00056E48 dword_56E48 DCD 0x4E, 0x41, 0x4E, 0 ; DATA XREF: __printf_fp+204o .rodata:00056E48 ; __printf_fp:off_214CCo .rodata:00056E58 dword_56E58 DCD 0x6E616E ; DATA XREF: __printf_fp+208o .rodata:00056E58 ; __printf_fp:off_214D0o .rodata:00056E5C dword_56E5C DCD 0x6E, 0x61, 0x6E, 0 ; DATA XREF: __printf_fp+20Co .rodata:00056E5C ; __printf_fp:off_214D4o .rodata:00056E6C dword_56E6C DCD 0x464E49 ; DATA XREF: __printf_fp+250o .rodata:00056E6C ; __printf_fp:off_214D8o .rodata:00056E70 dword_56E70 DCD 0x49, 0x4E, 0x46, 0 ; DATA XREF: __printf_fp+254o .rodata:00056E70 ; __printf_fp:off_214DCo .rodata:00056E80 dword_56E80 DCD 0x666E69 ; DATA XREF: __printf_fp+258o .rodata:00056E80 ; __printf_fp:off_214E0o .rodata:00056E84 dword_56E84 DCD 0x69, 0x6E, 0x66, 0 ; DATA XREF: __printf_fp+25Co .rodata:00056E84 ; __printf_fp:off_214E4o .rodata:00056E94 aDecimal0Decima DCB "*decimal != '\0' && decimalwc != L'\0'",0 .rodata:00056E94 ; DATA XREF: __printf_fphex+94o .rodata:00056E94 ; __printf_fphex:off_23454o .rodata:00056EBB ALIGN 4 .rodata:00056EBC a__SysdepsGen_0 DCB "../sysdeps/generic/printf_fphex.c",0 .rodata:00056EBC ; DATA XREF: __printf_fphex+98o .rodata:00056EBC ; __printf_fphex:off_23458o .rodata:00056EDE ALIGN 0x10 .rodata:00056EE0 a__printf_fphex DCB "__printf_fphex",0 ; DATA XREF: __printf_fphex+9Co .rodata:00056EE0 ; __printf_fphex:off_2345Co .rodata:00056EEF ALIGN 0x10 .rodata:00056EF0 aNan DCB "NAN",0 ; DATA XREF: __printf_fphex+F0o .rodata:00056EF0 ; __printf_fphex:off_23468o .rodata:00056EF4 aN DCB "N",0 ; DATA XREF: __printf_fphex+ECo .rodata:00056EF4 ; __printf_fphex:off_23464o .rodata:00056EF6 ALIGN 4 .rodata:00056EF8 aA DCB "A",0 .rodata:00056EFA ALIGN 4 .rodata:00056EFC aN_0 DCB "N",0 .rodata:00056EFE ALIGN 0x10 .rodata:00056F00 DCD 0 .rodata:00056F04 dword_56F04 DCD 0x6E616E ; DATA XREF: __printf_fphex+FCo .rodata:00056F04 ; __printf_fphex:off_23470o .rodata:00056F08 dword_56F08 DCD 0x6E, 0x61, 0x6E, 0 ; DATA XREF: __printf_fphex+F8o .rodata:00056F08 ; __printf_fphex:off_2346Co .rodata:00056F18 dword_56F18 DCD 0x464E49 ; DATA XREF: __printf_fphex+148o .rodata:00056F18 ; __printf_fphex:off_23478o .rodata:00056F1C dword_56F1C DCD 0x49, 0x4E, 0x46, 0 ; DATA XREF: __printf_fphex+144o .rodata:00056F1C ; __printf_fphex:off_23474o .rodata:00056F2C dword_56F2C DCD 0x666E69 ; DATA XREF: __printf_fphex+154o .rodata:00056F2C ; __printf_fphex:off_23480o .rodata:00056F30 dword_56F30 DCD 0x69, 0x6E, 0x66, 0 ; DATA XREF: __printf_fphex+150o .rodata:00056F30 ; __printf_fphex:off_2347Co .rodata:00056F40 aCnt__ctype_get DCB "cnt < (__ctype_get_mb_cur_max ())",0 .rodata:00056F40 ; DATA XREF: _IO_vfscanf+F08o .rodata:00056F40 ; _IO_vfscanf:off_254D8o ... .rodata:00056F62 ALIGN 4 .rodata:00056F64 aVfscanf_c DCB "vfscanf.c",0 ; DATA XREF: _IO_vfscanf+F0Co .rodata:00056F64 ; _IO_vfscanf:off_254DCo ... .rodata:00056F6E ALIGN 0x10 .rodata:00056F70 a_io_vfscanf DCB "_IO_vfscanf",0 ; DATA XREF: _IO_vfscanf+F14o .rodata:00056F70 ; _IO_vfscanf:off_254E0o ... .rodata:00056F7C a0NN9_0 DCB "0 <= n && n <= 9",0 .rodata:00056F8D ALIGN 0x10 .rodata:00056F90 a__LocaleOutd_1 DCB "../locale/outdigits.h",0 .rodata:00056FA6 ALIGN 4 .rodata:00056FA8 aOutdigit_val_0 DCB "outdigit_value",0 .rodata:00056FB7 ALIGN 4 .rodata:00056FB8 a__LocaleOutd_2 DCB "../locale/outdigitswc.h",0 .rodata:00056FD0 aOutdigitwc_v_0 DCB "outdigitwc_value",0 .rodata:00056FE1 ALIGN 4 .rodata:00056FE4 null_0 DCB 0x28, 0, 0, 0, 0x6E, 0, 0, 0, 0x75, 0, 0, 0, 0x6C .rodata:00056FE4 ; DATA XREF: vfwprintf+1E28o .rodata:00056FE4 ; vfwprintf:off_2AF68o ... .rodata:00056FE4 DCB 0, 0, 0, 0x6C, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:00057000 jump_table.177 DCD 1, 0, 0 ; DATA XREF: vfwprintf+250o .rodata:00057000 ; vfwprintf+2ACo ... .rodata:0005700C DCD 4, 0 .rodata:00057014 DCD 0xE, 0 .rodata:0005701C DCD 6, 0, 0 .rodata:00057028 DCD 7, 2, 0 .rodata:00057034 DCD 3, 9, 0 .rodata:00057040 DCD 5, 8, 8, 8, 8, 8, 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0 .rodata:00057084 DCD 0x1A, 0 .rodata:0005708C DCD 0x19, 0 .rodata:00057094 DCD 0x13, 0x13, 0x13, 0 .rodata:000570A4 DCD 0x1D, 0, 0 .rodata:000570B0 DCD 0xC, 0, 0, 0, 0, 0, 0 .rodata:000570CC DCD 0x15, 0, 0, 0, 0 .rodata:000570E0 DCD 0x12, 0 .rodata:000570E8 DCD 0xD, 0, 0, 0, 0, 0, 0 .rodata:00057104 DCD 0x1A, 0 .rodata:0005710C DCD 0x14, 0xF, 0x13, 0x13, 0x13, 0xA, 0xF, 0x1C, 0 .rodata:00057130 DCD 0xB, 0x18, 0x17, 0x11, 0x16, 0xC, 0 .rodata:0005714C DCD 0x15, 0x1B, 0x10, 0, 0 .rodata:00057160 DCD 0x12, 0 .rodata:00057168 DCD 0xD .rodata:0005716C step0_jumps.178 DCB 0x7C, 0xB0, 2, 0, 0x98, 0x92, 2, 0, 0xF4, 0x92, 2 .rodata:0005716C ; DATA XREF: vfwprintf+254o .rodata:0005716C ; vfwprintf+2B0o ... .rodata:0005716C DCB 0, 0x50, 0x93, 2, 0, 0xB8, 0x93, 2, 0, 0x14, 0x94 .rodata:0005716C DCB 2, 0, 0x94, 0x94, 2, 0, 0xA0, 0x95, 2, 0, 4, 0x97 .rodata:0005716C DCB 2, 0, 0xDC, 0x97, 2, 0, 0x2C, 0x9A, 2, 0, 0xE8, 0x9A .rodata:0005716C DCB 2, 0, 0x40, 0x9B, 2, 0, 0xA0, 0x9B, 2, 0, 0xC0, 0x9C .rodata:0005716C DCB 2, 0, 0, 0x9D, 2, 0, 0xF0, 0x9D, 2, 0, 0, 0x9E, 2 .rodata:0005716C DCB 0, 0x10, 0x9E, 2, 0, 0xF8, 0xA7, 2, 0, 0x48, 0xAC .rodata:0005716C DCB 2, 0, 8, 0xAE, 2, 0, 0x38, 0xAB, 2, 0, 0xC4, 0xAB .rodata:0005716C DCB 2, 0, 0x1C, 0xAC, 2, 0, 0x30, 0xAD, 2, 0, 0xA0, 0xA9 .rodata:0005716C DCB 2, 0, 0, 0x9C, 2, 0, 0x60, 0x9C, 2, 0, 0x44, 0x95 .rodata:0005716C DCB 2, 0 .rodata:000571E4 step1_jumps.179 DCB 0x7C, 0xB0, 2, 0, 0x7C, 0xB0, 2, 0, 0x7C, 0xB0, 2 .rodata:000571E4 ; DATA XREF: vfwprintf+6C0o .rodata:000571E4 ; vfwprintf+784o ... .rodata:000571E4 DCB 0, 0x7C, 0xB0, 2, 0, 0x7C, 0xB0, 2, 0, 0x7C, 0xB0 .rodata:000571E4 DCB 2, 0, 0x7C, 0xB0, 2, 0, 0x7C, 0xB0, 2, 0, 0x7C, 0xB0 .rodata:000571E4 DCB 2, 0, 0xDC, 0x97, 2, 0, 0x2C, 0x9A, 2, 0, 0xE8, 0x9A .rodata:000571E4 DCB 2, 0, 0x40, 0x9B, 2, 0, 0xA0, 0x9B, 2, 0, 0xC0, 0x9C .rodata:000571E4 DCB 2, 0, 0, 0x9D, 2, 0, 0xF0, 0x9D, 2, 0, 0, 0x9E, 2 .rodata:000571E4 DCB 0, 0x10, 0x9E, 2, 0, 0xF8, 0xA7, 2, 0, 0x48, 0xAC .rodata:000571E4 DCB 2, 0, 8, 0xAE, 2, 0, 0x38, 0xAB, 2, 0, 0xC4, 0xAB .rodata:000571E4 DCB 2, 0, 0x1C, 0xAC, 2, 0, 0x30, 0xAD, 2, 0, 0xA0, 0xA9 .rodata:000571E4 DCB 2, 0, 0, 0x9C, 2, 0, 0x60, 0x9C, 2, 0, 0x44, 0x95 .rodata:000571E4 DCB 2, 0 .rodata:0005725C step2_jumps.180 DCB 0x7C, 0xB0, 2, 0, 0x7C, 0xB0, 2, 0, 0x7C, 0xB0, 2 .rodata:0005725C ; DATA XREF: vfwprintf+9E8o .rodata:0005725C ; vfwprintf:off_29DDCo .rodata:0005725C DCB 0, 0x7C, 0xB0, 2, 0, 0x7C, 0xB0, 2, 0, 0x7C, 0xB0 .rodata:0005725C DCB 2, 0, 0x7C, 0xB0, 2, 0, 0x7C, 0xB0, 2, 0, 0x7C, 0xB0 .rodata:0005725C DCB 2, 0, 0x7C, 0xB0, 2, 0, 0x2C, 0x9A, 2, 0, 0xE8, 0x9A .rodata:0005725C DCB 2, 0, 0x40, 0x9B, 2, 0, 0xA0, 0x9B, 2, 0, 0xC0, 0x9C .rodata:0005725C DCB 2, 0, 0, 0x9D, 2, 0, 0xF0, 0x9D, 2, 0, 0, 0x9E, 2 .rodata:0005725C DCB 0, 0x10, 0x9E, 2, 0, 0xF8, 0xA7, 2, 0, 0x48, 0xAC .rodata:0005725C DCB 2, 0, 8, 0xAE, 2, 0, 0x38, 0xAB, 2, 0, 0xC4, 0xAB .rodata:0005725C DCB 2, 0, 0x1C, 0xAC, 2, 0, 0x30, 0xAD, 2, 0, 0xA0, 0xA9 .rodata:0005725C DCB 2, 0, 0, 0x9C, 2, 0, 0x60, 0x9C, 2, 0, 0x44, 0x95 .rodata:0005725C DCB 2, 0 .rodata:000572D4 step3a_jumps.181 DCB 0x7C, 0xB0, 2, 0, 0x7C, 0xB0, 2, 0, 0x7C, 0xB0, 2 .rodata:000572D4 ; DATA XREF: vfwprintf+A40o .rodata:000572D4 ; vfwprintf:off_29DE4o .rodata:000572D4 DCB 0, 0x7C, 0xB0, 2, 0, 0x7C, 0xB0, 2, 0, 0x7C, 0xB0 .rodata:000572D4 DCB 2, 0, 0x7C, 0xB0, 2, 0, 0x7C, 0xB0, 2, 0, 0x7C, 0xB0 .rodata:000572D4 DCB 2, 0, 0x7C, 0xB0, 2, 0, 0x84, 0x9A, 2, 0, 0x7C, 0xB0 .rodata:000572D4 DCB 2, 0, 0x7C, 0xB0, 2, 0, 0x7C, 0xB0, 2, 0, 0xC0, 0x9C .rodata:000572D4 DCB 2, 0, 0, 0x9D, 2, 0, 0xF0, 0x9D, 2, 0, 0, 0x9E, 2 .rodata:000572D4 DCB 0, 0x10, 0x9E, 2, 0, 0x7C, 0xB0, 2, 0, 0x7C, 0xB0 .rodata:000572D4 DCB 2, 0, 0x7C, 0xB0, 2, 0, 0x7C, 0xB0, 2, 0, 0xC4, 0xAB .rodata:000572D4 DCB 2, 0, 0x7C, 0xB0, 2, 0, 0x7C, 0xB0, 2, 0, 0x7C, 0xB0 .rodata:000572D4 DCB 2, 0, 0x7C, 0xB0, 2, 0, 0x7C, 0xB0, 2, 0, 0x7C, 0xB0 .rodata:000572D4 DCB 2, 0 .rodata:0005734C step3b_jumps.182 DCB 0x7C, 0xB0, 2, 0, 0x7C, 0xB0, 2, 0, 0x7C, 0xB0, 2 .rodata:0005734C ; DATA XREF: vfwprintf+AFCo .rodata:0005734C ; vfwprintf:off_29DECo .rodata:0005734C DCB 0, 0x7C, 0xB0, 2, 0, 0x7C, 0xB0, 2, 0, 0x7C, 0xB0 .rodata:0005734C DCB 2, 0, 0x7C, 0xB0, 2, 0, 0x7C, 0xB0, 2, 0, 0x7C, 0xB0 .rodata:0005734C DCB 2, 0, 0x7C, 0xB0, 2, 0, 0x7C, 0xB0, 2, 0, 0x40, 0x9B .rodata:0005734C DCB 2, 0, 0x7C, 0xB0, 2, 0, 0x7C, 0xB0, 2, 0, 0xC0, 0x9C .rodata:0005734C DCB 2, 0, 0, 0x9D, 2, 0, 0xF0, 0x9D, 2, 0, 0, 0x9E, 2 .rodata:0005734C DCB 0, 0x10, 0x9E, 2, 0, 0xF8, 0xA7, 2, 0, 0x48, 0xAC .rodata:0005734C DCB 2, 0, 8, 0xAE, 2, 0, 0x38, 0xAB, 2, 0, 0xC4, 0xAB .rodata:0005734C DCB 2, 0, 0x1C, 0xAC, 2, 0, 0x30, 0xAD, 2, 0, 0xA0, 0xA9 .rodata:0005734C DCB 2, 0, 0x7C, 0xB0, 2, 0, 0x7C, 0xB0, 2, 0, 0x7C, 0xB0 .rodata:0005734C DCB 2, 0 .rodata:000573C4 step4_jumps.183 DCB 0x7C, 0xB0, 2, 0, 0x7C, 0xB0, 2, 0, 0x7C, 0xB0, 2 .rodata:000573C4 ; DATA XREF: vfwprintf+AA4o .rodata:000573C4 ; vfwprintf+B5Co ... .rodata:000573C4 DCB 0, 0x7C, 0xB0, 2, 0, 0x7C, 0xB0, 2, 0, 0x7C, 0xB0 .rodata:000573C4 DCB 2, 0, 0x7C, 0xB0, 2, 0, 0x7C, 0xB0, 2, 0, 0x7C, 0xB0 .rodata:000573C4 DCB 2, 0, 0x7C, 0xB0, 2, 0, 0x7C, 0xB0, 2, 0, 0x7C, 0xB0 .rodata:000573C4 DCB 2, 0, 0x7C, 0xB0, 2, 0, 0x7C, 0xB0, 2, 0, 0xC0, 0x9C .rodata:000573C4 DCB 2, 0, 0, 0x9D, 2, 0, 0xF0, 0x9D, 2, 0, 0, 0x9E, 2 .rodata:000573C4 DCB 0, 0x10, 0x9E, 2, 0, 0xF8, 0xA7, 2, 0, 0x48, 0xAC .rodata:000573C4 DCB 2, 0, 8, 0xAE, 2, 0, 0x38, 0xAB, 2, 0, 0xC4, 0xAB .rodata:000573C4 DCB 2, 0, 0x1C, 0xAC, 2, 0, 0x30, 0xAD, 2, 0, 0xA0, 0xA9 .rodata:000573C4 DCB 2, 0, 0x7C, 0xB0, 2, 0, 0x7C, 0xB0, 2, 0, 0x7C, 0xB0 .rodata:000573C4 DCB 2, 0 .rodata:0005743C dword_5743C DCD 0x28, 0x6E, 0x69, 0x6C, 0x29, 0 .rodata:0005743C ; DATA XREF: vfwprintf+1B88o .rodata:0005743C ; vfwprintf:off_2AF64o ... .rodata:00057454 dword_57454 DCD 0 ; DATA XREF: vfwprintf+1E34o .rodata:00057454 ; vfwprintf:off_2AF6Co ... .rodata:00057458 step4_jumps.184 DCB 0x44, 0xD9, 2, 0, 0x44, 0xD9, 2, 0, 0x44, 0xD9, 2 .rodata:00057458 ; DATA XREF: vfwprintf+30A8o .rodata:00057458 ; vfwprintf:off_2C274o .rodata:00057458 DCB 0, 0x44, 0xD9, 2, 0, 0x44, 0xD9, 2, 0, 0x44, 0xD9 .rodata:00057458 DCB 2, 0, 0x44, 0xD9, 2, 0, 0x44, 0xD9, 2, 0, 0x44, 0xD9 .rodata:00057458 DCB 2, 0, 0x44, 0xD9, 2, 0, 0x44, 0xD9, 2, 0, 0x44, 0xD9 .rodata:00057458 DCB 2, 0, 0x44, 0xD9, 2, 0, 0x44, 0xD9, 2, 0, 0xEC, 0xC0 .rodata:00057458 DCB 2, 0, 0x40, 0xC1, 2, 0, 0xAC, 0xC2, 2, 0, 0xBC, 0xC2 .rodata:00057458 DCB 2, 0, 0xCC, 0xC2, 2, 0, 0x9C, 0xCD, 2, 0, 0x1C, 0xD4 .rodata:00057458 DCB 2, 0, 0x80, 0xD6, 2, 0, 0x9C, 0xD1, 2, 0, 0x70, 0xD2 .rodata:00057458 DCB 2, 0, 0xF0, 0xD3, 2, 0, 0x48, 0xD5, 2, 0, 0xA4, 0xCF .rodata:00057458 DCB 2, 0, 0x44, 0xD9, 2, 0, 0x44, 0xD9, 2, 0, 0x44, 0xD9 .rodata:00057458 DCB 2, 0 .rodata:000574D0 _IO_helper_jumps_0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0x20, 0xE9, 2, 0, 0xEC, 0xDF .rodata:000574D0 ; DATA XREF: buffered_vfprintf_0:loc_2E12Co .rodata:000574D0 ; buffered_vfprintf_0:off_2E210o .rodata:000574D0 DCB 2, 0, 0xB8, 0x9A, 0, 0, 0xCC, 0x9A, 0, 0, 0x8C, 0xE7 .rodata:000574D0 DCB 2, 0, 0x7C, 0xEC, 2, 0, 0x40, 0xED, 2, 0, 0x18, 0xA0 .rodata:000574D0 DCB 0, 0, 0x74, 0x9D, 0, 0, 0x58, 0xEE, 2, 0, 0x54, 0x9F .rodata:000574D0 DCB 0, 0, 0x28, 0xEF, 2, 0, 4, 0xA6, 0, 0, 0x18, 0xA6 .rodata:000574D0 DCB 0, 0, 0xD8, 0xA5, 0, 0, 0x54, 0x9F, 0, 0, 0xF0, 0xA5 .rodata:000574D0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00057524 WEAK sys_errlist .rodata:00057524 ; const char *const sys_errlist[] .rodata:00057524 sys_errlist DCB 0x1C, 0x83, 5, 0, 4, 0x83, 5, 0, 0xE8, 0x82, 5, 0 .rodata:00057524 ; DATA XREF: strerror_r+30o .rodata:00057524 ; strerror_r:off_EFE0o .rodata:00057524 DCB 0xD8, 0x82, 5, 0, 0xC0, 0x82, 5, 0, 0xAC, 0x82, 5 .rodata:00057524 DCB 0, 0x90, 0x82, 5, 0, 0x78, 0x82, 5, 0, 0x64, 0x82 .rodata:00057524 DCB 5, 0, 0x50, 0x82, 5, 0, 0x3C, 0x82, 5, 0, 0x18, 0x82 .rodata:00057524 DCB 5, 0, 0, 0x82, 5, 0, 0xEC, 0x81, 5, 0, 0xE0, 0x81 .rodata:00057524 DCB 5, 0, 0xC8, 0x81, 5, 0, 0xB0, 0x81, 5, 0, 0xA4, 0x81 .rodata:00057524 DCB 5, 0, 0x88, 0x81, 5, 0, 0x78, 0x81, 5, 0, 0x68, 0x81 .rodata:00057524 DCB 5, 0, 0x58, 0x81, 5, 0, 0x44, 0x81, 5, 0, 0x24, 0x81 .rodata:00057524 DCB 5, 0, 0x10, 0x81, 5, 0, 0xF0, 0x80, 5, 0, 0xE0, 0x80 .rodata:00057524 DCB 5, 0, 0xD0, 0x80, 5, 0, 0xB8, 0x80, 5, 0, 0xA8, 0x80 .rodata:00057524 DCB 5, 0, 0x90, 0x80, 5, 0, 0x80, 0x80, 5, 0, 0x74, 0x80 .rodata:00057524 DCB 5, 0, 0x50, 0x80, 5, 0, 0x30, 0x80, 5, 0, 0x14, 0x80 .rodata:00057524 DCB 5, 0, 0, 0x80, 5, 0, 0xEC, 0x7F, 5, 0, 0xD0, 0x7F .rodata:00057524 DCB 5, 0, 0xBC, 0x7F, 5, 0, 0x98, 0x7F, 5, 0, 0, 0, 0 .rodata:00057524 DCB 0, 0x7C, 0x7F, 5, 0, 0x68, 0x7F, 5, 0, 0x4C, 0x7F .rodata:00057524 DCB 5, 0, 0x30, 0x7F, 5, 0, 0x20, 0x7F, 5, 0, 0x10, 0x7F .rodata:00057524 DCB 5, 0, 0xF4, 0x7E, 5, 0, 0xD4, 0x7E, 5, 0, 0xB8, 0x7E .rodata:00057524 DCB 5, 0, 0xA8, 0x7E, 5, 0, 0x94, 0x7E, 5, 0, 0x78, 0x7E .rodata:00057524 DCB 5, 0, 0x68, 0x7E, 5, 0, 0x5C, 0x7E, 5, 0, 0x44, 0x7E .rodata:00057524 DCB 5, 0, 0x34, 0x7E, 5, 0, 0, 0, 0, 0, 0x1C, 0x7E, 5 .rodata:00057524 DCB 0, 8, 0x7E, 5, 0, 0xF4, 0x7D, 5, 0, 0xE4, 0x7D, 5 .rodata:00057524 DCB 0, 0xC8, 0x7D, 5, 0, 0xA8, 0x7D, 5, 0, 0x90, 0x7D .rodata:00057524 DCB 5, 0, 0x7C, 0x7D, 5, 0, 0x64, 0x7D, 5, 0, 0x54, 0x7D .rodata:00057524 DCB 5, 0, 0x44, 0x7D, 5, 0, 0x28, 0x7D, 5, 0, 0x18, 0x7D .rodata:00057524 DCB 5, 0, 4, 0x7D, 5, 0, 0xF0, 0x7C, 5, 0, 0xE4, 0x7C .rodata:00057524 DCB 5, 0, 0xBC, 0x7C, 5, 0, 0xA0, 0x7C, 5, 0, 0x80, 0x7C .rodata:00057524 DCB 5, 0, 0x68, 0x7C, 5, 0, 0x40, 0x7C, 5, 0, 0x18, 0x7C .rodata:00057524 DCB 5, 0, 0xF8, 0x7B, 5, 0, 0xC8, 0x7B, 5, 0, 0xA0, 0x7B .rodata:00057524 DCB 5, 0, 0x6C, 0x7B, 5, 0, 0x40, 0x7B, 5, 0, 0x2C, 0x7B .rodata:00057524 DCB 5, 0, 0x1C, 0x7B, 5, 0, 0xFC, 0x7A, 5, 0, 0xDC, 0x7A .rodata:00057524 DCB 5, 0, 0xC8, 0x7A, 5, 0, 0xA8, 0x7A, 5, 0, 0x90, 0x7A .rodata:00057524 DCB 5, 0, 0x78, 0x7A, 5, 0, 0x5C, 0x7A, 5, 0, 0x44, 0x7A .rodata:00057524 DCB 5, 0, 0x24, 0x7A, 5, 0, 0xF8, 0x79, 5, 0, 0xE0, 0x79 .rodata:00057524 DCB 5, 0, 0xC0, 0x79, 5, 0, 0xB0, 0x79, 5, 0, 0x98, 0x79 .rodata:00057524 DCB 5, 0, 0x74, 0x79, 5, 0, 0x50, 0x79, 5, 0, 0x34, 0x79 .rodata:00057524 DCB 5, 0, 0x18, 0x79, 5, 0, 0xF0, 0x78, 5, 0, 0xCC, 0x78 .rodata:00057524 DCB 5, 0, 0x9C, 0x78, 5, 0, 0x78, 0x78, 5, 0, 0x60, 0x78 .rodata:00057524 DCB 5, 0, 0x4C, 0x78, 5, 0, 0x3C, 0x78, 5, 0, 0x28, 0x78 .rodata:00057524 DCB 5, 0, 8, 0x78, 5, 0, 0xEC, 0x77, 5, 0, 0xD4, 0x77 .rodata:00057524 DCB 5, 0, 0xB8, 0x77, 5, 0, 0x9C, 0x77, 5, 0, 0x7C, 0x77 .rodata:00057524 DCB 5, 0, 0x64, 0x77, 5, 0, 0x50, 0x77, 5, 0, 0x3C, 0x77 .rodata:00057524 DCB 5, 0, 0x2C, 0x77, 5, 0, 0x18, 0x77, 5, 0 .rodata:00057718 aWrongMediumTyp DCB "Wrong medium type",0 .rodata:0005772A ALIGN 4 .rodata:0005772C aNoMediumFound DCB "No medium found",0 .rodata:0005773C aDiskQuotaExcee DCB "Disk quota exceeded",0 .rodata:00057750 aRemoteIOError DCB "Remote I/O error",0 .rodata:00057761 ALIGN 4 .rodata:00057764 aIsANamedTypeFi DCB "Is a named type file",0 .rodata:00057779 ALIGN 4 .rodata:0005777C aNoXenixSemapho DCB "No XENIX semaphores available",0 .rodata:0005779A ALIGN 4 .rodata:0005779C aNotAXenixNamed DCB "Not a XENIX named type file",0 .rodata:000577B8 aStructureNeeds DCB "Structure needs cleaning",0 .rodata:000577D1 ALIGN 4 .rodata:000577D4 aStaleNfsFileHa DCB "Stale NFS file handle",0 .rodata:000577EA ALIGN 4 .rodata:000577EC aOperationNowIn DCB "Operation now in progress",0 .rodata:00057806 ALIGN 4 .rodata:00057808 aOperationAlrea DCB "Operation already in progress",0 .rodata:00057826 ALIGN 4 .rodata:00057828 aNoRouteToHost DCB "No route to host",0 .rodata:00057839 ALIGN 4 .rodata:0005783C aHostIsDown DCB "Host is down",0 .rodata:00057849 ALIGN 4 .rodata:0005784C aConnectionRefu DCB "Connection refused",0 .rodata:0005785F ALIGN 0x10 .rodata:00057860 aConnectionTime DCB "Connection timed out",0 .rodata:00057875 ALIGN 4 .rodata:00057878 aTooManyReferen DCB "Too many references: cannot splice",0 .rodata:0005789B ALIGN 4 .rodata:0005789C aCannotSendAfte DCB "Cannot send after transport endpoint shutdown",0 .rodata:000578CA ALIGN 4 .rodata:000578CC aTransportEndpo DCB "Transport endpoint is not connected",0 .rodata:000578F0 aTransportEnd_0 DCB "Transport endpoint is already connected",0 .rodata:00057918 aNoBufferSpaceA DCB "No buffer space available",0 .rodata:00057932 ALIGN 4 .rodata:00057934 aConnectionRese DCB "Connection reset by peer",0 .rodata:0005794D ALIGN 0x10 .rodata:00057950 aSoftwareCaused DCB "Software caused connection abort",0 .rodata:00057971 ALIGN 4 .rodata:00057974 aNetworkDropped DCB "Network dropped connection on reset",0 .rodata:00057998 aNetworkIsUnrea DCB "Network is unreachable",0 .rodata:000579AF ALIGN 0x10 .rodata:000579B0 aNetworkIsDown DCB "Network is down",0 .rodata:000579C0 aCannotAssignRe DCB "Cannot assign requested address",0 .rodata:000579E0 aAddressAlready DCB "Address already in use",0 .rodata:000579F7 ALIGN 4 .rodata:000579F8 aAddressFamilyN DCB "Address family not supported by protocol",0 .rodata:00057A21 ALIGN 4 .rodata:00057A24 aProtocolFamily DCB "Protocol family not supported",0 .rodata:00057A42 ALIGN 4 .rodata:00057A44 aOperationNotSu DCB "Operation not supported",0 .rodata:00057A5C aSocketTypeNotS DCB "Socket type not supported",0 .rodata:00057A76 ALIGN 4 .rodata:00057A78 aProtocolNotSup DCB "Protocol not supported",0 .rodata:00057A8F ALIGN 0x10 .rodata:00057A90 aProtocolNotAva DCB "Protocol not available",0 .rodata:00057AA7 ALIGN 4 .rodata:00057AA8 aProtocolWrongT DCB "Protocol wrong type for socket",0 .rodata:00057AC7 ALIGN 4 .rodata:00057AC8 aMessageTooLong DCB "Message too long",0 .rodata:00057AD9 ALIGN 4 .rodata:00057ADC aDestinationAdd DCB "Destination address required",0 .rodata:00057AF9 ALIGN 4 .rodata:00057AFC aSocketOperatio DCB "Socket operation on non-socket",0 .rodata:00057B1B ALIGN 4 .rodata:00057B1C aTooManyUsers DCB "Too many users",0 .rodata:00057B2B ALIGN 4 .rodata:00057B2C aStreamsPipeErr DCB "Streams pipe error",0 .rodata:00057B3F ALIGN 0x10 .rodata:00057B40 aInterruptedSys DCB "Interrupted system call should be restarted",0 .rodata:00057B6C aInvalidOrIncom DCB "Invalid or incomplete multibyte or wide character",0 .rodata:00057B9E ALIGN 0x10 .rodata:00057BA0 aCannotExecASha DCB "Cannot exec a shared library directly",0 .rodata:00057BC6 ALIGN 4 .rodata:00057BC8 aAttemptingToLi DCB "Attempting to link in too many shared libraries",0 .rodata:00057BF8 a_libSectionInA DCB ".lib section in a.out corrupted",0 .rodata:00057C18 aAccessingACorr DCB "Accessing a corrupted shared library",0 .rodata:00057C3D ALIGN 0x10 .rodata:00057C40 aCanNotAccessAN DCB "Can not access a needed shared library",0 .rodata:00057C67 ALIGN 4 .rodata:00057C68 aRemoteAddressC DCB "Remote address changed",0 .rodata:00057C7F ALIGN 0x10 .rodata:00057C80 aFileDescriptor DCB "File descriptor in bad state",0 .rodata:00057C9D ALIGN 0x10 .rodata:00057CA0 aNameNotUniqueO DCB "Name not unique on network",0 .rodata:00057CBB ALIGN 4 .rodata:00057CBC aValueTooLargeF DCB "Value too large for defined data type",0 .rodata:00057CE2 ALIGN 4 .rodata:00057CE4 aBadMessage DCB "Bad message",0 .rodata:00057CF0 aRfsSpecificErr DCB "RFS specific error",0 .rodata:00057D03 ALIGN 4 .rodata:00057D04 aMultihopAttemp DCB "Multihop attempted",0 .rodata:00057D17 ALIGN 4 .rodata:00057D18 aProtocolError DCB "Protocol error",0 .rodata:00057D27 ALIGN 4 .rodata:00057D28 aCommunicationE DCB "Communication error on send",0 .rodata:00057D44 aSrmountError DCB "Srmount error",0 .rodata:00057D52 ALIGN 4 .rodata:00057D54 aAdvertiseError DCB "Advertise error",0 .rodata:00057D64 aLinkHasBeenSev DCB "Link has been severed",0 .rodata:00057D7A ALIGN 4 .rodata:00057D7C aObjectIsRemote DCB "Object is remote",0 .rodata:00057D8D ALIGN 0x10 .rodata:00057D90 aPackageNotInst DCB "Package not installed",0 .rodata:00057DA6 ALIGN 4 .rodata:00057DA8 aMachineIsNotOn DCB "Machine is not on the network",0 .rodata:00057DC6 ALIGN 4 .rodata:00057DC8 aOutOfStreamsRe DCB "Out of streams resources",0 .rodata:00057DE1 ALIGN 4 .rodata:00057DE4 aTimerExpired DCB "Timer expired",0 .rodata:00057DF2 ALIGN 4 .rodata:00057DF4 aNoDataAvailabl DCB "No data available",0 .rodata:00057E06 ALIGN 4 .rodata:00057E08 aDeviceNotAStre DCB "Device not a stream",0 .rodata:00057E1C aBadFontFileFor DCB "Bad font file format",0 .rodata:00057E31 ALIGN 4 .rodata:00057E34 aInvalidSlot DCB "Invalid slot",0 .rodata:00057E41 ALIGN 4 .rodata:00057E44 aInvalidRequest DCB "Invalid request code",0 .rodata:00057E59 ALIGN 4 .rodata:00057E5C aNoAnode DCB "No anode",0 .rodata:00057E65 ALIGN 4 .rodata:00057E68 aExchangeFull DCB "Exchange full",0 .rodata:00057E76 ALIGN 4 .rodata:00057E78 aInvalidReque_0 DCB "Invalid request descriptor",0 .rodata:00057E93 ALIGN 4 .rodata:00057E94 aInvalidExchang DCB "Invalid exchange",0 .rodata:00057EA5 ALIGN 4 .rodata:00057EA8 aLevel2Halted DCB "Level 2 halted",0 .rodata:00057EB7 ALIGN 4 .rodata:00057EB8 aNoCsiStructure DCB "No CSI structure available",0 .rodata:00057ED3 ALIGN 4 .rodata:00057ED4 aProtocolDriver DCB "Protocol driver not attached",0 .rodata:00057EF1 ALIGN 4 .rodata:00057EF4 aLinkNumberOutO DCB "Link number out of range",0 .rodata:00057F0D ALIGN 0x10 .rodata:00057F10 aLevel3Reset DCB "Level 3 reset",0 .rodata:00057F1E ALIGN 0x10 .rodata:00057F20 aLevel3Halted DCB "Level 3 halted",0 .rodata:00057F2F ALIGN 0x10 .rodata:00057F30 aLevel2NotSynch DCB "Level 2 not synchronized",0 .rodata:00057F49 ALIGN 4 .rodata:00057F4C aChannelNumberO DCB "Channel number out of range",0 .rodata:00057F68 aIdentifierRemo DCB "Identifier removed",0 .rodata:00057F7B ALIGN 4 .rodata:00057F7C aNoMessageOfDes DCB "No message of desired type",0 .rodata:00057F97 ALIGN 4 .rodata:00057F98 aTooManyLevelsO DCB "Too many levels of symbolic links",0 .rodata:00057FBA ALIGN 4 .rodata:00057FBC aDirectoryNotEm DCB "Directory not empty",0 .rodata:00057FD0 aFunctionNotImp DCB "Function not implemented",0 .rodata:00057FE9 ALIGN 4 .rodata:00057FEC aNoLocksAvailab DCB "No locks available",0 .rodata:00057FFF ALIGN 0x10 .rodata:00058000 aFileNameTooLon DCB "File name too long",0 .rodata:00058013 ALIGN 4 .rodata:00058014 aResourceDeadlo DCB "Resource deadlock avoided",0 .rodata:0005802E ALIGN 0x10 .rodata:00058030 aNumericalResul DCB "Numerical result out of range",0 .rodata:0005804E ALIGN 0x10 .rodata:00058050 aNumericalArgum DCB "Numerical argument out of domain",0 .rodata:00058071 ALIGN 4 .rodata:00058074 aBrokenPipe DCB "Broken pipe",0 .rodata:00058080 aTooManyLinks DCB "Too many links",0 .rodata:0005808F ALIGN 0x10 .rodata:00058090 aReadOnlyFileSy DCB "Read-only file system",0 .rodata:000580A6 ALIGN 4 .rodata:000580A8 aIllegalSeek DCB "Illegal seek",0 .rodata:000580B5 ALIGN 4 .rodata:000580B8 aNoSpaceLeftOnD DCB "No space left on device",0 .rodata:000580D0 aFileTooLarge DCB "File too large",0 .rodata:000580DF ALIGN 0x10 .rodata:000580E0 aTextFileBusy DCB "Text file busy",0 .rodata:000580EF ALIGN 0x10 .rodata:000580F0 aInappropriateI DCB "Inappropriate ioctl for device",0 .rodata:0005810F ALIGN 0x10 .rodata:00058110 aTooManyOpenFil DCB "Too many open files",0 .rodata:00058124 aTooManyOpenF_0 DCB "Too many open files in system",0 .rodata:00058142 ALIGN 4 .rodata:00058144 aInvalidArgumen DCB "Invalid argument",0 .rodata:00058155 ALIGN 4 .rodata:00058158 aIsADirectory DCB "Is a directory",0 .rodata:00058167 ALIGN 4 .rodata:00058168 aNotADirectory DCB "Not a directory",0 .rodata:00058178 aNoSuchDevice DCB "No such device",0 .rodata:00058187 ALIGN 4 .rodata:00058188 aInvalidCrossDe DCB "Invalid cross-device link",0 .rodata:000581A2 ALIGN 4 .rodata:000581A4 aFileExists DCB "File exists",0 .rodata:000581B0 aDeviceOrResour DCB "Device or resource busy",0 .rodata:000581C8 aBlockDeviceReq DCB "Block device required",0 .rodata:000581DE ALIGN 0x10 .rodata:000581E0 aBadAddress DCB "Bad address",0 .rodata:000581EC aPermissionDeni DCB "Permission denied",0 .rodata:000581FE ALIGN 0x10 .rodata:00058200 aCannotAlloca_4 DCB "Cannot allocate memory",0 .rodata:00058217 ALIGN 4 .rodata:00058218 aResourceTempor DCB "Resource temporarily unavailable",0 .rodata:00058239 ALIGN 4 .rodata:0005823C aNoChildProcess DCB "No child processes",0 .rodata:0005824F ALIGN 0x10 .rodata:00058250 aBadFileDescrip DCB "Bad file descriptor",0 .rodata:00058264 aExecFormatErro DCB "Exec format error",0 .rodata:00058276 ALIGN 4 .rodata:00058278 aArgumentListTo DCB "Argument list too long",0 .rodata:0005828F ALIGN 0x10 .rodata:00058290 aNoSuchDeviceOr DCB "No such device or address",0 .rodata:000582AA ALIGN 4 .rodata:000582AC aInputOutputErr DCB "Input/output error",0 .rodata:000582BF ALIGN 0x10 .rodata:000582C0 aInterruptedS_0 DCB "Interrupted system call",0 .rodata:000582D8 aNoSuchProcess DCB "No such process",0 .rodata:000582E8 aNoSuchFileOrDi DCB "No such file or directory",0 .rodata:00058302 ALIGN 4 .rodata:00058304 aOperationNotPe DCB "Operation not permitted",0 .rodata:0005831C aSuccess DCB "Success",0 .rodata:00058324 WEAK sys_nerr .rodata:00058324 sys_nerr DCD 0x7D ; DATA XREF: strerror_r+20o .rodata:00058324 ; strerror_r+24r ... .rodata:00058324 ; Alternative name is '_sys_nerr' .rodata:00058328 blanks DCB 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 .rodata:00058328 ; DATA XREF: _IO_padn+1Co .rodata:00058328 ; _IO_padn:off_2E490o .rodata:00058328 DCB 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 .rodata:00058338 zeroes DCB 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30 .rodata:00058338 ; DATA XREF: _IO_padn+2Co .rodata:00058338 ; _IO_padn:off_2E494o .rodata:00058338 DCB 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30 .rodata:00058348 blanks_0 DCB 0x20, 0, 0, 0, 0x20, 0, 0, 0, 0x20, 0, 0, 0, 0x20 .rodata:00058348 ; DATA XREF: _IO_wpadn+1Co .rodata:00058348 ; _IO_wpadn:off_2E568o .rodata:00058348 DCB 0, 0, 0, 0x20, 0, 0, 0, 0x20, 0, 0, 0, 0x20, 0, 0 .rodata:00058348 DCB 0, 0x20, 0, 0, 0, 0x20, 0, 0, 0, 0x20, 0, 0, 0, 0x20 .rodata:00058348 DCB 0, 0, 0, 0x20, 0, 0, 0, 0x20, 0, 0, 0, 0x20, 0, 0 .rodata:00058348 DCB 0, 0x20, 0, 0, 0, 0x20, 0, 0, 0 .rodata:00058388 zeroes_0 DCB 0x30, 0, 0, 0, 0x30, 0, 0, 0, 0x30, 0, 0, 0, 0x30 .rodata:00058388 ; DATA XREF: _IO_wpadn+2Co .rodata:00058388 ; _IO_wpadn:off_2E56Co .rodata:00058388 DCB 0, 0, 0, 0x30, 0, 0, 0, 0x30, 0, 0, 0, 0x30, 0, 0 .rodata:00058388 DCB 0, 0x30, 0, 0, 0, 0x30, 0, 0, 0, 0x30, 0, 0, 0, 0x30 .rodata:00058388 DCB 0, 0, 0, 0x30, 0, 0, 0, 0x30, 0, 0, 0, 0x30, 0, 0 .rodata:00058388 DCB 0, 0x30, 0, 0, 0, 0x30, 0, 0, 0 .rodata:000583C8 aStatus__codecv DCB "status == __codecvt_partial",0 .rodata:000583C8 ; DATA XREF: _IO_wfile_underflow+384o .rodata:000583C8 ; _IO_wfile_underflow:off_2FA18o .rodata:000583E4 aWfileops_c DCB "wfileops.c",0 ; DATA XREF: _IO_wfile_underflow+388o .rodata:000583E4 ; _IO_wfile_underflow:off_2FA1Co .rodata:000583EF ALIGN 0x10 .rodata:000583F0 a_io_wfile_unde DCB "_IO_wfile_underflow",0 .rodata:000583F0 ; DATA XREF: _IO_wfile_underflow+38Co .rodata:000583F0 ; _IO_wfile_underflow:off_2FA20o .rodata:00058404 aCcs DCB ",ccs=",0 ; DATA XREF: _IO_new_file_fopen+A8o .rodata:00058404 ; _IO_new_file_fopen:off_30E6Co .rodata:0005840A ALIGN 4 .rodata:0005840C dword_5840C DCD 0 ; DATA XREF: mbrtowc+60o .rodata:0005840C ; mbrtowc:off_32D60o .rodata:00058410 aStatus__gconv_ DCB "status == __GCONV_OK || status == __GCONV_EMPTY_INPUT || status " .rodata:00058410 ; DATA XREF: mbrtowc+F0o .rodata:00058410 ; mbrtowc:off_32D70o .rodata:00058410 DCB "== __GCONV_ILLEGAL_INPUT || status == __GCONV_INCOMPLETE_INPUT |" .rodata:00058410 DCB "| status == __GCONV_FULL_OUTPUT",0 .rodata:000584B0 aMbrtowc_c DCB "mbrtowc.c",0 ; DATA XREF: mbrtowc+F4o .rodata:000584B0 ; mbrtowc+144o ... .rodata:000584BA ALIGN 4 .rodata:000584BC a__mbrtowc DCB "__mbrtowc",0 ; DATA XREF: mbrtowc+F8o .rodata:000584BC ; mbrtowc+148o ... .rodata:000584C6 ALIGN 4 .rodata:000584C8 a__mbsinitData_ DCB "__mbsinit (data.__statep)",0 ; DATA XREF: mbrtowc+140o .rodata:000584C8 ; mbrtowc:off_32D7Co .rodata:000584E2 ALIGN 4 .rodata:000584E4 aStatus__gcon_0 DCB "status == __GCONV_OK || status == __GCONV_EMPTY_INPUT || status " .rodata:000584E4 ; DATA XREF: wcrtomb+164o .rodata:000584E4 ; wcrtomb:off_32F4Co .rodata:000584E4 DCB "== __GCONV_ILLEGAL_INPUT || status == __GCONV_INCOMPLETE_INPUT |" .rodata:000584E4 DCB "| status == __GCONV_FULL_OUTPUT",0 .rodata:00058584 aWcrtomb_c DCB "wcrtomb.c",0 ; DATA XREF: wcrtomb+168o .rodata:00058584 ; wcrtomb:off_32F50o .rodata:0005858E ALIGN 0x10 .rodata:00058590 a__wcrtomb DCB "__wcrtomb",0 ; DATA XREF: wcrtomb+16Co .rodata:00058590 ; wcrtomb:off_32F54o .rodata:0005859A ALIGN 4 .rodata:0005859C aWchar_tData___ DCB "((wchar_t *) data.__outbuf)[-1] == L'\0'",0 .rodata:0005859C ; DATA XREF: mbsrtowcs+124o .rodata:0005859C ; mbsrtowcs:off_331C4o .rodata:000585C5 ALIGN 4 .rodata:000585C8 aMbsrtowcs_c DCB "mbsrtowcs.c",0 ; DATA XREF: mbsrtowcs+128o .rodata:000585C8 ; mbsrtowcs+1D4o ... .rodata:000585D4 a__mbsrtowcs DCB "__mbsrtowcs",0 ; DATA XREF: mbsrtowcs+12Co .rodata:000585D4 ; mbsrtowcs+1D8o ... .rodata:000585E0 aResult0 DCB "result > 0",0 ; DATA XREF: mbsrtowcs+1D0o .rodata:000585E0 ; mbsrtowcs:off_331D0o .rodata:000585EB ALIGN 4 .rodata:000585EC a__mbsinitDat_0 DCB "__mbsinit (data.__statep)",0 .rodata:000585EC ; DATA XREF: mbsrtowcs+1F4o .rodata:000585EC ; mbsrtowcs:off_331D4o .rodata:00058606 ALIGN 4 .rodata:00058608 aStatus__gcon_1 DCB "status == __GCONV_OK || status == __GCONV_EMPTY_INPUT || status " .rodata:00058608 ; DATA XREF: mbsrtowcs+230o .rodata:00058608 ; mbsrtowcs:off_331D8o .rodata:00058608 DCB "== __GCONV_ILLEGAL_INPUT || status == __GCONV_INCOMPLETE_INPUT |" .rodata:00058608 DCB "| status == __GCONV_FULL_OUTPUT",0 .rodata:000586A8 aData___outbuf1 DCB "data.__outbuf[-1] == '\0'",0 .rodata:000586A8 ; DATA XREF: wcsrtombs+130o .rodata:000586A8 ; wcsrtombs:off_33460o .rodata:000586C2 ALIGN 4 .rodata:000586C4 aWcsrtombs_c DCB "wcsrtombs.c",0 ; DATA XREF: wcsrtombs+134o .rodata:000586C4 ; wcsrtombs+1D4o ... .rodata:000586D0 a__wcsrtombs DCB "__wcsrtombs",0 ; DATA XREF: wcsrtombs+138o .rodata:000586D0 ; wcsrtombs+1D8o ... .rodata:000586DC aData___outbufU DCB "data.__outbuf != (unsigned char *) dst",0 .rodata:000586DC ; DATA XREF: wcsrtombs+1D0o .rodata:000586DC ; wcsrtombs:off_3346Co .rodata:00058703 ALIGN 4 .rodata:00058704 a__mbsinitDat_1 DCB "__mbsinit (data.__statep)",0 .rodata:00058704 ; DATA XREF: wcsrtombs+1F4o .rodata:00058704 ; wcsrtombs:off_33470o .rodata:0005871E ALIGN 0x10 .rodata:00058720 aStatus__gcon_2 DCB "status == __GCONV_OK || status == __GCONV_EMPTY_INPUT || status " .rodata:00058720 ; DATA XREF: wcsrtombs+230o .rodata:00058720 ; wcsrtombs:off_33474o .rodata:00058720 DCB "== __GCONV_ILLEGAL_INPUT || status == __GCONV_INCOMPLETE_INPUT |" .rodata:00058720 DCB "| status == __GCONV_FULL_OUTPUT",0 .rodata:000587C0 aResult0_0 DCB "result > 0",0 ; DATA XREF: mbsnrtowcs+194o .rodata:000587C0 ; mbsnrtowcs:off_336CCo .rodata:000587CB ALIGN 4 .rodata:000587CC aMbsnrtowcs_c DCB "mbsnrtowcs.c",0 ; DATA XREF: mbsnrtowcs+198o .rodata:000587CC ; mbsnrtowcs+1CCo ... .rodata:000587D9 ALIGN 4 .rodata:000587DC a__mbsnrtowcs DCB "__mbsnrtowcs",0 ; DATA XREF: mbsnrtowcs+19Co .rodata:000587DC ; mbsnrtowcs+1D0o ... .rodata:000587E9 ALIGN 4 .rodata:000587EC a__mbsinitDat_2 DCB "__mbsinit (data.__statep)",0 .rodata:000587EC ; DATA XREF: mbsnrtowcs+1C8o .rodata:000587EC ; mbsnrtowcs:off_336D8o .rodata:00058806 ALIGN 4 .rodata:00058808 aStatus__gcon_3 DCB "status == __GCONV_OK || status == __GCONV_EMPTY_INPUT || status " .rodata:00058808 ; DATA XREF: mbsnrtowcs+204o .rodata:00058808 ; mbsnrtowcs:off_336DCo .rodata:00058808 DCB "== __GCONV_ILLEGAL_INPUT || status == __GCONV_INCOMPLETE_INPUT |" .rodata:00058808 DCB "| status == __GCONV_FULL_OUTPUT",0 .rodata:000588A8 aInternal DCB "INTERNAL",0 ; DATA XREF: __wcsmbs_load_conv+170o .rodata:000588A8 ; __wcsmbs_load_conv+1F4o ... .rodata:000588B1 ALIGN 4 .rodata:000588B4 aAnsi_x3_41968T DCB "ANSI_X3.4-1968//TRANSLIT",0 .rodata:000588CD ALIGN 0x10 .rodata:000588D0 aTranslit_0 DCB "TRANSLIT",0 ; DATA XREF: __wcsmbs_load_conv+9Co .rodata:000588D0 ; __wcsmbs_load_conv+158o ... .rodata:000588D9 ALIGN 4 .rodata:000588DC envvar_tail.60 DCB "_GNU_nonoption_argv_flags_=",0 .rodata:000588DC ; DATA XREF: __getopt_clean_environment+10o .rodata:000588DC ; __getopt_clean_environment+18o ... .rodata:000588F8 aProcSelfCwd DCB "/proc/self/cwd",0 ; DATA XREF: getcwd+164o .rodata:000588F8 ; .text:off_34980o .rodata:00058907 ALIGN 4 .rodata:00058908 dots.120 DCB "../../../../../../../../../../../../../../../../../../../../../." .rodata:00058908 ; DATA XREF: generic_getcwd+128o .rodata:00058908 ; generic_getcwd:off_34BC8o ... .rodata:00058908 DCB "./../../../../../../../../../../../../../../../../../../../../.." .rodata:00058908 DCB "/../../../../../../../../../../../../../../../../../../../../../" .rodata:00058908 DCB "../../../../../../../../../../..",0 .rodata:000589E9 byte_589E9 DCB 0, 0, 0 ; DATA XREF: generic_getcwd+18o .rodata:000589E9 ; generic_getcwd:off_34BBCo .rodata:000589EC a_ DCB ".",0 ; DATA XREF: generic_getcwd+C4o .rodata:000589EC ; generic_getcwd:off_34BC0o .rodata:000589EE ALIGN 0x10 .rodata:000589F0 asc_589F0 DCB "/",0 ; DATA XREF: generic_getcwd+ECo .rodata:000589F0 ; generic_getcwd:off_34BC4o .rodata:000589F2 ALIGN 4 .rodata:000589F4 path_proc DCB "/proc",0 ; DATA XREF: get_proc_path+90o .rodata:000589F4 ; get_proc_path:off_359F4o .rodata:000589FA ALIGN 4 .rodata:000589FC aEtcMtab DCB "/etc/mtab",0 ; DATA XREF: get_proc_path+1Co .rodata:000589FC ; get_proc_path:off_359E8o .rodata:00058A06 ALIGN 4 .rodata:00058A08 aR_0 DCB "r",0 ; DATA XREF: get_proc_path+14o .rodata:00058A08 ; get_proc_path:off_359E4o ... .rodata:00058A0A ALIGN 4 .rodata:00058A0C aEtcFstab DCB "/etc/fstab",0 ; DATA XREF: get_proc_path+34o .rodata:00058A0C ; get_proc_path:off_359ECo .rodata:00058A17 ALIGN 4 .rodata:00058A18 aProc DCB "proc",0 ; DATA XREF: get_proc_path+58o .rodata:00058A18 ; get_proc_path:off_359F0o .rodata:00058A1D ALIGN 0x10 .rodata:00058A20 aCpuinfo DCB "/cpuinfo",0 ; DATA XREF: get_nprocs_conf+54o .rodata:00058A20 ; get_nprocs_conf:off_35AB8o .rodata:00058A29 ALIGN 4 .rodata:00058A2C aProcessor DCB "processor",0 ; DATA XREF: get_nprocs_conf+84o .rodata:00058A2C ; get_nprocs_conf:off_35B00o .rodata:00058A36 ALIGN 4 .rodata:00058A38 aMeminfo DCB "/meminfo",0 ; DATA XREF: phys_pages_info+78o .rodata:00058A38 ; phys_pages_info:off_35C24o .rodata:00058A41 ALIGN 4 .rodata:00058A44 aMemtotalLdKb DCB "MemTotal: %ld kB",0 ; DATA XREF: get_phys_pages+8o .rodata:00058A44 ; .text:off_35C48o .rodata:00058A55 ALIGN 4 .rodata:00058A58 aMemfreeLdKb DCB "MemFree: %ld kB",0 ; DATA XREF: get_avphys_pages+8o .rodata:00058A58 ; .text:off_35C64o .rodata:00058A68 DCD 0 .rodata:00058A6C DCD 0x2C .rodata:00058A70 aTranslit_1 DCB "TRANSLIT",0 ; DATA XREF: __gconv_open:loc_35F1Co .rodata:00058A70 ; __gconv_open:off_361C4o .rodata:00058A79 ALIGN 4 .rodata:00058A7C aInternal_0 DCB "INTERNAL",0 .rodata:00058A85 ALIGN 4 .rodata:00058A88 aIgnore DCB "IGNORE",0 ; DATA XREF: __gconv_open:loc_35FB4o .rodata:00058A88 ; __gconv_open:off_361D0o .rodata:00058A8F ALIGN 0x10 .rodata:00058A90 aIrreversibleVo DCB "irreversible != ((void *)0)",0 .rodata:00058A90 ; DATA XREF: __gconv+44o .rodata:00058A90 ; __gconv:off_365E8o .rodata:00058AAC aGconv_c DCB "gconv.c",0 ; DATA XREF: __gconv+48o .rodata:00058AAC ; __gconv+104o ... .rodata:00058AB4 a__gconv DCB "__gconv",0 ; DATA XREF: __gconv+4Co .rodata:00058AB4 ; __gconv+108o ... .rodata:00058ABC aOutbufVoid0Out DCB "outbuf != ((void *)0) && *outbuf != ((void *)0)",0 .rodata:00058ABC ; DATA XREF: __gconv:loc_365CCo .rodata:00058ABC ; __gconv:off_365F4o .rodata:00058AEC DCB "-",0 .rodata:00058AEE ALIGN 0x10 .rodata:00058AF0 default_gconv_path DCB "/usr/local/arm/2.95.3/arm-linux/lib/gconv",0 .rodata:00058AF0 ; DATA XREF: __gconv_get_path+50o .rodata:00058AF0 ; __gconv_get_path+C0o ... .rodata:00058B1A ALIGN 4 .rodata:00058B1C gconv_conf_filename DCB "gconv-modules",0 .rodata:00058B1C ; DATA XREF: __gconv_read_conf+94o .rodata:00058B1C ; __gconv_read_conf:off_3843Co .rodata:00058B2A ALIGN 4 .rodata:00058B2C gconv_module_ext DCD 0x6F732E ; DATA XREF: add_module+24Co .rodata:00058B2C ; add_module+344o ... .rodata:00058B30 aInternalUcs2re DCB "=INTERNAL->ucs2reverse",0 .rodata:00058B47 ALIGN 4 .rodata:00058B48 aUcs2reverseInt DCB "=ucs2reverse->INTERNAL",0 .rodata:00058B5F ALIGN 0x10 .rodata:00058B60 aUnicodebig DCB "UNICODEBIG//",0 .rodata:00058B6D ALIGN 0x10 .rodata:00058B70 aInternalAscii DCB "=INTERNAL->ascii",0 .rodata:00058B81 ALIGN 4 .rodata:00058B84 aAsciiInternal DCB "=ascii->INTERNAL",0 .rodata:00058B95 ALIGN 4 .rodata:00058B98 aAnsi_x3_41968 DCB "ANSI_X3.4-1968//",0 .rodata:00058BA9 ALIGN 4 .rodata:00058BAC aInternalUcs2 DCB "=INTERNAL->ucs2",0 .rodata:00058BBC aUcs2Internal DCB "=ucs2->INTERNAL",0 .rodata:00058BCC aIso10646Ucs2 DCB "ISO-10646/UCS2/",0 .rodata:00058BDC aUtf8Internal DCB "=utf8->INTERNAL",0 .rodata:00058BEC aIso10646Utf8 DCB "ISO-10646/UTF-8/",0 .rodata:00058BFD ALIGN 0x10 .rodata:00058C00 aInternalUtf8 DCB "=INTERNAL->utf8",0 .rodata:00058C10 aIso10646Utf8_0 DCB "ISO-10646/UTF8/",0 .rodata:00058C20 aUcs4leInternal DCB "=ucs4le->INTERNAL",0 .rodata:00058C32 ALIGN 4 .rodata:00058C34 aInternalUcs4le DCB "=INTERNAL->ucs4le",0 .rodata:00058C46 ALIGN 4 .rodata:00058C48 aUcs4le DCB "UCS-4LE//",0 .rodata:00058C52 ALIGN 4 .rodata:00058C54 aUcs4Internal DCB "=ucs4->INTERNAL",0 .rodata:00058C64 aInternalUcs4 DCB "=INTERNAL->ucs4",0 .rodata:00058C74 aIso10646Ucs4 DCB "ISO-10646/UCS4/",0 .rodata:00058C84 aInternal_1 DCB "INTERNAL",0 .rodata:00058C8D ALIGN 0x10 .rodata:00058C90 aUcs2beUnicodeb DCB "UCS-2BE// UNICODEBIG//",0 .rodata:00058CA7 ALIGN 4 .rodata:00058CA8 aUcs2leIso10646 DCB "UCS-2LE// ISO-10646/UCS2/",0 .rodata:00058CC2 ALIGN 4 .rodata:00058CC4 aUnicodelittleI DCB "UNICODELITTLE// ISO-10646/UCS2/",0 .rodata:00058CE4 aOsf00010020Ans DCB "OSF00010020// ANSI_X3.4-1968//",0 .rodata:00058D03 ALIGN 4 .rodata:00058D04 aCsasciiAnsi_x3 DCB "CSASCII// ANSI_X3.4-1968//",0 .rodata:00058D1F ALIGN 0x10 .rodata:00058D20 aCp367Ansi_x3_4 DCB "CP367// ANSI_X3.4-1968//",0 .rodata:00058D39 ALIGN 4 .rodata:00058D3C aIbm367Ansi_x3_ DCB "IBM367// ANSI_X3.4-1968//",0 .rodata:00058D56 ALIGN 4 .rodata:00058D58 aUsAnsi_x3_4196 DCB "US// ANSI_X3.4-1968//",0 .rodata:00058D6E ALIGN 0x10 .rodata:00058D70 aUsAsciiAnsi_x3 DCB "US-ASCII// ANSI_X3.4-1968//",0 .rodata:00058D8C aIso646UsAnsi_x DCB "ISO646-US// ANSI_X3.4-1968//",0 .rodata:00058DA9 ALIGN 4 .rodata:00058DAC aAsciiAnsi_x3_4 DCB "ASCII// ANSI_X3.4-1968//",0 .rodata:00058DC5 ALIGN 4 .rodata:00058DC8 aIso_646_irv199 DCB "ISO_646.IRV:1991// ANSI_X3.4-1968//",0 .rodata:00058DEC aAnsi_x3_41986A DCB "ANSI_X3.4-1986// ANSI_X3.4-1968//",0 .rodata:00058E0E ALIGN 0x10 .rodata:00058E10 aIsoIr6Ansi_x3_ DCB "ISO-IR-6// ANSI_X3.4-1968//",0 .rodata:00058E2C aAnsi_x3_4Ansi_ DCB "ANSI_X3.4// ANSI_X3.4-1968//",0 .rodata:00058E49 ALIGN 4 .rodata:00058E4C aOsf00010102Iso DCB "OSF00010102// ISO-10646/UCS2/",0 .rodata:00058E6A ALIGN 4 .rodata:00058E6C aOsf00010101Iso DCB "OSF00010101// ISO-10646/UCS2/",0 .rodata:00058E8A ALIGN 4 .rodata:00058E8C aOsf00010100Iso DCB "OSF00010100// ISO-10646/UCS2/",0 .rodata:00058EAA ALIGN 4 .rodata:00058EAC aUcs2Iso10646Uc DCB "UCS-2// ISO-10646/UCS2/",0 .rodata:00058EC4 aUcs2Iso10646_0 DCB "UCS2// ISO-10646/UCS2/",0 .rodata:00058EDB ALIGN 4 .rodata:00058EDC aOsf05010001Iso DCB "OSF05010001// ISO-10646/UTF8/",0 .rodata:00058EFA ALIGN 4 .rodata:00058EFC aIsoIr193Iso106 DCB "ISO-IR-193// ISO-10646/UTF8/",0 .rodata:00058F19 ALIGN 4 .rodata:00058F1C aUtf8Iso10646Ut DCB "UTF-8// ISO-10646/UTF8/",0 .rodata:00058F34 aUtf8Iso10646_0 DCB "UTF8// ISO-10646/UTF8/",0 .rodata:00058F4B ALIGN 4 .rodata:00058F4C aWchar_tInterna DCB "WCHAR_T// INTERNAL",0 .rodata:00058F5F ALIGN 0x10 .rodata:00058F60 aOsf00010106Iso DCB "OSF00010106// ISO-10646/UCS4/",0 .rodata:00058F7E ALIGN 0x10 .rodata:00058F80 aOsf00010105Iso DCB "OSF00010105// ISO-10646/UCS4/",0 .rodata:00058F9E ALIGN 0x10 .rodata:00058FA0 aOsf00010104Iso DCB "OSF00010104// ISO-10646/UCS4/",0 .rodata:00058FBE ALIGN 0x10 .rodata:00058FC0 a1064611993Ucs4 DCB "10646-1:1993/UCS4/ ISO-10646/UCS4/",0 .rodata:00058FE3 ALIGN 4 .rodata:00058FE4 a1064611993Iso1 DCB "10646-1:1993// ISO-10646/UCS4/",0 .rodata:00059003 ALIGN 4 .rodata:00059004 aIso10646Iso106 DCB "ISO-10646// ISO-10646/UCS4/",0 .rodata:00059020 aCsucs4Iso10646 DCB "CSUCS4// ISO-10646/UCS4/",0 .rodata:00059039 ALIGN 4 .rodata:0005903C aUcs4beIso10646 DCB "UCS-4BE// ISO-10646/UCS4/",0 .rodata:00059056 ALIGN 4 .rodata:00059058 aUcs4Iso10646Uc DCB "UCS-4// ISO-10646/UCS4/",0 .rodata:00059070 aUcs4Iso10646_0 DCB "UCS4// ISO-10646/UCS4/",0 .rodata:00059087 ALIGN 4 .rodata:00059088 aR_2 DCB "r",0 ; DATA XREF: read_conf_file+1Co .rodata:00059088 ; read_conf_file:off_37E48o .rodata:0005908A ALIGN 4 .rodata:0005908C aAlias DCB "alias",0 ; DATA XREF: read_conf_file+108o .rodata:0005908C ; read_conf_file:off_37E50o .rodata:00059092 ALIGN 4 .rodata:00059094 aModule DCB "module",0 ; DATA XREF: read_conf_file+31Co .rodata:00059094 ; read_conf_file:off_37EF0o .rodata:0005909B ALIGN 4 .rodata:0005909C aGconv_path DCB "GCONV_PATH",0 ; DATA XREF: __gconv_get_path+38o .rodata:0005909C ; __gconv_get_path:off_38134o .rodata:000590A7 ALIGN 4 .rodata:000590A8 asc_590A8 DCB ":",0 ; DATA XREF: __gconv_get_path+B4o .rodata:000590A8 ; __gconv_get_path:off_3813Co .rodata:000590AA ALIGN 4 .rodata:000590AC aDefault_gconv_ DCB "default_gconv_path[0] == '/'",0 .rodata:000590C9 ALIGN 4 .rodata:000590CC aGconv_conf_c DCB "gconv_conf.c",0 ; DATA XREF: __gconv_get_path+1E0o .rodata:000590CC ; __gconv_get_path+21Co ... .rodata:000590D9 ALIGN 4 .rodata:000590DC a__gconv_get_pa DCB "__gconv_get_path",0 ; DATA XREF: __gconv_get_path+1E8o .rodata:000590DC ; __gconv_get_path+220o ... .rodata:000590ED ALIGN 0x10 .rodata:000590F0 aElemVoid0 DCB "elem != ((void *)0)",0 .rodata:000590F0 ; DATA XREF: __gconv_get_path+1DCo .rodata:000590F0 ; __gconv_get_path:off_38144o .rodata:00059104 aCwdVoid0 DCB "cwd != ((void *)0)",0 .rodata:00059104 ; DATA XREF: __gconv_get_path+218o .rodata:00059104 ; __gconv_get_path:off_38150o .rodata:00059117 ALIGN 4 .rodata:00059118 aInternalUcs2_0 DCB "=INTERNAL->ucs2reverse",0 .rodata:0005912F ALIGN 0x10 .rodata:00059130 aUcs2reverseI_0 DCB "=ucs2reverse->INTERNAL",0 .rodata:00059147 ALIGN 4 .rodata:00059148 aInternalAsci_0 DCB "=INTERNAL->ascii",0 .rodata:00059159 ALIGN 4 .rodata:0005915C aAsciiInterna_0 DCB "=ascii->INTERNAL",0 .rodata:0005916D ALIGN 0x10 .rodata:00059170 aInternalUcs2_1 DCB "=INTERNAL->ucs2",0 .rodata:00059180 aUcs2Internal_0 DCB "=ucs2->INTERNAL",0 .rodata:00059190 aUtf8Internal_0 DCB "=utf8->INTERNAL",0 .rodata:000591A0 aInternalUtf8_0 DCB "=INTERNAL->utf8",0 .rodata:000591B0 aUcs4leIntern_0 DCB "=ucs4le->INTERNAL",0 .rodata:000591C2 ALIGN 4 .rodata:000591C4 aInternalUcs4_0 DCB "=INTERNAL->ucs4le",0 .rodata:000591D6 ALIGN 4 .rodata:000591D8 aUcs4Internal_0 DCB "=ucs4->INTERNAL",0 .rodata:000591E8 aInternalUcs4_1 DCB "=INTERNAL->ucs4",0 .rodata:000591F8 aCntSizeofMapSi DCB "cnt < sizeof (map) / sizeof (map[0])",0 .rodata:000591F8 ; DATA XREF: __gconv_get_builtin_trans+44o .rodata:000591F8 ; .text:off_387BCo .rodata:0005921D ALIGN 0x10 .rodata:00059220 aGconv_builtin_ DCB "gconv_builtin.c",0 ; DATA XREF: __gconv_get_builtin_trans+48o .rodata:00059220 ; .text:off_387C0o .rodata:00059230 a__gconv_get_bu DCB "__gconv_get_builtin_trans",0 .rodata:00059230 ; DATA XREF: __gconv_get_builtin_trans+4Co .rodata:00059230 ; .text:off_387C4o .rodata:0005924A ALIGN 4 .rodata:0005924C aOutbufstartVoi DCB "outbufstart == ((void *)0)",0 .rodata:0005924C ; DATA XREF: __gconv_transform_internal_ucs4+60o .rodata:0005924C ; __gconv_transform_internal_ucs4+128o ... .rodata:00059267 ALIGN 4 .rodata:00059268 a__IconvSkeleto DCB "../iconv/skeleton.c",0 .rodata:00059268 ; DATA XREF: __gconv_transform_internal_ucs4+64o .rodata:00059268 ; __gconv_transform_internal_ucs4+12Co ... .rodata:0005927C a__gconv_transf DCB "__gconv_transform_internal_ucs4",0 .rodata:0005927C ; DATA XREF: __gconv_transform_internal_ucs4+68o .rodata:0005927C ; __gconv_transform_internal_ucs4+134o ... .rodata:0005929C aInendInptrp4 DCB "inend - *inptrp < 4",0 .rodata:0005929C ; DATA XREF: __gconv_transform_internal_ucs4+4A4o .rodata:0005929C ; __gconv_transform_internal_ucs4:off_38C98o ... .rodata:000592B0 a__gconv_tran_0 DCB "__gconv_transform_ucs4_internal",0 .rodata:000592B0 ; DATA XREF: __gconv_transform_ucs4_internal+68o .rodata:000592B0 ; __gconv_transform_ucs4_internal+150o ... .rodata:000592D0 a__gconv_tran_1 DCB "__gconv_transform_internal_ucs4le",0 .rodata:000592D0 ; DATA XREF: __gconv_transform_internal_ucs4le+68o .rodata:000592D0 ; __gconv_transform_internal_ucs4le+12Co ... .rodata:000592F2 ALIGN 4 .rodata:000592F4 a__gconv_tran_2 DCB "__gconv_transform_ucs4le_internal",0 .rodata:000592F4 ; DATA XREF: __gconv_transform_ucs4le_internal+68o .rodata:000592F4 ; __gconv_transform_ucs4le_internal+150o ... .rodata:00059316 ALIGN 4 .rodata:00059318 a__gconv_tran_3 DCB "__gconv_transform_ascii_internal",0 .rodata:00059318 ; DATA XREF: __gconv_transform_ascii_internal+68o .rodata:00059318 ; __gconv_transform_ascii_internal:off_3A0C4o .rodata:00059339 ALIGN 4 .rodata:0005933C aInptrBytebufSt DCB "inptr - bytebuf > (state->__count & 7)",0 .rodata:0005933C ; DATA XREF: __gconv_transform_internal_ascii+338o .rodata:0005933C ; __gconv_transform_internal_ascii:off_3A4FCo ... .rodata:00059363 ALIGN 4 .rodata:00059364 a__IconvLoop_c DCB "../iconv/loop.c",0 ; DATA XREF: __gconv_transform_internal_ascii+33Co .rodata:00059364 ; __gconv_transform_internal_ascii+394o ... .rodata:00059374 aInternal_ascii DCB "internal_ascii_loop_single",0 .rodata:00059374 ; DATA XREF: __gconv_transform_internal_ascii+340o .rodata:00059374 ; __gconv_transform_internal_ascii+39Co ... .rodata:0005938F ALIGN 0x10 .rodata:00059390 aInendBytebuf4 DCB "inend != &bytebuf[4]",0 .rodata:00059390 ; DATA XREF: __gconv_transform_internal_ascii+390o .rodata:00059390 ; __gconv_transform_internal_ascii:off_3A508o ... .rodata:000593A5 ALIGN 4 .rodata:000593A8 a__gconv_tran_4 DCB "__gconv_transform_internal_ascii",0 .rodata:000593A8 ; DATA XREF: __gconv_transform_internal_ascii+6Co .rodata:000593A8 ; __gconv_transform_internal_ascii+150o ... .rodata:000593C9 ALIGN 4 .rodata:000593CC aWc0x7fffffff DCB "wc <= 0x7fffffff",0 .rodata:000593CC ; DATA XREF: __gconv_transform_internal_utf8+214o .rodata:000593CC ; __gconv_transform_internal_utf8+40Co ... .rodata:000593DD ALIGN 0x10 .rodata:000593E0 aInternal_utf_0 DCB "internal_utf8_loop",0 .rodata:000593E0 ; DATA XREF: __gconv_transform_internal_utf8+418o .rodata:000593E0 ; __gconv_transform_internal_utf8:off_3AC98o ... .rodata:000593F3 ALIGN 4 .rodata:000593F4 aInternal_utf8_ DCB "internal_utf8_loop_single",0 .rodata:000593F4 ; DATA XREF: __gconv_transform_internal_utf8+220o .rodata:000593F4 ; __gconv_transform_internal_utf8+2E4o ... .rodata:0005940E ALIGN 0x10 .rodata:00059410 a__gconv_tran_5 DCB "__gconv_transform_internal_utf8",0 .rodata:00059410 ; DATA XREF: __gconv_transform_internal_utf8+68o .rodata:00059410 ; __gconv_transform_internal_utf8+134o ... .rodata:00059430 aOutbufOuterr DCB "outbuf == outerr",0 .rodata:00059430 ; DATA XREF: __gconv_transform_internal_utf8+760o .rodata:00059430 ; __gconv_transform_internal_utf8:off_3B07Co ... .rodata:00059441 ALIGN 4 .rodata:00059444 aNstatus__gconv DCB "nstatus == __GCONV_FULL_OUTPUT",0 .rodata:00059444 ; DATA XREF: __gconv_transform_internal_utf8+784o .rodata:00059444 ; __gconv_transform_internal_utf8:off_3B088o ... .rodata:00059463 ALIGN 4 .rodata:00059464 aUtf8_internal_ DCB "utf8_internal_loop_single",0 .rodata:00059464 ; DATA XREF: __gconv_transform_utf8_internal+580o .rodata:00059464 ; __gconv_transform_utf8_internal+5E0o ... .rodata:0005947E ALIGN 0x10 .rodata:00059480 aInendBytebuf6 DCB "inend != &bytebuf[6]",0 .rodata:00059480 ; DATA XREF: __gconv_transform_utf8_internal+5D4o .rodata:00059480 ; __gconv_transform_utf8_internal:off_3B9C8o .rodata:00059495 ALIGN 4 .rodata:00059498 a__gconv_tran_6 DCB "__gconv_transform_utf8_internal",0 .rodata:00059498 ; DATA XREF: __gconv_transform_utf8_internal+70o .rodata:00059498 ; __gconv_transform_utf8_internal+164o ... .rodata:000594B8 aUcs2_internal_ DCB "ucs2_internal_loop_single",0 .rodata:000594B8 ; DATA XREF: __gconv_transform_ucs2_internal+2CCo .rodata:000594B8 ; __gconv_transform_ucs2_internal+330o ... .rodata:000594D2 ALIGN 4 .rodata:000594D4 aInendBytebuf2 DCB "inend != &bytebuf[2]",0 .rodata:000594D4 ; DATA XREF: __gconv_transform_ucs2_internal+324o .rodata:000594D4 ; __gconv_transform_ucs2_internal:off_3C304o ... .rodata:000594E9 ALIGN 4 .rodata:000594EC a__gconv_tran_7 DCB "__gconv_transform_ucs2_internal",0 .rodata:000594EC ; DATA XREF: __gconv_transform_ucs2_internal+6Co .rodata:000594EC ; __gconv_transform_ucs2_internal+15Co ... .rodata:0005950C aInternal_ucs2_ DCB "internal_ucs2_loop_single",0 .rodata:0005950C ; DATA XREF: __gconv_transform_internal_ucs2+39Co .rodata:0005950C ; __gconv_transform_internal_ucs2+3FCo ... .rodata:00059526 ALIGN 4 .rodata:00059528 a__gconv_tran_8 DCB "__gconv_transform_internal_ucs2",0 .rodata:00059528 ; DATA XREF: __gconv_transform_internal_ucs2+6Co .rodata:00059528 ; __gconv_transform_internal_ucs2+15Co ... .rodata:00059548 aUcs2reverse_in DCB "ucs2reverse_internal_loop_single",0 .rodata:00059548 ; DATA XREF: __gconv_transform_ucs2reverse_internal+2CCo .rodata:00059548 ; __gconv_transform_ucs2reverse_internal+330o ... .rodata:00059569 ALIGN 4 .rodata:0005956C a__gconv_tran_9 DCB "__gconv_transform_ucs2reverse_internal",0 .rodata:0005956C ; DATA XREF: __gconv_transform_ucs2reverse_internal+6Co .rodata:0005956C ; __gconv_transform_ucs2reverse_internal+15Co ... .rodata:00059593 ALIGN 4 .rodata:00059594 aInternal_ucs2r DCB "internal_ucs2reverse_loop_single",0 .rodata:00059594 ; DATA XREF: __gconv_transform_internal_ucs2reverse+3ACo .rodata:00059594 ; __gconv_transform_internal_ucs2reverse+40Co ... .rodata:000595B5 ALIGN 4 .rodata:000595B8 a__gconv_tra_10 DCB "__gconv_transform_internal_ucs2reverse",0 .rodata:000595B8 ; DATA XREF: __gconv_transform_internal_ucs2reverse+6Co .rodata:000595B8 ; __gconv_transform_internal_ucs2reverse+15Co ... .rodata:000595DF ALIGN 0x10 .rodata:000595E0 aGconv_trans_co DCB "gconv_trans_context",0 ; DATA XREF: open_translit+28o .rodata:000595E0 ; .text:off_3E68Co .rodata:000595F4 aGconv_trans DCB "gconv_trans",0 ; DATA XREF: open_translit+74o .rodata:000595F4 ; .text:off_3E690o .rodata:00059600 aGconv_trans_in DCB "gconv_trans_init",0 ; DATA XREF: open_translit+8Co .rodata:00059600 ; .text:off_3E694o .rodata:00059611 ALIGN 4 .rodata:00059614 aGconv_trans_en DCB "gconv_trans_end",0 ; DATA XREF: open_translit+ACo .rodata:00059614 ; .text:off_3E698o .rodata:00059624 aTransNameVoid0 DCB "trans->name != ((void *)0)",0 .rodata:00059624 ; DATA XREF: __gconv_translit_find+20o .rodata:00059624 ; .text:off_3E89Co .rodata:0005963F ALIGN 0x10 .rodata:00059640 aGconv_trans_c DCB "gconv_trans.c",0 ; DATA XREF: __gconv_translit_find+24o .rodata:00059640 ; .text:off_3E8A0o .rodata:0005964E ALIGN 0x10 .rodata:00059650 a__gconv_transl DCB "__gconv_translit_find",0 .rodata:00059650 ; DATA XREF: __gconv_translit_find+2Co .rodata:00059650 ; .text:off_3E8A4o .rodata:00059666 ALIGN 4 .rodata:00059668 a_so DCB ".so",0 ; DATA XREF: __gconv_translit_find+108o .rodata:00059668 ; __gconv_translit_find+19Co ... .rodata:0005966C aFoundHandleVoi DCB "found->handle == ((void *)0)",0 .rodata:0005966C ; DATA XREF: __gconv_find_shlib+9Co .rodata:0005966C ; __gconv_find_shlib:off_3EA08o .rodata:00059689 ALIGN 4 .rodata:0005968C aGconv_dl_c DCB "gconv_dl.c",0 ; DATA XREF: __gconv_find_shlib+A0o .rodata:0005968C ; __gconv_find_shlib:off_3EA0Co ... .rodata:00059697 ALIGN 4 .rodata:00059698 a__gconv_find_s DCB "__gconv_find_shlib",0 .rodata:00059698 ; DATA XREF: __gconv_find_shlib+A4o .rodata:00059698 ; __gconv_find_shlib:off_3EA10o .rodata:000596AB ALIGN 4 .rodata:000596AC aGconv DCB "gconv",0 ; DATA XREF: __gconv_find_shlib+C4o .rodata:000596AC ; __gconv_find_shlib:off_3EA14o .rodata:000596B2 ALIGN 4 .rodata:000596B4 aGconv_init DCB "gconv_init",0 ; DATA XREF: __gconv_find_shlib+F0o .rodata:000596B4 ; __gconv_find_shlib:off_3EA18o .rodata:000596BF ALIGN 0x10 .rodata:000596C0 aGconv_end DCB "gconv_end",0 ; DATA XREF: __gconv_find_shlib+100o .rodata:000596C0 ; __gconv_find_shlib:off_3EA1Co .rodata:000596CA ALIGN 4 .rodata:000596CC aObjCounter0 DCB "obj->counter > 0",0 ; DATA XREF: do_release_shlib+48o .rodata:000596CC ; .text:off_3EAE8o .rodata:000596DD ALIGN 0x10 .rodata:000596E0 aDo_release_shl DCB "do_release_shlib",0 ; DATA XREF: do_release_shlib+50o .rodata:000596E0 ; .text:off_3EAF0o .rodata:000596F1 ALIGN 4 .rodata:000596F4 EXPORT _nl_current .rodata:000596F4 _nl_current DCB 0xFC, 0xBC, 6, 0, 8, 0xBD, 6, 0, 0xC, 0xBD, 6, 0, 0x28 .rodata:000596F4 ; DATA XREF: _nl_init_domain_conv:loc_18ACCo .rodata:000596F4 ; _nl_init_domain_conv+114r ... .rodata:000596F4 DCB 0xBD, 6, 0, 4, 0xBD, 6, 0, 0, 0xBD, 6, 0, 0xFF, 0xFF .rodata:000596F4 DCB 0xFF, 0xFF, 0x10, 0xBD, 6, 0, 0x14, 0xBD, 6, 0, 0x18 .rodata:000596F4 DCB 0xBD, 6, 0, 0x1C, 0xBD, 6, 0, 0x20, 0xBD, 6, 0, 0x24 .rodata:000596F4 DCB 0xBD, 6, 0 .rodata:00059728 EXPORT _nl_C .rodata:00059728 _nl_C DCB 0x8C, 1, 6, 0, 4, 5, 6, 0, 0x44, 5, 6, 0, 0x98, 0x15 .rodata:00059728 ; DATA XREF: free_mem_7+2Co .rodata:00059728 ; .text:off_3F4A8o ... .rodata:00059728 DCB 6, 0, 0x28, 4, 6, 0, 0xDC, 3, 6, 0, 0, 0, 0, 0, 0x28 .rodata:00059728 DCB 0xD, 6, 0, 0x54, 0xD, 6, 0, 0xA4, 0xD, 6, 0, 0x28 .rodata:00059728 DCB 0xE, 6, 0, 0x6C, 0xE, 6, 0, 0x98, 0xE, 6, 0 .rodata:0005975C EXPORT _nl_category_names .rodata:0005975C _nl_category_names DCB 0x24, 0x98, 5, 0, 0x18, 0x98, 5, 0, 0x10, 0x98, 5 .rodata:0005975C ; DATA XREF: setlocale+128o .rodata:0005975C ; setlocale+390o ... .rodata:0005975C DCB 0, 4, 0x98, 5, 0, 0xF8, 0x97, 5, 0, 0xEC, 0x97, 5 .rodata:0005975C DCB 0, 0xE4, 0x97, 5, 0, 0xD8, 0x97, 5, 0, 0xD0, 0x97 .rodata:0005975C DCB 5, 0, 0xC4, 0x97, 5, 0, 0xB4, 0x97, 5, 0, 0xA4, 0x97 .rodata:0005975C DCB 5, 0, 0x90, 0x97, 5, 0 .rodata:00059790 aLc_identificat DCB "LC_IDENTIFICATION",0 .rodata:000597A2 ALIGN 4 .rodata:000597A4 aLc_measurement DCB "LC_MEASUREMENT",0 .rodata:000597B3 ALIGN 4 .rodata:000597B4 aLc_telephone DCB "LC_TELEPHONE",0 .rodata:000597C1 ALIGN 4 .rodata:000597C4 aLc_address DCB "LC_ADDRESS",0 .rodata:000597CF ALIGN 0x10 .rodata:000597D0 aLc_name DCB "LC_NAME",0 .rodata:000597D8 aLc_paper DCB "LC_PAPER",0 .rodata:000597E1 ALIGN 4 .rodata:000597E4 aLc_all_1 DCB "LC_ALL",0 .rodata:000597EB ALIGN 4 .rodata:000597EC aLc_messages_0 DCB "LC_MESSAGES",0 .rodata:000597F8 aLc_monetary_0 DCB "LC_MONETARY",0 .rodata:00059804 aLc_collate_0 DCB "LC_COLLATE",0 .rodata:0005980F ALIGN 0x10 .rodata:00059810 aLc_time_0 DCB "LC_TIME",0 .rodata:00059818 aLc_numeric_0 DCB "LC_NUMERIC",0 .rodata:00059823 ALIGN 4 .rodata:00059824 aLc_ctype_0 DCB "LC_CTYPE",0 .rodata:0005982D ALIGN 0x10 .rodata:00059830 EXPORT _nl_category_name_sizes .rodata:00059830 _nl_category_name_sizes DCB 8, 0, 0, 0, 0xA, 0, 0, 0, 7, 0, 0, 0, 0xA, 0, 0, 0 .rodata:00059830 ; DATA XREF: setlocale:loc_3ECA0o .rodata:00059830 ; setlocale+2D0o ... .rodata:00059830 DCB 0xB, 0, 0, 0, 0xB, 0, 0, 0, 6, 0, 0, 0, 8, 0, 0, 0 .rodata:00059830 DCB 7, 0, 0, 0, 0xA, 0, 0, 0, 0xC, 0, 0, 0, 0xE, 0, 0 .rodata:00059830 DCB 0, 0x11, 0, 0, 0 .rodata:00059864 _nl_category_postload DCB 0xBC, 0xFF, 3, 0, 0, 0, 0, 0, 0xBC, 0, 4, 0, 0, 0 .rodata:00059864 ; DATA XREF: setlocale+43Co .rodata:00059864 ; setlocale:off_3F2E0o ... .rodata:00059864 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00059864 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00059864 DCB 0, 0, 0, 0 .rodata:00059898 aLocpath DCB "LOCPATH",0 ; DATA XREF: setlocale+64o .rodata:00059898 ; setlocale:off_3EF58o .rodata:000598A0 aUsrLocalArm2_0 DCB "/usr/local/arm/2.95.3/arm-linux/lib/locale",0 .rodata:000598A0 ; DATA XREF: setlocale+A8o .rodata:000598A0 ; setlocale:off_3EF5Co .rodata:000598CB ALIGN 4 .rodata:000598CC aLc_all_0 DCB "LC_ALL",0 ; DATA XREF: _nl_find_locale+30o .rodata:000598CC ; _nl_find_locale:off_3F88Co .rodata:000598D3 ALIGN 4 .rodata:000598D4 aLang DCB "LANG",0 ; DATA XREF: _nl_find_locale:loc_3F560o .rodata:000598D4 ; _nl_find_locale:off_3F894o .rodata:000598D9 ALIGN 4 .rodata:000598DC codeset_idx.96 DCD 0xE, 5, 0x6E, 0x12, 0x2D, 4, 0 .rodata:000598DC ; DATA XREF: _nl_find_locale+2FCo .rodata:000598DC ; _nl_find_locale:off_3F8ACo .rodata:000598F8 DCD 2, 6, 0xC, 4, 1, 0xF .rodata:00059910 aLocale_codeset DCB "locale_codeset != ((void *)0)",0 .rodata:00059910 ; DATA XREF: _nl_find_locale+318o .rodata:00059910 ; _nl_find_locale:off_3F8B0o .rodata:0005992E ALIGN 0x10 .rodata:00059930 aFindlocale_c DCB "findlocale.c",0 ; DATA XREF: _nl_find_locale+31Co .rodata:00059930 ; _nl_find_locale:off_3F8B4o .rodata:0005993D ALIGN 0x10 .rodata:00059940 a_nl_find_local DCB "_nl_find_locale",0 ; DATA XREF: _nl_find_locale+320o .rodata:00059940 ; _nl_find_locale:off_3F8B8o .rodata:00059950 aTranslit_2 DCB "TRANSLIT",0 ; DATA XREF: _nl_find_locale+590o .rodata:00059950 ; _nl_find_locale+5ACo ... .rodata:00059959 ALIGN 4 .rodata:0005995C _nl_category_num_items DCB 0x54, 0, 0, 0, 6, 0, 0, 0, 0x6F, 0, 0, 0, 0x13, 0 .rodata:0005995C ; DATA XREF: _nl_load_locale:loc_3FE1Co .rodata:0005995C ; _nl_load_locale:off_3FF10o .rodata:0005995C DCB 0, 0, 0x2E, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 3, 0 .rodata:0005995C DCB 0, 0, 7, 0, 0, 0, 0xD, 0, 0, 0, 5, 0, 0, 0, 2, 0, 0 .rodata:0005995C DCB 0, 0x10, 0, 0, 0 .rodata:00059990 _nl_value_type_LC_COLLATE DCB 5, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 8 .rodata:00059990 DCB 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00059990 DCB 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0 .rodata:00059990 DCB 0, 5, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0 .rodata:00059990 DCB 8, 0, 0, 0, 1, 0, 0, 0 .rodata:000599DC _nl_value_type_LC_CTYPE DCB 8, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0 .rodata:000599DC DCB 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:000599DC DCB 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 4, 0, 0 .rodata:000599DC DCB 0, 5, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0 .rodata:000599DC DCB 5, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, 1 .rodata:000599DC DCB 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0 .rodata:000599DC DCB 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0 .rodata:000599DC DCB 0, 5, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0 .rodata:000599DC DCB 8, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 8 .rodata:000599DC DCB 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 1, 0 .rodata:000599DC DCB 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0 .rodata:000599DC DCB 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 .rodata:000599DC DCB 5, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 5 .rodata:000599DC DCB 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 5, 0 .rodata:000599DC DCB 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0 .rodata:000599DC DCB 0, 8, 0, 0, 0, 8, 0, 0, 0, 5, 0, 0, 0, 8, 0, 0, 0 .rodata:000599DC DCB 5, 0, 0, 0, 1, 0, 0, 0 .rodata:00059AF4 _nl_value_type_LC_MONETARY DCB 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 4 .rodata:00059AF4 DCB 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 3, 0 .rodata:00059AF4 DCB 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0 .rodata:00059AF4 DCB 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0 .rodata:00059AF4 DCB 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3 .rodata:00059AF4 DCB 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 3, 0 .rodata:00059AF4 DCB 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0 .rodata:00059AF4 DCB 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0 .rodata:00059AF4 DCB 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 5 .rodata:00059AF4 DCB 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 7, 0 .rodata:00059AF4 DCB 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0 .rodata:00059BAC _nl_value_type_LC_NUMERIC DCB 1, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 5 .rodata:00059BAC DCB 0, 0, 0, 1, 0, 0, 0 .rodata:00059BC4 _nl_value_type_LC_TIME DCB 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00059BC4 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0 .rodata:00059BC4 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00059BC4 DCB 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00059BC4 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00059BC4 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00059BC4 DCB 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00059BC4 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00059BC4 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2 .rodata:00059BC4 DCB 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0 .rodata:00059BC4 DCB 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0 .rodata:00059BC4 DCB 0, 6, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0 .rodata:00059BC4 DCB 1, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00059BC4 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0 .rodata:00059BC4 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00059BC4 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0 .rodata:00059BC4 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00059BC4 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00059BC4 DCB 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00059BC4 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00059BC4 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00059BC4 DCB 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 8, 0 .rodata:00059BC4 DCB 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0 .rodata:00059BC4 DCB 0, 0xA, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 3, 0, 0, 0 .rodata:00059BC4 DCB 5, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3 .rodata:00059BC4 DCB 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 1, 0 .rodata:00059BC4 DCB 0, 0 .rodata:00059D80 _nl_value_type_LC_MESSAGES DCB 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1 .rodata:00059D80 DCB 0, 0, 0 .rodata:00059D94 _nl_value_type_LC_PAPER DCB 5, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0 .rodata:00059DA0 _nl_value_type_LC_NAME DCB 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1 .rodata:00059DA0 DCB 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 .rodata:00059DBC _nl_value_type_LC_ADDRESS DCB 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1 .rodata:00059DBC DCB 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, 1, 0 .rodata:00059DBC DCB 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0 .rodata:00059DBC DCB 0 .rodata:00059DF0 _nl_value_type_LC_TELEPHONE DCB 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1 .rodata:00059DF0 DCB 0, 0, 0 .rodata:00059E04 _nl_value_type_LC_MEASUREMENT DCQ 0x100000003 .rodata:00059E0C _nl_value_type_LC_IDENTIFICATION DCB 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1 .rodata:00059E0C DCB 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0 .rodata:00059E0C DCB 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0 .rodata:00059E0C DCB 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0 .rodata:00059E4C aSys_ DCB "/SYS_",0 ; DATA XREF: _nl_load_locale+B0o .rodata:00059E4C ; _nl_load_locale:off_3FF08o .rodata:00059E52 ALIGN 4 .rodata:00059E54 aIdx__alignof__ DCB "idx % __alignof__ (u_int32_t) == 0",0 .rodata:00059E54 ; DATA XREF: _nl_load_locale+2E4o .rodata:00059E54 ; _nl_load_locale:off_3FF18o .rodata:00059E77 ALIGN 4 .rodata:00059E78 aLoadlocale_c DCB "loadlocale.c",0 ; DATA XREF: _nl_load_locale+2E8o .rodata:00059E78 ; _nl_load_locale:off_3FF1Co .rodata:00059E85 ALIGN 4 .rodata:00059E88 a_nl_load_local DCB "_nl_load_locale",0 ; DATA XREF: _nl_load_locale+2ECo .rodata:00059E88 ; _nl_load_locale:off_3FF20o .rodata:00059E98 translit_from_idx DCB 0, 0, 0, 0, 2, 0, 0, 0, 4, 0, 0, 0, 6, 0, 0, 0, 8 .rodata:00059E98 DCB 0, 0, 0, 0xA, 0, 0, 0, 0xC, 0, 0, 0, 0xE, 0, 0, 0 .rodata:00059E98 DCB 0x10, 0, 0, 0, 0x12, 0, 0, 0, 0x14, 0, 0, 0, 0x16 .rodata:00059E98 DCB 0, 0, 0, 0x18, 0, 0, 0, 0x1A, 0, 0, 0, 0x1C, 0, 0 .rodata:00059E98 DCB 0, 0x1E, 0, 0, 0, 0x20, 0, 0, 0, 0x22, 0, 0, 0, 0x24 .rodata:00059E98 DCB 0, 0, 0, 0x26, 0, 0, 0, 0x28, 0, 0, 0, 0x2A, 0, 0 .rodata:00059E98 DCB 0, 0x2C, 0, 0, 0, 0x2E, 0, 0, 0, 0x30, 0, 0, 0, 0x32 .rodata:00059E98 DCB 0, 0, 0, 0x34, 0, 0, 0, 0x36, 0, 0, 0, 0x38, 0, 0 .rodata:00059E98 DCB 0, 0x3A, 0, 0, 0, 0x3C, 0, 0, 0, 0x3E, 0, 0, 0, 0x40 .rodata:00059E98 DCB 0, 0, 0, 0x42, 0, 0, 0, 0x44, 0, 0, 0, 0x46, 0, 0 .rodata:00059E98 DCB 0, 0x48, 0, 0, 0, 0x4A, 0, 0, 0, 0x4C, 0, 0, 0, 0x4E .rodata:00059E98 DCB 0, 0, 0, 0x50, 0, 0, 0, 0x52, 0, 0, 0, 0x54, 0, 0 .rodata:00059E98 DCB 0, 0x56, 0, 0, 0, 0x58, 0, 0, 0, 0x5A, 0, 0, 0, 0x5C .rodata:00059E98 DCB 0, 0, 0, 0x5E, 0, 0, 0, 0x60, 0, 0, 0, 0x62, 0, 0 .rodata:00059E98 DCB 0, 0x64, 0, 0, 0, 0x66, 0, 0, 0, 0x68, 0, 0, 0, 0x6A .rodata:00059E98 DCB 0, 0, 0, 0x6C, 0, 0, 0, 0x6E, 0, 0, 0, 0x70, 0, 0 .rodata:00059E98 DCB 0, 0x72, 0, 0, 0, 0x74, 0, 0, 0, 0x76, 0, 0, 0, 0x78 .rodata:00059E98 DCB 0, 0, 0, 0x7A, 0, 0, 0, 0x7C, 0, 0, 0, 0x7E, 0, 0 .rodata:00059E98 DCB 0, 0x80, 0, 0, 0, 0x82, 0, 0, 0, 0x84, 0, 0, 0, 0x86 .rodata:00059E98 DCB 0, 0, 0, 0x88, 0, 0, 0, 0x8A, 0, 0, 0, 0x8C, 0, 0 .rodata:00059E98 DCB 0, 0x8E, 0, 0, 0, 0x90, 0, 0, 0, 0x92, 0, 0, 0, 0x94 .rodata:00059E98 DCB 0, 0, 0, 0x96, 0, 0, 0, 0x98, 0, 0, 0, 0x9A, 0, 0 .rodata:00059E98 DCB 0, 0x9C, 0, 0, 0, 0x9E, 0, 0, 0, 0xA0, 0, 0, 0, 0xA2 .rodata:00059E98 DCB 0, 0, 0, 0xA4, 0, 0, 0, 0xA6, 0, 0, 0, 0xA8, 0, 0 .rodata:00059E98 DCB 0, 0xAA, 0, 0, 0, 0xAC, 0, 0, 0, 0xAE, 0, 0, 0, 0xB0 .rodata:00059E98 DCB 0, 0, 0, 0xB2, 0, 0, 0, 0xB4, 0, 0, 0, 0xB6, 0, 0 .rodata:00059E98 DCB 0, 0xB8, 0, 0, 0, 0xBA, 0, 0, 0, 0xBC, 0, 0, 0, 0xBE .rodata:00059E98 DCB 0, 0, 0, 0xC0, 0, 0, 0, 0xC2, 0, 0, 0, 0xC4, 0, 0 .rodata:00059E98 DCB 0, 0xC6, 0, 0, 0, 0xC8, 0, 0, 0, 0xCA, 0, 0, 0, 0xCC .rodata:00059E98 DCB 0, 0, 0, 0xCE, 0, 0, 0, 0xD0, 0, 0, 0, 0xD2, 0, 0 .rodata:00059E98 DCB 0, 0xD4, 0, 0, 0, 0xD6, 0, 0, 0, 0xD8, 0, 0, 0, 0xDA .rodata:00059E98 DCB 0, 0, 0, 0xDC, 0, 0, 0, 0xDE, 0, 0, 0, 0xE0, 0, 0 .rodata:00059E98 DCB 0, 0xE2, 0, 0, 0, 0xE4, 0, 0, 0, 0xE6, 0, 0, 0, 0xE8 .rodata:00059E98 DCB 0, 0, 0, 0xEA, 0, 0, 0, 0xEC, 0, 0, 0, 0xEE, 0, 0 .rodata:00059E98 DCB 0, 0xF0, 0, 0, 0, 0xF2, 0, 0, 0, 0xF4, 0, 0, 0, 0xF6 .rodata:00059E98 DCB 0, 0, 0, 0xF8, 0, 0, 0, 0xFA, 0, 0, 0, 0xFC, 0, 0 .rodata:00059E98 DCB 0, 0xFE, 0, 0, 0, 0, 1, 0, 0, 2, 1, 0, 0, 4, 1, 0 .rodata:00059E98 DCB 0, 6, 1, 0, 0, 8, 1, 0, 0, 0xA, 1, 0, 0, 0xC, 1, 0 .rodata:00059E98 DCB 0, 0xE, 1, 0, 0, 0x10, 1, 0, 0, 0x12, 1, 0, 0, 0x14 .rodata:00059E98 DCB 1, 0, 0, 0x16, 1, 0, 0, 0x18, 1, 0, 0, 0x1A, 1, 0 .rodata:00059E98 DCB 0, 0x1C, 1, 0, 0, 0x1E, 1, 0, 0, 0x20, 1, 0, 0, 0x22 .rodata:00059E98 DCB 1, 0, 0, 0x24, 1, 0, 0, 0x26, 1, 0, 0, 0x28, 1, 0 .rodata:00059E98 DCB 0, 0x2A, 1, 0, 0, 0x2C, 1, 0, 0, 0x2E, 1, 0, 0, 0x30 .rodata:00059E98 DCB 1, 0, 0, 0x32, 1, 0, 0, 0x34, 1, 0, 0, 0x36, 1, 0 .rodata:00059E98 DCB 0, 0x38, 1, 0, 0, 0x3A, 1, 0, 0, 0x3C, 1, 0, 0, 0x3E .rodata:00059E98 DCB 1, 0, 0, 0x40, 1, 0, 0, 0x42, 1, 0, 0, 0x44, 1, 0 .rodata:00059E98 DCB 0, 0x46, 1, 0, 0, 0x48, 1, 0, 0, 0x4A, 1, 0, 0, 0x4C .rodata:00059E98 DCB 1, 0, 0, 0x4E, 1, 0, 0, 0x50, 1, 0, 0, 0x52, 1, 0 .rodata:00059E98 DCB 0, 0x54, 1, 0, 0, 0x56, 1, 0, 0, 0x58, 1, 0, 0, 0x5A .rodata:00059E98 DCB 1, 0, 0, 0x5C, 1, 0, 0, 0x5E, 1, 0, 0, 0x60, 1, 0 .rodata:00059E98 DCB 0, 0x62, 1, 0, 0, 0x64, 1, 0, 0, 0x66, 1, 0, 0, 0x68 .rodata:00059E98 DCB 1, 0, 0, 0x6A, 1, 0, 0, 0x6C, 1, 0, 0, 0x6E, 1, 0 .rodata:00059E98 DCB 0, 0x70, 1, 0, 0, 0x72, 1, 0, 0, 0x74, 1, 0, 0, 0x76 .rodata:00059E98 DCB 1, 0, 0, 0x78, 1, 0, 0, 0x7A, 1, 0, 0, 0x7C, 1, 0 .rodata:00059E98 DCB 0, 0x7E, 1, 0, 0, 0x80, 1, 0, 0, 0x82, 1, 0, 0, 0x84 .rodata:00059E98 DCB 1, 0, 0, 0x86, 1, 0, 0, 0x88, 1, 0, 0, 0x8A, 1, 0 .rodata:00059E98 DCB 0, 0x8C, 1, 0, 0, 0x8E, 1, 0, 0, 0x90, 1, 0, 0, 0x92 .rodata:00059E98 DCB 1, 0, 0, 0x94, 1, 0, 0, 0x96, 1, 0, 0, 0x98, 1, 0 .rodata:00059E98 DCB 0, 0x9A, 1, 0, 0, 0x9C, 1, 0, 0, 0x9E, 1, 0, 0, 0xA0 .rodata:00059E98 DCB 1, 0, 0, 0xA2, 1, 0, 0, 0xA4, 1, 0, 0, 0xA6, 1, 0 .rodata:00059E98 DCB 0, 0xA8, 1, 0, 0, 0xAA, 1, 0, 0, 0xAC, 1, 0, 0, 0xAE .rodata:00059E98 DCB 1, 0, 0, 0xB0, 1, 0, 0, 0xB2, 1, 0, 0, 0xB4, 1, 0 .rodata:00059E98 DCB 0, 0xB6, 1, 0, 0, 0xB8, 1, 0, 0, 0xBA, 1, 0, 0, 0xBC .rodata:00059E98 DCB 1, 0, 0, 0xBE, 1, 0, 0, 0xC0, 1, 0, 0, 0xC2, 1, 0 .rodata:00059E98 DCB 0, 0xC4, 1, 0, 0, 0xC6, 1, 0, 0, 0xC8, 1, 0, 0, 0xCA .rodata:00059E98 DCB 1, 0, 0, 0xCC, 1, 0, 0, 0xCE, 1, 0, 0, 0xD0, 1, 0 .rodata:00059E98 DCB 0, 0xD2, 1, 0, 0, 0xD4, 1, 0, 0, 0xD6, 1, 0, 0, 0xD8 .rodata:00059E98 DCB 1, 0, 0, 0xDA, 1, 0, 0, 0xDC, 1, 0, 0, 0xDE, 1, 0 .rodata:00059E98 DCB 0, 0xE0, 1, 0, 0, 0xE2, 1, 0, 0, 0xE4, 1, 0, 0, 0xE6 .rodata:00059E98 DCB 1, 0, 0, 0xE8, 1, 0, 0, 0xEA, 1, 0, 0, 0xEC, 1, 0 .rodata:00059E98 DCB 0, 0xEE, 1, 0, 0, 0xF0, 1, 0, 0, 0xF2, 1, 0, 0, 0xF4 .rodata:00059E98 DCB 1, 0, 0, 0xF6, 1, 0, 0, 0xF8, 1, 0, 0, 0xFA, 1, 0 .rodata:00059E98 DCB 0, 0xFC, 1, 0, 0, 0xFE, 1, 0, 0, 0, 2, 0, 0, 2, 2 .rodata:00059E98 DCB 0, 0, 4, 2, 0, 0, 6, 2, 0, 0, 8, 2, 0, 0, 0xA, 2, 0 .rodata:00059E98 DCB 0, 0xC, 2, 0, 0, 0xE, 2, 0, 0, 0x10, 2, 0, 0, 0x12 .rodata:00059E98 DCB 2, 0, 0, 0x14, 2, 0, 0, 0x16, 2, 0, 0, 0x18, 2, 0 .rodata:00059E98 DCB 0, 0x1A, 2, 0, 0, 0x1C, 2, 0, 0, 0x1E, 2, 0, 0, 0x20 .rodata:00059E98 DCB 2, 0, 0, 0x22, 2, 0, 0, 0x24, 2, 0, 0, 0x26, 2, 0 .rodata:00059E98 DCB 0, 0x28, 2, 0, 0, 0x2A, 2, 0, 0, 0x2C, 2, 0, 0, 0x2E .rodata:00059E98 DCB 2, 0, 0, 0x30, 2, 0, 0, 0x32, 2, 0, 0, 0x34, 2, 0 .rodata:00059E98 DCB 0, 0x36, 2, 0, 0, 0x38, 2, 0, 0, 0x3A, 2, 0, 0, 0x3C .rodata:00059E98 DCB 2, 0, 0, 0x3E, 2, 0, 0, 0x40, 2, 0, 0, 0x42, 2, 0 .rodata:00059E98 DCB 0, 0x44, 2, 0, 0, 0x46, 2, 0, 0, 0x48, 2, 0, 0, 0x4A .rodata:00059E98 DCB 2, 0, 0, 0x4C, 2, 0, 0, 0x4E, 2, 0, 0, 0x50, 2, 0 .rodata:00059E98 DCB 0, 0x52, 2, 0, 0, 0x54, 2, 0, 0, 0x56, 2, 0, 0, 0x58 .rodata:00059E98 DCB 2, 0, 0, 0x5A, 2, 0, 0, 0x5C, 2, 0, 0, 0x5E, 2, 0 .rodata:00059E98 DCB 0, 0x60, 2, 0, 0, 0x62, 2, 0, 0, 0x64, 2, 0, 0, 0x66 .rodata:00059E98 DCB 2, 0, 0, 0x68, 2, 0, 0, 0x6A, 2, 0, 0, 0x6C, 2, 0 .rodata:00059E98 DCB 0, 0x6E, 2, 0, 0, 0x70, 2, 0, 0, 0x72, 2, 0, 0, 0x74 .rodata:00059E98 DCB 2, 0, 0, 0x76, 2, 0, 0, 0x78, 2, 0, 0, 0x7A, 2, 0 .rodata:00059E98 DCB 0, 0x7C, 2, 0, 0, 0x7E, 2, 0, 0, 0x80, 2, 0, 0, 0x82 .rodata:00059E98 DCB 2, 0, 0, 0x84, 2, 0, 0, 0x86, 2, 0, 0, 0x88, 2, 0 .rodata:00059E98 DCB 0, 0x8A, 2, 0, 0, 0x8C, 2, 0, 0, 0x8E, 2, 0, 0, 0x90 .rodata:00059E98 DCB 2, 0, 0, 0x92, 2, 0, 0, 0x94, 2, 0, 0, 0x96, 2, 0 .rodata:00059E98 DCB 0, 0x98, 2, 0, 0, 0x9A, 2, 0, 0, 0x9C, 2, 0, 0, 0x9E .rodata:00059E98 DCB 2, 0, 0, 0xA0, 2, 0, 0, 0xA2, 2, 0, 0, 0xA4, 2, 0 .rodata:00059E98 DCB 0, 0xA6, 2, 0, 0, 0xA8, 2, 0, 0, 0xAA, 2, 0, 0, 0xAC .rodata:00059E98 DCB 2, 0, 0, 0xAE, 2, 0, 0, 0xB0, 2, 0, 0, 0xB2, 2, 0 .rodata:00059E98 DCB 0, 0xB4, 2, 0, 0, 0xB6, 2, 0, 0, 0xB8, 2, 0, 0, 0xBA .rodata:00059E98 DCB 2, 0, 0, 0xBC, 2, 0, 0, 0xBE, 2, 0, 0, 0xC0, 2, 0 .rodata:00059E98 DCB 0, 0xC2, 2, 0, 0, 0xC4, 2, 0, 0, 0xC6, 2, 0, 0, 0xC8 .rodata:00059E98 DCB 2, 0, 0, 0xCA, 2, 0, 0, 0xCC, 2, 0, 0, 0xCE, 2, 0 .rodata:00059E98 DCB 0, 0xD0, 2, 0, 0, 0xD2, 2, 0, 0, 0xD4, 2, 0, 0, 0xD6 .rodata:00059E98 DCB 2, 0, 0, 0xD8, 2, 0, 0, 0xDA, 2, 0, 0, 0xDC, 2, 0 .rodata:00059E98 DCB 0, 0xDE, 2, 0, 0, 0xE0, 2, 0, 0, 0xE2, 2, 0, 0, 0xE4 .rodata:00059E98 DCB 2, 0, 0, 0xE6, 2, 0, 0, 0xE8, 2, 0, 0, 0xEA, 2, 0 .rodata:00059E98 DCB 0, 0xEC, 2, 0, 0, 0xEE, 2, 0, 0, 0xF0, 2, 0, 0, 0xF2 .rodata:00059E98 DCB 2, 0, 0, 0xF4, 2, 0, 0, 0xF6, 2, 0, 0, 0xF8, 2, 0 .rodata:00059E98 DCB 0, 0xFA, 2, 0, 0, 0xFC, 2, 0, 0, 0xFE, 2, 0, 0, 0 .rodata:00059E98 DCB 3, 0, 0, 2, 3, 0, 0, 4, 3, 0, 0, 6, 3, 0, 0, 8, 3 .rodata:00059E98 DCB 0, 0, 0xA, 3, 0, 0, 0xC, 3, 0, 0, 0xE, 3, 0, 0, 0x10 .rodata:00059E98 DCB 3, 0, 0, 0x12, 3, 0, 0, 0x14, 3, 0, 0, 0x16, 3, 0 .rodata:00059E98 DCB 0, 0x18, 3, 0, 0, 0x1A, 3, 0, 0, 0x1C, 3, 0, 0, 0x1E .rodata:00059E98 DCB 3, 0, 0, 0x20, 3, 0, 0, 0x22, 3, 0, 0, 0x24, 3, 0 .rodata:00059E98 DCB 0, 0x26, 3, 0, 0, 0x28, 3, 0, 0, 0x2A, 3, 0, 0, 0x2C .rodata:00059E98 DCB 3, 0, 0, 0x2E, 3, 0, 0, 0x30, 3, 0, 0, 0x32, 3, 0 .rodata:00059E98 DCB 0, 0x34, 3, 0, 0, 0x36, 3, 0, 0, 0x38, 3, 0, 0, 0x3A .rodata:00059E98 DCB 3, 0, 0, 0x3C, 3, 0, 0, 0x3E, 3, 0, 0, 0x40, 3, 0 .rodata:00059E98 DCB 0, 0x42, 3, 0, 0, 0x44, 3, 0, 0, 0x46, 3, 0, 0, 0x48 .rodata:00059E98 DCB 3, 0, 0, 0x4A, 3, 0, 0, 0x4C, 3, 0, 0, 0x4E, 3, 0 .rodata:00059E98 DCB 0, 0x50, 3, 0, 0, 0x52, 3, 0, 0, 0x54, 3, 0, 0, 0x56 .rodata:00059E98 DCB 3, 0, 0, 0x58, 3, 0, 0, 0x5A, 3, 0, 0, 0x5C, 3, 0 .rodata:00059E98 DCB 0, 0x5E, 3, 0, 0, 0x60, 3, 0, 0, 0x62, 3, 0, 0, 0x64 .rodata:00059E98 DCB 3, 0, 0, 0x66, 3, 0, 0, 0x68, 3, 0, 0, 0x6A, 3, 0 .rodata:00059E98 DCB 0, 0x6C, 3, 0, 0, 0x6E, 3, 0, 0, 0x70, 3, 0, 0, 0x72 .rodata:00059E98 DCB 3, 0, 0, 0x74, 3, 0, 0, 0x76, 3, 0, 0, 0x78, 3, 0 .rodata:00059E98 DCB 0, 0x7A, 3, 0, 0, 0x7C, 3, 0, 0, 0x7E, 3, 0, 0, 0x80 .rodata:00059E98 DCB 3, 0, 0, 0x82, 3, 0, 0, 0x84, 3, 0, 0, 0x86, 3, 0 .rodata:00059E98 DCB 0, 0x88, 3, 0, 0, 0x8A, 3, 0, 0, 0x8C, 3, 0, 0, 0x8E .rodata:00059E98 DCB 3, 0, 0, 0x90, 3, 0, 0, 0x92, 3, 0, 0, 0x94, 3, 0 .rodata:00059E98 DCB 0, 0x96, 3, 0, 0, 0x98, 3, 0, 0, 0x9A, 3, 0, 0, 0x9C .rodata:00059E98 DCB 3, 0, 0, 0x9E, 3, 0, 0, 0xA0, 3, 0, 0, 0xA2, 3, 0 .rodata:00059E98 DCB 0, 0xA4, 3, 0, 0, 0xA6, 3, 0, 0, 0xA8, 3, 0, 0, 0xAA .rodata:00059E98 DCB 3, 0, 0, 0xAC, 3, 0, 0, 0xAE, 3, 0, 0, 0xB0, 3, 0 .rodata:00059E98 DCB 0, 0xB2, 3, 0, 0, 0xB4, 3, 0, 0, 0xB6, 3, 0, 0, 0xB8 .rodata:00059E98 DCB 3, 0, 0, 0xBA, 3, 0, 0, 0xBC, 3, 0, 0, 0xBE, 3, 0 .rodata:00059E98 DCB 0, 0xC0, 3, 0, 0, 0xC2, 3, 0, 0, 0xC4, 3, 0, 0, 0xC6 .rodata:00059E98 DCB 3, 0, 0, 0xC8, 3, 0, 0, 0xCA, 3, 0, 0, 0xCC, 3, 0 .rodata:00059E98 DCB 0, 0xCE, 3, 0, 0, 0xD0, 3, 0, 0, 0xD2, 3, 0, 0, 0xD4 .rodata:00059E98 DCB 3, 0, 0, 0xD6, 3, 0, 0, 0xD8, 3, 0, 0, 0xDA, 3, 0 .rodata:00059E98 DCB 0, 0xDC, 3, 0, 0, 0xDE, 3, 0, 0, 0xE0, 3, 0, 0, 0xE2 .rodata:00059E98 DCB 3, 0, 0, 0xE4, 3, 0, 0, 0xE6, 3, 0, 0, 0xE8, 3, 0 .rodata:00059E98 DCB 0, 0xEA, 3, 0, 0, 0xEC, 3, 0, 0, 0xEE, 3, 0, 0, 0xF0 .rodata:00059E98 DCB 3, 0, 0, 0xF2, 3, 0, 0, 0xF4, 3, 0, 0, 0xF6, 3, 0 .rodata:00059E98 DCB 0, 0xF8, 3, 0, 0, 0xFA, 3, 0, 0, 0xFC, 3, 0, 0, 0xFE .rodata:00059E98 DCB 3, 0, 0, 0, 4, 0, 0, 2, 4, 0, 0, 4, 4, 0, 0, 6, 4 .rodata:00059E98 DCB 0, 0, 8, 4, 0, 0, 0xA, 4, 0, 0, 0xC, 4, 0, 0, 0xE .rodata:00059E98 DCB 4, 0, 0, 0x10, 4, 0, 0, 0x12, 4, 0, 0, 0x14, 4, 0 .rodata:00059E98 DCB 0, 0x16, 4, 0, 0, 0x18, 4, 0, 0, 0x1A, 4, 0, 0, 0x1C .rodata:00059E98 DCB 4, 0, 0, 0x1E, 4, 0, 0, 0x20, 4, 0, 0, 0x22, 4, 0 .rodata:00059E98 DCB 0, 0x24, 4, 0, 0, 0x26, 4, 0, 0, 0x28, 4, 0, 0, 0x2A .rodata:00059E98 DCB 4, 0, 0, 0x2C, 4, 0, 0, 0x2E, 4, 0, 0, 0x30, 4, 0 .rodata:00059E98 DCB 0, 0x32, 4, 0, 0, 0x34, 4, 0, 0, 0x36, 4, 0, 0, 0x38 .rodata:00059E98 DCB 4, 0, 0, 0x3A, 4, 0, 0, 0x3C, 4, 0, 0, 0x3E, 4, 0 .rodata:00059E98 DCB 0, 0x40, 4, 0, 0, 0x42, 4, 0, 0, 0x44, 4, 0, 0, 0x46 .rodata:00059E98 DCB 4, 0, 0, 0x48, 4, 0, 0, 0x4A, 4, 0, 0, 0x4C, 4, 0 .rodata:00059E98 DCB 0, 0x4E, 4, 0, 0, 0x50, 4, 0, 0, 0x52, 4, 0, 0, 0x54 .rodata:00059E98 DCB 4, 0, 0, 0x56, 4, 0, 0, 0x58, 4, 0, 0, 0x5A, 4, 0 .rodata:00059E98 DCB 0, 0x5C, 4, 0, 0, 0x5E, 4, 0, 0, 0x60, 4, 0, 0, 0x62 .rodata:00059E98 DCB 4, 0, 0, 0x64, 4, 0, 0, 0x66, 4, 0, 0, 0x68, 4, 0 .rodata:00059E98 DCB 0, 0x6A, 4, 0, 0, 0x6C, 4, 0, 0, 0x6E, 4, 0, 0, 0x70 .rodata:00059E98 DCB 4, 0, 0, 0x72, 4, 0, 0, 0x74, 4, 0, 0, 0x76, 4, 0 .rodata:00059E98 DCB 0, 0x78, 4, 0, 0, 0x7A, 4, 0, 0, 0x7C, 4, 0, 0, 0x7E .rodata:00059E98 DCB 4, 0, 0, 0x80, 4, 0, 0, 0x82, 4, 0, 0, 0x84, 4, 0 .rodata:00059E98 DCB 0, 0x86, 4, 0, 0, 0x88, 4, 0, 0, 0x8A, 4, 0, 0, 0x8C .rodata:00059E98 DCB 4, 0, 0, 0x8E, 4, 0, 0, 0x90, 4, 0, 0, 0x92, 4, 0 .rodata:00059E98 DCB 0, 0x94, 4, 0, 0, 0x96, 4, 0, 0, 0x98, 4, 0, 0, 0x9A .rodata:00059E98 DCB 4, 0, 0 .rodata:0005A7D0 translit_from_tbl DCB 0xA0, 0, 0, 0, 0, 0, 0, 0, 0xA9, 0, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0xAB, 0, 0, 0, 0, 0, 0, 0, 0xAD, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0xAE, 0, 0, 0, 0, 0, 0, 0, 0xB5, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0xB8, 0, 0, 0, 0, 0, 0, 0, 0xBB, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0xBC, 0, 0, 0, 0, 0, 0, 0, 0xBD, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0xBE, 0, 0, 0, 0, 0, 0, 0, 0xC6, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0xD7, 0, 0, 0, 0, 0, 0, 0, 0xDF .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0, 0xE6, 0, 0, 0, 0, 0, 0, 0, 0x32 .rodata:0005A7D0 DCB 1, 0, 0, 0, 0, 0, 0, 0x33, 1, 0, 0, 0, 0, 0, 0, 0x49 .rodata:0005A7D0 DCB 1, 0, 0, 0, 0, 0, 0, 0x52, 1, 0, 0, 0, 0, 0, 0, 0x52 .rodata:0005A7D0 DCB 1, 0, 0, 0, 0, 0, 0, 0x53, 1, 0, 0, 0, 0, 0, 0, 0x53 .rodata:0005A7D0 DCB 1, 0, 0, 0, 0, 0, 0, 0x7F, 1, 0, 0, 0, 0, 0, 0, 0xC7 .rodata:0005A7D0 DCB 1, 0, 0, 0, 0, 0, 0, 0xC8, 1, 0, 0, 0, 0, 0, 0, 0xC9 .rodata:0005A7D0 DCB 1, 0, 0, 0, 0, 0, 0, 0xCA, 1, 0, 0, 0, 0, 0, 0, 0xCB .rodata:0005A7D0 DCB 1, 0, 0, 0, 0, 0, 0, 0xCC, 1, 0, 0, 0, 0, 0, 0, 0xF1 .rodata:0005A7D0 DCB 1, 0, 0, 0, 0, 0, 0, 0xF2, 1, 0, 0, 0, 0, 0, 0, 0xF3 .rodata:0005A7D0 DCB 1, 0, 0, 0, 0, 0, 0, 0xBC, 2, 0, 0, 0, 0, 0, 0, 0xC6 .rodata:0005A7D0 DCB 2, 0, 0, 0, 0, 0, 0, 0xC8, 2, 0, 0, 0, 0, 0, 0, 0xCB .rodata:0005A7D0 DCB 2, 0, 0, 0, 0, 0, 0, 0xCD, 2, 0, 0, 0, 0, 0, 0, 0xD0 .rodata:0005A7D0 DCB 2, 0, 0, 0, 0, 0, 0, 0xDC, 2, 0, 0, 0, 0, 0, 0, 2 .rodata:0005A7D0 DCB 0x20, 0, 0, 0, 0, 0, 0, 3, 0x20, 0, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 4, 0x20, 0, 0, 0, 0, 0, 0, 5, 0x20, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 6, 0x20, 0, 0, 0, 0, 0, 0, 8, 0x20, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0, 9, 0x20, 0, 0, 0, 0, 0, 0, 0xA, 0x20, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0xB, 0x20, 0, 0, 0, 0, 0, 0, 0x10, 0x20, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0x11, 0x20, 0, 0, 0, 0, 0, 0, 0x12 .rodata:0005A7D0 DCB 0x20, 0, 0, 0, 0, 0, 0, 0x13, 0x20, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0x14, 0x20, 0, 0, 0, 0, 0, 0, 0x15, 0x20, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0x18, 0x20, 0, 0, 0, 0, 0, 0, 0x19, 0x20 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0x1A, 0x20, 0, 0, 0, 0, 0, 0, 0x1B .rodata:0005A7D0 DCB 0x20, 0, 0, 0, 0, 0, 0, 0x1C, 0x20, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0x1D, 0x20, 0, 0, 0, 0, 0, 0, 0x1E, 0x20, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0x1F, 0x20, 0, 0, 0, 0, 0, 0, 0x20, 0x20 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0x22, 0x20, 0, 0, 0, 0, 0, 0, 0x24 .rodata:0005A7D0 DCB 0x20, 0, 0, 0, 0, 0, 0, 0x25, 0x20, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0x26, 0x20, 0, 0, 0, 0, 0, 0, 0x2F, 0x20, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0x35, 0x20, 0, 0, 0, 0, 0, 0, 0x36, 0x20 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0x37, 0x20, 0, 0, 0, 0, 0, 0, 0x39 .rodata:0005A7D0 DCB 0x20, 0, 0, 0, 0, 0, 0, 0x3A, 0x20, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0x3C, 0x20, 0, 0, 0, 0, 0, 0, 0x48, 0x20, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0x49, 0x20, 0, 0, 0, 0, 0, 0, 0xA8, 0x20 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0xAC, 0x20, 0, 0, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0x21, 0, 0, 0, 0, 0, 0, 1, 0x21, 0, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 2, 0x21, 0, 0, 0, 0, 0, 0, 5, 0x21, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 6, 0x21, 0, 0, 0, 0, 0, 0, 0xA, 0x21, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0xB, 0x21, 0, 0, 0, 0, 0, 0, 0xC, 0x21, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0xD, 0x21, 0, 0, 0, 0, 0, 0, 0xE, 0x21 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0x10, 0x21, 0, 0, 0, 0, 0, 0, 0x11 .rodata:0005A7D0 DCB 0x21, 0, 0, 0, 0, 0, 0, 0x12, 0x21, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0x13, 0x21, 0, 0, 0, 0, 0, 0, 0x15, 0x21, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0x16, 0x21, 0, 0, 0, 0, 0, 0, 0x19, 0x21 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0x1A, 0x21, 0, 0, 0, 0, 0, 0, 0x1B .rodata:0005A7D0 DCB 0x21, 0, 0, 0, 0, 0, 0, 0x1C, 0x21, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0x1D, 0x21, 0, 0, 0, 0, 0, 0, 0x21, 0x21, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0x22, 0x21, 0, 0, 0, 0, 0, 0, 0x24, 0x21 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0x26, 0x21, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005A7D0 DCB 0x21, 0, 0, 0, 0, 0, 0, 0x2C, 0x21, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0x2D, 0x21, 0, 0, 0, 0, 0, 0, 0x2E, 0x21, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0x2F, 0x21, 0, 0, 0, 0, 0, 0, 0x30, 0x21 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0x31, 0x21, 0, 0, 0, 0, 0, 0, 0x33 .rodata:0005A7D0 DCB 0x21, 0, 0, 0, 0, 0, 0, 0x34, 0x21, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0x39, 0x21, 0, 0, 0, 0, 0, 0, 0x53, 0x21, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0x54, 0x21, 0, 0, 0, 0, 0, 0, 0x55, 0x21 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0x56, 0x21, 0, 0, 0, 0, 0, 0, 0x57 .rodata:0005A7D0 DCB 0x21, 0, 0, 0, 0, 0, 0, 0x58, 0x21, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0x59, 0x21, 0, 0, 0, 0, 0, 0, 0x5A, 0x21, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0x5B, 0x21, 0, 0, 0, 0, 0, 0, 0x5C, 0x21 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0x5D, 0x21, 0, 0, 0, 0, 0, 0, 0x5E .rodata:0005A7D0 DCB 0x21, 0, 0, 0, 0, 0, 0, 0x5F, 0x21, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0x60, 0x21, 0, 0, 0, 0, 0, 0, 0x61, 0x21, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0x62, 0x21, 0, 0, 0, 0, 0, 0, 0x63, 0x21 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0x64, 0x21, 0, 0, 0, 0, 0, 0, 0x65 .rodata:0005A7D0 DCB 0x21, 0, 0, 0, 0, 0, 0, 0x66, 0x21, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0x67, 0x21, 0, 0, 0, 0, 0, 0, 0x68, 0x21, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0x69, 0x21, 0, 0, 0, 0, 0, 0, 0x6A, 0x21 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0x6B, 0x21, 0, 0, 0, 0, 0, 0, 0x6C .rodata:0005A7D0 DCB 0x21, 0, 0, 0, 0, 0, 0, 0x6D, 0x21, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0x6E, 0x21, 0, 0, 0, 0, 0, 0, 0x6F, 0x21, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0x70, 0x21, 0, 0, 0, 0, 0, 0, 0x71, 0x21 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0x72, 0x21, 0, 0, 0, 0, 0, 0, 0x73 .rodata:0005A7D0 DCB 0x21, 0, 0, 0, 0, 0, 0, 0x74, 0x21, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0x75, 0x21, 0, 0, 0, 0, 0, 0, 0x76, 0x21, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0x77, 0x21, 0, 0, 0, 0, 0, 0, 0x78, 0x21 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0x79, 0x21, 0, 0, 0, 0, 0, 0, 0x7A .rodata:0005A7D0 DCB 0x21, 0, 0, 0, 0, 0, 0, 0x7B, 0x21, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0x7C, 0x21, 0, 0, 0, 0, 0, 0, 0x7D, 0x21, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0x7E, 0x21, 0, 0, 0, 0, 0, 0, 0x7F, 0x21 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0x90, 0x21, 0, 0, 0, 0, 0, 0, 0x92 .rodata:0005A7D0 DCB 0x21, 0, 0, 0, 0, 0, 0, 0x94, 0x21, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0xD0, 0x21, 0, 0, 0, 0, 0, 0, 0xD2, 0x21, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0xD4, 0x21, 0, 0, 0, 0, 0, 0, 0x12, 0x22 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0x15, 0x22, 0, 0, 0, 0, 0, 0, 0x16 .rodata:0005A7D0 DCB 0x22, 0, 0, 0, 0, 0, 0, 0x17, 0x22, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0x23, 0x22, 0, 0, 0, 0, 0, 0, 0x36, 0x22, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0x3C, 0x22, 0, 0, 0, 0, 0, 0, 0x64, 0x22 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0x65, 0x22, 0, 0, 0, 0, 0, 0, 0x6A .rodata:0005A7D0 DCB 0x22, 0, 0, 0, 0, 0, 0, 0x6B, 0x22, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0xD8, 0x22, 0, 0, 0, 0, 0, 0, 0xD9, 0x22, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0x24, 0, 0, 0, 0, 0, 0, 1, 0x24, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 2, 0x24, 0, 0, 0, 0, 0, 0, 3, 0x24 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 4, 0x24, 0, 0, 0, 0, 0, 0, 5, 0x24 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 6, 0x24, 0, 0, 0, 0, 0, 0, 7, 0x24 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 8, 0x24, 0, 0, 0, 0, 0, 0, 9, 0x24 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0xA, 0x24, 0, 0, 0, 0, 0, 0, 0xB .rodata:0005A7D0 DCB 0x24, 0, 0, 0, 0, 0, 0, 0xC, 0x24, 0, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0xD, 0x24, 0, 0, 0, 0, 0, 0, 0xE, 0x24, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0xF, 0x24, 0, 0, 0, 0, 0, 0, 0x10, 0x24, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0x11, 0x24, 0, 0, 0, 0, 0, 0, 0x12, 0x24 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0x13, 0x24, 0, 0, 0, 0, 0, 0, 0x14 .rodata:0005A7D0 DCB 0x24, 0, 0, 0, 0, 0, 0, 0x15, 0x24, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0x16, 0x24, 0, 0, 0, 0, 0, 0, 0x17, 0x24, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0x18, 0x24, 0, 0, 0, 0, 0, 0, 0x19, 0x24 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0x1A, 0x24, 0, 0, 0, 0, 0, 0, 0x1B .rodata:0005A7D0 DCB 0x24, 0, 0, 0, 0, 0, 0, 0x1C, 0x24, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0x1D, 0x24, 0, 0, 0, 0, 0, 0, 0x1E, 0x24, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0x1F, 0x24, 0, 0, 0, 0, 0, 0, 0x20, 0x24 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0x21, 0x24, 0, 0, 0, 0, 0, 0, 0x23 .rodata:0005A7D0 DCB 0x24, 0, 0, 0, 0, 0, 0, 0x24, 0x24, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0x60, 0x24, 0, 0, 0, 0, 0, 0, 0x61, 0x24, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0x62, 0x24, 0, 0, 0, 0, 0, 0, 0x63, 0x24 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0x64, 0x24, 0, 0, 0, 0, 0, 0, 0x65 .rodata:0005A7D0 DCB 0x24, 0, 0, 0, 0, 0, 0, 0x66, 0x24, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0x67, 0x24, 0, 0, 0, 0, 0, 0, 0x68, 0x24, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0x69, 0x24, 0, 0, 0, 0, 0, 0, 0x6A, 0x24 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0x6B, 0x24, 0, 0, 0, 0, 0, 0, 0x6C .rodata:0005A7D0 DCB 0x24, 0, 0, 0, 0, 0, 0, 0x6D, 0x24, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0x6E, 0x24, 0, 0, 0, 0, 0, 0, 0x6F, 0x24, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0x70, 0x24, 0, 0, 0, 0, 0, 0, 0x71, 0x24 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0x72, 0x24, 0, 0, 0, 0, 0, 0, 0x73 .rodata:0005A7D0 DCB 0x24, 0, 0, 0, 0, 0, 0, 0x74, 0x24, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0x75, 0x24, 0, 0, 0, 0, 0, 0, 0x76, 0x24, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0x77, 0x24, 0, 0, 0, 0, 0, 0, 0x78, 0x24 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0x79, 0x24, 0, 0, 0, 0, 0, 0, 0x7A .rodata:0005A7D0 DCB 0x24, 0, 0, 0, 0, 0, 0, 0x7B, 0x24, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0x7C, 0x24, 0, 0, 0, 0, 0, 0, 0x7D, 0x24, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0x7E, 0x24, 0, 0, 0, 0, 0, 0, 0x7F, 0x24 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0x80, 0x24, 0, 0, 0, 0, 0, 0, 0x81 .rodata:0005A7D0 DCB 0x24, 0, 0, 0, 0, 0, 0, 0x82, 0x24, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0x83, 0x24, 0, 0, 0, 0, 0, 0, 0x84, 0x24, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0x85, 0x24, 0, 0, 0, 0, 0, 0, 0x86, 0x24 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0x87, 0x24, 0, 0, 0, 0, 0, 0, 0x88 .rodata:0005A7D0 DCB 0x24, 0, 0, 0, 0, 0, 0, 0x89, 0x24, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0x8A, 0x24, 0, 0, 0, 0, 0, 0, 0x8B, 0x24, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0x8C, 0x24, 0, 0, 0, 0, 0, 0, 0x8D, 0x24 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0x8E, 0x24, 0, 0, 0, 0, 0, 0, 0x8F .rodata:0005A7D0 DCB 0x24, 0, 0, 0, 0, 0, 0, 0x90, 0x24, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0x91, 0x24, 0, 0, 0, 0, 0, 0, 0x92, 0x24, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0x93, 0x24, 0, 0, 0, 0, 0, 0, 0x94, 0x24 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0x95, 0x24, 0, 0, 0, 0, 0, 0, 0x96 .rodata:0005A7D0 DCB 0x24, 0, 0, 0, 0, 0, 0, 0x97, 0x24, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0x98, 0x24, 0, 0, 0, 0, 0, 0, 0x99, 0x24, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0x9A, 0x24, 0, 0, 0, 0, 0, 0, 0x9B, 0x24 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0x9C, 0x24, 0, 0, 0, 0, 0, 0, 0x9D .rodata:0005A7D0 DCB 0x24, 0, 0, 0, 0, 0, 0, 0x9E, 0x24, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0x9F, 0x24, 0, 0, 0, 0, 0, 0, 0xA0, 0x24, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0xA1, 0x24, 0, 0, 0, 0, 0, 0, 0xA2, 0x24 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0xA3, 0x24, 0, 0, 0, 0, 0, 0, 0xA4 .rodata:0005A7D0 DCB 0x24, 0, 0, 0, 0, 0, 0, 0xA5, 0x24, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0xA6, 0x24, 0, 0, 0, 0, 0, 0, 0xA7, 0x24, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0xA8, 0x24, 0, 0, 0, 0, 0, 0, 0xA9, 0x24 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0xAA, 0x24, 0, 0, 0, 0, 0, 0, 0xAB .rodata:0005A7D0 DCB 0x24, 0, 0, 0, 0, 0, 0, 0xAC, 0x24, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0xAD, 0x24, 0, 0, 0, 0, 0, 0, 0xAE, 0x24, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0xAF, 0x24, 0, 0, 0, 0, 0, 0, 0xB0, 0x24 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0xB1, 0x24, 0, 0, 0, 0, 0, 0, 0xB2 .rodata:0005A7D0 DCB 0x24, 0, 0, 0, 0, 0, 0, 0xB3, 0x24, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0xB4, 0x24, 0, 0, 0, 0, 0, 0, 0xB5, 0x24, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0xB6, 0x24, 0, 0, 0, 0, 0, 0, 0xB7, 0x24 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0xB8, 0x24, 0, 0, 0, 0, 0, 0, 0xB9 .rodata:0005A7D0 DCB 0x24, 0, 0, 0, 0, 0, 0, 0xBA, 0x24, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0xBB, 0x24, 0, 0, 0, 0, 0, 0, 0xBC, 0x24, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0xBD, 0x24, 0, 0, 0, 0, 0, 0, 0xBE, 0x24 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0xBF, 0x24, 0, 0, 0, 0, 0, 0, 0xC0 .rodata:0005A7D0 DCB 0x24, 0, 0, 0, 0, 0, 0, 0xC1, 0x24, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0xC2, 0x24, 0, 0, 0, 0, 0, 0, 0xC3, 0x24, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0xC4, 0x24, 0, 0, 0, 0, 0, 0, 0xC5, 0x24 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0xC6, 0x24, 0, 0, 0, 0, 0, 0, 0xC7 .rodata:0005A7D0 DCB 0x24, 0, 0, 0, 0, 0, 0, 0xC8, 0x24, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0xC9, 0x24, 0, 0, 0, 0, 0, 0, 0xCA, 0x24, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0xCB, 0x24, 0, 0, 0, 0, 0, 0, 0xCC, 0x24 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0xCD, 0x24, 0, 0, 0, 0, 0, 0, 0xCE .rodata:0005A7D0 DCB 0x24, 0, 0, 0, 0, 0, 0, 0xCF, 0x24, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0xD0, 0x24, 0, 0, 0, 0, 0, 0, 0xD1, 0x24, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0xD2, 0x24, 0, 0, 0, 0, 0, 0, 0xD3, 0x24 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0xD4, 0x24, 0, 0, 0, 0, 0, 0, 0xD5 .rodata:0005A7D0 DCB 0x24, 0, 0, 0, 0, 0, 0, 0xD6, 0x24, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0xD7, 0x24, 0, 0, 0, 0, 0, 0, 0xD8, 0x24, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0xD9, 0x24, 0, 0, 0, 0, 0, 0, 0xDA, 0x24 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0xDB, 0x24, 0, 0, 0, 0, 0, 0, 0xDC .rodata:0005A7D0 DCB 0x24, 0, 0, 0, 0, 0, 0, 0xDD, 0x24, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0xDE, 0x24, 0, 0, 0, 0, 0, 0, 0xDF, 0x24, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0xE0, 0x24, 0, 0, 0, 0, 0, 0, 0xE1, 0x24 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0xE2, 0x24, 0, 0, 0, 0, 0, 0, 0xE3 .rodata:0005A7D0 DCB 0x24, 0, 0, 0, 0, 0, 0, 0xE4, 0x24, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0xE5, 0x24, 0, 0, 0, 0, 0, 0, 0xE6, 0x24, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0xE7, 0x24, 0, 0, 0, 0, 0, 0, 0xE8, 0x24 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0xE9, 0x24, 0, 0, 0, 0, 0, 0, 0xEA .rodata:0005A7D0 DCB 0x24, 0, 0, 0, 0, 0, 0, 0, 0x25, 0, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 2, 0x25, 0, 0, 0, 0, 0, 0, 0xC, 0x25, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0x10, 0x25, 0, 0, 0, 0, 0, 0, 0x14, 0x25, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0x18, 0x25, 0, 0, 0, 0, 0, 0, 0x1C, 0x25 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0x24, 0x25, 0, 0, 0, 0, 0, 0, 0x2C .rodata:0005A7D0 DCB 0x25, 0, 0, 0, 0, 0, 0, 0x34, 0x25, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0x3C, 0x25, 0, 0, 0, 0, 0, 0, 0xE6, 0x25, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0x30, 0, 0, 0, 0, 0, 0, 0x71, 0x33 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0x72, 0x33, 0, 0, 0, 0, 0, 0, 0x73 .rodata:0005A7D0 DCB 0x33, 0, 0, 0, 0, 0, 0, 0x74, 0x33, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0x75, 0x33, 0, 0, 0, 0, 0, 0, 0x76, 0x33, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0x80, 0x33, 0, 0, 0, 0, 0, 0, 0x81, 0x33 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0x82, 0x33, 0, 0, 0, 0, 0, 0, 0x83 .rodata:0005A7D0 DCB 0x33, 0, 0, 0, 0, 0, 0, 0x84, 0x33, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0x85, 0x33, 0, 0, 0, 0, 0, 0, 0x86, 0x33, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0x87, 0x33, 0, 0, 0, 0, 0, 0, 0x88, 0x33 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0x89, 0x33, 0, 0, 0, 0, 0, 0, 0x8A .rodata:0005A7D0 DCB 0x33, 0, 0, 0, 0, 0, 0, 0x8B, 0x33, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0x8C, 0x33, 0, 0, 0, 0, 0, 0, 0x8D, 0x33, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0x8E, 0x33, 0, 0, 0, 0, 0, 0, 0x8F, 0x33 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0x90, 0x33, 0, 0, 0, 0, 0, 0, 0x91 .rodata:0005A7D0 DCB 0x33, 0, 0, 0, 0, 0, 0, 0x92, 0x33, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0x93, 0x33, 0, 0, 0, 0, 0, 0, 0x94, 0x33, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0x95, 0x33, 0, 0, 0, 0, 0, 0, 0x96, 0x33 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0x97, 0x33, 0, 0, 0, 0, 0, 0, 0x98 .rodata:0005A7D0 DCB 0x33, 0, 0, 0, 0, 0, 0, 0x99, 0x33, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0x9A, 0x33, 0, 0, 0, 0, 0, 0, 0x9B, 0x33, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0x9C, 0x33, 0, 0, 0, 0, 0, 0, 0x9D, 0x33 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0x9E, 0x33, 0, 0, 0, 0, 0, 0, 0x9F .rodata:0005A7D0 DCB 0x33, 0, 0, 0, 0, 0, 0, 0xA0, 0x33, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0xA1, 0x33, 0, 0, 0, 0, 0, 0, 0xA2, 0x33, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0xA3, 0x33, 0, 0, 0, 0, 0, 0, 0xA4, 0x33 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0xA5, 0x33, 0, 0, 0, 0, 0, 0, 0xA6 .rodata:0005A7D0 DCB 0x33, 0, 0, 0, 0, 0, 0, 0xA7, 0x33, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0xA8, 0x33, 0, 0, 0, 0, 0, 0, 0xA9, 0x33, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0xAA, 0x33, 0, 0, 0, 0, 0, 0, 0xAB, 0x33 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0xAC, 0x33, 0, 0, 0, 0, 0, 0, 0xAD .rodata:0005A7D0 DCB 0x33, 0, 0, 0, 0, 0, 0, 0xAE, 0x33, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0xAF, 0x33, 0, 0, 0, 0, 0, 0, 0xB0, 0x33, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0xB1, 0x33, 0, 0, 0, 0, 0, 0, 0xB2, 0x33 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0xB3, 0x33, 0, 0, 0, 0, 0, 0, 0xB4 .rodata:0005A7D0 DCB 0x33, 0, 0, 0, 0, 0, 0, 0xB5, 0x33, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0xB6, 0x33, 0, 0, 0, 0, 0, 0, 0xB7, 0x33, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0xB8, 0x33, 0, 0, 0, 0, 0, 0, 0xB9, 0x33 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0xBA, 0x33, 0, 0, 0, 0, 0, 0, 0xBB .rodata:0005A7D0 DCB 0x33, 0, 0, 0, 0, 0, 0, 0xBC, 0x33, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0xBD, 0x33, 0, 0, 0, 0, 0, 0, 0xBE, 0x33, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0xBF, 0x33, 0, 0, 0, 0, 0, 0, 0xC2, 0x33 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0xC3, 0x33, 0, 0, 0, 0, 0, 0, 0xC4 .rodata:0005A7D0 DCB 0x33, 0, 0, 0, 0, 0, 0, 0xC5, 0x33, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0xC6, 0x33, 0, 0, 0, 0, 0, 0, 0xC7, 0x33, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0xC8, 0x33, 0, 0, 0, 0, 0, 0, 0xC9, 0x33 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0xCA, 0x33, 0, 0, 0, 0, 0, 0, 0xCB .rodata:0005A7D0 DCB 0x33, 0, 0, 0, 0, 0, 0, 0xCC, 0x33, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0xCD, 0x33, 0, 0, 0, 0, 0, 0, 0xCE, 0x33, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0xCF, 0x33, 0, 0, 0, 0, 0, 0, 0xD0, 0x33 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0xD1, 0x33, 0, 0, 0, 0, 0, 0, 0xD2 .rodata:0005A7D0 DCB 0x33, 0, 0, 0, 0, 0, 0, 0xD3, 0x33, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0xD4, 0x33, 0, 0, 0, 0, 0, 0, 0xD5, 0x33, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0xD6, 0x33, 0, 0, 0, 0, 0, 0, 0xD7, 0x33 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0xD8, 0x33, 0, 0, 0, 0, 0, 0, 0xD9 .rodata:0005A7D0 DCB 0x33, 0, 0, 0, 0, 0, 0, 0xDA, 0x33, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0xDB, 0x33, 0, 0, 0, 0, 0, 0, 0xDC, 0x33, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0xDD, 0x33, 0, 0, 0, 0, 0, 0, 0, 0xFB .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 1, 0xFB, 0, 0, 0, 0, 0, 0, 2, 0xFB .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 3, 0xFB, 0, 0, 0, 0, 0, 0, 4, 0xFB .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 6, 0xFB, 0, 0, 0, 0, 0, 0, 0x29 .rodata:0005A7D0 DCB 0xFB, 0, 0, 0, 0, 0, 0, 0x4D, 0xFE, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0x4E, 0xFE, 0, 0, 0, 0, 0, 0, 0x4F, 0xFE, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0x50, 0xFE, 0, 0, 0, 0, 0, 0, 0x52, 0xFE .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0x54, 0xFE, 0, 0, 0, 0, 0, 0, 0x55 .rodata:0005A7D0 DCB 0xFE, 0, 0, 0, 0, 0, 0, 0x56, 0xFE, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0x57, 0xFE, 0, 0, 0, 0, 0, 0, 0x59, 0xFE, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0x5A, 0xFE, 0, 0, 0, 0, 0, 0, 0x5B, 0xFE .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0x5C, 0xFE, 0, 0, 0, 0, 0, 0, 0x5F .rodata:0005A7D0 DCB 0xFE, 0, 0, 0, 0, 0, 0, 0x60, 0xFE, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0x61, 0xFE, 0, 0, 0, 0, 0, 0, 0x62, 0xFE, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0x63, 0xFE, 0, 0, 0, 0, 0, 0, 0x64, 0xFE .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0x65, 0xFE, 0, 0, 0, 0, 0, 0, 0x66 .rodata:0005A7D0 DCB 0xFE, 0, 0, 0, 0, 0, 0, 0x68, 0xFE, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0x69, 0xFE, 0, 0, 0, 0, 0, 0, 0x6A, 0xFE, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0x6B, 0xFE, 0, 0, 0, 0, 0, 0, 0xFF, 0xFE .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 1, 0xFF, 0, 0, 0, 0, 0, 0, 2, 0xFF .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 3, 0xFF, 0, 0, 0, 0, 0, 0, 4, 0xFF .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 5, 0xFF, 0, 0, 0, 0, 0, 0, 6, 0xFF .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 7, 0xFF, 0, 0, 0, 0, 0, 0, 8, 0xFF .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 9, 0xFF, 0, 0, 0, 0, 0, 0, 0xA, 0xFF .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0xB, 0xFF, 0, 0, 0, 0, 0, 0, 0xC .rodata:0005A7D0 DCB 0xFF, 0, 0, 0, 0, 0, 0, 0xD, 0xFF, 0, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0xE, 0xFF, 0, 0, 0, 0, 0, 0, 0xF, 0xFF, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0x10, 0xFF, 0, 0, 0, 0, 0, 0, 0x11, 0xFF, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0x12, 0xFF, 0, 0, 0, 0, 0, 0, 0x13 .rodata:0005A7D0 DCB 0xFF, 0, 0, 0, 0, 0, 0, 0x14, 0xFF, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0x15, 0xFF, 0, 0, 0, 0, 0, 0, 0x16, 0xFF, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0x17, 0xFF, 0, 0, 0, 0, 0, 0, 0x18, 0xFF .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0x19, 0xFF, 0, 0, 0, 0, 0, 0, 0x1A .rodata:0005A7D0 DCB 0xFF, 0, 0, 0, 0, 0, 0, 0x1B, 0xFF, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0x1C, 0xFF, 0, 0, 0, 0, 0, 0, 0x1D, 0xFF, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0x1E, 0xFF, 0, 0, 0, 0, 0, 0, 0x1F, 0xFF .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0x20, 0xFF, 0, 0, 0, 0, 0, 0, 0x21 .rodata:0005A7D0 DCB 0xFF, 0, 0, 0, 0, 0, 0, 0x22, 0xFF, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0x23, 0xFF, 0, 0, 0, 0, 0, 0, 0x24, 0xFF, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0x25, 0xFF, 0, 0, 0, 0, 0, 0, 0x26, 0xFF .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0x27, 0xFF, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005A7D0 DCB 0xFF, 0, 0, 0, 0, 0, 0, 0x29, 0xFF, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0x2A, 0xFF, 0, 0, 0, 0, 0, 0, 0x2B, 0xFF, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0x2C, 0xFF, 0, 0, 0, 0, 0, 0, 0x2D, 0xFF .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0x2E, 0xFF, 0, 0, 0, 0, 0, 0, 0x2F .rodata:0005A7D0 DCB 0xFF, 0, 0, 0, 0, 0, 0, 0x30, 0xFF, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0x31, 0xFF, 0, 0, 0, 0, 0, 0, 0x32, 0xFF, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0x33, 0xFF, 0, 0, 0, 0, 0, 0, 0x34, 0xFF .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0x35, 0xFF, 0, 0, 0, 0, 0, 0, 0x36 .rodata:0005A7D0 DCB 0xFF, 0, 0, 0, 0, 0, 0, 0x37, 0xFF, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0x38, 0xFF, 0, 0, 0, 0, 0, 0, 0x39, 0xFF, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0x3A, 0xFF, 0, 0, 0, 0, 0, 0, 0x3B, 0xFF .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0x3C, 0xFF, 0, 0, 0, 0, 0, 0, 0x3D .rodata:0005A7D0 DCB 0xFF, 0, 0, 0, 0, 0, 0, 0x3E, 0xFF, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0x3F, 0xFF, 0, 0, 0, 0, 0, 0, 0x40, 0xFF, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0x41, 0xFF, 0, 0, 0, 0, 0, 0, 0x42, 0xFF .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0x43, 0xFF, 0, 0, 0, 0, 0, 0, 0x44 .rodata:0005A7D0 DCB 0xFF, 0, 0, 0, 0, 0, 0, 0x45, 0xFF, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0x46, 0xFF, 0, 0, 0, 0, 0, 0, 0x47, 0xFF, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0x48, 0xFF, 0, 0, 0, 0, 0, 0, 0x49, 0xFF .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0x4A, 0xFF, 0, 0, 0, 0, 0, 0, 0x4B .rodata:0005A7D0 DCB 0xFF, 0, 0, 0, 0, 0, 0, 0x4C, 0xFF, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0x4D, 0xFF, 0, 0, 0, 0, 0, 0, 0x4E, 0xFF, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0x4F, 0xFF, 0, 0, 0, 0, 0, 0, 0x50, 0xFF .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0x51, 0xFF, 0, 0, 0, 0, 0, 0, 0x52 .rodata:0005A7D0 DCB 0xFF, 0, 0, 0, 0, 0, 0, 0x53, 0xFF, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0x54, 0xFF, 0, 0, 0, 0, 0, 0, 0x55, 0xFF, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0x56, 0xFF, 0, 0, 0, 0, 0, 0, 0x57, 0xFF .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0, 0x58, 0xFF, 0, 0, 0, 0, 0, 0, 0x59 .rodata:0005A7D0 DCB 0xFF, 0, 0, 0, 0, 0, 0, 0x5A, 0xFF, 0, 0, 0, 0, 0 .rodata:0005A7D0 DCB 0, 0x5B, 0xFF, 0, 0, 0, 0, 0, 0, 0x5C, 0xFF, 0, 0 .rodata:0005A7D0 DCB 0, 0, 0, 0, 0x5D, 0xFF, 0, 0, 0, 0, 0, 0, 0x5E, 0xFF .rodata:0005A7D0 DCB 0, 0, 0, 0, 0, 0 .rodata:0005BA40 translit_to_idx DCB 0, 0, 0, 0, 3, 0, 0, 0, 8, 0, 0, 0, 0xC, 0, 0, 0, 0xF .rodata:0005BA40 DCB 0, 0, 0, 0x14, 0, 0, 0, 0x17, 0, 0, 0, 0x1A, 0, 0 .rodata:0005BA40 DCB 0, 0x1E, 0, 0, 0, 0x25, 0, 0, 0, 0x2C, 0, 0, 0, 0x33 .rodata:0005BA40 DCB 0, 0, 0, 0x37, 0, 0, 0, 0x3A, 0, 0, 0, 0x3E, 0, 0 .rodata:0005BA40 DCB 0, 0x42, 0, 0, 0, 0x46, 0, 0, 0, 0x4A, 0, 0, 0, 0x4E .rodata:0005BA40 DCB 0, 0, 0, 0x52, 0, 0, 0, 0x56, 0, 0, 0, 0x5A, 0, 0 .rodata:0005BA40 DCB 0, 0x5E, 0, 0, 0, 0x61, 0, 0, 0, 0x65, 0, 0, 0, 0x69 .rodata:0005BA40 DCB 0, 0, 0, 0x6D, 0, 0, 0, 0x71, 0, 0, 0, 0x75, 0, 0 .rodata:0005BA40 DCB 0, 0x79, 0, 0, 0, 0x7D, 0, 0, 0, 0x81, 0, 0, 0, 0x85 .rodata:0005BA40 DCB 0, 0, 0, 0x88, 0, 0, 0, 0x8B, 0, 0, 0, 0x8E, 0, 0 .rodata:0005BA40 DCB 0, 0x91, 0, 0, 0, 0x94, 0, 0, 0, 0x97, 0, 0, 0, 0x9A .rodata:0005BA40 DCB 0, 0, 0, 0x9D, 0, 0, 0, 0xA0, 0, 0, 0, 0xA3, 0, 0 .rodata:0005BA40 DCB 0, 0xA6, 0, 0, 0, 0xA9, 0, 0, 0, 0xAC, 0, 0, 0, 0xAF .rodata:0005BA40 DCB 0, 0, 0, 0xB2, 0, 0, 0, 0xB4, 0, 0, 0, 0xB7, 0, 0 .rodata:0005BA40 DCB 0, 0xBA, 0, 0, 0, 0xBD, 0, 0, 0, 0xC0, 0, 0, 0, 0xC4 .rodata:0005BA40 DCB 0, 0, 0, 0xC7, 0, 0, 0, 0xCA, 0, 0, 0, 0xCD, 0, 0 .rodata:0005BA40 DCB 0, 0xD0, 0, 0, 0, 0xD3, 0, 0, 0, 0xD6, 0, 0, 0, 0xD9 .rodata:0005BA40 DCB 0, 0, 0, 0xDD, 0, 0, 0, 0xE0, 0, 0, 0, 0xE3, 0, 0 .rodata:0005BA40 DCB 0, 0xE6, 0, 0, 0, 0xE9, 0, 0, 0, 0xED, 0, 0, 0, 0xF2 .rodata:0005BA40 DCB 0, 0, 0, 0xF5, 0, 0, 0, 0xF8, 0, 0, 0, 0xFC, 0, 0 .rodata:0005BA40 DCB 0, 1, 1, 0, 0, 4, 1, 0, 0, 7, 1, 0, 0, 0xB, 1, 0, 0 .rodata:0005BA40 DCB 0xF, 1, 0, 0, 0x13, 1, 0, 0, 0x17, 1, 0, 0, 0x1C, 1 .rodata:0005BA40 DCB 0, 0, 0x21, 1, 0, 0, 0x26, 1, 0, 0, 0x29, 1, 0, 0 .rodata:0005BA40 DCB 0x2E, 1, 0, 0, 0x33, 1, 0, 0, 0x36, 1, 0, 0, 0x39 .rodata:0005BA40 DCB 1, 0, 0, 0x3C, 1, 0, 0, 0x3F, 1, 0, 0, 0x42, 1, 0 .rodata:0005BA40 DCB 0, 0x45, 1, 0, 0, 0x48, 1, 0, 0, 0x4B, 1, 0, 0, 0x4E .rodata:0005BA40 DCB 1, 0, 0, 0x51, 1, 0, 0, 0x55, 1, 0, 0, 0x58, 1, 0 .rodata:0005BA40 DCB 0, 0x5B, 1, 0, 0, 0x5E, 1, 0, 0, 0x61, 1, 0, 0, 0x64 .rodata:0005BA40 DCB 1, 0, 0, 0x69, 1, 0, 0, 0x6F, 1, 0, 0, 0x72, 1, 0 .rodata:0005BA40 DCB 0, 0x77, 1, 0, 0, 0x7A, 1, 0, 0, 0x7D, 1, 0, 0, 0x80 .rodata:0005BA40 DCB 1, 0, 0, 0x83, 1, 0, 0, 0x86, 1, 0, 0, 0x89, 1, 0 .rodata:0005BA40 DCB 0, 0x8C, 1, 0, 0, 0x8F, 1, 0, 0, 0x92, 1, 0, 0, 0x95 .rodata:0005BA40 DCB 1, 0, 0, 0x9C, 1, 0, 0, 0xA3, 1, 0, 0, 0xAA, 1, 0 .rodata:0005BA40 DCB 0, 0xB1, 1, 0, 0, 0xB8, 1, 0, 0, 0xBF, 1, 0, 0, 0xC6 .rodata:0005BA40 DCB 1, 0, 0, 0xCD, 1, 0, 0, 0xD4, 1, 0, 0, 0xDB, 1, 0 .rodata:0005BA40 DCB 0, 0xE2, 1, 0, 0, 0xE9, 1, 0, 0, 0xEE, 1, 0, 0, 0xF1 .rodata:0005BA40 DCB 1, 0, 0, 0xF5, 1, 0, 0, 0xFA, 1, 0, 0, 0xFE, 1, 0 .rodata:0005BA40 DCB 0, 1, 2, 0, 0, 5, 2, 0, 0, 0xA, 2, 0, 0, 0x10, 2, 0 .rodata:0005BA40 DCB 0, 0x14, 2, 0, 0, 0x17, 2, 0, 0, 0x1B, 2, 0, 0, 0x20 .rodata:0005BA40 DCB 2, 0, 0, 0x23, 2, 0, 0, 0x26, 2, 0, 0, 0x29, 2, 0 .rodata:0005BA40 DCB 0, 0x2C, 2, 0, 0, 0x2F, 2, 0, 0, 0x33, 2, 0, 0, 0x38 .rodata:0005BA40 DCB 2, 0, 0, 0x3C, 2, 0, 0, 0x3F, 2, 0, 0, 0x43, 2, 0 .rodata:0005BA40 DCB 0, 0x48, 2, 0, 0, 0x4E, 2, 0, 0, 0x52, 2, 0, 0, 0x55 .rodata:0005BA40 DCB 2, 0, 0, 0x59, 2, 0, 0, 0x5E, 2, 0, 0, 0x61, 2, 0 .rodata:0005BA40 DCB 0, 0x64, 2, 0, 0, 0x67, 2, 0, 0, 0x6A, 2, 0, 0, 0x6E .rodata:0005BA40 DCB 2, 0, 0, 0x72, 2, 0, 0, 0x77, 2, 0, 0, 0x7B, 2, 0 .rodata:0005BA40 DCB 0, 0x7F, 2, 0, 0, 0x84, 2, 0, 0, 0x87, 2, 0, 0, 0x8A .rodata:0005BA40 DCB 2, 0, 0, 0x8D, 2, 0, 0, 0x90, 2, 0, 0, 0x93, 2, 0 .rodata:0005BA40 DCB 0, 0x96, 2, 0, 0, 0x99, 2, 0, 0, 0x9D, 2, 0, 0, 0xA1 .rodata:0005BA40 DCB 2, 0, 0, 0xA5, 2, 0, 0, 0xA9, 2, 0, 0, 0xAE, 2, 0 .rodata:0005BA40 DCB 0, 0xB3, 2, 0, 0, 0xB8, 2, 0, 0, 0xBD, 2, 0, 0, 0xC2 .rodata:0005BA40 DCB 2, 0, 0, 0xC7, 2, 0, 0, 0xCC, 2, 0, 0, 0xD1, 2, 0 .rodata:0005BA40 DCB 0, 0xD6, 2, 0, 0, 0xDB, 2, 0, 0, 0xDF, 2, 0, 0, 0xE3 .rodata:0005BA40 DCB 2, 0, 0, 0xE7, 2, 0, 0, 0xEB, 2, 0, 0, 0xEF, 2, 0 .rodata:0005BA40 DCB 0, 0xF3, 2, 0, 0, 0xF7, 2, 0, 0, 0xFB, 2, 0, 0, 0 .rodata:0005BA40 DCB 3, 0, 0, 5, 3, 0, 0, 0xA, 3, 0, 0, 0xF, 3, 0, 0, 0x14 .rodata:0005BA40 DCB 3, 0, 0, 0x19, 3, 0, 0, 0x1E, 3, 0, 0, 0x23, 3, 0 .rodata:0005BA40 DCB 0, 0x28, 3, 0, 0, 0x2C, 3, 0, 0, 0x31, 3, 0, 0, 0x36 .rodata:0005BA40 DCB 3, 0, 0, 0x3A, 3, 0, 0, 0x3E, 3, 0, 0, 0x42, 3, 0 .rodata:0005BA40 DCB 0, 0x46, 3, 0, 0, 0x4A, 3, 0, 0, 0x4F, 3, 0, 0, 0x52 .rodata:0005BA40 DCB 3, 0, 0, 0x56, 3, 0, 0, 0x5B, 3, 0, 0, 0x60, 3, 0 .rodata:0005BA40 DCB 0, 0x65, 3, 0, 0, 0x6A, 3, 0, 0, 0x6F, 3, 0, 0, 0x74 .rodata:0005BA40 DCB 3, 0, 0, 0x79, 3, 0, 0, 0x7E, 3, 0, 0, 0x83, 3, 0 .rodata:0005BA40 DCB 0, 0x89, 3, 0, 0, 0x8F, 3, 0, 0, 0x95, 3, 0, 0, 0x9B .rodata:0005BA40 DCB 3, 0, 0, 0xA1, 3, 0, 0, 0xA7, 3, 0, 0, 0xAD, 3, 0 .rodata:0005BA40 DCB 0, 0xB3, 3, 0, 0, 0xB9, 3, 0, 0, 0xBF, 3, 0, 0, 0xC5 .rodata:0005BA40 DCB 3, 0, 0, 0xCA, 3, 0, 0, 0xCF, 3, 0, 0, 0xD4, 3, 0 .rodata:0005BA40 DCB 0, 0xD9, 3, 0, 0, 0xDE, 3, 0, 0, 0xE3, 3, 0, 0, 0xE8 .rodata:0005BA40 DCB 3, 0, 0, 0xED, 3, 0, 0, 0xF2, 3, 0, 0, 0xF8, 3, 0 .rodata:0005BA40 DCB 0, 0xFE, 3, 0, 0, 4, 4, 0, 0, 0xA, 4, 0, 0, 0x10, 4 .rodata:0005BA40 DCB 0, 0, 0x16, 4, 0, 0, 0x1C, 4, 0, 0, 0x22, 4, 0, 0 .rodata:0005BA40 DCB 0x28, 4, 0, 0, 0x2E, 4, 0, 0, 0x34, 4, 0, 0, 0x38 .rodata:0005BA40 DCB 4, 0, 0, 0x3C, 4, 0, 0, 0x40, 4, 0, 0, 0x44, 4, 0 .rodata:0005BA40 DCB 0, 0x48, 4, 0, 0, 0x4C, 4, 0, 0, 0x50, 4, 0, 0, 0x54 .rodata:0005BA40 DCB 4, 0, 0, 0x58, 4, 0, 0, 0x5D, 4, 0, 0, 0x62, 4, 0 .rodata:0005BA40 DCB 0, 0x67, 4, 0, 0, 0x6C, 4, 0, 0, 0x71, 4, 0, 0, 0x76 .rodata:0005BA40 DCB 4, 0, 0, 0x7B, 4, 0, 0, 0x80, 4, 0, 0, 0x85, 4, 0 .rodata:0005BA40 DCB 0, 0x8A, 4, 0, 0, 0x8F, 4, 0, 0, 0x94, 4, 0, 0, 0x99 .rodata:0005BA40 DCB 4, 0, 0, 0x9E, 4, 0, 0, 0xA3, 4, 0, 0, 0xA8, 4, 0 .rodata:0005BA40 DCB 0, 0xAD, 4, 0, 0, 0xB2, 4, 0, 0, 0xB7, 4, 0, 0, 0xBC .rodata:0005BA40 DCB 4, 0, 0, 0xC1, 4, 0, 0, 0xC6, 4, 0, 0, 0xCB, 4, 0 .rodata:0005BA40 DCB 0, 0xD0, 4, 0, 0, 0xD5, 4, 0, 0, 0xDA, 4, 0, 0, 0xDF .rodata:0005BA40 DCB 4, 0, 0, 0xE4, 4, 0, 0, 0xE9, 4, 0, 0, 0xEE, 4, 0 .rodata:0005BA40 DCB 0, 0xF3, 4, 0, 0, 0xF8, 4, 0, 0, 0xFD, 4, 0, 0, 2 .rodata:0005BA40 DCB 5, 0, 0, 7, 5, 0, 0, 0xC, 5, 0, 0, 0x11, 5, 0, 0, 0x16 .rodata:0005BA40 DCB 5, 0, 0, 0x1B, 5, 0, 0, 0x20, 5, 0, 0, 0x25, 5, 0 .rodata:0005BA40 DCB 0, 0x2A, 5, 0, 0, 0x2F, 5, 0, 0, 0x34, 5, 0, 0, 0x39 .rodata:0005BA40 DCB 5, 0, 0, 0x3E, 5, 0, 0, 0x43, 5, 0, 0, 0x48, 5, 0 .rodata:0005BA40 DCB 0, 0x4D, 5, 0, 0, 0x52, 5, 0, 0, 0x57, 5, 0, 0, 0x5C .rodata:0005BA40 DCB 5, 0, 0, 0x61, 5, 0, 0, 0x66, 5, 0, 0, 0x6B, 5, 0 .rodata:0005BA40 DCB 0, 0x70, 5, 0, 0, 0x75, 5, 0, 0, 0x7A, 5, 0, 0, 0x7F .rodata:0005BA40 DCB 5, 0, 0, 0x84, 5, 0, 0, 0x89, 5, 0, 0, 0x8E, 5, 0 .rodata:0005BA40 DCB 0, 0x93, 5, 0, 0, 0x98, 5, 0, 0, 0x9D, 5, 0, 0, 0xA2 .rodata:0005BA40 DCB 5, 0, 0, 0xA7, 5, 0, 0, 0xAC, 5, 0, 0, 0xB1, 5, 0 .rodata:0005BA40 DCB 0, 0xB6, 5, 0, 0, 0xBB, 5, 0, 0, 0xC0, 5, 0, 0, 0xC5 .rodata:0005BA40 DCB 5, 0, 0, 0xCA, 5, 0, 0, 0xCF, 5, 0, 0, 0xD4, 5, 0 .rodata:0005BA40 DCB 0, 0xD9, 5, 0, 0, 0xDE, 5, 0, 0, 0xE3, 5, 0, 0, 0xE8 .rodata:0005BA40 DCB 5, 0, 0, 0xED, 5, 0, 0, 0xF2, 5, 0, 0, 0xF7, 5, 0 .rodata:0005BA40 DCB 0, 0xFC, 5, 0, 0, 1, 6, 0, 0, 6, 6, 0, 0, 0xB, 6, 0 .rodata:0005BA40 DCB 0, 0x10, 6, 0, 0, 0x15, 6, 0, 0, 0x1A, 6, 0, 0, 0x1D .rodata:0005BA40 DCB 6, 0, 0, 0x20, 6, 0, 0, 0x23, 6, 0, 0, 0x26, 6, 0 .rodata:0005BA40 DCB 0, 0x29, 6, 0, 0, 0x2C, 6, 0, 0, 0x2F, 6, 0, 0, 0x32 .rodata:0005BA40 DCB 6, 0, 0, 0x35, 6, 0, 0, 0x38, 6, 0, 0, 0x3B, 6, 0 .rodata:0005BA40 DCB 0, 0x3E, 6, 0, 0, 0x41, 6, 0, 0, 0x46, 6, 0, 0, 0x4A .rodata:0005BA40 DCB 6, 0, 0, 0x4E, 6, 0, 0, 0x53, 6, 0, 0, 0x57, 6, 0 .rodata:0005BA40 DCB 0, 0x5B, 6, 0, 0, 0x5F, 6, 0, 0, 0x63, 6, 0, 0, 0x67 .rodata:0005BA40 DCB 6, 0, 0, 0x6B, 6, 0, 0, 0x6F, 6, 0, 0, 0x73, 6, 0 .rodata:0005BA40 DCB 0, 0x77, 6, 0, 0, 0x7B, 6, 0, 0, 0x80, 6, 0, 0, 0x86 .rodata:0005BA40 DCB 6, 0, 0, 0x8A, 6, 0, 0, 0x8E, 6, 0, 0, 0x92, 6, 0 .rodata:0005BA40 DCB 0, 0x96, 6, 0, 0, 0x9A, 6, 0, 0, 0x9E, 6, 0, 0, 0xA2 .rodata:0005BA40 DCB 6, 0, 0, 0xA7, 6, 0, 0, 0xAC, 6, 0, 0, 0xB1, 6, 0 .rodata:0005BA40 DCB 0, 0xB6, 6, 0, 0, 0xBA, 6, 0, 0, 0xBE, 6, 0, 0, 0xC2 .rodata:0005BA40 DCB 6, 0, 0, 0xC6, 6, 0, 0, 0xCA, 6, 0, 0, 0xCE, 6, 0 .rodata:0005BA40 DCB 0, 0xD2, 6, 0, 0, 0xD6, 6, 0, 0, 0xDA, 6, 0, 0, 0xDE .rodata:0005BA40 DCB 6, 0, 0, 0xE4, 6, 0, 0, 0xEA, 6, 0, 0, 0xEF, 6, 0 .rodata:0005BA40 DCB 0, 0xF5, 6, 0, 0, 0xFB, 6, 0, 0, 1, 7, 0, 0, 6, 7 .rodata:0005BA40 DCB 0, 0, 0xC, 7, 0, 0, 0x11, 7, 0, 0, 0x18, 7, 0, 0, 0x1C .rodata:0005BA40 DCB 7, 0, 0, 0x21, 7, 0, 0, 0x26, 7, 0, 0, 0x2B, 7, 0 .rodata:0005BA40 DCB 0, 0x30, 7, 0, 0, 0x37, 7, 0, 0, 0x40, 7, 0, 0, 0x44 .rodata:0005BA40 DCB 7, 0, 0, 0x48, 7, 0, 0, 0x4C, 7, 0, 0, 0x50, 7, 0 .rodata:0005BA40 DCB 0, 0x54, 7, 0, 0, 0x58, 7, 0, 0, 0x5C, 7, 0, 0, 0x60 .rodata:0005BA40 DCB 7, 0, 0, 0x64, 7, 0, 0, 0x68, 7, 0, 0, 0x6C, 7, 0 .rodata:0005BA40 DCB 0, 0x70, 7, 0, 0, 0x74, 7, 0, 0, 0x78, 7, 0, 0, 0x7C .rodata:0005BA40 DCB 7, 0, 0, 0x80, 7, 0, 0, 0x86, 7, 0, 0, 0x8A, 7, 0 .rodata:0005BA40 DCB 0, 0x8E, 7, 0, 0, 0x92, 7, 0, 0, 0x98, 7, 0, 0, 0x9D .rodata:0005BA40 DCB 7, 0, 0, 0xA1, 7, 0, 0, 0xA5, 7, 0, 0, 0xA9, 7, 0 .rodata:0005BA40 DCB 0, 0xAD, 7, 0, 0, 0xB1, 7, 0, 0, 0xB5, 7, 0, 0, 0xB9 .rodata:0005BA40 DCB 7, 0, 0, 0xBD, 7, 0, 0, 0xC1, 7, 0, 0, 0xC5, 7, 0 .rodata:0005BA40 DCB 0, 0xCA, 7, 0, 0, 0xCE, 7, 0, 0, 0xD2, 7, 0, 0, 0xD7 .rodata:0005BA40 DCB 7, 0, 0, 0xDC, 7, 0, 0, 0xE0, 7, 0, 0, 0xE6, 7, 0 .rodata:0005BA40 DCB 0, 0xEB, 7, 0, 0, 0xEF, 7, 0, 0, 0xF3, 7, 0, 0, 0xF7 .rodata:0005BA40 DCB 7, 0, 0, 0xFB, 7, 0, 0, 0xFF, 7, 0, 0, 3, 8, 0, 0 .rodata:0005BA40 DCB 7, 8, 0, 0, 0xC, 8, 0, 0, 0x11, 8, 0, 0, 0x15, 8, 0 .rodata:0005BA40 DCB 0, 0x18, 8, 0, 0, 0x1B, 8, 0, 0, 0x1E, 8, 0, 0, 0x21 .rodata:0005BA40 DCB 8, 0, 0, 0x24, 8, 0, 0, 0x27, 8, 0, 0, 0x2A, 8, 0 .rodata:0005BA40 DCB 0, 0x2D, 8, 0, 0, 0x30, 8, 0, 0, 0x33, 8, 0, 0, 0x36 .rodata:0005BA40 DCB 8, 0, 0, 0x39, 8, 0, 0, 0x3C, 8, 0, 0, 0x3F, 8, 0 .rodata:0005BA40 DCB 0, 0x42, 8, 0, 0, 0x45, 8, 0, 0, 0x48, 8, 0, 0, 0x4B .rodata:0005BA40 DCB 8, 0, 0, 0x4E, 8, 0, 0, 0x51, 8, 0, 0, 0x54, 8, 0 .rodata:0005BA40 DCB 0, 0x57, 8, 0, 0, 0x5A, 8, 0, 0, 0x5D, 8, 0, 0, 0x60 .rodata:0005BA40 DCB 8, 0, 0, 0x63, 8, 0, 0, 0x65, 8, 0, 0, 0x68, 8, 0 .rodata:0005BA40 DCB 0, 0x6B, 8, 0, 0, 0x6E, 8, 0, 0, 0x71, 8, 0, 0, 0x74 .rodata:0005BA40 DCB 8, 0, 0, 0x77, 8, 0, 0, 0x7A, 8, 0, 0, 0x7D, 8, 0 .rodata:0005BA40 DCB 0, 0x80, 8, 0, 0, 0x83, 8, 0, 0, 0x86, 8, 0, 0, 0x89 .rodata:0005BA40 DCB 8, 0, 0, 0x8C, 8, 0, 0, 0x8F, 8, 0, 0, 0x92, 8, 0 .rodata:0005BA40 DCB 0, 0x95, 8, 0, 0, 0x98, 8, 0, 0, 0x9B, 8, 0, 0, 0x9E .rodata:0005BA40 DCB 8, 0, 0, 0xA1, 8, 0, 0, 0xA4, 8, 0, 0, 0xA7, 8, 0 .rodata:0005BA40 DCB 0, 0xAA, 8, 0, 0, 0xAD, 8, 0, 0, 0xB0, 8, 0, 0, 0xB3 .rodata:0005BA40 DCB 8, 0, 0, 0xB6, 8, 0, 0, 0xB9, 8, 0, 0, 0xBC, 8, 0 .rodata:0005BA40 DCB 0, 0xBF, 8, 0, 0, 0xC2, 8, 0, 0, 0xC5, 8, 0, 0, 0xC8 .rodata:0005BA40 DCB 8, 0, 0, 0xCB, 8, 0, 0, 0xCE, 8, 0, 0, 0xD1, 8, 0 .rodata:0005BA40 DCB 0, 0xD4, 8, 0, 0, 0xD7, 8, 0, 0, 0xDA, 8, 0, 0, 0xDD .rodata:0005BA40 DCB 8, 0, 0, 0xE0, 8, 0, 0, 0xE3, 8, 0, 0, 0xE6, 8, 0 .rodata:0005BA40 DCB 0, 0xE9, 8, 0, 0, 0xEC, 8, 0, 0, 0xEF, 8, 0, 0, 0xF2 .rodata:0005BA40 DCB 8, 0, 0, 0xF5, 8, 0, 0, 0xF8, 8, 0, 0, 0xFB, 8, 0 .rodata:0005BA40 DCB 0, 0xFE, 8, 0, 0, 1, 9, 0, 0, 4, 9, 0, 0, 7, 9, 0 .rodata:0005BA40 DCB 0, 0xA, 9, 0, 0, 0xD, 9, 0, 0, 0x10, 9, 0, 0, 0x13 .rodata:0005BA40 DCB 9, 0, 0, 0x16, 9, 0, 0, 0x19, 9, 0, 0, 0x1C, 9, 0 .rodata:0005BA40 DCB 0, 0x1F, 9, 0, 0, 0x22, 9, 0, 0, 0x25, 9, 0, 0, 0x28 .rodata:0005BA40 DCB 9, 0, 0, 0x2B, 9, 0, 0, 0x2E, 9, 0, 0, 0x31, 9, 0 .rodata:0005BA40 DCB 0, 0x34, 9, 0, 0, 0x37, 9, 0, 0, 0x3A, 9, 0, 0, 0x3D .rodata:0005BA40 DCB 9, 0, 0, 0x40, 9, 0, 0, 0x43, 9, 0, 0, 0x46, 9, 0 .rodata:0005BA40 DCB 0, 0x49, 9, 0, 0, 0x4C, 9, 0, 0, 0x4F, 9, 0, 0, 0x52 .rodata:0005BA40 DCB 9, 0, 0, 0x55, 9, 0, 0, 0x58, 9, 0, 0, 0x5B, 9, 0 .rodata:0005BA40 DCB 0, 0x5E, 9, 0, 0, 0x61, 9, 0, 0, 0x64, 9, 0, 0, 0x67 .rodata:0005BA40 DCB 9, 0, 0, 0x6A, 9, 0, 0, 0x6D, 9, 0, 0, 0x70, 9, 0 .rodata:0005BA40 DCB 0, 0x73, 9, 0, 0, 0x76, 9, 0, 0, 0x79, 9, 0, 0, 0x7C .rodata:0005BA40 DCB 9, 0, 0 .rodata:0005C378 translit_to_tbl DCB 0x20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0 .rodata:0005C378 DCB 0, 0x43, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0x3C, 0, 0, 0, 0x3C, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x2D, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C378 DCB 0, 0, 0, 0x52, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0x2C, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3E, 0, 0 .rodata:0005C378 DCB 0, 0x3E, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x20, 0 .rodata:0005C378 DCB 0, 0, 0x31, 0, 0, 0, 0x2F, 0, 0, 0, 0x34, 0, 0, 0 .rodata:0005C378 DCB 0x20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x20, 0, 0 .rodata:0005C378 DCB 0, 0x31, 0, 0, 0, 0x2F, 0, 0, 0, 0x32, 0, 0, 0, 0x20 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x20, 0, 0, 0, 0x33 .rodata:0005C378 DCB 0, 0, 0, 0x2F, 0, 0, 0, 0x34, 0, 0, 0, 0x20, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x41, 0, 0, 0, 0x45, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x78, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0x73, 0, 0, 0, 0x73, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x61, 0, 0, 0, 0x65, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0x49, 0, 0, 0, 0x4A, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x69, 0, 0, 0, 0x6A, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x27, 0, 0, 0, 0x6E .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x4F, 0, 0, 0, 0x45 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x4F, 0, 0, 0, 0x45 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6F, 0, 0, 0, 0x65 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6F, 0, 0, 0, 0x65 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x73, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x4C, 0, 0, 0, 0x4A, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0x4C, 0, 0, 0, 0x6A, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6C, 0, 0, 0, 0x6A, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x4E, 0, 0, 0, 0x4A .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x4E, 0, 0, 0, 0x6A .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6E, 0, 0, 0, 0x6A .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x44, 0, 0, 0, 0x5A .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x44, 0, 0, 0, 0x7A .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x64, 0, 0, 0, 0x7A .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x27, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x5E, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x60 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x5F, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x3A, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x7E, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x20 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x20, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x20, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x20 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x20, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x20, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x2D, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x2D, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2D .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2D, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x2D, 0, 0, 0, 0x2D, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0x2D, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0x27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2C, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x27, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0x22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0x22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2C, 0 .rodata:0005C378 DCB 0, 0, 0x2C, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x22 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2B, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x6F, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x2E, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2E .rodata:0005C378 DCB 0, 0, 0, 0x2E, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2E .rodata:0005C378 DCB 0, 0, 0, 0x2E, 0, 0, 0, 0x2E, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0x60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x60, 0, 0 .rodata:0005C378 DCB 0, 0x60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x60, 0 .rodata:0005C378 DCB 0, 0, 0x60, 0, 0, 0, 0x60, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x3C, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3E .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x21, 0, 0, 0, 0x21 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3F, 0, 0, 0, 0x21 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x21, 0, 0, 0, 0x3F .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x52, 0, 0, 0, 0x73 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x45, 0, 0, 0, 0x55 .rodata:0005C378 DCB 0, 0, 0, 0x52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x61 .rodata:0005C378 DCB 0, 0, 0, 0x2F, 0, 0, 0, 0x63, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x61, 0, 0, 0, 0x2F, 0, 0, 0, 0x73, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x43, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0x63, 0, 0, 0, 0x2F, 0, 0, 0, 0x6F .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x63, 0, 0, 0, 0x2F .rodata:0005C378 DCB 0, 0, 0, 0x75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x67 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x48, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x48, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x68 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x49, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x49, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x4C, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6C .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x4E, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x4E, 0, 0, 0, 0x6F, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0x50, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0x52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x52, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x52, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0x54, 0, 0, 0, 0x45, 0, 0, 0, 0x4C .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x54 .rodata:0005C378 DCB 0, 0, 0, 0x4D, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x5A, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0x4F, 0, 0, 0, 0x68, 0, 0, 0, 0x6D, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0x5A, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0x42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x43 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x65, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x65, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x46 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x4D, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x6F, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x20 .rodata:0005C378 DCB 0, 0, 0, 0x31, 0, 0, 0, 0x2F, 0, 0, 0, 0x33, 0, 0 .rodata:0005C378 DCB 0, 0x20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x20, 0 .rodata:0005C378 DCB 0, 0, 0x32, 0, 0, 0, 0x2F, 0, 0, 0, 0x33, 0, 0, 0 .rodata:0005C378 DCB 0x20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x20, 0, 0 .rodata:0005C378 DCB 0, 0x31, 0, 0, 0, 0x2F, 0, 0, 0, 0x35, 0, 0, 0, 0x20 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x20, 0, 0, 0, 0x32 .rodata:0005C378 DCB 0, 0, 0, 0x2F, 0, 0, 0, 0x35, 0, 0, 0, 0x20, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x20, 0, 0, 0, 0x33, 0 .rodata:0005C378 DCB 0, 0, 0x2F, 0, 0, 0, 0x35, 0, 0, 0, 0x20, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0x20, 0, 0, 0, 0x34, 0, 0 .rodata:0005C378 DCB 0, 0x2F, 0, 0, 0, 0x35, 0, 0, 0, 0x20, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x20, 0, 0, 0, 0x31, 0, 0, 0 .rodata:0005C378 DCB 0x2F, 0, 0, 0, 0x36, 0, 0, 0, 0x20, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0x20, 0, 0, 0, 0x35, 0, 0, 0, 0x2F .rodata:0005C378 DCB 0, 0, 0, 0x36, 0, 0, 0, 0x20, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x20, 0, 0, 0, 0x31, 0, 0, 0, 0x2F, 0 .rodata:0005C378 DCB 0, 0, 0x38, 0, 0, 0, 0x20, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x20, 0, 0, 0, 0x33, 0, 0, 0, 0x2F, 0, 0 .rodata:0005C378 DCB 0, 0x38, 0, 0, 0, 0x20, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0x20, 0, 0, 0, 0x35, 0, 0, 0, 0x2F, 0, 0, 0 .rodata:0005C378 DCB 0x38, 0, 0, 0, 0x20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0x20, 0, 0, 0, 0x37, 0, 0, 0, 0x2F, 0, 0, 0, 0x38 .rodata:0005C378 DCB 0, 0, 0, 0x20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x20 .rodata:0005C378 DCB 0, 0, 0, 0x31, 0, 0, 0, 0x2F, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0x49, 0, 0, 0, 0x49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0x49, 0, 0, 0, 0x49, 0, 0, 0, 0x49, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x49, 0, 0, 0, 0x56, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0x56, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x56, 0, 0, 0, 0x49, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0x56, 0, 0, 0, 0x49, 0, 0, 0, 0x49 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x56, 0, 0, 0, 0x49 .rodata:0005C378 DCB 0, 0, 0, 0x49, 0, 0, 0, 0x49, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x49, 0, 0, 0, 0x58, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0x58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0x58, 0, 0, 0, 0x49, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0x58, 0, 0, 0, 0x49, 0, 0, 0, 0x49, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0x4C, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0x44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x4D, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x69, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0x69, 0, 0, 0, 0x69, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0x69, 0, 0, 0, 0x69, 0, 0, 0, 0x69 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x69, 0, 0, 0, 0x76 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x76, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x76, 0, 0, 0, 0x69, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0x76, 0, 0, 0, 0x69, 0, 0 .rodata:0005C378 DCB 0, 0x69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x76, 0 .rodata:0005C378 DCB 0, 0, 0x69, 0, 0, 0, 0x69, 0, 0, 0, 0x69, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0x69, 0, 0, 0, 0x78, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x78, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0x78, 0, 0, 0, 0x69, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0x78, 0, 0, 0, 0x69, 0, 0, 0, 0x69 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6C, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x63, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6D .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3C, 0, 0, 0, 0x2D .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2D, 0, 0, 0, 0x3E .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3C, 0, 0, 0, 0x2D .rodata:0005C378 DCB 0, 0, 0, 0x3E, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3C .rodata:0005C378 DCB 0, 0, 0, 0x3D, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3D .rodata:0005C378 DCB 0, 0, 0, 0x3E, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3C .rodata:0005C378 DCB 0, 0, 0, 0x3D, 0, 0, 0, 0x3E, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x2D, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0x2F, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x5C, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2A, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0x7C, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0x3A, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7E, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3C, 0, 0, 0, 0x3D .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3E, 0, 0, 0, 0x3D .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3C, 0, 0, 0, 0x3C .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3E, 0, 0, 0, 0x3E .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3C, 0, 0, 0, 0x3C .rodata:0005C378 DCB 0, 0, 0, 0x3C, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3E .rodata:0005C378 DCB 0, 0, 0, 0x3E, 0, 0, 0, 0x3E, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x4E, 0, 0, 0, 0x55, 0, 0, 0, 0x4C, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x53, 0, 0, 0, 0x4F .rodata:0005C378 DCB 0, 0, 0, 0x48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x53 .rodata:0005C378 DCB 0, 0, 0, 0x54, 0, 0, 0, 0x58, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x45, 0, 0, 0, 0x54, 0, 0, 0, 0x58, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x45, 0, 0, 0, 0x4F .rodata:0005C378 DCB 0, 0, 0, 0x54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x45 .rodata:0005C378 DCB 0, 0, 0, 0x4E, 0, 0, 0, 0x51, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x41, 0, 0, 0, 0x43, 0, 0, 0, 0x4B, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x42, 0, 0, 0, 0x45 .rodata:0005C378 DCB 0, 0, 0, 0x4C, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x42 .rodata:0005C378 DCB 0, 0, 0, 0x53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x48 .rodata:0005C378 DCB 0, 0, 0, 0x54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x4C .rodata:0005C378 DCB 0, 0, 0, 0x46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x56 .rodata:0005C378 DCB 0, 0, 0, 0x54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x46 .rodata:0005C378 DCB 0, 0, 0, 0x46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x43 .rodata:0005C378 DCB 0, 0, 0, 0x52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x53 .rodata:0005C378 DCB 0, 0, 0, 0x4F, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x53 .rodata:0005C378 DCB 0, 0, 0, 0x49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x44 .rodata:0005C378 DCB 0, 0, 0, 0x4C, 0, 0, 0, 0x45, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x44, 0, 0, 0, 0x43, 0, 0, 0, 0x31, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x44, 0, 0, 0, 0x43 .rodata:0005C378 DCB 0, 0, 0, 0x32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x44 .rodata:0005C378 DCB 0, 0, 0, 0x43, 0, 0, 0, 0x33, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x44, 0, 0, 0, 0x43, 0, 0, 0, 0x34, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x4E, 0, 0, 0, 0x41 .rodata:0005C378 DCB 0, 0, 0, 0x4B, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x53 .rodata:0005C378 DCB 0, 0, 0, 0x59, 0, 0, 0, 0x4E, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x45, 0, 0, 0, 0x54, 0, 0, 0, 0x42, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x43, 0, 0, 0, 0x41 .rodata:0005C378 DCB 0, 0, 0, 0x4E, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x45 .rodata:0005C378 DCB 0, 0, 0, 0x4D, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x53 .rodata:0005C378 DCB 0, 0, 0, 0x55, 0, 0, 0, 0x42, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x45, 0, 0, 0, 0x53, 0, 0, 0, 0x43, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x46, 0, 0, 0, 0x53 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x47, 0, 0, 0, 0x53 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x52, 0, 0, 0, 0x53 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x55, 0, 0, 0, 0x53 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x53, 0, 0, 0, 0x50 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x44, 0, 0, 0, 0x45 .rodata:0005C378 DCB 0, 0, 0, 0x4C, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x5F .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x4E, 0, 0, 0, 0x4C .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x31 .rodata:0005C378 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C378 DCB 0, 0, 0, 0x32, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x33, 0, 0, 0, 0x29, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x34 .rodata:0005C378 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C378 DCB 0, 0, 0, 0x35, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x36, 0, 0, 0, 0x29, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x37 .rodata:0005C378 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C378 DCB 0, 0, 0, 0x38, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x39, 0, 0, 0, 0x29, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x31 .rodata:0005C378 DCB 0, 0, 0, 0x30, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x31, 0, 0, 0, 0x31, 0 .rodata:0005C378 DCB 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C378 DCB 0, 0, 0, 0x31, 0, 0, 0, 0x32, 0, 0, 0, 0x29, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x31, 0 .rodata:0005C378 DCB 0, 0, 0x33, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x28, 0, 0, 0, 0x31, 0, 0, 0, 0x34, 0, 0 .rodata:0005C378 DCB 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0 .rodata:0005C378 DCB 0, 0, 0x31, 0, 0, 0, 0x35, 0, 0, 0, 0x29, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x31, 0, 0 .rodata:0005C378 DCB 0, 0x36, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0x28, 0, 0, 0, 0x31, 0, 0, 0, 0x37, 0, 0, 0 .rodata:0005C378 DCB 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0 .rodata:0005C378 DCB 0, 0x31, 0, 0, 0, 0x38, 0, 0, 0, 0x29, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x31, 0, 0, 0 .rodata:0005C378 DCB 0x39, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0x28, 0, 0, 0, 0x32, 0, 0, 0, 0x30, 0, 0, 0, 0x29 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x31 .rodata:0005C378 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C378 DCB 0, 0, 0, 0x32, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x33, 0, 0, 0, 0x29, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x34 .rodata:0005C378 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C378 DCB 0, 0, 0, 0x35, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x36, 0, 0, 0, 0x29, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x37 .rodata:0005C378 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C378 DCB 0, 0, 0, 0x38, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x39, 0, 0, 0, 0x29, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x31 .rodata:0005C378 DCB 0, 0, 0, 0x30, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x31, 0, 0, 0, 0x31, 0 .rodata:0005C378 DCB 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C378 DCB 0, 0, 0, 0x31, 0, 0, 0, 0x32, 0, 0, 0, 0x29, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x31, 0 .rodata:0005C378 DCB 0, 0, 0x33, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x28, 0, 0, 0, 0x31, 0, 0, 0, 0x34, 0, 0 .rodata:0005C378 DCB 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0 .rodata:0005C378 DCB 0, 0, 0x31, 0, 0, 0, 0x35, 0, 0, 0, 0x29, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x31, 0, 0 .rodata:0005C378 DCB 0, 0x36, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0x28, 0, 0, 0, 0x31, 0, 0, 0, 0x37, 0, 0, 0 .rodata:0005C378 DCB 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0 .rodata:0005C378 DCB 0, 0x31, 0, 0, 0, 0x38, 0, 0, 0, 0x29, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x31, 0, 0, 0 .rodata:0005C378 DCB 0x39, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0x28, 0, 0, 0, 0x32, 0, 0, 0, 0x30, 0, 0, 0, 0x29 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x31, 0, 0, 0, 0x2E .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x32, 0, 0, 0, 0x2E .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x33, 0, 0, 0, 0x2E .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x34, 0, 0, 0, 0x2E .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x35, 0, 0, 0, 0x2E .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x36, 0, 0, 0, 0x2E .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x37, 0, 0, 0, 0x2E .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x38, 0, 0, 0, 0x2E .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x39, 0, 0, 0, 0x2E .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x31, 0, 0, 0, 0x30 .rodata:0005C378 DCB 0, 0, 0, 0x2E, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x31 .rodata:0005C378 DCB 0, 0, 0, 0x31, 0, 0, 0, 0x2E, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x31, 0, 0, 0, 0x32, 0, 0, 0, 0x2E, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x31, 0, 0, 0, 0x33 .rodata:0005C378 DCB 0, 0, 0, 0x2E, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x31 .rodata:0005C378 DCB 0, 0, 0, 0x34, 0, 0, 0, 0x2E, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x31, 0, 0, 0, 0x35, 0, 0, 0, 0x2E, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x31, 0, 0, 0, 0x36 .rodata:0005C378 DCB 0, 0, 0, 0x2E, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x31 .rodata:0005C378 DCB 0, 0, 0, 0x37, 0, 0, 0, 0x2E, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x31, 0, 0, 0, 0x38, 0, 0, 0, 0x2E, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x31, 0, 0, 0, 0x39 .rodata:0005C378 DCB 0, 0, 0, 0x2E, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x32 .rodata:0005C378 DCB 0, 0, 0, 0x30, 0, 0, 0, 0x2E, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x61, 0, 0, 0, 0x29, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x62 .rodata:0005C378 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C378 DCB 0, 0, 0, 0x63, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x64, 0, 0, 0, 0x29, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x65 .rodata:0005C378 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C378 DCB 0, 0, 0, 0x66, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x67, 0, 0, 0, 0x29, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x68 .rodata:0005C378 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C378 DCB 0, 0, 0, 0x69, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x6A, 0, 0, 0, 0x29, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x6B .rodata:0005C378 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C378 DCB 0, 0, 0, 0x6C, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x6D, 0, 0, 0, 0x29, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x6E .rodata:0005C378 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C378 DCB 0, 0, 0, 0x6F, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x70, 0, 0, 0, 0x29, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x71 .rodata:0005C378 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C378 DCB 0, 0, 0, 0x72, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x73, 0, 0, 0, 0x29, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x74 .rodata:0005C378 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C378 DCB 0, 0, 0, 0x75, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x76, 0, 0, 0, 0x29, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x77 .rodata:0005C378 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C378 DCB 0, 0, 0, 0x78, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x79, 0, 0, 0, 0x29, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x7A .rodata:0005C378 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C378 DCB 0, 0, 0, 0x41, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x42, 0, 0, 0, 0x29, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x43 .rodata:0005C378 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C378 DCB 0, 0, 0, 0x44, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x45, 0, 0, 0, 0x29, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x46 .rodata:0005C378 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C378 DCB 0, 0, 0, 0x47, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x48, 0, 0, 0, 0x29, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x49 .rodata:0005C378 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C378 DCB 0, 0, 0, 0x4A, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x4B, 0, 0, 0, 0x29, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x4C .rodata:0005C378 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C378 DCB 0, 0, 0, 0x4D, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x4E, 0, 0, 0, 0x29, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x4F .rodata:0005C378 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C378 DCB 0, 0, 0, 0x50, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x51, 0, 0, 0, 0x29, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x52 .rodata:0005C378 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C378 DCB 0, 0, 0, 0x53, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x54, 0, 0, 0, 0x29, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x55 .rodata:0005C378 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C378 DCB 0, 0, 0, 0x56, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x57, 0, 0, 0, 0x29, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x58 .rodata:0005C378 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C378 DCB 0, 0, 0, 0x59, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x5A, 0, 0, 0, 0x29, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x61 .rodata:0005C378 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C378 DCB 0, 0, 0, 0x62, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x63, 0, 0, 0, 0x29, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x64 .rodata:0005C378 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C378 DCB 0, 0, 0, 0x65, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x66, 0, 0, 0, 0x29, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x67 .rodata:0005C378 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C378 DCB 0, 0, 0, 0x68, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x69, 0, 0, 0, 0x29, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x6A .rodata:0005C378 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C378 DCB 0, 0, 0, 0x6B, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x6C, 0, 0, 0, 0x29, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x6D .rodata:0005C378 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C378 DCB 0, 0, 0, 0x6E, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x6F, 0, 0, 0, 0x29, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x70 .rodata:0005C378 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C378 DCB 0, 0, 0, 0x71, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x72, 0, 0, 0, 0x29, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x73 .rodata:0005C378 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C378 DCB 0, 0, 0, 0x74, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x75, 0, 0, 0, 0x29, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x76 .rodata:0005C378 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C378 DCB 0, 0, 0, 0x77, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x78, 0, 0, 0, 0x29, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0x79 .rodata:0005C378 DCB 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C378 DCB 0, 0, 0, 0x7A, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x28, 0, 0, 0, 0x30, 0, 0, 0, 0x29, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2D, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0x7C, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0x2B, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2B .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2B, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x2B, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x2B, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2B .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2B, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x2B, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x2B, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6F .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x20, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x68, 0, 0, 0, 0x50, 0, 0, 0 .rodata:0005C378 DCB 0x61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x64, 0, 0 .rodata:0005C378 DCB 0, 0x61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x41, 0 .rodata:0005C378 DCB 0, 0, 0x55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x62 .rodata:0005C378 DCB 0, 0, 0, 0x61, 0, 0, 0, 0x72, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x6F, 0, 0, 0, 0x56, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0x70, 0, 0, 0, 0x63, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0x70, 0, 0, 0, 0x41, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x6E, 0, 0, 0, 0x41, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0x75, 0, 0, 0, 0x41, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6D, 0, 0, 0, 0x41, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6B, 0, 0, 0, 0x41 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x4B, 0, 0, 0, 0x42 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x4D, 0, 0, 0, 0x42 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x47, 0, 0, 0, 0x42 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x63, 0, 0, 0, 0x61 .rodata:0005C378 DCB 0, 0, 0, 0x6C, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6B .rodata:0005C378 DCB 0, 0, 0, 0x63, 0, 0, 0, 0x61, 0, 0, 0, 0x6C, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x70, 0, 0, 0, 0x46, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6E, 0, 0, 0, 0x46 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x75, 0, 0, 0, 0x46 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x75, 0, 0, 0, 0x67 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6D, 0, 0, 0, 0x67 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6B, 0, 0, 0, 0x67 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x48, 0, 0, 0, 0x7A .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6B, 0, 0, 0, 0x48 .rodata:0005C378 DCB 0, 0, 0, 0x7A, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x4D .rodata:0005C378 DCB 0, 0, 0, 0x48, 0, 0, 0, 0x7A, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x47, 0, 0, 0, 0x48, 0, 0, 0, 0x7A, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x54, 0, 0, 0, 0x48 .rodata:0005C378 DCB 0, 0, 0, 0x7A, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x75 .rodata:0005C378 DCB 0, 0, 0, 0x6C, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6D .rodata:0005C378 DCB 0, 0, 0, 0x6C, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x64 .rodata:0005C378 DCB 0, 0, 0, 0x6C, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6B .rodata:0005C378 DCB 0, 0, 0, 0x6C, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x66 .rodata:0005C378 DCB 0, 0, 0, 0x6D, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6E .rodata:0005C378 DCB 0, 0, 0, 0x6D, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x75 .rodata:0005C378 DCB 0, 0, 0, 0x6D, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6D .rodata:0005C378 DCB 0, 0, 0, 0x6D, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x63 .rodata:0005C378 DCB 0, 0, 0, 0x6D, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6B .rodata:0005C378 DCB 0, 0, 0, 0x6D, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6D .rodata:0005C378 DCB 0, 0, 0, 0x6D, 0, 0, 0, 0x5E, 0, 0, 0, 0x32, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x63, 0, 0, 0, 0x6D, 0 .rodata:0005C378 DCB 0, 0, 0x5E, 0, 0, 0, 0x32, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x6D, 0, 0, 0, 0x5E, 0, 0, 0, 0x32, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6B, 0, 0, 0, 0x6D, 0 .rodata:0005C378 DCB 0, 0, 0x5E, 0, 0, 0, 0x32, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x6D, 0, 0, 0, 0x6D, 0, 0, 0, 0x5E, 0, 0 .rodata:0005C378 DCB 0, 0x33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x63, 0 .rodata:0005C378 DCB 0, 0, 0x6D, 0, 0, 0, 0x5E, 0, 0, 0, 0x33, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0x6D, 0, 0, 0, 0x5E, 0, 0 .rodata:0005C378 DCB 0, 0x33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6B, 0 .rodata:0005C378 DCB 0, 0, 0x6D, 0, 0, 0, 0x5E, 0, 0, 0, 0x33, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0x6D, 0, 0, 0, 0x2F, 0, 0 .rodata:0005C378 DCB 0, 0x73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6D, 0 .rodata:0005C378 DCB 0, 0, 0x2F, 0, 0, 0, 0x73, 0, 0, 0, 0x5E, 0, 0, 0 .rodata:0005C378 DCB 0x32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x50, 0, 0 .rodata:0005C378 DCB 0, 0x61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6B, 0 .rodata:0005C378 DCB 0, 0, 0x50, 0, 0, 0, 0x61, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x4D, 0, 0, 0, 0x50, 0, 0, 0, 0x61, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x47, 0, 0, 0, 0x50, 0 .rodata:0005C378 DCB 0, 0, 0x61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x72 .rodata:0005C378 DCB 0, 0, 0, 0x61, 0, 0, 0, 0x64, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x72, 0, 0, 0, 0x61, 0, 0, 0, 0x64, 0 .rodata:0005C378 DCB 0, 0, 0x2F, 0, 0, 0, 0x73, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x72, 0, 0, 0, 0x61, 0, 0, 0, 0x64, 0, 0 .rodata:0005C378 DCB 0, 0x2F, 0, 0, 0, 0x73, 0, 0, 0, 0x5E, 0, 0, 0, 0x32 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x70, 0, 0, 0, 0x73 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6E, 0, 0, 0, 0x73 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x75, 0, 0, 0, 0x73 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6D, 0, 0, 0, 0x73 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x70, 0, 0, 0, 0x56 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6E, 0, 0, 0, 0x56 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x75, 0, 0, 0, 0x56 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6D, 0, 0, 0, 0x56 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6B, 0, 0, 0, 0x56 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x4D, 0, 0, 0, 0x56 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x70, 0, 0, 0, 0x57 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6E, 0, 0, 0, 0x57 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x75, 0, 0, 0, 0x57 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6D, 0, 0, 0, 0x57 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6B, 0, 0, 0, 0x57 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x4D, 0, 0, 0, 0x57 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x61, 0, 0, 0, 0x2E .rodata:0005C378 DCB 0, 0, 0, 0x6D, 0, 0, 0, 0x2E, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x42, 0, 0, 0, 0x71, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0x63, 0, 0, 0, 0x63, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0x63, 0, 0, 0, 0x64, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x43, 0, 0, 0, 0x2F, 0, 0, 0 .rodata:0005C378 DCB 0x6B, 0, 0, 0, 0x67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0x43, 0, 0, 0, 0x6F, 0, 0, 0, 0x2E, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x64, 0, 0, 0, 0x42, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0x47, 0, 0, 0, 0x79, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x68, 0, 0, 0, 0x61, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x48, 0, 0, 0, 0x50 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x69, 0, 0, 0, 0x6E .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x4B, 0, 0, 0, 0x4B .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x4B, 0, 0, 0, 0x4D .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6B, 0, 0, 0, 0x74 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6C, 0, 0, 0, 0x6D .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6C, 0, 0, 0, 0x6E .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6C, 0, 0, 0, 0x6F .rodata:0005C378 DCB 0, 0, 0, 0x67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6C .rodata:0005C378 DCB 0, 0, 0, 0x78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6D .rodata:0005C378 DCB 0, 0, 0, 0x62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6D .rodata:0005C378 DCB 0, 0, 0, 0x69, 0, 0, 0, 0x6C, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x6D, 0, 0, 0, 0x6F, 0, 0, 0, 0x6C, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x50, 0, 0, 0, 0x48 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x70, 0, 0, 0, 0x2E .rodata:0005C378 DCB 0, 0, 0, 0x6D, 0, 0, 0, 0x2E, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x50, 0, 0, 0, 0x50, 0, 0, 0, 0x4D, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x50, 0, 0, 0, 0x52 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x73, 0, 0, 0, 0x72 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x53, 0, 0, 0, 0x76 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x57, 0, 0, 0, 0x62 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x66, 0, 0, 0, 0x66 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x66, 0, 0, 0, 0x69 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x66, 0, 0, 0, 0x6C .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x66, 0, 0, 0, 0x66 .rodata:0005C378 DCB 0, 0, 0, 0x69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x66 .rodata:0005C378 DCB 0, 0, 0, 0x66, 0, 0, 0, 0x6C, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0x73, 0, 0, 0, 0x74, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0x2B, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0x5F, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x5F, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x5F, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0x2C, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0x2E, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3B .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3A, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x3F, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x29, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x7B, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x7D, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x23 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x26, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x2A, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x2B, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2D .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3C, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x3E, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x3D, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x5C .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x24, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x25, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x21, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x23 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x24, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x25, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x27 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x29, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x2A, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2B .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2C, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x2D, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x2E, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2F .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x30, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x31, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x33 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x34, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x35, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x37 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x38, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x39, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x3A, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3B .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3C, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x3D, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x3E, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3F .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x40, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x41, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x43 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x44, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x45, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x47 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x48, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x49, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x4A, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x4B .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x4C, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x4D, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x4E, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x4F .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x50, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x51, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x53 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x54, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x55, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x57 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x58, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x59, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x5A, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x5B .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x5C, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x5D, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x5E, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x5F .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x60, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x61, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x63 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x64, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x65, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x67 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x68, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x69, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x6A, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6B .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6C, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x6D, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x6E, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x6F .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x70, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x71, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x73 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x74, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x75, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x77 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x78, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x79, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x7A, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7B .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7C, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0, 0, 0, 0, 0x7D, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005C378 DCB 0, 0, 0, 0x7E, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005E974 EXPORT _nl_C_LC_CTYPE_class .rodata:0005E974 _nl_C_LC_CTYPE_class DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005E974 ; DATA XREF: .rodata:000601ACo .rodata:0005E974 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005E974 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005E974 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005E974 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005E974 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005E974 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005E974 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005E974 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005E974 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005E974 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005E974 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005E974 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005E974 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005E974 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005E974 DCB 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0 .rodata:0005E974 DCB 2, 0, 3, 0x20, 2, 0x20, 2, 0x20, 2, 0x20, 2, 0x20 .rodata:0005E974 DCB 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2 .rodata:0005E974 DCB 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0 .rodata:0005E974 DCB 2, 0, 1, 0x60, 4, 0xC0, 4, 0xC0, 4, 0xC0, 4, 0xC0 .rodata:0005E974 DCB 4, 0xC0, 4, 0xC0, 4, 0xC0, 4, 0xC0, 4, 0xC0, 4, 0xC0 .rodata:0005E974 DCB 4, 0xC0, 4, 0xC0, 4, 0xC0, 4, 0xC0, 4, 0xC0, 8, 0xD8 .rodata:0005E974 DCB 8, 0xD8, 8, 0xD8, 8, 0xD8, 8, 0xD8, 8, 0xD8, 8, 0xD8 .rodata:0005E974 DCB 8, 0xD8, 8, 0xD8, 8, 0xD8, 4, 0xC0, 4, 0xC0, 4, 0xC0 .rodata:0005E974 DCB 4, 0xC0, 4, 0xC0, 4, 0xC0, 4, 0xC0, 8, 0xD5, 8, 0xD5 .rodata:0005E974 DCB 8, 0xD5, 8, 0xD5, 8, 0xD5, 8, 0xD5, 8, 0xC5, 8, 0xC5 .rodata:0005E974 DCB 8, 0xC5, 8, 0xC5, 8, 0xC5, 8, 0xC5, 8, 0xC5, 8, 0xC5 .rodata:0005E974 DCB 8, 0xC5, 8, 0xC5, 8, 0xC5, 8, 0xC5, 8, 0xC5, 8, 0xC5 .rodata:0005E974 DCB 8, 0xC5, 8, 0xC5, 8, 0xC5, 8, 0xC5, 8, 0xC5, 8, 0xC5 .rodata:0005E974 DCB 4, 0xC0, 4, 0xC0, 4, 0xC0, 4, 0xC0, 4, 0xC0, 4, 0xC0 .rodata:0005E974 DCB 8, 0xD6, 8, 0xD6, 8, 0xD6, 8, 0xD6, 8, 0xD6, 8, 0xD6 .rodata:0005E974 DCB 8, 0xC6, 8, 0xC6, 8, 0xC6, 8, 0xC6, 8, 0xC6, 8, 0xC6 .rodata:0005E974 DCB 8, 0xC6, 8, 0xC6, 8, 0xC6, 8, 0xC6, 8, 0xC6, 8, 0xC6 .rodata:0005E974 DCB 8, 0xC6, 8, 0xC6, 8, 0xC6, 8, 0xC6, 8, 0xC6, 8, 0xC6 .rodata:0005E974 DCB 8, 0xC6, 8, 0xC6, 4, 0xC0, 4, 0xC0, 4, 0xC0, 4, 0xC0 .rodata:0005E974 DCB 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005E974 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005E974 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005E974 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005E974 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005E974 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005E974 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005E974 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005E974 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005E974 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005E974 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005E974 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005E974 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005E974 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005E974 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005E974 DCB 0, 0, 0 .rodata:0005EC74 EXPORT _nl_C_LC_CTYPE_class32 .rodata:0005EC74 _nl_C_LC_CTYPE_class32 DCB 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0 .rodata:0005EC74 ; DATA XREF: .rodata:000601C0o .rodata:0005EC74 DCB 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0 .rodata:0005EC74 DCB 2, 0, 0, 0, 3, 0x20, 0, 0, 2, 0x20, 0, 0, 2, 0x20 .rodata:0005EC74 DCB 0, 0, 2, 0x20, 0, 0, 2, 0x20, 0, 0, 2, 0, 0, 0, 2 .rodata:0005EC74 DCB 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0 .rodata:0005EC74 DCB 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0 .rodata:0005EC74 DCB 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0 .rodata:0005EC74 DCB 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 1 .rodata:0005EC74 DCB 0x60, 0, 0, 4, 0xC0, 0, 0, 4, 0xC0, 0, 0, 4, 0xC0 .rodata:0005EC74 DCB 0, 0, 4, 0xC0, 0, 0, 4, 0xC0, 0, 0, 4, 0xC0, 0, 0 .rodata:0005EC74 DCB 4, 0xC0, 0, 0, 4, 0xC0, 0, 0, 4, 0xC0, 0, 0, 4, 0xC0 .rodata:0005EC74 DCB 0, 0, 4, 0xC0, 0, 0, 4, 0xC0, 0, 0, 4, 0xC0, 0, 0 .rodata:0005EC74 DCB 4, 0xC0, 0, 0, 4, 0xC0, 0, 0, 8, 0xD8, 0, 0, 8, 0xD8 .rodata:0005EC74 DCB 0, 0, 8, 0xD8, 0, 0, 8, 0xD8, 0, 0, 8, 0xD8, 0, 0 .rodata:0005EC74 DCB 8, 0xD8, 0, 0, 8, 0xD8, 0, 0, 8, 0xD8, 0, 0, 8, 0xD8 .rodata:0005EC74 DCB 0, 0, 8, 0xD8, 0, 0, 4, 0xC0, 0, 0, 4, 0xC0, 0, 0 .rodata:0005EC74 DCB 4, 0xC0, 0, 0, 4, 0xC0, 0, 0, 4, 0xC0, 0, 0, 4, 0xC0 .rodata:0005EC74 DCB 0, 0, 4, 0xC0, 0, 0, 8, 0xD5, 0, 0, 8, 0xD5, 0, 0 .rodata:0005EC74 DCB 8, 0xD5, 0, 0, 8, 0xD5, 0, 0, 8, 0xD5, 0, 0, 8, 0xD5 .rodata:0005EC74 DCB 0, 0, 8, 0xC5, 0, 0, 8, 0xC5, 0, 0, 8, 0xC5, 0, 0 .rodata:0005EC74 DCB 8, 0xC5, 0, 0, 8, 0xC5, 0, 0, 8, 0xC5, 0, 0, 8, 0xC5 .rodata:0005EC74 DCB 0, 0, 8, 0xC5, 0, 0, 8, 0xC5, 0, 0, 8, 0xC5, 0, 0 .rodata:0005EC74 DCB 8, 0xC5, 0, 0, 8, 0xC5, 0, 0, 8, 0xC5, 0, 0, 8, 0xC5 .rodata:0005EC74 DCB 0, 0, 8, 0xC5, 0, 0, 8, 0xC5, 0, 0, 8, 0xC5, 0, 0 .rodata:0005EC74 DCB 8, 0xC5, 0, 0, 8, 0xC5, 0, 0, 8, 0xC5, 0, 0, 4, 0xC0 .rodata:0005EC74 DCB 0, 0, 4, 0xC0, 0, 0, 4, 0xC0, 0, 0, 4, 0xC0, 0, 0 .rodata:0005EC74 DCB 4, 0xC0, 0, 0, 4, 0xC0, 0, 0, 8, 0xD6, 0, 0, 8, 0xD6 .rodata:0005EC74 DCB 0, 0, 8, 0xD6, 0, 0, 8, 0xD6, 0, 0, 8, 0xD6, 0, 0 .rodata:0005EC74 DCB 8, 0xD6, 0, 0, 8, 0xC6, 0, 0, 8, 0xC6, 0, 0, 8, 0xC6 .rodata:0005EC74 DCB 0, 0, 8, 0xC6, 0, 0, 8, 0xC6, 0, 0, 8, 0xC6, 0, 0 .rodata:0005EC74 DCB 8, 0xC6, 0, 0, 8, 0xC6, 0, 0, 8, 0xC6, 0, 0, 8, 0xC6 .rodata:0005EC74 DCB 0, 0, 8, 0xC6, 0, 0, 8, 0xC6, 0, 0, 8, 0xC6, 0, 0 .rodata:0005EC74 DCB 8, 0xC6, 0, 0, 8, 0xC6, 0, 0, 8, 0xC6, 0, 0, 8, 0xC6 .rodata:0005EC74 DCB 0, 0, 8, 0xC6, 0, 0, 8, 0xC6, 0, 0, 8, 0xC6, 0, 0 .rodata:0005EC74 DCB 4, 0xC0, 0, 0, 4, 0xC0, 0, 0, 4, 0xC0, 0, 0, 4, 0xC0 .rodata:0005EC74 DCB 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EC74 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EC74 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EC74 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EC74 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EC74 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EC74 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EC74 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EC74 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EC74 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EC74 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EC74 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EC74 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EC74 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EC74 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EC74 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EC74 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EC74 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EC74 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EC74 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EC74 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EC74 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EC74 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EC74 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EC74 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EC74 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EC74 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EC74 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EC74 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EC74 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005EC74 DCB 0, 0, 0, 0, 0, 0 .rodata:0005F074 EXPORT _nl_C_LC_CTYPE_toupper .rodata:0005F074 _nl_C_LC_CTYPE_toupper DCB 0x80, 0, 0, 0, 0x81, 0, 0, 0, 0x82, 0, 0, 0, 0x83 .rodata:0005F074 ; DATA XREF: .rodata:000601B0o .rodata:0005F074 DCB 0, 0, 0, 0x84, 0, 0, 0, 0x85, 0, 0, 0, 0x86, 0, 0 .rodata:0005F074 DCB 0, 0x87, 0, 0, 0, 0x88, 0, 0, 0, 0x89, 0, 0, 0, 0x8A .rodata:0005F074 DCB 0, 0, 0, 0x8B, 0, 0, 0, 0x8C, 0, 0, 0, 0x8D, 0, 0 .rodata:0005F074 DCB 0, 0x8E, 0, 0, 0, 0x8F, 0, 0, 0, 0x90, 0, 0, 0, 0x91 .rodata:0005F074 DCB 0, 0, 0, 0x92, 0, 0, 0, 0x93, 0, 0, 0, 0x94, 0, 0 .rodata:0005F074 DCB 0, 0x95, 0, 0, 0, 0x96, 0, 0, 0, 0x97, 0, 0, 0, 0x98 .rodata:0005F074 DCB 0, 0, 0, 0x99, 0, 0, 0, 0x9A, 0, 0, 0, 0x9B, 0, 0 .rodata:0005F074 DCB 0, 0x9C, 0, 0, 0, 0x9D, 0, 0, 0, 0x9E, 0, 0, 0, 0x9F .rodata:0005F074 DCB 0, 0, 0, 0xA0, 0, 0, 0, 0xA1, 0, 0, 0, 0xA2, 0, 0 .rodata:0005F074 DCB 0, 0xA3, 0, 0, 0, 0xA4, 0, 0, 0, 0xA5, 0, 0, 0, 0xA6 .rodata:0005F074 DCB 0, 0, 0, 0xA7, 0, 0, 0, 0xA8, 0, 0, 0, 0xA9, 0, 0 .rodata:0005F074 DCB 0, 0xAA, 0, 0, 0, 0xAB, 0, 0, 0, 0xAC, 0, 0, 0, 0xAD .rodata:0005F074 DCB 0, 0, 0, 0xAE, 0, 0, 0, 0xAF, 0, 0, 0, 0xB0, 0, 0 .rodata:0005F074 DCB 0, 0xB1, 0, 0, 0, 0xB2, 0, 0, 0, 0xB3, 0, 0, 0, 0xB4 .rodata:0005F074 DCB 0, 0, 0, 0xB5, 0, 0, 0, 0xB6, 0, 0, 0, 0xB7, 0, 0 .rodata:0005F074 DCB 0, 0xB8, 0, 0, 0, 0xB9, 0, 0, 0, 0xBA, 0, 0, 0, 0xBB .rodata:0005F074 DCB 0, 0, 0, 0xBC, 0, 0, 0, 0xBD, 0, 0, 0, 0xBE, 0, 0 .rodata:0005F074 DCB 0, 0xBF, 0, 0, 0, 0xC0, 0, 0, 0, 0xC1, 0, 0, 0, 0xC2 .rodata:0005F074 DCB 0, 0, 0, 0xC3, 0, 0, 0, 0xC4, 0, 0, 0, 0xC5, 0, 0 .rodata:0005F074 DCB 0, 0xC6, 0, 0, 0, 0xC7, 0, 0, 0, 0xC8, 0, 0, 0, 0xC9 .rodata:0005F074 DCB 0, 0, 0, 0xCA, 0, 0, 0, 0xCB, 0, 0, 0, 0xCC, 0, 0 .rodata:0005F074 DCB 0, 0xCD, 0, 0, 0, 0xCE, 0, 0, 0, 0xCF, 0, 0, 0, 0xD0 .rodata:0005F074 DCB 0, 0, 0, 0xD1, 0, 0, 0, 0xD2, 0, 0, 0, 0xD3, 0, 0 .rodata:0005F074 DCB 0, 0xD4, 0, 0, 0, 0xD5, 0, 0, 0, 0xD6, 0, 0, 0, 0xD7 .rodata:0005F074 DCB 0, 0, 0, 0xD8, 0, 0, 0, 0xD9, 0, 0, 0, 0xDA, 0, 0 .rodata:0005F074 DCB 0, 0xDB, 0, 0, 0, 0xDC, 0, 0, 0, 0xDD, 0, 0, 0, 0xDE .rodata:0005F074 DCB 0, 0, 0, 0xDF, 0, 0, 0, 0xE0, 0, 0, 0, 0xE1, 0, 0 .rodata:0005F074 DCB 0, 0xE2, 0, 0, 0, 0xE3, 0, 0, 0, 0xE4, 0, 0, 0, 0xE5 .rodata:0005F074 DCB 0, 0, 0, 0xE6, 0, 0, 0, 0xE7, 0, 0, 0, 0xE8, 0, 0 .rodata:0005F074 DCB 0, 0xE9, 0, 0, 0, 0xEA, 0, 0, 0, 0xEB, 0, 0, 0, 0xEC .rodata:0005F074 DCB 0, 0, 0, 0xED, 0, 0, 0, 0xEE, 0, 0, 0, 0xEF, 0, 0 .rodata:0005F074 DCB 0, 0xF0, 0, 0, 0, 0xF1, 0, 0, 0, 0xF2, 0, 0, 0, 0xF3 .rodata:0005F074 DCB 0, 0, 0, 0xF4, 0, 0, 0, 0xF5, 0, 0, 0, 0xF6, 0, 0 .rodata:0005F074 DCB 0, 0xF7, 0, 0, 0, 0xF8, 0, 0, 0, 0xF9, 0, 0, 0, 0xFA .rodata:0005F074 DCB 0, 0, 0, 0xFB, 0, 0, 0, 0xFC, 0, 0, 0, 0xFD, 0, 0 .rodata:0005F074 DCB 0, 0xFE, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0, 0, 0 .rodata:0005F074 DCB 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0 .rodata:0005F074 DCB 5, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 9 .rodata:0005F074 DCB 0, 0, 0, 0xA, 0, 0, 0, 0xB, 0, 0, 0, 0xC, 0, 0, 0 .rodata:0005F074 DCB 0xD, 0, 0, 0, 0xE, 0, 0, 0, 0xF, 0, 0, 0, 0x10, 0 .rodata:0005F074 DCB 0, 0, 0x11, 0, 0, 0, 0x12, 0, 0, 0, 0x13, 0, 0, 0 .rodata:0005F074 DCB 0x14, 0, 0, 0, 0x15, 0, 0, 0, 0x16, 0, 0, 0, 0x17 .rodata:0005F074 DCB 0, 0, 0, 0x18, 0, 0, 0, 0x19, 0, 0, 0, 0x1A, 0, 0 .rodata:0005F074 DCB 0, 0x1B, 0, 0, 0, 0x1C, 0, 0, 0, 0x1D, 0, 0, 0, 0x1E .rodata:0005F074 DCB 0, 0, 0, 0x1F, 0, 0, 0, 0x20, 0, 0, 0, 0x21, 0, 0 .rodata:0005F074 DCB 0, 0x22, 0, 0, 0, 0x23, 0, 0, 0, 0x24, 0, 0, 0, 0x25 .rodata:0005F074 DCB 0, 0, 0, 0x26, 0, 0, 0, 0x27, 0, 0, 0, 0x28, 0, 0 .rodata:0005F074 DCB 0, 0x29, 0, 0, 0, 0x2A, 0, 0, 0, 0x2B, 0, 0, 0, 0x2C .rodata:0005F074 DCB 0, 0, 0, 0x2D, 0, 0, 0, 0x2E, 0, 0, 0, 0x2F, 0, 0 .rodata:0005F074 DCB 0, 0x30, 0, 0, 0, 0x31, 0, 0, 0, 0x32, 0, 0, 0, 0x33 .rodata:0005F074 DCB 0, 0, 0, 0x34, 0, 0, 0, 0x35, 0, 0, 0, 0x36, 0, 0 .rodata:0005F074 DCB 0, 0x37, 0, 0, 0, 0x38, 0, 0, 0, 0x39, 0, 0, 0, 0x3A .rodata:0005F074 DCB 0, 0, 0, 0x3B, 0, 0, 0, 0x3C, 0, 0, 0, 0x3D, 0, 0 .rodata:0005F074 DCB 0, 0x3E, 0, 0, 0, 0x3F, 0, 0, 0, 0x40, 0, 0, 0, 0x41 .rodata:0005F074 DCB 0, 0, 0, 0x42, 0, 0, 0, 0x43, 0, 0, 0, 0x44, 0, 0 .rodata:0005F074 DCB 0, 0x45, 0, 0, 0, 0x46, 0, 0, 0, 0x47, 0, 0, 0, 0x48 .rodata:0005F074 DCB 0, 0, 0, 0x49, 0, 0, 0, 0x4A, 0, 0, 0, 0x4B, 0, 0 .rodata:0005F074 DCB 0, 0x4C, 0, 0, 0, 0x4D, 0, 0, 0, 0x4E, 0, 0, 0, 0x4F .rodata:0005F074 DCB 0, 0, 0, 0x50, 0, 0, 0, 0x51, 0, 0, 0, 0x52, 0, 0 .rodata:0005F074 DCB 0, 0x53, 0, 0, 0, 0x54, 0, 0, 0, 0x55, 0, 0, 0, 0x56 .rodata:0005F074 DCB 0, 0, 0, 0x57, 0, 0, 0, 0x58, 0, 0, 0, 0x59, 0, 0 .rodata:0005F074 DCB 0, 0x5A, 0, 0, 0, 0x5B, 0, 0, 0, 0x5C, 0, 0, 0, 0x5D .rodata:0005F074 DCB 0, 0, 0, 0x5E, 0, 0, 0, 0x5F, 0, 0, 0, 0x60, 0, 0 .rodata:0005F074 DCB 0, 0x41, 0, 0, 0, 0x42, 0, 0, 0, 0x43, 0, 0, 0, 0x44 .rodata:0005F074 DCB 0, 0, 0, 0x45, 0, 0, 0, 0x46, 0, 0, 0, 0x47, 0, 0 .rodata:0005F074 DCB 0, 0x48, 0, 0, 0, 0x49, 0, 0, 0, 0x4A, 0, 0, 0, 0x4B .rodata:0005F074 DCB 0, 0, 0, 0x4C, 0, 0, 0, 0x4D, 0, 0, 0, 0x4E, 0, 0 .rodata:0005F074 DCB 0, 0x4F, 0, 0, 0, 0x50, 0, 0, 0, 0x51, 0, 0, 0, 0x52 .rodata:0005F074 DCB 0, 0, 0, 0x53, 0, 0, 0, 0x54, 0, 0, 0, 0x55, 0, 0 .rodata:0005F074 DCB 0, 0x56, 0, 0, 0, 0x57, 0, 0, 0, 0x58, 0, 0, 0, 0x59 .rodata:0005F074 DCB 0, 0, 0, 0x5A, 0, 0, 0, 0x7B, 0, 0, 0, 0x7C, 0, 0 .rodata:0005F074 DCB 0, 0x7D, 0, 0, 0, 0x7E, 0, 0, 0, 0x7F, 0, 0, 0, 0x80 .rodata:0005F074 DCB 0, 0, 0, 0x81, 0, 0, 0, 0x82, 0, 0, 0, 0x83, 0, 0 .rodata:0005F074 DCB 0, 0x84, 0, 0, 0, 0x85, 0, 0, 0, 0x86, 0, 0, 0, 0x87 .rodata:0005F074 DCB 0, 0, 0, 0x88, 0, 0, 0, 0x89, 0, 0, 0, 0x8A, 0, 0 .rodata:0005F074 DCB 0, 0x8B, 0, 0, 0, 0x8C, 0, 0, 0, 0x8D, 0, 0, 0, 0x8E .rodata:0005F074 DCB 0, 0, 0, 0x8F, 0, 0, 0, 0x90, 0, 0, 0, 0x91, 0, 0 .rodata:0005F074 DCB 0, 0x92, 0, 0, 0, 0x93, 0, 0, 0, 0x94, 0, 0, 0, 0x95 .rodata:0005F074 DCB 0, 0, 0, 0x96, 0, 0, 0, 0x97, 0, 0, 0, 0x98, 0, 0 .rodata:0005F074 DCB 0, 0x99, 0, 0, 0, 0x9A, 0, 0, 0, 0x9B, 0, 0, 0, 0x9C .rodata:0005F074 DCB 0, 0, 0, 0x9D, 0, 0, 0, 0x9E, 0, 0, 0, 0x9F, 0, 0 .rodata:0005F074 DCB 0, 0xA0, 0, 0, 0, 0xA1, 0, 0, 0, 0xA2, 0, 0, 0, 0xA3 .rodata:0005F074 DCB 0, 0, 0, 0xA4, 0, 0, 0, 0xA5, 0, 0, 0, 0xA6, 0, 0 .rodata:0005F074 DCB 0, 0xA7, 0, 0, 0, 0xA8, 0, 0, 0, 0xA9, 0, 0, 0, 0xAA .rodata:0005F074 DCB 0, 0, 0, 0xAB, 0, 0, 0, 0xAC, 0, 0, 0, 0xAD, 0, 0 .rodata:0005F074 DCB 0, 0xAE, 0, 0, 0, 0xAF, 0, 0, 0, 0xB0, 0, 0, 0, 0xB1 .rodata:0005F074 DCB 0, 0, 0, 0xB2, 0, 0, 0, 0xB3, 0, 0, 0, 0xB4, 0, 0 .rodata:0005F074 DCB 0, 0xB5, 0, 0, 0, 0xB6, 0, 0, 0, 0xB7, 0, 0, 0, 0xB8 .rodata:0005F074 DCB 0, 0, 0, 0xB9, 0, 0, 0, 0xBA, 0, 0, 0, 0xBB, 0, 0 .rodata:0005F074 DCB 0, 0xBC, 0, 0, 0, 0xBD, 0, 0, 0, 0xBE, 0, 0, 0, 0xBF .rodata:0005F074 DCB 0, 0, 0, 0xC0, 0, 0, 0, 0xC1, 0, 0, 0, 0xC2, 0, 0 .rodata:0005F074 DCB 0, 0xC3, 0, 0, 0, 0xC4, 0, 0, 0, 0xC5, 0, 0, 0, 0xC6 .rodata:0005F074 DCB 0, 0, 0, 0xC7, 0, 0, 0, 0xC8, 0, 0, 0, 0xC9, 0, 0 .rodata:0005F074 DCB 0, 0xCA, 0, 0, 0, 0xCB, 0, 0, 0, 0xCC, 0, 0, 0, 0xCD .rodata:0005F074 DCB 0, 0, 0, 0xCE, 0, 0, 0, 0xCF, 0, 0, 0, 0xD0, 0, 0 .rodata:0005F074 DCB 0, 0xD1, 0, 0, 0, 0xD2, 0, 0, 0, 0xD3, 0, 0, 0, 0xD4 .rodata:0005F074 DCB 0, 0, 0, 0xD5, 0, 0, 0, 0xD6, 0, 0, 0, 0xD7, 0, 0 .rodata:0005F074 DCB 0, 0xD8, 0, 0, 0, 0xD9, 0, 0, 0, 0xDA, 0, 0, 0, 0xDB .rodata:0005F074 DCB 0, 0, 0, 0xDC, 0, 0, 0, 0xDD, 0, 0, 0, 0xDE, 0, 0 .rodata:0005F074 DCB 0, 0xDF, 0, 0, 0, 0xE0, 0, 0, 0, 0xE1, 0, 0, 0, 0xE2 .rodata:0005F074 DCB 0, 0, 0, 0xE3, 0, 0, 0, 0xE4, 0, 0, 0, 0xE5, 0, 0 .rodata:0005F074 DCB 0, 0xE6, 0, 0, 0, 0xE7, 0, 0, 0, 0xE8, 0, 0, 0, 0xE9 .rodata:0005F074 DCB 0, 0, 0, 0xEA, 0, 0, 0, 0xEB, 0, 0, 0, 0xEC, 0, 0 .rodata:0005F074 DCB 0, 0xED, 0, 0, 0, 0xEE, 0, 0, 0, 0xEF, 0, 0, 0, 0xF0 .rodata:0005F074 DCB 0, 0, 0, 0xF1, 0, 0, 0, 0xF2, 0, 0, 0, 0xF3, 0, 0 .rodata:0005F074 DCB 0, 0xF4, 0, 0, 0, 0xF5, 0, 0, 0, 0xF6, 0, 0, 0, 0xF7 .rodata:0005F074 DCB 0, 0, 0, 0xF8, 0, 0, 0, 0xF9, 0, 0, 0, 0xFA, 0, 0 .rodata:0005F074 DCB 0, 0xFB, 0, 0, 0, 0xFC, 0, 0, 0, 0xFD, 0, 0, 0, 0xFE .rodata:0005F074 DCB 0, 0, 0, 0xFF, 0, 0, 0 .rodata:0005F674 EXPORT _nl_C_LC_CTYPE_tolower .rodata:0005F674 _nl_C_LC_CTYPE_tolower DCB 0x80, 0, 0, 0, 0x81, 0, 0, 0, 0x82, 0, 0, 0, 0x83 .rodata:0005F674 ; DATA XREF: .rodata:000601B8o .rodata:0005F674 DCB 0, 0, 0, 0x84, 0, 0, 0, 0x85, 0, 0, 0, 0x86, 0, 0 .rodata:0005F674 DCB 0, 0x87, 0, 0, 0, 0x88, 0, 0, 0, 0x89, 0, 0, 0, 0x8A .rodata:0005F674 DCB 0, 0, 0, 0x8B, 0, 0, 0, 0x8C, 0, 0, 0, 0x8D, 0, 0 .rodata:0005F674 DCB 0, 0x8E, 0, 0, 0, 0x8F, 0, 0, 0, 0x90, 0, 0, 0, 0x91 .rodata:0005F674 DCB 0, 0, 0, 0x92, 0, 0, 0, 0x93, 0, 0, 0, 0x94, 0, 0 .rodata:0005F674 DCB 0, 0x95, 0, 0, 0, 0x96, 0, 0, 0, 0x97, 0, 0, 0, 0x98 .rodata:0005F674 DCB 0, 0, 0, 0x99, 0, 0, 0, 0x9A, 0, 0, 0, 0x9B, 0, 0 .rodata:0005F674 DCB 0, 0x9C, 0, 0, 0, 0x9D, 0, 0, 0, 0x9E, 0, 0, 0, 0x9F .rodata:0005F674 DCB 0, 0, 0, 0xA0, 0, 0, 0, 0xA1, 0, 0, 0, 0xA2, 0, 0 .rodata:0005F674 DCB 0, 0xA3, 0, 0, 0, 0xA4, 0, 0, 0, 0xA5, 0, 0, 0, 0xA6 .rodata:0005F674 DCB 0, 0, 0, 0xA7, 0, 0, 0, 0xA8, 0, 0, 0, 0xA9, 0, 0 .rodata:0005F674 DCB 0, 0xAA, 0, 0, 0, 0xAB, 0, 0, 0, 0xAC, 0, 0, 0, 0xAD .rodata:0005F674 DCB 0, 0, 0, 0xAE, 0, 0, 0, 0xAF, 0, 0, 0, 0xB0, 0, 0 .rodata:0005F674 DCB 0, 0xB1, 0, 0, 0, 0xB2, 0, 0, 0, 0xB3, 0, 0, 0, 0xB4 .rodata:0005F674 DCB 0, 0, 0, 0xB5, 0, 0, 0, 0xB6, 0, 0, 0, 0xB7, 0, 0 .rodata:0005F674 DCB 0, 0xB8, 0, 0, 0, 0xB9, 0, 0, 0, 0xBA, 0, 0, 0, 0xBB .rodata:0005F674 DCB 0, 0, 0, 0xBC, 0, 0, 0, 0xBD, 0, 0, 0, 0xBE, 0, 0 .rodata:0005F674 DCB 0, 0xBF, 0, 0, 0, 0xC0, 0, 0, 0, 0xC1, 0, 0, 0, 0xC2 .rodata:0005F674 DCB 0, 0, 0, 0xC3, 0, 0, 0, 0xC4, 0, 0, 0, 0xC5, 0, 0 .rodata:0005F674 DCB 0, 0xC6, 0, 0, 0, 0xC7, 0, 0, 0, 0xC8, 0, 0, 0, 0xC9 .rodata:0005F674 DCB 0, 0, 0, 0xCA, 0, 0, 0, 0xCB, 0, 0, 0, 0xCC, 0, 0 .rodata:0005F674 DCB 0, 0xCD, 0, 0, 0, 0xCE, 0, 0, 0, 0xCF, 0, 0, 0, 0xD0 .rodata:0005F674 DCB 0, 0, 0, 0xD1, 0, 0, 0, 0xD2, 0, 0, 0, 0xD3, 0, 0 .rodata:0005F674 DCB 0, 0xD4, 0, 0, 0, 0xD5, 0, 0, 0, 0xD6, 0, 0, 0, 0xD7 .rodata:0005F674 DCB 0, 0, 0, 0xD8, 0, 0, 0, 0xD9, 0, 0, 0, 0xDA, 0, 0 .rodata:0005F674 DCB 0, 0xDB, 0, 0, 0, 0xDC, 0, 0, 0, 0xDD, 0, 0, 0, 0xDE .rodata:0005F674 DCB 0, 0, 0, 0xDF, 0, 0, 0, 0xE0, 0, 0, 0, 0xE1, 0, 0 .rodata:0005F674 DCB 0, 0xE2, 0, 0, 0, 0xE3, 0, 0, 0, 0xE4, 0, 0, 0, 0xE5 .rodata:0005F674 DCB 0, 0, 0, 0xE6, 0, 0, 0, 0xE7, 0, 0, 0, 0xE8, 0, 0 .rodata:0005F674 DCB 0, 0xE9, 0, 0, 0, 0xEA, 0, 0, 0, 0xEB, 0, 0, 0, 0xEC .rodata:0005F674 DCB 0, 0, 0, 0xED, 0, 0, 0, 0xEE, 0, 0, 0, 0xEF, 0, 0 .rodata:0005F674 DCB 0, 0xF0, 0, 0, 0, 0xF1, 0, 0, 0, 0xF2, 0, 0, 0, 0xF3 .rodata:0005F674 DCB 0, 0, 0, 0xF4, 0, 0, 0, 0xF5, 0, 0, 0, 0xF6, 0, 0 .rodata:0005F674 DCB 0, 0xF7, 0, 0, 0, 0xF8, 0, 0, 0, 0xF9, 0, 0, 0, 0xFA .rodata:0005F674 DCB 0, 0, 0, 0xFB, 0, 0, 0, 0xFC, 0, 0, 0, 0xFD, 0, 0 .rodata:0005F674 DCB 0, 0xFE, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0, 0, 0 .rodata:0005F674 DCB 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0 .rodata:0005F674 DCB 5, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 9 .rodata:0005F674 DCB 0, 0, 0, 0xA, 0, 0, 0, 0xB, 0, 0, 0, 0xC, 0, 0, 0 .rodata:0005F674 DCB 0xD, 0, 0, 0, 0xE, 0, 0, 0, 0xF, 0, 0, 0, 0x10, 0 .rodata:0005F674 DCB 0, 0, 0x11, 0, 0, 0, 0x12, 0, 0, 0, 0x13, 0, 0, 0 .rodata:0005F674 DCB 0x14, 0, 0, 0, 0x15, 0, 0, 0, 0x16, 0, 0, 0, 0x17 .rodata:0005F674 DCB 0, 0, 0, 0x18, 0, 0, 0, 0x19, 0, 0, 0, 0x1A, 0, 0 .rodata:0005F674 DCB 0, 0x1B, 0, 0, 0, 0x1C, 0, 0, 0, 0x1D, 0, 0, 0, 0x1E .rodata:0005F674 DCB 0, 0, 0, 0x1F, 0, 0, 0, 0x20, 0, 0, 0, 0x21, 0, 0 .rodata:0005F674 DCB 0, 0x22, 0, 0, 0, 0x23, 0, 0, 0, 0x24, 0, 0, 0, 0x25 .rodata:0005F674 DCB 0, 0, 0, 0x26, 0, 0, 0, 0x27, 0, 0, 0, 0x28, 0, 0 .rodata:0005F674 DCB 0, 0x29, 0, 0, 0, 0x2A, 0, 0, 0, 0x2B, 0, 0, 0, 0x2C .rodata:0005F674 DCB 0, 0, 0, 0x2D, 0, 0, 0, 0x2E, 0, 0, 0, 0x2F, 0, 0 .rodata:0005F674 DCB 0, 0x30, 0, 0, 0, 0x31, 0, 0, 0, 0x32, 0, 0, 0, 0x33 .rodata:0005F674 DCB 0, 0, 0, 0x34, 0, 0, 0, 0x35, 0, 0, 0, 0x36, 0, 0 .rodata:0005F674 DCB 0, 0x37, 0, 0, 0, 0x38, 0, 0, 0, 0x39, 0, 0, 0, 0x3A .rodata:0005F674 DCB 0, 0, 0, 0x3B, 0, 0, 0, 0x3C, 0, 0, 0, 0x3D, 0, 0 .rodata:0005F674 DCB 0, 0x3E, 0, 0, 0, 0x3F, 0, 0, 0, 0x40, 0, 0, 0, 0x61 .rodata:0005F674 DCB 0, 0, 0, 0x62, 0, 0, 0, 0x63, 0, 0, 0, 0x64, 0, 0 .rodata:0005F674 DCB 0, 0x65, 0, 0, 0, 0x66, 0, 0, 0, 0x67, 0, 0, 0, 0x68 .rodata:0005F674 DCB 0, 0, 0, 0x69, 0, 0, 0, 0x6A, 0, 0, 0, 0x6B, 0, 0 .rodata:0005F674 DCB 0, 0x6C, 0, 0, 0, 0x6D, 0, 0, 0, 0x6E, 0, 0, 0, 0x6F .rodata:0005F674 DCB 0, 0, 0, 0x70, 0, 0, 0, 0x71, 0, 0, 0, 0x72, 0, 0 .rodata:0005F674 DCB 0, 0x73, 0, 0, 0, 0x74, 0, 0, 0, 0x75, 0, 0, 0, 0x76 .rodata:0005F674 DCB 0, 0, 0, 0x77, 0, 0, 0, 0x78, 0, 0, 0, 0x79, 0, 0 .rodata:0005F674 DCB 0, 0x7A, 0, 0, 0, 0x5B, 0, 0, 0, 0x5C, 0, 0, 0, 0x5D .rodata:0005F674 DCB 0, 0, 0, 0x5E, 0, 0, 0, 0x5F, 0, 0, 0, 0x60, 0, 0 .rodata:0005F674 DCB 0, 0x61, 0, 0, 0, 0x62, 0, 0, 0, 0x63, 0, 0, 0, 0x64 .rodata:0005F674 DCB 0, 0, 0, 0x65, 0, 0, 0, 0x66, 0, 0, 0, 0x67, 0, 0 .rodata:0005F674 DCB 0, 0x68, 0, 0, 0, 0x69, 0, 0, 0, 0x6A, 0, 0, 0, 0x6B .rodata:0005F674 DCB 0, 0, 0, 0x6C, 0, 0, 0, 0x6D, 0, 0, 0, 0x6E, 0, 0 .rodata:0005F674 DCB 0, 0x6F, 0, 0, 0, 0x70, 0, 0, 0, 0x71, 0, 0, 0, 0x72 .rodata:0005F674 DCB 0, 0, 0, 0x73, 0, 0, 0, 0x74, 0, 0, 0, 0x75, 0, 0 .rodata:0005F674 DCB 0, 0x76, 0, 0, 0, 0x77, 0, 0, 0, 0x78, 0, 0, 0, 0x79 .rodata:0005F674 DCB 0, 0, 0, 0x7A, 0, 0, 0, 0x7B, 0, 0, 0, 0x7C, 0, 0 .rodata:0005F674 DCB 0, 0x7D, 0, 0, 0, 0x7E, 0, 0, 0, 0x7F, 0, 0, 0, 0x80 .rodata:0005F674 DCB 0, 0, 0, 0x81, 0, 0, 0, 0x82, 0, 0, 0, 0x83, 0, 0 .rodata:0005F674 DCB 0, 0x84, 0, 0, 0, 0x85, 0, 0, 0, 0x86, 0, 0, 0, 0x87 .rodata:0005F674 DCB 0, 0, 0, 0x88, 0, 0, 0, 0x89, 0, 0, 0, 0x8A, 0, 0 .rodata:0005F674 DCB 0, 0x8B, 0, 0, 0, 0x8C, 0, 0, 0, 0x8D, 0, 0, 0, 0x8E .rodata:0005F674 DCB 0, 0, 0, 0x8F, 0, 0, 0, 0x90, 0, 0, 0, 0x91, 0, 0 .rodata:0005F674 DCB 0, 0x92, 0, 0, 0, 0x93, 0, 0, 0, 0x94, 0, 0, 0, 0x95 .rodata:0005F674 DCB 0, 0, 0, 0x96, 0, 0, 0, 0x97, 0, 0, 0, 0x98, 0, 0 .rodata:0005F674 DCB 0, 0x99, 0, 0, 0, 0x9A, 0, 0, 0, 0x9B, 0, 0, 0, 0x9C .rodata:0005F674 DCB 0, 0, 0, 0x9D, 0, 0, 0, 0x9E, 0, 0, 0, 0x9F, 0, 0 .rodata:0005F674 DCB 0, 0xA0, 0, 0, 0, 0xA1, 0, 0, 0, 0xA2, 0, 0, 0, 0xA3 .rodata:0005F674 DCB 0, 0, 0, 0xA4, 0, 0, 0, 0xA5, 0, 0, 0, 0xA6, 0, 0 .rodata:0005F674 DCB 0, 0xA7, 0, 0, 0, 0xA8, 0, 0, 0, 0xA9, 0, 0, 0, 0xAA .rodata:0005F674 DCB 0, 0, 0, 0xAB, 0, 0, 0, 0xAC, 0, 0, 0, 0xAD, 0, 0 .rodata:0005F674 DCB 0, 0xAE, 0, 0, 0, 0xAF, 0, 0, 0, 0xB0, 0, 0, 0, 0xB1 .rodata:0005F674 DCB 0, 0, 0, 0xB2, 0, 0, 0, 0xB3, 0, 0, 0, 0xB4, 0, 0 .rodata:0005F674 DCB 0, 0xB5, 0, 0, 0, 0xB6, 0, 0, 0, 0xB7, 0, 0, 0, 0xB8 .rodata:0005F674 DCB 0, 0, 0, 0xB9, 0, 0, 0, 0xBA, 0, 0, 0, 0xBB, 0, 0 .rodata:0005F674 DCB 0, 0xBC, 0, 0, 0, 0xBD, 0, 0, 0, 0xBE, 0, 0, 0, 0xBF .rodata:0005F674 DCB 0, 0, 0, 0xC0, 0, 0, 0, 0xC1, 0, 0, 0, 0xC2, 0, 0 .rodata:0005F674 DCB 0, 0xC3, 0, 0, 0, 0xC4, 0, 0, 0, 0xC5, 0, 0, 0, 0xC6 .rodata:0005F674 DCB 0, 0, 0, 0xC7, 0, 0, 0, 0xC8, 0, 0, 0, 0xC9, 0, 0 .rodata:0005F674 DCB 0, 0xCA, 0, 0, 0, 0xCB, 0, 0, 0, 0xCC, 0, 0, 0, 0xCD .rodata:0005F674 DCB 0, 0, 0, 0xCE, 0, 0, 0, 0xCF, 0, 0, 0, 0xD0, 0, 0 .rodata:0005F674 DCB 0, 0xD1, 0, 0, 0, 0xD2, 0, 0, 0, 0xD3, 0, 0, 0, 0xD4 .rodata:0005F674 DCB 0, 0, 0, 0xD5, 0, 0, 0, 0xD6, 0, 0, 0, 0xD7, 0, 0 .rodata:0005F674 DCB 0, 0xD8, 0, 0, 0, 0xD9, 0, 0, 0, 0xDA, 0, 0, 0, 0xDB .rodata:0005F674 DCB 0, 0, 0, 0xDC, 0, 0, 0, 0xDD, 0, 0, 0, 0xDE, 0, 0 .rodata:0005F674 DCB 0, 0xDF, 0, 0, 0, 0xE0, 0, 0, 0, 0xE1, 0, 0, 0, 0xE2 .rodata:0005F674 DCB 0, 0, 0, 0xE3, 0, 0, 0, 0xE4, 0, 0, 0, 0xE5, 0, 0 .rodata:0005F674 DCB 0, 0xE6, 0, 0, 0, 0xE7, 0, 0, 0, 0xE8, 0, 0, 0, 0xE9 .rodata:0005F674 DCB 0, 0, 0, 0xEA, 0, 0, 0, 0xEB, 0, 0, 0, 0xEC, 0, 0 .rodata:0005F674 DCB 0, 0xED, 0, 0, 0, 0xEE, 0, 0, 0, 0xEF, 0, 0, 0, 0xF0 .rodata:0005F674 DCB 0, 0, 0, 0xF1, 0, 0, 0, 0xF2, 0, 0, 0, 0xF3, 0, 0 .rodata:0005F674 DCB 0, 0xF4, 0, 0, 0, 0xF5, 0, 0, 0, 0xF6, 0, 0, 0, 0xF7 .rodata:0005F674 DCB 0, 0, 0, 0xF8, 0, 0, 0, 0xF9, 0, 0, 0, 0xFA, 0, 0 .rodata:0005F674 DCB 0, 0xFB, 0, 0, 0, 0xFC, 0, 0, 0, 0xFD, 0, 0, 0, 0xFE .rodata:0005F674 DCB 0, 0, 0, 0xFF, 0, 0, 0 .rodata:0005FC74 EXPORT _nl_C_LC_CTYPE_class_upper .rodata:0005FC74 _nl_C_LC_CTYPE_class_upper DCB 0, 0, 0, 0, 0, 0, 0, 0, 0xFE, 0xFF, 0xFF, 7, 0, 0 .rodata:0005FC74 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005FC74 DCB 0, 7, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 1, 0, 0, 0 .rodata:0005FC74 DCB 1, 0, 0, 0, 0x18, 0, 0, 0, 0, 0, 0, 0, 0x20, 0, 0 .rodata:0005FC74 DCB 0, 0xFE, 0xFF, 0xFF, 7, 0, 0, 0, 0 .rodata:0005FCBC EXPORT _nl_C_LC_CTYPE_class_lower .rodata:0005FCBC _nl_C_LC_CTYPE_class_lower DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xFE, 0xFF, 0xFF .rodata:0005FCBC DCB 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005FCBC DCB 7, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 1, 0, 0, 0, 1 .rodata:0005FCBC DCB 0, 0, 0, 0x18, 0, 0, 0, 0, 0, 0, 0, 0x20, 0, 0, 0 .rodata:0005FCBC DCB 0, 0, 0, 0, 0xFE, 0xFF, 0xFF, 7 .rodata:0005FD04 EXPORT _nl_C_LC_CTYPE_class_alpha .rodata:0005FD04 _nl_C_LC_CTYPE_class_alpha DCB 0, 0, 0, 0, 0, 0, 0, 0, 0xFE, 0xFF, 0xFF, 7, 0xFE .rodata:0005FD04 DCB 0xFF, 0xFF, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005FD04 DCB 0, 0, 0, 0, 7, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 1 .rodata:0005FD04 DCB 0, 0, 0, 1, 0, 0, 0, 0x18, 0, 0, 0, 0, 0, 0, 0, 0x20 .rodata:0005FD04 DCB 0, 0, 0, 0xFE, 0xFF, 0xFF, 7, 0xFE, 0xFF, 0xFF, 7 .rodata:0005FD4C EXPORT _nl_C_LC_CTYPE_class_digit .rodata:0005FD4C _nl_C_LC_CTYPE_class_digit DCB 0, 0, 0, 0, 0, 0, 0xFF, 3, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005FD4C DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 .rodata:0005FD4C DCB 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 1, 0 .rodata:0005FD4C DCB 0, 0, 0x18, 0, 0, 0, 0x1C, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005FD4C DCB 0, 0xFF, 3 .rodata:0005FD90 EXPORT _nl_C_LC_CTYPE_class_xdigit .rodata:0005FD90 _nl_C_LC_CTYPE_class_xdigit DCB 0, 0, 0, 0, 0, 0, 0xFF, 3, 0x7E, 0, 0, 0, 0x7E, 0 .rodata:0005FD90 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005FD90 DCB 0, 7, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0 .rodata:0005FD90 DCB 3, 0, 0, 0, 0x18, 0, 0, 0, 0x1C, 0, 0, 0, 0, 0, 0 .rodata:0005FD90 DCB 0, 0, 0, 0xFF, 3, 0x7E, 0, 0, 0, 0x7E, 0, 0, 0 .rodata:0005FDDC EXPORT _nl_C_LC_CTYPE_class_space .rodata:0005FDDC _nl_C_LC_CTYPE_class_space DCB 0, 0x3E, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005FDDC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 .rodata:0005FDDC DCB 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 1, 0 .rodata:0005FDDC DCB 0, 0, 0x18, 0, 0, 0, 0x1C, 0, 0, 0, 0, 0x3E, 0, 0 .rodata:0005FDDC DCB 1, 0, 0, 0 .rodata:0005FE20 EXPORT _nl_C_LC_CTYPE_class_print .rodata:0005FE20 _nl_C_LC_CTYPE_class_print DCB 0, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF .rodata:0005FE20 DCB 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0, 0, 0, 0, 0, 0, 0 .rodata:0005FE20 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 1, 0, 0, 0 .rodata:0005FE20 DCB 7, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0x18, 0, 0, 0 .rodata:0005FE20 DCB 0x1C, 0, 0, 0, 0, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF .rodata:0005FE20 DCB 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F .rodata:0005FE6C EXPORT _nl_C_LC_CTYPE_class_graph .rodata:0005FE6C _nl_C_LC_CTYPE_class_graph DCB 0, 0, 0, 0, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF .rodata:0005FE6C DCB 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0, 0, 0, 0, 0, 0, 0 .rodata:0005FE6C DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 1, 0, 0, 0 .rodata:0005FE6C DCB 7, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0x18, 0, 0, 0 .rodata:0005FE6C DCB 0x1C, 0, 0, 0, 0, 0, 0, 0, 0xFE, 0xFF, 0xFF, 0xFF .rodata:0005FE6C DCB 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F .rodata:0005FEB8 EXPORT _nl_C_LC_CTYPE_class_blank .rodata:0005FEB8 _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:0005FEB8 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0 .rodata:0005FEB8 DCB 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 .rodata:0005FEB8 DCB 0, 0x18, 0, 0, 0, 0x1C, 0, 0, 0, 0, 2, 0, 0, 1, 0 .rodata:0005FEB8 DCB 0, 0 .rodata:0005FEFC EXPORT _nl_C_LC_CTYPE_class_cntrl .rodata:0005FEFC _nl_C_LC_CTYPE_class_cntrl DCB 0xFF, 0xFF, 0xFF, 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005FEFC DCB 0, 0, 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005FEFC DCB 0, 0, 0, 7, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0 .rodata:0005FEFC DCB 0, 0, 3, 0, 0, 0, 0x18, 0, 0, 0, 0x1C, 0, 0, 0, 0xFF .rodata:0005FEFC DCB 0xFF, 0xFF, 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005FEFC DCB 0x80 .rodata:0005FF48 EXPORT _nl_C_LC_CTYPE_class_punct .rodata:0005FF48 _nl_C_LC_CTYPE_class_punct DCB 0, 0, 0, 0, 0xFE, 0xFF, 0, 0xFC, 1, 0, 0, 0xF8, 1 .rodata:0005FF48 DCB 0, 0, 0x78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005FF48 DCB 0, 0, 0, 7, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0 .rodata:0005FF48 DCB 0, 0, 3, 0, 0, 0, 0x18, 0, 0, 0, 0x1C, 0, 0, 0, 0 .rodata:0005FF48 DCB 0, 0, 0, 0xFE, 0xFF, 0, 0xFC, 1, 0, 0, 0xF8, 1, 0 .rodata:0005FF48 DCB 0, 0x78 .rodata:0005FF94 EXPORT _nl_C_LC_CTYPE_class_alnum .rodata:0005FF94 _nl_C_LC_CTYPE_class_alnum DCB 0, 0, 0, 0, 0, 0, 0xFF, 3, 0xFE, 0xFF, 0xFF, 7, 0xFE .rodata:0005FF94 DCB 0xFF, 0xFF, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005FF94 DCB 0, 0, 0, 0, 7, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0 .rodata:0005FF94 DCB 0, 0, 0, 3, 0, 0, 0, 0x18, 0, 0, 0, 0x1C, 0, 0, 0 .rodata:0005FF94 DCB 0, 0, 0, 0, 0, 0, 0xFF, 3, 0xFE, 0xFF, 0xFF, 7, 0xFE .rodata:0005FF94 DCB 0xFF, 0xFF, 7 .rodata:0005FFE0 EXPORT _nl_C_LC_CTYPE_map_toupper .rodata:0005FFE0 _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:0005FFE0 ; DATA XREF: .rodata:000602F4o .rodata:0005FFE0 DCB 0, 0, 0, 0x18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005FFE0 DCB 0, 0, 0, 0x28, 0, 0, 0, 0, 0, 0, 0, 0xE0, 0xFF, 0xFF .rodata:0005FFE0 DCB 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF .rodata:0005FFE0 DCB 0xE0, 0xFF, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0xE0 .rodata:0005FFE0 DCB 0xFF, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0xE0, 0xFF .rodata:0005FFE0 DCB 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF .rodata:0005FFE0 DCB 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF .rodata:0005FFE0 DCB 0xE0, 0xFF, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0xE0 .rodata:0005FFE0 DCB 0xFF, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0xE0, 0xFF .rodata:0005FFE0 DCB 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF .rodata:0005FFE0 DCB 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF .rodata:0005FFE0 DCB 0xE0, 0xFF, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0xE0 .rodata:0005FFE0 DCB 0xFF, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0xE0, 0xFF .rodata:0005FFE0 DCB 0xFF, 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0005FFE0 DCB 0, 0, 0, 0, 0, 0, 0 .rodata:00060088 EXPORT _nl_C_LC_CTYPE_map_tolower .rodata:00060088 _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:00060088 ; DATA XREF: .rodata:000602F8o .rodata:00060088 DCB 0, 0, 0, 0x18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x28 .rodata:00060088 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x20, 0, 0, 0, 0x20 .rodata:00060088 DCB 0, 0, 0, 0x20, 0, 0, 0, 0x20, 0, 0, 0, 0x20, 0, 0 .rodata:00060088 DCB 0, 0x20, 0, 0, 0, 0x20, 0, 0, 0, 0x20, 0, 0, 0, 0x20 .rodata:00060088 DCB 0, 0, 0, 0x20, 0, 0, 0, 0x20, 0, 0, 0, 0x20, 0, 0 .rodata:00060088 DCB 0, 0x20, 0, 0, 0, 0x20, 0, 0, 0, 0x20, 0, 0, 0, 0x20 .rodata:00060088 DCB 0, 0, 0, 0x20, 0, 0, 0, 0x20, 0, 0, 0, 0x20, 0, 0 .rodata:00060088 DCB 0, 0x20, 0, 0, 0, 0x20, 0, 0, 0, 0x20, 0, 0, 0, 0x20 .rodata:00060088 DCB 0, 0, 0, 0x20, 0, 0, 0, 0x20, 0, 0, 0, 0x20, 0, 0 .rodata:00060088 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00060088 DCB 0, 0, 0, 0 .rodata:00060130 EXPORT _nl_C_LC_CTYPE_width .rodata:00060130 _nl_C_LC_CTYPE_width DCB 7, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 7, 0, 0, 0, 0xF .rodata:00060130 ; DATA XREF: .rodata:000601DCo .rodata:00060130 DCB 0, 0, 0, 0x18, 0, 0, 0, 0x38, 0, 0, 0, 0, 0, 0, 0 .rodata:00060130 DCB 0x48, 0, 0, 0, 0x48, 0, 0, 0, 0x48, 0, 0, 0, 0x48 .rodata:00060130 DCB 0, 0, 0, 0x48, 0, 0, 0, 0x49, 0, 0, 0, 0, 0xFF, 0xFF .rodata:00060130 DCB 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF .rodata:00060130 DCB 0xFF, 0xFF, 0xFF, 0xFF, 1, 1, 1, 1, 1, 1, 1, 1, 1 .rodata:00060130 DCB 1, 1, 1, 1, 1, 1, 1, 0xFF, 0, 0, 0 .rodata:0006018C EXPORT _nl_C_LC_CTYPE .rodata:0006018C _nl_C_LC_CTYPE DCB 4, 0x16, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:0006018C DCB 0xFF, 0xFF, 0xFF, 0xFF, 1, 0, 0, 0, 0, 0, 0, 0, 0x54 .rodata:0006018C DCB 0, 0, 0 .rodata:000601AC DCD _nl_C_LC_CTYPE_class .rodata:000601B0 DCD _nl_C_LC_CTYPE_toupper .rodata:000601B4 ALIGN 8 .rodata:000601B8 DCD _nl_C_LC_CTYPE_tolower .rodata:000601BC ALIGN 0x10 .rodata:000601C0 DCD _nl_C_LC_CTYPE_class32 .rodata:000601C4 DCD 0, 0, 0, 0 .rodata:000601D4 DCD aUpper ; "upper" .rodata:000601D8 DCD aToupper ; "toupper" .rodata:000601DC DCD _nl_C_LC_CTYPE_width .rodata:000601E0 DCD 1, 0x61610, 0x5F274, 0x5F874, 0x46, 0x52, 1, 0x60378 .rodata:000601E0 DCD 0x60374, 0x60370, 0x6036C, 0x60368, 0x60364, 0x60360 .rodata:000601E0 DCD 0x6035C, 0x60358, 0x60354, 1, 0x6034C, 0x60344, 0x6033C .rodata:000601E0 DCD 0x60334, 0x6032C, 0x60324, 0x6031C, 0x60314, 0x6030C .rodata:000601E0 DCD 0x60304, 0x60378, 0x60374, 0x60370, 0x6036C, 0x60368 .rodata:000601E0 DCD 0x60364, 0x60360, 0x6035C, 0x60358, 0x60354, 0x30 .rodata:000601E0 DCD 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39 .rodata:000601E0 DCD 0x24E, 0x59E98, 0x5A7D0, 0x5BA40, 0x5C378, 1, 0x602FC .rodata:000601E0 DCD 0, 0 .rodata:000602C4 DCD _nl_C_LC_CTYPE_class_upper+0x20 .rodata:000602C8 DCD _nl_C_LC_CTYPE_class_lower+0x20 .rodata:000602CC DCD _nl_C_LC_CTYPE_class_alpha+0x20 .rodata:000602D0 DCD _nl_C_LC_CTYPE_class_digit+0x20 .rodata:000602D4 DCD _nl_C_LC_CTYPE_class_xdigit+0x20 .rodata:000602D8 DCD _nl_C_LC_CTYPE_class_space+0x20 .rodata:000602DC DCD _nl_C_LC_CTYPE_class_print+0x20 .rodata:000602E0 DCD _nl_C_LC_CTYPE_class_graph+0x20 .rodata:000602E4 DCD _nl_C_LC_CTYPE_class_blank+0x20 .rodata:000602E8 DCD _nl_C_LC_CTYPE_class_cntrl+0x20 .rodata:000602EC DCD _nl_C_LC_CTYPE_class_punct+0x20 .rodata:000602F0 DCD _nl_C_LC_CTYPE_class_alnum+0x20 .rodata:000602F4 DCD _nl_C_LC_CTYPE_map_toupper .rodata:000602F8 DCD _nl_C_LC_CTYPE_map_tolower .rodata:000602FC DCD 0x3F, 0 .rodata:00060304 DCD 0x39, 0 .rodata:0006030C DCD 0x38, 0 .rodata:00060314 DCD 0x37, 0 .rodata:0006031C DCD 0x36, 0 .rodata:00060324 DCD 0x35, 0 .rodata:0006032C DCD 0x34, 0 .rodata:00060334 DCD 0x33, 0 .rodata:0006033C DCD 0x32, 0 .rodata:00060344 DCD 0x31, 0 .rodata:0006034C DCD 0x30, 0 .rodata:00060354 DCD 0x39, 0x38, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31 .rodata:00060354 DCD 0x30 .rodata:0006037C aToupper DCB "toupper",0 ; DATA XREF: .rodata:000601D8o .rodata:00060384 aTolower DCB "tolower",0 .rodata:0006038C ALIGN 0x10 .rodata:00060390 aUpper DCB "upper",0 ; DATA XREF: .rodata:000601D4o .rodata:00060396 aLower DCB "lower",0 .rodata:0006039C aAlpha DCB "alpha",0 .rodata:000603A2 aDigit DCB "digit",0 .rodata:000603A8 aXdigit DCB "xdigit",0 .rodata:000603AF aSpace DCB "space",0 .rodata:000603B5 aPrint DCB "print",0 .rodata:000603BB aGraph DCB "graph",0 .rodata:000603C1 aBlank DCB "blank",0 .rodata:000603C7 aCntrl DCB "cntrl",0 .rodata:000603CD aPunct DCB "punct",0 .rodata:000603D3 aAlnum DCB "alnum",0 .rodata:000603D9 ALIGN 4 .rodata:000603DC EXPORT _nl_C_LC_MESSAGES .rodata:000603DC _nl_C_LC_MESSAGES DCB 4, 0x16, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:000603DC DCB 0xFF, 0xFF, 0xFF, 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 5 .rodata:000603DC DCB 0, 0, 0 .rodata:000603FC DCD aYy ; "^[yY]" .rodata:00060400 DCD aNn ; "^[nN]" .rodata:00060404 DCD dword_60410 .rodata:00060408 DCD dword_60410 .rodata:0006040C DCD _nl_C_codeset ; "ANSI_X3.4-1968" .rodata:00060410 dword_60410 DCD 0 ; DATA XREF: .rodata:00060404o .rodata:00060410 ; .rodata:00060408o .rodata:00060414 aNn DCB "^[nN]",0 ; DATA XREF: .rodata:00060400o .rodata:0006041A ALIGN 4 .rodata:0006041C aYy DCB "^[yY]",0 ; DATA XREF: .rodata:000603FCo .rodata:00060422 ALIGN 4 .rodata:00060424 not_available DCW 0xFF ; DATA XREF: .rodata:00060464o .rodata:00060424 ; .rodata:00060468o ... .rodata:00060426 ALIGN 4 .rodata:00060428 EXPORT _nl_C_LC_MONETARY .rodata:00060428 _nl_C_LC_MONETARY DCB 4, 0x16, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00060428 DCB 0xFF, 0xFF, 0xFF, 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0x2E .rodata:00060428 DCB 0, 0, 0 .rodata:00060448 DCD dword_60500 .rodata:0006044C DCD dword_60500 .rodata:00060450 DCD dword_60500 .rodata:00060454 DCD dword_60500 .rodata:00060458 DCD dword_60500 .rodata:0006045C DCD dword_60500 .rodata:00060460 DCD dword_60500 .rodata:00060464 DCD not_available .rodata:00060468 DCD not_available .rodata:0006046C DCD not_available .rodata:00060470 DCD not_available .rodata:00060474 DCD not_available .rodata:00060478 DCD not_available .rodata:0006047C DCD not_available .rodata:00060480 DCD not_available .rodata:00060484 DCD dword_60500 .rodata:00060488 DCD not_available .rodata:0006048C DCD not_available .rodata:00060490 DCD not_available .rodata:00060494 DCD not_available .rodata:00060498 DCD not_available .rodata:0006049C DCD not_available .rodata:000604A0 DCD dword_60500 .rodata:000604A4 DCD dword_60500 .rodata:000604A8 DCD not_available .rodata:000604AC DCD not_available .rodata:000604B0 DCD not_available .rodata:000604B4 DCD not_available .rodata:000604B8 DCD not_available .rodata:000604BC DCD not_available .rodata:000604C0 DCD not_available .rodata:000604C4 DCD not_available .rodata:000604C8 DCD not_available .rodata:000604CC DCD not_available .rodata:000604D0 DCD not_available .rodata:000604D4 DCD not_available .rodata:000604D8 DCD not_available .rodata:000604DC DCD not_available .rodata:000604E0 DCD 0x2775, 0x5F5BEBF, 0x2775, 0x5F5BEBF, 1, 0, 0 .rodata:000604FC DCD _nl_C_codeset ; "ANSI_X3.4-1968" .rodata:00060500 dword_60500 DCD 0 ; DATA XREF: .rodata:00060448o .rodata:00060500 ; .rodata:0006044Co ... .rodata:00060504 EXPORT _nl_C_LC_NUMERIC .rodata:00060504 _nl_C_LC_NUMERIC DCB 4, 0x16, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00060504 DCB 0xFF, 0xFF, 0xFF, 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 6 .rodata:00060504 DCB 0, 0, 0 .rodata:00060524 DCD dword_60540 .rodata:00060528 DCD dword_6053C .rodata:0006052C DCD dword_6053C .rodata:00060530 DCD 0x2E, 0 .rodata:00060538 DCD _nl_C_codeset ; "ANSI_X3.4-1968" .rodata:0006053C dword_6053C DCD 0 ; DATA XREF: .rodata:00060528o .rodata:0006053C ; .rodata:0006052Co .rodata:00060540 dword_60540 DCD 0x2E ; DATA XREF: .rodata:00060524o .rodata:00060544 EXPORT _nl_C_LC_TIME .rodata:00060544 _nl_C_LC_TIME DCB 4, 0x16, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00060544 DCB 0xFF, 0xFF, 0xFF, 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0x6F .rodata:00060544 DCB 0, 0, 0 .rodata:00060564 DCD aSun ; "Sun" .rodata:00060568 DCD aMon ; "Mon" .rodata:0006056C DCD aTue ; "Tue" .rodata:00060570 DCD aWed ; "Wed" .rodata:00060574 DCD aThu ; "Thu" .rodata:00060578 DCD aFri ; "Fri" .rodata:0006057C DCD aSat ; "Sat" .rodata:00060580 DCD aSunday ; "Sunday" .rodata:00060584 DCD aMonday ; "Monday" .rodata:00060588 DCD aTuesday ; "Tuesday" .rodata:0006058C DCD aWednesday ; "Wednesday" .rodata:00060590 DCD aThursday ; "Thursday" .rodata:00060594 DCD aFriday ; "Friday" .rodata:00060598 DCD aSaturday ; "Saturday" .rodata:0006059C DCD aJan ; "Jan" .rodata:000605A0 DCD aFeb ; "Feb" .rodata:000605A4 DCD aMar ; "Mar" .rodata:000605A8 DCD aApr ; "Apr" .rodata:000605AC DCD aMay ; "May" .rodata:000605B0 DCD aJun ; "Jun" .rodata:000605B4 DCD aJul ; "Jul" .rodata:000605B8 DCD aAug ; "Aug" .rodata:000605BC DCD aSep ; "Sep" .rodata:000605C0 DCD aOct ; "Oct" .rodata:000605C4 DCD aNov ; "Nov" .rodata:000605C8 DCD aDec ; "Dec" .rodata:000605CC DCD aJanuary ; "January" .rodata:000605D0 DCD aFebruary ; "February" .rodata:000605D4 DCD aMarch ; "March" .rodata:000605D8 DCD aApril ; "April" .rodata:000605DC DCD aMay ; "May" .rodata:000605E0 DCD aJune ; "June" .rodata:000605E4 DCD aJuly ; "July" .rodata:000605E8 DCD aAugust ; "August" .rodata:000605EC DCD aSeptember ; "September" .rodata:000605F0 DCD aOctober ; "October" .rodata:000605F4 DCD aNovember ; "November" .rodata:000605F8 DCD aDecember ; "December" .rodata:000605FC DCD aAm ; "AM" .rodata:00060600 DCD aPm ; "PM" .rodata:00060604 DCD aABEHMSY ; "%a %b %e %H:%M:%S %Y" .rodata:00060608 DCD aMDY ; "%m/%d/%y" .rodata:0006060C DCD aHMS ; "%H:%M:%S" .rodata:00060610 DCD aIMSP ; "%I:%M:%S %p" .rodata:00060614 ALIGN 8 .rodata:00060618 DCD dword_60BE8 .rodata:0006061C DCD dword_60BE8 .rodata:00060620 DCD dword_60BE8 .rodata:00060624 DCD dword_60BE8 .rodata:00060628 DCD dword_60BE8 .rodata:0006062C ALIGN 0x10 .rodata:00060630 DCD dword_60BE8 .rodata:00060634 DCD dword_60BD8 .rodata:00060638 DCD dword_60BC8 .rodata:0006063C DCD dword_60BB8 .rodata:00060640 DCD dword_60BA8 .rodata:00060644 DCD dword_60B98 .rodata:00060648 DCD dword_60B88 .rodata:0006064C DCD dword_60B78 .rodata:00060650 DCD dword_60B5C .rodata:00060654 DCD dword_60B40 .rodata:00060658 DCD dword_60B20 .rodata:0006065C DCD dword_60AF8 .rodata:00060660 DCD dword_60AD4 .rodata:00060664 DCD dword_60AB8 .rodata:00060668 DCD dword_60A94 .rodata:0006066C DCD dword_60A84 .rodata:00060670 DCD dword_60A74 .rodata:00060674 DCD dword_60A64 .rodata:00060678 DCD dword_60A54 .rodata:0006067C DCD dword_60A44 .rodata:00060680 DCD dword_60A34 .rodata:00060684 DCD dword_60A24 .rodata:00060688 DCD dword_60A14 .rodata:0006068C DCD dword_60A04 .rodata:00060690 DCD dword_609F4 .rodata:00060694 DCD dword_609E4 .rodata:00060698 DCD dword_609D4 .rodata:0006069C DCD dword_609B4 .rodata:000606A0 DCD dword_60990 .rodata:000606A4 DCD dword_60978 .rodata:000606A8 DCD dword_60960 .rodata:000606AC DCD dword_60A44 .rodata:000606B0 DCD dword_6094C .rodata:000606B4 DCD dword_60938 .rodata:000606B8 DCD dword_6091C .rodata:000606BC DCD dword_608F4 .rodata:000606C0 DCD dword_608D4 .rodata:000606C4 DCD dword_608B0 .rodata:000606C8 DCD dword_6088C .rodata:000606CC DCD dword_60880 .rodata:000606D0 DCD dword_60874 .rodata:000606D4 DCD dword_60820 .rodata:000606D8 DCD dword_607FC .rodata:000606DC DCD dword_607D8 .rodata:000606E0 DCD dword_607A8 .rodata:000606E4 DCD dword_607A4 .rodata:000606E8 DCD dword_607A4 .rodata:000606EC DCD dword_607A4 .rodata:000606F0 DCD dword_607A4 .rodata:000606F4 DCD dword_607A4 .rodata:000606F8 DCD dword_607A0 .rodata:000606FC DCD 0x130BC3A, 0x6079C, 0x607A0, 0x60798, 0x60798, 0x60BE8 .rodata:000606FC DCD 0x60780, 0x60720, 0x61610, 0x25, 0x61, 0x20, 0x25 .rodata:000606FC DCD 0x62, 0x20, 0x25, 0x65, 0x20, 0x25, 0x48, 0x3A, 0x25 .rodata:000606FC DCD 0x4D, 0x3A, 0x25, 0x53, 0x20, 0x25, 0x5A, 0x20, 0x25 .rodata:000606FC DCD 0x59, 0 .rodata:00060780 aABEHMSZY DCB "%a %b %e %H:%M:%S %Z %Y",0 .rodata:00060798 DCD 1, 4 .rodata:000607A0 dword_607A0 DCD 7 ; DATA XREF: .rodata:000606F8o .rodata:000607A4 dword_607A4 DCD 0 ; DATA XREF: .rodata:000606E4o .rodata:000607A4 ; .rodata:000606E8o ... .rodata:000607A8 dword_607A8 DCD 0x25, 0x49, 0x3A, 0x25, 0x4D, 0x3A, 0x25, 0x53, 0x20 .rodata:000607A8 ; DATA XREF: .rodata:000606E0o .rodata:000607A8 DCD 0x25, 0x70, 0 .rodata:000607D8 dword_607D8 DCD 0x25, 0x48, 0x3A, 0x25, 0x4D, 0x3A, 0x25, 0x53, 0 .rodata:000607D8 ; DATA XREF: .rodata:000606DCo .rodata:000607FC dword_607FC DCD 0x25, 0x6D, 0x2F, 0x25, 0x64, 0x2F, 0x25, 0x79, 0 .rodata:000607FC ; DATA XREF: .rodata:000606D8o .rodata:00060820 dword_60820 DCD 0x25, 0x61, 0x20, 0x25, 0x62, 0x20, 0x25, 0x65, 0x20 .rodata:00060820 ; DATA XREF: .rodata:000606D4o .rodata:00060820 DCD 0x25, 0x48, 0x3A, 0x25, 0x4D, 0x3A, 0x25, 0x53, 0x20 .rodata:00060820 DCD 0x25, 0x59, 0 .rodata:00060874 dword_60874 DCD 0x50, 0x4D, 0 ; DATA XREF: .rodata:000606D0o .rodata:00060880 dword_60880 DCD 0x41, 0x4D, 0 ; DATA XREF: .rodata:000606CCo .rodata:0006088C dword_6088C DCD 0x44, 0x65, 0x63, 0x65, 0x6D, 0x62, 0x65, 0x72, 0 .rodata:0006088C ; DATA XREF: .rodata:000606C8o .rodata:000608B0 dword_608B0 DCD 0x4E, 0x6F, 0x76, 0x65, 0x6D, 0x62, 0x65, 0x72, 0 .rodata:000608B0 ; DATA XREF: .rodata:000606C4o .rodata:000608D4 dword_608D4 DCD 0x4F, 0x63, 0x74, 0x6F, 0x62, 0x65, 0x72, 0 .rodata:000608D4 ; DATA XREF: .rodata:000606C0o .rodata:000608F4 dword_608F4 DCD 0x53, 0x65, 0x70, 0x74, 0x65, 0x6D, 0x62, 0x65, 0x72 .rodata:000608F4 ; DATA XREF: .rodata:000606BCo .rodata:000608F4 DCD 0 .rodata:0006091C dword_6091C DCD 0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0 .rodata:0006091C ; DATA XREF: .rodata:000606B8o .rodata:00060938 dword_60938 DCD 0x4A, 0x75, 0x6C, 0x79, 0 .rodata:00060938 ; DATA XREF: .rodata:000606B4o .rodata:0006094C dword_6094C DCD 0x4A, 0x75, 0x6E, 0x65, 0 .rodata:0006094C ; DATA XREF: .rodata:000606B0o .rodata:00060960 dword_60960 DCD 0x41, 0x70, 0x72, 0x69, 0x6C, 0 .rodata:00060960 ; DATA XREF: .rodata:000606A8o .rodata:00060978 dword_60978 DCD 0x4D, 0x61, 0x72, 0x63, 0x68, 0 .rodata:00060978 ; DATA XREF: .rodata:000606A4o .rodata:00060990 dword_60990 DCD 0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0 .rodata:00060990 ; DATA XREF: .rodata:000606A0o .rodata:000609B4 dword_609B4 DCD 0x4A, 0x61, 0x6E, 0x75, 0x61, 0x72, 0x79, 0 .rodata:000609B4 ; DATA XREF: .rodata:0006069Co .rodata:000609D4 dword_609D4 DCD 0x44, 0x65, 0x63, 0 ; DATA XREF: .rodata:00060698o .rodata:000609E4 dword_609E4 DCD 0x4E, 0x6F, 0x76, 0 ; DATA XREF: .rodata:00060694o .rodata:000609F4 dword_609F4 DCD 0x4F, 0x63, 0x74, 0 ; DATA XREF: .rodata:00060690o .rodata:00060A04 dword_60A04 DCD 0x53, 0x65, 0x70, 0 ; DATA XREF: .rodata:0006068Co .rodata:00060A14 dword_60A14 DCD 0x41, 0x75, 0x67, 0 ; DATA XREF: .rodata:00060688o .rodata:00060A24 dword_60A24 DCD 0x4A, 0x75, 0x6C, 0 ; DATA XREF: .rodata:00060684o .rodata:00060A34 dword_60A34 DCD 0x4A, 0x75, 0x6E, 0 ; DATA XREF: .rodata:00060680o .rodata:00060A44 dword_60A44 DCD 0x4D, 0x61, 0x79, 0 ; DATA XREF: .rodata:0006067Co .rodata:00060A44 ; .rodata:000606ACo .rodata:00060A54 dword_60A54 DCD 0x41, 0x70, 0x72, 0 ; DATA XREF: .rodata:00060678o .rodata:00060A64 dword_60A64 DCD 0x4D, 0x61, 0x72, 0 ; DATA XREF: .rodata:00060674o .rodata:00060A74 dword_60A74 DCD 0x46, 0x65, 0x62, 0 ; DATA XREF: .rodata:00060670o .rodata:00060A84 dword_60A84 DCD 0x4A, 0x61, 0x6E, 0 ; DATA XREF: .rodata:0006066Co .rodata:00060A94 dword_60A94 DCD 0x53, 0x61, 0x74, 0x75, 0x72, 0x64, 0x61, 0x79, 0 .rodata:00060A94 ; DATA XREF: .rodata:00060668o .rodata:00060AB8 dword_60AB8 DCD 0x46, 0x72, 0x69, 0x64, 0x61, 0x79, 0 .rodata:00060AB8 ; DATA XREF: .rodata:00060664o .rodata:00060AD4 dword_60AD4 DCD 0x54, 0x68, 0x75, 0x72, 0x73, 0x64, 0x61, 0x79, 0 .rodata:00060AD4 ; DATA XREF: .rodata:00060660o .rodata:00060AF8 dword_60AF8 DCD 0x57, 0x65, 0x64, 0x6E, 0x65, 0x73, 0x64, 0x61, 0x79 .rodata:00060AF8 ; DATA XREF: .rodata:0006065Co .rodata:00060AF8 DCD 0 .rodata:00060B20 dword_60B20 DCD 0x54, 0x75, 0x65, 0x73, 0x64, 0x61, 0x79, 0 .rodata:00060B20 ; DATA XREF: .rodata:00060658o .rodata:00060B40 dword_60B40 DCD 0x4D, 0x6F, 0x6E, 0x64, 0x61, 0x79, 0 .rodata:00060B40 ; DATA XREF: .rodata:00060654o .rodata:00060B5C dword_60B5C DCD 0x53, 0x75, 0x6E, 0x64, 0x61, 0x79, 0 .rodata:00060B5C ; DATA XREF: .rodata:00060650o .rodata:00060B78 dword_60B78 DCD 0x53, 0x61, 0x74, 0 ; DATA XREF: .rodata:0006064Co .rodata:00060B88 dword_60B88 DCD 0x46, 0x72, 0x69, 0 ; DATA XREF: .rodata:00060648o .rodata:00060B98 dword_60B98 DCD 0x54, 0x68, 0x75, 0 ; DATA XREF: .rodata:00060644o .rodata:00060BA8 dword_60BA8 DCD 0x57, 0x65, 0x64, 0 ; DATA XREF: .rodata:00060640o .rodata:00060BB8 dword_60BB8 DCD 0x54, 0x75, 0x65, 0 ; DATA XREF: .rodata:0006063Co .rodata:00060BC8 dword_60BC8 DCD 0x4D, 0x6F, 0x6E, 0 ; DATA XREF: .rodata:00060638o .rodata:00060BD8 dword_60BD8 DCD 0x53, 0x75, 0x6E, 0 ; DATA XREF: .rodata:00060634o .rodata:00060BE8 dword_60BE8 DCD 0 ; DATA XREF: .rodata:00060618o .rodata:00060BE8 ; .rodata:0006061Co ... .rodata:00060BEC aIMSP DCB "%I:%M:%S %p",0 ; DATA XREF: .rodata:00060610o .rodata:00060BF8 aHMS DCB "%H:%M:%S",0 ; DATA XREF: .rodata:0006060Co .rodata:00060C01 ALIGN 4 .rodata:00060C04 aMDY DCB "%m/%d/%y",0 ; DATA XREF: .rodata:00060608o .rodata:00060C0D ALIGN 0x10 .rodata:00060C10 aABEHMSY DCB "%a %b %e %H:%M:%S %Y",0 ; DATA XREF: .rodata:00060604o .rodata:00060C25 ALIGN 4 .rodata:00060C28 aPm DCB "PM",0 ; DATA XREF: .rodata:00060600o .rodata:00060C2B ALIGN 4 .rodata:00060C2C aAm DCB "AM",0 ; DATA XREF: .rodata:000605FCo .rodata:00060C2F ALIGN 0x10 .rodata:00060C30 aDecember DCB "December",0 ; DATA XREF: .rodata:000605F8o .rodata:00060C39 ALIGN 4 .rodata:00060C3C aNovember DCB "November",0 ; DATA XREF: .rodata:000605F4o .rodata:00060C45 ALIGN 4 .rodata:00060C48 aOctober DCB "October",0 ; DATA XREF: .rodata:000605F0o .rodata:00060C50 aSeptember DCB "September",0 ; DATA XREF: .rodata:000605ECo .rodata:00060C5A ALIGN 4 .rodata:00060C5C aAugust DCB "August",0 ; DATA XREF: .rodata:000605E8o .rodata:00060C63 ALIGN 4 .rodata:00060C64 aJuly DCB "July",0 ; DATA XREF: .rodata:000605E4o .rodata:00060C69 ALIGN 4 .rodata:00060C6C aJune DCB "June",0 ; DATA XREF: .rodata:000605E0o .rodata:00060C71 ALIGN 4 .rodata:00060C74 aApril DCB "April",0 ; DATA XREF: .rodata:000605D8o .rodata:00060C7A ALIGN 4 .rodata:00060C7C aMarch DCB "March",0 ; DATA XREF: .rodata:000605D4o .rodata:00060C82 ALIGN 4 .rodata:00060C84 aFebruary DCB "February",0 ; DATA XREF: .rodata:000605D0o .rodata:00060C8D ALIGN 0x10 .rodata:00060C90 aJanuary DCB "January",0 ; DATA XREF: .rodata:000605CCo .rodata:00060C98 aDec DCB "Dec",0 ; DATA XREF: .rodata:000605C8o .rodata:00060C9C aNov DCB "Nov",0 ; DATA XREF: .rodata:000605C4o .rodata:00060CA0 aOct DCB "Oct",0 ; DATA XREF: .rodata:000605C0o .rodata:00060CA4 aSep DCB "Sep",0 ; DATA XREF: .rodata:000605BCo .rodata:00060CA8 aAug DCB "Aug",0 ; DATA XREF: .rodata:000605B8o .rodata:00060CAC aJul DCB "Jul",0 ; DATA XREF: .rodata:000605B4o .rodata:00060CB0 aJun DCB "Jun",0 ; DATA XREF: .rodata:000605B0o .rodata:00060CB4 aMay DCB "May",0 ; DATA XREF: .rodata:000605ACo .rodata:00060CB4 ; .rodata:000605DCo .rodata:00060CB8 aApr DCB "Apr",0 ; DATA XREF: .rodata:000605A8o .rodata:00060CBC aMar DCB "Mar",0 ; DATA XREF: .rodata:000605A4o .rodata:00060CC0 aFeb DCB "Feb",0 ; DATA XREF: .rodata:000605A0o .rodata:00060CC4 aJan DCB "Jan",0 ; DATA XREF: .rodata:0006059Co .rodata:00060CC8 aSaturday DCB "Saturday",0 ; DATA XREF: .rodata:00060598o .rodata:00060CD1 ALIGN 4 .rodata:00060CD4 aFriday DCB "Friday",0 ; DATA XREF: .rodata:00060594o .rodata:00060CDB ALIGN 4 .rodata:00060CDC aThursday DCB "Thursday",0 ; DATA XREF: .rodata:00060590o .rodata:00060CE5 ALIGN 4 .rodata:00060CE8 aWednesday DCB "Wednesday",0 ; DATA XREF: .rodata:0006058Co .rodata:00060CF2 ALIGN 4 .rodata:00060CF4 aTuesday DCB "Tuesday",0 ; DATA XREF: .rodata:00060588o .rodata:00060CFC aMonday DCB "Monday",0 ; DATA XREF: .rodata:00060584o .rodata:00060D03 ALIGN 4 .rodata:00060D04 aSunday DCB "Sunday",0 ; DATA XREF: .rodata:00060580o .rodata:00060D0B ALIGN 4 .rodata:00060D0C aSat DCB "Sat",0 ; DATA XREF: .rodata:0006057Co .rodata:00060D10 aFri DCB "Fri",0 ; DATA XREF: .rodata:00060578o .rodata:00060D14 aThu DCB "Thu",0 ; DATA XREF: .rodata:00060574o .rodata:00060D18 aWed DCB "Wed",0 ; DATA XREF: .rodata:00060570o .rodata:00060D1C aTue DCB "Tue",0 ; DATA XREF: .rodata:0006056Co .rodata:00060D20 aMon DCB "Mon",0 ; DATA XREF: .rodata:00060568o .rodata:00060D24 aSun DCB "Sun",0 ; DATA XREF: .rodata:00060564o .rodata:00060D28 EXPORT _nl_C_LC_PAPER .rodata:00060D28 _nl_C_LC_PAPER DCB 4, 0x16, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00060D28 DCB 0xFF, 0xFF, 0xFF, 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 3 .rodata:00060D28 DCB 0, 0, 0 .rodata:00060D48 DCD 0x129, 0xD2, 0x61610 .rodata:00060D54 EXPORT _nl_C_LC_NAME .rodata:00060D54 _nl_C_LC_NAME DCB 4, 0x16, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00060D54 DCB 0xFF, 0xFF, 0xFF, 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 7 .rodata:00060D54 DCB 0, 0, 0 .rodata:00060D74 DCD aPTGTMTF ; "%p%t%g%t%m%t%f" .rodata:00060D78 DCD dword_60D90 .rodata:00060D7C DCD dword_60D90 .rodata:00060D80 DCD dword_60D90 .rodata:00060D84 DCD dword_60D90 .rodata:00060D88 DCD dword_60D90 .rodata:00060D8C DCD _nl_C_codeset ; "ANSI_X3.4-1968" .rodata:00060D90 dword_60D90 DCD 0 ; DATA XREF: .rodata:00060D78o .rodata:00060D90 ; .rodata:00060D7Co ... .rodata:00060D94 aPTGTMTF DCB "%p%t%g%t%m%t%f",0 ; DATA XREF: .rodata:00060D74o .rodata:00060DA3 ALIGN 4 .rodata:00060DA4 EXPORT _nl_C_LC_ADDRESS .rodata:00060DA4 _nl_C_LC_ADDRESS DCB 4, 0x16, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00060DA4 DCB 0xFF, 0xFF, 0xFF, 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0xD .rodata:00060DA4 DCB 0, 0, 0 .rodata:00060DC4 DCD aANFNDNBNSHERNC ; "%a%N%f%N%d%N%b%N%s %h %e %r%N%C-%z %T%N"... .rodata:00060DC8 DCD dword_60DF8 .rodata:00060DCC DCD dword_60DF8 .rodata:00060DD0 DCD dword_60DF8 .rodata:00060DD4 DCD dword_60DF8 .rodata:00060DD8 DCD dword_60DF8 .rodata:00060DDC DCD dword_60DF8 .rodata:00060DE0 DCD dword_60DF8 .rodata:00060DE4 DCD dword_60DF8 .rodata:00060DE8 DCD dword_60DF8 .rodata:00060DEC DCD dword_60DF8 .rodata:00060DF0 DCD dword_60DF8 .rodata:00060DF4 DCD _nl_C_codeset ; "ANSI_X3.4-1968" .rodata:00060DF8 dword_60DF8 DCD 0 ; DATA XREF: .rodata:00060DC8o .rodata:00060DF8 ; .rodata:00060DCCo ... .rodata:00060DFC aANFNDNBNSHERNC DCB "%a%N%f%N%d%N%b%N%s %h %e %r%N%C-%z %T%N%c%N",0 .rodata:00060DFC ; DATA XREF: .rodata:00060DC4o .rodata:00060E28 EXPORT _nl_C_LC_TELEPHONE .rodata:00060E28 _nl_C_LC_TELEPHONE DCB 4, 0x16, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00060E28 DCB 0xFF, 0xFF, 0xFF, 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 5 .rodata:00060E28 DCB 0, 0, 0 .rodata:00060E48 DCD aCAL ; "+%c %a %l" .rodata:00060E4C DCD dword_60E5C .rodata:00060E50 DCD dword_60E5C .rodata:00060E54 DCD dword_60E5C .rodata:00060E58 DCD _nl_C_codeset ; "ANSI_X3.4-1968" .rodata:00060E5C dword_60E5C DCD 0 ; DATA XREF: .rodata:00060E4Co .rodata:00060E5C ; .rodata:00060E50o ... .rodata:00060E60 aCAL DCB "+%c %a %l",0 ; DATA XREF: .rodata:00060E48o .rodata:00060E6A ALIGN 4 .rodata:00060E6C EXPORT _nl_C_LC_MEASUREMENT .rodata:00060E6C _nl_C_LC_MEASUREMENT DCB 4, 0x16, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00060E6C DCB 0xFF, 0xFF, 0xFF, 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 2 .rodata:00060E6C DCB 0, 0, 0 .rodata:00060E8C DCD dword_60E94 .rodata:00060E90 DCD _nl_C_codeset ; "ANSI_X3.4-1968" .rodata:00060E94 dword_60E94 DCD 1 ; DATA XREF: .rodata:00060E8Co .rodata:00060E98 EXPORT _nl_C_LC_IDENTIFICATION .rodata:00060E98 _nl_C_LC_IDENTIFICATION DCB 4, 0x16, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00060E98 DCB 0xFF, 0xFF, 0xFF, 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0x10 .rodata:00060E98 DCB 0, 0, 0 .rodata:00060EB8 DCD aIsoIec14652I18 ; "ISO/IEC 14652 i18n FDCC-set" .rodata:00060EBC DCD aIsoIecJtc1Sc22 ; "ISO/IEC JTC1/SC22/WG20 - internationali"... .rodata:00060EC0 DCD aCOKeldSimonsen ; "C/o Keld Simonsen, Skt. Jorgens Alle 8,"... .rodata:00060EC4 DCD aKeldSimonsen ; "Keld Simonsen" .rodata:00060EC8 DCD aKeldDkuug_dk ; "keld@dkuug.dk" .rodata:00060ECC DCD a4531226543 ; "+45 3122-6543" .rodata:00060ED0 DCD a4533256543 ; "+45 3325-6543" .rodata:00060ED4 DCD dword_60FB0 .rodata:00060ED8 DCD aIso_0 ; "ISO" .rodata:00060EDC DCD dword_60FB0 .rodata:00060EE0 DCD dword_60FB0 .rodata:00060EE4 DCD dword_60FB0 .rodata:00060EE8 DCD a1_0 ; "1.0" .rodata:00060EEC DCD a19971220 ; "1997-12-20" .rodata:00060EF0 DCD aI18n1999 ; "i18n:1999" .rodata:00060EF4 DCD _nl_C_codeset ; "ANSI_X3.4-1968" .rodata:00060EF8 aI18n1999 DCB "i18n:1999",0 ; DATA XREF: .rodata:00060EF0o .rodata:00060F02 aI18n1999_0 DCB "i18n:1999",0 .rodata:00060F0C aI18n1999_1 DCB "i18n:1999",0 .rodata:00060F16 aI18n1999_2 DCB "i18n:1999",0 .rodata:00060F20 aI18n1999_3 DCB "i18n:1999",0 .rodata:00060F2A aI18n1999_4 DCB "i18n:1999",0 .rodata:00060F34 DCD 0x38316900, 0x39313A6E, 0x69003939, 0x3A6E3831, 0x39393931 .rodata:00060F34 DCD 0x38316900, 0x39313A6E, 0x69003939, 0x3A6E3831, 0x39393931 .rodata:00060F34 DCD 0x38316900, 0x39313A6E, 0x69003939, 0x3A6E3831, 0x39393931 .rodata:00060F34 DCD 0x38316900, 0x39313A6E, 0x69003939, 0x3A6E3831, 0x39393931 .rodata:00060F34 DCD 0x38316900, 0x39313A6E, 0x69003939, 0x3A6E3831, 0x39393931 .rodata:00060F34 DCD 0 .rodata:00060F9C a19971220 DCB "1997-12-20",0 ; DATA XREF: .rodata:00060EECo .rodata:00060FA7 ALIGN 4 .rodata:00060FA8 a1_0 DCB "1.0",0 ; DATA XREF: .rodata:00060EE8o .rodata:00060FAC aIso_0 DCB "ISO",0 ; DATA XREF: .rodata:00060ED8o .rodata:00060FB0 dword_60FB0 DCD 0 ; DATA XREF: .rodata:00060ED4o .rodata:00060FB0 ; .rodata:00060EDCo ... .rodata:00060FB4 a4533256543 DCB "+45 3325-6543",0 ; DATA XREF: .rodata:00060ED0o .rodata:00060FC2 ALIGN 4 .rodata:00060FC4 a4531226543 DCB "+45 3122-6543",0 ; DATA XREF: .rodata:00060ECCo .rodata:00060FD2 ALIGN 4 .rodata:00060FD4 aKeldDkuug_dk DCB "keld@dkuug.dk",0 ; DATA XREF: .rodata:00060EC8o .rodata:00060FE2 ALIGN 4 .rodata:00060FE4 aKeldSimonsen DCB "Keld Simonsen",0 ; DATA XREF: .rodata:00060EC4o .rodata:00060FF2 ALIGN 4 .rodata:00060FF4 aCOKeldSimonsen DCB "C/o Keld Simonsen, Skt. Jorgens Alle 8, DK-1615 Kobenhavn V",0 .rodata:00060FF4 ; DATA XREF: .rodata:00060EC0o .rodata:00061030 aIsoIecJtc1Sc22 DCB "ISO/IEC JTC1/SC22/WG20 - internationalization",0 .rodata:00061030 ; DATA XREF: .rodata:00060EBCo .rodata:0006105E ALIGN 0x10 .rodata:00061060 aIsoIec14652I18 DCB "ISO/IEC 14652 i18n FDCC-set",0 .rodata:00061060 ; DATA XREF: .rodata:00060EB8o .rodata:0006107C collseqmb DCB 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0xA, 0xB, 0xC, 0xD, 0xE .rodata:0006107C ; DATA XREF: .rodata:000615F8o .rodata:0006107C DCB 0xF, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17 .rodata:0006107C DCB 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20 .rodata:0006107C DCB 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29 .rodata:0006107C DCB 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32 .rodata:0006107C DCB 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B .rodata:0006107C DCB 0x3C, 0x3D, 0x3E, 0x3F, 0x40, 0x41, 0x42, 0x43, 0x44 .rodata:0006107C DCB 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D .rodata:0006107C DCB 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56 .rodata:0006107C DCB 0x57, 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F .rodata:0006107C DCB 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68 .rodata:0006107C DCB 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71 .rodata:0006107C DCB 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A .rodata:0006107C DCB 0x7B, 0x7C, 0x7D, 0x7E, 0x7F, 0x80, 0x81, 0x82, 0x83 .rodata:0006107C DCB 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C .rodata:0006107C DCB 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95 .rodata:0006107C DCB 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E .rodata:0006107C DCB 0x9F, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7 .rodata:0006107C DCB 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0 .rodata:0006107C DCB 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9 .rodata:0006107C DCB 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0xC0, 0xC1, 0xC2 .rodata:0006107C DCB 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB .rodata:0006107C DCB 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4 .rodata:0006107C DCB 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD .rodata:0006107C DCB 0xDE, 0xDF, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6 .rodata:0006107C DCB 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF .rodata:0006107C DCB 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8 .rodata:0006107C DCB 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF .rodata:0006117C collseqwc DCB 8, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0xFF .rodata:0006117C ; DATA XREF: .rodata:000615FCo .rodata:0006117C DCB 0, 0, 0, 0x18, 0, 0, 0, 0x1C, 0, 0, 0, 0, 0, 0, 0 .rodata:0006117C DCB 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 5 .rodata:0006117C DCB 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 9, 0 .rodata:0006117C DCB 0, 0, 0xA, 0, 0, 0, 0xB, 0, 0, 0, 0xC, 0, 0, 0, 0xD .rodata:0006117C DCB 0, 0, 0, 0xE, 0, 0, 0, 0xF, 0, 0, 0, 0x10, 0, 0, 0 .rodata:0006117C DCB 0x11, 0, 0, 0, 0x12, 0, 0, 0, 0x13, 0, 0, 0, 0x14 .rodata:0006117C DCB 0, 0, 0, 0x15, 0, 0, 0, 0x16, 0, 0, 0, 0x17, 0, 0 .rodata:0006117C DCB 0, 0x18, 0, 0, 0, 0x19, 0, 0, 0, 0x1A, 0, 0, 0, 0x1B .rodata:0006117C DCB 0, 0, 0, 0x1C, 0, 0, 0, 0x1D, 0, 0, 0, 0x1E, 0, 0 .rodata:0006117C DCB 0, 0x1F, 0, 0, 0, 0x20, 0, 0, 0, 0x21, 0, 0, 0, 0x22 .rodata:0006117C DCB 0, 0, 0, 0x23, 0, 0, 0, 0x24, 0, 0, 0, 0x25, 0, 0 .rodata:0006117C DCB 0, 0x26, 0, 0, 0, 0x27, 0, 0, 0, 0x28, 0, 0, 0, 0x29 .rodata:0006117C DCB 0, 0, 0, 0x2A, 0, 0, 0, 0x2B, 0, 0, 0, 0x2C, 0, 0 .rodata:0006117C DCB 0, 0x2D, 0, 0, 0, 0x2E, 0, 0, 0, 0x2F, 0, 0, 0, 0x30 .rodata:0006117C DCB 0, 0, 0, 0x31, 0, 0, 0, 0x32, 0, 0, 0, 0x33, 0, 0 .rodata:0006117C DCB 0, 0x34, 0, 0, 0, 0x35, 0, 0, 0, 0x36, 0, 0, 0, 0x37 .rodata:0006117C DCB 0, 0, 0, 0x38, 0, 0, 0, 0x39, 0, 0, 0, 0x3A, 0, 0 .rodata:0006117C DCB 0, 0x3B, 0, 0, 0, 0x3C, 0, 0, 0, 0x3D, 0, 0, 0, 0x3E .rodata:0006117C DCB 0, 0, 0, 0x3F, 0, 0, 0, 0x40, 0, 0, 0, 0x41, 0, 0 .rodata:0006117C DCB 0, 0x42, 0, 0, 0, 0x43, 0, 0, 0, 0x44, 0, 0, 0, 0x45 .rodata:0006117C DCB 0, 0, 0, 0x46, 0, 0, 0, 0x47, 0, 0, 0, 0x48, 0, 0 .rodata:0006117C DCB 0, 0x49, 0, 0, 0, 0x4A, 0, 0, 0, 0x4B, 0, 0, 0, 0x4C .rodata:0006117C DCB 0, 0, 0, 0x4D, 0, 0, 0, 0x4E, 0, 0, 0, 0x4F, 0, 0 .rodata:0006117C DCB 0, 0x50, 0, 0, 0, 0x51, 0, 0, 0, 0x52, 0, 0, 0, 0x53 .rodata:0006117C DCB 0, 0, 0, 0x54, 0, 0, 0, 0x55, 0, 0, 0, 0x56, 0, 0 .rodata:0006117C DCB 0, 0x57, 0, 0, 0, 0x58, 0, 0, 0, 0x59, 0, 0, 0, 0x5A .rodata:0006117C DCB 0, 0, 0, 0x5B, 0, 0, 0, 0x5C, 0, 0, 0, 0x5D, 0, 0 .rodata:0006117C DCB 0, 0x5E, 0, 0, 0, 0x5F, 0, 0, 0, 0x60, 0, 0, 0, 0x61 .rodata:0006117C DCB 0, 0, 0, 0x62, 0, 0, 0, 0x63, 0, 0, 0, 0x64, 0, 0 .rodata:0006117C DCB 0, 0x65, 0, 0, 0, 0x66, 0, 0, 0, 0x67, 0, 0, 0, 0x68 .rodata:0006117C DCB 0, 0, 0, 0x69, 0, 0, 0, 0x6A, 0, 0, 0, 0x6B, 0, 0 .rodata:0006117C DCB 0, 0x6C, 0, 0, 0, 0x6D, 0, 0, 0, 0x6E, 0, 0, 0, 0x6F .rodata:0006117C DCB 0, 0, 0, 0x70, 0, 0, 0, 0x71, 0, 0, 0, 0x72, 0, 0 .rodata:0006117C DCB 0, 0x73, 0, 0, 0, 0x74, 0, 0, 0, 0x75, 0, 0, 0, 0x76 .rodata:0006117C DCB 0, 0, 0, 0x77, 0, 0, 0, 0x78, 0, 0, 0, 0x79, 0, 0 .rodata:0006117C DCB 0, 0x7A, 0, 0, 0, 0x7B, 0, 0, 0, 0x7C, 0, 0, 0, 0x7D .rodata:0006117C DCB 0, 0, 0, 0x7E, 0, 0, 0, 0x7F, 0, 0, 0, 0x80, 0, 0 .rodata:0006117C DCB 0, 0x81, 0, 0, 0, 0x82, 0, 0, 0, 0x83, 0, 0, 0, 0x84 .rodata:0006117C DCB 0, 0, 0, 0x85, 0, 0, 0, 0x86, 0, 0, 0, 0x87, 0, 0 .rodata:0006117C DCB 0, 0x88, 0, 0, 0, 0x89, 0, 0, 0, 0x8A, 0, 0, 0, 0x8B .rodata:0006117C DCB 0, 0, 0, 0x8C, 0, 0, 0, 0x8D, 0, 0, 0, 0x8E, 0, 0 .rodata:0006117C DCB 0, 0x8F, 0, 0, 0, 0x90, 0, 0, 0, 0x91, 0, 0, 0, 0x92 .rodata:0006117C DCB 0, 0, 0, 0x93, 0, 0, 0, 0x94, 0, 0, 0, 0x95, 0, 0 .rodata:0006117C DCB 0, 0x96, 0, 0, 0, 0x97, 0, 0, 0, 0x98, 0, 0, 0, 0x99 .rodata:0006117C DCB 0, 0, 0, 0x9A, 0, 0, 0, 0x9B, 0, 0, 0, 0x9C, 0, 0 .rodata:0006117C DCB 0, 0x9D, 0, 0, 0, 0x9E, 0, 0, 0, 0x9F, 0, 0, 0, 0xA0 .rodata:0006117C DCB 0, 0, 0, 0xA1, 0, 0, 0, 0xA2, 0, 0, 0, 0xA3, 0, 0 .rodata:0006117C DCB 0, 0xA4, 0, 0, 0, 0xA5, 0, 0, 0, 0xA6, 0, 0, 0, 0xA7 .rodata:0006117C DCB 0, 0, 0, 0xA8, 0, 0, 0, 0xA9, 0, 0, 0, 0xAA, 0, 0 .rodata:0006117C DCB 0, 0xAB, 0, 0, 0, 0xAC, 0, 0, 0, 0xAD, 0, 0, 0, 0xAE .rodata:0006117C DCB 0, 0, 0, 0xAF, 0, 0, 0, 0xB0, 0, 0, 0, 0xB1, 0, 0 .rodata:0006117C DCB 0, 0xB2, 0, 0, 0, 0xB3, 0, 0, 0, 0xB4, 0, 0, 0, 0xB5 .rodata:0006117C DCB 0, 0, 0, 0xB6, 0, 0, 0, 0xB7, 0, 0, 0, 0xB8, 0, 0 .rodata:0006117C DCB 0, 0xB9, 0, 0, 0, 0xBA, 0, 0, 0, 0xBB, 0, 0, 0, 0xBC .rodata:0006117C DCB 0, 0, 0, 0xBD, 0, 0, 0, 0xBE, 0, 0, 0, 0xBF, 0, 0 .rodata:0006117C DCB 0, 0xC0, 0, 0, 0, 0xC1, 0, 0, 0, 0xC2, 0, 0, 0, 0xC3 .rodata:0006117C DCB 0, 0, 0, 0xC4, 0, 0, 0, 0xC5, 0, 0, 0, 0xC6, 0, 0 .rodata:0006117C DCB 0, 0xC7, 0, 0, 0, 0xC8, 0, 0, 0, 0xC9, 0, 0, 0, 0xCA .rodata:0006117C DCB 0, 0, 0, 0xCB, 0, 0, 0, 0xCC, 0, 0, 0, 0xCD, 0, 0 .rodata:0006117C DCB 0, 0xCE, 0, 0, 0, 0xCF, 0, 0, 0, 0xD0, 0, 0, 0, 0xD1 .rodata:0006117C DCB 0, 0, 0, 0xD2, 0, 0, 0, 0xD3, 0, 0, 0, 0xD4, 0, 0 .rodata:0006117C DCB 0, 0xD5, 0, 0, 0, 0xD6, 0, 0, 0, 0xD7, 0, 0, 0, 0xD8 .rodata:0006117C DCB 0, 0, 0, 0xD9, 0, 0, 0, 0xDA, 0, 0, 0, 0xDB, 0, 0 .rodata:0006117C DCB 0, 0xDC, 0, 0, 0, 0xDD, 0, 0, 0, 0xDE, 0, 0, 0, 0xDF .rodata:0006117C DCB 0, 0, 0, 0xE0, 0, 0, 0, 0xE1, 0, 0, 0, 0xE2, 0, 0 .rodata:0006117C DCB 0, 0xE3, 0, 0, 0, 0xE4, 0, 0, 0, 0xE5, 0, 0, 0, 0xE6 .rodata:0006117C DCB 0, 0, 0, 0xE7, 0, 0, 0, 0xE8, 0, 0, 0, 0xE9, 0, 0 .rodata:0006117C DCB 0, 0xEA, 0, 0, 0, 0xEB, 0, 0, 0, 0xEC, 0, 0, 0, 0xED .rodata:0006117C DCB 0, 0, 0, 0xEE, 0, 0, 0, 0xEF, 0, 0, 0, 0xF0, 0, 0 .rodata:0006117C DCB 0, 0xF1, 0, 0, 0, 0xF2, 0, 0, 0, 0xF3, 0, 0, 0, 0xF4 .rodata:0006117C DCB 0, 0, 0, 0xF5, 0, 0, 0, 0xF6, 0, 0, 0, 0xF7, 0, 0 .rodata:0006117C DCB 0, 0xF8, 0, 0, 0, 0xF9, 0, 0, 0, 0xFA, 0, 0, 0, 0xFB .rodata:0006117C DCB 0, 0, 0, 0xFC, 0, 0, 0, 0xFD, 0, 0, 0, 0xFE, 0, 0 .rodata:0006117C DCB 0, 0xFF, 0, 0, 0 .rodata:00061598 EXPORT _nl_C_LC_COLLATE .rodata:00061598 _nl_C_LC_COLLATE DCB 4, 0x16, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00061598 DCB 0xFF, 0xFF, 0xFF, 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0x13 .rodata:00061598 DCB 0, 0, 0 .rodata:000615B8 DCD 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:000615F8 DCD collseqmb .rodata:000615FC DCD collseqwc .rodata:00061600 DCD _nl_C_codeset ; "ANSI_X3.4-1968" .rodata:00061604 EXPORT _nl_C_name .rodata:00061604 _nl_C_name DCW 0x43 ; DATA XREF: __wcsmbs_load_conv+40o .rodata:00061604 ; __wcsmbs_load_conv:off_33A74o ... .rodata:00061606 ALIGN 4 .rodata:00061608 EXPORT _nl_POSIX_name .rodata:00061608 _nl_POSIX_name DCB "POSIX",0 ; DATA XREF: setlocale+32Co .rodata:00061608 ; setlocale:off_3EF74o ... .rodata:0006160E ALIGN 0x10 .rodata:00061610 EXPORT _nl_C_codeset .rodata:00061610 _nl_C_codeset DCB "ANSI_X3.4-1968",0 ; DATA XREF: .rodata:0006040Co .rodata:00061610 ; .rodata:000604FCo ... .rodata:0006161F ALIGN 0x10 .rodata:00061620 _tens_in_limb DCB 0, 0, 0, 0, 0xA, 0, 0, 0, 0x64, 0, 0, 0, 0xE8, 3, 0 .rodata:00061620 ; DATA XREF: __strtof_internal+1498o .rodata:00061620 ; __strtof_internal:loc_43190o ... .rodata:00061620 DCB 0, 0x10, 0x27, 0, 0, 0xA0, 0x86, 1, 0, 0x40, 0x42 .rodata:00061620 DCB 0xF, 0, 0x80, 0x96, 0x98, 0, 0, 0xE1, 0xF5, 5, 0, 0xCA .rodata:00061620 DCB 0x9A, 0x3B .rodata:00061648 dword_61648 DCD 0x666E69 ; DATA XREF: __strtof_internal+174o .rodata:00061648 ; __strtof_internal:off_42088o .rodata:0006164C aInfinity DCB "infinity",0 ; DATA XREF: __strtof_internal+190o .rodata:0006164C ; __strtof_internal:off_4208Co .rodata:00061655 ALIGN 4 .rodata:00061658 aNan_0 DCB "nan",0 ; DATA XREF: __strtof_internal+1D8o .rodata:00061658 ; __strtof_internal:off_42090o .rodata:0006165C nbits.138 DCB 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 3 .rodata:0006165C ; DATA XREF: __strtof_internal:loc_429E0o .rodata:0006165C ; __strtof_internal:off_42CD8o .rodata:0006165C DCB 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 4, 0 .rodata:0006165C DCB 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0 .rodata:0006165C DCB 0, 4, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0 .rodata:0006169C _tens_in_limb_0 DCB 0, 0, 0, 0, 0xA, 0, 0, 0, 0x64, 0, 0, 0, 0xE8, 3, 0 .rodata:0006169C ; DATA XREF: __strtod_internal+16E4o .rodata:0006169C ; __strtod_internal:loc_46714o ... .rodata:0006169C DCB 0, 0x10, 0x27, 0, 0, 0xA0, 0x86, 1, 0, 0x40, 0x42 .rodata:0006169C DCB 0xF, 0, 0x80, 0x96, 0x98, 0, 0, 0xE1, 0xF5, 5, 0, 0xCA .rodata:0006169C DCB 0x9A, 0x3B .rodata:000616C4 dword_616C4 DCD 0x7FF00000, 0 ; DATA XREF: __strtod_internal+1168o .rodata:000616C4 ; __strtod_internal+1434o ... .rodata:000616CC dword_616CC DCD 0x7FF00000, 0 ; DATA XREF: __strtod_internal+1178o .rodata:000616CC ; __strtod_internal+1444o ... .rodata:000616D4 dword_616D4 DCD 0x666E69 ; DATA XREF: __strtod_internal+1A0o .rodata:000616D4 ; __strtod_internal:off_4539Co .rodata:000616D8 aInfinity_0 DCB "infinity",0 ; DATA XREF: __strtod_internal+1BCo .rodata:000616D8 ; __strtod_internal:off_453A0o .rodata:000616E1 ALIGN 4 .rodata:000616E4 dword_616E4 DCD 0x7FF00000, 0 ; DATA XREF: __strtod_internal+1F4o .rodata:000616E4 ; __strtod_internal:off_453A4o .rodata:000616EC dword_616EC DCD 0x7FF00000, 0 ; DATA XREF: __strtod_internal:loc_45218o .rodata:000616EC ; __strtod_internal:off_453A8o .rodata:000616F4 dword_616F4 DCD 0x6E616E ; DATA XREF: __strtod_internal+224o .rodata:000616F4 ; __strtod_internal:off_453ACo .rodata:000616F8 dword_616F8 DCD 0x7FF00000, 0 ; DATA XREF: __strtod_internal+AF8o .rodata:000616F8 ; __strtod_internal:off_45D38o .rodata:00061700 dword_61700 DCD 0x7FF00000, 0 ; DATA XREF: __strtod_internal+B08o .rodata:00061700 ; __strtod_internal:off_45D3Co .rodata:00061708 nbits.138_0 DCB 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 3 .rodata:00061708 ; DATA XREF: __strtod_internal:loc_45E00o .rodata:00061708 ; __strtod_internal:off_460E8o .rodata:00061708 DCB 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 4, 0 .rodata:00061708 DCB 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0 .rodata:00061708 DCB 0, 4, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0 .rodata:00061748 dword_61748 DCD 0x7FF00000, 0 ; DATA XREF: __strtod_internal+14CCo .rodata:00061748 ; __strtod_internal:off_46518o .rodata:00061750 dword_61750 DCD 0x7FF00000, 0 ; DATA XREF: __strtod_internal+14D4o .rodata:00061750 ; __strtod_internal:off_4651Co .rodata:00061758 dword_61758 DCD 0x7FF00000, 0 ; DATA XREF: __strtod_internal+1910o .rodata:00061758 ; __strtod_internal:off_469B8o .rodata:00061760 dword_61760 DCD 0x7FF00000, 0 ; DATA XREF: __strtod_internal+1918o .rodata:00061760 ; __strtod_internal:off_469BCo .rodata:00061768 EXPORT __clz_tab_1 .rodata:00061768 __clz_tab_1 DCB 0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5 .rodata:00061768 ; DATA XREF: __printf_fp:loc_219ACo .rodata:00061768 ; __printf_fp:loc_21A78o ... .rodata:00061768 DCB 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6 .rodata:00061768 DCB 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 .rodata:00061768 DCB 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7 .rodata:00061768 DCB 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7 .rodata:00061768 DCB 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7 .rodata:00061768 DCB 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7 .rodata:00061768 DCB 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8 .rodata:00061768 DCB 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 .rodata:00061768 DCB 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 .rodata:00061768 DCB 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 .rodata:00061768 DCB 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 .rodata:00061768 DCB 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 .rodata:00061768 DCB 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 .rodata:00061768 DCB 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 .rodata:00061768 DCB 8 .rodata:00061868 EXPORT __tens .rodata:00061868 __tens DCB 0, 0, 0, 0, 0, 0, 0, 0, 0xA, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00061868 ; DATA XREF: __printf_fp+824o .rodata:00061868 ; __printf_fp:off_21B68o ... .rodata:00061868 DCB 0, 0, 0, 0x64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10 .rodata:00061868 DCB 0x27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xE1, 0xF5 .rodata:00061868 DCB 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xC1, 0x6F, 0xF2 .rodata:00061868 DCB 0x86, 0x23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00061868 DCB 0x81, 0xEF, 0xAC, 0x85, 0x5B, 0x41, 0x6D, 0x2D, 0xEE .rodata:00061868 DCB 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00061868 DCB 0, 0, 1, 0x1F, 0x6A, 0xBF, 0x64, 0xED, 0x38, 0x6E .rodata:00061868 DCB 0xED, 0x97, 0xA7, 0xDA, 0xF4, 0xF9, 0x3F, 0xE9, 3 .rodata:00061868 DCB 0x4F, 0x18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00061868 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0x3E, 0x95 .rodata:00061868 DCB 0x2E, 9, 0x99, 0xDF, 3, 0xFD, 0x38, 0x15, 0xF, 0x2F .rodata:00061868 DCB 0xE4, 0x74, 0x23, 0xEC, 0xF5, 0xCF, 0xD3, 8, 0xDC .rodata:00061868 DCB 4, 0xC4, 0xDA, 0xB0, 0xCD, 0xBC, 0x19, 0x7F, 0x33 .rodata:00061868 DCB 0xA6, 3, 0x26, 0x1F, 0xE9, 0x4E, 2, 0, 0, 0, 0, 0 .rodata:00061868 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00061868 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .rodata:00061868 DCB 0, 0, 0, 1, 0x7C, 0x2E, 0x98, 0x5B, 0x87, 0xD3, 0xBE .rodata:00061868 DCB 0x72, 0x9F, 0xD9, 0xD8, 0x87, 0x2F, 0x15, 0x12, 0xC6 .rodata:00061868 DCB 0x50, 0xDE, 0x6B, 0x70, 0x6E, 0x4A, 0xCF, 0xF, 0xD8 .rodata:00061868 DCB 0x95, 0xD5, 0x6E, 0x71, 0xB2, 0x26, 0xB0, 0x66, 0xC6 .rodata:00061868 DCB 0xAD, 0x24, 0x36, 0x15, 0x1D, 0x5A, 0xD3, 0x42, 0x3C .rodata:00061868 DCB 0xE, 0x54, 0xFF, 0x63, 0xC0, 0x73, 0x55, 0xCC, 0x17 .rodata:00061868 DCB 0xEF, 0xF9, 0x65, 0xF2, 0x28, 0xBC, 0x55, 0xF7, 0xC7 .rodata:00061868 DCB 0xDC, 0x80, 0xDC, 0xED, 0x6E, 0xF4, 0xCE, 0xEF, 0xDC .rodata:00061868 DCB 0x5F, 0xF7, 0x53, 5, 0 .rodata:00061998 EXPORT _fpioconst_pow10 .rodata:00061998 _fpioconst_pow10 DCB 0, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 3 .rodata:00061998 ; DATA XREF: __printf_fp:loc_219D8o .rodata:00061998 ; __printf_fp:off_21B74o ... .rodata:00061998 DCB 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0, 4, 0, 0, 0, 6, 0 .rodata:00061998 DCB 0, 0, 3, 0, 0, 0, 0xE, 0, 0, 0, 0xA, 0, 0, 0, 9, 0 .rodata:00061998 DCB 0, 0, 3, 0, 0, 0, 0x1B, 0, 0, 0, 0x18, 0, 0, 0, 0xC .rodata:00061998 DCB 0, 0, 0, 4, 0, 0, 0, 0x36, 0, 0, 0, 0x32, 0, 0, 0 .rodata:00061998 DCB 0x10, 0, 0, 0, 6, 0, 0, 0, 0x6B, 0, 0, 0, 0x67, 0 .rodata:00061998 DCB 0, 0, 0x16, 0, 0, 0, 9, 0, 0, 0, 0xD5, 0, 0, 0, 0xD2 .rodata:00061998 DCB 0, 0, 0, 0x1F, 0, 0, 0, 0x10, 0, 0, 0, 0xAA, 1, 0 .rodata:00061998 DCB 0, 0xA6, 1, 0, 0, 0x2F, 0, 0, 0, 0x1D, 0, 0, 0, 0x53 .rodata:00061998 DCB 3, 0, 0, 0x50, 3, 0, 0 .rodata:00061A28 EXPORT _itoa_base_table .rodata:00061A28 _itoa_base_table DCB 0, 0, 0, 0, 1, 1, 0, 0, 0, 0x1F, 0, 0, 0, 0, 0, 0x80 .rodata:00061A28 DCB 0xFF, 0xFF, 0xFF, 0xFF, 0xAB, 0xAA, 0xAA, 0xAA, 0 .rodata:00061A28 DCB 1, 0, 0, 0, 0x14, 0, 0, 0x91, 0x1B, 0xD4, 0xCF, 0x24 .rodata:00061A28 DCB 0x3C, 0x56, 0x3B, 0, 0, 0, 0, 1, 2, 0, 0, 1, 0xF, 0 .rodata:00061A28 DCB 0, 0, 0, 0, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xCD, 0xCC .rodata:00061A28 DCB 0xCC, 0xCC, 0, 2, 0, 0, 1, 0xD, 0, 0, 0x95, 0x73, 0xC2 .rodata:00061A28 DCB 0x48, 0x84, 0x26, 0x5C, 0xC2, 0xAB, 0xAA, 0xAA, 0xAA .rodata:00061A28 DCB 0, 2, 0, 0, 0, 0xC, 0, 0, 0, 0x10, 0xBF, 0x81, 0xB6 .rodata:00061A28 DCB 0xD1, 0x1B, 0xF9, 0x25, 0x49, 0x92, 0x24, 1, 3, 0 .rodata:00061A28 DCB 0, 1, 0xB, 0, 0, 0x97, 0x9C, 0xDB, 0x75, 0xCB, 0xA2 .rodata:00061A28 DCB 7, 0x16, 0, 0, 0, 0, 1, 3, 0, 0, 1, 0xA, 0, 0, 0, 0 .rodata:00061A28 DCB 0, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0x39, 0x8E, 0xE3 .rodata:00061A28 DCB 0x38, 0, 1, 0, 0, 0, 0xA, 0, 0, 0x91, 0x1B, 0xD4, 0xCF .rodata:00061A28 DCB 0x24, 0x3C, 0x56, 0x3B, 0xCD, 0xCC, 0xCC, 0xCC, 0 .rodata:00061A28 DCB 3, 0, 0, 2, 9, 0, 0, 0, 0xCA, 0x9A, 0x3B, 0x82, 0xBE .rodata:00061A28 DCB 0xE0, 0x12, 0xA3, 0x8B, 0x2E, 0xBA, 0, 3, 0, 0, 0 .rodata:00061A28 DCB 9, 0, 0, 0x2B, 0x6D, 0x8B, 0x8C, 4, 0xDE, 0x4C, 0xD2 .rodata:00061A28 DCB 0xAB, 0xAA, 0xAA, 0xAA, 0, 3, 0, 0, 3, 8, 0, 0, 0 .rodata:00061A28 DCB 0, 0xA1, 0x19, 0xB5, 0x9A, 0xA3, 0x3F, 0x4F, 0xEC .rodata:00061A28 DCB 0xC4, 0x4E, 0, 2, 0, 0, 2, 8, 0, 0, 0x21, 0x10, 0x9F .rodata:00061A28 DCB 0x30, 0x5F, 0xAC, 0xF8, 0x50, 0x25, 0x49, 0x92, 0x24 .rodata:00061A28 DCB 1, 4, 0, 0, 1, 8, 0, 0, 0, 0xC1, 0xF6, 0x57, 0x1E .rodata:00061A28 DCB 0x3B, 0x84, 0x74, 0x89, 0x88, 0x88, 0x88, 0, 3, 0 .rodata:00061A28 DCB 0, 0, 8, 0, 0, 0x81, 0x9B, 0xC2, 0x98, 0xC2, 0x26 .rodata:00061A28 DCB 3, 0xAD, 0, 0, 0, 0, 1, 4, 0, 0, 3, 7, 0, 0, 0, 0 .rodata:00061A28 DCB 0, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xF1, 0xF0, 0xF0 .rodata:00061A28 DCB 0xF0, 0, 4, 0, 0, 3, 7, 0, 0, 0x71, 0x45, 0x75, 0x18 .rodata:00061A28 DCB 0xBD, 0xB6, 0xF0, 0x4E, 0x39, 0x8E, 0xE3, 0x38, 0 .rodata:00061A28 DCB 2, 0, 0, 2, 7, 0, 0, 0x80, 0xBC, 0x7D, 0x24, 0xA1 .rodata:00061A28 DCB 0x48, 0xFC, 0xC0, 0xCB, 0x6B, 0x28, 0xAF, 1, 5, 0 .rodata:00061A28 DCB 0, 2, 7, 0, 0, 0x7B, 0x66, 0x47, 0x35, 0x42, 0x89 .rodata:00061A28 DCB 0x83, 0x33, 0xCD, 0xCC, 0xCC, 0xCC, 0, 4, 0, 0, 1 .rodata:00061A28 DCB 7, 0, 0, 0, 0x40, 0x4B, 0x4C, 0xAB, 0x29, 0x7F, 0xAD .rodata:00061A28 DCB 0x87, 0x61, 0x18, 0x86, 1, 5, 0, 0, 1, 7, 0, 0, 0x1D .rodata:00061A28 DCB 0x6E, 0x5A, 0x6B, 0x15, 0x3D, 0x3C, 0x31, 0xA3, 0x8B .rodata:00061A28 DCB 0x2E, 0xBA, 0, 4, 0, 0, 0, 7, 0, 0, 0x80, 0xE1, 0xAC .rodata:00061A28 DCB 0x94, 0xE0, 0xA9, 0xCC, 0xB8, 0xC9, 0x42, 0x16, 0xB2 .rodata:00061A28 DCB 0, 4, 0, 0, 0, 7, 0, 0, 0x67, 0x83, 0xF1, 0xCA, 0xE9 .rodata:00061A28 DCB 0x6D, 0xED, 0x42, 0xAB, 0xAA, 0xAA, 0xAA, 0, 4, 0 .rodata:00061A28 DCB 0, 4, 6, 0, 0, 0, 0, 0x64, 0xB, 0xB, 0xE, 0x98, 0x67 .rodata:00061A28 DCB 0x1F, 0x85, 0xEB, 0x51, 0, 3, 0, 0, 4, 6, 0, 0, 0x51 .rodata:00061A28 DCB 0x4A, 0x8D, 0xE, 0x12, 0x98, 0x79, 0x19, 0x4F, 0xEC .rodata:00061A28 DCB 0xC4, 0x4E, 0, 3, 0, 0, 3, 6, 0, 0, 0x40, 0xAE, 0x69 .rodata:00061A28 DCB 0x12, 0x96, 0x53, 0xE8, 0xBC, 0xDB, 0x4B, 0x68, 0x2F .rodata:00061A28 DCB 1, 5, 0, 0, 3, 6, 0, 0, 0x49, 0x91, 0x17, 0x17, 0xA9 .rodata:00061A28 DCB 3, 0xC1, 0x62, 0x25, 0x49, 0x92, 0x24, 1, 5, 0, 0 .rodata:00061A28 DCB 3, 6, 0, 0, 0, 0x10, 0xB9, 0x1C, 0x43, 0x3D, 0x35 .rodata:00061A28 DCB 0x1D, 9, 0xCB, 0x3D, 0x8D, 0, 4, 0, 0, 2, 6, 0, 0 .rodata:00061A28 DCB 0x99, 0x48, 0x74, 0x23, 0xEA, 0xEC, 0x1D, 0xCE, 0x89 .rodata:00061A28 DCB 0x88, 0x88, 0x88, 0, 4, 0, 0, 2, 6, 0, 0, 0x40, 0xA8 .rodata:00061A28 DCB 0x73, 0x2B, 0x11, 0xC5, 0xF, 0x79, 0x85, 0x10, 0x42 .rodata:00061A28 DCB 8, 1, 5, 0, 0, 2, 6, 0, 0, 0x41, 0x3B, 0xE6, 0x34 .rodata:00061A28 DCB 0xA0, 0x65, 0xB8, 0x35, 0, 0, 0, 0, 1, 5, 0, 0, 1 .rodata:00061A28 DCB 6, 0, 0, 0, 0, 0, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xE1 .rodata:00061A28 DCB 0x83, 0xF, 0x3E, 0, 3, 0, 0, 1, 6, 0, 0, 0xC1, 0x3C .rodata:00061A28 DCB 0xFA, 0x4C, 0xB3, 0xD1, 0xAE, 0xA9, 0xF1, 0xF0, 0xF0 .rodata:00061A28 DCB 0xF0, 0, 5, 0, 0, 1, 6, 0, 0, 0x40, 0xD8, 0x13, 0x5C .rodata:00061A28 DCB 0x29, 0xC2, 0xDF, 0x63, 0xD5, 0x41, 0x1D, 0xD4, 1 .rodata:00061A28 DCB 6, 0, 0, 1, 6, 0, 0, 0x19, 0xB5, 0x91, 0x6D, 0x30 .rodata:00061A28 DCB 0xEE, 0xF, 0x2B, 0x39, 0x8E, 0xE3, 0x38, 0, 3, 0, 0 .rodata:00061A28 DCB 0, 6, 0, 0, 0, 0x10, 0xBF, 0x81, 0xB6, 0xD1, 0x1B .rodata:00061A28 DCB 0xF9 .rodata:00061CE4 EXPORT _itoa_upper_digits .rodata:00061CE4 _itoa_upper_digits DCB "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" .rodata:00061CE4 ; DATA XREF: vfprintf+DC4o .rodata:00061CE4 ; vfprintf:off_1D960o ... .rodata:00061D08 EXPORT _itowa_lower_digits .rodata:00061D08 _itowa_lower_digits DCB 0x30, 0, 0, 0, 0x31, 0, 0, 0, 0x32, 0, 0, 0, 0x33 .rodata:00061D08 ; DATA XREF: __printf_fphex+8A0o .rodata:00061D08 ; __printf_fphex:off_23ACCo ... .rodata:00061D08 DCB 0, 0, 0, 0x34, 0, 0, 0, 0x35, 0, 0, 0, 0x36, 0, 0 .rodata:00061D08 DCB 0, 0x37, 0, 0, 0, 0x38, 0, 0, 0, 0x39, 0, 0, 0, 0x61 .rodata:00061D08 DCB 0, 0, 0, 0x62, 0, 0, 0, 0x63, 0, 0, 0, 0x64, 0, 0 .rodata:00061D08 DCB 0, 0x65, 0, 0, 0, 0x66, 0, 0, 0, 0x67, 0, 0, 0, 0x68 .rodata:00061D08 DCB 0, 0, 0, 0x69, 0, 0, 0, 0x6A, 0, 0, 0, 0x6B, 0, 0 .rodata:00061D08 DCB 0, 0x6C, 0, 0, 0, 0x6D, 0, 0, 0, 0x6E, 0, 0, 0, 0x6F .rodata:00061D08 DCB 0, 0, 0, 0x70, 0, 0, 0, 0x71, 0, 0, 0, 0x72, 0, 0 .rodata:00061D08 DCB 0, 0x73, 0, 0, 0, 0x74, 0, 0, 0, 0x75, 0, 0, 0, 0x76 .rodata:00061D08 DCB 0, 0, 0, 0x77, 0, 0, 0, 0x78, 0, 0, 0, 0x79, 0, 0 .rodata:00061D08 DCB 0, 0x7A, 0, 0, 0 .rodata:00061D98 EXPORT _itowa_upper_digits .rodata:00061D98 _itowa_upper_digits DCB 0x30, 0, 0, 0, 0x31, 0, 0, 0, 0x32, 0, 0, 0, 0x33 .rodata:00061D98 ; DATA XREF: vfwprintf+10C0o .rodata:00061D98 ; vfwprintf:off_2A4ACo ... .rodata:00061D98 DCB 0, 0, 0, 0x34, 0, 0, 0, 0x35, 0, 0, 0, 0x36, 0, 0 .rodata:00061D98 DCB 0, 0x37, 0, 0, 0, 0x38, 0, 0, 0, 0x39, 0, 0, 0, 0x41 .rodata:00061D98 DCB 0, 0, 0, 0x42, 0, 0, 0, 0x43, 0, 0, 0, 0x44, 0, 0 .rodata:00061D98 DCB 0, 0x45, 0, 0, 0, 0x46, 0, 0, 0, 0x47, 0, 0, 0, 0x48 .rodata:00061D98 DCB 0, 0, 0, 0x49, 0, 0, 0, 0x4A, 0, 0, 0, 0x4B, 0, 0 .rodata:00061D98 DCB 0, 0x4C, 0, 0, 0, 0x4D, 0, 0, 0, 0x4E, 0, 0, 0, 0x4F .rodata:00061D98 DCB 0, 0, 0, 0x50, 0, 0, 0, 0x51, 0, 0, 0, 0x52, 0, 0 .rodata:00061D98 DCB 0, 0x53, 0, 0, 0, 0x54, 0, 0, 0, 0x55, 0, 0, 0, 0x56 .rodata:00061D98 DCB 0, 0, 0, 0x57, 0, 0, 0, 0x58, 0, 0, 0, 0x59, 0, 0 .rodata:00061D98 DCB 0, 0x5A, 0, 0, 0 .rodata:00061E28 dword_61E28 DCD 0x544D47 ; DATA XREF: __tz_convert+13Co .rodata:00061E28 ; __tz_convert:off_4CB60o .rodata:00061E2C dword_61E2C DCD 0x5A54 ; DATA XREF: tzset_internal+3Co .rodata:00061E2C ; tzset_internal:off_4BDA8o .rodata:00061E30 byte_61E30 DCB 0x2F ; DATA XREF: tzset_internal+48o .rodata:00061E30 ; tzset_internal+50r ... .rodata:00061E31 aUsrLocalArm2_2 DCB "usr/local/arm/2.95.3/arm-linux/etc/localtime",0 .rodata:00061E5E ALIGN 0x10 .rodata:00061E60 aUniversal DCB "Universal",0 ; DATA XREF: tzset_internal+54o .rodata:00061E60 ; tzset_internal:off_4BDB0o .rodata:00061E6A ALIGN 4 .rodata:00061E6C aUtc DCB "UTC",0 ; DATA XREF: tzset_internal+194o .rodata:00061E6C ; tzset_internal:off_4BDC0o .rodata:00061E70 dword_61E70 DCD 0 ; DATA XREF: tzset_internal+1B4o .rodata:00061E70 ; tzset_internal:off_4BDC4o .rodata:00061E74 a09 DCB "%[^0-9,+-]",0 ; DATA XREF: tzset_internal+1F0o .rodata:00061E74 ; tzset_internal:off_4BDC8o ... .rodata:00061E7F ALIGN 0x10 .rodata:00061E80 aHuHuHu DCB "%hu:%hu:%hu",0 ; DATA XREF: tzset_internal+2A4o .rodata:00061E80 ; tzset_internal:off_4BDD0o ... .rodata:00061E8C aMHu_Hu_HuN DCB "M%hu.%hu.%hu%n",0 ; DATA XREF: tzset_internal+78Co .rodata:00061E8C ; tzset_internal:off_4C3C8o .rodata:00061E9B ALIGN 4 .rodata:00061E9C default_tzdir.120 DCB "/usr/local/arm/2.95.3/arm-linux/share/zoneinfo",0 .rodata:00061E9C ; DATA XREF: __tzfile_read+90o .rodata:00061E9C ; __tzfile_read+E4o ... .rodata:00061ECB ALIGN 4 .rodata:00061ECC byte_61ECC DCB 0x2F ; DATA XREF: __tzfile_read+48o .rodata:00061ECC ; __tzfile_read+50r ... .rodata:00061ECD aUsrLocalArm2_3 DCB "usr/local/arm/2.95.3/arm-linux/etc/localtime",0 .rodata:00061EFA ALIGN 4 .rodata:00061EFC a__ DCB "../",0 ; DATA XREF: __tzfile_read:loc_4CC94o .rodata:00061EFC ; __tzfile_read:off_4CFE0o .rodata:00061F00 aTzdir DCB "TZDIR",0 ; DATA XREF: __tzfile_read+C4o .rodata:00061F00 ; __tzfile_read:off_4CFE4o .rodata:00061F06 ALIGN 4 .rodata:00061F08 aR_1 DCB "r",0 ; DATA XREF: __tzfile_read:loc_4CD2Co .rodata:00061F08 ; __tzfile_read:off_4CFE8o .rodata:00061F0A ALIGN 4 .rodata:00061F0C aNum_types1 DCB "num_types == 1",0 ; DATA XREF: __tzfile_read+848o .rodata:00061F0C ; __tzfile_read:off_4D59Co ... .rodata:00061F1B ALIGN 4 .rodata:00061F1C aTzfile_c DCB "tzfile.c",0 ; DATA XREF: __tzfile_read+84Co .rodata:00061F1C ; __tzfile_read:off_4D5A0o ... .rodata:00061F25 ALIGN 4 .rodata:00061F28 a__tzfile_read DCB "__tzfile_read",0 ; DATA XREF: __tzfile_read+854o .rodata:00061F28 ; __tzfile_read:off_4D5A4o .rodata:00061F36 ALIGN 4 .rodata:00061F38 aPosixrules DCB "posixrules",0 ; DATA XREF: __tzfile_default+3Co .rodata:00061F38 ; __tzfile_default:off_4D6E4o .rodata:00061F43 ALIGN 4 .rodata:00061F44 a__tzfile_compu DCB "__tzfile_compute",0 ; DATA XREF: __tzfile_compute+FCo .rodata:00061F44 ; __tzfile_compute:off_4D9F0o .rodata:00061F55 ALIGN 4 .rodata:00061F58 aDevNull_0 DCB "/dev/null",0 ; DATA XREF: tryopen_o_directory+14o .rodata:00061F58 ; .text:off_4DC84o .rodata:00061F62 ALIGN 4 .rodata:00061F64 aLast_offset1 DCB "last_offset != -1",0 ; DATA XREF: __getdents+2B8o .rodata:00061F64 ; __getdents:off_4E230o .rodata:00061F76 ALIGN 4 .rodata:00061F78 a__SysdepsUnixS DCB "../sysdeps/unix/sysv/linux/getdents.c",0 .rodata:00061F78 ; DATA XREF: __getdents+2BCo .rodata:00061F78 ; __getdents:off_4E234o .rodata:00061F9E ALIGN 0x10 .rodata:00061FA0 a__getdents DCB "__getdents",0 ; DATA XREF: __getdents+2C0o .rodata:00061FA0 ; __getdents:off_4E238o .rodata:00061FAB ALIGN 4 .rodata:00061FAC DCB " ",9,0 .rodata:00061FAF ALIGN 0x10 .rodata:00061FB0 dword_61FB0 DCD 0 ; DATA XREF: getmntent_r:loc_4EA14o .rodata:00061FB0 ; getmntent_r:loc_4EAECo ... .rodata:00061FB4 aDD DCB " %d %d ",0 ; DATA XREF: getmntent_r+418o .rodata:00061FB4 ; getmntent_r:off_4ECF0o .rodata:00061FBC aSSSSDD DCB "%s %s %s %s %d %d",0xA,0 ; DATA XREF: addmntent+4Co .rodata:00061FBC ; addmntent:off_4F07Co .rodata:00061FCF ALIGN 0x10 .rodata:00061FD0 dword_61FD0 DCD 0x6E6F6D67 ; DATA XREF: _dl_start_profile+19Co .rodata:00061FD0 ; _dl_start_profile+1A0r ... .rodata:00061FD4 ALIGN 8 .rodata:00061FD8 aSeconds DCB "seconds",0 ; DATA XREF: _dl_start_profile+1C4o .rodata:00061FD8 ; _dl_start_profile:off_4F578o .rodata:00061FE0 a_profile DCB ".profile",0 ; DATA XREF: _dl_start_profile+224o .rodata:00061FE0 ; _dl_start_profile:off_4F580o .rodata:00061FE9 ALIGN 4 .rodata:00061FEC aSCannotOpenFil DCB "%s: cannot open file: %s",0xA,0 .rodata:00061FEC ; DATA XREF: _dl_start_profile+26Co .rodata:00061FEC ; _dl_start_profile:off_4F584o .rodata:00062006 ALIGN 4 .rodata:00062008 aSCannotStatFil DCB "%s: cannot stat file: %s",0xA,0 .rodata:00062008 ; DATA XREF: _dl_start_profile+2C4o .rodata:00062008 ; _dl_start_profile:off_4F588o .rodata:00062022 ALIGN 4 .rodata:00062024 aSCannotCreateF DCB "%s: cannot create file: %s",0xA,0 .rodata:00062024 ; DATA XREF: _dl_start_profile+368o .rodata:00062024 ; _dl_start_profile:off_4F58Co .rodata:00062040 aSFileIsNoCorre DCB "%s: file is no correct profile data file for `%s'",0xA,0 .rodata:00062040 ; DATA XREF: _dl_start_profile:loc_4F540o .rodata:00062040 ; _dl_start_profile:off_4F590o .rodata:00062073 ALIGN 4 .rodata:00062074 aSCannotMapFile DCB "%s: cannot map file: %s",0xA,0 .rodata:00062074 ; DATA XREF: _dl_start_profile+498o .rodata:00062074 ; _dl_start_profile:off_4F8A8o .rodata:0006208D ALIGN 0x10 .rodata:00062090 aOutOfMemoryWhi DCB "Out of memory while initializing profiler",0xA,0 .rodata:00062090 ; DATA XREF: _dl_start_profile+5C0o .rodata:00062090 ; _dl_start_profile:off_4F8C0o .rodata:000620BB ALIGN 4 .rodata:000620BC table.45 DCD 0x2020100, 0x3030303, 0x4040404, 0x4040404, 0x5050505 .rodata:000620BC ; DATA XREF: ffsl:loc_501B4o .rodata:000620BC ; .text:off_501C8o .rodata:000620BC DCD 0x5050505, 0x5050505, 0x5050505, 0x6060606, 0x6060606 .rodata:000620BC DCD 0x6060606, 0x6060606, 0x6060606, 0x6060606, 0x6060606 .rodata:000620BC DCD 0x6060606, 0x7070707, 0x7070707, 0x7070707, 0x7070707 .rodata:000620BC DCD 0x7070707, 0x7070707, 0x7070707, 0x7070707, 0x7070707 .rodata:000620BC DCD 0x7070707, 0x7070707, 0x7070707, 0x7070707, 0x7070707 .rodata:000620BC DCD 0x7070707, 0x7070707, 0x8080808, 0x8080808, 0x8080808 .rodata:000620BC DCD 0x8080808, 0x8080808, 0x8080808, 0x8080808, 0x8080808 .rodata:000620BC DCD 0x8080808, 0x8080808, 0x8080808, 0x8080808, 0x8080808 .rodata:000620BC DCD 0x8080808, 0x8080808, 0x8080808, 0x8080808, 0x8080808 .rodata:000620BC DCD 0x8080808, 0x8080808, 0x8080808, 0x8080808, 0x8080808 .rodata:000620BC DCD 0x8080808, 0x8080808, 0x8080808, 0x8080808, 0x8080808 .rodata:000620BC DCD 0x8080808, 0x8080808, 0x8080808, 0x8080808 .rodata:000621BC EXPORT __mon_yday .rodata:000621BC __mon_yday DCB 0, 0, 0x1F, 0, 0x3B, 0, 0x5A, 0, 0x78, 0, 0x97, 0 .rodata:000621BC ; DATA XREF: compute_change+1F0o .rodata:000621BC ; compute_change:off_4C838o ... .rodata:000621BC DCB 0xB5, 0, 0xD4, 0, 0xF3, 0, 0x11, 1, 0x30, 1, 0x4E .rodata:000621BC DCB 1, 0x6D, 1, 0, 0, 0x1F, 0, 0x3C, 0, 0x5B, 0, 0x79 .rodata:000621BC DCB 0, 0x98, 0, 0xB6, 0, 0xD5, 0, 0xF4, 0, 0x12, 1, 0x31 .rodata:000621BC DCB 1, 0x4F, 1, 0x6E, 1 .rodata:000621F0 aCannotExtendGl DCB "cannot extend global scope",0 .rodata:000621F0 ; DATA XREF: add_to_global+84o .rodata:000621F0 ; .text:off_50FF8o .rodata:0006220B ALIGN 4 .rodata:0006220C aDlopen DCB "dlopen",0 ; DATA XREF: dl_open_worker+54o .rodata:0006220C ; dl_open_worker+16Co ... .rodata:00062213 ALIGN 4 .rodata:00062214 aDstNotAllowedI DCB "DST not allowed in SUID/SGID programs",0 .rodata:00062214 ; DATA XREF: dl_open_worker+58o .rodata:00062214 ; dl_open_worker:off_512B0o .rodata:0006223A ALIGN 4 .rodata:0006223C aCall_mapL_name DCB "(call_map)->l_name[0] == '\0'",0 .rodata:0006223C ; DATA XREF: dl_open_worker+D0o .rodata:0006223C ; dl_open_worker:off_512B8o .rodata:0006225A ALIGN 4 .rodata:0006225C aDlOpen_c DCB "dl-open.c",0 ; DATA XREF: dl_open_worker+D4o .rodata:0006225C ; dl_open_worker+1B0o ... .rodata:00062266 ALIGN 4 .rodata:00062268 aDl_open_worker DCB "dl_open_worker",0 ; DATA XREF: dl_open_worker+D8o .rodata:00062268 ; dl_open_worker+1B4o ... .rodata:00062277 ALIGN 4 .rodata:00062278 aEmptyDynamicSt DCB "empty dynamic string token substitution",0 .rodata:00062278 ; DATA XREF: dl_open_worker+170o .rodata:00062278 ; dl_open_worker:off_512C8o .rodata:000622A0 aMode0x00004 DCB "mode & 0x00004",0 ; DATA XREF: dl_open_worker+1ACo .rodata:000622A0 ; dl_open_worker:off_512CCo .rodata:000622AF ALIGN 0x10 .rodata:000622B0 aOpeningFileSOp DCB "opening file=%s; opencount == %u",0xA .rodata:000622B0 ; DATA XREF: dl_open_worker+1DCo .rodata:000622B0 ; dl_open_worker:off_512D4o ... .rodata:000622B0 DCB 0xA,0 .rodata:000622D3 ALIGN 4 .rodata:000622D4 aInvalidModeFor DCB "invalid mode for dlopen()",0 .rodata:000622D4 ; DATA XREF: .text:00051404o .rodata:000622D4 ; .text:off_51560o .rodata:000622EE ALIGN 0x10 .rodata:000622F0 aSharedObjectNo DCB "shared object not open",0 ; DATA XREF: _dl_close+48o .rodata:000622F0 ; _dl_close:off_518F0o .rodata:00062307 ALIGN 4 .rodata:00062308 aClosingFileSOp DCB 0xA ; DATA XREF: _dl_close+A8o .rodata:00062308 ; _dl_close:off_51900o .rodata:00062308 DCB "closing file=%s; opencount == %u",0xA,0 .rodata:0006232B ALIGN 4 .rodata:0006232C aDep_listJL_idx DCB "dep_list[j]->l_idx < map->l_searchlist.r_nlist",0 .rodata:0006232C ; DATA XREF: _dl_close+1D8o .rodata:0006232C ; _dl_close:off_51908o .rodata:0006235B ALIGN 4 .rodata:0006235C aDlClose_c DCB "dl-close.c",0 ; DATA XREF: _dl_close+1DCo .rodata:0006235C ; _dl_close+22Co ... .rodata:00062367 ALIGN 4 .rodata:00062368 a_dl_close DCB "_dl_close",0 ; DATA XREF: _dl_close+1E0o .rodata:00062368 ; _dl_close+230o ... .rodata:00062372 ALIGN 4 .rodata:00062374 aNew_opencount0 DCB "new_opencount[0] == 0",0 ; DATA XREF: _dl_close+228o .rodata:00062374 ; _dl_close:off_51914o .rodata:0006238A ALIGN 4 .rodata:0006238C aCallingFiniS DCB 0xA ; DATA XREF: _dl_close+2C4o .rodata:0006238C ; _dl_close:off_51918o .rodata:0006238C DCB "calling fini: %s",0xA .rodata:0006238C DCB 0xA,0 .rodata:000623A0 aImapL_typeLt_l DCB "imap->l_type == lt_loaded || imap->l_opencount > 0",0 .rodata:000623A0 ; DATA XREF: _dl_close+35Co .rodata:000623A0 ; _dl_close:off_5191Co .rodata:000623D3 ALIGN 4 .rodata:000623D4 aBadDynamicTa_1 DCB "bad dynamic tag",0 .rodata:000623E4 aBadDynamicTa_2 DCB "! ",0x22,"bad dynamic tag",0x22,0 .rodata:000623F8 aDynamicLink__0 DCB "dynamic-link.h",0 .rodata:00062407 ALIGN 4 .rodata:00062408 aElf_get_dyna_0 DCB "elf_get_dynamic_info",0 .rodata:0006241D ALIGN 0x10 .rodata:00062420 aInfo19D_un_d_0 DCB "info[19]->d_un.d_val == sizeof (Elf32_Rel)",0 .rodata:0006244B ALIGN 4 .rodata:0006244C aInfo20D_un_d_0 DCB "info[20]->d_un.d_val == 17",0 .rodata:00062467 ALIGN 4 .rodata:00062468 aRelocationProc DCB 0xA ; DATA XREF: .text:00051F5Co .rodata:00062468 ; .text:off_522FCo .rodata:00062468 DCB "relocation processing: %s%s",0xA,0 .rodata:00062486 ALIGN 4 .rodata:00062488 aLazy DCB " (lazy)",0 ; DATA XREF: .text:00051F54o .rodata:00062488 ; .text:off_522F8o .rodata:00062490 dword_62490 DCD 0 ; DATA XREF: .text:00051F4Co .rodata:00062490 ; .text:off_522F4o .rodata:00062494 aCannotMakeSegm DCB "cannot make segment writable for relocation",0 .rodata:00062494 ; DATA XREF: .text:00052014o .rodata:00062494 ; .text:off_52304o .rodata:000624C0 aCouldNotMapPag DCB "could not map page for fixup",0 .rodata:000624C0 ; DATA XREF: fix_bad_pc24.111+78o .rodata:000624C0 ; fix_bad_pc24.111:off_51E78o .rodata:000624DD ALIGN 0x10 .rodata:000624E0 aCouldNotMapP_0 DCB "! ",0x22,"could not map page for fixup",0x22,0 .rodata:000624E0 ; DATA XREF: fix_bad_pc24.111+84o .rodata:000624E0 ; fix_bad_pc24.111:off_51E7Co .rodata:00062501 ALIGN 4 .rodata:00062504 a__SysdepsArmDl DCB "../sysdeps/arm/dl-machine.h",0 .rodata:00062504 ; DATA XREF: fix_bad_pc24.111+88o .rodata:00062504 ; fix_bad_pc24.111:off_51E80o .rodata:00062520 aFix_bad_pc24 DCB "fix_bad_pc24",0 ; DATA XREF: fix_bad_pc24.111+90o .rodata:00062520 ; fix_bad_pc24.111:off_51E84o .rodata:0006252D ALIGN 0x10 .rodata:00062530 aSSymbolSHasDif DCB "%s: Symbol `%s' has different size in shared object, consider re" .rodata:00062530 ; DATA XREF: .text:000523D4o .rodata:00062530 ; .text:00052654o ... .rodata:00062530 DCB "-linking",0xA,0 .rodata:0006257A ALIGN 4 .rodata:0006257C aProgramNameU_0 DCB "<program name unknown>",0 .rodata:0006257C ; DATA XREF: .text:loc_523D0o .rodata:0006257C ; .text:loc_52650o ... .rodata:00062593 ALIGN 4 .rodata:00062594 aR_arm_pc24Relo DCB "R_ARM_PC24 relocation out of range",0 .rodata:00062594 ; DATA XREF: .text:000524ACo .rodata:00062594 ; .text:0005272Co ... .rodata:000625B7 ALIGN 4 .rodata:000625B8 aSProfilerFound DCB "%s: profiler found no PLTREL in object %s",0xA,0 .rodata:000625B8 ; DATA XREF: .text:000527C0o .rodata:000625B8 ; .text:off_52900o .rodata:000625E3 ALIGN 4 .rodata:000625E4 aSProfilerOutOf DCB "%s: profiler out of memory shadowing PLTREL of %s",0xA,0 .rodata:000625E4 ; DATA XREF: .text:00052814o .rodata:000625E4 ; .text:off_52904o .rodata:00062617 ALIGN 4 .rodata:00062618 aCanTRestoreSeg DCB "can't restore segment prot after reloc",0 .rodata:00062618 ; DATA XREF: .text:000528E8o .rodata:00062618 ; .text:off_52910o .rodata:0006263F ALIGN 0x10 .rodata:00062640 aDstNotAllowe_0 DCB "DST not allowed in SUID/SGID programs",0 .rodata:00062640 ; DATA XREF: .text:00052C84o .rodata:00062640 ; .text:00052E6Co ... .rodata:00062666 ALIGN 4 .rodata:00062668 aLL_name00_0 DCB "(l)->l_name[0] == '\0'",0 ; DATA XREF: .text:00052CB8o .rodata:00062668 ; .text:00052EA0o ... .rodata:0006267F ALIGN 0x10 .rodata:00062680 aDlDeps_c DCB "dl-deps.c",0 ; DATA XREF: .text:00052CBCo .rodata:00062680 ; .text:00052EA4o ... .rodata:0006268A ALIGN 4 .rodata:0006268C a_dl_map_obje_0 DCB "_dl_map_object_deps",0 ; DATA XREF: .text:00052CC0o .rodata:0006268C ; .text:00052EACo ... .rodata:000626A0 aEmptyDynamicsS DCB "empty dynamics string token substitution",0 .rodata:000626A0 ; DATA XREF: .text:00052F44o .rodata:000626A0 ; .text:off_53038o .rodata:000626C9 ALIGN 4 .rodata:000626CC aCannotLoadAuxi DCB "cannot load auxiliary `%s' because ofempty dynamic string token " .rodata:000626CC ; DATA XREF: .text:00052D58o .rodata:000626CC ; .text:00052F60o ... .rodata:000626CC DCB "substitution",0xA,0 .rodata:0006271A ALIGN 4 .rodata:0006271C aLoadAuxiliaryO DCB "load auxiliary object=%s requested by file=%s",0xA,0 .rodata:0006271C ; DATA XREF: .text:00052F9Co .rodata:0006271C ; .text:off_5303Co .rodata:0006274B ALIGN 4 .rodata:0006274C aErrstringVoid0 DCB "errstring != ((void *)0)",0 .rodata:0006274C ; DATA XREF: .text:00052FE0o .rodata:0006274C ; .text:off_53044o .rodata:00062765 ALIGN 4 .rodata:00062768 aLoadFilteredOb DCB "load filtered object=%s requested by file=%s",0xA,0 .rodata:00062768 ; DATA XREF: .text:00053064o .rodata:00062768 ; .text:off_53400o .rodata:00062796 ALIGN 4 .rodata:00062798 aCannotAlloca_1 DCB "cannot allocate dependency list",0 .rodata:00062798 ; DATA XREF: .text:000532FCo .rodata:00062798 ; .text:off_5340Co .rodata:000627B8 aMapL_searchlis DCB "map->l_searchlist.r_list == ((void *)0)",0 .rodata:000627B8 ; DATA XREF: .text:0005338Co .rodata:000627B8 ; .text:off_53410o .rodata:000627E0 aCannotAlloca_2 DCB "cannot allocate symbol search list",0 .rodata:000627E0 ; DATA XREF: .text:000533F0o .rodata:000627E0 ; .text:off_5341Co .rodata:00062803 ALIGN 4 .rodata:00062804 dword_62804 DCD 0 ; DATA XREF: .text:00053660o .rodata:00062804 ; .text:off_53684o .rodata:00062808 aCannotLoadShar DCB "cannot load shared object file",0 .rodata:00062808 ; DATA XREF: .text:00053668o .rodata:00062808 ; .text:off_53688o .rodata:00062827 ALIGN 4 .rodata:00062828 aBadDynamicTa_3 DCB "bad dynamic tag",0 .rodata:00062838 aBadDynamicTa_4 DCB "! ",0x22,"bad dynamic tag",0x22,0 .rodata:0006284C aDynamicLink__1 DCB "dynamic-link.h",0 .rodata:0006285B ALIGN 4 .rodata:0006285C aElf_get_dyna_1 DCB "elf_get_dynamic_info",0 .rodata:00062871 ALIGN 4 .rodata:00062874 aInfo19D_un_d_1 DCB "info[19]->d_un.d_val == sizeof (Elf32_Rel)",0 .rodata:0006289F ALIGN 0x10 .rodata:000628A0 aInfo20D_un_d_1 DCB "info[20]->d_un.d_val == 17",0 .rodata:000628BB ALIGN 4 .rodata:000628BC aRelocR_info0xf DCB "((reloc->r_info) & 0xff) == 22",0 .rodata:000628BC ; DATA XREF: fixup+64o .rodata:000628BC ; fixup:off_537DCo ... .rodata:000628DB ALIGN 4 .rodata:000628DC aDlRuntime_c DCB "dl-runtime.c",0 ; DATA XREF: fixup+68o .rodata:000628DC ; fixup:off_537E0o ... .rodata:000628E9 ALIGN 4 .rodata:000628EC aFixup DCB "fixup",0 ; DATA XREF: fixup+6Co .rodata:000628EC ; fixup:off_537E4o .rodata:000628F2 ALIGN 4 .rodata:000628F4 aProfile_fixup DCB "profile_fixup",0 ; DATA XREF: profile_fixup+84o .rodata:000628F4 ; profile_fixup:off_53940o .rodata:00062902 ALIGN 4 .rodata:00062904 aCallingInitS DCB 0xA ; DATA XREF: call_init+84o .rodata:00062904 ; .text:off_53AD8o .rodata:00062904 DCB "calling init: %s",0xA .rodata:00062904 DCB 0xA,0 .rodata:00062918 aCallingPreinit DCB 0xA ; DATA XREF: _dl_init+7Co .rodata:00062918 ; .text:off_53C08o .rodata:00062918 DCB "calling preinit: %s",0xA .rodata:00062918 DCB 0xA,0 .rodata:0006292F ALIGN 0x10 .rodata:00062930 aCheckingForVer DCB "checking for version `%s' in file %s required by file %s",0xA,0 .rodata:00062930 ; DATA XREF: match_symbol+54o .rodata:00062930 ; match_symbol:off_53FA0o .rodata:0006296A ALIGN 4 .rodata:0006296C aNoVersionInfor DCB "no version information available (required by ",0 .rodata:0006296C ; DATA XREF: match_symbol+98o .rodata:0006296C ; match_symbol:off_53FA4o .rodata:0006299B ALIGN 4 .rodata:0006299C asc_6299C DCB ")",0 ; DATA XREF: match_symbol+A8o .rodata:0006299C ; match_symbol+2A8o ... .rodata:0006299E ALIGN 0x10 .rodata:000629A0 aDef_offset0 DCB "def_offset != 0",0 ; DATA XREF: match_symbol+114o .rodata:000629A0 ; match_symbol:off_53FACo .rodata:000629B0 aDlVersion_c DCB "dl-version.c",0 ; DATA XREF: match_symbol+118o .rodata:000629B0 ; match_symbol:off_53FB0o ... .rodata:000629BD ALIGN 0x10 .rodata:000629C0 aMatch_symbol DCB "match_symbol",0 ; DATA XREF: match_symbol+11Co .rodata:000629C0 ; match_symbol:off_53FB4o .rodata:000629CD ALIGN 0x10 .rodata:000629D0 aUnsupportedVer DCB "unsupported version ",0 ; DATA XREF: match_symbol+164o .rodata:000629D0 ; match_symbol:off_53FB8o ... .rodata:000629E5 ALIGN 4 .rodata:000629E8 aOfVerdefRecord DCB " of Verdef record",0 ; DATA XREF: match_symbol+184o .rodata:000629E8 ; match_symbol:off_53FC0o .rodata:000629FA ALIGN 4 .rodata:000629FC aWeakVersion DCB "weak version `",0 ; DATA XREF: match_symbol+290o .rodata:000629FC ; match_symbol:off_53FC4o .rodata:00062A0B ALIGN 4 .rodata:00062A0C aNotFoundRequir DCB "' not found (required by ",0 .rodata:00062A0C ; DATA XREF: match_symbol+298o .rodata:00062A0C ; match_symbol:off_53FC8o ... .rodata:00062A26 ALIGN 4 .rodata:00062A28 aVersion_0 DCB "version `",0 ; DATA XREF: match_symbol+370o .rodata:00062A28 ; match_symbol:off_54064o .rodata:00062A32 ALIGN 4 .rodata:00062A34 aOfVerneedRecor DCB " of Verneed record",0xA,0 .rodata:00062A34 ; DATA XREF: _dl_check_map_versions+E8o .rodata:00062A34 ; _dl_check_map_versions:off_5445Co .rodata:00062A48 aNeededVoid0 DCB "needed != ((void *)0)",0 .rodata:00062A48 ; DATA XREF: _dl_check_map_versions+260o .rodata:00062A48 ; _dl_check_map_versions:off_54464o .rodata:00062A5E ALIGN 0x10 .rodata:00062A60 a_dl_check_map_ DCB "_dl_check_map_versions",0 .rodata:00062A60 ; DATA XREF: _dl_check_map_versions+268o .rodata:00062A60 ; _dl_check_map_versions:off_5446Co .rodata:00062A77 ALIGN 4 .rodata:00062A78 aCannotAlloca_3 DCB "cannot allocate version reference table",0 .rodata:00062A78 ; DATA XREF: _dl_check_map_versions+3D0o .rodata:00062A78 ; _dl_check_map_versions:off_54470o .rodata:00062AA0 __clz_tab DCB 0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5 .rodata:00062AA0 ; DATA XREF: __udivdi3+54o .rodata:00062AA0 ; __udivdi3+188o ... .rodata:00062AA0 DCB 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6 .rodata:00062AA0 DCB 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 .rodata:00062AA0 DCB 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7 .rodata:00062AA0 DCB 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7 .rodata:00062AA0 DCB 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7 .rodata:00062AA0 DCB 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7 .rodata:00062AA0 DCB 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8 .rodata:00062AA0 DCB 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 .rodata:00062AA0 DCB 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 .rodata:00062AA0 DCB 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 .rodata:00062AA0 DCB 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 .rodata:00062AA0 DCB 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 .rodata:00062AA0 DCB 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 .rodata:00062AA0 DCB 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 .rodata:00062AA0 DCB 8 .rodata:00062BA0 __clz_tab_0 DCB 0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5 .rodata:00062BA0 ; DATA XREF: __umoddi3+5Co .rodata:00062BA0 ; __umoddi3+DCo ... .rodata:00062BA0 DCB 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6 .rodata:00062BA0 DCB 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 .rodata:00062BA0 DCB 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7 .rodata:00062BA0 DCB 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7 .rodata:00062BA0 DCB 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7 .rodata:00062BA0 DCB 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7 .rodata:00062BA0 DCB 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8 .rodata:00062BA0 DCB 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 .rodata:00062BA0 DCB 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 .rodata:00062BA0 DCB 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 .rodata:00062BA0 DCB 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 .rodata:00062BA0 DCB 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 .rodata:00062BA0 DCB 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 .rodata:00062BA0 DCB 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 .rodata:00062BA0 DCB 8 .rodata:00062BA0 ; .rodata ends .rodata:00062BA0 __libc_atexit:00062CA0 ; =========================================================================== __libc_atexit:00062CA0 __libc_atexit:00062CA0 ; Segment type: Pure data __libc_atexit:00062CA0 AREA __libc_atexit, DATA, READONLY __libc_atexit:00062CA0 ; ORG 0x62CA0 __libc_atexit:00062CA0 __elf_set___libc_atexit_element__cleanup__ DCD 0xA2D0 __libc_atexit:00062CA0 ; DATA XREF: exit+Co __libc_atexit:00062CA0 ; .text:off_8EA0o __libc_atexit:00062CA0 ; __libc_atexit ends __libc_atexit:00062CA0 __libc_subinit:00062CA4 ; =========================================================================== __libc_subinit:00062CA4 __libc_subinit:00062CA4 ; Segment type: Pure data __libc_subinit:00062CA4 AREA __libc_subinit, DATA, READONLY __libc_subinit:00062CA4 ; ORG 0x62CA4 __libc_subinit:00062CA4 __elf_set___libc_subinit_element_non_dynamic_init__ DCD 0x1706C __libc_subinit:00062CA4 ; DATA XREF: exit+14o __libc_subinit:00062CA4 ; .text:off_8EA4o ... __libc_subinit:00062CA8 __elf_set___libc_subinit_element_set_progname__ DCD 0x17630 __libc_subinit:00062CAC __elf_set___libc_subinit_element___init_misc__ DCD 0x35CAC __libc_subinit:00062CAC ; __libc_subinit ends __libc_subinit:00062CAC __libc_subfreeres:00062CB0 ; =========================================================================== __libc_subfreeres:00062CB0 __libc_subfreeres:00062CB0 ; Segment type: Pure data __libc_subfreeres:00062CB0 AREA __libc_subfreeres, DATA, READONLY __libc_subfreeres:00062CB0 ; ORG 0x62CB0 __libc_subfreeres:00062CB0 __elf_set___libc_subfreeres_element_free_mem__ DCD 0x18634 __libc_subfreeres:00062CB0 ; DATA XREF: __libc_init+1Co __libc_subfreeres:00062CB0 ; .text:off_17548o __libc_subfreeres:00062CB4 __elf_set___libc_subfreeres_element_free_mem___0 DCD 0x18968 __libc_subfreeres:00062CB8 __elf_set___libc_subfreeres_element_free_mem___1 DCD 0x197CC __libc_subfreeres:00062CBC __elf_set___libc_subfreeres_element_free_mem___2 DCD 0x1B940 __libc_subfreeres:00062CC0 __elf_set___libc_subfreeres_element_free_mem___3 DCD 0x35C68 __libc_subfreeres:00062CC4 __elf_set___libc_subfreeres_element_free_mem___4 DCD 0x3764C __libc_subfreeres:00062CC8 __elf_set___libc_subfreeres_element_free_mem___5 DCD 0x386BC __libc_subfreeres:00062CCC __elf_set___libc_subfreeres_element_free_mem___6 DCD 0x3EB54 __libc_subfreeres:00062CD0 __elf_set___libc_subfreeres_element_free_mem___7 DCD 0x3F3F0 __libc_subfreeres:00062CD4 __elf_set___libc_subfreeres_element_free_mem___8 DCD 0x3FB70 __libc_subfreeres:00062CD8 __elf_set___libc_subfreeres_element_free_mem___9 DCD 0x406E4 __libc_subfreeres:00062CDC __elf_set___libc_subfreeres_element_free_mem___10 DCD 0x4CB94 __libc_subfreeres:00062CE0 __elf_set___libc_subfreeres_element_freeres__ DCD 0x4DBF8 __libc_subfreeres:00062CE4 __elf_set___libc_subfreeres_element_free_mem___11 DCD 0x4FE60 __libc_subfreeres:00062CE8 __elf_set___libc_subfreeres_element_free_mem___12 DCD 0x51BD8 __libc_subfreeres:00062CE8 ; __libc_subfreeres ends __libc_subfreeres:00062CE8 .data:0006ACEC ; =========================================================================== .data:0006ACEC .data:0006ACEC ; Segment type: Pure data .data:0006ACEC AREA .data, DATA .data:0006ACEC ; ORG 0x6ACEC .data:0006ACEC EXPORT __data_start .data:0006ACEC __data_start DCD 0 ; Alternative name is 'data_start' .data:0006ACF0 p.3 DCD 0x6BDDC ; DATA XREF: __do_global_dtors_aux+20o .data:0006ACF0 ; __do_global_dtors_aux+24r ... .data:0006ACF4 completed.4 DCD 0 ; DATA XREF: __do_global_dtors_aux+8o .data:0006ACF4 ; __do_global_dtors_aux+10r ... .data:0006ACF8 force_to_data_0 DCD 0xFFFFFFFF ; DATA XREF: open_usbd_interface+18o .data:0006ACF8 ; open_usbd_interface+20w ... .data:0006ACFC arm_fpga_p DCD 0 ; DATA XREF: open_fpga_interface+5Co .data:0006ACFC ; open_fpga_interface+64w ... .data:0006AD00 arm_fpga_fd DCD 0 ; DATA XREF: open_fpga_interface+1Co .data:0006AD00 ; open_fpga_interface+24w ... .data:0006AD04 lock DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 .data:0006AD04 ; DATA XREF: abort+20o .data:0006AD04 ; abort+B8o ... .data:0006AD04 DCB 0, 0, 0, 0, 0, 0, 0 .data:0006AD1C EXPORT __exit_funcs .data:0006AD1C __exit_funcs DCD 0x79944 ; DATA XREF: exit+8o .data:0006AD1C ; exit+1Cr ... .data:0006AD20 list_all_lock DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 .data:0006AD20 ; DATA XREF: _IO_un_link+28o .data:0006AD20 ; _IO_un_link+84o ... .data:0006AD20 DCB 0, 0, 0, 0, 0, 0, 0 .data:0006AD38 _IO_stdfile_0_lock DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 .data:0006AD38 DCB 0, 0, 0, 0, 0, 0, 0 .data:0006AD50 _IO_wide_data_0 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006AD50 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006AD50 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006AD50 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006AD50 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006AD50 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006AD50 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006AD50 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006AD50 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006AD50 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006AD50 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0xB7 .data:0006AD50 DCB 6, 0 .data:0006AE0C EXPORT _IO_2_1_stdin_ .data:0006AE0C _IO_2_1_stdin_ DCB 0x88, 0x20, 0xAD, 0xFB, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006AE0C DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006AE0C DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006AE0C DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006AE0C DCB 0xFF, 0xFF, 0xFF, 0xFF, 0, 0, 0, 0, 0x38, 0xAD, 6 .data:0006AE0C DCB 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF .data:0006AE0C DCB 0, 0, 0, 0, 0x50, 0xAD, 6, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006AE0C DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006AE0C DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006AE0C DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xE4 .data:0006AE0C DCB 0xB7, 6, 0 .data:0006AEA4 _IO_stdfile_1_lock DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 .data:0006AEA4 DCB 0, 0, 0, 0, 0, 0, 0 .data:0006AEBC _IO_wide_data_1 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006AEBC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006AEBC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006AEBC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006AEBC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006AEBC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006AEBC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006AEBC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006AEBC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006AEBC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006AEBC DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0xB7 .data:0006AEBC DCB 6, 0 .data:0006AF78 EXPORT _IO_2_1_stdout_ .data:0006AF78 _IO_2_1_stdout_ DCB 0x84, 0x20, 0xAD, 0xFB, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006AF78 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006AF78 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006AF78 DCB 0, 0, 0, 0, 0, 0xC, 0xAE, 6, 0, 1, 0, 0, 0, 0, 0, 0 .data:0006AF78 DCB 0, 0xFF, 0xFF, 0xFF, 0xFF, 0, 0, 0, 0, 0xA4, 0xAE .data:0006AF78 DCB 6, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF .data:0006AF78 DCB 0, 0, 0, 0, 0xBC, 0xAE, 6, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006AF78 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006AF78 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006AF78 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xE4 .data:0006AF78 DCB 0xB7, 6, 0 .data:0006B010 _IO_stdfile_2_lock DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 .data:0006B010 DCB 0, 0, 0, 0, 0, 0, 0 .data:0006B028 _IO_wide_data_2 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B028 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B028 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B028 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B028 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B028 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B028 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B028 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B028 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B028 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B028 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0xB7 .data:0006B028 DCB 6, 0 .data:0006B0E4 EXPORT _IO_2_1_stderr_ .data:0006B0E4 _IO_2_1_stderr_ DCB 0x86, 0x20, 0xAD, 0xFB, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B0E4 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B0E4 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B0E4 DCB 0, 0, 0, 0, 0, 0x78, 0xAF, 6, 0, 2, 0, 0, 0, 0, 0 .data:0006B0E4 DCB 0, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0, 0, 0, 0, 0x10, 0xB0 .data:0006B0E4 DCB 6, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF .data:0006B0E4 DCB 0, 0, 0, 0, 0x28, 0xB0, 6, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B0E4 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B0E4 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B0E4 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xE4 .data:0006B0E4 DCB 0xB7, 6, 0 .data:0006B17C EXPORT _IO_list_all .data:0006B17C _IO_list_all DCD 0x6B0E4 ; DATA XREF: _IO_un_link:loc_93CCo .data:0006B17C ; _IO_un_link+38r ... .data:0006B180 EXPORT stdin .data:0006B180 stdin DCD 0x6AE0C ; DATA XREF: fclose:loc_2E368o .data:0006B180 ; fclose+14Cr ... .data:0006B180 ; Alternative name is '_IO_stdin' .data:0006B184 EXPORT stdout .data:0006B184 stdout DCD 0x6AF78 ; DATA XREF: printf+Co .data:0006B184 ; printf+18r ... .data:0006B184 ; Alternative name is '_IO_stdout' .data:0006B188 EXPORT stderr .data:0006B188 stderr DCD 0x6B0E4 ; DATA XREF: perror+54o .data:0006B188 ; perror+5Cr ... .data:0006B188 ; Alternative name is '_IO_stderr' .data:0006B18C EXPORT _IO_str_jumps .data:0006B18C _IO_str_jumps DCB 0, 0, 0, 0, 0, 0, 0, 0, 0x68, 0xAC, 0, 0, 0x78, 0xA8 .data:0006B18C ; DATA XREF: vsscanf+44o .data:0006B18C ; vsscanf:off_9270o .data:0006B18C DCB 0, 0, 0xE8, 0xA9, 0, 0, 0xCC, 0x9A, 0, 0, 0x2C, 0xAC .data:0006B18C DCB 0, 0, 0xC, 0x9B, 0, 0, 0, 0x9C, 0, 0, 0x6C, 0xAA, 0 .data:0006B18C DCB 0, 0x74, 0x9D, 0, 0, 0xB0, 0x9C, 0, 0, 0x54, 0x9F .data:0006B18C DCB 0, 0, 0xA8, 0x9D, 0, 0, 4, 0xA6, 0, 0, 0x18, 0xA6 .data:0006B18C DCB 0, 0, 0xD8, 0xA5, 0, 0, 0x54, 0x9F, 0, 0, 0xF0, 0xA5 .data:0006B18C DCB 0, 0, 0x2C, 0xA6, 0, 0, 0x40, 0xA6, 0, 0 .data:0006B1E0 EXPORT __morecore .data:0006B1E0 __morecore DCD 0xEED8 ; DATA XREF: chunk_alloc:loc_C040o .data:0006B1E0 ; chunk_alloc:off_C2C4o ... .data:0006B1E4 main_arena DCB 0, 0, 0, 0, 0, 0, 0, 0, 0xE4, 0xB1, 6, 0, 0xE4, 0xB1 .data:0006B1E4 ; DATA XREF: ptmalloc_lock_all:loc_ACE0o .data:0006B1E4 ; .text:off_ADB0o ... .data:0006B1E4 DCB 6, 0, 0xEC, 0xB1, 6, 0, 0xEC, 0xB1, 6, 0, 0xF4, 0xB1 .data:0006B1E4 DCB 6, 0, 0xF4, 0xB1, 6, 0, 0xFC, 0xB1, 6, 0, 0xFC, 0xB1 .data:0006B1E4 DCB 6, 0, 4, 0xB2, 6, 0, 4, 0xB2, 6, 0, 0xC, 0xB2, 6, 0 .data:0006B1E4 DCB 0xC, 0xB2, 6, 0, 0x14, 0xB2, 6, 0, 0x14, 0xB2, 6, 0 .data:0006B1E4 DCB 0x1C, 0xB2, 6, 0, 0x1C, 0xB2, 6, 0, 0x24, 0xB2, 6 .data:0006B1E4 DCB 0, 0x24, 0xB2, 6, 0, 0x2C, 0xB2, 6, 0, 0x2C, 0xB2 .data:0006B1E4 DCB 6, 0, 0x34, 0xB2, 6, 0, 0x34, 0xB2, 6, 0, 0x3C, 0xB2 .data:0006B1E4 DCB 6, 0, 0x3C, 0xB2, 6, 0, 0x44, 0xB2, 6, 0, 0x44, 0xB2 .data:0006B1E4 DCB 6, 0, 0x4C, 0xB2, 6, 0, 0x4C, 0xB2, 6, 0, 0x54, 0xB2 .data:0006B1E4 DCB 6, 0, 0x54, 0xB2, 6, 0, 0x5C, 0xB2, 6, 0, 0x5C, 0xB2 .data:0006B1E4 DCB 6, 0, 0x64, 0xB2, 6, 0, 0x64, 0xB2, 6, 0, 0x6C, 0xB2 .data:0006B1E4 DCB 6, 0, 0x6C, 0xB2, 6, 0, 0x74, 0xB2, 6, 0, 0x74, 0xB2 .data:0006B1E4 DCB 6, 0, 0x7C, 0xB2, 6, 0, 0x7C, 0xB2, 6, 0, 0x84, 0xB2 .data:0006B1E4 DCB 6, 0, 0x84, 0xB2, 6, 0, 0x8C, 0xB2, 6, 0, 0x8C, 0xB2 .data:0006B1E4 DCB 6, 0, 0x94, 0xB2, 6, 0, 0x94, 0xB2, 6, 0, 0x9C, 0xB2 .data:0006B1E4 DCB 6, 0, 0x9C, 0xB2, 6, 0, 0xA4, 0xB2, 6, 0, 0xA4, 0xB2 .data:0006B1E4 DCB 6, 0, 0xAC, 0xB2, 6, 0, 0xAC, 0xB2, 6, 0, 0xB4, 0xB2 .data:0006B1E4 DCB 6, 0, 0xB4, 0xB2, 6, 0, 0xBC, 0xB2, 6, 0, 0xBC, 0xB2 .data:0006B1E4 DCB 6, 0, 0xC4, 0xB2, 6, 0, 0xC4, 0xB2, 6, 0, 0xCC, 0xB2 .data:0006B1E4 DCB 6, 0, 0xCC, 0xB2, 6, 0, 0xD4, 0xB2, 6, 0, 0xD4, 0xB2 .data:0006B1E4 DCB 6, 0, 0xDC, 0xB2, 6, 0, 0xDC, 0xB2, 6, 0, 0xE4, 0xB2 .data:0006B1E4 DCB 6, 0, 0xE4, 0xB2, 6, 0, 0xEC, 0xB2, 6, 0, 0xEC, 0xB2 .data:0006B1E4 DCB 6, 0, 0xF4, 0xB2, 6, 0, 0xF4, 0xB2, 6, 0, 0xFC, 0xB2 .data:0006B1E4 DCB 6, 0, 0xFC, 0xB2, 6, 0, 4, 0xB3, 6, 0, 4, 0xB3, 6 .data:0006B1E4 DCB 0, 0xC, 0xB3, 6, 0, 0xC, 0xB3, 6, 0, 0x14, 0xB3, 6 .data:0006B1E4 DCB 0, 0x14, 0xB3, 6, 0, 0x1C, 0xB3, 6, 0, 0x1C, 0xB3 .data:0006B1E4 DCB 6, 0, 0x24, 0xB3, 6, 0, 0x24, 0xB3, 6, 0, 0x2C, 0xB3 .data:0006B1E4 DCB 6, 0, 0x2C, 0xB3, 6, 0, 0x34, 0xB3, 6, 0, 0x34, 0xB3 .data:0006B1E4 DCB 6, 0, 0x3C, 0xB3, 6, 0, 0x3C, 0xB3, 6, 0, 0x44, 0xB3 .data:0006B1E4 DCB 6, 0, 0x44, 0xB3, 6, 0, 0x4C, 0xB3, 6, 0, 0x4C, 0xB3 .data:0006B1E4 DCB 6, 0, 0x54, 0xB3, 6, 0, 0x54, 0xB3, 6, 0, 0x5C, 0xB3 .data:0006B1E4 DCB 6, 0, 0x5C, 0xB3, 6, 0, 0x64, 0xB3, 6, 0, 0x64, 0xB3 .data:0006B1E4 DCB 6, 0, 0x6C, 0xB3, 6, 0, 0x6C, 0xB3, 6, 0, 0x74, 0xB3 .data:0006B1E4 DCB 6, 0, 0x74, 0xB3, 6, 0, 0x7C, 0xB3, 6, 0, 0x7C, 0xB3 .data:0006B1E4 DCB 6, 0, 0x84, 0xB3, 6, 0, 0x84, 0xB3, 6, 0, 0x8C, 0xB3 .data:0006B1E4 DCB 6, 0, 0x8C, 0xB3, 6, 0, 0x94, 0xB3, 6, 0, 0x94, 0xB3 .data:0006B1E4 DCB 6, 0, 0x9C, 0xB3, 6, 0, 0x9C, 0xB3, 6, 0, 0xA4, 0xB3 .data:0006B1E4 DCB 6, 0, 0xA4, 0xB3, 6, 0, 0xAC, 0xB3, 6, 0, 0xAC, 0xB3 .data:0006B1E4 DCB 6, 0, 0xB4, 0xB3, 6, 0, 0xB4, 0xB3, 6, 0, 0xBC, 0xB3 .data:0006B1E4 DCB 6, 0, 0xBC, 0xB3, 6, 0, 0xC4, 0xB3, 6, 0, 0xC4, 0xB3 .data:0006B1E4 DCB 6, 0, 0xCC, 0xB3, 6, 0, 0xCC, 0xB3, 6, 0, 0xD4, 0xB3 .data:0006B1E4 DCB 6, 0, 0xD4, 0xB3, 6, 0, 0xDC, 0xB3, 6, 0, 0xDC, 0xB3 .data:0006B1E4 DCB 6, 0, 0xE4, 0xB3, 6, 0, 0xE4, 0xB3, 6, 0, 0xEC, 0xB3 .data:0006B1E4 DCB 6, 0, 0xEC, 0xB3, 6, 0, 0xF4, 0xB3, 6, 0, 0xF4, 0xB3 .data:0006B1E4 DCB 6, 0, 0xFC, 0xB3, 6, 0, 0xFC, 0xB3, 6, 0, 4, 0xB4 .data:0006B1E4 DCB 6, 0, 4, 0xB4, 6, 0, 0xC, 0xB4, 6, 0, 0xC, 0xB4, 6 .data:0006B1E4 DCB 0, 0x14, 0xB4, 6, 0, 0x14, 0xB4, 6, 0, 0x1C, 0xB4 .data:0006B1E4 DCB 6, 0, 0x1C, 0xB4, 6, 0, 0x24, 0xB4, 6, 0, 0x24, 0xB4 .data:0006B1E4 DCB 6, 0, 0x2C, 0xB4, 6, 0, 0x2C, 0xB4, 6, 0, 0x34, 0xB4 .data:0006B1E4 DCB 6, 0, 0x34, 0xB4, 6, 0, 0x3C, 0xB4, 6, 0, 0x3C, 0xB4 .data:0006B1E4 DCB 6, 0, 0x44, 0xB4, 6, 0, 0x44, 0xB4, 6, 0, 0x4C, 0xB4 .data:0006B1E4 DCB 6, 0, 0x4C, 0xB4, 6, 0, 0x54, 0xB4, 6, 0, 0x54, 0xB4 .data:0006B1E4 DCB 6, 0, 0x5C, 0xB4, 6, 0, 0x5C, 0xB4, 6, 0, 0x64, 0xB4 .data:0006B1E4 DCB 6, 0, 0x64, 0xB4, 6, 0, 0x6C, 0xB4, 6, 0, 0x6C, 0xB4 .data:0006B1E4 DCB 6, 0, 0x74, 0xB4, 6, 0, 0x74, 0xB4, 6, 0, 0x7C, 0xB4 .data:0006B1E4 DCB 6, 0, 0x7C, 0xB4, 6, 0, 0x84, 0xB4, 6, 0, 0x84, 0xB4 .data:0006B1E4 DCB 6, 0, 0x8C, 0xB4, 6, 0, 0x8C, 0xB4, 6, 0, 0x94, 0xB4 .data:0006B1E4 DCB 6, 0, 0x94, 0xB4, 6, 0, 0x9C, 0xB4, 6, 0, 0x9C, 0xB4 .data:0006B1E4 DCB 6, 0, 0xA4, 0xB4, 6, 0, 0xA4, 0xB4, 6, 0, 0xAC, 0xB4 .data:0006B1E4 DCB 6, 0, 0xAC, 0xB4, 6, 0, 0xB4, 0xB4, 6, 0, 0xB4, 0xB4 .data:0006B1E4 DCB 6, 0, 0xBC, 0xB4, 6, 0, 0xBC, 0xB4, 6, 0, 0xC4, 0xB4 .data:0006B1E4 DCB 6, 0, 0xC4, 0xB4, 6, 0, 0xCC, 0xB4, 6, 0, 0xCC, 0xB4 .data:0006B1E4 DCB 6, 0, 0xD4, 0xB4, 6, 0, 0xD4, 0xB4, 6, 0, 0xDC, 0xB4 .data:0006B1E4 DCB 6, 0, 0xDC, 0xB4, 6, 0, 0xE4, 0xB4, 6, 0, 0xE4, 0xB4 .data:0006B1E4 DCB 6, 0, 0xEC, 0xB4, 6, 0, 0xEC, 0xB4, 6, 0, 0xF4, 0xB4 .data:0006B1E4 DCB 6, 0, 0xF4, 0xB4, 6, 0, 0xFC, 0xB4, 6, 0, 0xFC, 0xB4 .data:0006B1E4 DCB 6, 0, 4, 0xB5, 6, 0, 4, 0xB5, 6, 0, 0xC, 0xB5, 6, 0 .data:0006B1E4 DCB 0xC, 0xB5, 6, 0, 0x14, 0xB5, 6, 0, 0x14, 0xB5, 6, 0 .data:0006B1E4 DCB 0x1C, 0xB5, 6, 0, 0x1C, 0xB5, 6, 0, 0x24, 0xB5, 6 .data:0006B1E4 DCB 0, 0x24, 0xB5, 6, 0, 0x2C, 0xB5, 6, 0, 0x2C, 0xB5 .data:0006B1E4 DCB 6, 0, 0x34, 0xB5, 6, 0, 0x34, 0xB5, 6, 0, 0x3C, 0xB5 .data:0006B1E4 DCB 6, 0, 0x3C, 0xB5, 6, 0, 0x44, 0xB5, 6, 0, 0x44, 0xB5 .data:0006B1E4 DCB 6, 0, 0x4C, 0xB5, 6, 0, 0x4C, 0xB5, 6, 0, 0x54, 0xB5 .data:0006B1E4 DCB 6, 0, 0x54, 0xB5, 6, 0, 0x5C, 0xB5, 6, 0, 0x5C, 0xB5 .data:0006B1E4 DCB 6, 0, 0x64, 0xB5, 6, 0, 0x64, 0xB5, 6, 0, 0x6C, 0xB5 .data:0006B1E4 DCB 6, 0, 0x6C, 0xB5, 6, 0, 0x74, 0xB5, 6, 0, 0x74, 0xB5 .data:0006B1E4 DCB 6, 0, 0x7C, 0xB5, 6, 0, 0x7C, 0xB5, 6, 0, 0x84, 0xB5 .data:0006B1E4 DCB 6, 0, 0x84, 0xB5, 6, 0, 0x8C, 0xB5, 6, 0, 0x8C, 0xB5 .data:0006B1E4 DCB 6, 0, 0x94, 0xB5, 6, 0, 0x94, 0xB5, 6, 0, 0x9C, 0xB5 .data:0006B1E4 DCB 6, 0, 0x9C, 0xB5, 6, 0, 0xA4, 0xB5, 6, 0, 0xA4, 0xB5 .data:0006B1E4 DCB 6, 0, 0xAC, 0xB5, 6, 0, 0xAC, 0xB5, 6, 0, 0xB4, 0xB5 .data:0006B1E4 DCB 6, 0, 0xB4, 0xB5, 6, 0, 0xBC, 0xB5, 6, 0, 0xBC, 0xB5 .data:0006B1E4 DCB 6, 0, 0xC4, 0xB5, 6, 0, 0xC4, 0xB5, 6, 0, 0xCC, 0xB5 .data:0006B1E4 DCB 6, 0, 0xCC, 0xB5, 6, 0, 0xD4, 0xB5, 6, 0, 0xD4, 0xB5 .data:0006B1E4 DCB 6, 0, 0xDC, 0xB5, 6, 0, 0xDC, 0xB5, 6, 0, 0xE4, 0xB1 .data:0006B1E4 DCB 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B1E4 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B60C list_lock DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B60C ; DATA XREF: ptmalloc_lock_all+18o .data:0006B60C ; ptmalloc_lock_all:loc_ACD4o ... .data:0006B60C DCB 0, 0, 0, 0, 0, 0, 0 .data:0006B624 trim_threshold DCD 0x20000 ; DATA XREF: chunk_free+74o .data:0006B624 ; chunk_free+78r ... .data:0006B628 top_pad DCD 0 ; DATA XREF: new_heap+Co .data:0006B628 ; new_heap+14r ... .data:0006B62C n_mmaps_max DCD 0x400 ; DATA XREF: chunk_alloc+358o .data:0006B62C ; chunk_alloc+360r ... .data:0006B630 mmap_threshold DCD 0x20000 ; DATA XREF: chunk_alloc+344o .data:0006B630 ; chunk_alloc+348r ... .data:0006B634 check_action DCD 1 ; DATA XREF: __malloc_check_init+5Co .data:0006B634 ; __malloc_check_init+60r ... .data:0006B638 sbrk_base DCD 0xFFFFFFFF ; DATA XREF: chunk_alloc+430o .data:0006B638 ; chunk_alloc+438r ... .data:0006B63C EXPORT __libc_malloc_initialized .data:0006B63C __libc_malloc_initialized DCD 0xFFFFFFFF ; DATA XREF: ptmalloc_init+8o .data:0006B63C ; ptmalloc_init+10r ... .data:0006B640 WEAK __malloc_initialize_hook .data:0006B640 __malloc_initialize_hook DCD 0 ; DATA XREF: ptmalloc_init:loc_B1DCo .data:0006B640 ; ptmalloc_init+22Cr ... .data:0006B644 WEAK __free_hook .data:0006B644 __free_hook DCD 0 ; DATA XREF: ptmalloc_lock_all+3Co .data:0006B644 ; .text:off_ADB8o ... .data:0006B648 WEAK __malloc_hook .data:0006B648 __malloc_hook DCD 0xB268 ; DATA XREF: ptmalloc_lock_all+38o .data:0006B648 ; .text:off_ADB4o ... .data:0006B64C WEAK __realloc_hook .data:0006B64C __realloc_hook DCD 0xB298 ; DATA XREF: realloc_hook_ini+18o .data:0006B64C ; realloc_hook_ini+1Cw ... .data:0006B650 WEAK __memalign_hook .data:0006B650 __memalign_hook DCD 0xB2DC ; DATA XREF: memalign_hook_ini+8o .data:0006B650 ; memalign_hook_ini+10w ... .data:0006B654 WEAK __after_morecore_hook .data:0006B654 __after_morecore_hook DCD 0 ; DATA XREF: chunk_alloc:loc_C068o .data:0006B654 ; chunk_alloc+494r ... .data:0006B658 WEAK environ .data:0006B658 environ DCD 0 ; DATA XREF: __libc_start_main+58o .data:0006B658 ; __libc_start_main+5Cw ... .data:0006B658 ; Alternative name is '__environ' .data:0006B65C EXPORT _dl_correct_cache_id .data:0006B65C _dl_correct_cache_id DCD 3 ; DATA XREF: _dl_load_cache_lookup+2C8o .data:0006B65C ; _dl_load_cache_lookup+2CCr ... .data:0006B660 EXPORT _dl_debug_fd .data:0006B660 _dl_debug_fd DCD 2 ; DATA XREF: _dl_debug_printf+Co .data:0006B660 ; _dl_debug_printf+1Cr ... .data:0006B664 EXPORT _dl_argv .data:0006B664 _dl_argv DCD 0x6B8C0 ; DATA XREF: print_search_path+160o .data:0006B664 ; print_search_path+164r ... .data:0006B668 EXPORT _dl_dynamic_weak .data:0006B668 _dl_dynamic_weak DCD 1 ; DATA XREF: _dl_lookup_symbol+30Co .data:0006B668 ; _dl_lookup_symbol+310r ... .data:0006B66C EXPORT _dl_global_scope .data:0006B66C _dl_global_scope DCQ 0x7A300 .data:0006B674 EXPORT _dl_main_searchlist .data:0006B674 _dl_main_searchlist DCD 0x7A300 ; DATA XREF: add_to_global+20o .data:0006B674 ; add_to_global+110o ... .data:0006B678 EXPORT _dl_starting_up .data:0006B678 _dl_starting_up DCD 1 ; DATA XREF: __libc_start_main+2Co .data:0006B678 ; __libc_start_main+40r ... .data:0006B67C EXPORT _dl_load_lock .data:0006B67C _dl_load_lock DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 .data:0006B67C ; DATA XREF: add_dependency+24o .data:0006B67C ; add_dependency+17Co ... .data:0006B67C DCB 0, 0, 0, 0, 0, 0, 0 .data:0006B694 unsecure_envvars.111 DCD aGconv_path_0 ; DATA XREF: non_dynamic_init+E8o .data:0006B694 ; .text:off_171F0o .data:0006B694 ; "GCONV_PATH" .data:0006B698 DCD aHostaliases ; "HOSTALIASES" .data:0006B69C DCD aLocaldomain ; "LOCALDOMAIN" .data:0006B6A0 DCD aLocpath_0 ; "LOCPATH" .data:0006B6A4 DCD aMalloc_trace ; "MALLOC_TRACE" .data:0006B6A8 DCD aNlspath ; "NLSPATH" .data:0006B6AC DCD aResolv_host_co ; "RESOLV_HOST_CONF" .data:0006B6B0 DCD aRes_options ; "RES_OPTIONS" .data:0006B6B4 DCD aTmpdir ; "TMPDIR" .data:0006B6B8 DCD aTzdir_0 ; "TZDIR" .data:0006B6BC EXPORT __libc_enable_secure .data:0006B6BC __libc_enable_secure DCD 1 ; DATA XREF: __libc_start_main:loc_8A10o .data:0006B6BC ; __libc_start_main+88r ... .data:0006B6C0 EXPORT __libc_multiple_libcs .data:0006B6C0 __libc_multiple_libcs DCD 1 ; DATA XREF: __libc_start_main:loc_89DCo .data:0006B6C0 ; __libc_start_main+54w ... .data:0006B6C4 EXPORT _nl_current_default_domain .data:0006B6C4 _nl_current_default_domain DCD 0x56484 ; DATA XREF: __dcigettext+50o .data:0006B6C4 ; __dcigettext+54r ... .data:0006B6C8 EXPORT _nl_state_lock .data:0006B6C8 _nl_state_lock DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B6C8 ; DATA XREF: __dcigettext+3Co .data:0006B6C8 ; __dcigettext+3A4o ... .data:0006B6C8 DCB 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 .data:0006B6E8 germanic_plural DCB 2, 0, 0, 0, 0xD, 0, 0, 0, 0x34, 0x65, 5, 0, 0x48, 0x65 .data:0006B6E8 ; DATA XREF: _nl_load_domain+434o .data:0006B6E8 ; _nl_load_domain:off_190E4o ... .data:0006B6E8 DCB 5, 0, 0, 0, 0, 0 .data:0006B6FC locale_alias_path.123 DCD 0x565A0 ; DATA XREF: _nl_expand_alias:loc_191E4o .data:0006B6FC ; _nl_expand_alias+9Cr ... .data:0006B700 EXPORT __fpu_control .data:0006B700 __fpu_control DCD 0x1000 ; DATA XREF: init+4Co .data:0006B700 ; init+50r ... .data:0006B704 EXPORT _IO_wfile_jumps .data:0006B704 _IO_wfile_jumps DCB 0, 0, 0, 0, 0, 0, 0, 0, 0xD4, 0xB, 3, 0, 0x30, 0xFA .data:0006B704 ; DATA XREF: fopen+30o .data:0006B704 ; fopen:off_2E450o .data:0006B704 DCB 2, 0, 0x78, 0xF6, 2, 0, 0xE4, 0xE9, 2, 0, 0x8C, 0xE7 .data:0006B704 DCB 2, 0, 8, 4, 3, 0, 0x8C, 0x1C, 3, 0, 0x38, 0xFE, 2 .data:0006B704 DCB 0, 0x74, 0x9D, 0, 0, 0x90, 0xF, 3, 0, 0xBC, 0xFC, 2 .data:0006B704 DCB 0, 0x5C, 0xB2, 4, 0, 0x1C, 0x1A, 3, 0, 0x88, 0x1A .data:0006B704 DCB 3, 0, 0x34, 0x1A, 3, 0, 0x70, 0x1A, 3, 0, 0x4C, 0x1A .data:0006B704 DCB 3, 0, 0x2C, 0xA6, 0, 0, 0x40, 0xA6, 0, 0 .data:0006B758 EXPORT __libio_codecvt .data:0006B758 __libio_codecvt DCB 0, 0, 0, 0, 0x88, 6, 3, 0, 0x50, 7, 3, 0, 0xFC, 7 .data:0006B758 ; DATA XREF: _IO_fwide+A4o .data:0006B758 ; _IO_fwide:off_3067Co ... .data:0006B758 DCB 3, 0, 0xC4, 8, 3, 0, 0xF8, 8, 3, 0, 0xC, 9, 3, 0, 0x94 .data:0006B758 DCB 9, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B758 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B758 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B758 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B758 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B758 DCB 0, 0, 0, 0, 0, 0 .data:0006B7D0 libio_translit DCB 0xD0, 0xE1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B7D0 ; DATA XREF: _IO_fwide+F4o .data:0006B7D0 ; _IO_fwide:off_30680o .data:0006B7D0 DCB 0, 0, 0, 0, 0 .data:0006B7E4 EXPORT _IO_file_jumps .data:0006B7E4 _IO_file_jumps DCB 0, 0, 0, 0, 0, 0, 0, 0, 0xD4, 0xB, 3, 0, 0x9C, 0x12 .data:0006B7E4 ; DATA XREF: fopen+4Co .data:0006B7E4 ; fopen:off_2E454o .data:0006B7E4 DCB 3, 0, 0x48, 0x11, 3, 0, 0xCC, 0x9A, 0, 0, 0xA0, 0xA4 .data:0006B7E4 DCB 0, 0, 8, 0x1B, 3, 0, 0x8C, 0x1C, 3, 0, 0x38, 0x15 .data:0006B7E4 DCB 3, 0, 0x74, 0x9D, 0, 0, 0x90, 0xF, 3, 0, 0x40, 0x14 .data:0006B7E4 DCB 3, 0, 0x74, 0xB1, 4, 0, 0x1C, 0x1A, 3, 0, 0x88, 0x1A .data:0006B7E4 DCB 3, 0, 0x34, 0x1A, 3, 0, 0x70, 0x1A, 3, 0, 0x4C, 0x1A .data:0006B7E4 DCB 3, 0, 0x2C, 0xA6, 0, 0, 0x40, 0xA6, 0, 0 .data:0006B838 EXPORT __wcsmbs_last_locale .data:0006B838 __wcsmbs_last_locale DCD 0x6018C ; DATA XREF: btowc+80o .data:0006B838 ; btowc+88r ... .data:0006B83C to_wc DCB 0, 0, 0, 0, 0, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0x7F, 0xB4 .data:0006B83C ; DATA XREF: __wcsmbs_load_conv:loc_3382Co .data:0006B83C ; __wcsmbs_load_conv:off_33A78o .data:0006B83C DCB 0x88, 5, 0, 0xA8, 0x88, 5, 0, 0xB0, 0x9D, 3, 0, 0 .data:0006B83C DCB 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 4, 0 .data:0006B83C DCB 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B874 to_mb DCB 0, 0, 0, 0, 0, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0x7F, 0xA8 .data:0006B874 ; DATA XREF: __wcsmbs_load_conv+58o .data:0006B874 ; __wcsmbs_load_conv:off_33A80o .data:0006B874 DCB 0x88, 5, 0, 0xB4, 0x88, 5, 0, 0xD0, 0xA0, 3, 0, 0 .data:0006B874 DCB 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 1, 0 .data:0006B874 DCB 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B8AC EXPORT __wcsmbs_gconv_fcts .data:0006B8AC __wcsmbs_gconv_fcts DCQ 0x6B8740006B83C ; DATA XREF: btowc+A0o .data:0006B8AC ; btowc+A4r ... .data:0006B8B4 EXPORT __libc_missing_32bit_uids .data:0006B8B4 __libc_missing_32bit_uids DCD 0xFFFFFFFF ; DATA XREF: getuid+8o .data:0006B8B4 ; getuid+Cr ... .data:0006B8B8 EXPORT __curbrk .data:0006B8B8 __curbrk DCD 0 ; DATA XREF: sbrk+Co .data:0006B8B8 ; sbrk+14r ... .data:0006B8BC WEAK program_invocation_name .data:0006B8BC program_invocation_name DCD 0x58A68 ; DATA XREF: __init_misc+40o .data:0006B8BC ; __init_misc+48w ... .data:0006B8BC ; Alternative name is '__progname_full' .data:0006B8C0 WEAK program_invocation_short_name .data:0006B8C0 program_invocation_short_name DCD 0x58A68 ; DATA XREF: __init_misc+2Co .data:0006B8C0 ; __init_misc+34o ... .data:0006B8C4 internal_trans_names.84 DCD 0x58A7C ; DATA XREF: __gconv_open+1B4o .data:0006B8C4 ; __gconv_open:off_361CCo .data:0006B8C8 builtin_modules DCB 0x84, 0x8C, 5, 0, 0x74, 0x8C, 5, 0, 1, 0, 0, 0, 0xFF .data:0006B8C8 ; DATA XREF: __gconv_read_conf:loc_38348o .data:0006B8C8 ; __gconv_read_conf+10Co ... .data:0006B8C8 DCB 0xFF, 0xFF, 0x7F, 0x64, 0x8C, 5, 0, 0, 0, 0, 0, 0 .data:0006B8C8 DCB 0, 0, 0, 0, 0, 0, 0, 0x74, 0x8C, 5, 0, 0x84, 0x8C .data:0006B8C8 DCB 5, 0, 1, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0x7F, 0x54, 0x8C .data:0006B8C8 DCB 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x84, 0x8C .data:0006B8C8 DCB 5, 0, 0x48, 0x8C, 5, 0, 1, 0, 0, 0, 0xFF, 0xFF, 0xFF .data:0006B8C8 DCB 0x7F, 0x34, 0x8C, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B8C8 DCB 0, 0, 0, 0x48, 0x8C, 5, 0, 0x84, 0x8C, 5, 0, 1, 0 .data:0006B8C8 DCB 0, 0, 0xFF, 0xFF, 0xFF, 0x7F, 0x20, 0x8C, 5, 0, 0 .data:0006B8C8 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x84, 0x8C, 5, 0 .data:0006B8C8 DCB 0x10, 0x8C, 5, 0, 1, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0x7F .data:0006B8C8 DCB 0, 0x8C, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B8C8 DCB 0xEC, 0x8B, 5, 0, 0x84, 0x8C, 5, 0, 1, 0, 0, 0, 0xFF .data:0006B8C8 DCB 0xFF, 0xFF, 0x7F, 0xDC, 0x8B, 5, 0, 0, 0, 0, 0, 0 .data:0006B8C8 DCB 0, 0, 0, 0, 0, 0, 0, 0x10, 0x8C, 5, 0, 0x84, 0x8C .data:0006B8C8 DCB 5, 0, 1, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0x7F, 0xDC, 0x8B .data:0006B8C8 DCB 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xCC, 0x8B .data:0006B8C8 DCB 5, 0, 0x84, 0x8C, 5, 0, 1, 0, 0, 0, 0xFF, 0xFF, 0xFF .data:0006B8C8 DCB 0x7F, 0xBC, 0x8B, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B8C8 DCB 0, 0, 0, 0x84, 0x8C, 5, 0, 0xCC, 0x8B, 5, 0, 1, 0 .data:0006B8C8 DCB 0, 0, 0xFF, 0xFF, 0xFF, 0x7F, 0xAC, 0x8B, 5, 0, 0 .data:0006B8C8 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x98, 0x8B, 5, 0 .data:0006B8C8 DCB 0x84, 0x8C, 5, 0, 1, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0x7F .data:0006B8C8 DCB 0x84, 0x8B, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B8C8 DCB 0, 0x84, 0x8C, 5, 0, 0x98, 0x8B, 5, 0, 1, 0, 0, 0 .data:0006B8C8 DCB 0xFF, 0xFF, 0xFF, 0x7F, 0x70, 0x8B, 5, 0, 0, 0, 0 .data:0006B8C8 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x60, 0x8B, 5, 0, 0x84 .data:0006B8C8 DCB 0x8C, 5, 0, 1, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0x7F, 0x48 .data:0006B8C8 DCB 0x8B, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x84 .data:0006B8C8 DCB 0x8C, 5, 0, 0x60, 0x8B, 5, 0, 1, 0, 0, 0, 0xFF, 0xFF .data:0006B8C8 DCB 0xFF, 0x7F, 0x30, 0x8B, 5, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006B8C8 DCB 0, 0, 0, 0, 0 .data:0006BA68 builtin_aliases DCB 0x70, 0x90, 5, 0, 0x58, 0x90, 5, 0, 0x3C, 0x90, 5 .data:0006BA68 ; DATA XREF: __gconv_read_conf:loc_38480o .data:0006BA68 ; __gconv_read_conf:off_386A8o .data:0006BA68 DCB 0, 0x20, 0x90, 5, 0, 4, 0x90, 5, 0, 0xE4, 0x8F, 5 .data:0006BA68 DCB 0, 0xC0, 0x8F, 5, 0, 0xA0, 0x8F, 5, 0, 0x80, 0x8F .data:0006BA68 DCB 5, 0, 0x60, 0x8F, 5, 0, 0x4C, 0x8F, 5, 0, 0x34, 0x8F .data:0006BA68 DCB 5, 0, 0x1C, 0x8F, 5, 0, 0xFC, 0x8E, 5, 0, 0xDC, 0x8E .data:0006BA68 DCB 5, 0, 0xC4, 0x8E, 5, 0, 0xAC, 0x8E, 5, 0, 0x8C, 0x8E .data:0006BA68 DCB 5, 0, 0x6C, 0x8E, 5, 0, 0x4C, 0x8E, 5, 0, 0x2C, 0x8E .data:0006BA68 DCB 5, 0, 0x10, 0x8E, 5, 0, 0xEC, 0x8D, 5, 0, 0xC8, 0x8D .data:0006BA68 DCB 5, 0, 0xAC, 0x8D, 5, 0, 0x8C, 0x8D, 5, 0, 0x70, 0x8D .data:0006BA68 DCB 5, 0, 0x58, 0x8D, 5, 0, 0x3C, 0x8D, 5, 0, 0x20, 0x8D .data:0006BA68 DCB 5, 0, 4, 0x8D, 5, 0, 0xE4, 0x8C, 5, 0, 0xC4, 0x8C .data:0006BA68 DCB 5, 0, 0xA8, 0x8C, 5, 0, 0x90, 0x8C, 5, 0 .data:0006BAF4 map DCB 0xE8, 0x91, 5, 0, 0xC8, 0x87, 3, 0, 0, 0, 0, 0, 0 .data:0006BAF4 ; DATA XREF: __gconv_get_builtin_trans+18o .data:0006BAF4 ; .text:off_387B8o .data:0006BAF4 DCB 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 4, 0 .data:0006BAF4 DCB 0, 0, 0xD8, 0x91, 5, 0, 0xFC, 0x8C, 3, 0, 0, 0, 0 .data:0006BAF4 DCB 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0 .data:0006BAF4 DCB 4, 0, 0, 0, 0xC4, 0x91, 5, 0, 0x3C, 0x93, 3, 0, 0 .data:0006BAF4 DCB 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 4, 0 .data:0006BAF4 DCB 0, 0, 4, 0, 0, 0, 0xB0, 0x91, 5, 0, 0xC8, 0x97, 3 .data:0006BAF4 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0 .data:0006BAF4 DCB 4, 0, 0, 0, 4, 0, 0, 0, 0xA0, 0x91, 5, 0, 0x54, 0xA8 .data:0006BAF4 DCB 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0 .data:0006BAF4 DCB 0, 1, 0, 0, 0, 6, 0, 0, 0, 0x90, 0x91, 5, 0, 0xE8 .data:0006BAF4 DCB 0xB0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6 .data:0006BAF4 DCB 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0x90, 0x91, 5, 0 .data:0006BAF4 DCB 0xE8, 0xB0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 .data:0006BAF4 DCB 0, 6, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0x80, 0x91 .data:0006BAF4 DCB 5, 0, 0xB8, 0xBE, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2 .data:0006BAF4 DCB 0, 0, 0, 2, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0x70 .data:0006BAF4 DCB 0x91, 5, 0, 0x5C, 0xC6, 3, 0, 0, 0, 0, 0, 0, 0, 0 .data:0006BAF4 DCB 0, 4, 0, 0, 0, 4, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0 .data:0006BAF4 DCB 0x5C, 0x91, 5, 0, 0xB0, 0x9D, 3, 0, 0, 0, 0, 0, 0 .data:0006BAF4 DCB 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 1, 0 .data:0006BAF4 DCB 0, 0, 0x48, 0x91, 5, 0, 0xD0, 0xA0, 3, 0, 0, 0, 0 .data:0006BAF4 DCB 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0 .data:0006BAF4 DCB 1, 0, 0, 0, 0x30, 0x91, 5, 0, 0x3C, 0xD0, 3, 0, 0 .data:0006BAF4 DCB 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 4, 0 .data:0006BAF4 DCB 0, 0, 4, 0, 0, 0, 0x18, 0x91, 5, 0, 0xE0, 0xD7, 3 .data:0006BAF4 DCB 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0 .data:0006BAF4 DCB 2, 0, 0, 0, 2, 0, 0, 0 .data:0006BC94 _nl_current_names DCB 4, 0x16, 6, 0, 4, 0x16, 6, 0, 4, 0x16, 6, 0, 4, 0x16 .data:0006BC94 ; DATA XREF: setlocale+24o .data:0006BC94 ; setlocale+30o ... .data:0006BC94 DCB 6, 0, 4, 0x16, 6, 0, 4, 0x16, 6, 0, 4, 0x16, 6, 0 .data:0006BC94 DCB 4, 0x16, 6, 0, 4, 0x16, 6, 0, 4, 0x16, 6, 0, 4, 0x16 .data:0006BC94 DCB 6, 0, 4, 0x16, 6, 0, 4, 0x16, 6, 0 .data:0006BCC8 _nl_value_types DCB 0xDC, 0x99, 5, 0, 0xAC, 0x9B, 5, 0, 0xC4, 0x9B, 5 .data:0006BCC8 ; DATA XREF: _nl_load_locale+2B0o .data:0006BCC8 ; _nl_load_locale:off_3FF14o .data:0006BCC8 DCB 0, 0x90, 0x99, 5, 0, 0xF4, 0x9A, 5, 0, 0x80, 0x9D .data:0006BCC8 DCB 5, 0, 0, 0, 0, 0, 0x94, 0x9D, 5, 0, 0xA0, 0x9D, 5 .data:0006BCC8 DCB 0, 0xBC, 0x9D, 5, 0, 0xF0, 0x9D, 5, 0, 4, 0x9E, 5 .data:0006BCC8 DCB 0, 0xC, 0x9E, 5, 0 .data:0006BCFC EXPORT _nl_current_LC_CTYPE .data:0006BCFC _nl_current_LC_CTYPE DCD 0x6018C ; DATA XREF: _i18n_number_rewrite+7Co .data:0006BCFC ; _i18n_number_rewrite+84r ... .data:0006BD00 EXPORT _nl_current_LC_MESSAGES .data:0006BD00 _nl_current_LC_MESSAGES DCD 0x603DC .data:0006BD04 EXPORT _nl_current_LC_MONETARY .data:0006BD04 _nl_current_LC_MONETARY DCD 0x60428 ; DATA XREF: __printf_fp:loc_2112Co .data:0006BD04 ; __printf_fp+74r ... .data:0006BD08 EXPORT _nl_current_LC_NUMERIC .data:0006BD08 _nl_current_LC_NUMERIC DCD 0x60504 ; DATA XREF: __strtol_internal+30o .data:0006BD08 ; __strtol_internal+34r ... .data:0006BD0C EXPORT _nl_current_LC_TIME .data:0006BD0C _nl_current_LC_TIME DCD 0x60544 ; DATA XREF: _nl_init_era_entries+34o .data:0006BD0C ; _nl_init_era_entries+38r ... .data:0006BD10 EXPORT _nl_current_LC_PAPER .data:0006BD10 _nl_current_LC_PAPER DCD 0x60D28 .data:0006BD14 EXPORT _nl_current_LC_NAME .data:0006BD14 _nl_current_LC_NAME DCD 0x60D54 .data:0006BD18 EXPORT _nl_current_LC_ADDRESS .data:0006BD18 _nl_current_LC_ADDRESS DCD 0x60DA4 .data:0006BD1C EXPORT _nl_current_LC_TELEPHONE .data:0006BD1C _nl_current_LC_TELEPHONE DCD 0x60E28 .data:0006BD20 EXPORT _nl_current_LC_MEASUREMENT .data:0006BD20 _nl_current_LC_MEASUREMENT DCD 0x60E6C .data:0006BD24 EXPORT _nl_current_LC_IDENTIFICATION .data:0006BD24 _nl_current_LC_IDENTIFICATION DCD 0x60E98 .data:0006BD28 EXPORT _nl_current_LC_COLLATE .data:0006BD28 _nl_current_LC_COLLATE DCD 0x61598 .data:0006BD2C EXPORT __ctype_b .data:0006BD2C __ctype_b DCD 0x5EA74 ; DATA XREF: _nl_load_domain+388o .data:0006BD2C ; _nl_load_domain+390r ... .data:0006BD30 EXPORT __ctype32_b .data:0006BD30 __ctype32_b DCD 0x5EC74 ; DATA XREF: _nl_postload_ctype+44o .data:0006BD30 ; _nl_postload_ctype+4Cw ... .data:0006BD34 EXPORT __ctype_tolower .data:0006BD34 __ctype_tolower DCD 0x5F874 ; DATA XREF: _nl_normalize_codeset+B0o .data:0006BD34 ; _nl_normalize_codeset+D4r ... .data:0006BD38 EXPORT __ctype_toupper .data:0006BD38 __ctype_toupper DCD 0x5F274 ; DATA XREF: _nl_init_domain_conv+188o .data:0006BD38 ; _nl_init_domain_conv+190r ... .data:0006BD3C EXPORT __ctype32_tolower .data:0006BD3C __ctype32_tolower DCD 0x5F874 ; DATA XREF: _nl_postload_ctype+5Co .data:0006BD3C ; _nl_postload_ctype+64w ... .data:0006BD40 EXPORT __ctype32_toupper .data:0006BD40 __ctype32_toupper DCD 0x5F274 ; DATA XREF: _nl_postload_ctype+50o .data:0006BD40 ; _nl_postload_ctype+58w ... .data:0006BD44 EXPORT __ctype32_wctype .data:0006BD44 __ctype32_wctype DCB 0x94, 0xFC, 5, 0, 0xDC, 0xFC, 5, 0, 0x24, 0xFD, 5 .data:0006BD44 ; DATA XREF: _nl_postload_ctype+68o .data:0006BD44 ; .text:off_400B0o .data:0006BD44 DCB 0, 0x6C, 0xFD, 5, 0, 0xB0, 0xFD, 5, 0, 0xFC, 0xFD .data:0006BD44 DCB 5, 0, 0x40, 0xFE, 5, 0, 0x8C, 0xFE, 5, 0, 0xD8, 0xFE .data:0006BD44 DCB 5, 0, 0x1C, 0xFF, 5, 0, 0x68, 0xFF, 5, 0, 0xB4, 0xFF .data:0006BD44 DCB 5, 0 .data:0006BD74 EXPORT __ctype32_wctrans .data:0006BD74 __ctype32_wctrans DCQ 0x600880005FFE0 ; DATA XREF: _nl_postload_ctype+94o .data:0006BD74 ; .text:off_400B4o .data:0006BD7C EXPORT __ctype32_width .data:0006BD7C __ctype32_width DCD 0x60130 ; DATA XREF: _nl_postload_ctype+C8o .data:0006BD7C ; _nl_postload_ctype+D0w ... .data:0006BD80 WEAK tzname .data:0006BD80 tzname DCQ 0x61E2800061E28 ; DATA XREF: tz_compute+ACo .data:0006BD80 ; tz_compute+B4w ... .data:0006BD88 WEAK daylight .data:0006BD88 daylight DCD 0 ; DATA XREF: tz_compute+90o .data:0006BD88 ; tz_compute+9Cw ... .data:0006BD8C WEAK timezone .data:0006BD8C timezone DCD 0 ; DATA XREF: tzset_internal+9D0o .data:0006BD8C ; tzset_internal+9D8w ... .data:0006BD8C ; Alternative name is '__timezone' .data:0006BD90 state DCD 3 ; DATA XREF: _dl_start_profile:loc_4F204o .data:0006BD90 ; _dl_start_profile+B8w ... .data:0006BD94 msg.146 DCB "unexpected PLT reloc type 0x??",0 .data:0006BD94 ; DATA XREF: .text:00052960o .data:0006BD94 ; .text:off_529B0o .data:0006BDB3 ALIGN 4 .data:0006BDB4 msg.147 DCB "unexpected reloc type 0x??",0 .data:0006BDB4 ; DATA XREF: .text:00052988o .data:0006BDB4 ; .text:off_529B4o .data:0006BDCF ALIGN 0x10 .data:0006BDCF ; .data ends .data:0006BDCF .ctors:0006BDD0 ; =========================================================================== .ctors:0006BDD0 .ctors:0006BDD0 ; Segment type: Pure data .ctors:0006BDD0 AREA .ctors, DATA .ctors:0006BDD0 ; ORG 0x6BDD0 .ctors:0006BDD0 force_to_data DCD 0xFFFFFFFF ; DATA XREF: __do_global_ctors_aux+8o .ctors:0006BDD0 ; __do_global_ctors_aux+Cr ... .ctors:0006BDD4 __CTOR_END__ DCD 0 .ctors:0006BDD4 ; .ctors ends .ctors:0006BDD4 .dtors:0006BDD8 ; =========================================================================== .dtors:0006BDD8 .dtors:0006BDD8 ; Segment type: Pure data .dtors:0006BDD8 AREA .dtors, DATA .dtors:0006BDD8 ; ORG 0x6BDD8 .dtors:0006BDD8 __DTOR_LIST__ DCD 0xFFFFFFFF .dtors:0006BDDC __DTOR_END__ DCD 0 .dtors:0006BDDC ; .dtors ends .dtors:0006BDDC .got:0006BDE0 ; =========================================================================== .got:0006BDE0 .got:0006BDE0 ; Segment type: Pure data .got:0006BDE0 AREA .got, DATA .got:0006BDE0 ; ORG 0x6BDE0 .got:0006BDE0 EXPORT _GLOBAL_OFFSET_TABLE_ .got:0006BDE0 _GLOBAL_OFFSET_TABLE_ DCD 0 ; DATA XREF: call_gmon_start+10o .got:0006BDE0 ; .text:off_8144o ... .got:0006BDE4 DCD 0 .got:0006BDE8 DCD 0 .got:0006BDEC off_6BDEC DCD 0 ; DATA XREF: call_gmon_start+14r .got:0006BDEC ; .text:off_8148o .got:0006BDF0 __clz_tab_ptr DCD __clz_tab ; DATA XREF: __udivdi3+54r .got:0006BDF0 ; __udivdi3+188r ... .got:0006BDF4 __clz_tab_0_ptr DCD __clz_tab_0 ; DATA XREF: __umoddi3+5Cr .got:0006BDF4 ; __umoddi3+DCr ... .got:0006BDF4 ; .got ends .got:0006BDF4 .bss:0006BE00 ; =========================================================================== .bss:0006BE00 .bss:0006BE00 ; Segment type: Uninitialized .bss:0006BE00 AREA .bss, DATA, ALIGN=4 .bss:0006BE00 ; ORG 0x6BE00 .bss:0006BE00 usbd_recv_buf % 0x1F40 ; DATA XREF: read_data_from_usbd+20o .bss:0006BE00 ; .text:off_82F0o .bss:0006DD40 data0 % 0xFB4 ; DATA XREF: main+130o .bss:0006DD40 ; main+154o ... .bss:0006ECF4 data1 % 0xFB4 ; DATA XREF: main+168o .bss:0006ECF4 ; main+190o ... .bss:0006FCA8 data2 % 0xFB4 ; DATA XREF: main+84o .bss:0006FCA8 ; main+1A4o ... .bss:00070C5C data3 % 0xFB4 ; DATA XREF: main+8Co .bss:00070C5C ; main+1DCo ... .bss:00071C10 data4 % 0x3E94 ; DATA XREF: main+214o .bss:00071C10 ; main:off_896Co .bss:00075AA4 pt_data % 4 ; DATA XREF: main+7Co .bss:00075AA4 ; main+C4o ... .bss:00075AA8 fifo_data % 0x3E80 ; DATA XREF: main+98o .bss:00075AA8 ; main+138o ... .bss:00079928 stage % 4 ; DATA XREF: abort:loc_8C00o .bss:00079928 ; abort+30r ... .bss:0007992C lock_0 % 0x18 ; DATA XREF: __new_exitfn+1Co .bss:0007992C ; __new_exitfn+E4o ... .bss:00079944 initial % 0x208 .bss:00079B4C __libc_pagesize % 4 ; DATA XREF: ptmalloc_init+28o .bss:00079B4C ; ptmalloc_init+30w ... .bss:00079B50 arena_key % 4 .bss:00079B54 max_sbrked_mem % 4 ; DATA XREF: chunk_alloc+580o .bss:00079B54 ; chunk_alloc+588r ... .bss:00079B58 n_mmaps % 4 ; DATA XREF: munmap_chunk+8o .bss:00079B58 ; munmap_chunk+Cr ... .bss:00079B5C max_n_mmaps % 4 ; DATA XREF: chunk_alloc+3B4o .bss:00079B5C ; chunk_alloc+3BCr ... .bss:00079B60 mmapped_mem % 4 ; DATA XREF: munmap_chunk+20o .bss:00079B60 ; munmap_chunk+2Cr ... .bss:00079B64 max_mmapped_mem % 4 ; DATA XREF: mremap_chunk+6Co .bss:00079B64 ; mremap_chunk+74r ... .bss:00079B68 arena_mem % 4 ; DATA XREF: arena_get2+17Co .bss:00079B68 ; arena_get2+1B0r ... .bss:00079B6C save_malloc_hook % 4 ; DATA XREF: ptmalloc_lock_all+8Co .bss:00079B6C ; ptmalloc_lock_all+90w ... .bss:00079B70 save_free_hook % 4 ; DATA XREF: ptmalloc_lock_all+9Co .bss:00079B70 ; ptmalloc_lock_all+A4w ... .bss:00079B74 save_arena % 4 ; DATA XREF: ptmalloc_lock_all+C8o .bss:00079B74 ; ptmalloc_lock_all+D0w ... .bss:00079B78 using_malloc_checking % 4 ; DATA XREF: __malloc_check_init+24o .bss:00079B78 ; __malloc_check_init+2Cw ... .bss:00079B7C disallow_malloc_check % 4 ; DATA XREF: __malloc_check_init+8o .bss:00079B7C ; __malloc_check_init+Cr ... .bss:00079B80 env_path_list % 4 ; DATA XREF: _dl_init_paths+224o .bss:00079B80 ; _dl_init_paths+22Cw ... .bss:00079B84 dword_79B84 % 4 ; DATA XREF: _dl_init_paths+548o .bss:00079B88 capstr % 4 ; DATA XREF: _dl_init_paths+34o .bss:00079B88 ; _dl_init_paths+38w ... .bss:00079B8C ncapstr % 4 ; DATA XREF: decompose_rpath:loc_106ACo .bss:00079B8C ; decompose_rpath+270r ... .bss:00079B90 max_capstrlen % 4 ; DATA XREF: _dl_init_paths+8o .bss:00079B90 ; _dl_init_paths:off_10B9Co ... .bss:00079B94 rtld_search_dirs % 4 ; DATA XREF: _dl_init_paths+44o .bss:00079B94 ; _dl_init_paths+4Cw ... .bss:00079B98 dword_79B98 % 4 ; DATA XREF: _dl_init_paths+B8o .bss:00079B9C max_dirnamelen % 4 ; DATA XREF: decompose_rpath+2CCo .bss:00079B9C ; decompose_rpath+2D0r ... .bss:00079BA0 cache % 4 ; DATA XREF: _dl_load_cache_lookup:loc_12C80o .bss:00079BA0 ; _dl_load_cache_lookup+34r ... .bss:00079BA4 cache_new % 4 ; DATA XREF: _dl_load_cache_lookup+90o .bss:00079BA4 ; _dl_load_cache_lookup+ACw ... .bss:00079BA8 cachesize % 4 ; DATA XREF: _dl_load_cache_lookup+40o .bss:00079BA8 ; _dl_load_cache_lookup+5Cr ... .bss:00079BAC __libc_tsd_DL_ERROR_data % 4 ; DATA XREF: _dl_signal_error:loc_1669Co .bss:00079BAC ; _dl_signal_error+50r ... .bss:00079BB0 receiver % 4 ; DATA XREF: _dl_signal_cerror+8o .bss:00079BB0 ; _dl_signal_cerror+Cr ... .bss:00079BB4 EXPORT errno .bss:00079BB4 errno % 4 ; DATA XREF: __errno_location+Co .bss:00079BB4 ; .text:off_8BD0o ... .bss:00079BB4 ; Alternative name is '_errno' .bss:00079BB8 lock.93 % 0x18 ; DATA XREF: _nl_find_msg+3ACo .bss:00079BB8 ; _nl_find_msg+440o ... .bss:00079BD0 freemem.94 % 4 ; DATA XREF: _nl_find_msg+3C0o .bss:00079BD0 ; _nl_find_msg+3C8r ... .bss:00079BD4 freemem_size.95 % 4 ; DATA XREF: _nl_find_msg+3D0o .bss:00079BD4 ; _nl_find_msg:loc_180BCr ... .bss:00079BD8 root % 4 ; DATA XREF: __dcigettext+98o .bss:00079BD8 ; __dcigettext:off_17AE8o ... .bss:00079BDC transmem_list % 4 ; DATA XREF: _nl_find_msg+468o .bss:00079BDC ; _nl_find_msg+470r ... .bss:00079BE0 _nl_loaded_domains % 4 ; DATA XREF: _nl_find_domain+54o .bss:00079BE0 ; _nl_find_domain:off_18900o ... .bss:00079BE4 lock_1 % 0x18 ; DATA XREF: _nl_expand_alias+24o .bss:00079BE4 ; _nl_expand_alias:off_191D0o ... .bss:00079BFC string_space % 4 ; DATA XREF: read_alias_file+2C8o .bss:00079BFC ; read_alias_file+2D8r ... .bss:00079C00 string_space_act % 4 ; DATA XREF: read_alias_file+2A0o .bss:00079C00 ; read_alias_file+2A8r ... .bss:00079C04 string_space_max % 4 ; DATA XREF: read_alias_file+2A4o .bss:00079C04 ; read_alias_file+2B0r ... .bss:00079C08 map_0 % 4 ; DATA XREF: _nl_expand_alias+54o .bss:00079C08 ; _nl_expand_alias+5Cr ... .bss:00079C0C nmap % 4 ; DATA XREF: _nl_expand_alias:loc_1917Co .bss:00079C0C ; _nl_expand_alias:loc_19184r ... .bss:00079C10 maxmap % 4 ; DATA XREF: read_alias_file+1D8o .bss:00079C10 ; read_alias_file:off_19518o ... .bss:00079C14 phys_pages.87 % 4 ; DATA XREF: qsort:loc_1B268o .bss:00079C14 ; qsort+58r ... .bss:00079C18 pagesize.88 % 4 ; DATA XREF: qsort+54o .bss:00079C18 ; qsort+9Cw ... .bss:00079C1C envlock % 0x18 ; DATA XREF: __add_to_environ+54o .bss:00079C1C ; __add_to_environ+F4o ... .bss:00079C34 known_values % 4 ; DATA XREF: __add_to_environ+150o .bss:00079C34 ; __add_to_environ+270o ... .bss:00079C38 last_environ % 4 ; DATA XREF: __add_to_environ:loc_1B524o .bss:00079C38 ; __add_to_environ+D4r ... .bss:00079C3C printf_funcs % 0x400 ; DATA XREF: register_printf_function+20o .bss:00079C3C ; .text:off_23070o .bss:0007A03C internal % 8 ; DATA XREF: mbrlen+1Co .bss:0007A03C ; .text:off_32BF8o .bss:0007A044 state_0 % 8 ; DATA XREF: mbrtowc+3Co .bss:0007A044 ; mbrtowc:off_32D5Co .bss:0007A04C state_1 % 8 ; DATA XREF: wcrtomb+44o .bss:0007A04C ; wcrtomb:off_32F3Co .bss:0007A054 state_2 % 8 ; DATA XREF: mbsrtowcs+28o .bss:0007A054 ; mbsrtowcs:off_331B4o .bss:0007A05C state_3 % 8 ; DATA XREF: wcsrtombs+28o .bss:0007A05C ; wcsrtombs:off_33450o .bss:0007A064 state_4 % 8 ; DATA XREF: mbsnrtowcs+28o .bss:0007A064 ; mbsnrtowcs:off_336BCo .bss:0007A06C lock_2 % 0x18 ; DATA XREF: __wcsmbs_load_conv+20o .bss:0007A06C ; __wcsmbs_load_conv:off_33A6Co ... .bss:0007A084 no_syscall_getcwd % 4 ; DATA XREF: getcwd+10o .bss:0007A084 ; getcwd+18r ... .bss:0007A088 have_new_dcache % 4 ; DATA XREF: getcwd+28o .bss:0007A088 ; getcwd+2Cr ... .bss:0007A08C mount_proc % 4 ; DATA XREF: get_proc_path+D0o .bss:0007A08C ; get_proc_path:loc_35A00r ... .bss:0007A090 lock_3 % 0x18 ; DATA XREF: __gconv_find_transform+5Co .bss:0007A090 ; __gconv_find_transform+138o ... .bss:0007A0A8 known_derivations % 4 ; DATA XREF: derivation_lookup+30o .bss:0007A0A8 ; derivation_lookup:off_36820o ... .bss:0007A0AC once % 4 ; DATA XREF: __gconv_lookup_alias+1Co .bss:0007A0AC ; __gconv_lookup_alias:loc_37324o ... .bss:0007A0B0 modcounter.168 % 4 ; DATA XREF: read_conf_file+338o .bss:0007A0B0 ; read_conf_file+33Cr ... .bss:0007A0B4 lock.172 % 0x18 ; DATA XREF: __gconv_get_path+1Co .bss:0007A0B4 ; __gconv_get_path:off_3812Co ... .bss:0007A0CC empty_path_elem % 8 ; DATA XREF: __gconv_get_path:loc_3821Co .bss:0007A0CC ; __gconv_get_path:off_38260o ... .bss:0007A0D4 search_tree % 4 ; DATA XREF: __gconv_translit_find:loc_3E6ECo .bss:0007A0D4 ; __gconv_translit_find+1C8o ... .bss:0007A0D8 lock_4 % 0x18 ; DATA XREF: __gconv_translit_find+44o .bss:0007A0D8 ; __gconv_translit_find+1ECo ... .bss:0007A0F0 loaded % 4 ; DATA XREF: __gconv_find_shlib+14o .bss:0007A0F0 ; __gconv_find_shlib:off_3EA00o ... .bss:0007A0F4 release_handle % 4 ; DATA XREF: do_release_shlib+2Co .bss:0007A0F4 ; do_release_shlib+30r ... .bss:0007A0F8 locale_file_list % 0x34 ; DATA XREF: _nl_find_locale+1D0o .bss:0007A0F8 ; _nl_find_locale:off_3F8A8o ... .bss:0007A12C era_initialized % 4 ; DATA XREF: _nl_postload_time+8o .bss:0007A12C ; _nl_postload_time+10w ... .bss:0007A130 eras % 4 ; DATA XREF: _nl_init_era_entries+48o .bss:0007A130 ; _nl_init_era_entries+4Cr ... .bss:0007A134 num_eras % 4 ; DATA XREF: _nl_init_era_entries:loc_40150o .bss:0007A134 ; _nl_init_era_entries+64r ... .bss:0007A138 alt_digits_initialized % 4 ; DATA XREF: _nl_postload_time+14o .bss:0007A138 ; _nl_postload_time+18w ... .bss:0007A13C alt_digits % 4 ; DATA XREF: _nl_get_alt_digit+2Co .bss:0007A13C ; _nl_get_alt_digit+48r ... .bss:0007A140 walt_digits_initialized % 4 ; DATA XREF: _nl_postload_time+1Co .bss:0007A140 ; _nl_postload_time+24w ... .bss:0007A144 walt_digits % 4 ; DATA XREF: _nl_get_walt_digit+2Co .bss:0007A144 ; _nl_get_walt_digit+48r ... .bss:0007A148 is_initialized.126 % 4 ; DATA XREF: tzset_internal+Co .bss:0007A148 ; tzset_internal+14r ... .bss:0007A14C tzset_lock % 0x18 ; DATA XREF: __tzname_max+18o .bss:0007A14C ; __tzname_max+38o ... .bss:0007A164 tz_rules % 4 ; DATA XREF: tzset_internal:loc_4BAD4o .bss:0007A164 ; tzset_internal+A4w ... .bss:0007A168 % 0x14 .bss:0007A17C dword_7A17C % 4 ; DATA XREF: __tz_convert+F4o .bss:0007A180 % 4 .bss:0007A184 dword_7A184 % 4 ; DATA XREF: tzset_internal+B4o .bss:0007A184 ; tzset+4Co .bss:0007A188 % 0x14 .bss:0007A19C dword_7A19C % 4 ; DATA XREF: __tz_convert+104o .bss:0007A1A0 % 4 .bss:0007A1A4 old_tz % 4 ; DATA XREF: tzset_internal:loc_4BAB0o .bss:0007A1A4 ; tzset_internal+7Cr ... .bss:0007A1A8 num_transitions % 4 ; DATA XREF: __tzfile_read+174o .bss:0007A1A8 ; __tzfile_read+1A0w ... .bss:0007A1AC transitions % 4 ; DATA XREF: __tzfile_read+14o .bss:0007A1AC ; __tzfile_read+1Cr ... .bss:0007A1B0 type_idxs % 4 ; DATA XREF: __tzfile_read+28Co .bss:0007A1B0 ; __tzfile_read+294w ... .bss:0007A1B4 num_types % 4 ; DATA XREF: __tzfile_read+1D8o .bss:0007A1B4 ; __tzfile_read+1ECw ... .bss:0007A1B8 types % 4 ; DATA XREF: __tzfile_read+298o .bss:0007A1B8 ; __tzfile_read+2A0w ... .bss:0007A1BC zone_names % 4 ; DATA XREF: __tzfile_read+2A8o .bss:0007A1BC ; __tzfile_read+2B0w ... .bss:0007A1C0 rule_stdoff % 4 ; DATA XREF: __tzfile_read+738o .bss:0007A1C0 ; __tzfile_read:off_4D588o ... .bss:0007A1C4 rule_dstoff % 4 ; DATA XREF: __tzfile_read+73Co .bss:0007A1C4 ; __tzfile_read:off_4D58Co ... .bss:0007A1C8 num_leaps % 4 ; DATA XREF: __tzfile_read+1DCo .bss:0007A1C8 ; __tzfile_read+220w ... .bss:0007A1CC leaps % 4 ; DATA XREF: __tzfile_read+2B8o .bss:0007A1CC ; __tzfile_read+2C4w ... .bss:0007A1D0 o_directory_works % 4 ; DATA XREF: tryopen_o_directory+2Co .bss:0007A1D0 ; tryopen_o_directory+44o ... .bss:0007A1D4 data % 4 ; DATA XREF: _dl_start_profile+4F4o .bss:0007A1D4 ; _dl_start_profile+4FCw ... .bss:0007A1D8 narcs % 4 ; DATA XREF: _dl_start_profile+60Co .bss:0007A1D8 ; _dl_start_profile+614w ... .bss:0007A1DC narcsp % 4 ; DATA XREF: _dl_start_profile+4C4o .bss:0007A1DC ; _dl_start_profile+4D0w ... .bss:0007A1E0 kcount % 4 ; DATA XREF: _dl_start_profile+4B0o .bss:0007A1E0 ; _dl_start_profile+4B8w ... .bss:0007A1E4 kcountsize % 4 ; DATA XREF: _dl_start_profile+100o .bss:0007A1E4 ; _dl_start_profile+104w ... .bss:0007A1E8 tos % 4 ; DATA XREF: _dl_start_profile+5A0o .bss:0007A1E8 ; _dl_start_profile+5A8w ... .bss:0007A1EC froms % 4 ; DATA XREF: _dl_start_profile+5D8o .bss:0007A1EC ; _dl_start_profile+5E0w ... .bss:0007A1F0 fromlimit % 4 ; DATA XREF: _dl_start_profile+128o .bss:0007A1F0 ; _dl_start_profile+130w ... .bss:0007A1F4 fromidx % 4 ; DATA XREF: _dl_start_profile+5E4o .bss:0007A1F4 ; _dl_start_profile+5ECw ... .bss:0007A1F8 lowpc % 4 ; DATA XREF: _dl_start_profile+C0o .bss:0007A1F8 ; _dl_start_profile+DCw ... .bss:0007A1FC textsize % 4 ; DATA XREF: _dl_start_profile+F0o .bss:0007A1FC ; _dl_start_profile+F4w ... .bss:0007A200 hashfraction % 4 ; DATA XREF: _dl_start_profile+BCo .bss:0007A200 ; _dl_start_profile+CCw ... .bss:0007A204 log_hashfraction % 4 ; DATA XREF: _dl_start_profile+110o .bss:0007A204 ; _dl_start_profile+118w ... .bss:0007A208 localtime_offset % 4 ; DATA XREF: timelocal+18o .bss:0007A208 ; .text:off_50C10o .bss:0007A20C oact.18 % 0x8C ; DATA XREF: profil+58o .bss:0007A20C ; profil+98o ... .bss:0007A298 otimer.19 % 0x10 ; DATA XREF: profil+3Co .bss:0007A298 ; profil+80o ... .bss:0007A2A8 samples % 4 ; DATA XREF: profil_counter+68o .bss:0007A2A8 ; profil_counter+6Cr ... .bss:0007A2AC nsamples % 4 ; DATA XREF: profil_counter+54o .bss:0007A2AC ; profil_counter+58r ... .bss:0007A2B0 pc_offset % 4 ; DATA XREF: profil_counter+20o .bss:0007A2B0 ; profil_counter+24r ... .bss:0007A2B4 pc_scale % 4 ; DATA XREF: profil_counter+30o .bss:0007A2B4 ; profil_counter+38r ... .bss:0007A2B8 fix_page.115 % 4 ; DATA XREF: fix_bad_pc24.111+1Co .bss:0007A2B8 ; fix_bad_pc24.111+28r ... .bss:0007A2BC fix_offset.116 % 4 ; DATA XREF: fix_bad_pc24.111+30o .bss:0007A2BC ; fix_bad_pc24.111:off_51E74o ... .bss:0007A2C0 pagesize.117 % 4 ; DATA XREF: fix_bad_pc24.111+20o .bss:0007A2C0 ; fix_bad_pc24.111+3Cr ... .bss:0007A2C4 EXPORT __libc_tsd_MALLOC_data .bss:0007A2C4 __libc_tsd_MALLOC_data % 4 ; DATA XREF: ptmalloc_lock_all:loc_AD68o .bss:0007A2C4 ; ptmalloc_lock_all+C0r ... .bss:0007A2C8 EXPORT __have_no_fcntl64 .bss:0007A2C8 __have_no_fcntl64 % 4 ; DATA XREF: fcntl+Co .bss:0007A2C8 ; fcntl+14r ... .bss:0007A2CC EXPORT __libc_internal_tsd_set .bss:0007A2CC __libc_internal_tsd_set % 4 ; DATA XREF: ptmalloc_lock_all:loc_AD70o .bss:0007A2CC ; ptmalloc_lock_all+CCr ... .bss:0007A2D0 EXPORT __libc_internal_tsd_get .bss:0007A2D0 __libc_internal_tsd_get % 4 ; DATA XREF: ptmalloc_lock_all+94o .bss:0007A2D0 ; ptmalloc_lock_all+98r ... .bss:0007A2D4 EXPORT _dl_clktck .bss:0007A2D4 _dl_clktck % 4 ; DATA XREF: _dl_aux_init+1Co .bss:0007A2D4 ; _dl_aux_init+48w ... .bss:0007A2D8 EXPORT _dl_init_all_dirs .bss:0007A2D8 _dl_init_all_dirs % 4 ; DATA XREF: _dl_init_paths+580o .bss:0007A2D8 ; _dl_init_paths+584w ... .bss:0007A2DC EXPORT _dl_initfirst .bss:0007A2DC _dl_initfirst % 4 ; DATA XREF: _dl_map_object_from_fd+C6Co .bss:0007A2DC ; _dl_map_object_from_fd+C70w ... .bss:0007A2E0 EXPORT _dl_all_dirs .bss:0007A2E0 _dl_all_dirs % 4 ; DATA XREF: decompose_rpath:loc_10618o .bss:0007A2E0 ; decompose_rpath+1DCr ... .bss:0007A2E4 EXPORT _dl_osversion .bss:0007A2E4 _dl_osversion % 4 ; DATA XREF: open_verify+3C4o .bss:0007A2E4 ; open_verify+3C8r ... .bss:0007A2E8 EXPORT _dl_pagesize .bss:0007A2E8 _dl_pagesize % 4 ; DATA XREF: getpagesize+8o .bss:0007A2E8 ; getpagesize+Cr ... .bss:0007A2EC EXPORT _dl_num_relocations .bss:0007A2EC _dl_num_relocations % 4 ; DATA XREF: _dl_lookup_symbol:loc_134B0o .bss:0007A2EC ; _dl_lookup_symbol+F8r ... .bss:0007A2F0 EXPORT _dl_nloaded .bss:0007A2F0 _dl_nloaded % 4 ; DATA XREF: lose+54o .bss:0007A2F0 ; lose+58r ... .bss:0007A2F4 EXPORT __libc_stack_end .bss:0007A2F4 __libc_stack_end % 4 ; DATA XREF: __libc_start_main+64o .bss:0007A2F4 ; __libc_start_main+74w ... .bss:0007A2F8 ALIGN 0x10 .bss:0007A300 EXPORT _dl_initial_searchlist .bss:0007A300 _dl_initial_searchlist % 0x10 ; DATA XREF: free_mem_12+20o .bss:0007A300 ; free_mem_12+38r ... .bss:0007A310 EXPORT _dl_platformlen .bss:0007A310 _dl_platformlen % 4 ; DATA XREF: expand_dynamic_string_token:loc_10324o .bss:0007A310 ; expand_dynamic_string_token+E8r ... .bss:0007A314 EXPORT _dl_debug_mask .bss:0007A314 _dl_debug_mask % 4 ; DATA XREF: _dl_map_object_from_fd+110o .bss:0007A314 ; _dl_map_object_from_fd+114r ... .bss:0007A318 EXPORT _dl_profile .bss:0007A318 _dl_profile % 4 ; DATA XREF: _dl_start_profile+1E0o .bss:0007A318 ; _dl_start_profile+1E8r ... .bss:0007A31C EXPORT _dl_bind_not .bss:0007A31C _dl_bind_not % 4 ; DATA XREF: non_dynamic_init+98o .bss:0007A31C ; non_dynamic_init+A4w ... .bss:0007A320 EXPORT _dl_platform .bss:0007A320 _dl_platform % 4 ; DATA XREF: _dl_dst_substitute:loc_10160o .bss:0007A320 ; _dl_dst_substitute+140r ... .bss:0007A324 EXPORT _dl_lazy .bss:0007A324 _dl_lazy % 4 ; DATA XREF: non_dynamic_init+70o .bss:0007A324 ; non_dynamic_init+80w ... .bss:0007A328 EXPORT _dl_origin_path .bss:0007A328 _dl_origin_path % 4 ; DATA XREF: _dl_get_origin:loc_17338o .bss:0007A328 ; _dl_get_origin+A4r ... .bss:0007A32C EXPORT _dl_verbose .bss:0007A32C _dl_verbose % 4 ; DATA XREF: non_dynamic_init+40o .bss:0007A32C ; non_dynamic_init+4Cw ... .bss:0007A330 EXPORT _dl_loaded .bss:0007A330 _dl_loaded % 4 ; DATA XREF: _dl_map_object_from_fd:loc_10E8Co .bss:0007A330 ; _dl_map_object_from_fd+68r ... .bss:0007A334 EXPORT _dl_profile_map .bss:0007A334 _dl_profile_map % 4 ; DATA XREF: _dl_mcount_wrapper_check+8o .bss:0007A334 ; _dl_mcount_wrapper_check+10r ... .bss:0007A338 EXPORT _dl_inhibit_rpath .bss:0007A338 _dl_inhibit_rpath % 4 ; DATA XREF: decompose_rpath+Co .bss:0007A338 ; decompose_rpath+14r ... .bss:0007A33C EXPORT _dl_search_paths .bss:0007A33C _dl_search_paths % 4 .bss:0007A340 EXPORT __libc_argc .bss:0007A340 __libc_argc % 4 ; DATA XREF: init:loc_17410o .bss:0007A340 ; init+5Cw ... .bss:0007A344 EXPORT __libc_argv .bss:0007A344 __libc_argv % 4 ; DATA XREF: init+60o .bss:0007A344 ; init+64w ... .bss:0007A348 EXPORT __assert_program_name .bss:0007A348 __assert_program_name % 4 ; DATA XREF: __assert_fail+5Co .bss:0007A348 ; __assert_fail+68r ... .bss:0007A34C EXPORT _nl_domain_bindings .bss:0007A34C _nl_domain_bindings % 4 ; DATA XREF: __dcigettext+108o .bss:0007A34C ; __dcigettext+10Cr ... .bss:0007A350 EXPORT _nl_msg_cat_cntr .bss:0007A350 _nl_msg_cat_cntr % 4 ; DATA XREF: __dcigettext+C0o .bss:0007A350 ; __dcigettext+C8r ... .bss:0007A354 EXPORT __libc_missing_rt_sigs .bss:0007A354 __libc_missing_rt_sigs % 4 ; DATA XREF: sigaction+18o .bss:0007A354 ; sigaction+20r ... .bss:0007A358 ALIGN 0x10 .bss:0007A360 EXPORT __printf_arginfo_table .bss:0007A360 __printf_arginfo_table % 0x400 ; DATA XREF: vfprintf+23FCo .bss:0007A360 ; vfprintf:off_1EF14o ... .bss:0007A760 EXPORT __printf_function_table .bss:0007A760 __printf_function_table % 4 ; DATA XREF: vfprintf+23E0o .bss:0007A760 ; vfprintf+23E4r ... .bss:0007A764 EXPORT __getopt_nonoption_flags .bss:0007A764 __getopt_nonoption_flags % 4 ; DATA XREF: __getopt_clean_environment+90o .bss:0007A764 ; __getopt_clean_environment+BCw ... .bss:0007A768 EXPORT __have_no_stat64 .bss:0007A768 __have_no_stat64 % 4 ; DATA XREF: __fxstat64+10o .bss:0007A768 ; __fxstat64+18r ... .bss:0007A76C EXPORT __gconv_modules_db .bss:0007A76C __gconv_modules_db % 4 ; DATA XREF: find_derivation:loc_36E94o .bss:0007A76C ; find_derivation+16Cr ... .bss:0007A770 EXPORT __gconv_alias_db .bss:0007A770 __gconv_alias_db % 4 ; DATA XREF: do_lookup_alias+14o .bss:0007A770 ; do_lookup_alias:off_372E8o ... .bss:0007A774 EXPORT __gconv_max_path_elem_len .bss:0007A774 __gconv_max_path_elem_len % 4 ; DATA XREF: __gconv_get_path+154o .bss:0007A774 ; __gconv_get_path+15Cw ... .bss:0007A778 EXPORT __gconv_path_elem .bss:0007A778 __gconv_path_elem % 4 ; DATA XREF: __gconv_get_path:loc_37F24o .bss:0007A778 ; __gconv_get_path+2Cr ... .bss:0007A77C ALIGN 0x10 .bss:0007A780 EXPORT __libc_setlocale_lock .bss:0007A780 __libc_setlocale_lock % 0x18 ; DATA XREF: setlocale+210o .bss:0007A780 ; setlocale:off_3EF6Co ... .bss:0007A798 EXPORT tzstring_list .bss:0007A798 tzstring_list % 4 ; DATA XREF: __tzstring+14o .bss:0007A798 ; __tzstring+1Cr ... .bss:0007A79C EXPORT __tzname_cur_max .bss:0007A79C __tzname_cur_max % 4 ; DATA XREF: __tzname_max:loc_4C464o .bss:0007A79C ; __tzname_max+48r ... .bss:0007A7A0 EXPORT __use_tzfile .bss:0007A7A0 __use_tzfile % 4 ; DATA XREF: tzset_internal+F0o .bss:0007A7A0 ; tzset_internal+F4r ... .bss:0007A7A4 EXPORT __have_no_getdents64 .bss:0007A7A4 __have_no_getdents64 % 4 ; DATA XREF: __getdents+14o .bss:0007A7A4 ; __getdents+1Cr ... .bss:0007A7A8 EXPORT __have_no_new_getrlimit .bss:0007A7A8 __have_no_new_getrlimit % 4 ; DATA XREF: getrlimit+Co .bss:0007A7A8 ; getrlimit+14r ... .bss:0007A7AC ALIGN 0x10 .bss:0007A7B0 EXPORT _tmbuf .bss:0007A7B0 _tmbuf % 0x2C ; DATA XREF: __tz_convert:loc_4CA1Co .bss:0007A7B0 ; __tz_convert:off_4CB50o ... .bss:0007A7DC EXPORT _dl_global_scope_alloc .bss:0007A7DC _dl_global_scope_alloc % 4 ; DATA XREF: add_to_global+10o .bss:0007A7DC ; .text:off_50FF0o ... .bss:0007A7E0 EXPORT _r_debug .bss:0007A7E0 _r_debug % 0x14 ; DATA XREF: _dl_close+3B0o .bss:0007A7E0 ; _dl_close:loc_51B1Co ... .bss:0007A7E0 ; .bss ends .bss:0007A7E0 abs:0007A7F4 ; =========================================================================== abs:0007A7F4 abs:0007A7F4 ; Segment type: Absolute symbols abs:0007A7F4 _bss_end__ = 0x7A7F4 abs:0007A7F8 __stop___libc_subfreeres = 0x62CEC abs:0007A7FC __bss_start__ = 0x6BDF8 abs:0007A800 __start___libc_subfreeres = 0x62CB0 abs:0007A804 __start___libc_atexit = 0x62CA0 abs:0007A808 __stop___libc_subinit = 0x62CB0 abs:0007A80C __bss_end__ = 0x7A7F4 abs:0007A810 __stop___libc_atexit = 0x62CA4 abs:0007A814 __bss_start = 0x6BDF8 abs:0007A818 __end__ = 0x7A7F4 abs:0007A81C __start___libc_subinit = 0x62CA4 abs:0007A820 _edata = 0x6BDF8 abs:0007A824 _end = 0x7A7F4 abs:0007A828 _ABS_ = 0 abs:0007A82C abs:0007A830 abs:0007A834 abs:0007A838 abs:0007A83C abs:0007A840 abs:0007A844 abs:0007A848 abs:0007A84C abs:0007A850 abs:0007A854 abs:0007A858 abs:0007A85C abs:0007A860 abs:0007A864 abs:0007A868 abs:0007A86C abs:0007A870 abs:0007A874 abs:0007A878 abs:0007A87C abs:0007A880 abs:0007A884 abs:0007A888 abs:0007A88C abs:0007A890 abs:0007A894 abs:0007A898 abs:0007A89C abs:0007A8A0 abs:0007A8A4 abs:0007A8A8 abs:0007A8AC abs:0007A8B0 abs:0007A8B4 extern:0007C3C0 ; =========================================================================== extern:0007C3C0 extern:0007C3C0 ; Segment type: Externs extern:0007C3C0 IMPORT __pthread_rwlock_trywrlock, WEAK extern:0007C3C4 IMPORT __pthread_mutexattr_destroy, WEAK extern:0007C3C8 IMPORT __pthread_once, WEAK extern:0007C3CC IMPORT __pthread_mutex_lock, WEAK extern:0007C3D0 IMPORT __pthread_mutexattr_settype, WEAK extern:0007C3D4 IMPORT _dl_sysdep_start, WEAK extern:0007C3D8 IMPORT __pthread_rwlock_init, WEAK extern:0007C3DC IMPORT __pthread_key_create, WEAK extern:0007C3E0 IMPORT __pthread_rwlock_wrlock, WEAK extern:0007C3E4 IMPORT __pthread_atfork, WEAK extern:0007C3E8 IMPORT _dl_rtld_map, WEAK extern:0007C3EC IMPORT __pthread_mutex_init, WEAK extern:0007C3F0 IMPORT __pthread_rwlock_tryrdlock, WEAK extern:0007C3F4 IMPORT __pthread_rwlock_rdlock, WEAK extern:0007C3F8 IMPORT _pthread_cleanup_pop_restore, WEAK extern:0007C3FC IMPORT __pthread_rwlock_unlock, WEAK extern:0007C400 IMPORT __pthread_initialize, WEAK extern:0007C404 IMPORT __pthread_mutex_unlock, WEAK extern:0007C408 IMPORT __pthread_getspecific, WEAK extern:0007C40C IMPORT __pthread_mutex_trylock, WEAK extern:0007C410 IMPORT __deregister_frame_info, WEAK extern:0007C414 IMPORT __pthread_initialize_minimal, WEAK extern:0007C418 IMPORT __pthread_mutex_destroy, WEAK extern:0007C41C IMPORT __pthread_mutexattr_init, WEAK extern:0007C420 IMPORT _pthread_cleanup_push_defer, WEAK extern:0007C424 IMPORT __pthread_rwlock_destroy, WEAK extern:0007C428 IMPORT __pthread_setspecific, WEAK extern:0007C42C IMPORT _dl_hwcap, WEAK extern:0007C430 IMPORT __register_frame_info, WEAK extern:0007C434 IMPORT __gmon_start__, WEAK extern:0007C434 extern:0007C434 END _start